/net/ax25/ |
D | ax25_std_in.c | 42 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 46 ax25->modulus = AX25_MODULUS; in ax25_std_state1_machine() 47 ax25->window = ax25->ax25_dev->values[AX25_VALUES_WINDOW]; in ax25_std_state1_machine() 48 ax25_send_control(ax25, AX25_UA, pf, AX25_RESPONSE); in ax25_std_state1_machine() 52 ax25->modulus = AX25_EMODULUS; in ax25_std_state1_machine() 53 ax25->window = ax25->ax25_dev->values[AX25_VALUES_EWINDOW]; in ax25_std_state1_machine() 54 ax25_send_control(ax25, AX25_UA, pf, AX25_RESPONSE); in ax25_std_state1_machine() 58 ax25_send_control(ax25, AX25_DM, pf, AX25_RESPONSE); in ax25_std_state1_machine() 63 ax25_calculate_rtt(ax25); in ax25_std_state1_machine() 64 ax25_stop_t1timer(ax25); in ax25_std_state1_machine() [all …]
|
D | ax25_ds_in.c | 35 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 39 ax25->modulus = AX25_MODULUS; in ax25_ds_state1_machine() 40 ax25->window = ax25->ax25_dev->values[AX25_VALUES_WINDOW]; in ax25_ds_state1_machine() 41 ax25_send_control(ax25, AX25_UA, pf, AX25_RESPONSE); in ax25_ds_state1_machine() 45 ax25->modulus = AX25_EMODULUS; in ax25_ds_state1_machine() 46 ax25->window = ax25->ax25_dev->values[AX25_VALUES_EWINDOW]; in ax25_ds_state1_machine() 47 ax25_send_control(ax25, AX25_UA, pf, AX25_RESPONSE); in ax25_ds_state1_machine() 51 ax25_send_control(ax25, AX25_DM, pf, AX25_RESPONSE); in ax25_ds_state1_machine() 55 ax25_calculate_rtt(ax25); in ax25_ds_state1_machine() 56 ax25_stop_t1timer(ax25); in ax25_ds_state1_machine() [all …]
|
D | ax25_std_timer.c | 32 void ax25_std_heartbeat_expiry(ax25_cb *ax25) in ax25_std_heartbeat_expiry() argument 34 struct sock *sk = ax25->sk; in ax25_std_heartbeat_expiry() 39 switch (ax25->state) { in ax25_std_heartbeat_expiry() 49 ax25_destroy_socket(ax25); in ax25_std_heartbeat_expiry() 54 ax25_destroy_socket(ax25); in ax25_std_heartbeat_expiry() 67 (ax25->condition & AX25_COND_OWN_RX_BUSY)) { in ax25_std_heartbeat_expiry() 68 ax25->condition &= ~AX25_COND_OWN_RX_BUSY; in ax25_std_heartbeat_expiry() 69 ax25->condition &= ~AX25_COND_ACK_PENDING; in ax25_std_heartbeat_expiry() 70 ax25_send_control(ax25, AX25_RR, AX25_POLLOFF, AX25_RESPONSE); in ax25_std_heartbeat_expiry() 79 ax25_start_heartbeat(ax25); in ax25_std_heartbeat_expiry() [all …]
|
D | ax25_timer.c | 42 void ax25_setup_timers(ax25_cb *ax25) in ax25_setup_timers() argument 44 setup_timer(&ax25->timer, ax25_heartbeat_expiry, (unsigned long)ax25); in ax25_setup_timers() 45 setup_timer(&ax25->t1timer, ax25_t1timer_expiry, (unsigned long)ax25); in ax25_setup_timers() 46 setup_timer(&ax25->t2timer, ax25_t2timer_expiry, (unsigned long)ax25); in ax25_setup_timers() 47 setup_timer(&ax25->t3timer, ax25_t3timer_expiry, (unsigned long)ax25); in ax25_setup_timers() 48 setup_timer(&ax25->idletimer, ax25_idletimer_expiry, in ax25_setup_timers() 49 (unsigned long)ax25); in ax25_setup_timers() 52 void ax25_start_heartbeat(ax25_cb *ax25) in ax25_start_heartbeat() argument 54 mod_timer(&ax25->timer, jiffies + 5 * HZ); in ax25_start_heartbeat() 57 void ax25_start_t1timer(ax25_cb *ax25) in ax25_start_t1timer() argument [all …]
|
D | ax25_ds_timer.c | 72 ax25_cb *ax25; in ax25_ds_timeout() local 83 ax25_for_each(ax25, &ax25_list) { in ax25_ds_timeout() 84 if (ax25->ax25_dev != ax25_dev || !(ax25->condition & AX25_COND_DAMA_MODE)) in ax25_ds_timeout() 87 ax25_send_control(ax25, AX25_DISC, AX25_POLLON, AX25_COMMAND); in ax25_ds_timeout() 88 ax25_disconnect(ax25, ETIMEDOUT); in ax25_ds_timeout() 95 void ax25_ds_heartbeat_expiry(ax25_cb *ax25) in ax25_ds_heartbeat_expiry() argument 97 struct sock *sk=ax25->sk; in ax25_ds_heartbeat_expiry() 102 switch (ax25->state) { in ax25_ds_heartbeat_expiry() 113 ax25_destroy_socket(ax25); in ax25_ds_heartbeat_expiry() 118 ax25_destroy_socket(ax25); in ax25_ds_heartbeat_expiry() [all …]
|
D | ax25_subr.c | 36 void ax25_clear_queues(ax25_cb *ax25) in ax25_clear_queues() argument 38 skb_queue_purge(&ax25->write_queue); in ax25_clear_queues() 39 skb_queue_purge(&ax25->ack_queue); in ax25_clear_queues() 40 skb_queue_purge(&ax25->reseq_queue); in ax25_clear_queues() 41 skb_queue_purge(&ax25->frag_queue); in ax25_clear_queues() 49 void ax25_frames_acked(ax25_cb *ax25, unsigned short nr) in ax25_frames_acked() argument 56 if (ax25->va != nr) { in ax25_frames_acked() 57 while (skb_peek(&ax25->ack_queue) != NULL && ax25->va != nr) { in ax25_frames_acked() 58 skb = skb_dequeue(&ax25->ack_queue); in ax25_frames_acked() 60 ax25->va = (ax25->va + 1) % ax25->modulus; in ax25_frames_acked() [all …]
|
D | ax25_out.c | 38 ax25_cb *ax25; in ax25_send_frame() local 54 if ((ax25 = ax25_find_cb(src, dest, digi, dev)) != NULL) { in ax25_send_frame() 55 ax25_output(ax25, paclen, skb); in ax25_send_frame() 56 return ax25; /* It already existed */ in ax25_send_frame() 62 if ((ax25 = ax25_create_cb()) == NULL) in ax25_send_frame() 65 ax25_fillin_cb(ax25, ax25_dev); in ax25_send_frame() 67 ax25->source_addr = *src; in ax25_send_frame() 68 ax25->dest_addr = *dest; in ax25_send_frame() 71 ax25->digipeat = kmemdup(digi, sizeof(*digi), GFP_ATOMIC); in ax25_send_frame() 72 if (ax25->digipeat == NULL) { in ax25_send_frame() [all …]
|
D | af_ax25.c | 66 static void ax25_cb_del(ax25_cb *ax25) in ax25_cb_del() argument 68 if (!hlist_unhashed(&ax25->ax25_node)) { in ax25_cb_del() 70 hlist_del_init(&ax25->ax25_node); in ax25_cb_del() 72 ax25_cb_put(ax25); in ax25_cb_del() 145 void ax25_cb_add(ax25_cb *ax25) in ax25_cb_add() argument 148 ax25_cb_hold(ax25); in ax25_cb_add() 149 hlist_add_head(&ax25->ax25_node, &ax25_list); in ax25_cb_add() 275 ax25_cb *ax25=(ax25_cb *)data; in ax25_destroy_timer() local 278 sk=ax25->sk; in ax25_destroy_timer() 282 ax25_destroy_socket(ax25); in ax25_destroy_timer() [all …]
|
D | ax25_std_subr.c | 33 void ax25_std_nr_error_recovery(ax25_cb *ax25) in ax25_std_nr_error_recovery() argument 35 ax25_std_establish_data_link(ax25); in ax25_std_nr_error_recovery() 38 void ax25_std_establish_data_link(ax25_cb *ax25) in ax25_std_establish_data_link() argument 40 ax25->condition = 0x00; in ax25_std_establish_data_link() 41 ax25->n2count = 0; in ax25_std_establish_data_link() 43 if (ax25->modulus == AX25_MODULUS) in ax25_std_establish_data_link() 44 ax25_send_control(ax25, AX25_SABM, AX25_POLLON, AX25_COMMAND); in ax25_std_establish_data_link() 46 ax25_send_control(ax25, AX25_SABME, AX25_POLLON, AX25_COMMAND); in ax25_std_establish_data_link() 48 ax25_calculate_t1(ax25); in ax25_std_establish_data_link() 49 ax25_stop_idletimer(ax25); in ax25_std_establish_data_link() [all …]
|
D | ax25_in.c | 37 static int ax25_rx_fragment(ax25_cb *ax25, struct sk_buff *skb) in ax25_rx_fragment() argument 41 if (ax25->fragno != 0) { in ax25_rx_fragment() 43 if ((ax25->fragno - 1) == (*skb->data & AX25_SEG_REM)) { in ax25_rx_fragment() 45 ax25->fragno = *skb->data & AX25_SEG_REM; in ax25_rx_fragment() 47 ax25->fraglen += skb->len; in ax25_rx_fragment() 48 skb_queue_tail(&ax25->frag_queue, skb); in ax25_rx_fragment() 51 if (ax25->fragno == 0) { in ax25_rx_fragment() 53 ax25->fraglen, in ax25_rx_fragment() 56 skb_queue_purge(&ax25->frag_queue); in ax25_rx_fragment() 62 skbn->dev = ax25->ax25_dev->dev; in ax25_rx_fragment() [all …]
|
D | ax25_ds_subr.c | 31 void ax25_ds_nr_error_recovery(ax25_cb *ax25) in ax25_ds_nr_error_recovery() argument 33 ax25_ds_establish_data_link(ax25); in ax25_ds_nr_error_recovery() 39 void ax25_ds_enquiry_response(ax25_cb *ax25) in ax25_ds_enquiry_response() argument 66 ax25_std_enquiry_response(ax25); in ax25_ds_enquiry_response() 68 if (!(ax25->condition & AX25_COND_PEER_RX_BUSY)) { in ax25_ds_enquiry_response() 69 ax25_requeue_frames(ax25); in ax25_ds_enquiry_response() 70 ax25_kick(ax25); in ax25_ds_enquiry_response() 73 …if (ax25->state == AX25_STATE_1 || ax25->state == AX25_STATE_2 || skb_peek(&ax25->ack_queue) != NU… in ax25_ds_enquiry_response() 74 ax25_ds_t1_timeout(ax25); in ax25_ds_enquiry_response() 76 ax25->n2count = 0; in ax25_ds_enquiry_response() [all …]
|
D | Makefile | 5 obj-$(CONFIG_AX25) += ax25.o 7 ax25-y := ax25_addr.o ax25_dev.o ax25_iface.o ax25_in.o ax25_ip.o ax25_out.o \ 10 ax25-$(CONFIG_AX25_DAMA_SLAVE) += ax25_ds_in.o ax25_ds_subr.o ax25_ds_timer.o 11 ax25-$(CONFIG_SYSCTL) += sysctl_net_ax25.o
|
D | ax25_route.c | 406 int ax25_rt_autobind(ax25_cb *ax25, ax25_address *addr) in ax25_rt_autobind() argument 418 if ((ax25->ax25_dev = ax25_dev_ax25dev(ax25_rt->dev)) == NULL) { in ax25_rt_autobind() 425 ax25->source_addr = user->call; in ax25_rt_autobind() 432 ax25->source_addr = *(ax25_address *)ax25->ax25_dev->dev->dev_addr; in ax25_rt_autobind() 436 ax25->digipeat = kmemdup(ax25_rt->digipeat, sizeof(ax25_digi), in ax25_rt_autobind() 438 if (ax25->digipeat == NULL) { in ax25_rt_autobind() 442 ax25_adjust_path(addr, ax25->digipeat); in ax25_rt_autobind() 445 if (ax25->sk != NULL) { in ax25_rt_autobind() 447 bh_lock_sock(ax25->sk); in ax25_rt_autobind() 448 sock_reset_flag(ax25->sk, SOCK_ZAPPED); in ax25_rt_autobind() [all …]
|
D | ax25_ip.c | 111 ax25_cb *ax25; in ax25_ip_xmit() local 176 ax25=ax25_send_frame( in ax25_ip_xmit() 181 if (ax25) { in ax25_ip_xmit() 182 ax25_cb_put(ax25); in ax25_ip_xmit()
|
D | Kconfig | 12 <http://www.linux-ax25.org/>. 42 check out the file <file:Documentation/networking/ax25.txt> in the 48 module will be called ax25. 63 <http://www.linux-ax25.org>. If unsure, say Y. 89 <http://www.linux-ax25.org>. You also might want to check out the 90 file <file:Documentation/networking/ax25.txt>. More information about 108 <http://www.linux-ax25.org>. You also might want to check out the 109 file <file:Documentation/networking/ax25.txt>. More information about
|
D | ax25_iface.c | 193 void ax25_link_failed(ax25_cb *ax25, int reason) in ax25_link_failed() argument 199 lf->func(ax25, reason); in ax25_link_failed()
|
/net/netrom/ |
D | nr_route.c | 88 ax25_address *ax25, ax25_digi *ax25_digi, struct net_device *dev, in nr_add_node() argument 104 nr_neigh = nr_neigh_get_dev(ax25, dev); in nr_add_node() 143 nr_neigh->callsign = *ax25; in nr_add_node() 145 nr_neigh->ax25 = NULL; in nr_add_node() 172 if (quality != 0 && ax25cmp(nr, ax25) == 0 && !nr_neigh->locked) in nr_add_node() 428 nr_neigh->ax25 = NULL; in nr_add_neigh() 734 void nr_link_failed(ax25_cb *ax25, int reason) in nr_link_failed() argument 741 if (s->ax25 == ax25) { in nr_link_failed() 752 nr_neigh->ax25 = NULL; in nr_link_failed() 753 ax25_cb_put(ax25); in nr_link_failed() [all …]
|
/net/rose/ |
D | rose_link.c | 110 ax25s = neigh->ax25; in rose_send_frame() 111 neigh->ax25 = ax25_send_frame(skb, 260, rose_call, &neigh->callsign, neigh->digipeat, neigh->dev); in rose_send_frame() 115 return neigh->ax25 != NULL; in rose_send_frame() 133 ax25s = neigh->ax25; in rose_link_up() 134 neigh->ax25 = ax25_find_cb(rose_call, &neigh->callsign, neigh->digipeat, neigh->dev); in rose_link_up() 138 return neigh->ax25 != NULL; in rose_link_up()
|
D | rose_route.c | 96 rose_neigh->ax25 = NULL; in rose_add_node() 240 if (rose_neigh->ax25) in rose_remove_neigh() 241 ax25_cb_put(rose_neigh->ax25); in rose_remove_neigh() 250 if (rose_neigh->ax25) in rose_remove_neigh() 251 ax25_cb_put(rose_neigh->ax25); in rose_remove_neigh() 382 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 …]
|
/net/ |
D | Makefile | 31 obj-$(CONFIG_AX25) += ax25/
|
D | Kconfig | 355 source "net/ax25/Kconfig"
|