Lines Matching refs:sk
37 static int x25_queue_rx_frame(struct sock *sk, struct sk_buff *skb, int more) in x25_queue_rx_frame() argument
40 struct x25_sock *x25 = x25_sk(sk); in x25_queue_rx_frame()
45 skb_set_owner_r(skb, sk); in x25_queue_rx_frame()
79 skb_set_owner_r(skbn, sk); in x25_queue_rx_frame()
80 skb_queue_tail(&sk->sk_receive_queue, skbn); in x25_queue_rx_frame()
81 if (!sock_flag(sk, SOCK_DEAD)) in x25_queue_rx_frame()
82 sk->sk_data_ready(sk); in x25_queue_rx_frame()
92 static int x25_state1_machine(struct sock *sk, struct sk_buff *skb, int frametype) in x25_state1_machine() argument
96 struct x25_sock *x25 = x25_sk(sk); in x25_state1_machine()
101 x25_stop_timer(sk); in x25_state1_machine()
108 sk->sk_state = TCP_ESTABLISHED; in x25_state1_machine()
141 if (!sock_flag(sk, SOCK_DEAD)) in x25_state1_machine()
142 sk->sk_state_change(sk); in x25_state1_machine()
149 x25_write_internal(sk, X25_CLEAR_CONFIRMATION); in x25_state1_machine()
150 x25_disconnect(sk, ECONNREFUSED, skb->data[3], skb->data[4]); in x25_state1_machine()
160 x25_write_internal(sk, X25_CLEAR_REQUEST); in x25_state1_machine()
162 x25_start_t23timer(sk); in x25_state1_machine()
171 static int x25_state2_machine(struct sock *sk, struct sk_buff *skb, int frametype) in x25_state2_machine() argument
179 x25_write_internal(sk, X25_CLEAR_CONFIRMATION); in x25_state2_machine()
180 x25_disconnect(sk, 0, skb->data[3], skb->data[4]); in x25_state2_machine()
184 x25_disconnect(sk, 0, 0, 0); in x25_state2_machine()
194 x25_write_internal(sk, X25_CLEAR_REQUEST); in x25_state2_machine()
195 x25_start_t23timer(sk); in x25_state2_machine()
204 static int x25_state3_machine(struct sock *sk, struct sk_buff *skb, int frametype, int ns, int nr, … in x25_state3_machine() argument
208 struct x25_sock *x25 = x25_sk(sk); in x25_state3_machine()
215 x25_write_internal(sk, X25_RESET_CONFIRMATION); in x25_state3_machine()
216 x25_stop_timer(sk); in x25_state3_machine()
222 x25_requeue_frames(sk); in x25_state3_machine()
229 x25_write_internal(sk, X25_CLEAR_CONFIRMATION); in x25_state3_machine()
230 x25_disconnect(sk, 0, skb->data[3], skb->data[4]); in x25_state3_machine()
235 if (!x25_validate_nr(sk, nr)) { in x25_state3_machine()
236 x25_clear_queues(sk); in x25_state3_machine()
237 x25_write_internal(sk, X25_RESET_REQUEST); in x25_state3_machine()
238 x25_start_t22timer(sk); in x25_state3_machine()
246 x25_frames_acked(sk, nr); in x25_state3_machine()
257 if ((ns != x25->vr) || !x25_validate_nr(sk, nr)) { in x25_state3_machine()
258 x25_clear_queues(sk); in x25_state3_machine()
259 x25_write_internal(sk, X25_RESET_REQUEST); in x25_state3_machine()
260 x25_start_t22timer(sk); in x25_state3_machine()
269 x25_frames_acked(sk, nr); in x25_state3_machine()
271 if (x25_queue_rx_frame(sk, skb, m) == 0) { in x25_state3_machine()
276 x25_clear_queues(sk); in x25_state3_machine()
277 x25_write_internal(sk, X25_RESET_REQUEST); in x25_state3_machine()
278 x25_start_t22timer(sk); in x25_state3_machine()
287 if (atomic_read(&sk->sk_rmem_alloc) > in x25_state3_machine()
288 (sk->sk_rcvbuf >> 1)) in x25_state3_machine()
297 x25_stop_timer(sk); in x25_state3_machine()
298 x25_enquiry_response(sk); in x25_state3_machine()
301 x25_start_t2timer(sk); in x25_state3_machine()
310 if (sock_flag(sk, SOCK_URGINLINE)) in x25_state3_machine()
311 queued = !sock_queue_rcv_skb(sk, skb); in x25_state3_machine()
313 skb_set_owner_r(skb, sk); in x25_state3_machine()
317 sk_send_sigurg(sk); in x25_state3_machine()
318 x25_write_internal(sk, X25_INTERRUPT_CONFIRMATION); in x25_state3_machine()
329 x25_write_internal(sk, X25_CLEAR_REQUEST); in x25_state3_machine()
331 x25_start_t23timer(sk); in x25_state3_machine()
340 static int x25_state4_machine(struct sock *sk, struct sk_buff *skb, int frametype) in x25_state4_machine() argument
342 struct x25_sock *x25 = x25_sk(sk); in x25_state4_machine()
347 x25_write_internal(sk, X25_RESET_CONFIRMATION); in x25_state4_machine()
349 x25_stop_timer(sk); in x25_state4_machine()
356 x25_requeue_frames(sk); in x25_state4_machine()
363 x25_write_internal(sk, X25_CLEAR_CONFIRMATION); in x25_state4_machine()
364 x25_disconnect(sk, 0, skb->data[3], skb->data[4]); in x25_state4_machine()
374 x25_write_internal(sk, X25_CLEAR_REQUEST); in x25_state4_machine()
376 x25_start_t23timer(sk); in x25_state4_machine()
381 int x25_process_rx_frame(struct sock *sk, struct sk_buff *skb) in x25_process_rx_frame() argument
383 struct x25_sock *x25 = x25_sk(sk); in x25_process_rx_frame()
389 frametype = x25_decode(sk, skb, &ns, &nr, &q, &d, &m); in x25_process_rx_frame()
393 queued = x25_state1_machine(sk, skb, frametype); in x25_process_rx_frame()
396 queued = x25_state2_machine(sk, skb, frametype); in x25_process_rx_frame()
399 queued = x25_state3_machine(sk, skb, frametype, ns, nr, q, d, m); in x25_process_rx_frame()
402 queued = x25_state4_machine(sk, skb, frametype); in x25_process_rx_frame()
406 x25_kick(sk); in x25_process_rx_frame()
411 int x25_backlog_rcv(struct sock *sk, struct sk_buff *skb) in x25_backlog_rcv() argument
413 int queued = x25_process_rx_frame(sk, skb); in x25_backlog_rcv()