Lines Matching defs:lowpan6_buffer

377  * @param lowpan6_buffer compressed headers, first byte is the dispatch byte
378 * @param lowpan6_bufsize size of lowpan6_buffer (may include data after headers)
391 lowpan6_decompress_hdr(u8_t *lowpan6_buffer, size_t lowpan6_bufsize,
404 LWIP_ASSERT("lowpan6_buffer != NULL", lowpan6_buffer != NULL);
425 LWIP_DEBUGF(LWIP_LOWPAN6_IP_COMPRESSED_DEBUG, ("%2X ", lowpan6_buffer[j]));
435 if (lowpan6_buffer[1] & 0x80) {
440 if ((lowpan6_buffer[0] & 0x18) == 0x00) {
441 header_temp = ((lowpan6_buffer[lowpan6_offset+1] & 0x0f) << 16) | \
442 (lowpan6_buffer[lowpan6_offset + 2] << 8) | lowpan6_buffer[lowpan6_offset+3];
444 lowpan6_buffer[lowpan6_offset],header_temp));
445 IP6H_VTCFL_SET(ip6hdr, 6, lowpan6_buffer[lowpan6_offset], header_temp);
449 } else if ((lowpan6_buffer[0] & 0x18) == 0x08) {
450 header_temp = ((lowpan6_buffer[lowpan6_offset] & 0x0f) << 16) | (lowpan6_buffer[lowpan6_offset + 1] << 8) | lowpan6_buffer[lowpan6_offset+2];
452 lowpan6_buffer[lowpan6_offset] & 0xc0,header_temp));
453 IP6H_VTCFL_SET(ip6hdr, 6, lowpan6_buffer[lowpan6_offset] & 0xc0, header_temp);
457 } else if ((lowpan6_buffer[0] & 0x18) == 0x10) {
458 LWIP_DEBUGF(LWIP_LOWPAN6_DECOMPRESSION_DEBUG, ("TF: 10, DCSP+ECN: 0x%"X8_F", Flowlabel ignored\n", lowpan6_buffer[lowpan6_offset]));
459 IP6H_VTCFL_SET(ip6hdr, 6, lowpan6_buffer[lowpan6_offset],0);
463 } else if ((lowpan6_buffer[0] & 0x18) == 0x18) {
470 if ((lowpan6_buffer[0] & 0x04) == 0x00) {
472 LWIP_DEBUGF(LWIP_LOWPAN6_DECOMPRESSION_DEBUG, ("NH: 0x%2X\n", lowpan6_buffer[lowpan6_offset+1]));
473 IP6H_NEXTH_SET(ip6hdr, lowpan6_buffer[lowpan6_offset++]);
482 if ((lowpan6_buffer[0] & 0x03) == 0x00) {
483 LWIP_DEBUGF(LWIP_LOWPAN6_DECOMPRESSION_DEBUG, ("Hops: full value: %d\n", lowpan6_buffer[lowpan6_offset+1]));
484 IP6H_HOPLIM_SET(ip6hdr, lowpan6_buffer[lowpan6_offset++]);
485 } else if ((lowpan6_buffer[0] & 0x03) == 0x01) {
488 } else if ((lowpan6_buffer[0] & 0x03) == 0x02) {
491 } else if ((lowpan6_buffer[0] & 0x03) == 0x03) {
497 if ((lowpan6_buffer[1] & 0x40) == 0x00) {
501 if ((lowpan6_buffer[1] & 0x30) == 0x00) {
504 MEMCPY(&ip6hdr->src.addr[0], lowpan6_buffer + lowpan6_offset, 16);
506 } else if ((lowpan6_buffer[1] & 0x30) == 0x10) {
512 MEMCPY(&ip6hdr->src.addr[2], lowpan6_buffer + lowpan6_offset, 8);
514 } else if ((lowpan6_buffer[1] & 0x30) == 0x20) {
521 ip6hdr->src.addr[3] = lwip_htonl(0xfe000000UL | (lowpan6_buffer[lowpan6_offset] << 8) |
522 lowpan6_buffer[lowpan6_offset + 1]);
524 } else if ((lowpan6_buffer[1] & 0x30) == 0x30) {
546 if ((lowpan6_buffer[1] & 0x30) == 0x00) {
555 if (lowpan6_buffer[1] & 0x80) {
556 i = (lowpan6_buffer[2] >> 4) & 0x0f;
574 if ((lowpan6_buffer[1] & 0x30) == 0x10) {
576 MEMCPY(&ip6hdr->src.addr[2], lowpan6_buffer + lowpan6_offset, 8);
579 } else if ((lowpan6_buffer[1] & 0x30) == 0x20) {
582 ip6hdr->src.addr[3] = lwip_htonl(0xfe000000UL | (lowpan6_buffer[lowpan6_offset] << 8) | lowpan6_buffer[lowpan6_offset + 1]);
585 } else if ((lowpan6_buffer[1] & 0x30) == 0x30) {
603 if (lowpan6_buffer[1] & 0x08) {
606 if (lowpan6_buffer[1] & 0x04) {
612 if ((lowpan6_buffer[1] & 0x03) == 0x00) {
615 MEMCPY(&ip6hdr->dest.addr[0], lowpan6_buffer + lowpan6_offset, 16);
617 } else if ((lowpan6_buffer[1] & 0x03) == 0x01) {
620 ip6hdr->dest.addr[0] = lwip_htonl(0xff000000UL | (lowpan6_buffer[lowpan6_offset++] << 16));
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]);
625 } else if ((lowpan6_buffer[1] & 0x03) == 0x02) {
628 ip6hdr->dest.addr[0] = lwip_htonl(0xff000000UL | (lowpan6_buffer[lowpan6_offset++] << 16));
631 ip6hdr->dest.addr[3] = lwip_htonl((lowpan6_buffer[lowpan6_offset] << 16) | (lowpan6_buffer[lowpan6_offset + 1] << 8) | lowpan6_buffer[lowpan6_offset + 2]);
633 } else if ((lowpan6_buffer[1] & 0x03) == 0x03) {
639 ip6hdr->dest.addr[3] = lwip_htonl(lowpan6_buffer[lowpan6_offset++]);
644 if (lowpan6_buffer[1] & 0x04) {
648 if (lowpan6_buffer[1] & 0x80) {
649 i = lowpan6_buffer[2] & 0x0f;
669 if ((lowpan6_buffer[1] & 0x03) == 0x00) {
672 MEMCPY(&ip6hdr->dest.addr[0], lowpan6_buffer + lowpan6_offset, 16);
674 } else if ((lowpan6_buffer[1] & 0x03) == 0x01) {
677 MEMCPY(&ip6hdr->dest.addr[2], lowpan6_buffer + lowpan6_offset, 8);
679 } else if ((lowpan6_buffer[1] & 0x03) == 0x02) {
683 ip6hdr->dest.addr[3] = lwip_htonl(0xfe000000UL | (lowpan6_buffer[lowpan6_offset] << 8) | lowpan6_buffer[lowpan6_offset + 1]);
685 } else if ((lowpan6_buffer[1] & 0x03) == 0x03) {
704 if (lowpan6_buffer[0] & 0x04) {
707 if ((lowpan6_buffer[lowpan6_offset] & 0xf8) == 0xf0) {
720 if (lowpan6_buffer[lowpan6_offset] & 0x04) {
727 i = lowpan6_buffer[lowpan6_offset++] & 0x03;
729 udphdr->src = lwip_htons(lowpan6_buffer[lowpan6_offset] << 8 | lowpan6_buffer[lowpan6_offset + 1]);
730 udphdr->dest = lwip_htons(lowpan6_buffer[lowpan6_offset + 2] << 8 | lowpan6_buffer[lowpan6_offset + 3]);
733 udphdr->src = lwip_htons(lowpan6_buffer[lowpan6_offset] << 8 | lowpan6_buffer[lowpan6_offset + 1]);
734 udphdr->dest = lwip_htons(0xf000 | lowpan6_buffer[lowpan6_offset + 2]);
737 udphdr->src = lwip_htons(0xf000 | lowpan6_buffer[lowpan6_offset]);
738 udphdr->dest = lwip_htons(lowpan6_buffer[lowpan6_offset + 1] << 8 | lowpan6_buffer[lowpan6_offset + 2]);
741 udphdr->src = lwip_htons(0xf0b0 | ((lowpan6_buffer[lowpan6_offset] >> 4) & 0x0f));
742 udphdr->dest = lwip_htons(0xf0b0 | (lowpan6_buffer[lowpan6_offset] & 0x0f));
746 udphdr->chksum = lwip_htons(lowpan6_buffer[lowpan6_offset] << 8 | lowpan6_buffer[lowpan6_offset + 1]);