/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 | 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() 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 …]
|
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 | 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 | 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_route.c | 398 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 …]
|
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 | 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_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 | 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()
|
/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() 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/ |
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() 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/ |
D | Makefile | 33 obj-$(CONFIG_AX25) += ax25/
|
D | Kconfig | 363 source "net/ax25/Kconfig"
|