Lines Matching refs:skb

34 static int llc_conn_service(struct sock *sk, struct sk_buff *skb);
39 struct sk_buff *skb);
59 int llc_conn_state_process(struct sock *sk, struct sk_buff *skb) in llc_conn_state_process() argument
62 struct llc_sock *llc = llc_sk(skb->sk); in llc_conn_state_process()
63 struct llc_conn_state_ev *ev = llc_conn_ev(skb); in llc_conn_state_process()
70 skb_get(skb); in llc_conn_state_process()
75 rc = llc_conn_service(skb->sk, skb); in llc_conn_state_process()
83 if (!skb->next) in llc_conn_state_process()
89 skb_get(skb); in llc_conn_state_process()
93 llc_save_primitive(sk, skb, LLC_DATA_PRIM); in llc_conn_state_process()
94 if (unlikely(sock_queue_rcv_skb(sk, skb))) { in llc_conn_state_process()
100 kfree_skb(skb); in llc_conn_state_process()
109 skb_queue_tail(&sk->sk_receive_queue, skb); in llc_conn_state_process()
124 kfree_skb(skb); in llc_conn_state_process()
133 kfree_skb(skb); in llc_conn_state_process()
139 kfree_skb(skb); in llc_conn_state_process()
190 kfree_skb(skb); in llc_conn_state_process()
192 kfree_skb(skb); in llc_conn_state_process()
196 void llc_conn_send_pdu(struct sock *sk, struct sk_buff *skb) in llc_conn_send_pdu() argument
199 skb_queue_tail(&sk->sk_write_queue, skb); in llc_conn_send_pdu()
212 void llc_conn_rtn_pdu(struct sock *sk, struct sk_buff *skb) in llc_conn_rtn_pdu() argument
214 struct llc_conn_state_ev *ev = llc_conn_ev(skb); in llc_conn_rtn_pdu()
231 struct sk_buff *skb; in llc_conn_resend_i_pdu_as_cmd() local
246 while ((skb = skb_dequeue(&llc->pdu_unack_q)) != NULL) { in llc_conn_resend_i_pdu_as_cmd()
247 pdu = llc_pdu_sn_hdr(skb); in llc_conn_resend_i_pdu_as_cmd()
248 llc_pdu_set_cmd_rsp(skb, LLC_PDU_CMD); in llc_conn_resend_i_pdu_as_cmd()
249 llc_pdu_set_pf_bit(skb, first_p_bit); in llc_conn_resend_i_pdu_as_cmd()
250 skb_queue_tail(&sk->sk_write_queue, skb); in llc_conn_resend_i_pdu_as_cmd()
274 struct sk_buff *skb; in llc_conn_resend_i_pdu_as_rsp() local
286 while ((skb = skb_dequeue(&llc->pdu_unack_q)) != NULL) { in llc_conn_resend_i_pdu_as_rsp()
287 struct llc_pdu_sn *pdu = llc_pdu_sn_hdr(skb); in llc_conn_resend_i_pdu_as_rsp()
289 llc_pdu_set_cmd_rsp(skb, LLC_PDU_RSP); in llc_conn_resend_i_pdu_as_rsp()
290 llc_pdu_set_pf_bit(skb, first_f_bit); in llc_conn_resend_i_pdu_as_rsp()
291 skb_queue_tail(&sk->sk_write_queue, skb); in llc_conn_resend_i_pdu_as_rsp()
315 struct sk_buff *skb; in llc_conn_remove_acked_pdus() local
323 skb = skb_peek(&llc->pdu_unack_q); in llc_conn_remove_acked_pdus()
324 pdu = llc_pdu_sn_hdr(skb); in llc_conn_remove_acked_pdus()
331 skb = skb_dequeue(&llc->pdu_unack_q); in llc_conn_remove_acked_pdus()
332 kfree_skb(skb); in llc_conn_remove_acked_pdus()
348 struct sk_buff *skb; in llc_conn_send_pdus() local
350 while ((skb = skb_dequeue(&sk->sk_write_queue)) != NULL) { in llc_conn_send_pdus()
351 struct llc_pdu_sn *pdu = llc_pdu_sn_hdr(skb); in llc_conn_send_pdus()
354 !(skb->dev->flags & IFF_LOOPBACK)) { in llc_conn_send_pdus()
355 struct sk_buff *skb2 = skb_clone(skb, GFP_ATOMIC); in llc_conn_send_pdus()
357 skb_queue_tail(&llc_sk(sk)->pdu_unack_q, skb); in llc_conn_send_pdus()
360 skb = skb2; in llc_conn_send_pdus()
362 dev_queue_xmit(skb); in llc_conn_send_pdus()
375 static int llc_conn_service(struct sock *sk, struct sk_buff *skb) in llc_conn_service() argument
384 trans = llc_qualify_conn_ev(sk, skb); in llc_conn_service()
386 rc = llc_exec_conn_trans_actions(sk, trans, skb); in llc_conn_service()
406 struct sk_buff *skb) in llc_qualify_conn_ev() argument
410 struct llc_conn_state_ev *ev = llc_conn_ev(skb); in llc_qualify_conn_ev()
421 if (!((*next_trans)->ev)(sk, skb)) { in llc_qualify_conn_ev()
430 !(*next_qualifier)(sk, skb); next_qualifier++) in llc_qualify_conn_ev()
454 struct sk_buff *skb) in llc_exec_conn_trans_actions() argument
461 int rc2 = (*next_action)(sk, skb); in llc_exec_conn_trans_actions()
756 static int llc_conn_rcv(struct sock *sk, struct sk_buff *skb) in llc_conn_rcv() argument
758 struct llc_conn_state_ev *ev = llc_conn_ev(skb); in llc_conn_rcv()
762 return llc_conn_state_process(sk, skb); in llc_conn_rcv()
787 void llc_conn_handler(struct llc_sap *sap, struct sk_buff *skb) in llc_conn_handler() argument
792 llc_pdu_decode_sa(skb, saddr.mac); in llc_conn_handler()
793 llc_pdu_decode_ssap(skb, &saddr.lsap); in llc_conn_handler()
794 llc_pdu_decode_da(skb, daddr.mac); in llc_conn_handler()
795 llc_pdu_decode_dsap(skb, &daddr.lsap); in llc_conn_handler()
811 struct sock *newsk = llc_create_incoming_sock(sk, skb->dev, in llc_conn_handler()
815 skb_set_owner_r(skb, newsk); in llc_conn_handler()
824 skb->sk = sk; in llc_conn_handler()
827 llc_conn_rcv(sk, skb); in llc_conn_handler()
830 llc_set_backlog_type(skb, LLC_PACKET); in llc_conn_handler()
831 if (sk_add_backlog(sk, skb, sk->sk_rcvbuf)) in llc_conn_handler()
839 kfree_skb(skb); in llc_conn_handler()
842 kfree_skb(skb); in llc_conn_handler()
861 static int llc_backlog_rcv(struct sock *sk, struct sk_buff *skb) in llc_backlog_rcv() argument
866 if (likely(llc_backlog_type(skb) == LLC_PACKET)) { in llc_backlog_rcv()
868 rc = llc_conn_rcv(sk, skb); in llc_backlog_rcv()
871 } else if (llc_backlog_type(skb) == LLC_EVENT) { in llc_backlog_rcv()
874 rc = llc_conn_state_process(sk, skb); in llc_backlog_rcv()
884 kfree_skb(skb); in llc_backlog_rcv()