/Linux-v5.4/net/ax25/ |
D | ax25_std_in.c | 39 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 …]
|
D | ax25_ds_in.c | 32 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 …]
|
D | ax25_std_timer.c | 29 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 …]
|
D | ax25_timer.c | 39 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 …]
|
D | ax25_ds_timer.c | 68 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 …]
|
D | ax25_subr.c | 33 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 …]
|
D | ax25_out.c | 35 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 …]
|
D | ax25_std_subr.c | 30 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 …]
|
D | af_ax25.c | 63 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() 140 void ax25_cb_add(ax25_cb *ax25) in ax25_cb_add() argument 143 ax25_cb_hold(ax25); in ax25_cb_add() 144 hlist_add_head(&ax25->ax25_node, &ax25_list); in ax25_cb_add() 270 ax25_cb *ax25 = from_timer(ax25, t, dtimer); in ax25_destroy_timer() local 273 sk=ax25->sk; in ax25_destroy_timer() 277 ax25_destroy_socket(ax25); in ax25_destroy_timer() [all …]
|
D | ax25_ds_subr.c | 28 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 …]
|
D | ax25_in.c | 34 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 …]
|
D | Makefile | 6 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
|
D | ax25_route.c | 389 int ax25_rt_autobind(ax25_cb *ax25, ax25_address *addr) in ax25_rt_autobind() argument 401 if ((ax25->ax25_dev = ax25_dev_ax25dev(ax25_rt->dev)) == NULL) { in ax25_rt_autobind() 408 ax25->source_addr = user->call; in ax25_rt_autobind() 415 ax25->source_addr = *(ax25_address *)ax25->ax25_dev->dev->dev_addr; in ax25_rt_autobind() 419 ax25->digipeat = kmemdup(ax25_rt->digipeat, sizeof(ax25_digi), in ax25_rt_autobind() 421 if (ax25->digipeat == NULL) { in ax25_rt_autobind() 425 ax25_adjust_path(addr, ax25->digipeat); in ax25_rt_autobind() 428 if (ax25->sk != NULL) { in ax25_rt_autobind() 430 bh_lock_sock(ax25->sk); in ax25_rt_autobind() 431 sock_reset_flag(ax25->sk, SOCK_ZAPPED); in ax25_rt_autobind() [all …]
|
D | ax25_ip.c | 108 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()
|
D | Kconfig | 13 <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
|
D | ax25_iface.c | 190 void ax25_link_failed(ax25_cb *ax25, int reason) in ax25_link_failed() argument 196 lf->func(ax25, reason); in ax25_link_failed()
|
/Linux-v5.4/net/netrom/ |
D | nr_route.c | 98 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() 399 nr_neigh->ax25 = NULL; in nr_add_neigh() 706 void nr_link_failed(ax25_cb *ax25, int reason) in nr_link_failed() argument 713 if (s->ax25 == ax25) { in nr_link_failed() 724 nr_neigh->ax25 = NULL; in nr_link_failed() 725 ax25_cb_put(ax25); in nr_link_failed() [all …]
|
/Linux-v5.4/net/rose/ |
D | rose_link.c | 105 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()
|
D | rose_route.c | 93 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() 810 void rose_link_failed(ax25_cb *ax25, int reason) in rose_link_failed() argument 817 if (rose_neigh->ax25 == ax25) in rose_link_failed() 823 rose_neigh->ax25 = NULL; in rose_link_failed() 824 ax25_cb_put(ax25); in rose_link_failed() [all …]
|
/Linux-v5.4/include/net/ |
D | ax25.h | 171 #define ax25_uid_hold(ax25) \ argument 172 refcount_inc(&((ax25)->refcount)) 285 static __inline__ void ax25_cb_put(ax25_cb *ax25) in ax25_cb_put() argument 287 if (refcount_dec_and_test(&ax25->refcount)) { in ax25_cb_put() 288 kfree(ax25->digipeat); in ax25_cb_put() 289 kfree(ax25); in ax25_cb_put()
|
D | netrom.h | 92 ax25_cb *ax25; member 139 if (nr_neigh->ax25) in nr_neigh_put() 140 ax25_cb_put(nr_neigh->ax25); in nr_neigh_put()
|
/Linux-v5.4/drivers/net/hamradio/ |
D | Kconfig | 77 <http://www.linux-ax25.org/wiki/Ax25-tools>. Please be sure to 128 utility available in the standard ax25 utilities package. For 145 the driver, use the sethdlc utility available in the standard ax25 161 available in the standard ax25 utilities package. For information on 176 in the standard ax25 utilities package. For information on the
|
/Linux-v5.4/Documentation/networking/ |
D | ax25.txt | 4 found on http://www.linux-ax25.org.
|
D | z8530drv.txt | 9 2. ftp://ftp.pspt.fi/pub/ham/linux/ax25/z8530drv-utils_3.0-3.tar.gz 304 ifconfig scc0 44.128.1.1 hw ax25 dl0tha-7 311 ax25-utils and the AX.25-HOWTO to learn how to set the parameters of 320 you actually use it or not. First setup your /etc/ax25/axports, 328 ifconfig scc3 44.128.1.1 hw ax25 dl0tha-9 344 ifconfig scc3 hw ax25 dl0tha-9 416 the kissparms program from the ax25-utils package or use the program
|
/Linux-v5.4/net/ |
D | Makefile | 33 obj-$(CONFIG_AX25) += ax25/
|