• Home
  • Raw
  • Download

Lines Matching refs:ax25

36 void ax25_clear_queues(ax25_cb *ax25)  in ax25_clear_queues()  argument
38 skb_queue_purge(&ax25->write_queue); in ax25_clear_queues()
39 skb_queue_purge(&ax25->ack_queue); in ax25_clear_queues()
40 skb_queue_purge(&ax25->reseq_queue); in ax25_clear_queues()
41 skb_queue_purge(&ax25->frag_queue); in ax25_clear_queues()
49 void ax25_frames_acked(ax25_cb *ax25, unsigned short nr) in ax25_frames_acked() argument
56 if (ax25->va != nr) { in ax25_frames_acked()
57 while (skb_peek(&ax25->ack_queue) != NULL && ax25->va != nr) { in ax25_frames_acked()
58 skb = skb_dequeue(&ax25->ack_queue); in ax25_frames_acked()
60 ax25->va = (ax25->va + 1) % ax25->modulus; in ax25_frames_acked()
65 void ax25_requeue_frames(ax25_cb *ax25) in ax25_requeue_frames() argument
74 while ((skb = skb_dequeue_tail(&ax25->ack_queue)) != NULL) in ax25_requeue_frames()
75 skb_queue_head(&ax25->write_queue, skb); in ax25_requeue_frames()
82 int ax25_validate_nr(ax25_cb *ax25, unsigned short nr) in ax25_validate_nr() argument
84 unsigned short vc = ax25->va; in ax25_validate_nr()
86 while (vc != ax25->vs) { in ax25_validate_nr()
88 vc = (vc + 1) % ax25->modulus; in ax25_validate_nr()
91 if (nr == ax25->vs) return 1; in ax25_validate_nr()
100 int ax25_decode(ax25_cb *ax25, struct sk_buff *skb, int *ns, int *nr, int *pf) in ax25_decode() argument
108 if (ax25->modulus == AX25_MODULUS) { in ax25_decode()
150 void ax25_send_control(ax25_cb *ax25, int frametype, int poll_bit, int type) in ax25_send_control() argument
155 if ((skb = alloc_skb(ax25->ax25_dev->dev->hard_header_len + 2, GFP_ATOMIC)) == NULL) in ax25_send_control()
158 skb_reserve(skb, ax25->ax25_dev->dev->hard_header_len); in ax25_send_control()
163 if (ax25->modulus == AX25_MODULUS) { in ax25_send_control()
168 *dptr |= (ax25->vr << 5); in ax25_send_control()
177 dptr[1] = (ax25->vr << 1); in ax25_send_control()
182 ax25_transmit_buffer(ax25, skb, type); in ax25_send_control()
223 void ax25_calculate_t1(ax25_cb *ax25) in ax25_calculate_t1() argument
227 switch (ax25->backoff) { in ax25_calculate_t1()
232 t += 2 * ax25->n2count; in ax25_calculate_t1()
236 for (n = 0; n < ax25->n2count; n++) in ax25_calculate_t1()
242 ax25->t1 = t * ax25->rtt; in ax25_calculate_t1()
248 void ax25_calculate_rtt(ax25_cb *ax25) in ax25_calculate_rtt() argument
250 if (ax25->backoff == 0) in ax25_calculate_rtt()
253 if (ax25_t1timer_running(ax25) && ax25->n2count == 0) in ax25_calculate_rtt()
254 ax25->rtt = (9 * ax25->rtt + ax25->t1 - ax25_display_timer(&ax25->t1timer)) / 10; in ax25_calculate_rtt()
256 if (ax25->rtt < AX25_T1CLAMPLO) in ax25_calculate_rtt()
257 ax25->rtt = AX25_T1CLAMPLO; in ax25_calculate_rtt()
259 if (ax25->rtt > AX25_T1CLAMPHI) in ax25_calculate_rtt()
260 ax25->rtt = AX25_T1CLAMPHI; in ax25_calculate_rtt()
263 void ax25_disconnect(ax25_cb *ax25, int reason) in ax25_disconnect() argument
265 ax25_clear_queues(ax25); in ax25_disconnect()
267 ax25_stop_t1timer(ax25); in ax25_disconnect()
268 ax25_stop_t2timer(ax25); in ax25_disconnect()
269 ax25_stop_t3timer(ax25); in ax25_disconnect()
270 ax25_stop_idletimer(ax25); in ax25_disconnect()
272 ax25->state = AX25_STATE_0; in ax25_disconnect()
274 ax25_link_failed(ax25, reason); in ax25_disconnect()
276 if (ax25->sk != NULL) { in ax25_disconnect()
278 bh_lock_sock(ax25->sk); in ax25_disconnect()
279 ax25->sk->sk_state = TCP_CLOSE; in ax25_disconnect()
280 ax25->sk->sk_err = reason; in ax25_disconnect()
281 ax25->sk->sk_shutdown |= SEND_SHUTDOWN; in ax25_disconnect()
282 if (!sock_flag(ax25->sk, SOCK_DEAD)) { in ax25_disconnect()
283 ax25->sk->sk_state_change(ax25->sk); in ax25_disconnect()
284 sock_set_flag(ax25->sk, SOCK_DEAD); in ax25_disconnect()
286 bh_unlock_sock(ax25->sk); in ax25_disconnect()