From: Julien Fortin Date: Thu, 24 Oct 2019 23:21:29 +0000 (-0700) Subject: Merge pull request #121 from aderumier/arpaccept X-Git-Tag: 2.0.1-1~4 X-Git-Url: https://git.proxmox.com/?p=mirror_ifupdown2.git;a=commitdiff_plain;h=8ebee96099e54f2e9bb2d2723036532772ea225c Merge pull request #121 from aderumier/arpaccept add arp-accept option. --- 8ebee96099e54f2e9bb2d2723036532772ea225c diff --cc ifupdown2/addons/address.py index b883fba,762c58c..a8ef1e2 --- a/ifupdown2/addons/address.py +++ b/ifupdown2/addons/address.py @@@ -290,21 -297,12 +297,21 @@@ class address(moduleBase) self.write_file('/proc/sys/net/ipv4/conf/%s' % ifaceobj.name + '/arp_accept', '0') else: - self.write_file('/proc/sys/net/ipv4/conf/%s/arp_accept' % ifaceobj.name, '0') + self.write_file('/proc/sys/net/ipv4/conf/%s/arp_accept' % ifaceobj.name, arp_accept) if hwaddress and is_vlan_dev_on_vlan_aware_bridge: - if up: - self.ipcmd.bridge_fdb_add(bridgename, hwaddress, vlan) - else: - self.ipcmd.bridge_fdb_del(bridgename, hwaddress, vlan) + if up: + # check statemanager to delete the old entry if necessary + try: + for old_obj in statemanager.statemanager_api.get_ifaceobjs(ifaceobj.name) or []: + old_hwaddress = old_obj.get_attr_value_first("hwaddress") + if old_hwaddress and self.ipcmd.mac_str_to_int(old_hwaddress) != self.ipcmd.mac_str_to_int(hwaddress): + self.ipcmd.bridge_fdb_del(bridgename, old_hwaddress, vlan) + break + except: + pass + self.ipcmd.bridge_fdb_add(bridgename, hwaddress, vlan) + else: + self.ipcmd.bridge_fdb_del(bridgename, hwaddress, vlan) def _get_anycast_addr(self, ifaceobjlist): for ifaceobj in ifaceobjlist: