Lines Matching refs:neigh
34 static void rose_transmit_restart_confirmation(struct rose_neigh *neigh);
35 static void rose_transmit_restart_request(struct rose_neigh *neigh);
37 void rose_start_ftimer(struct rose_neigh *neigh) in rose_start_ftimer() argument
39 del_timer(&neigh->ftimer); in rose_start_ftimer()
41 neigh->ftimer.data = (unsigned long)neigh; in rose_start_ftimer()
42 neigh->ftimer.function = &rose_ftimer_expiry; in rose_start_ftimer()
43 neigh->ftimer.expires = in rose_start_ftimer()
46 add_timer(&neigh->ftimer); in rose_start_ftimer()
49 static void rose_start_t0timer(struct rose_neigh *neigh) in rose_start_t0timer() argument
51 del_timer(&neigh->t0timer); in rose_start_t0timer()
53 neigh->t0timer.data = (unsigned long)neigh; in rose_start_t0timer()
54 neigh->t0timer.function = &rose_t0timer_expiry; in rose_start_t0timer()
55 neigh->t0timer.expires = in rose_start_t0timer()
58 add_timer(&neigh->t0timer); in rose_start_t0timer()
61 void rose_stop_ftimer(struct rose_neigh *neigh) in rose_stop_ftimer() argument
63 del_timer(&neigh->ftimer); in rose_stop_ftimer()
66 void rose_stop_t0timer(struct rose_neigh *neigh) in rose_stop_t0timer() argument
68 del_timer(&neigh->t0timer); in rose_stop_t0timer()
71 int rose_ftimer_running(struct rose_neigh *neigh) in rose_ftimer_running() argument
73 return timer_pending(&neigh->ftimer); in rose_ftimer_running()
76 static int rose_t0timer_running(struct rose_neigh *neigh) in rose_t0timer_running() argument
78 return timer_pending(&neigh->t0timer); in rose_t0timer_running()
87 struct rose_neigh *neigh = (struct rose_neigh *)param; in rose_t0timer_expiry() local
89 rose_transmit_restart_request(neigh); in rose_t0timer_expiry()
91 neigh->dce_mode = 0; in rose_t0timer_expiry()
93 rose_start_t0timer(neigh); in rose_t0timer_expiry()
101 static int rose_send_frame(struct sk_buff *skb, struct rose_neigh *neigh) in rose_send_frame() argument
106 rose_call = (ax25_address *)neigh->dev->dev_addr; in rose_send_frame()
110 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()
120 static int rose_link_up(struct rose_neigh *neigh) in rose_link_up() argument
125 rose_call = (ax25_address *)neigh->dev->dev_addr; in rose_link_up()
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()
137 void rose_link_rx_restart(struct sk_buff *skb, struct rose_neigh *neigh, unsigned short frametype) in rose_link_rx_restart() argument
143 rose_stop_t0timer(neigh); in rose_link_rx_restart()
144 neigh->restarted = 1; in rose_link_rx_restart()
145 neigh->dce_mode = (skb->data[3] == ROSE_DTE_ORIGINATED); in rose_link_rx_restart()
146 rose_transmit_restart_confirmation(neigh); in rose_link_rx_restart()
150 rose_stop_t0timer(neigh); in rose_link_rx_restart()
151 neigh->restarted = 1; in rose_link_rx_restart()
163 if (neigh->restarted) { in rose_link_rx_restart()
164 while ((skbn = skb_dequeue(&neigh->queue)) != NULL) in rose_link_rx_restart()
165 if (!rose_send_frame(skbn, neigh)) in rose_link_rx_restart()
173 static void rose_transmit_restart_request(struct rose_neigh *neigh) in rose_transmit_restart_request() argument
195 if (!rose_send_frame(skb, neigh)) in rose_transmit_restart_request()
202 static void rose_transmit_restart_confirmation(struct rose_neigh *neigh) in rose_transmit_restart_confirmation() argument
222 if (!rose_send_frame(skb, neigh)) in rose_transmit_restart_confirmation()
230 void rose_transmit_clear_request(struct rose_neigh *neigh, unsigned int lci, unsigned char cause, u… in rose_transmit_clear_request() argument
252 if (!rose_send_frame(skb, neigh)) in rose_transmit_clear_request()
256 void rose_transmit_link(struct sk_buff *skb, struct rose_neigh *neigh) in rose_transmit_link() argument
267 if (neigh->loopback) { in rose_transmit_link()
268 rose_loopback_queue(skb, neigh); in rose_transmit_link()
272 if (!rose_link_up(neigh)) in rose_transmit_link()
273 neigh->restarted = 0; in rose_transmit_link()
278 if (neigh->restarted) { in rose_transmit_link()
279 if (!rose_send_frame(skb, neigh)) in rose_transmit_link()
282 skb_queue_tail(&neigh->queue, skb); in rose_transmit_link()
284 if (!rose_t0timer_running(neigh)) { in rose_transmit_link()
285 rose_transmit_restart_request(neigh); in rose_transmit_link()
286 neigh->dce_mode = 0; in rose_transmit_link()
287 rose_start_t0timer(neigh); in rose_transmit_link()