Home
last modified time | relevance | path

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

/net/ax25/
Dax25_std_in.c42 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 …]
Dax25_ds_in.c35 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 …]
Dax25_std_timer.c32 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 …]
Dax25_timer.c42 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 …]
Dax25_ds_timer.c72 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 …]
Dax25_subr.c36 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 …]
Dax25_out.c38 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 …]
Daf_ax25.c66 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 …]
Dax25_std_subr.c33 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 …]
Dax25_in.c37 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 …]
Dax25_ds_subr.c31 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 …]
DMakefile5 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
Dax25_route.c406 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 …]
Dax25_ip.c111 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()
DKconfig12 <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
Dax25_iface.c193 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/
Dnr_route.c88 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/
Drose_link.c110 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()
Drose_route.c96 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/
DMakefile31 obj-$(CONFIG_AX25) += ax25/
DKconfig355 source "net/ax25/Kconfig"