]> git.proxmox.com Git - mirror_ifupdown2.git/commitdiff
Merge pull request #121 from aderumier/arpaccept
authorJulien Fortin <julien@cumulusnetworks.com>
Thu, 24 Oct 2019 23:21:29 +0000 (16:21 -0700)
committerGitHub <noreply@github.com>
Thu, 24 Oct 2019 23:21:29 +0000 (16:21 -0700)
add arp-accept option.

1  2 
ifupdown2/addons/address.py

index b883fbae93f63e6b56814e8ae8dea7fb339f217b,762c58c77d3fa2c06cb31ff1956788378a29ea0c..a8ef1e25fe38a5132bc2443c54fb5392ce7295a9
@@@ -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: