Lines Matching refs:hdr
239 struct ipv6hdr hdr = {}; in lowpan_header_decompress() local
253 hdr.version = 6; in lowpan_header_decompress()
264 memcpy(&hdr.flow_lbl, &skb->data[0], 3); in lowpan_header_decompress()
266 hdr.priority = ((tmp >> 2) & 0x0f); in lowpan_header_decompress()
267 hdr.flow_lbl[0] = ((tmp >> 2) & 0x30) | (tmp << 6) | in lowpan_header_decompress()
268 (hdr.flow_lbl[0] & 0x0f); in lowpan_header_decompress()
277 hdr.priority = ((tmp >> 2) & 0x0f); in lowpan_header_decompress()
278 hdr.flow_lbl[0] = ((tmp << 6) & 0xC0) | ((tmp >> 2) & 0x30); in lowpan_header_decompress()
287 hdr.flow_lbl[0] = (skb->data[0] & 0x0F) | ((tmp >> 2) & 0x30); in lowpan_header_decompress()
288 memcpy(&hdr.flow_lbl[1], &skb->data[0], 2); in lowpan_header_decompress()
301 if (lowpan_fetch_skb(skb, &hdr.nexthdr, sizeof(hdr.nexthdr))) in lowpan_header_decompress()
305 hdr.nexthdr); in lowpan_header_decompress()
310 hdr.hop_limit = lowpan_ttl_values[iphc0 & 0x03]; in lowpan_header_decompress()
312 if (lowpan_fetch_skb(skb, &hdr.hop_limit, in lowpan_header_decompress()
313 sizeof(hdr.hop_limit))) in lowpan_header_decompress()
323 err = uncompress_context_based_src_addr(skb, &hdr.saddr, tmp); in lowpan_header_decompress()
327 err = uncompress_addr(skb, &hdr.saddr, tmp, saddr, in lowpan_header_decompress()
344 err = lowpan_uncompress_multicast_daddr(skb, &hdr.daddr, in lowpan_header_decompress()
351 err = uncompress_addr(skb, &hdr.daddr, tmp, daddr, in lowpan_header_decompress()
354 tmp, &hdr.daddr); in lowpan_header_decompress()
361 err = lowpan_nhc_do_uncompression(skb, dev, &hdr); in lowpan_header_decompress()
365 err = skb_cow(skb, sizeof(hdr)); in lowpan_header_decompress()
370 hdr.payload_len = htons(skb->len); in lowpan_header_decompress()
377 hdr.version, ntohs(hdr.payload_len), hdr.nexthdr, in lowpan_header_decompress()
378 hdr.hop_limit, &hdr.daddr); in lowpan_header_decompress()
380 skb_push(skb, sizeof(hdr)); in lowpan_header_decompress()
382 skb_copy_to_linear_data(skb, &hdr, sizeof(hdr)); in lowpan_header_decompress()
384 raw_dump_table(__func__, "raw header dump", (u8 *)&hdr, sizeof(hdr)); in lowpan_header_decompress()
421 struct ipv6hdr *hdr; in lowpan_header_compress() local
428 hdr = ipv6_hdr(skb); in lowpan_header_compress()
433 hdr->version, ntohs(hdr->payload_len), hdr->nexthdr, in lowpan_header_compress()
434 hdr->hop_limit, &hdr->daddr); in lowpan_header_compress()
464 tmp = (hdr->priority << 4) | (hdr->flow_lbl[0] >> 4); in lowpan_header_compress()
467 if (((hdr->flow_lbl[0] & 0x0F) == 0) && in lowpan_header_compress()
468 (hdr->flow_lbl[1] == 0) && (hdr->flow_lbl[2] == 0)) { in lowpan_header_compress()
471 if ((hdr->priority == 0) && in lowpan_header_compress()
472 ((hdr->flow_lbl[0] & 0xF0) == 0)) { in lowpan_header_compress()
482 if ((hdr->priority == 0) && in lowpan_header_compress()
483 ((hdr->flow_lbl[0] & 0xF0) == 0)) { in lowpan_header_compress()
486 *hc_ptr = (tmp & 0xc0) | (hdr->flow_lbl[0] & 0x0F); in lowpan_header_compress()
487 memcpy(hc_ptr + 1, &hdr->flow_lbl[1], 2); in lowpan_header_compress()
491 memcpy(hc_ptr, hdr, 4); in lowpan_header_compress()
503 ret = lowpan_nhc_check_compression(skb, hdr, &hc_ptr, &iphc0); in lowpan_header_compress()
513 switch (hdr->hop_limit) { in lowpan_header_compress()
524 lowpan_push_hc_data(&hc_ptr, &hdr->hop_limit, in lowpan_header_compress()
525 sizeof(hdr->hop_limit)); in lowpan_header_compress()
528 addr_type = ipv6_addr_type(&hdr->saddr); in lowpan_header_compress()
537 &hdr->saddr, _saddr); in lowpan_header_compress()
539 &hdr->saddr, iphc1); in lowpan_header_compress()
542 lowpan_push_hc_data(&hc_ptr, hdr->saddr.s6_addr, 16); in lowpan_header_compress()
546 addr_type = ipv6_addr_type(&hdr->daddr); in lowpan_header_compress()
551 if (lowpan_is_mcast_addr_compressable8(&hdr->daddr)) { in lowpan_header_compress()
556 &hdr->daddr.s6_addr[15], 1); in lowpan_header_compress()
557 } else if (lowpan_is_mcast_addr_compressable32(&hdr->daddr)) { in lowpan_header_compress()
562 &hdr->daddr.s6_addr[1], 1); in lowpan_header_compress()
564 &hdr->daddr.s6_addr[13], 3); in lowpan_header_compress()
565 } else if (lowpan_is_mcast_addr_compressable48(&hdr->daddr)) { in lowpan_header_compress()
570 &hdr->daddr.s6_addr[1], 1); in lowpan_header_compress()
572 &hdr->daddr.s6_addr[11], 5); in lowpan_header_compress()
576 lowpan_push_hc_data(&hc_ptr, hdr->daddr.s6_addr, 16); in lowpan_header_compress()
582 LOWPAN_IPHC_DAM_BIT, &hdr->daddr, _daddr); in lowpan_header_compress()
584 "iphc1 0x%02x\n", &hdr->daddr, iphc1); in lowpan_header_compress()
586 pr_debug("dest address unicast %pI6c\n", &hdr->daddr); in lowpan_header_compress()
587 lowpan_push_hc_data(&hc_ptr, hdr->daddr.s6_addr, 16); in lowpan_header_compress()
593 ret = lowpan_nhc_do_compression(skb, hdr, &hc_ptr); in lowpan_header_compress()