diff options
author | Yuxiang Zhu <vfreex@gmail.com> | 2022-06-29 16:48:58 +0800 |
---|---|---|
committer | Yuxiang Zhu <vfreex@gmail.com> | 2022-06-29 17:31:29 +0800 |
commit | 313dfa6b8a12c4eb6d72275b34b2e43b029caf90 (patch) | |
tree | 65fbd004e418200df0af41db5cdc66572edca4e0 /python/vyos/ifconfig | |
parent | 2e8fdce2a94768f82758487336f6a46ab5b20ad6 (diff) | |
download | vyos-1x-313dfa6b8a12c4eb6d72275b34b2e43b029caf90.tar.gz vyos-1x-313dfa6b8a12c4eb6d72275b34b2e43b029caf90.zip |
bridge: add option to enable/disable IGMP/MLD snooping
This PR adds an config option to enable/disable IGMP/MLD snooping.
```
set interfaces bridge brN igmp snooping
```
Diffstat (limited to 'python/vyos/ifconfig')
-rw-r--r-- | python/vyos/ifconfig/bridge.py | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/python/vyos/ifconfig/bridge.py b/python/vyos/ifconfig/bridge.py index ffd9c590f..e4db69c1f 100644 --- a/python/vyos/ifconfig/bridge.py +++ b/python/vyos/ifconfig/bridge.py @@ -90,6 +90,10 @@ class BridgeIf(Interface): 'validate': assert_boolean, 'location': '/sys/class/net/{ifname}/bridge/multicast_querier', }, + 'multicast_snooping': { + 'validate': assert_boolean, + 'location': '/sys/class/net/{ifname}/bridge/multicast_snooping', + }, }} _command_set = {**Interface._command_set, **{ @@ -198,6 +202,18 @@ class BridgeIf(Interface): """ self.set_interface('multicast_querier', enable) + def set_multicast_snooping(self, enable): + """ + Enable or disable multicast snooping on the bridge. + + Use enable=1 to enable or enable=0 to disable + + Example: + >>> from vyos.ifconfig import Interface + >>> BridgeIf('br0').set_multicast_snooping(1) + """ + self.set_interface('multicast_snooping', enable) + def add_port(self, interface): """ Add physical interface to bridge (member port) @@ -257,6 +273,11 @@ class BridgeIf(Interface): value = '1' if 'stp' in config else '0' self.set_stp(value) + # enable or disable multicast snooping + tmp = dict_search('igmp.snooping', config) + value = '1' if (tmp != None) else '0' + self.set_multicast_snooping(value) + # enable or disable IGMP querier tmp = dict_search('igmp.querier', config) value = '1' if (tmp != None) else '0' |