diff options
| author | fett0 <50275740+fett0@users.noreply.github.com> | 2023-07-05 12:03:20 -0300 | 
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-07-05 17:03:20 +0200 | 
| commit | e47668d88a21f4077bfb88c1123de0c86679d868 (patch) | |
| tree | dc7fdd14c3df3c16bee309ee1e75cbd3c7323b9a | |
| parent | 8afdb5ad5515a0a1ae716204f397f3d974cec714 (diff) | |
| download | vyos-1x-e47668d88a21f4077bfb88c1123de0c86679d868.tar.gz vyos-1x-e47668d88a21f4077bfb88c1123de0c86679d868.zip | |
geneve:  T5339: add option to use ipv4 instead of ethernet
4 files changed, 16 insertions, 0 deletions
| 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 000000000..9cafebd11 --- /dev/null +++ b/interface-definitions/include/interface/parameters-innerproto.xml.i @@ -0,0 +1,8 @@ +<!-- include start from interface/parameters-innerproto.xml.i --> +<leafNode name="innerproto"> +  <properties> +    <help>Use IPv4 as inner protocol instead of Ethernet</help> +    <valueless/> +  </properties> +</leafNode> +<!-- include end --> diff --git a/interface-definitions/interfaces-geneve.xml.in b/interface-definitions/interfaces-geneve.xml.in index 330dadd95..29b563a09 100644 --- a/interface-definitions/interfaces-geneve.xml.in +++ b/interface-definitions/interfaces-geneve.xml.in @@ -36,6 +36,7 @@                    #include <include/interface/parameters-df.xml.i>                    #include <include/interface/parameters-tos.xml.i>                    #include <include/interface/parameters-ttl.xml.i> +                  #include <include/interface/parameters-innerproto.xml.i>                  </children>                </node>                <node name="ipv6"> diff --git a/python/vyos/ifconfig/geneve.py b/python/vyos/ifconfig/geneve.py index 276c34cd7..7a05e47a7 100644 --- a/python/vyos/ifconfig/geneve.py +++ b/python/vyos/ifconfig/geneve.py @@ -45,6 +45,7 @@ class GeneveIf(Interface):              '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 24d350aeb..b2efb0349 100755 --- a/smoketest/scripts/cli/test_interfaces_geneve.py +++ b/smoketest/scripts/cli/test_interfaces_geneve.py @@ -43,6 +43,7 @@ class GeneveInterfaceTest(BasicInterfaceTest.TestCase):              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 @@ class GeneveInterfaceTest(BasicInterfaceTest.TestCase):                  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']) | 
