• Jiri Bohac's avatar
    bonding: 802.3ad: make aggregator_identifier bond-private · 163c8ff3
    Jiri Bohac authored
    aggregator_identifier is used to assign unique aggregator identifiers
    to aggregators of a bond during device enslaving.
    
    aggregator_identifier is currently a global variable that is zeroed in
    bond_3ad_initialize().
    
    This sequence will lead to duplicate aggregator identifiers for eth1 and eth3:
    
    create bond0
    change bond0 mode to 802.3ad
    enslave eth0 to bond0 		//eth0 gets agg id 1
    enslave eth1 to bond0 		//eth1 gets agg id 2
    create bond1
    change bond1 mode to 802.3ad
    enslave eth2 to bond1		//aggregator_identifier is reset to 0
    				//eth2 gets agg id 1
    enslave eth3 to bond0 		//eth3 gets agg id 2
    
    Fix this by making aggregator_identifier private to the bond.
    Signed-off-by: default avatarJiri Bohac <jbohac@suse.cz>
    Acked-by: default avatarVeaceslav Falico <vfalico@redhat.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    163c8ff3
bond_3ad.c 76.4 KB