Lines Matching refs:bclink

59 	spin_lock_bh(&tn->bclink->lock);  in tipc_bclink_lock()
66 spin_unlock_bh(&tn->bclink->lock); in tipc_bclink_unlock()
73 tipc_sk_mcast_rcv(net, &tn->bclink->arrvq, &tn->bclink->inputq); in tipc_bclink_input()
101 tipc_nmap_add(&tn->bclink->bcast_nodes, addr); in tipc_bclink_add_node()
110 tipc_nmap_remove(&tn->bclink->bcast_nodes, addr); in tipc_bclink_remove_node()
135 node->bclink.last_sent = less_eq(node->bclink.last_sent, seqno) ? in bclink_update_last_sent()
136 seqno : node->bclink.last_sent; in bclink_update_last_sent()
148 return tn->bclink->retransmit_to; in tipc_bclink_retransmit_to()
180 tipc_sk_rcv(net, &tn->bclink->link.wakeupq); in tipc_bclink_wakeup_users()
197 if (unlikely(!n_ptr->bclink.recv_permitted)) in tipc_bclink_acknowledge()
214 if (tn->bclink->bcast_nodes.count) in tipc_bclink_acknowledge()
225 less_eq(acked, n_ptr->bclink.acked)) in tipc_bclink_acknowledge()
231 if (more(buf_seqno(skb), n_ptr->bclink.acked)) in tipc_bclink_acknowledge()
247 n_ptr->bclink.acked = acked; in tipc_bclink_acknowledge()
273 if (less_eq(last_sent, n_ptr->bclink.last_in)) in tipc_bclink_update_link_state()
279 if (n_ptr->bclink.last_sent == n_ptr->bclink.last_in) in tipc_bclink_update_link_state()
283 if ((++n_ptr->bclink.oos_state) == 1) { in tipc_bclink_update_link_state()
284 if (n_ptr->bclink.deferred_size < (TIPC_MIN_LINK_WIN / 2)) in tipc_bclink_update_link_state()
286 n_ptr->bclink.oos_state++; in tipc_bclink_update_link_state()
290 if (n_ptr->bclink.oos_state & 0x1) in tipc_bclink_update_link_state()
297 struct sk_buff *skb = skb_peek(&n_ptr->bclink.deferdq); in tipc_bclink_update_link_state()
298 u32 to = skb ? buf_seqno(skb) - 1 : n_ptr->bclink.last_sent; in tipc_bclink_update_link_state()
304 msg_set_bcast_ack(msg, n_ptr->bclink.last_in); in tipc_bclink_update_link_state()
305 msg_set_bcgap_after(msg, n_ptr->bclink.last_in); in tipc_bclink_update_link_state()
314 n_ptr->bclink.oos_state++; in tipc_bclink_update_link_state()
332 if (n_ptr->bclink.recv_permitted && in bclink_peek_nack()
333 (n_ptr->bclink.last_in != n_ptr->bclink.last_sent) && in bclink_peek_nack()
334 (n_ptr->bclink.last_in == msg_bcgap_after(msg))) in bclink_peek_nack()
335 n_ptr->bclink.oos_state = 2; in bclink_peek_nack()
351 struct tipc_bclink *bclink = tn->bclink; in tipc_bclink_xmit() local
365 if (likely(bclink)) { in tipc_bclink_xmit()
367 if (likely(bclink->bcast_nodes.count)) { in tipc_bclink_xmit()
406 node->bclink.last_in = seqno; in bclink_accept_pkt()
407 node->bclink.oos_state = 0; in bclink_accept_pkt()
448 if (unlikely(!node->bclink.recv_permitted)) in tipc_bclink_rcv()
459 tn->bclink->retransmit_to = node; in tipc_bclink_rcv()
474 next_in = mod(node->bclink.last_in + 1); in tipc_bclink_rcv()
475 arrvq = &tn->bclink->arrvq; in tipc_bclink_rcv()
476 inputq = &tn->bclink->inputq; in tipc_bclink_rcv()
507 tipc_buf_append(&node->bclink.reasm_buf, &buf); in tipc_bclink_rcv()
508 if (unlikely(!buf && !node->bclink.reasm_buf)) { in tipc_bclink_rcv()
535 if (node->bclink.last_in == node->bclink.last_sent) in tipc_bclink_rcv()
538 if (skb_queue_empty(&node->bclink.deferdq)) { in tipc_bclink_rcv()
539 node->bclink.oos_state = 1; in tipc_bclink_rcv()
543 msg = buf_msg(skb_peek(&node->bclink.deferdq)); in tipc_bclink_rcv()
550 buf = __skb_dequeue(&node->bclink.deferdq); in tipc_bclink_rcv()
556 deferred = tipc_link_defer_pkt(&node->bclink.deferdq, in tipc_bclink_rcv()
580 return (n_ptr->bclink.recv_permitted && in tipc_bclink_acks_missing()
581 (tipc_bclink_get_last_sent(n_ptr->net) != n_ptr->bclink.acked)); in tipc_bclink_acks_missing()
602 struct tipc_bclink *bclink = tn->bclink; in tipc_bcbearer_send() local
610 bcbuf_set_acks(buf, bclink->bcast_nodes.count); in tipc_bcbearer_send()
614 if (WARN_ON(!bclink->bcast_nodes.count)) { in tipc_bcbearer_send()
621 bcbearer->remains = bclink->bcast_nodes; in tipc_bcbearer_send()
873 struct tipc_bclink *bclink; in tipc_bclink_init() local
880 bclink = kzalloc(sizeof(*bclink), GFP_ATOMIC); in tipc_bclink_init()
881 if (!bclink) { in tipc_bclink_init()
886 bcl = &bclink->link; in tipc_bclink_init()
891 spin_lock_init(&bclink->lock); in tipc_bclink_init()
897 spin_lock_init(&bclink->node.lock); in tipc_bclink_init()
898 __skb_queue_head_init(&bclink->arrvq); in tipc_bclink_init()
899 skb_queue_head_init(&bclink->inputq); in tipc_bclink_init()
900 bcl->owner = &bclink->node; in tipc_bclink_init()
911 tn->bclink = bclink; in tipc_bclink_init()
927 kfree(tn->bclink); in tipc_bclink_stop()