From: Julien Fortin Date: Thu, 7 Mar 2019 18:11:16 +0000 (+0100) Subject: addons: bridge: check kernel state for igmp snooping on vxlan brport X-Git-Tag: 1.2.8-1~28 X-Git-Url: https://git.proxmox.com/?p=mirror_ifupdown2.git;a=commitdiff_plain;h=9f8f3b0d65dc62b460ddf5d3d690523dd97e00b6 addons: bridge: check kernel state for igmp snooping on vxlan brport Signed-off-by: Julien Fortin --- diff --git a/ifupdown2/addons/bridge.py b/ifupdown2/addons/bridge.py index 3cca424..9677b3b 100644 --- a/ifupdown2/addons/bridge.py +++ b/ifupdown2/addons/bridge.py @@ -1953,12 +1953,14 @@ class bridge(moduleBase): brport_ifla_info_slave_data, bridge_ports_learning.get(brport_name)) - if self.vxlan_bridge_igmp_snooping_enable_port_mcrouter and utils.get_boolean_from_string( + cached_bridge_mcsnoop = self.brctlcmd.link_cache_get([ifname, 'linkinfo', Link.IFLA_BR_MCAST_SNOOPING]) + + if (self.vxlan_bridge_igmp_snooping_enable_port_mcrouter and utils.get_boolean_from_string( self.get_bridge_mcsnoop_value(ifaceobj) - ): + )) or cached_bridge_mcsnoop: # if policy "vxlan_bridge_igmp_snooping_enable_port_mcrouter" - # is on and mcsnoop is on, set 'bridge-portmcrouter 2' - # on vxlan ports (if not set by the user) + # is on and mcsnoop is on (or mcsnoop is already enabled on the + # bridge, set 'bridge-portmcrouter 2' on vxlan ports (if not set by the user) if not brport_ifla_info_slave_data.get(Link.IFLA_BRPORT_MULTICAST_ROUTER): brport_ifla_info_slave_data[Link.IFLA_BRPORT_MULTICAST_ROUTER] = 2 self.logger.info("%s: %s: vxlan bridge igmp snooping: enable port multicast router" % (ifname, brport_name))