Lines Matching refs:skb

18 static int lowpan_give_skb_to_devices(struct sk_buff *skb,  in lowpan_give_skb_to_devices()  argument
25 skb->protocol = htons(ETH_P_IPV6); in lowpan_give_skb_to_devices()
26 skb->pkt_type = PACKET_HOST; in lowpan_give_skb_to_devices()
30 if (lowpan_dev_info(entry->ldev)->real_dev == skb->dev) { in lowpan_give_skb_to_devices()
31 skb_cp = skb_copy(skb, GFP_ATOMIC); in lowpan_give_skb_to_devices()
33 kfree_skb(skb); in lowpan_give_skb_to_devices()
45 consume_skb(skb); in lowpan_give_skb_to_devices()
51 iphc_decompress(struct sk_buff *skb, const struct ieee802154_hdr *hdr) in iphc_decompress() argument
57 raw_dump_table(__func__, "raw skb data dump", skb->data, skb->len); in iphc_decompress()
59 if (skb->len < 2) in iphc_decompress()
62 if (lowpan_fetch_skb_u8(skb, &iphc0)) in iphc_decompress()
65 if (lowpan_fetch_skb_u8(skb, &iphc1)) in iphc_decompress()
81 return lowpan_header_decompress(skb, skb->dev, sap, sa.addr_type, in iphc_decompress()
86 static int lowpan_rcv(struct sk_buff *skb, struct net_device *dev, in lowpan_rcv() argument
92 skb = skb_share_check(skb, GFP_ATOMIC); in lowpan_rcv()
93 if (!skb) in lowpan_rcv()
99 if (skb->pkt_type == PACKET_OTHERHOST) in lowpan_rcv()
105 if (ieee802154_hdr_peek_addrs(skb, &hdr) < 0) in lowpan_rcv()
109 if (skb->data[0] == LOWPAN_DISPATCH_IPV6) { in lowpan_rcv()
111 skb_pull(skb, 1); in lowpan_rcv()
112 return lowpan_give_skb_to_devices(skb, NULL); in lowpan_rcv()
114 switch (skb->data[0] & 0xe0) { in lowpan_rcv()
116 ret = iphc_decompress(skb, &hdr); in lowpan_rcv()
120 return lowpan_give_skb_to_devices(skb, NULL); in lowpan_rcv()
122 ret = lowpan_frag_rcv(skb, LOWPAN_DISPATCH_FRAG1); in lowpan_rcv()
124 ret = iphc_decompress(skb, &hdr); in lowpan_rcv()
128 return lowpan_give_skb_to_devices(skb, NULL); in lowpan_rcv()
135 ret = lowpan_frag_rcv(skb, LOWPAN_DISPATCH_FRAGN); in lowpan_rcv()
137 ret = iphc_decompress(skb, &hdr); in lowpan_rcv()
141 return lowpan_give_skb_to_devices(skb, NULL); in lowpan_rcv()
153 kfree_skb(skb); in lowpan_rcv()