Lines Matching refs:skb
54 struct sk_buff *skb; in llc_alloc_frame() local
57 skb = alloc_skb(hlen + data_size, GFP_ATOMIC); in llc_alloc_frame()
59 if (skb) { in llc_alloc_frame()
60 skb_reset_mac_header(skb); in llc_alloc_frame()
61 skb_reserve(skb, hlen); in llc_alloc_frame()
62 skb_reset_network_header(skb); in llc_alloc_frame()
63 skb_reset_transport_header(skb); in llc_alloc_frame()
64 skb->protocol = htons(ETH_P_802_2); in llc_alloc_frame()
65 skb->dev = dev; in llc_alloc_frame()
67 skb_set_owner_w(skb, sk); in llc_alloc_frame()
69 return skb; in llc_alloc_frame()
72 void llc_save_primitive(struct sock *sk, struct sk_buff* skb, u8 prim) in llc_save_primitive() argument
77 addr = llc_ui_skb_cb(skb); in llc_save_primitive()
81 addr->sllc_arphrd = skb->dev->type; in llc_save_primitive()
85 llc_pdu_decode_sa(skb, addr->sllc_mac); in llc_save_primitive()
86 llc_pdu_decode_ssap(skb, &addr->sllc_sap); in llc_save_primitive()
94 void llc_sap_rtn_pdu(struct llc_sap *sap, struct sk_buff *skb) in llc_sap_rtn_pdu() argument
96 struct llc_sap_state_ev *ev = llc_sap_ev(skb); in llc_sap_rtn_pdu()
97 struct llc_pdu_un *pdu = llc_pdu_un_hdr(skb); in llc_sap_rtn_pdu()
120 struct sk_buff* skb) in llc_find_sap_trans() argument
131 if (!next_trans[i]->ev(sap, skb)) { in llc_find_sap_trans()
149 struct sk_buff *skb) in llc_exec_sap_trans_actions() argument
155 if ((*next_action)(sap, skb)) in llc_exec_sap_trans_actions()
169 static int llc_sap_next_state(struct llc_sap *sap, struct sk_buff *skb) in llc_sap_next_state() argument
176 trans = llc_find_sap_trans(sap, skb); in llc_sap_next_state()
184 rc = llc_exec_sap_trans_actions(sap, trans, skb); in llc_sap_next_state()
204 static void llc_sap_state_process(struct llc_sap *sap, struct sk_buff *skb) in llc_sap_state_process() argument
206 struct llc_sap_state_ev *ev = llc_sap_ev(skb); in llc_sap_state_process()
213 skb_get(skb); in llc_sap_state_process()
215 llc_sap_next_state(sap, skb); in llc_sap_state_process()
217 if (skb->sk->sk_state == TCP_LISTEN) in llc_sap_state_process()
218 kfree_skb(skb); in llc_sap_state_process()
220 llc_save_primitive(skb->sk, skb, ev->prim); in llc_sap_state_process()
223 if (sock_queue_rcv_skb(skb->sk, skb)) in llc_sap_state_process()
224 kfree_skb(skb); in llc_sap_state_process()
227 kfree_skb(skb); in llc_sap_state_process()
241 struct sk_buff *skb, u8 *dmac, u8 dsap) in llc_build_and_send_test_pkt() argument
243 struct llc_sap_state_ev *ev = llc_sap_ev(skb); in llc_build_and_send_test_pkt()
247 memcpy(ev->saddr.mac, skb->dev->dev_addr, IFHWADDRLEN); in llc_build_and_send_test_pkt()
253 llc_sap_state_process(sap, skb); in llc_build_and_send_test_pkt()
266 void llc_build_and_send_xid_pkt(struct llc_sap *sap, struct sk_buff *skb, in llc_build_and_send_xid_pkt() argument
269 struct llc_sap_state_ev *ev = llc_sap_ev(skb); in llc_build_and_send_xid_pkt()
273 memcpy(ev->saddr.mac, skb->dev->dev_addr, IFHWADDRLEN); in llc_build_and_send_xid_pkt()
279 llc_sap_state_process(sap, skb); in llc_build_and_send_xid_pkt()
289 static void llc_sap_rcv(struct llc_sap *sap, struct sk_buff *skb, in llc_sap_rcv() argument
292 struct llc_sap_state_ev *ev = llc_sap_ev(skb); in llc_sap_rcv()
296 skb->sk = sk; in llc_sap_rcv()
297 llc_sap_state_process(sap, skb); in llc_sap_rcv()
341 struct sk_buff *skb) in llc_sap_mcast() argument
357 if (llc->dev != skb->dev) in llc_sap_mcast()
360 skb1 = skb_clone(skb, GFP_ATOMIC); in llc_sap_mcast()
372 void llc_sap_handler(struct llc_sap *sap, struct sk_buff *skb) in llc_sap_handler() argument
376 llc_pdu_decode_da(skb, laddr.mac); in llc_sap_handler()
377 llc_pdu_decode_dsap(skb, &laddr.lsap); in llc_sap_handler()
380 llc_sap_mcast(sap, &laddr, skb); in llc_sap_handler()
381 kfree_skb(skb); in llc_sap_handler()
385 llc_sap_rcv(sap, skb, sk); in llc_sap_handler()
388 kfree_skb(skb); in llc_sap_handler()