summaryrefslogtreecommitdiff
path: root/python
diff options
context:
space:
mode:
authorViacheslav Hletenko <v.gletenko@vyos.io>2023-02-20 11:54:36 +0000
committerViacheslav Hletenko <v.gletenko@vyos.io>2023-02-23 11:42:39 +0000
commit05d0f593bbfe9c85c690f6e4cddfb257a835906e (patch)
treeb35c98166c44b78e4fbdf8a4e6a2e4bd134faa5e /python
parent22d1d865358198fc7d1847499162a629105fe6ba (diff)
downloadvyos-1x-05d0f593bbfe9c85c690f6e4cddfb257a835906e.tar.gz
vyos-1x-05d0f593bbfe9c85c690f6e4cddfb257a835906e.zip
T5007: Fix multicast implementation for the tunnel interfaces
Multicast has not been implemented for the tunnel interfaces. We have only configuration CLI commands that do anything. Fix it. ip link set dev <tag> multicast on ip link set dev <tag> multicast off (cherry picked from commit ac821d0d1764e9623015e04c5158a06c00ab370b)
Diffstat (limited to 'python')
-rw-r--r--python/vyos/ifconfig/tunnel.py12
1 files changed, 12 insertions, 0 deletions
diff --git a/python/vyos/ifconfig/tunnel.py b/python/vyos/ifconfig/tunnel.py
index 5258a2cb1..f776240a1 100644
--- a/python/vyos/ifconfig/tunnel.py
+++ b/python/vyos/ifconfig/tunnel.py
@@ -162,6 +162,15 @@ class TunnelIf(Interface):
""" Get a synthetic MAC address. """
return self.get_mac_synthetic()
+ def set_multicast(self):
+ """ Set multicast """
+ if self.config.get('multicast', 'disable') == 'enable':
+ cmd = 'ip link set dev {ifname} multicast on'
+ else:
+ cmd = 'ip link set dev {ifname} multicast off'
+
+ self._cmd(cmd.format(**self.config))
+
def update(self, config):
""" General helper function which works on a dictionary retrived by
get_config_dict(). It's main intention is to consolidate the scattered
@@ -170,5 +179,8 @@ class TunnelIf(Interface):
# Adjust iproute2 tunnel parameters if necessary
self._change_options()
+ # Add multicast
+ self.set_multicast()
+
# call base class first
super().update(config)