diff options
author | Christian Poessinger <christian@poessinger.com> | 2021-02-27 22:16:56 +0100 |
---|---|---|
committer | Christian Poessinger <christian@poessinger.com> | 2021-02-27 22:25:19 +0100 |
commit | e721c998ba977db9184d13e119dda4d56269d553 (patch) | |
tree | bcaf57e8d36e4e0860b09b3e3785c8e4db6a6f9f /smoketest/scripts/cli | |
parent | ebf93650bdd1a89304973274a4a795ef449e5440 (diff) | |
download | vyos-1x-e721c998ba977db9184d13e119dda4d56269d553.tar.gz vyos-1x-e721c998ba977db9184d13e119dda4d56269d553.zip |
tunnel: T3366: support changing tunnel parameters for gre-bridge
Linux prevents changing parameters on a gretap (which is used by gre-bridge)
interfaces. To overcome this limitation a tunnel must be destroyed and recreated
on demand when gre-bridge is used.
Diffstat (limited to 'smoketest/scripts/cli')
-rwxr-xr-x | smoketest/scripts/cli/test_interfaces_tunnel.py | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/smoketest/scripts/cli/test_interfaces_tunnel.py b/smoketest/scripts/cli/test_interfaces_tunnel.py index 5f3791655..a041427a8 100755 --- a/smoketest/scripts/cli/test_interfaces_tunnel.py +++ b/smoketest/scripts/cli/test_interfaces_tunnel.py @@ -19,6 +19,7 @@ import json from vyos.configsession import ConfigSession from vyos.configsession import ConfigSessionError +from vyos.template import inc_ip from vyos.util import cmd from base_interfaces_test import BasicInterfaceTest @@ -203,5 +204,35 @@ class TunnelInterfaceTest(BasicInterfaceTest.BaseTest): # Check if commit is ok self.session.commit() + def test_gretap_parameters_change(self): + interface = f'tun1040' + gre_key = '10' + encapsulation = 'gre-bridge' + tos = '20' + + self.session.set(self._base_path + [interface, 'encapsulation', encapsulation]) + self.session.set(self._base_path + [interface, 'local-ip', self.local_v4]) + self.session.set(self._base_path + [interface, 'remote-ip', remote_ip4]) + + # Check if commit is ok + self.session.commit() + + conf = tunnel_conf(interface) + self.assertEqual(mtu, conf['mtu']) + self.assertEqual(interface, conf['ifname']) + self.assertEqual('gretap', conf['linkinfo']['info_kind']) + self.assertEqual(self.local_v4, conf['linkinfo']['info_data']['local']) + self.assertEqual(remote_ip4, conf['linkinfo']['info_data']['remote']) + self.assertEqual(0, conf['linkinfo']['info_data']['ttl']) + + # Change remote ip address (inc host by 2 + new_remote = inc_ip(remote_ip4, 2) + self.session.set(self._base_path + [interface, 'remote-ip', new_remote]) + # Check if commit is ok + self.session.commit() + + conf = tunnel_conf(interface) + self.assertEqual(new_remote, conf['linkinfo']['info_data']['remote']) + if __name__ == '__main__': unittest.main(verbosity=2) |