Home
last modified time | relevance | path

Searched refs:ax25 (Results 1 – 21 of 21) sorted by relevance

/net/ax25/
Dax25_std_in.c39 static int ax25_std_state1_machine(ax25_cb *ax25, struct sk_buff *skb, int frametype, int pf, int t… in ax25_std_state1_machine() argument
43 ax25->modulus = AX25_MODULUS; in ax25_std_state1_machine()
44 ax25->window = ax25->ax25_dev->values[AX25_VALUES_WINDOW]; in ax25_std_state1_machine()
45 ax25_send_control(ax25, AX25_UA, pf, AX25_RESPONSE); in ax25_std_state1_machine()
49 ax25->modulus = AX25_EMODULUS; in ax25_std_state1_machine()
50 ax25->window = ax25->ax25_dev->values[AX25_VALUES_EWINDOW]; in ax25_std_state1_machine()
51 ax25_send_control(ax25, AX25_UA, pf, AX25_RESPONSE); in ax25_std_state1_machine()
55 ax25_send_control(ax25, AX25_DM, pf, AX25_RESPONSE); in ax25_std_state1_machine()
60 ax25_calculate_rtt(ax25); in ax25_std_state1_machine()
61 ax25_stop_t1timer(ax25); in ax25_std_state1_machine()
[all …]
Dax25_ds_in.c32 static int ax25_ds_state1_machine(ax25_cb *ax25, struct sk_buff *skb, int frametype, int pf, int ty… in ax25_ds_state1_machine() argument
36 ax25->modulus = AX25_MODULUS; in ax25_ds_state1_machine()
37 ax25->window = ax25->ax25_dev->values[AX25_VALUES_WINDOW]; in ax25_ds_state1_machine()
38 ax25_send_control(ax25, AX25_UA, pf, AX25_RESPONSE); in ax25_ds_state1_machine()
42 ax25->modulus = AX25_EMODULUS; in ax25_ds_state1_machine()
43 ax25->window = ax25->ax25_dev->values[AX25_VALUES_EWINDOW]; in ax25_ds_state1_machine()
44 ax25_send_control(ax25, AX25_UA, pf, AX25_RESPONSE); in ax25_ds_state1_machine()
48 ax25_send_control(ax25, AX25_DM, pf, AX25_RESPONSE); in ax25_ds_state1_machine()
52 ax25_calculate_rtt(ax25); in ax25_ds_state1_machine()
53 ax25_stop_t1timer(ax25); in ax25_ds_state1_machine()
[all …]
Dax25_std_timer.c29 void ax25_std_heartbeat_expiry(ax25_cb *ax25) in ax25_std_heartbeat_expiry() argument
31 struct sock *sk = ax25->sk; in ax25_std_heartbeat_expiry()
36 switch (ax25->state) { in ax25_std_heartbeat_expiry()
46 ax25_destroy_socket(ax25); in ax25_std_heartbeat_expiry()
51 ax25_destroy_socket(ax25); in ax25_std_heartbeat_expiry()
64 (ax25->condition & AX25_COND_OWN_RX_BUSY)) { in ax25_std_heartbeat_expiry()
65 ax25->condition &= ~AX25_COND_OWN_RX_BUSY; in ax25_std_heartbeat_expiry()
66 ax25->condition &= ~AX25_COND_ACK_PENDING; in ax25_std_heartbeat_expiry()
67 ax25_send_control(ax25, AX25_RR, AX25_POLLOFF, AX25_RESPONSE); in ax25_std_heartbeat_expiry()
76 ax25_start_heartbeat(ax25); in ax25_std_heartbeat_expiry()
[all …]
Dax25_timer.c39 void ax25_setup_timers(ax25_cb *ax25) in ax25_setup_timers() argument
41 timer_setup(&ax25->timer, ax25_heartbeat_expiry, 0); in ax25_setup_timers()
42 timer_setup(&ax25->t1timer, ax25_t1timer_expiry, 0); in ax25_setup_timers()
43 timer_setup(&ax25->t2timer, ax25_t2timer_expiry, 0); in ax25_setup_timers()
44 timer_setup(&ax25->t3timer, ax25_t3timer_expiry, 0); in ax25_setup_timers()
45 timer_setup(&ax25->idletimer, ax25_idletimer_expiry, 0); in ax25_setup_timers()
48 void ax25_start_heartbeat(ax25_cb *ax25) in ax25_start_heartbeat() argument
50 mod_timer(&ax25->timer, jiffies + 5 * HZ); in ax25_start_heartbeat()
53 void ax25_start_t1timer(ax25_cb *ax25) in ax25_start_t1timer() argument
55 mod_timer(&ax25->t1timer, jiffies + ax25->t1); in ax25_start_t1timer()
[all …]
Dax25_ds_timer.c68 ax25_cb *ax25; in ax25_ds_timeout() local
79 ax25_for_each(ax25, &ax25_list) { in ax25_ds_timeout()
80 if (ax25->ax25_dev != ax25_dev || !(ax25->condition & AX25_COND_DAMA_MODE)) in ax25_ds_timeout()
83 ax25_send_control(ax25, AX25_DISC, AX25_POLLON, AX25_COMMAND); in ax25_ds_timeout()
84 ax25_disconnect(ax25, ETIMEDOUT); in ax25_ds_timeout()
91 void ax25_ds_heartbeat_expiry(ax25_cb *ax25) in ax25_ds_heartbeat_expiry() argument
93 struct sock *sk=ax25->sk; in ax25_ds_heartbeat_expiry()
98 switch (ax25->state) { in ax25_ds_heartbeat_expiry()
109 ax25_destroy_socket(ax25); in ax25_ds_heartbeat_expiry()
114 ax25_destroy_socket(ax25); in ax25_ds_heartbeat_expiry()
[all …]
Dax25_subr.c33 void ax25_clear_queues(ax25_cb *ax25) in ax25_clear_queues() argument
35 skb_queue_purge(&ax25->write_queue); in ax25_clear_queues()
36 skb_queue_purge(&ax25->ack_queue); in ax25_clear_queues()
37 skb_queue_purge(&ax25->reseq_queue); in ax25_clear_queues()
38 skb_queue_purge(&ax25->frag_queue); in ax25_clear_queues()
46 void ax25_frames_acked(ax25_cb *ax25, unsigned short nr) in ax25_frames_acked() argument
53 if (ax25->va != nr) { in ax25_frames_acked()
54 while (skb_peek(&ax25->ack_queue) != NULL && ax25->va != nr) { in ax25_frames_acked()
55 skb = skb_dequeue(&ax25->ack_queue); in ax25_frames_acked()
57 ax25->va = (ax25->va + 1) % ax25->modulus; in ax25_frames_acked()
[all …]
Dax25_out.c35 ax25_cb *ax25; in ax25_send_frame() local
51 if ((ax25 = ax25_find_cb(src, dest, digi, dev)) != NULL) { in ax25_send_frame()
52 ax25_output(ax25, paclen, skb); in ax25_send_frame()
53 return ax25; /* It already existed */ in ax25_send_frame()
59 if ((ax25 = ax25_create_cb()) == NULL) in ax25_send_frame()
62 ax25_fillin_cb(ax25, ax25_dev); in ax25_send_frame()
64 ax25->source_addr = *src; in ax25_send_frame()
65 ax25->dest_addr = *dest; in ax25_send_frame()
68 ax25->digipeat = kmemdup(digi, sizeof(*digi), GFP_ATOMIC); in ax25_send_frame()
69 if (ax25->digipeat == NULL) { in ax25_send_frame()
[all …]
Daf_ax25.c63 static void ax25_cb_del(ax25_cb *ax25) in ax25_cb_del() argument
65 if (!hlist_unhashed(&ax25->ax25_node)) { in ax25_cb_del()
67 hlist_del_init(&ax25->ax25_node); in ax25_cb_del()
69 ax25_cb_put(ax25); in ax25_cb_del()
156 void ax25_cb_add(ax25_cb *ax25) in ax25_cb_add() argument
159 ax25_cb_hold(ax25); in ax25_cb_add()
160 hlist_add_head(&ax25->ax25_node, &ax25_list); in ax25_cb_add()
286 ax25_cb *ax25 = from_timer(ax25, t, dtimer); in ax25_destroy_timer() local
289 sk=ax25->sk; in ax25_destroy_timer()
293 ax25_destroy_socket(ax25); in ax25_destroy_timer()
[all …]
Dax25_std_subr.c30 void ax25_std_nr_error_recovery(ax25_cb *ax25) in ax25_std_nr_error_recovery() argument
32 ax25_std_establish_data_link(ax25); in ax25_std_nr_error_recovery()
35 void ax25_std_establish_data_link(ax25_cb *ax25) in ax25_std_establish_data_link() argument
37 ax25->condition = 0x00; in ax25_std_establish_data_link()
38 ax25->n2count = 0; in ax25_std_establish_data_link()
40 if (ax25->modulus == AX25_MODULUS) in ax25_std_establish_data_link()
41 ax25_send_control(ax25, AX25_SABM, AX25_POLLON, AX25_COMMAND); in ax25_std_establish_data_link()
43 ax25_send_control(ax25, AX25_SABME, AX25_POLLON, AX25_COMMAND); in ax25_std_establish_data_link()
45 ax25_calculate_t1(ax25); in ax25_std_establish_data_link()
46 ax25_stop_idletimer(ax25); in ax25_std_establish_data_link()
[all …]
Dax25_in.c34 static int ax25_rx_fragment(ax25_cb *ax25, struct sk_buff *skb) in ax25_rx_fragment() argument
38 if (ax25->fragno != 0) { in ax25_rx_fragment()
40 if ((ax25->fragno - 1) == (*skb->data & AX25_SEG_REM)) { in ax25_rx_fragment()
42 ax25->fragno = *skb->data & AX25_SEG_REM; in ax25_rx_fragment()
44 ax25->fraglen += skb->len; in ax25_rx_fragment()
45 skb_queue_tail(&ax25->frag_queue, skb); in ax25_rx_fragment()
48 if (ax25->fragno == 0) { in ax25_rx_fragment()
50 ax25->fraglen, in ax25_rx_fragment()
53 skb_queue_purge(&ax25->frag_queue); in ax25_rx_fragment()
59 skbn->dev = ax25->ax25_dev->dev; in ax25_rx_fragment()
[all …]
Dax25_ds_subr.c28 void ax25_ds_nr_error_recovery(ax25_cb *ax25) in ax25_ds_nr_error_recovery() argument
30 ax25_ds_establish_data_link(ax25); in ax25_ds_nr_error_recovery()
36 void ax25_ds_enquiry_response(ax25_cb *ax25) in ax25_ds_enquiry_response() argument
63 ax25_std_enquiry_response(ax25); in ax25_ds_enquiry_response()
65 if (!(ax25->condition & AX25_COND_PEER_RX_BUSY)) { in ax25_ds_enquiry_response()
66 ax25_requeue_frames(ax25); in ax25_ds_enquiry_response()
67 ax25_kick(ax25); in ax25_ds_enquiry_response()
70 …if (ax25->state == AX25_STATE_1 || ax25->state == AX25_STATE_2 || skb_peek(&ax25->ack_queue) != NU… in ax25_ds_enquiry_response()
71 ax25_ds_t1_timeout(ax25); in ax25_ds_enquiry_response()
73 ax25->n2count = 0; in ax25_ds_enquiry_response()
[all …]
Dax25_route.c398 int ax25_rt_autobind(ax25_cb *ax25, ax25_address *addr) in ax25_rt_autobind() argument
410 if ((ax25->ax25_dev = ax25_dev_ax25dev(ax25_rt->dev)) == NULL) { in ax25_rt_autobind()
417 ax25->source_addr = user->call; in ax25_rt_autobind()
424 ax25->source_addr = *(ax25_address *)ax25->ax25_dev->dev->dev_addr; in ax25_rt_autobind()
428 ax25->digipeat = kmemdup(ax25_rt->digipeat, sizeof(ax25_digi), in ax25_rt_autobind()
430 if (ax25->digipeat == NULL) { in ax25_rt_autobind()
434 ax25_adjust_path(addr, ax25->digipeat); in ax25_rt_autobind()
437 if (ax25->sk != NULL) { in ax25_rt_autobind()
439 bh_lock_sock(ax25->sk); in ax25_rt_autobind()
440 sock_reset_flag(ax25->sk, SOCK_ZAPPED); in ax25_rt_autobind()
[all …]
DMakefile6 obj-$(CONFIG_AX25) += ax25.o
8 ax25-y := ax25_addr.o ax25_dev.o ax25_iface.o ax25_in.o ax25_ip.o ax25_out.o \
11 ax25-$(CONFIG_AX25_DAMA_SLAVE) += ax25_ds_in.o ax25_ds_subr.o ax25_ds_timer.o
12 ax25-$(CONFIG_SYSCTL) += sysctl_net_ax25.o
DKconfig13 <http://www.linux-ax25.org/>.
43 check out the file <file:Documentation/networking/ax25.txt> in the
49 module will be called ax25.
64 <http://www.linux-ax25.org>. If unsure, say Y.
90 <http://www.linux-ax25.org>. You also might want to check out the
91 file <file:Documentation/networking/ax25.txt>. More information about
109 <http://www.linux-ax25.org>. You also might want to check out the
110 file <file:Documentation/networking/ax25.txt>. More information about
Dax25_ip.c108 ax25_cb *ax25; in ax25_ip_xmit() local
173 ax25=ax25_send_frame( in ax25_ip_xmit()
178 if (ax25) { in ax25_ip_xmit()
179 ax25_cb_put(ax25); in ax25_ip_xmit()
Dax25_iface.c190 void ax25_link_failed(ax25_cb *ax25, int reason) in ax25_link_failed() argument
196 lf->func(ax25, reason); in ax25_link_failed()
/net/netrom/
Dnr_route.c98 ax25_address *ax25, ax25_digi *ax25_digi, struct net_device *dev, in nr_add_node() argument
113 nr_neigh = nr_neigh_get_dev(ax25, dev); in nr_add_node()
152 nr_neigh->callsign = *ax25; in nr_add_node()
154 nr_neigh->ax25 = NULL; in nr_add_node()
181 if (quality != 0 && ax25cmp(nr, ax25) == 0 && !nr_neigh->locked) in nr_add_node()
400 nr_neigh->ax25 = NULL; in nr_add_neigh()
707 void nr_link_failed(ax25_cb *ax25, int reason) in nr_link_failed() argument
714 if (s->ax25 == ax25) { in nr_link_failed()
725 nr_neigh->ax25 = NULL; in nr_link_failed()
726 ax25_cb_put(ax25); in nr_link_failed()
[all …]
/net/rose/
Drose_link.c105 ax25s = neigh->ax25; in rose_send_frame()
106 neigh->ax25 = ax25_send_frame(skb, 260, rose_call, &neigh->callsign, neigh->digipeat, neigh->dev); in rose_send_frame()
110 return neigh->ax25 != NULL; in rose_send_frame()
128 ax25s = neigh->ax25; in rose_link_up()
129 neigh->ax25 = ax25_find_cb(rose_call, &neigh->callsign, neigh->digipeat, neigh->dev); in rose_link_up()
133 return neigh->ax25 != NULL; in rose_link_up()
Drose_route.c93 rose_neigh->ax25 = NULL; in rose_add_node()
237 if (rose_neigh->ax25) in rose_remove_neigh()
238 ax25_cb_put(rose_neigh->ax25); in rose_remove_neigh()
247 if (rose_neigh->ax25) in rose_remove_neigh()
248 ax25_cb_put(rose_neigh->ax25); in rose_remove_neigh()
380 sn->ax25 = NULL; in rose_add_loopback_neigh()
812 void rose_link_failed(ax25_cb *ax25, int reason) in rose_link_failed() argument
819 if (rose_neigh->ax25 == ax25) in rose_link_failed()
825 rose_neigh->ax25 = NULL; in rose_link_failed()
826 ax25_cb_put(ax25); in rose_link_failed()
[all …]
/net/
DMakefile33 obj-$(CONFIG_AX25) += ax25/
DKconfig363 source "net/ax25/Kconfig"