Home
last modified time | relevance | path

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

12

/linux/net/ax25/
H A 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 …]
H A 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 …]
H A 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 …]
H A 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 …]
H A 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 …]
H A 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 …]
H A Daf_ax25.c63 static void ax25_cb_del(ax25_cb *ax25) in ax25_cb_del() argument
66 if (!hlist_unhashed(&ax25->ax25_node)) { in ax25_cb_del()
67 hlist_del_init(&ax25->ax25_node); in ax25_cb_del()
68 ax25_cb_put(ax25); in ax25_cb_del()
160 void ax25_cb_add(ax25_cb *ax25) in ax25_cb_add() argument
163 ax25_cb_hold(ax25); in ax25_cb_add()
164 hlist_add_head(&ax25->ax25_node, &ax25_list); in ax25_cb_add()
290 ax25_cb *ax25 = timer_container_of(ax25, t, dtimer); in ax25_destroy_timer() local
293 sk=ax25->sk; in ax25_destroy_timer()
297 ax25_destroy_socket(ax25); in ax25_destroy_timer()
[all …]
H A 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 …]
H A 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 …]
H A 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 …]
H A 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
H A DKconfig13 <https://linux-ax25.in-berlin.de>.
43 check out the file <file:Documentation/networking/ax25.rst> in the
49 module will be called ax25.
64 <https://linux-ax25.in-berlin.de>. If unsure, say Y.
76 <https://linux-ax25.in-berlin.de>. You also might want to check out
77 the file <file:Documentation/networking/ax25.rst>. More information
95 <https://linux-ax25.in-berlin.de>. You also might want to check out
96 the file <file:Documentation/networking/ax25.rst>. More information
H A 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()
/linux/net/netrom/
H A 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()
397 nr_neigh->ax25 = NULL; in nr_add_neigh()
705 void nr_link_failed(ax25_cb *ax25, int reason) in nr_link_failed() argument
712 if (s->ax25 == ax25) { in nr_link_failed()
723 nr_neigh->ax25 = NULL; in nr_link_failed()
724 ax25_cb_put(ax25); in nr_link_failed()
[all …]
/linux/net/rose/
H A 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()
H A Drose_route.c93 rose_neigh->ax25 = NULL; in rose_add_node()
378 sn->ax25 = NULL; in rose_add_loopback_neigh()
816 void rose_link_failed(ax25_cb *ax25, int reason) in rose_link_failed() argument
823 if (rose_neigh->ax25 == ax25) in rose_link_failed()
829 rose_neigh->ax25 = NULL; in rose_link_failed()
830 ax25_cb_put(ax25); in rose_link_failed()
858 int rose_route_frame(struct sk_buff *skb, ax25_cb *ax25) in rose_route_frame() argument
875 if (!ax25) in rose_route_frame()
893 if (ax25cmp(&ax25->dest_addr, &rose_neigh->callsign) == 0 && in rose_route_frame()
894 ax25->ax25_dev->dev == rose_neigh->dev) in rose_route_frame()
[all …]
/linux/include/net/
H A Dax25.h169 #define ax25_uid_hold(ax25) \ argument
170 refcount_inc(&((ax25)->refcount))
273 static __inline__ void ax25_cb_put(ax25_cb *ax25) in ax25_cb_put() argument
275 if (refcount_dec_and_test(&ax25->refcount)) { in ax25_cb_put()
276 kfree(ax25->digipeat); in ax25_cb_put()
277 kfree(ax25); in ax25_cb_put()
H A Dnetrom.h93 ax25_cb *ax25; member
140 if (nr_neigh->ax25) in nr_neigh_put()
141 ax25_cb_put(nr_neigh->ax25); in nr_neigh_put()
H A Drose.h97 ax25_cb *ax25; member
163 if (rose_neigh->ax25) in rose_neigh_put()
164 ax25_cb_put(rose_neigh->ax25); in rose_neigh_put()
/linux/drivers/net/hamradio/
H A DKconfig97 utility available in the standard ax25 utilities package.
114 the driver, use the sethdlc utility available in the standard ax25
129 available in the standard ax25 utilities package.
144 in the standard ax25 utilities package.
/linux/Documentation/networking/
H A Dax25.rst10 found on https://linux-ax25.in-berlin.de.
/linux/Documentation/networking/device_drivers/hamradio/
H A Dz8530drv.rst16 2. ftp://ftp.pspt.fi/pub/ham/linux/ax25/z8530drv-utils_3.0-3.tar.gz
321 ifconfig scc0 44.128.1.1 hw ax25 dl0tha-7
328 ax25-utils and the AX.25-HOWTO to learn how to set the parameters of
337 you actually use it or not. First setup your /etc/ax25/axports,
345 ifconfig scc3 44.128.1.1 hw ax25 dl0tha-9
361 ifconfig scc3 hw ax25 dl0tha-9
435 the kissparms program from the ax25-utils package or use the program
H A Dbaycom.rst91 sethdlc from the ax25 utilities may be used to set driver states etc.
93 in the ax25 utilities package) to convert packets of a network interface
/linux/Documentation/translations/zh_CN/networking/
H A Dindex.rst71 * ax25
/linux/Documentation/admin-guide/sysctl/
H A Dnet.rst39 ax25 AX25 netrom NET/ROM

12