summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Poessinger <christian@poessinger.com>2021-08-13 17:07:35 +0200
committerGitHub <noreply@github.com>2021-08-13 17:07:35 +0200
commita342406a362321917130c8d565dba7ebaec27b22 (patch)
treebc4c7bf916f561b89c2444fcf643e0820ef79303
parentf3df9e97c6bedd305133e860654fc0213c12fd6b (diff)
parentde88a17ba97200cdb3bd07ac3d12eab5d5fa6c73 (diff)
downloadvyos-1x-a342406a362321917130c8d565dba7ebaec27b22.tar.gz
vyos-1x-a342406a362321917130c8d565dba7ebaec27b22.zip
Merge pull request #967 from sever-sever/T3708-curr
isis: T3708: Fix errors in MTU calculation
-rwxr-xr-xsrc/conf_mode/protocols_isis.py10
1 files changed, 7 insertions, 3 deletions
diff --git a/src/conf_mode/protocols_isis.py b/src/conf_mode/protocols_isis.py
index d4c82249b..4cf0312e9 100755
--- a/src/conf_mode/protocols_isis.py
+++ b/src/conf_mode/protocols_isis.py
@@ -113,9 +113,13 @@ def verify(isis):
# Interface MTU must be >= configured lsp-mtu
mtu = Interface(interface).get_mtu()
area_mtu = isis['lsp_mtu']
- if mtu < int(area_mtu):
- raise ConfigError(f'Interface {interface} has MTU {mtu}, minimum ' \
- f'area MTU is {area_mtu}!')
+ # Recommended maximum PDU size = interface MTU - 3 bytes
+ recom_area_mtu = mtu - 3
+ if mtu < int(area_mtu) or int(area_mtu) > recom_area_mtu:
+ raise ConfigError(f'Interface {interface} has MTU {mtu}, ' \
+ f'current area MTU is {area_mtu}! \n' \
+ f'Recommended area lsp-mtu {recom_area_mtu} or less ' \
+ '(calculated on MTU size).')
if 'vrf' in isis:
# If interface specific options are set, we must ensure that the