Lines Matching refs:src
134 const struct lowpan6_link_addr *src, const struct lowpan6_link_addr *dst)
162 /* Point to ip6 header and align copies of src/dest addresses. */
166 ip_addr_copy_from_ip6_packed(ip6src, ip6hdr->src);
256 i = lowpan6_get_address_mode(ip_2_ip6(&ip6src), src);
386 * @param src source address of the outer layer, used for address compression
396 struct lowpan6_link_addr *src, struct lowpan6_link_addr *dest)
406 LWIP_ASSERT("src != NULL", src != NULL);
502 LWIP_DEBUGF(LWIP_LOWPAN6_DECOMPRESSION_DEBUG, ("SAM == 00, no src compression, fetching 128bits inline\n"));
504 MEMCPY(&ip6hdr->src.addr[0], lowpan6_buffer + lowpan6_offset, 16);
507 LWIP_DEBUGF(LWIP_LOWPAN6_DECOMPRESSION_DEBUG, ("SAM == 01, src compression, 64bits inline\n"));
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);
515 LWIP_DEBUGF(LWIP_LOWPAN6_DECOMPRESSION_DEBUG, ("SAM == 10, src compression, 16bits inline\n"));
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) |
525 LWIP_DEBUGF(LWIP_LOWPAN6_DECOMPRESSION_DEBUG, ("SAM == 11, src compression, 0bits inline, using other headers\n"));
527 ip6hdr->src.addr[0] = PP_HTONL(0xfe800000UL);
528 ip6hdr->src.addr[1] = 0;
529 if (src->addr_len == 2) {
530 ip6hdr->src.addr[2] = PP_HTONL(0x000000ffUL);
531 ip6hdr->src.addr[3] = lwip_htonl(0xfe000000UL | (src->addr[0] << 8) | src->addr[1]);
532 } else if (src->addr_len == 8) {
533 ip6hdr->src.addr[2] = lwip_htonl(((src->addr[0] ^ 2) << 24) | (src->addr[1] << 16) |
534 (src->addr[2] << 8) | src->addr[3]);
535 ip6hdr->src.addr[3] = lwip_htonl((src->addr[4] << 24) | (src->addr[5] << 16) |
536 (src->addr[6] << 8) | src->addr[7]);
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]);
588 if (src->addr_len == 2) {
589 ip6hdr->src.addr[2] = PP_HTONL(0x000000ffUL);
590 ip6hdr->src.addr[3] = lwip_htonl(0xfe000000UL | (src->addr[0] << 8) | src->addr[1]);
591 } else if (src->addr_len == 8) {
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]);
729 udphdr->src = lwip_htons(lowpan6_buffer[lowpan6_offset] << 8 | lowpan6_buffer[lowpan6_offset + 1]);
733 udphdr->src = lwip_htons(lowpan6_buffer[lowpan6_offset] << 8 | lowpan6_buffer[lowpan6_offset + 1]);
737 udphdr->src = lwip_htons(0xf000 | lowpan6_buffer[lowpan6_offset]);
741 udphdr->src = lwip_htons(0xf0b0 | ((lowpan6_buffer[lowpan6_offset] >> 4) & 0x0f));
780 struct lowpan6_link_addr *src, struct lowpan6_link_addr *dest)
808 &lowpan6_offset, &ip6_offset, datagram_size, p->tot_len, lowpan6_contexts, src, dest);