Home
last modified time | relevance | path

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

/net/ax25/
Dax25_std_in.c43 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
47 ax25->modulus = AX25_MODULUS; in ax25_std_state1_machine()
48 ax25->window = ax25->ax25_dev->values[AX25_VALUES_WINDOW]; in ax25_std_state1_machine()
49 ax25_send_control(ax25, AX25_UA, pf, AX25_RESPONSE); in ax25_std_state1_machine()
53 ax25->modulus = AX25_EMODULUS; in ax25_std_state1_machine()
54 ax25->window = ax25->ax25_dev->values[AX25_VALUES_EWINDOW]; in ax25_std_state1_machine()
55 ax25_send_control(ax25, AX25_UA, pf, AX25_RESPONSE); in ax25_std_state1_machine()
59 ax25_send_control(ax25, AX25_DM, pf, AX25_RESPONSE); in ax25_std_state1_machine()
64 ax25_calculate_rtt(ax25); in ax25_std_state1_machine()
65 ax25_stop_t1timer(ax25); in ax25_std_state1_machine()
[all …]
Dax25_ds_in.c36 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
40 ax25->modulus = AX25_MODULUS; in ax25_ds_state1_machine()
41 ax25->window = ax25->ax25_dev->values[AX25_VALUES_WINDOW]; in ax25_ds_state1_machine()
42 ax25_send_control(ax25, AX25_UA, pf, AX25_RESPONSE); in ax25_ds_state1_machine()
46 ax25->modulus = AX25_EMODULUS; in ax25_ds_state1_machine()
47 ax25->window = ax25->ax25_dev->values[AX25_VALUES_EWINDOW]; in ax25_ds_state1_machine()
48 ax25_send_control(ax25, AX25_UA, pf, AX25_RESPONSE); in ax25_ds_state1_machine()
52 ax25_send_control(ax25, AX25_DM, pf, AX25_RESPONSE); in ax25_ds_state1_machine()
56 ax25_calculate_rtt(ax25); in ax25_ds_state1_machine()
57 ax25_stop_t1timer(ax25); in ax25_ds_state1_machine()
[all …]
Dax25_std_timer.c33 void ax25_std_heartbeat_expiry(ax25_cb *ax25) in ax25_std_heartbeat_expiry() argument
35 struct sock *sk = ax25->sk; in ax25_std_heartbeat_expiry()
40 switch (ax25->state) { in ax25_std_heartbeat_expiry()
49 ax25_destroy_socket(ax25); in ax25_std_heartbeat_expiry()
53 ax25_destroy_socket(ax25); in ax25_std_heartbeat_expiry()
66 (ax25->condition & AX25_COND_OWN_RX_BUSY)) { in ax25_std_heartbeat_expiry()
67 ax25->condition &= ~AX25_COND_OWN_RX_BUSY; in ax25_std_heartbeat_expiry()
68 ax25->condition &= ~AX25_COND_ACK_PENDING; in ax25_std_heartbeat_expiry()
69 ax25_send_control(ax25, AX25_RR, AX25_POLLOFF, AX25_RESPONSE); in ax25_std_heartbeat_expiry()
78 ax25_start_heartbeat(ax25); in ax25_std_heartbeat_expiry()
[all …]
Dax25_timer.c43 void ax25_setup_timers(ax25_cb *ax25) in ax25_setup_timers() argument
45 setup_timer(&ax25->timer, ax25_heartbeat_expiry, (unsigned long)ax25); in ax25_setup_timers()
46 setup_timer(&ax25->t1timer, ax25_t1timer_expiry, (unsigned long)ax25); in ax25_setup_timers()
47 setup_timer(&ax25->t2timer, ax25_t2timer_expiry, (unsigned long)ax25); in ax25_setup_timers()
48 setup_timer(&ax25->t3timer, ax25_t3timer_expiry, (unsigned long)ax25); in ax25_setup_timers()
49 setup_timer(&ax25->idletimer, ax25_idletimer_expiry, in ax25_setup_timers()
50 (unsigned long)ax25); in ax25_setup_timers()
53 void ax25_start_heartbeat(ax25_cb *ax25) in ax25_start_heartbeat() argument
55 mod_timer(&ax25->timer, jiffies + 5 * HZ); in ax25_start_heartbeat()
58 void ax25_start_t1timer(ax25_cb *ax25) in ax25_start_t1timer() argument
[all …]
Dax25_ds_timer.c73 ax25_cb *ax25; in ax25_ds_timeout() local
85 ax25_for_each(ax25, node, &ax25_list) { in ax25_ds_timeout()
86 if (ax25->ax25_dev != ax25_dev || !(ax25->condition & AX25_COND_DAMA_MODE)) in ax25_ds_timeout()
89 ax25_send_control(ax25, AX25_DISC, AX25_POLLON, AX25_COMMAND); in ax25_ds_timeout()
90 ax25_disconnect(ax25, ETIMEDOUT); in ax25_ds_timeout()
97 void ax25_ds_heartbeat_expiry(ax25_cb *ax25) in ax25_ds_heartbeat_expiry() argument
99 struct sock *sk=ax25->sk; in ax25_ds_heartbeat_expiry()
104 switch (ax25->state) { in ax25_ds_heartbeat_expiry()
114 ax25_destroy_socket(ax25); in ax25_ds_heartbeat_expiry()
118 ax25_destroy_socket(ax25); in ax25_ds_heartbeat_expiry()
[all …]
Dax25_out.c39 ax25_cb *ax25; in ax25_send_frame() local
55 if ((ax25 = ax25_find_cb(src, dest, digi, dev)) != NULL) { in ax25_send_frame()
56 ax25_output(ax25, paclen, skb); in ax25_send_frame()
57 return ax25; /* It already existed */ in ax25_send_frame()
63 if ((ax25 = ax25_create_cb()) == NULL) in ax25_send_frame()
66 ax25_fillin_cb(ax25, ax25_dev); in ax25_send_frame()
68 ax25->source_addr = *src; in ax25_send_frame()
69 ax25->dest_addr = *dest; in ax25_send_frame()
72 ax25->digipeat = kmemdup(digi, sizeof(*digi), GFP_ATOMIC); in ax25_send_frame()
73 if (ax25->digipeat == NULL) { in ax25_send_frame()
[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 …]
Daf_ax25.c67 static void ax25_cb_del(ax25_cb *ax25) in ax25_cb_del() argument
69 if (!hlist_unhashed(&ax25->ax25_node)) { in ax25_cb_del()
71 hlist_del_init(&ax25->ax25_node); in ax25_cb_del()
73 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()
279 ax25_cb *ax25=(ax25_cb *)data; in ax25_destroy_timer() local
282 sk=ax25->sk; in ax25_destroy_timer()
286 ax25_destroy_socket(ax25); in ax25_destroy_timer()
[all …]
Dax25_std_subr.c34 void ax25_std_nr_error_recovery(ax25_cb *ax25) in ax25_std_nr_error_recovery() argument
36 ax25_std_establish_data_link(ax25); in ax25_std_nr_error_recovery()
39 void ax25_std_establish_data_link(ax25_cb *ax25) in ax25_std_establish_data_link() argument
41 ax25->condition = 0x00; in ax25_std_establish_data_link()
42 ax25->n2count = 0; in ax25_std_establish_data_link()
44 if (ax25->modulus == AX25_MODULUS) in ax25_std_establish_data_link()
45 ax25_send_control(ax25, AX25_SABM, AX25_POLLON, AX25_COMMAND); in ax25_std_establish_data_link()
47 ax25_send_control(ax25, AX25_SABME, AX25_POLLON, AX25_COMMAND); in ax25_std_establish_data_link()
49 ax25_calculate_t1(ax25); in ax25_std_establish_data_link()
50 ax25_stop_idletimer(ax25); in ax25_std_establish_data_link()
[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
67 ax25_std_enquiry_response(ax25); in ax25_ds_enquiry_response()
69 if (!(ax25->condition & AX25_COND_PEER_RX_BUSY)) { in ax25_ds_enquiry_response()
70 ax25_requeue_frames(ax25); in ax25_ds_enquiry_response()
71 ax25_kick(ax25); in ax25_ds_enquiry_response()
74 …if (ax25->state == AX25_STATE_1 || ax25->state == AX25_STATE_2 || skb_peek(&ax25->ack_queue) != NU… in ax25_ds_enquiry_response()
75 ax25_ds_t1_timeout(ax25); in ax25_ds_enquiry_response()
77 ax25->n2count = 0; in ax25_ds_enquiry_response()
[all …]
Dax25_in.c38 static int ax25_rx_fragment(ax25_cb *ax25, struct sk_buff *skb) in ax25_rx_fragment() argument
42 if (ax25->fragno != 0) { in ax25_rx_fragment()
44 if ((ax25->fragno - 1) == (*skb->data & AX25_SEG_REM)) { in ax25_rx_fragment()
46 ax25->fragno = *skb->data & AX25_SEG_REM; in ax25_rx_fragment()
48 ax25->fraglen += skb->len; in ax25_rx_fragment()
49 skb_queue_tail(&ax25->frag_queue, skb); in ax25_rx_fragment()
52 if (ax25->fragno == 0) { in ax25_rx_fragment()
54 ax25->fraglen, in ax25_rx_fragment()
57 skb_queue_purge(&ax25->frag_queue); in ax25_rx_fragment()
63 skbn->dev = ax25->ax25_dev->dev; in ax25_rx_fragment()
[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.c410 int ax25_rt_autobind(ax25_cb *ax25, ax25_address *addr) in ax25_rt_autobind() argument
419 if ((ax25->ax25_dev = ax25_dev_ax25dev(ax25_rt->dev)) == NULL) { in ax25_rt_autobind()
426 ax25->source_addr = user->call; in ax25_rt_autobind()
433 ax25->source_addr = *(ax25_address *)ax25->ax25_dev->dev->dev_addr; in ax25_rt_autobind()
437 ax25->digipeat = kmemdup(ax25_rt->digipeat, sizeof(ax25_digi), in ax25_rt_autobind()
439 if (ax25->digipeat == NULL) { in ax25_rt_autobind()
443 ax25_adjust_path(addr, ax25->digipeat); in ax25_rt_autobind()
446 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.c112 ax25_cb *ax25; in ax25_rebuild_header() local
178 ax25=ax25_send_frame( in ax25_rebuild_header()
183 if (ax25) { in ax25_rebuild_header()
184 ax25_cb_put(ax25); in ax25_rebuild_header()
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.c197 void ax25_link_failed(ax25_cb *ax25, int reason) in ax25_link_failed() argument
204 lf->func(ax25, reason); in ax25_link_failed()
/net/netrom/
Dnr_route.c90 ax25_address *ax25, ax25_digi *ax25_digi, struct net_device *dev, in nr_add_node() argument
106 nr_neigh = nr_neigh_get_dev(ax25, dev); in nr_add_node()
146 nr_neigh->callsign = *ax25; in nr_add_node()
148 nr_neigh->ax25 = NULL; in nr_add_node()
175 if (quality != 0 && ax25cmp(nr, ax25) == 0 && !nr_neigh->locked) in nr_add_node()
427 nr_neigh->ax25 = NULL; in nr_add_neigh()
725 void nr_link_failed(ax25_cb *ax25, int reason) in nr_link_failed() argument
733 if (s->ax25 == ax25) { in nr_link_failed()
744 nr_neigh->ax25 = NULL; in nr_link_failed()
745 ax25_cb_put(ax25); in nr_link_failed()
[all …]
/net/rose/
Drose_link.c110 neigh->ax25 = ax25_send_frame(skb, 260, rose_call, &neigh->callsign, neigh->digipeat, neigh->dev); in rose_send_frame()
112 return (neigh->ax25 != NULL); in rose_send_frame()
129 neigh->ax25 = ax25_find_cb(rose_call, &neigh->callsign, neigh->digipeat, neigh->dev); in rose_link_up()
131 return (neigh->ax25 != NULL); in rose_link_up()
Drose_route.c95 rose_neigh->ax25 = NULL; in rose_add_node()
374 sn->ax25 = NULL; in rose_add_loopback_neigh()
803 void rose_link_failed(ax25_cb *ax25, int reason) in rose_link_failed() argument
810 if (rose_neigh->ax25 == ax25) in rose_link_failed()
816 rose_neigh->ax25 = NULL; in rose_link_failed()
843 int rose_route_frame(struct sk_buff *skb, ax25_cb *ax25) in rose_route_frame() argument
872 if (ax25cmp(&ax25->dest_addr, &rose_neigh->callsign) == 0 && in rose_route_frame()
873 ax25->ax25_dev->dev == rose_neigh->dev) in rose_route_frame()
880 ax2asc(buf, &ax25->dest_addr)); in rose_route_frame()
/net/
DMakefile37 obj-$(CONFIG_AX25) += ax25/
DKconfig233 source "net/ax25/Kconfig"