Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feat(eos_cli_config_gen): Expand CLI to support DualEncap MH EVPN GW requirements #4613

Merged
merged 25 commits into from
Oct 30, 2024
Merged
Show file tree
Hide file tree
Changes from 18 commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
17614b9
Add support for EVPN remote domains
colinmacgiolla Oct 18, 2024
82fa08d
Allow the evpn ethernet segments to be defined
colinmacgiolla Oct 18, 2024
4f31311
Rely on natural_sort for the domain ordering
colinmacgiolla Oct 18, 2024
5d0615d
Merge branch 'devel' into EVPN-MH-Dual-Encap-GW
colinmacgiolla Oct 18, 2024
972276a
Merge branch 'devel' into EVPN-MH-Dual-Encap-GW
colinmacgiolla Oct 21, 2024
20374c6
Remove unnecessary check
colinmacgiolla Oct 21, 2024
6da25ff
Merge branch 'devel' into EVPN-MH-Dual-Encap-GW
colinmacgiolla Oct 21, 2024
479143f
Merge branch 'devel' into EVPN-MH-Dual-Encap-GW
colinmacgiolla Oct 22, 2024
33e4ba4
Relax schema
colinmacgiolla Oct 22, 2024
a4537ac
Merge branch 'devel' into EVPN-MH-Dual-Encap-GW
ClausHolbechArista Oct 23, 2024
bc8bc33
Add additional test case
colinmacgiolla Oct 23, 2024
5b7baf5
Improve documentation output
colinmacgiolla Oct 23, 2024
73c8c40
Update python-avd/pyavd/_eos_cli_config_gen/schema/schema_fragments/r…
colinmacgiolla Oct 24, 2024
db2eaf5
Merge branch 'devel' into EVPN-MH-Dual-Encap-GW
colinmacgiolla Oct 24, 2024
1d2adae
Fix indentation
colinmacgiolla Oct 24, 2024
3e5d2c5
Update python-avd/pyavd/_eos_cli_config_gen/schema/schema_fragments/r…
colinmacgiolla Oct 25, 2024
0c13a6d
Merge branch 'devel' into EVPN-MH-Dual-Encap-GW
colinmacgiolla Oct 25, 2024
b8b319c
Merge branch 'devel' into EVPN-MH-Dual-Encap-GW
gmuloc Oct 28, 2024
91b681d
Update python-avd/pyavd/_eos_cli_config_gen/j2templates/eos/router-bg…
colinmacgiolla Oct 29, 2024
28744b1
Merge branch 'devel' into EVPN-MH-Dual-Encap-GW
colinmacgiolla Oct 29, 2024
b43cdae
Improve config output
colinmacgiolla Oct 29, 2024
9aec485
Reorder schema
colinmacgiolla Oct 29, 2024
07447d2
Update documentation
colinmacgiolla Oct 29, 2024
1b25e71
Merge branch 'devel' into EVPN-MH-Dual-Encap-GW
colinmacgiolla Oct 30, 2024
5f5b8a9
Test: Move test to another host to trigger documentation rendering
gmuloc Oct 30, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -145,5 +145,13 @@ router bgp 65101
neighbor 192.168.255.3 activate
neighbor 192.168.255.4 rcf in Address_Family_EVPN_In()
neighbor 192.168.255.4 rcf out Address_Family_EVPN_Out()
domain identifier 1:1
domain identifier 2:2 remote
layer-2 fec in-place update timeout 100 seconds
evpn ethernet-segment domain local
identifier 0011:1111:1111:1111:1111
route-target import 11:11:11:11:11:11
evpn ethernet-segment domain remote
identifier 0022:2222:2222:2222:2222
route-target import 22:22:22:22:22:22
```
Original file line number Diff line number Diff line change
Expand Up @@ -146,9 +146,14 @@ ASN Notation: asplain

| Settings | Value |
| -------- | ----- |
| Local Domain | 65101:0 |
| Remote Domain Peer Groups | EVPN-OVERLAY-PEERS |
| L3 Gateway Configured | True |
| L3 Gateway Inter-domain | True |
| Local Domain: Ethernet-Segment Identifier | 0011:1111:1111:1111:1111 |
| Local Domain: Ethernet-Segment Route-Target | 11:11:11:11:11:11 |
| Remote Domain: Ethernet-Segment Identifier | 0022:2222:2222:2222:2222 |
| Remote Domain: Ethernet-Segment Route-Target | 22:22:22:22:22:22 |

#### Router BGP VLAN Aware Bundles

Expand Down Expand Up @@ -328,6 +333,12 @@ router bgp 65101
host-flap detection window 10 threshold 1 expiry timeout 3 seconds
layer-2 fec in-place update
route import overlay-index gateway
evpn ethernet-segment domain local
identifier 0011:1111:1111:1111:1111
route-target import 11:11:11:11:11:11
evpn ethernet-segment domain remote
identifier 0022:2222:2222:2222:2222
route-target import 22:22:22:22:22:22
!
address-family ipv4
no neighbor EVPN-OVERLAY-PEERS activate
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,4 +34,12 @@ router bgp 65101
neighbor 192.168.255.3 activate
neighbor 192.168.255.4 rcf in Address_Family_EVPN_In()
neighbor 192.168.255.4 rcf out Address_Family_EVPN_Out()
domain identifier 1:1
domain identifier 2:2 remote
layer-2 fec in-place update timeout 100 seconds
evpn ethernet-segment domain local
identifier 0011:1111:1111:1111:1111
route-target import 11:11:11:11:11:11
evpn ethernet-segment domain remote
identifier 0022:2222:2222:2222:2222
route-target import 22:22:22:22:22:22
Original file line number Diff line number Diff line change
Expand Up @@ -151,6 +151,12 @@ router bgp 65101
host-flap detection window 10 threshold 1 expiry timeout 3 seconds
layer-2 fec in-place update
route import overlay-index gateway
evpn ethernet-segment domain local
identifier 0011:1111:1111:1111:1111
route-target import 11:11:11:11:11:11
evpn ethernet-segment domain remote
identifier 0022:2222:2222:2222:2222
route-target import 22:22:22:22:22:22
colinmacgiolla marked this conversation as resolved.
Show resolved Hide resolved
!
address-family ipv4
no neighbor EVPN-OVERLAY-PEERS activate
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,8 @@ router_bgp:
- rib_type: "tunnel-rib"
rib_name: "test-rib"
- rib_type: "system-connected"
domain_identifier: "1:1"
domain_identifier_remote: "2:2"
neighbor_default:
encapsulation: mpls
next_hop_self_source_interface: Loopback0
Expand All @@ -61,3 +63,10 @@ router_bgp:
layer_2_fec_in_place_update:
enabled: true
timeout: 100
evpn_ethernet_segment:
- domain: remote
identifier: "0022:2222:2222:2222:2222"
route_target_import: "22:22:22:22:22:22"
- domain: local
identifier: "0011:1111:1111:1111:1111"
route_target_import: "11:11:11:11:11:11"
Original file line number Diff line number Diff line change
Expand Up @@ -207,6 +207,13 @@ router_bgp:
send: any
layer_2_fec_in_place_update:
enabled: true
evpn_ethernet_segment:
- domain: remote
identifier: '0022:2222:2222:2222:2222'
route_target_import: '22:22:22:22:22:22'
- domain: local
identifier: '0011:1111:1111:1111:1111'
route_target_import: '11:11:11:11:11:11'
colinmacgiolla marked this conversation as resolved.
Show resolved Hide resolved
address_family_ipv4_multicast:
redistribute:
ospf:
Expand Down

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Original file line number Diff line number Diff line change
Expand Up @@ -645,6 +645,12 @@ ASN Notation: {{ router_bgp.as_notation | arista.avd.default('asplain') }}

| Settings | Value |
| -------- | ----- |
{% if router_bgp.address_family_evpn.domain_identifier is arista.avd.defined %}
| Local Domain | {{ router_bgp.address_family_evpn.domain_identifier }} |
{% endif %}
{% if router_bgp.address_family_evpn.domain_identifier_remote is arista.avd.defined %}
| Remote Domain | {{ router_bgp.address_family_evpn.domain_identifier_remote }} |
{% endif %}
{% if evpn_gw_config.peer_groups | length > 0 %}
| Remote Domain Peer Groups | {{ evpn_gw_config.peer_groups | join(", ") }} |
{% endif %}
Expand All @@ -654,6 +660,14 @@ ASN Notation: {{ router_bgp.as_notation | arista.avd.default('asplain') }}
{% if router_bgp.address_family_evpn.neighbor_default.next_hop_self_received_evpn_routes.inter_domain is arista.avd.defined(true) %}
| L3 Gateway Inter-domain | True |
{% endif %}
{% for segment in router_bgp.address_family_evpn.evpn_ethernet_segment | arista.avd.natural_sort('domain') %}
{% if segment.identifier is arista.avd.defined %}
| {{ segment.domain | title }} Domain: Ethernet-Segment Identifier | {{ segment.identifier }} |
{% endif %}
{% if segment.route_target_import is arista.avd.defined %}
| {{ segment.domain | title }} Domain: Ethernet-Segment Route-Target | {{ segment.route_target_import }} |
colinmacgiolla marked this conversation as resolved.
Show resolved Hide resolved
{% endif %}
{% endfor %}
{% endif %}
{% if router_bgp.address_family_ipv4_labeled_unicast is arista.avd.defined %}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -931,6 +931,9 @@ router bgp {{ router_bgp.as }}
{% if router_bgp.address_family_evpn.domain_identifier is arista.avd.defined %}
domain identifier {{ router_bgp.address_family_evpn.domain_identifier }}
{% endif %}
{% if router_bgp.address_family_evpn.domain_identifier_remote is arista.avd.defined %}
domain identifier {{ router_bgp.address_family_evpn.domain_identifier_remote }} remote
{% endif %}
{% if router_bgp.address_family_evpn.next_hop.resolution_disabled is arista.avd.defined(true) %}
next-hop resolution disabled
{% endif %}
Expand Down Expand Up @@ -971,6 +974,15 @@ router bgp {{ router_bgp.as }}
{% if router_bgp.address_family_evpn.route.import_overlay_index_gateway is arista.avd.defined(true) %}
route import overlay-index gateway
{% endif %}
{% for segment in router_bgp.address_family_evpn.evpn_ethernet_segment | arista.avd.natural_sort('domain') %}
colinmacgiolla marked this conversation as resolved.
Show resolved Hide resolved
evpn ethernet-segment domain {{ segment.domain }}
{% if segment.identifier is arista.avd.defined %}
identifier {{ segment.identifier }}
{% endif %}
{% if segment.route_target_import is arista.avd.defined %}
route-target import {{ segment.route_target_import }}
{% endif %}
{% endfor %}
{% endif %}
{# address family flow-spec ipv4 activation #}
{% if router_bgp.address_family_flow_spec_ipv4 is arista.avd.defined %}
Expand Down

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Original file line number Diff line number Diff line change
Expand Up @@ -1248,6 +1248,8 @@ keys:
keys:
domain_identifier:
type: str
domain_identifier_remote:
type: str
neighbor_default:
type: dict
keys:
Expand Down Expand Up @@ -1484,6 +1486,24 @@ keys:
- str
min: 2
max: 64
evpn_ethernet_segment:
colinmacgiolla marked this conversation as resolved.
Show resolved Hide resolved
type: list
primary_key: domain
items:
type: dict
keys:
domain:
colinmacgiolla marked this conversation as resolved.
Show resolved Hide resolved
type: str
valid_values:
- all
- local
- remote
identifier:
type: str
description: 10 octet ethernet segment identifier.
colinmacgiolla marked this conversation as resolved.
Show resolved Hide resolved
route_target_import:
type: str
description: Low-order 6 bytes of ES-Import Route Target.
address_family_rtc:
type: dict
keys:
Expand Down
Loading