Lines Matching refs:skb
35 void nr_output(struct sock *sk, struct sk_buff *skb) in nr_output() argument
41 if (skb->len - NR_TRANSPORT_LEN > NR_MAX_PACKET_SIZE) { in nr_output()
43 skb_copy_from_linear_data(skb, transport, NR_TRANSPORT_LEN); in nr_output()
44 skb_pull(skb, NR_TRANSPORT_LEN); in nr_output()
46 frontlen = skb_headroom(skb); in nr_output()
48 while (skb->len > 0) { in nr_output()
54 len = (NR_MAX_PACKET_SIZE > skb->len) ? skb->len : NR_MAX_PACKET_SIZE; in nr_output()
57 skb_copy_from_linear_data(skb, skb_put(skbn, len), len); in nr_output()
58 skb_pull(skb, len); in nr_output()
64 if (skb->len > 0) in nr_output()
70 kfree_skb(skb); in nr_output()
72 skb_queue_tail(&sk->sk_write_queue, skb); /* Throw it on the queue */ in nr_output()
82 static void nr_send_iframe(struct sock *sk, struct sk_buff *skb) in nr_send_iframe() argument
86 if (skb == NULL) in nr_send_iframe()
89 skb->data[2] = nr->vs; in nr_send_iframe()
90 skb->data[3] = nr->vr; in nr_send_iframe()
93 skb->data[4] |= NR_CHOKE_FLAG; in nr_send_iframe()
97 nr_transmit_buffer(sk, skb); in nr_send_iframe()
102 struct sk_buff *skb, *skbn; in nr_send_nak_frame() local
105 if ((skb = skb_peek(&nr->ack_queue)) == NULL) in nr_send_nak_frame()
108 if ((skbn = skb_clone(skb, GFP_ATOMIC)) == NULL) in nr_send_nak_frame()
128 struct sk_buff *skb, *skbn; in nr_kick() local
156 skb = skb_dequeue(&sk->sk_write_queue); in nr_kick()
159 if ((skbn = skb_clone(skb, GFP_ATOMIC)) == NULL) { in nr_kick()
160 skb_queue_head(&sk->sk_write_queue, skb); in nr_kick()
176 skb_queue_tail(&nr->ack_queue, skb); in nr_kick()
179 (skb = skb_dequeue(&sk->sk_write_queue)) != NULL); in nr_kick()
188 void nr_transmit_buffer(struct sock *sk, struct sk_buff *skb) in nr_transmit_buffer() argument
196 dptr = skb_push(skb, NR_NETWORK_LEN); in nr_transmit_buffer()
212 if (!nr_route_frame(skb, NULL)) { in nr_transmit_buffer()
213 kfree_skb(skb); in nr_transmit_buffer()