Assert that a QinX cannot have higher MTU than its intermediate interface

This commit is contained in:
Pim van Pelt
2022-03-26 17:18:10 +00:00
parent 40c6b2d1c8
commit 7bb9fa5ac8
3 changed files with 19 additions and 5 deletions

View File

@ -480,8 +480,14 @@ def validate_interfaces(yaml):
sub_mtu = get_mtu(yaml, sub_ifname)
if sub_mtu > iface_mtu:
msgs.append("sub-interface %s has MTU %d higher than parent MTU %d" % (sub_ifname, sub_iface['mtu'], iface_mtu))
msgs.append("sub-interface %s has MTU %d higher than parent %s MTU %d" % (sub_ifname, sub_iface['mtu'], ifname, iface_mtu))
result = False
if is_qinx(yaml, sub_ifname):
mid_ifname, mid_iface = get_qinx_parent_by_name(yaml, sub_ifname)
mid_mtu = get_mtu(yaml, mid_ifname)
if sub_mtu > mid_mtu:
msgs.append("sub-interface %s has MTU %d higher than parent %s MTU %d" % (sub_ifname, sub_iface['mtu'], mid_ifname, mid_mtu))
result = False
sub_lcp = get_lcp(yaml, sub_ifname)
if is_l2(yaml, sub_ifname) and sub_lcp:

View File

@ -2,8 +2,10 @@ test:
description: "MTU of sub-interfaces cannot be higher than their parent"
errors:
expected:
- "sub-interface .* has MTU 9001 higher than parent MTU 9000"
count: 1
- "sub-interface .* has MTU 9001 higher than parent .* MTU 9000"
- "sub-interface .* has MTU 9002 higher than parent .* MTU 9001"
- "sub-interface .* has MTU 9002 higher than parent .* MTU 9000"
count: 3
---
interfaces:
GigabitEthernet1/0/0:
@ -11,3 +13,9 @@ interfaces:
sub-interfaces:
100:
mtu: 9001
200:
encapsulation:
exact-match: True
inner-dot1q: 1234
dot1q: 100
mtu: 9002

View File

@ -824,9 +824,9 @@ class Reconciler():
config_mtu = config_iface['mtu']
if shrink and config_mtu < vpp_iface.mtu[0]:
self.logger.info("shrink 1> set interface mtu packet %d %s" % (config_mtu, vpp_iface.interface_name))
self.logger.info("1> set interface mtu packet %d %s" % (config_mtu, vpp_iface.interface_name))
elif not shrink and config_mtu > vpp_iface.mtu[0]:
self.logger.info("grow 2> set interface mtu packet %d %s" % (config_mtu, vpp_iface.interface_name))
self.logger.info("2> set interface mtu packet %d %s" % (config_mtu, vpp_iface.interface_name))
return True