summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Poessinger <christian@poessinger.com>2021-05-24 21:32:44 +0200
committerChristian Poessinger <christian@poessinger.com>2021-05-24 21:43:27 +0200
commit763b3ff6f5d8345815074217436c119400510482 (patch)
tree1029bd0c1ad68299c8fcc30f87357e1fb3074f17
parent0d16353e97521bfce49d131e0a18c49b307d95e0 (diff)
downloadvyos-1x-763b3ff6f5d8345815074217436c119400510482.tar.gz
vyos-1x-763b3ff6f5d8345815074217436c119400510482.zip
tunnel: T3555: add "ignore-df" support for GRE tunnels
-rw-r--r--interface-definitions/interfaces-tunnel.xml.in8
-rw-r--r--python/vyos/ifconfig/tunnel.py1
-rwxr-xr-xsrc/conf_mode/interfaces-tunnel.py8
3 files changed, 16 insertions, 1 deletions
diff --git a/interface-definitions/interfaces-tunnel.xml.in b/interface-definitions/interfaces-tunnel.xml.in
index 536edcb99..4c3fc2e70 100644
--- a/interface-definitions/interfaces-tunnel.xml.in
+++ b/interface-definitions/interfaces-tunnel.xml.in
@@ -227,7 +227,13 @@
<children>
<leafNode name="no-pmtu-discovery">
<properties>
- <help>Disable path MTU discovery</help>
+ <help>Disable Path MTU Discovery on this tunnel</help>
+ <valueless/>
+ </properties>
+ </leafNode>
+ <leafNode name="ignore-df">
+ <properties>
+ <help>Enable IPv4 DF suppression on this tunnel</help>
<valueless/>
</properties>
</leafNode>
diff --git a/python/vyos/ifconfig/tunnel.py b/python/vyos/ifconfig/tunnel.py
index 2a266fc9f..64c735824 100644
--- a/python/vyos/ifconfig/tunnel.py
+++ b/python/vyos/ifconfig/tunnel.py
@@ -62,6 +62,7 @@ class TunnelIf(Interface):
mapping_ipv4 = {
'parameters.ip.key' : 'key',
'parameters.ip.no_pmtu_discovery' : 'nopmtudisc',
+ 'parameters.ip.ignore_df' : 'ignore-df',
'parameters.ip.tos' : 'tos',
'parameters.ip.ttl' : 'ttl',
'parameters.erspan.direction' : 'erspan_dir',
diff --git a/src/conf_mode/interfaces-tunnel.py b/src/conf_mode/interfaces-tunnel.py
index 4e6c8a9ab..1575c83ef 100755
--- a/src/conf_mode/interfaces-tunnel.py
+++ b/src/conf_mode/interfaces-tunnel.py
@@ -109,6 +109,14 @@ def verify(tunnel):
if tunnel['encapsulation'] in ['ipip6', 'ip6ip6', 'ip6gre']:
raise ConfigError('Can not disable PMTU discovery for given encapsulation')
+ if dict_search('parameters.ip.ignore_df', tunnel) != None:
+ if tunnel['encapsulation'] not in ['gretap']:
+ raise ConfigError('Option ignore-df can only be used on GRETAP tunnels!')
+
+ if dict_search('parameters.ip.no_pmtu_discovery', tunnel) == None:
+ raise ConfigError('Option ignore-df path MTU discovery to be disabled!')
+
+
def generate(tunnel):
return None