Refactor: stop trying to derive implicit LCP names. Make it mandatory and explicitly configured

This commit is contained in:
Pim van Pelt
2022-03-21 11:06:15 +00:00
parent 551b06bb67
commit c18f04fa55
10 changed files with 117 additions and 112 deletions

View File

@ -10,9 +10,11 @@ interfaces:
sub-interfaces:
100:
description: "Overlapping IP addresses are fine, if in the same prefix"
lcp: e0-0.100
addresses: [ 192.0.2.9/29, 192.0.2.10/29 ]
101:
description: ".. and for IPv6 also, provided the same prefix is used"
lcp: e0-0.101
addresses: [ 2001:db8:2::1/64, 2001:db8:2::2/64 ]
GigabitEthernet3/0/0:

View File

@ -33,4 +33,5 @@ interfaces:
sub-interfaces:
100:
mtu: 2000
lcp: "be1.2000"
addresses: [ 192.0.2.9/29, 2001:db8:1::1/64 ]

View File

@ -16,6 +16,7 @@ interfaces:
sub-interfaces:
100:
description: "Cust: hvn0.nlams0.ipng.ch"
lcp: e0-0.100
addresses: [ 94.142.241.185/29, 2a02:898:146::1/64 ]
101:
description: "Infra: L2 for FrysIX AS112"
@ -40,8 +41,10 @@ interfaces:
sub-interfaces:
200:
description: "This subint is needed to build the parent LCP bond0.1000 for QinQ subint 202 bond0.1000.1234"
lcp: "bond0.1000"
encapsulation:
dot1q: 1000
exact-match: True
201:
encapsulation:
dot1ad: 1000
@ -49,6 +52,8 @@ interfaces:
encapsulation:
dot1q: 1000
inner-dot1q: 1234
exact-match: True
lcp: "bond0.1000.1234"
addresses: [ 192.168.1.1/24 ]
203:
encapsulation:

View File

@ -2,7 +2,7 @@ test:
description: "A subinterface cannot have an LCP if the parent doesn't have one"
errors:
expected:
- "sub-interface .* has LCP but .* does not have LCP"
- "sub-interface .* has LCP name .* but .* does not have LCP"
count: 1
---
interfaces:

View File

@ -1,24 +1,39 @@
test:
description: "The length of the LCP name is too long"
description: "Children with an LCP require their parent to have one too"
errors:
expected:
- "sub-interface .* has LCP with too long name .*"
count: 2
- "sub-interface .* has LCP name .* but .* does not have LCP"
- "sub-interface .* is QinX and has LCP name .* but .* does not have LCP"
- "sub-interface .* has LCP name .* but its encapsulation is not exact-match"
- "sub-interface .* has invalid encapsulation"
count: 4
---
interfaces:
GigabitEthernet1/0/0:
lcp: "e23456789012"
sub-interfaces:
100:
description: "VLAN 100"
lcp: "e0.100"
description: "VLAN 100 has an LCP, but Gi1/0/0 does not"
GigabitEthernet1/0/1:
lcp: "e2345678"
lcp: "e1"
sub-interfaces:
100:
description: "VLAN 100"
101:
description: "QinQ 101"
description: "QinQ 101 has an LCP but VLAN 100 does not"
encapsulation:
dot1q: 100
inner-dot1q: 100
exact-match: True
lcp: "e1.100.100"
GigabitEthernet1/0/2:
lcp: "e2"
sub-interfaces:
100:
description: "Sub-interfaces must be exact-match in order to have an LCP"
encapsulation:
dot1q: 100
exact-match: False
lcp: "e2.100"

View File

@ -3,7 +3,8 @@ test:
errors:
expected:
- "sub-interface GigabitEthernet1/0/0.(101|102) has invalid encapsulation"
count: 2
- "sub-interface .* has LCP name .* but its encapsulation is not exact-match"
count: 4
---
interfaces:
GigabitEthernet1/0/0: