]> git.proxmox.com Git - mirror_ifupdown2.git/commitdiff
addons: address: remplace sysctl calls with /proc/ read/write
authorJulien Fortin <julien@cumulusnetworks.com>
Mon, 29 Oct 2018 13:20:19 +0000 (14:20 +0100)
committerJulien Fortin <julien@cumulusnetworks.com>
Thu, 13 Dec 2018 22:43:57 +0000 (14:43 -0800)
Ticket: CM-21809
Reviewed By: Roopa
Testing Done:

<% num_vlans = 2048 %>
% for i in range(2,10):
%   for j in range(2,num_vlans+2):
auto br${i}_${j}
iface br${i}_${j}
      bridge-ports swp${i}.${j}
      bridge-vlan-aware no
      bridge-stp no
      bridge-learning swp${i}.${j}=off
%   endfor
% endfor

Signed-off-by: Julien Fortin <julien@cumulusnetworks.com>
ifupdown2/addons/address.py

index 9e3d7603dd9f2889ad918b9949cdb76cbe2f7a59..eeae1ab6e695235780a18ef5c7e3e153db4e5335 100644 (file)
@@ -636,17 +636,23 @@ class address(moduleBase):
     def _set_bridge_forwarding(self, ifaceobj):
         """ set ip forwarding to 0 if bridge interface does not have a
         ip nor svi """
+        ifname = ifaceobj.name
         if not ifaceobj.upperifaces and not ifaceobj.get_attr_value('address'):
-            # set forwarding = 0
-            if self.sysctl_get('net.ipv4.conf.%s.forwarding' %ifaceobj.name) == '1':
-                self.sysctl_set('net.ipv4.conf.%s.forwarding' %ifaceobj.name, 0)
-            if self.sysctl_get('net.ipv6.conf.%s.forwarding' %ifaceobj.name) == '1':
-                self.sysctl_set('net.ipv6.conf.%s.forwarding' %ifaceobj.name, 0)
+            if self.sysctl_get_forwarding_value_from_proc(ifname, "ipv4") == '1':
+                self.sysctl_write_forwarding_value_to_proc(ifname, "ipv4", 0)
+            if self.sysctl_get_forwarding_value_from_proc(ifname, "ipv6") == '1':
+                self.sysctl_write_forwarding_value_to_proc(ifname, "ipv6", 0)
         else:
-            if self.sysctl_get('net.ipv4.conf.%s.forwarding' %ifaceobj.name) == '0':
-                self.sysctl_set('net.ipv4.conf.%s.forwarding' %ifaceobj.name, 1)
-            if self.sysctl_get('net.ipv6.conf.%s.forwarding' %ifaceobj.name) == '0':
-                self.sysctl_set('net.ipv6.conf.%s.forwarding' %ifaceobj.name, 1)
+            if self.sysctl_get_forwarding_value_from_proc(ifname, "ipv4") == '0':
+                self.sysctl_write_forwarding_value_to_proc(ifname, "ipv4", 1)
+            if self.sysctl_get_forwarding_value_from_proc(ifname, "ipv6") == '0':
+                self.sysctl_write_forwarding_value_to_proc(ifname, "ipv6", 1)
+
+    def sysctl_get_forwarding_value_from_proc(self, ifname, family):
+        return self.read_file_oneline("/proc/sys/net/%s/conf/%s/forwarding" % (family, ifname))
+
+    def sysctl_write_forwarding_value_to_proc(self, ifname, family, value):
+        self.write_file("/proc/sys/net/%s/conf/%s/forwarding" % (family, ifname), "%s\n" % value)
 
     def _sysctl_config(self, ifaceobj):
         setting_default_value = False