• Andy Gospodarek's avatar
    bonding: make global bonding stats more reliable · 5f0c5f73
    Andy Gospodarek authored
    As the code stands today, bonding stats are based simply on the stats
    from the member interfaces.  If a member was to be removed from a bond,
    the stats would instantly drop.  This would be confusing to an admin
    would would suddonly see interface stats drop while traffic is still
    flowing.
    
    In addition to preventing the stats drops mentioned above, new members
    will now be added to the bond and only traffic received after the member
    was added to the bond will be counted as part of bonding stats.  Bonding
    counters will also be updated when any slaves are dropped to make sure
    the reported stats are reliable.
    
    v2: Changes suggested by Nik to properly allocate/free stats memory.
    v3: Properly destroy workqueue and fix netlink configuration path.
    v4: Moved cached stats into bonding and slave structs as there does not
    seem to be a complexity/performance benefit to using alloc'd memory vs
    in-struct memory.
    Signed-off-by: default avatarAndy Gospodarek <gospo@cumulusnetworks.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    5f0c5f73
bonding.h 16.6 KB