Lines Matching refs:header

61 	struct ip6_hdr header;
63 uint8 ProtocolVersion() const { return header.ip6_vfc & IPV6_VERSION_MASK; }
64 uint8 ServiceType() const { return ntohl(header.ip6_flow) >> 20;}
65 uint16 PayloadLength() const { return ntohs(header.ip6_plen); }
66 const in6_addr& Dst() const { return header.ip6_dst; }
67 const in6_addr& Src() const { return header.ip6_src; }
68 uint8 NextHeader() const { return header.ip6_nxt; }
237 uint8 next = header.ip6_nxt;
257 // were we looking for a specific header?
260 // found the specific header
263 // return 0 if fragement header is not present
267 // the general transport layer header case
349 TRACE(" remove header %d bytes", previous->fragment.end - start);
516 dump_ipv6_header(IPv6Header &header)
520 dprintf(" version: %d\n", header.ProtocolVersion() >> 4);
521 dprintf(" service_type: %d\n", header.ServiceType());
522 dprintf(" payload_length: %d\n", header.PayloadLength());
523 dprintf(" next_header: %d\n", header.NextHeader());
524 dprintf(" hop_limit: %d\n", header.header.ip6_hops);
525 dprintf(" source: %s\n", ip6_sprintf(&header.header.ip6_src, addrbuf));
527 ip6_sprintf(&header.header.ip6_dst, addrbuf));
538 reassemble_fragments(const IPv6Header &header, net_buffer** _buffer,
552 memcpy(&key.source, &header.Src(), sizeof(in6_addr));
553 memcpy(&key.destination, &header.Dst(), sizeof(in6_addr));
576 uint16 end = start + header.PayloadLength();
582 // Remove header unless this is the first fragment
647 // TODO (from ipv4): we need to make sure all header space is contiguous or
663 bufferHeader->header.ip6_nxt = IPPROTO_FRAGMENT;
664 bufferHeader->header.ip6_plen
1296 // Add IPv6 header
1298 NetBufferPrepend<ip6_hdr> header(buffer);
1299 if (header.Status() != B_OK)
1300 return header.Status();
1312 header->ip6_flow = htonl(flowinfo) & IPV6_FLOWINFO_MASK;
1314 header->ip6_vfc |= IPV6_VERSION;
1315 header->ip6_plen = htons(dataLength);
1316 header->ip6_nxt = protocolNumber;
1317 header->ip6_hlim = ip6_select_hoplimit(protocol, buffer);
1318 memcpy(&header->ip6_src, &source.sin6_addr, sizeof(in6_addr));
1319 memcpy(&header->ip6_dst, &destination.sin6_addr, sizeof(in6_addr));
1321 header.Sync();
1335 checksum = ipv6_checksum(&header->ip6_src,
1336 &header->ip6_dst, dataLength, protocolNumber,
1461 IPv6Header &header = bufferHeader.Data();
1462 // dump_ipv6_header(header);
1464 if (header.ProtocolVersion() != IPV6_VERSION)
1467 uint16 packetLength = header.PayloadLength() + sizeof(ip6_hdr);
1475 fill_sockaddr_in6(&destination, header.Dst());
1490 ip6_sprintf(&header.Src(), srcbuf);
1491 ip6_sprintf(&header.Dst(), dstbuf);
1504 fill_sockaddr_in6((struct sockaddr_in6*)buffer->source, header.Src());
1507 // get the transport protocol and transport header offset
1508 uint16 transportHeaderOffset = header.GetHeaderOffset(buffer);
1518 = header.GetHeaderOffset(buffer, IPPROTO_FRAGMENT);
1523 status = reassemble_fragments(header, &buffer, fragmentHeaderOffset);
1535 // tell the buffer to preserve removed ipv6 header - may need it later
1607 IPv6Header header;
1609 &header, sizeof(ip6_hdr)) == B_OK
1610 && header.ProtocolVersion() != IPV6_VERSION) {
1611 // header is OK, take hoplimit from it
1612 hopLimit = header.header.ip6_hlim;