mirror of
https://github.com/CumulusNetworks/ifupdown2.git
synced 2024-05-06 15:54:50 +00:00
As seen in the example below we are seeing a corner case, first the user /e/n/i is configured without 'hwaddress', then it is used to fix the svi mac address. The current code only checks for the statemanager for old 'hwaddress' attribute but couldn't find any. Now we save the mac addr before updating it, so we can later clear it from the fdb. $ cat a auto eth0 iface eth0 inet dhcp auto bridge iface bridge bridge-vlan-aware yes bridge-ports vx-1000 bridge-stp on bridge-vids 1000 1002 1004 1006 1008 bridge-pvid 1 auto vx-1000 iface vx-1000 vxlan-id 1000 bridge-access 1000 vxlan-local-tunnelip 27.0.0.11 bridge-learning off bridge-arp-nd-suppress on mstpctl-portbpdufilter yes mstpctl-bpduguard yes mtu 9152 auto vlan1000 iface vlan1000 address 45.0.0.2/24 vlan-id 1000 vlan-raw-device bridge address-virtual 00:00:5e:00:01:01 45.0.0.1/24 vrf vrf1 auto vrf1 iface vrf1 vrf-table auto $ $ $ cat b auto eth0 iface eth0 inet dhcp auto bridge iface bridge bridge-vlan-aware yes bridge-ports vx-1000 bridge-stp on bridge-vids 1000 1002 1004 1006 1008 bridge-pvid 1 auto vx-1000 iface vx-1000 vxlan-id 1000 bridge-access 1000 vxlan-local-tunnelip 27.0.0.11 bridge-learning off bridge-arp-nd-suppress on mstpctl-portbpdufilter yes mstpctl-bpduguard yes mtu 9152 auto vlan1000 iface vlan1000 address 45.0.0.2/24 hwaddress 00:02:00:aa:aa:aa vlan-id 1000 vlan-raw-device bridge address-virtual 00:00:5e:00:01:01 45.0.0.1/24 vrf vrf1 auto vrf1 iface vrf1 vrf-table auto $ $ $ rm /etc/network/interfaces ; ln -s `pwd`/a /etc/network/interfaces ; ifreload -a ; rm /etc/network/interfaces ; ln -s `pwd`/b /etc/network/interfaces ; (ifreload -av |& grep vlan | grep 1000) info: bridge: netlink: bridge vlan add vid 1000 dev bridge info: vlan1000: netlink: ip link set dev vlan1000 down info: vlan1000: netlink: ip link set dev vlan1000 address 00:02:00:aa:aa:aa info: vlan1000: netlink: ip link set dev vlan1000 up info: writing '1' to file /proc/sys/net/ipv4/conf/vlan1000/arp_accept info: executing /sbin/bridge fdb del 4a:b3:1e:45:bf:bf dev bridge vlan 1000 self info: executing /sbin/bridge fdb replace 00:02:00:aa:aa:aa dev bridge vlan 1000 self info: executing /sbin/bridge fdb replace 00:00:5e:00:01:01 dev bridge vlan 1000 self $ Signed-off-by: Julien Fortin <jfortin@nvidia.com>