From e47668d88a21f4077bfb88c1123de0c86679d868 Mon Sep 17 00:00:00 2001
From: fett0 <50275740+fett0@users.noreply.github.com>
Date: Wed, 5 Jul 2023 12:03:20 -0300
Subject: [PATCH] geneve: T5339: add option to use ipv4 instead of ethernet
---
.../include/interface/parameters-innerproto.xml.i | 8 ++++++++
interface-definitions/interfaces-geneve.xml.in | 1 +
python/vyos/ifconfig/geneve.py | 1 +
smoketest/scripts/cli/test_interfaces_geneve.py | 6 ++++++
4 files changed, 16 insertions(+)
create mode 100644 interface-definitions/include/interface/parameters-innerproto.xml.i
diff --git a/interface-definitions/include/interface/parameters-innerproto.xml.i b/interface-definitions/include/interface/parameters-innerproto.xml.i
new file mode 100644
index 0000000000..9cafebd11d
--- /dev/null
+++ b/interface-definitions/include/interface/parameters-innerproto.xml.i
@@ -0,0 +1,8 @@
+
+
+
+ Use IPv4 as inner protocol instead of Ethernet
+
+
+
+
diff --git a/interface-definitions/interfaces-geneve.xml.in b/interface-definitions/interfaces-geneve.xml.in
index 330dadd95f..29b563a09b 100644
--- a/interface-definitions/interfaces-geneve.xml.in
+++ b/interface-definitions/interfaces-geneve.xml.in
@@ -36,6 +36,7 @@
#include
#include
#include
+ #include
diff --git a/python/vyos/ifconfig/geneve.py b/python/vyos/ifconfig/geneve.py
index 276c34cd71..7a05e47a7e 100644
--- a/python/vyos/ifconfig/geneve.py
+++ b/python/vyos/ifconfig/geneve.py
@@ -45,6 +45,7 @@ def _create(self):
'parameters.ip.df' : 'df',
'parameters.ip.tos' : 'tos',
'parameters.ip.ttl' : 'ttl',
+ 'parameters.ip.innerproto' : 'innerprotoinherit',
'parameters.ipv6.flowlabel' : 'flowlabel',
}
diff --git a/smoketest/scripts/cli/test_interfaces_geneve.py b/smoketest/scripts/cli/test_interfaces_geneve.py
index 24d350aeb3..b2efb0349f 100755
--- a/smoketest/scripts/cli/test_interfaces_geneve.py
+++ b/smoketest/scripts/cli/test_interfaces_geneve.py
@@ -43,6 +43,7 @@ def test_geneve_parameters(self):
self.cli_set(self._base_path + [intf, 'parameters', 'ip', 'df', 'set'])
self.cli_set(self._base_path + [intf, 'parameters', 'ip', 'tos', tos])
+ self.cli_set(self._base_path + [intf, 'parameters', 'ip', 'innerproto'])
self.cli_set(self._base_path + [intf, 'parameters', 'ip', 'ttl', str(ttl)])
ttl += 10
@@ -67,6 +68,11 @@ def test_geneve_parameters(self):
label = options['linkinfo']['info_data']['label']
self.assertIn(f'parameters ipv6 flowlabel {label}', self._options[interface])
+ if any('innerproto' in s for s in self._options[interface]):
+ inner = options['linkinfo']['info_data']['innerproto']
+ self.assertIn(f'parameters ip {inner}', self._options[interface])
+
+
self.assertEqual('geneve', options['linkinfo']['info_kind'])
self.assertEqual('set', options['linkinfo']['info_data']['df'])
self.assertEqual(f'0x{tos}', options['linkinfo']['info_data']['tos'])