• Veaceslav Falico's avatar
    bonding: make alb_send_learning_packets() use upper dev list · 5bf94b83
    Veaceslav Falico authored
    Currently, if there are vlans on top of bond, alb_send_learning_packets()
    will never send LPs from the bond itself (i.e. untagged), which might leave
    untagged clients unupdated.
    
    Also, the 'circular vlan' logic (i.e. update only MAX_LP_BURST vlans at a
    time, and save the last vlan for the next update) is really suboptimal - in
    case of lots of vlans it will take a lot of time to update every vlan. It
    is also never called in any hot path and sends only a few small packets -
    thus the optimization by itself is useless.
    
    So remove the whole current_alb_vlan/MAX_LP_BURST logic from
    alb_send_learning_packets(). Instead, we'll first send a packet untagged
    and then traverse the upper dev list, sending a tagged packet for each vlan
    found. Also, remove the MAX_LP_BURST define - we already don't need it.
    
    CC: Jay Vosburgh <fubar@us.ibm.com>
    CC: Andy Gospodarek <andy@greyhouse.net>
    Signed-off-by: default avatarVeaceslav Falico <vfalico@redhat.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    5bf94b83
bond_alb.c 46.6 KB