summaryrefslogtreecommitdiff
path: root/smoketest/scripts/cli
diff options
context:
space:
mode:
authorChristian Poessinger <christian@poessinger.com>2021-04-09 13:40:04 +0200
committerChristian Poessinger <christian@poessinger.com>2021-04-09 13:40:04 +0200
commit616379793c6510ff69fb5707e7481953eac2ef2b (patch)
treefcf98a0ad4dd9f5c7d80f84f70d1b2de34ded880 /smoketest/scripts/cli
parent6f5f8d6ce273eb7bd02a9513b15c5fd00caad12e (diff)
downloadvyos-1x-616379793c6510ff69fb5707e7481953eac2ef2b.tar.gz
vyos-1x-616379793c6510ff69fb5707e7481953eac2ef2b.zip
tunnel: T3030: re-enable erspan version 2 support
This was not possible due to a regression in iproute2 where the erspan_dir key did not have a value. See [1] for more information. [1]: https://lore.kernel.org/netdev/3ac544c09842410fb863b332917a03ad@poessinger.com/
Diffstat (limited to 'smoketest/scripts/cli')
-rwxr-xr-xsmoketest/scripts/cli/test_interfaces_tunnel.py27
1 files changed, 20 insertions, 7 deletions
diff --git a/smoketest/scripts/cli/test_interfaces_tunnel.py b/smoketest/scripts/cli/test_interfaces_tunnel.py
index 0e021b385..ebb0158dc 100755
--- a/smoketest/scripts/cli/test_interfaces_tunnel.py
+++ b/smoketest/scripts/cli/test_interfaces_tunnel.py
@@ -232,7 +232,7 @@ class TunnelInterfaceTest(BasicInterfaceTest.TestCase):
conf = get_interface_config(interface)
self.assertEqual(new_remote, conf['linkinfo']['info_data']['remote'])
- def test_erspan(self):
+ def test_erspan_v1(self):
interface = f'tun1070'
encapsulation = 'erspan'
ip_key = '77'
@@ -262,6 +262,7 @@ class TunnelInterfaceTest(BasicInterfaceTest.TestCase):
self.assertEqual(f'0.0.0.{ip_key}', conf['linkinfo']['info_data']['ikey'])
self.assertEqual(f'0.0.0.{ip_key}', conf['linkinfo']['info_data']['okey'])
self.assertEqual(int(idx), conf['linkinfo']['info_data']['erspan_index'])
+ # version defaults to 1
self.assertEqual(1, conf['linkinfo']['info_data']['erspan_ver'])
self.assertTrue( conf['linkinfo']['info_data']['iseq'])
self.assertTrue( conf['linkinfo']['info_data']['oseq'])
@@ -275,24 +276,35 @@ class TunnelInterfaceTest(BasicInterfaceTest.TestCase):
conf = get_interface_config(interface)
self.assertEqual(new_remote, conf['linkinfo']['info_data']['remote'])
- def test_ip6erspan(self):
+ def test_ip6erspan_v2(self):
interface = f'tun1070'
encapsulation = 'ip6erspan'
ip_key = '77'
- erspan_ver = '2'
- direction = 'ingres'
+ erspan_ver = 2
+ direction = 'ingress'
self.cli_set(self._base_path + [interface, 'encapsulation', encapsulation])
self.cli_set(self._base_path + [interface, 'source-address', self.local_v6])
self.cli_set(self._base_path + [interface, 'remote', remote_ip6])
- self.cli_set(self._base_path + [interface, 'parameters', 'erspan', 'index', '10'])
-
# ERSPAN requires ip key parameter
with self.assertRaises(ConfigSessionError):
self.cli_commit()
self.cli_set(self._base_path + [interface, 'parameters', 'ip', 'key', ip_key])
+ self.cli_set(self._base_path + [interface, 'parameters', 'erspan', 'version', str(erspan_ver)])
+
+ # ERSPAN index is not valid on version 2
+ self.cli_set(self._base_path + [interface, 'parameters', 'erspan', 'index', '10'])
+ with self.assertRaises(ConfigSessionError):
+ self.cli_commit()
+ self.cli_delete(self._base_path + [interface, 'parameters', 'erspan', 'index'])
+
+ # ERSPAN requires direction to be set
+ with self.assertRaises(ConfigSessionError):
+ self.cli_commit()
+ self.cli_set(self._base_path + [interface, 'parameters', 'erspan', 'direction', direction])
+
# Check if commit is ok
self.cli_commit()
@@ -305,7 +317,8 @@ class TunnelInterfaceTest(BasicInterfaceTest.TestCase):
self.assertEqual(0, conf['linkinfo']['info_data']['ttl'])
self.assertEqual(f'0.0.0.{ip_key}', conf['linkinfo']['info_data']['ikey'])
self.assertEqual(f'0.0.0.{ip_key}', conf['linkinfo']['info_data']['okey'])
- self.assertEqual(1, conf['linkinfo']['info_data']['erspan_ver'])
+ self.assertEqual(erspan_ver, conf['linkinfo']['info_data']['erspan_ver'])
+ self.assertEqual(direction, conf['linkinfo']['info_data']['erspan_dir'])
self.assertTrue( conf['linkinfo']['info_data']['iseq'])
self.assertTrue( conf['linkinfo']['info_data']['oseq'])