From 5a029892e97a7a5ef4450237412eaa6ce29aeb39 Mon Sep 17 00:00:00 2001 From: sever-sever Date: Tue, 1 Jun 2021 11:30:11 +0000 Subject: tunnels: T3592: Set default TTL to 64 Set default TTL value for tunnels from 0 to 64 There are a lot of situation when default value 0 (inherit) not work properly when you have routing configuration for OSPF or BGP over the tunnels. To fix it you need explicit set TTL value other then 0. Or hardcode another value as default. (cherry picked from commit b4db37507635bf95161bea32b18736fc0732a9e6) --- .../include/interface/interface-parameters-ttl.xml.i | 2 +- interface-definitions/interfaces-tunnel.xml.in | 3 +++ smoketest/scripts/cli/test_interfaces_tunnel.py | 8 ++++++-- 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/interface-definitions/include/interface/interface-parameters-ttl.xml.i b/interface-definitions/include/interface/interface-parameters-ttl.xml.i index aa7c9d27b..21a5e5cd9 100644 --- a/interface-definitions/include/interface/interface-parameters-ttl.xml.i +++ b/interface-definitions/include/interface/interface-parameters-ttl.xml.i @@ -1,7 +1,7 @@ - Specifies TTL value to use in outgoing packets (default: 0) + Specifies TTL value to use in outgoing packets 0 Copy value from original IP header diff --git a/interface-definitions/interfaces-tunnel.xml.in b/interface-definitions/interfaces-tunnel.xml.in index f7af93f42..2b425f865 100644 --- a/interface-definitions/interfaces-tunnel.xml.in +++ b/interface-definitions/interfaces-tunnel.xml.in @@ -183,6 +183,9 @@ #include #include #include + + 64 + diff --git a/smoketest/scripts/cli/test_interfaces_tunnel.py b/smoketest/scripts/cli/test_interfaces_tunnel.py index 0c562b7d9..bbdfc2f0e 100755 --- a/smoketest/scripts/cli/test_interfaces_tunnel.py +++ b/smoketest/scripts/cli/test_interfaces_tunnel.py @@ -174,6 +174,7 @@ class TunnelInterfaceTest(BasicInterfaceTest.BaseTest): gre_key = '10' encapsulation = 'gre' tos = '20' + ttl = 0 self.session.set(self._base_path + [interface, 'encapsulation', encapsulation]) self.session.set(self._base_path + [interface, 'local-ip', self.local_v4]) @@ -181,6 +182,7 @@ class TunnelInterfaceTest(BasicInterfaceTest.BaseTest): self.session.set(self._base_path + [interface, 'parameters', 'ip', 'key', gre_key]) self.session.set(self._base_path + [interface, 'parameters', 'ip', 'tos', tos]) + self.session.set(self._base_path + [interface, 'parameters', 'ip', 'ttl', str(ttl)]) # Check if commit is ok self.session.commit() @@ -191,7 +193,7 @@ class TunnelInterfaceTest(BasicInterfaceTest.BaseTest): self.assertEqual(encapsulation, 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']) + self.assertEqual(ttl, conf['linkinfo']['info_data']['ttl']) def test_gretap_parameters_change(self): interface = f'tun1040' @@ -212,11 +214,13 @@ class TunnelInterfaceTest(BasicInterfaceTest.BaseTest): 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']) + # TTL uses a default value + self.assertEqual(64, 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() -- cgit v1.2.3