Lines Matching refs:skb

34 static void (*llc_station_handler)(struct sk_buff *skb);
40 struct sk_buff *skb);
43 struct sk_buff *skb)) in llc_add_pack() argument
57 void llc_set_station_handler(void (*handler)(struct sk_buff *skb)) in llc_set_station_handler() argument
75 static __inline__ int llc_pdu_type(struct sk_buff *skb) in llc_pdu_type() argument
78 struct llc_pdu_sn *pdu = llc_pdu_sn_hdr(skb); in llc_pdu_type()
111 static inline int llc_fixup_skb(struct sk_buff *skb) in llc_fixup_skb() argument
116 if (unlikely(!pskb_may_pull(skb, sizeof(*pdu)))) in llc_fixup_skb()
119 pdu = (struct llc_pdu_un *)skb->data; in llc_fixup_skb()
124 if (unlikely(!pskb_may_pull(skb, llc_len))) in llc_fixup_skb()
127 skb->transport_header += llc_len; in llc_fixup_skb()
128 skb_pull(skb, llc_len); in llc_fixup_skb()
129 if (skb->protocol == htons(ETH_P_802_2)) { in llc_fixup_skb()
130 __be16 pdulen = eth_hdr(skb)->h_proto; in llc_fixup_skb()
134 !pskb_may_pull(skb, data_size)) in llc_fixup_skb()
136 if (unlikely(pskb_trim_rcsum(skb, data_size))) in llc_fixup_skb()
154 int llc_rcv(struct sk_buff *skb, struct net_device *dev, in llc_rcv() argument
162 void (*sta_handler)(struct sk_buff *skb); in llc_rcv()
163 void (*sap_handler)(struct llc_sap *sap, struct sk_buff *skb); in llc_rcv()
172 if (unlikely(skb->pkt_type == PACKET_OTHERHOST)) { in llc_rcv()
176 skb = skb_share_check(skb, GFP_ATOMIC); in llc_rcv()
177 if (unlikely(!skb)) in llc_rcv()
179 if (unlikely(!llc_fixup_skb(skb))) in llc_rcv()
181 pdu = llc_pdu_sn_hdr(skb); in llc_rcv()
195 dest = llc_pdu_type(skb); in llc_rcv()
199 rcv(skb, dev, pt, orig_dev); in llc_rcv()
201 kfree_skb(skb); in llc_rcv()
204 struct sk_buff *cskb = skb_clone(skb, GFP_ATOMIC); in llc_rcv()
208 sap_handler(sap, skb); in llc_rcv()
214 kfree_skb(skb); in llc_rcv()
220 sta_handler(skb); in llc_rcv()