Lines Matching defs:ip6hdr
140 struct ip6_hdr *ip6hdr;
163 ip6hdr = (struct ip6_hdr *)inptr;
164 ip_addr_copy_from_ip6_packed(ip6dst, ip6hdr->dest);
166 ip_addr_copy_from_ip6_packed(ip6src, ip6hdr->src);
203 if (IP6H_FL(ip6hdr) == 0) {
206 if (IP6H_TC(ip6hdr) == 0) {
211 buffer[lowpan6_header_len++] = IP6H_TC(ip6hdr);
214 if (((IP6H_TC(ip6hdr) & 0x3f) == 0)) {
218 buffer[lowpan6_header_len] = IP6H_TC(ip6hdr) & 0xc0;
219 buffer[lowpan6_header_len++] |= (IP6H_FL(ip6hdr) >> 16) & 0x0f;
220 buffer[lowpan6_header_len++] = (IP6H_FL(ip6hdr) >> 8) & 0xff;
221 buffer[lowpan6_header_len++] = IP6H_FL(ip6hdr) & 0xff;
224 buffer[lowpan6_header_len++] = IP6H_TC(ip6hdr);
225 buffer[lowpan6_header_len++] = (IP6H_FL(ip6hdr) >> 16) & 0x0f;
226 buffer[lowpan6_header_len++] = (IP6H_FL(ip6hdr) >> 8) & 0xff;
227 buffer[lowpan6_header_len++] = IP6H_FL(ip6hdr) & 0xff;
233 if (IP6H_NEXTH(ip6hdr) == IP6_NEXTH_UDP) {
237 buffer[lowpan6_header_len++] = IP6H_NEXTH(ip6hdr);
241 if (IP6H_HOPLIM(ip6hdr) == 255) {
243 } else if (IP6H_HOPLIM(ip6hdr) == 64) {
245 } else if (IP6H_HOPLIM(ip6hdr) == 1) {
249 buffer[lowpan6_header_len++] = IP6H_HOPLIM(ip6hdr);
320 if (IP6H_NEXTH(ip6hdr) == IP6_NEXTH_UDP) {
399 struct ip6_hdr *ip6hdr;
411 ip6hdr = (struct ip6_hdr *)decomp_buffer;
445 IP6H_VTCFL_SET(ip6hdr, 6, lowpan6_buffer[lowpan6_offset], header_temp);
453 IP6H_VTCFL_SET(ip6hdr, 6, lowpan6_buffer[lowpan6_offset] & 0xc0, header_temp);
459 IP6H_VTCFL_SET(ip6hdr, 6, lowpan6_buffer[lowpan6_offset],0);
466 IP6H_VTCFL_SET(ip6hdr, 6, 0, 0);
473 IP6H_NEXTH_SET(ip6hdr, lowpan6_buffer[lowpan6_offset++]);
478 IP6H_NEXTH_SET(ip6hdr, 0);
484 IP6H_HOPLIM_SET(ip6hdr, lowpan6_buffer[lowpan6_offset++]);
487 IP6H_HOPLIM_SET(ip6hdr, 1);
490 IP6H_HOPLIM_SET(ip6hdr, 64);
493 IP6H_HOPLIM_SET(ip6hdr, 255);
504 MEMCPY(&ip6hdr->src.addr[0], lowpan6_buffer + lowpan6_offset, 16);
509 ip6hdr->src.addr[0] = PP_HTONL(0xfe800000UL);
510 ip6hdr->src.addr[1] = 0;
512 MEMCPY(&ip6hdr->src.addr[2], lowpan6_buffer + lowpan6_offset, 8);
517 ip6hdr->src.addr[0] = PP_HTONL(0xfe800000UL);
518 ip6hdr->src.addr[1] = 0;
519 ip6hdr->src.addr[2] = PP_HTONL(0x000000ffUL);
521 ip6hdr->src.addr[3] = lwip_htonl(0xfe000000UL | (lowpan6_buffer[lowpan6_offset] << 8) |
527 ip6hdr->src.addr[0] = PP_HTONL(0xfe800000UL);
528 ip6hdr->src.addr[1] = 0;
530 ip6hdr->src.addr[2] = PP_HTONL(0x000000ffUL);
531 ip6hdr->src.addr[3] = lwip_htonl(0xfe000000UL | (src->addr[0] << 8) | src->addr[1]);
533 ip6hdr->src.addr[2] = lwip_htonl(((src->addr[0] ^ 2) << 24) | (src->addr[1] << 16) |
535 ip6hdr->src.addr[3] = lwip_htonl((src->addr[4] << 24) | (src->addr[5] << 16) |
548 ip6hdr->src.addr[0] = 0;
549 ip6hdr->src.addr[1] = 0;
550 ip6hdr->src.addr[2] = 0;
551 ip6hdr->src.addr[3] = 0;
565 ip6hdr->src.addr[0] = lowpan6_contexts[i].addr[0];
566 ip6hdr->src.addr[1] = lowpan6_contexts[i].addr[1];
567 LWIP_DEBUGF(LWIP_LOWPAN6_DECOMPRESSION_DEBUG, ("SAM == xx, context compression found @%d: %8"X32_F", %8"X32_F"\n", (int)i, ip6hdr->src.addr[0], ip6hdr->src.addr[1]));
576 MEMCPY(&ip6hdr->src.addr[2], lowpan6_buffer + lowpan6_offset, 8);
581 ip6hdr->src.addr[2] = PP_HTONL(0x000000ffUL);
582 ip6hdr->src.addr[3] = lwip_htonl(0xfe000000UL | (lowpan6_buffer[lowpan6_offset] << 8) | lowpan6_buffer[lowpan6_offset + 1]);
589 ip6hdr->src.addr[2] = PP_HTONL(0x000000ffUL);
590 ip6hdr->src.addr[3] = lwip_htonl(0xfe000000UL | (src->addr[0] << 8) | src->addr[1]);
592 ip6hdr->src.addr[2] = lwip_htonl(((src->addr[0] ^ 2) << 24) | (src->addr[1] << 16) | (src->addr[2] << 8) | src->addr[3]);
593 ip6hdr->src.addr[3] = lwip_htonl((src->addr[4] << 24) | (src->addr[5] << 16) | (src->addr[6] << 8) | src->addr[7]);
615 MEMCPY(&ip6hdr->dest.addr[0], lowpan6_buffer + lowpan6_offset, 16);
620 ip6hdr->dest.addr[0] = lwip_htonl(0xff000000UL | (lowpan6_buffer[lowpan6_offset++] << 16));
621 ip6hdr->dest.addr[1] = 0;
622 ip6hdr->dest.addr[2] = lwip_htonl(lowpan6_buffer[lowpan6_offset++]);
623 ip6hdr->dest.addr[3] = lwip_htonl((lowpan6_buffer[lowpan6_offset] << 24) | (lowpan6_buffer[lowpan6_offset + 1] << 16) | (lowpan6_buffer[lowpan6_offset + 2] << 8) | lowpan6_buffer[lowpan6_offset + 3]);
628 ip6hdr->dest.addr[0] = lwip_htonl(0xff000000UL | (lowpan6_buffer[lowpan6_offset++] << 16));
629 ip6hdr->dest.addr[1] = 0;
630 ip6hdr->dest.addr[2] = 0;
631 ip6hdr->dest.addr[3] = lwip_htonl((lowpan6_buffer[lowpan6_offset] << 16) | (lowpan6_buffer[lowpan6_offset + 1] << 8) | lowpan6_buffer[lowpan6_offset + 2]);
636 ip6hdr->dest.addr[0] = PP_HTONL(0xff020000UL);
637 ip6hdr->dest.addr[1] = 0;
638 ip6hdr->dest.addr[2] = 0;
639 ip6hdr->dest.addr[3] = lwip_htonl(lowpan6_buffer[lowpan6_offset++]);
658 ip6hdr->dest.addr[0] = lowpan6_contexts[i].addr[0];
659 ip6hdr->dest.addr[1] = lowpan6_contexts[i].addr[1];
664 ip6hdr->dest.addr[0] = PP_HTONL(0xfe800000UL);
665 ip6hdr->dest.addr[1] = 0;
672 MEMCPY(&ip6hdr->dest.addr[0], lowpan6_buffer + lowpan6_offset, 16);
677 MEMCPY(&ip6hdr->dest.addr[2], lowpan6_buffer + lowpan6_offset, 8);
682 ip6hdr->dest.addr[2] = PP_HTONL(0x000000ffUL);
683 ip6hdr->dest.addr[3] = lwip_htonl(0xfe000000UL | (lowpan6_buffer[lowpan6_offset] << 8) | lowpan6_buffer[lowpan6_offset + 1]);
689 ip6hdr->dest.addr[2] = PP_HTONL(0x000000ffUL);
690 ip6hdr->dest.addr[3] = lwip_htonl(0xfe000000UL | (dest->addr[0] << 8) | dest->addr[1]);
692 ip6hdr->dest.addr[2] = lwip_htonl(((dest->addr[0] ^ 2) << 24) | (dest->addr[1] << 16) | dest->addr[2] << 8 | dest->addr[3]);
693 ip6hdr->dest.addr[3] = lwip_htonl((dest->addr[4] << 24) | (dest->addr[5] << 16) | dest->addr[6] << 8 | dest->addr[7]);
713 IP6H_NEXTH_SET(ip6hdr, IP6_NEXTH_UDP);
766 IP6H_PLEN_SET(ip6hdr, datagram_size - IP6_HLEN);