Home
last modified time | relevance | path

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

12

/kernel/linux/linux-5.10/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 …]
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 …]
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_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_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 …]
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
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 …]
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()
DKconfig13 <http://www.linux-ax25.org/>.
43 check out the file <file:Documentation/networking/ax25.rst> 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.rst>. More information about
109 <http://www.linux-ax25.org>. You also might want to check out the
110 file <file:Documentation/networking/ax25.rst>. More information about
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()
/kernel/linux/linux-5.10/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 …]
/kernel/linux/linux-5.10/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()
811 void rose_link_failed(ax25_cb *ax25, int reason) in rose_link_failed() argument
818 if (rose_neigh->ax25 == ax25) in rose_link_failed()
824 rose_neigh->ax25 = NULL; in rose_link_failed()
825 ax25_cb_put(ax25); in rose_link_failed()
[all …]
/kernel/linux/linux-5.10/include/net/
Dax25.h171 #define ax25_uid_hold(ax25) \ argument
172 refcount_inc(&((ax25)->refcount))
286 static __inline__ void ax25_cb_put(ax25_cb *ax25) in ax25_cb_put() argument
288 if (refcount_dec_and_test(&ax25->refcount)) { in ax25_cb_put()
289 kfree(ax25->digipeat); in ax25_cb_put()
290 kfree(ax25); in ax25_cb_put()
Dnetrom.h92 ax25_cb *ax25; member
139 if (nr_neigh->ax25) in nr_neigh_put()
140 ax25_cb_put(nr_neigh->ax25); in nr_neigh_put()
/kernel/linux/linux-5.10/drivers/net/hamradio/
DKconfig77 <http://www.linux-ax25.org/wiki/Ax25-tools>. Please be sure to
130 utility available in the standard ax25 utilities package. For
147 the driver, use the sethdlc utility available in the standard ax25
163 available in the standard ax25 utilities package. For information on
178 in the standard ax25 utilities package. For information on the
/kernel/linux/linux-5.10/Documentation/networking/
Dax25.rst10 found on http://www.linux-ax25.org.
Dindex.rst44 ax25
/kernel/linux/linux-5.10/net/
DMakefile33 obj-$(CONFIG_AX25) += ax25/

12