• Jon Maloy's avatar
    tipc: base group replicast ack counter on number of actual receivers · 0a3d805c
    Jon Maloy authored
    In commit 2f487712 ("tipc: guarantee that group broadcast doesn't
    bypass group unicast") we introduced a mechanism that requires the first
    (replicated) broadcast sent after a unicast to be acknowledged by all
    receivers before permitting sending of the next (true) broadcast.
    
    The counter for keeping track of the number of acknowledges to expect
    is based on the tipc_group::member_cnt variable. But this misses that
    some of the known members may not be ready for reception, and will never
    acknowledge the message, either because they haven't fully joined the
    group or because they are leaving the group. Such members are identified
    by not fulfilling the condition tested for in the function
    tipc_group_is_enabled().
    
    We now set the counter for the actual number of acks to receive at the
    moment the message is sent, by just counting the number of recipients
    satisfying the tipc_group_is_enabled() test.
    Signed-off-by: default avatarJon Maloy <jon.maloy@ericsson.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    0a3d805c
group.c 21.6 KB