Lines Matching refs:nb

41 static void x25_transmit_restart_confirmation(struct x25_neigh *nb);
42 static void x25_transmit_restart_request(struct x25_neigh *nb);
47 static inline void x25_start_t20timer(struct x25_neigh *nb) in x25_start_t20timer() argument
49 mod_timer(&nb->t20timer, jiffies + nb->t20); in x25_start_t20timer()
54 struct x25_neigh *nb = (struct x25_neigh *)param; in x25_t20timer_expiry() local
56 x25_transmit_restart_request(nb); in x25_t20timer_expiry()
58 x25_start_t20timer(nb); in x25_t20timer_expiry()
61 static inline void x25_stop_t20timer(struct x25_neigh *nb) in x25_stop_t20timer() argument
63 del_timer(&nb->t20timer); in x25_stop_t20timer()
66 static inline int x25_t20timer_pending(struct x25_neigh *nb) in x25_t20timer_pending() argument
68 return timer_pending(&nb->t20timer); in x25_t20timer_pending()
74 void x25_link_control(struct sk_buff *skb, struct x25_neigh *nb, in x25_link_control() argument
82 confirm = !x25_t20timer_pending(nb); in x25_link_control()
83 x25_stop_t20timer(nb); in x25_link_control()
84 nb->state = X25_LINK_STATE_3; in x25_link_control()
86 x25_transmit_restart_confirmation(nb); in x25_link_control()
90 x25_stop_t20timer(nb); in x25_link_control()
91 nb->state = X25_LINK_STATE_3; in x25_link_control()
109 if (nb->state == X25_LINK_STATE_3) in x25_link_control()
110 while ((skbn = skb_dequeue(&nb->queue)) != NULL) in x25_link_control()
111 x25_send_frame(skbn, nb); in x25_link_control()
117 static void x25_transmit_restart_request(struct x25_neigh *nb) in x25_transmit_restart_request() argument
130 *dptr++ = nb->extended ? X25_GFI_EXTSEQ : X25_GFI_STDSEQ; in x25_transmit_restart_request()
138 x25_send_frame(skb, nb); in x25_transmit_restart_request()
144 static void x25_transmit_restart_confirmation(struct x25_neigh *nb) in x25_transmit_restart_confirmation() argument
157 *dptr++ = nb->extended ? X25_GFI_EXTSEQ : X25_GFI_STDSEQ; in x25_transmit_restart_confirmation()
163 x25_send_frame(skb, nb); in x25_transmit_restart_confirmation()
170 void x25_transmit_clear_request(struct x25_neigh *nb, unsigned int lci, in x25_transmit_clear_request() argument
184 *dptr++ = ((lci >> 8) & 0x0F) | (nb->extended ? in x25_transmit_clear_request()
194 x25_send_frame(skb, nb); in x25_transmit_clear_request()
197 void x25_transmit_link(struct sk_buff *skb, struct x25_neigh *nb) in x25_transmit_link() argument
199 switch (nb->state) { in x25_transmit_link()
201 skb_queue_tail(&nb->queue, skb); in x25_transmit_link()
202 nb->state = X25_LINK_STATE_1; in x25_transmit_link()
203 x25_establish_link(nb); in x25_transmit_link()
207 skb_queue_tail(&nb->queue, skb); in x25_transmit_link()
210 x25_send_frame(skb, nb); in x25_transmit_link()
218 void x25_link_established(struct x25_neigh *nb) in x25_link_established() argument
220 switch (nb->state) { in x25_link_established()
222 nb->state = X25_LINK_STATE_2; in x25_link_established()
225 x25_transmit_restart_request(nb); in x25_link_established()
226 nb->state = X25_LINK_STATE_2; in x25_link_established()
227 x25_start_t20timer(nb); in x25_link_established()
237 void x25_link_terminated(struct x25_neigh *nb) in x25_link_terminated() argument
239 nb->state = X25_LINK_STATE_0; in x25_link_terminated()
241 x25_kill_by_neigh(nb); in x25_link_terminated()
249 struct x25_neigh *nb = kmalloc(sizeof(*nb), GFP_ATOMIC); in x25_link_device_up() local
251 if (!nb) in x25_link_device_up()
254 skb_queue_head_init(&nb->queue); in x25_link_device_up()
255 setup_timer(&nb->t20timer, x25_t20timer_expiry, (unsigned long)nb); in x25_link_device_up()
258 nb->dev = dev; in x25_link_device_up()
259 nb->state = X25_LINK_STATE_0; in x25_link_device_up()
260 nb->extended = 0; in x25_link_device_up()
264 nb->global_facil_mask = X25_MASK_REVERSE | in x25_link_device_up()
268 nb->t20 = sysctl_x25_restart_request_timeout; in x25_link_device_up()
269 atomic_set(&nb->refcnt, 1); in x25_link_device_up()
272 list_add(&nb->node, &x25_neigh_list); in x25_link_device_up()
283 static void __x25_remove_neigh(struct x25_neigh *nb) in __x25_remove_neigh() argument
285 skb_queue_purge(&nb->queue); in __x25_remove_neigh()
286 x25_stop_t20timer(nb); in __x25_remove_neigh()
288 if (nb->node.next) { in __x25_remove_neigh()
289 list_del(&nb->node); in __x25_remove_neigh()
290 x25_neigh_put(nb); in __x25_remove_neigh()
299 struct x25_neigh *nb; in x25_link_device_down() local
305 nb = list_entry(entry, struct x25_neigh, node); in x25_link_device_down()
307 if (nb->dev == dev) { in x25_link_device_down()
308 __x25_remove_neigh(nb); in x25_link_device_down()
321 struct x25_neigh *nb, *use = NULL; in x25_get_neigh() local
326 nb = list_entry(entry, struct x25_neigh, node); in x25_get_neigh()
328 if (nb->dev == dev) { in x25_get_neigh()
329 use = nb; in x25_get_neigh()
346 struct x25_neigh *nb; in x25_subscr_ioctl() local
361 if ((nb = x25_get_neigh(dev)) == NULL) in x25_subscr_ioctl()
368 x25_subscr.extended = nb->extended; in x25_subscr_ioctl()
369 x25_subscr.global_facil_mask = nb->global_facil_mask; in x25_subscr_ioctl()
378 nb->extended = x25_subscr.extended; in x25_subscr_ioctl()
379 nb->global_facil_mask = x25_subscr.global_facil_mask; in x25_subscr_ioctl()
383 x25_neigh_put(nb); in x25_subscr_ioctl()
397 struct x25_neigh *nb; in x25_link_free() local
405 nb = list_entry(entry, struct x25_neigh, node); in x25_link_free()
406 dev = nb->dev; in x25_link_free()
407 __x25_remove_neigh(nb); in x25_link_free()