• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-WNDR4500v2-V1.0.0.60_1.0.38/src/linux/linux-2.6/net/ax25/

Lines Matching defs:ax25

21 #include <net/ax25.h>
36 void ax25_clear_queues(ax25_cb *ax25)
38 skb_queue_purge(&ax25->write_queue);
39 skb_queue_purge(&ax25->ack_queue);
40 skb_queue_purge(&ax25->reseq_queue);
41 skb_queue_purge(&ax25->frag_queue);
49 void ax25_frames_acked(ax25_cb *ax25, unsigned short nr)
56 if (ax25->va != nr) {
57 while (skb_peek(&ax25->ack_queue) != NULL && ax25->va != nr) {
58 skb = skb_dequeue(&ax25->ack_queue);
60 ax25->va = (ax25->va + 1) % ax25->modulus;
65 void ax25_requeue_frames(ax25_cb *ax25)
74 while ((skb = skb_dequeue(&ax25->ack_queue)) != NULL) {
76 skb_queue_head(&ax25->write_queue, skb);
78 skb_append(skb_prev, skb, &ax25->write_queue);
87 int ax25_validate_nr(ax25_cb *ax25, unsigned short nr)
89 unsigned short vc = ax25->va;
91 while (vc != ax25->vs) {
93 vc = (vc + 1) % ax25->modulus;
96 if (nr == ax25->vs) return 1;
105 int ax25_decode(ax25_cb *ax25, struct sk_buff *skb, int *ns, int *nr, int *pf)
113 if (ax25->modulus == AX25_MODULUS) {
155 void ax25_send_control(ax25_cb *ax25, int frametype, int poll_bit, int type)
160 if ((skb = alloc_skb(ax25->ax25_dev->dev->hard_header_len + 2, GFP_ATOMIC)) == NULL)
163 skb_reserve(skb, ax25->ax25_dev->dev->hard_header_len);
168 if (ax25->modulus == AX25_MODULUS) {
173 *dptr |= (ax25->vr << 5);
182 dptr[1] = (ax25->vr << 1);
187 ax25_transmit_buffer(ax25, skb, type);
228 void ax25_calculate_t1(ax25_cb *ax25)
232 switch (ax25->backoff) {
237 t += 2 * ax25->n2count;
241 for (n = 0; n < ax25->n2count; n++)
247 ax25->t1 = t * ax25->rtt;
253 void ax25_calculate_rtt(ax25_cb *ax25)
255 if (ax25->backoff == 0)
258 if (ax25_t1timer_running(ax25) && ax25->n2count == 0)
259 ax25->rtt = (9 * ax25->rtt + ax25->t1 - ax25_display_timer(&ax25->t1timer)) / 10;
261 if (ax25->rtt < AX25_T1CLAMPLO)
262 ax25->rtt = AX25_T1CLAMPLO;
264 if (ax25->rtt > AX25_T1CLAMPHI)
265 ax25->rtt = AX25_T1CLAMPHI;
268 void ax25_disconnect(ax25_cb *ax25, int reason)
270 ax25_clear_queues(ax25);
272 ax25_stop_t1timer(ax25);
273 ax25_stop_t2timer(ax25);
274 ax25_stop_t3timer(ax25);
275 ax25_stop_idletimer(ax25);
277 ax25->state = AX25_STATE_0;
279 ax25_link_failed(ax25, reason);
281 if (ax25->sk != NULL) {
282 bh_lock_sock(ax25->sk);
283 ax25->sk->sk_state = TCP_CLOSE;
284 ax25->sk->sk_err = reason;
285 ax25->sk->sk_shutdown |= SEND_SHUTDOWN;
286 if (!sock_flag(ax25->sk, SOCK_DEAD)) {
287 ax25->sk->sk_state_change(ax25->sk);
288 sock_set_flag(ax25->sk, SOCK_DEAD);
290 bh_unlock_sock(ax25->sk);