From: Julien Fortin Date: Mon, 29 Oct 2018 13:20:19 +0000 (+0100) Subject: addons: address: remplace sysctl calls with /proc/ read/write X-Git-Tag: 1.2.2-1~30 X-Git-Url: https://git.proxmox.com/?p=mirror_ifupdown2.git;a=commitdiff_plain;h=2185a10865c7cc3192b42419f2e5975f68a599b9 addons: address: remplace sysctl calls with /proc/ read/write 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 --- diff --git a/ifupdown2/addons/address.py b/ifupdown2/addons/address.py index 9e3d760..eeae1ab 100644 --- a/ifupdown2/addons/address.py +++ b/ifupdown2/addons/address.py @@ -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