Skip to content
  • Jon Paul Maloy's avatar
    tipc: make struct tipc_link generic to support broadcast · c1ab3f1d
    Jon Paul Maloy authored
    
    
    Realizing that unicast is just a special case of broadcast, we also see
    that we can go in the other direction, i.e., that modest changes to the
    current unicast link can make it generic enough to support broadcast.
    
    The following changes are introduced here:
    
    - A new counter ("ackers") in struct tipc_link, to indicate how many
      peers need to ack a packet before it can be released.
    - A corresponding counter in the skb user area, to keep track of how
      many peers a are left to ack before a buffer can be released.
    - A new counter ("acked"), to keep persistent track of how far a peer
      has acked at the moment, i.e., where in the transmission queue to
      start updating buffers when the next ack arrives. This is to avoid
      double acknowledgements from a peer, with inadvertent relase of
      packets as a result.
    - A more generic tipc_link_retrans() function, where retransmit starts
      from a given sequence number, instead of the first packet in the
      transmision queue. This is to minimize the number of retransmitted
      packets on the broadcast media.
    
    When the new functionality is taken into use in the next commits,
    we expect it to have minimal effect on unicast mode performance.
    
    Signed-off-by: default avatarJon Maloy <jon.maloy@ericsson.com>
    Reviewed-by: default avatarYing Xue <ying.xue@windriver.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    c1ab3f1d