Lines Matching refs:ax25
19 #include <net/ax25.h>
35 * (aka /proc/sys/net/ax25/{dev}/dama_slave_timeout) is still in
68 ax25_cb *ax25;
79 ax25_for_each(ax25, &ax25_list) {
80 if (ax25->ax25_dev != ax25_dev || !(ax25->condition & AX25_COND_DAMA_MODE))
83 ax25_send_control(ax25, AX25_DISC, AX25_POLLON, AX25_COMMAND);
84 ax25_disconnect(ax25, ETIMEDOUT);
91 void ax25_ds_heartbeat_expiry(ax25_cb *ax25)
93 struct sock *sk=ax25->sk;
98 switch (ax25->state) {
109 ax25_destroy_socket(ax25);
114 ax25_destroy_socket(ax25);
126 (ax25->condition & AX25_COND_OWN_RX_BUSY)) {
127 ax25->condition &= ~AX25_COND_OWN_RX_BUSY;
128 ax25->condition &= ~AX25_COND_ACK_PENDING;
138 ax25_start_heartbeat(ax25);
145 void ax25_ds_t3timer_expiry(ax25_cb *ax25)
147 ax25_send_control(ax25, AX25_DISC, AX25_POLLON, AX25_COMMAND);
148 ax25_dama_off(ax25);
149 ax25_disconnect(ax25, ETIMEDOUT);
156 void ax25_ds_idletimer_expiry(ax25_cb *ax25)
158 ax25_clear_queues(ax25);
160 ax25->n2count = 0;
161 ax25->state = AX25_STATE_2;
163 ax25_calculate_t1(ax25);
164 ax25_start_t1timer(ax25);
165 ax25_stop_t3timer(ax25);
167 if (ax25->sk != NULL) {
168 bh_lock_sock(ax25->sk);
169 ax25->sk->sk_state = TCP_CLOSE;
170 ax25->sk->sk_err = 0;
171 ax25->sk->sk_shutdown |= SEND_SHUTDOWN;
172 if (!sock_flag(ax25->sk, SOCK_DEAD)) {
173 ax25->sk->sk_state_change(ax25->sk);
174 sock_set_flag(ax25->sk, SOCK_DEAD);
176 bh_unlock_sock(ax25->sk);
188 void ax25_ds_t1_timeout(ax25_cb *ax25)
190 switch (ax25->state) {
192 if (ax25->n2count == ax25->n2) {
193 if (ax25->modulus == AX25_MODULUS) {
194 ax25_disconnect(ax25, ETIMEDOUT);
197 ax25->modulus = AX25_MODULUS;
198 ax25->window = ax25->ax25_dev->values[AX25_VALUES_WINDOW];
199 ax25->n2count = 0;
200 ax25_send_control(ax25, AX25_SABM, AX25_POLLOFF, AX25_COMMAND);
203 ax25->n2count++;
204 if (ax25->modulus == AX25_MODULUS)
205 ax25_send_control(ax25, AX25_SABM, AX25_POLLOFF, AX25_COMMAND);
207 ax25_send_control(ax25, AX25_SABME, AX25_POLLOFF, AX25_COMMAND);
212 if (ax25->n2count == ax25->n2) {
213 ax25_send_control(ax25, AX25_DISC, AX25_POLLON, AX25_COMMAND);
214 if (!sock_flag(ax25->sk, SOCK_DESTROY))
215 ax25_disconnect(ax25, ETIMEDOUT);
218 ax25->n2count++;
223 if (ax25->n2count == ax25->n2) {
224 ax25_send_control(ax25, AX25_DM, AX25_POLLON, AX25_RESPONSE);
225 ax25_disconnect(ax25, ETIMEDOUT);
228 ax25->n2count++;
233 ax25_calculate_t1(ax25);
234 ax25_start_t1timer(ax25);