Refactor validator main function to avoid 'interface' symbol clash. Add get_mtu() for interfaces, returns the sub-int's MTU or its parent's MTU, defaulting to 1500. Ensure MTU for all bridge-domain members is set to the same value. Ensure all bridge-domain members are L2 (have no LCP, have no address)
43 lines
1.8 KiB
YAML
43 lines
1.8 KiB
YAML
interfaces: map(include('interface'),key=str(matches='.*GigabitEthernet[0-9]+/[0-9]+/[0-9]+|BondEthernet[0-9]+'),required=False)
|
|
bondethernets: map(include('bondethernet'),key=str(matches='BondEthernet[0-9]+'),required=False)
|
|
loopbacks: map(include('loopback'),key=str(matches='loop[0-9]+'),required=False)
|
|
bridgedomains: map(include('bridgedomain'),key=str(matches='bd[0-9]+'),required=False)
|
|
---
|
|
bridgedomain:
|
|
description: str(exclude='\'"',required=False)
|
|
mtu: int(min=128,max=9216,required=False)
|
|
lcp: str(max=8,matches='[a-z]+[a-z0-9-]{,7}',required=False)
|
|
addresses: list(ip_interface(),min=1,max=6,required=False)
|
|
interfaces: list(str())
|
|
---
|
|
loopback:
|
|
description: str(exclude='\'"',required=False)
|
|
lcp: str(max=8,matches='[a-z]+[a-z0-9-]{,7}',required=False)
|
|
mtu: int(min=128,max=9216,required=False)
|
|
addresses: list(ip_interface(),min=1,max=6,required=False)
|
|
---
|
|
bondethernet:
|
|
description: str(exclude='\'"',required=False)
|
|
interfaces: list(str(matches='.*GigabitEthernet[0-9]+/[0-9]+/[0-9]+'))
|
|
---
|
|
interface:
|
|
description: str(exclude='\'"',required=False)
|
|
mac: mac(required=False)
|
|
lcp: str(max=8,matches='[a-z]+[a-z0-9-]{,7}',required=False)
|
|
mtu: int(min=128,max=9216,required=False)
|
|
addresses: list(ip_interface(),min=1,max=6,required=False)
|
|
sub-interfaces: map(include('sub-interface'),key=int(min=1,max=4294967295),required=False)
|
|
---
|
|
sub-interface:
|
|
description: str(exclude='\'"',required=False)
|
|
lcp: str(max=8,matches='[a-z]+[a-z0-9-]{,7}',required=False)
|
|
mtu: int(min=128,max=9216,required=False)
|
|
addresses: list(ip_interface(),required=False)
|
|
encapsulation: include('encapsulation',required=False)
|
|
---
|
|
encapsulation:
|
|
dot1q: int(min=1,max=4095,required=False)
|
|
dot1ad: int(min=1,max=4095,required=False)
|
|
inner-dot1q: int(min=1,max=4095,required=False)
|
|
exact-match: bool(required=False)
|