diff --git a/ansible_collections/arista/avd/molecule/eos_designs_unit_tests/intended/configs/autovpn-edge-no-default-policy.cfg b/ansible_collections/arista/avd/molecule/eos_designs_unit_tests/intended/configs/autovpn-edge-no-default-policy.cfg
index d825fdb921c..3fdcb4e9db9 100644
--- a/ansible_collections/arista/avd/molecule/eos_designs_unit_tests/intended/configs/autovpn-edge-no-default-policy.cfg
+++ b/ansible_collections/arista/avd/molecule/eos_designs_unit_tests/intended/configs/autovpn-edge-no-default-policy.cfg
@@ -22,17 +22,27 @@ router path-selection
load-balance policy LB-CONTROL-PLANE-PROFILE
path-group INET
!
- load-balance policy LB-DEFAULT-AVT-POLICY-DEFAULT
+ load-balance policy LB-DEFAULT-POLICY-DEFAULT
path-group INET
!
- policy DEFAULT-AVT-POLICY-WITH-CP
+ policy DEFAULT-POLICY
default-match
- load-balance LB-DEFAULT-AVT-POLICY-DEFAULT
+ load-balance LB-DEFAULT-POLICY-DEFAULT
+ !
+ policy DEFAULT-POLICY-WITH-CP
+ default-match
+ load-balance LB-DEFAULT-POLICY-DEFAULT
10 application-profile CONTROL-PLANE-APPLICATION-PROFILE
load-balance LB-CONTROL-PLANE-PROFILE
!
vrf default
- path-selection-policy DEFAULT-AVT-POLICY-WITH-CP
+ path-selection-policy DEFAULT-POLICY-WITH-CP
+ !
+ vrf IT
+ path-selection-policy DEFAULT-POLICY
+ !
+ vrf PROD
+ path-selection-policy DEFAULT-POLICY
!
spanning-tree mode none
!
diff --git a/ansible_collections/arista/avd/molecule/eos_designs_unit_tests/intended/configs/cv-pathfinder-edge-custom-default-policy.cfg b/ansible_collections/arista/avd/molecule/eos_designs_unit_tests/intended/configs/cv-pathfinder-edge-custom-default-policy.cfg
new file mode 100644
index 00000000000..7e0eeffc1a7
--- /dev/null
+++ b/ansible_collections/arista/avd/molecule/eos_designs_unit_tests/intended/configs/cv-pathfinder-edge-custom-default-policy.cfg
@@ -0,0 +1,313 @@
+!RANCID-CONTENT-TYPE: arista
+!
+flow tracking hardware
+ tracker WAN-FLOW-TRACKER
+ record export on inactive timeout 70000
+ record export on interval 5000
+ exporter DPI-EXPORTER
+ collector 127.0.0.1
+ local interface Loopback0
+ template interval 5000
+ no shutdown
+!
+service routing protocols model multi-agent
+!
+hostname cv-pathfinder-edge-custom-default-policy
+!
+router adaptive-virtual-topology
+ topology role edge
+ region AVD_Land_West id 42
+ zone DEFAULT-ZONE id 1
+ site Site1 id 1
+ !
+ policy DEFAULT-POLICY
+ !
+ match application-profile VIDEO
+ avt profile DEFAULT-POLICY-VIDEO
+ !
+ match application-profile default
+ avt profile DEFAULT-POLICY-DEFAULT
+ !
+ policy DEFAULT-POLICY-WITH-CP
+ !
+ match application-profile CONTROL-PLANE-APPLICATION-PROFILE
+ avt profile CONTROL-PLANE-PROFILE
+ !
+ match application-profile VIDEO
+ avt profile DEFAULT-POLICY-VIDEO
+ !
+ match application-profile default
+ avt profile DEFAULT-POLICY-DEFAULT
+ !
+ profile CONTROL-PLANE-PROFILE
+ path-selection load-balance LB-CONTROL-PLANE-PROFILE
+ !
+ profile DEFAULT-POLICY-DEFAULT
+ path-selection load-balance LB-DEFAULT-POLICY-DEFAULT
+ !
+ profile DEFAULT-POLICY-VIDEO
+ path-selection load-balance LB-DEFAULT-POLICY-VIDEO
+ !
+ profile DEFAULT-POLICY-WITH-CP-DEFAULT
+ path-selection load-balance LB-DEFAULT-POLICY-WITH-CP-DEFAULT
+ !
+ profile DEFAULT-POLICY-WITH-CP-VIDEO
+ path-selection load-balance LB-DEFAULT-POLICY-WITH-CP-VIDEO
+ !
+ vrf default
+ avt policy DEFAULT-POLICY-WITH-CP
+ avt profile DEFAULT-POLICY-DEFAULT id 1
+ avt profile DEFAULT-POLICY-VIDEO id 3
+ avt profile CONTROL-PLANE-PROFILE id 254
+ !
+ vrf PROD
+ avt policy DEFAULT-POLICY
+ avt profile DEFAULT-POLICY-DEFAULT id 1
+ avt profile DEFAULT-POLICY-VIDEO id 3
+!
+router path-selection
+ tcp mss ceiling ipv4 ingress
+ !
+ path-group INET id 101
+ ipsec profile CP-PROFILE
+ !
+ local interface Ethernet1
+ stun server-profile INET-cv-pathfinder-pathfinder-Ethernet1 INET-cv-pathfinder-pathfinder-Ethernet3
+ !
+ peer dynamic
+ !
+ peer static router-ip 192.168.144.1
+ name cv-pathfinder-pathfinder
+ ipv4 address 10.7.7.7
+ ipv4 address 10.9.9.9
+ !
+ path-group LTE id 102
+ ipsec profile CP-PROFILE
+ !
+ local interface Ethernet3
+ !
+ peer dynamic
+ !
+ path-group MPLS id 100
+ !
+ local interface Ethernet2
+ stun server-profile MPLS-cv-pathfinder-pathfinder-Ethernet2
+ !
+ peer dynamic
+ !
+ peer static router-ip 192.168.144.1
+ name cv-pathfinder-pathfinder
+ ipv4 address 172.16.0.1
+ !
+ load-balance policy LB-CONTROL-PLANE-PROFILE
+ path-group INET
+ path-group MPLS
+ !
+ load-balance policy LB-DEFAULT-POLICY-DEFAULT
+ path-group INET
+ path-group LTE priority 42
+ !
+ load-balance policy LB-DEFAULT-POLICY-VIDEO
+ path-group INET
+ path-group MPLS
+!
+spanning-tree mode none
+!
+no enable password
+no aaa root
+!
+vrf instance IT
+!
+vrf instance MGMT
+!
+vrf instance PROD
+!
+ip security
+ !
+ ike policy CP-IKE-POLICY
+ local-id 192.168.255.1
+ !
+ sa policy DP-SA-POLICY
+ esp encryption aes128
+ pfs dh-group 14
+ !
+ sa policy CP-SA-POLICY
+ esp encryption aes128
+ pfs dh-group 14
+ !
+ profile DP-PROFILE
+ sa-policy DP-SA-POLICY
+ connection start
+ shared-key 7 ABCDEF1234567890666
+ dpd 10 50 clear
+ mode transport
+ !
+ profile CP-PROFILE
+ ike-policy CP-IKE-POLICY
+ sa-policy CP-SA-POLICY
+ connection start
+ shared-key 7 ABCDEF1234567890
+ dpd 10 50 clear
+ mode transport
+ !
+ key controller
+ profile DP-PROFILE
+!
+interface Dps1
+ description DPS Interface
+ mtu 9214
+ flow tracker hardware WAN-FLOW-TRACKER
+ ip address 192.168.255.1/32
+!
+interface Ethernet1
+ no shutdown
+ no switchport
+ flow tracker hardware WAN-FLOW-TRACKER
+ ip address dhcp
+ dhcp client accept default-route
+!
+interface Ethernet2
+ no shutdown
+ no switchport
+ flow tracker hardware WAN-FLOW-TRACKER
+ ip address 172.15.5.5/31
+!
+interface Ethernet3
+ no shutdown
+ no switchport
+ flow tracker hardware WAN-FLOW-TRACKER
+ ip address 172.20.20.20/31
+!
+interface Loopback0
+ description Router_ID
+ no shutdown
+ ip address 192.168.42.1/32
+!
+interface Vxlan1
+ description cv-pathfinder-edge-custom-default-policy_VTEP
+ vxlan source-interface Dps1
+ vxlan udp-port 4789
+ vxlan vrf default vni 1
+ vxlan vrf IT vni 100
+ vxlan vrf PROD vni 42
+!
+application traffic recognition
+ !
+ application ipv4 CONTROL-PLANE-APPLICATION
+ destination prefix field-set CONTROL-PLANE-APP-DEST-PREFIXES
+ !
+ application-profile CONTROL-PLANE-APPLICATION-PROFILE
+ application CONTROL-PLANE-APPLICATION
+ !
+ application-profile VIDEO
+ application CUSTOM-APPLICATION-1
+ application skype
+ !
+ field-set ipv4 prefix CONTROL-PLANE-APP-DEST-PREFIXES
+ 192.168.144.1/32
+!
+ip routing
+ip routing vrf IT
+no ip routing vrf MGMT
+ip routing vrf PROD
+!
+ip extcommunity-list ECL-EVPN-SOO permit soo 192.168.42.1:1
+!
+ip prefix-list PL-LOOPBACKS-EVPN-OVERLAY
+ seq 10 permit 192.168.42.0/24 eq 32
+!
+route-map RM-CONN-2-BGP permit 10
+ match ip address prefix-list PL-LOOPBACKS-EVPN-OVERLAY
+ set extcommunity soo 192.168.42.1:1 additive
+!
+route-map RM-EVPN-EXPORT-VRF-DEFAULT permit 10
+ match extcommunity ECL-EVPN-SOO
+!
+route-map RM-EVPN-SOO-IN deny 10
+ match extcommunity ECL-EVPN-SOO
+!
+route-map RM-EVPN-SOO-IN permit 20
+!
+route-map RM-EVPN-SOO-OUT permit 10
+ set extcommunity soo 192.168.42.1:1 additive
+!
+router bfd
+ multihop interval 300 min-rx 300 multiplier 3
+!
+router bgp 65000
+ router-id 192.168.42.1
+ maximum-paths 16
+ update wait-install
+ no bgp default ipv4-unicast
+ neighbor WAN-OVERLAY-PEERS peer group
+ neighbor WAN-OVERLAY-PEERS remote-as 65000
+ neighbor WAN-OVERLAY-PEERS update-source Dps1
+ neighbor WAN-OVERLAY-PEERS bfd
+ neighbor WAN-OVERLAY-PEERS bfd interval 1000 min-rx 1000 multiplier 10
+ neighbor WAN-OVERLAY-PEERS ttl maximum-hops 42
+ neighbor WAN-OVERLAY-PEERS password 7 htm4AZe9mIQOO1uiMuGgYQ==
+ neighbor WAN-OVERLAY-PEERS send-community
+ neighbor WAN-OVERLAY-PEERS maximum-routes 0
+ neighbor 192.168.144.1 peer group WAN-OVERLAY-PEERS
+ neighbor 192.168.144.1 description cv-pathfinder-pathfinder
+ redistribute connected route-map RM-CONN-2-BGP
+ !
+ address-family evpn
+ neighbor WAN-OVERLAY-PEERS route-map RM-EVPN-SOO-IN in
+ neighbor WAN-OVERLAY-PEERS route-map RM-EVPN-SOO-OUT out
+ neighbor WAN-OVERLAY-PEERS activate
+ !
+ address-family ipv4
+ no neighbor WAN-OVERLAY-PEERS activate
+ !
+ address-family ipv4 sr-te
+ neighbor WAN-OVERLAY-PEERS activate
+ !
+ address-family link-state
+ neighbor WAN-OVERLAY-PEERS activate
+ path-selection
+ !
+ address-family path-selection
+ bgp additional-paths receive
+ bgp additional-paths send any
+ neighbor WAN-OVERLAY-PEERS activate
+ !
+ vrf default
+ rd 192.168.42.1:1
+ route-target import evpn 1:1
+ route-target export evpn 1:1
+ route-target export evpn route-map RM-EVPN-EXPORT-VRF-DEFAULT
+ !
+ vrf IT
+ rd 192.168.42.1:100
+ route-target import evpn 100:100
+ route-target export evpn 100:100
+ router-id 192.168.42.1
+ redistribute connected
+ !
+ vrf PROD
+ rd 192.168.42.1:42
+ route-target import evpn 42:42
+ route-target export evpn 42:42
+ router-id 192.168.42.1
+ redistribute connected
+!
+router traffic-engineering
+!
+management api http-commands
+ protocol https
+ no shutdown
+ !
+ vrf MGMT
+ no shutdown
+!
+stun
+ client
+ server-profile INET-cv-pathfinder-pathfinder-Ethernet1
+ ip address 10.7.7.7
+ server-profile INET-cv-pathfinder-pathfinder-Ethernet3
+ ip address 10.9.9.9
+ server-profile MPLS-cv-pathfinder-pathfinder-Ethernet2
+ ip address 172.16.0.1
+!
+end
diff --git a/ansible_collections/arista/avd/molecule/eos_designs_unit_tests/intended/configs/cv-pathfinder-edge-no-common-path-group.cfg b/ansible_collections/arista/avd/molecule/eos_designs_unit_tests/intended/configs/cv-pathfinder-edge-no-common-path-group.cfg
index 6158d0b6fea..926d51313a3 100644
--- a/ansible_collections/arista/avd/molecule/eos_designs_unit_tests/intended/configs/cv-pathfinder-edge-no-common-path-group.cfg
+++ b/ansible_collections/arista/avd/molecule/eos_designs_unit_tests/intended/configs/cv-pathfinder-edge-no-common-path-group.cfg
@@ -41,6 +41,11 @@ router adaptive-virtual-topology
match application-profile default
avt profile DEFAULT-AVT-POLICY-DEFAULT
!
+ policy DEFAULT-POLICY
+ !
+ match application-profile default
+ avt profile DEFAULT-POLICY-DEFAULT
+ !
policy PROD-AVT-POLICY
!
match application-profile VOICE
@@ -61,6 +66,15 @@ router adaptive-virtual-topology
profile DEFAULT-AVT-POLICY-VIDEO
path-selection load-balance LB-DEFAULT-AVT-POLICY-VIDEO
!
+ profile DEFAULT-AVT-POLICY-WITH-CP-DEFAULT
+ path-selection load-balance LB-DEFAULT-AVT-POLICY-WITH-CP-DEFAULT
+ !
+ profile DEFAULT-AVT-POLICY-WITH-CP-VIDEO
+ path-selection load-balance LB-DEFAULT-AVT-POLICY-WITH-CP-VIDEO
+ !
+ profile DEFAULT-POLICY-DEFAULT
+ path-selection load-balance LB-DEFAULT-POLICY-DEFAULT
+ !
profile PROD-AVT-POLICY-DEFAULT
path-selection load-balance LB-PROD-AVT-POLICY-DEFAULT
!
@@ -70,6 +84,10 @@ router adaptive-virtual-topology
profile PROD-AVT-POLICY-VOICE
path-selection load-balance LB-PROD-AVT-POLICY-VOICE
!
+ vrf ATTRACTED-VRF-FROM-UPLINK
+ avt policy DEFAULT-POLICY
+ avt profile DEFAULT-POLICY-DEFAULT id 1
+ !
vrf default
avt policy DEFAULT-AVT-POLICY-WITH-CP
avt profile DEFAULT-AVT-POLICY-DEFAULT id 1
@@ -104,6 +122,9 @@ router path-selection
!
load-balance policy LB-DEFAULT-AVT-POLICY-VIDEO
!
+ load-balance policy LB-DEFAULT-POLICY-DEFAULT
+ path-group Satellite
+ !
load-balance policy LB-PROD-AVT-POLICY-DEFAULT
!
load-balance policy LB-PROD-AVT-POLICY-VIDEO
@@ -346,7 +367,7 @@ router bgp 65000
route-target import evpn 666:666
route-target export evpn 666:666
router-id 192.168.42.2
- neighbor 172.17.0.2 remote-as 65000
+ neighbor 172.17.0.2 remote-as 65199
neighbor 172.17.0.2 peer group IPv4-UNDERLAY-PEERS
neighbor 172.17.0.2 description site-ha-disabled-leaf_Ethernet2.666_vrf_ATTRACTED-VRF-FROM-UPLINK
redistribute connected
diff --git a/ansible_collections/arista/avd/molecule/eos_designs_unit_tests/intended/configs/cv-pathfinder-edge-no-default-policy.cfg b/ansible_collections/arista/avd/molecule/eos_designs_unit_tests/intended/configs/cv-pathfinder-edge-no-default-policy.cfg
index b5acaaff67c..45ae7fda31c 100644
--- a/ansible_collections/arista/avd/molecule/eos_designs_unit_tests/intended/configs/cv-pathfinder-edge-no-default-policy.cfg
+++ b/ansible_collections/arista/avd/molecule/eos_designs_unit_tests/intended/configs/cv-pathfinder-edge-no-default-policy.cfg
@@ -20,24 +20,40 @@ router adaptive-virtual-topology
zone DEFAULT-ZONE id 1
site Site511 id 511
!
- policy DEFAULT-AVT-POLICY-WITH-CP
+ policy DEFAULT-POLICY
+ !
+ match application-profile default
+ avt profile DEFAULT-POLICY-DEFAULT
+ !
+ policy DEFAULT-POLICY-WITH-CP
!
match application-profile CONTROL-PLANE-APPLICATION-PROFILE
avt profile CONTROL-PLANE-PROFILE
!
match application-profile default
- avt profile DEFAULT-AVT-POLICY-DEFAULT
+ avt profile DEFAULT-POLICY-DEFAULT
!
profile CONTROL-PLANE-PROFILE
path-selection load-balance LB-CONTROL-PLANE-PROFILE
!
- profile DEFAULT-AVT-POLICY-DEFAULT
- path-selection load-balance LB-DEFAULT-AVT-POLICY-DEFAULT
+ profile DEFAULT-POLICY-DEFAULT
+ path-selection load-balance LB-DEFAULT-POLICY-DEFAULT
+ !
+ profile DEFAULT-POLICY-WITH-CP-DEFAULT
+ path-selection load-balance LB-DEFAULT-POLICY-WITH-CP-DEFAULT
!
vrf default
- avt policy DEFAULT-AVT-POLICY-WITH-CP
- avt profile DEFAULT-AVT-POLICY-DEFAULT id 1
+ avt policy DEFAULT-POLICY-WITH-CP
+ avt profile DEFAULT-POLICY-DEFAULT id 1
avt profile CONTROL-PLANE-PROFILE id 254
+ !
+ vrf IT
+ avt policy DEFAULT-POLICY
+ avt profile DEFAULT-POLICY-DEFAULT id 1
+ !
+ vrf PROD
+ avt policy DEFAULT-POLICY
+ avt profile DEFAULT-POLICY-DEFAULT id 1
!
router path-selection
tcp mss ceiling ipv4 ingress
@@ -77,7 +93,7 @@ router path-selection
path-group INET
path-group MPLS
!
- load-balance policy LB-DEFAULT-AVT-POLICY-DEFAULT
+ load-balance policy LB-DEFAULT-POLICY-DEFAULT
path-group INET
path-group LTE
path-group MPLS
diff --git a/ansible_collections/arista/avd/molecule/eos_designs_unit_tests/intended/configs/cv-pathfinder-edge.cfg b/ansible_collections/arista/avd/molecule/eos_designs_unit_tests/intended/configs/cv-pathfinder-edge.cfg
index 418dfd971af..6cb722586d9 100644
--- a/ansible_collections/arista/avd/molecule/eos_designs_unit_tests/intended/configs/cv-pathfinder-edge.cfg
+++ b/ansible_collections/arista/avd/molecule/eos_designs_unit_tests/intended/configs/cv-pathfinder-edge.cfg
@@ -41,6 +41,11 @@ router adaptive-virtual-topology
match application-profile default
avt profile DEFAULT-AVT-POLICY-DEFAULT
!
+ policy DEFAULT-POLICY
+ !
+ match application-profile default
+ avt profile DEFAULT-POLICY-DEFAULT
+ !
policy PROD-AVT-POLICY
!
match application-profile VOICE
@@ -61,6 +66,15 @@ router adaptive-virtual-topology
profile DEFAULT-AVT-POLICY-VIDEO
path-selection load-balance LB-DEFAULT-AVT-POLICY-VIDEO
!
+ profile DEFAULT-AVT-POLICY-WITH-CP-DEFAULT
+ path-selection load-balance LB-DEFAULT-AVT-POLICY-WITH-CP-DEFAULT
+ !
+ profile DEFAULT-AVT-POLICY-WITH-CP-VIDEO
+ path-selection load-balance LB-DEFAULT-AVT-POLICY-WITH-CP-VIDEO
+ !
+ profile DEFAULT-POLICY-DEFAULT
+ path-selection load-balance LB-DEFAULT-POLICY-DEFAULT
+ !
profile PROD-AVT-POLICY-DEFAULT
path-selection load-balance LB-PROD-AVT-POLICY-DEFAULT
!
@@ -70,6 +84,10 @@ router adaptive-virtual-topology
profile PROD-AVT-POLICY-VOICE
path-selection load-balance LB-PROD-AVT-POLICY-VOICE
!
+ vrf ATTRACTED-VRF-FROM-UPLINK
+ avt policy DEFAULT-POLICY
+ avt profile DEFAULT-POLICY-DEFAULT id 1
+ !
vrf default
avt policy DEFAULT-AVT-POLICY-WITH-CP
avt profile DEFAULT-AVT-POLICY-DEFAULT id 1
@@ -133,6 +151,11 @@ router path-selection
path-group INET
path-group MPLS
!
+ load-balance policy LB-DEFAULT-POLICY-DEFAULT
+ path-group INET
+ path-group LTE
+ path-group MPLS
+ !
load-balance policy LB-PROD-AVT-POLICY-DEFAULT
path-group INET
path-group MPLS priority 2
@@ -410,7 +433,7 @@ router bgp 65000
route-target import evpn 666:666
route-target export evpn 666:666
router-id 192.168.42.1
- neighbor 172.17.0.0 remote-as 65000
+ neighbor 172.17.0.0 remote-as 65199
neighbor 172.17.0.0 peer group IPv4-UNDERLAY-PEERS
neighbor 172.17.0.0 description site-ha-disabled-leaf_Ethernet1.666_vrf_ATTRACTED-VRF-FROM-UPLINK
redistribute connected
diff --git a/ansible_collections/arista/avd/molecule/eos_designs_unit_tests/intended/configs/cv-pathfinder-edge2A.cfg b/ansible_collections/arista/avd/molecule/eos_designs_unit_tests/intended/configs/cv-pathfinder-edge2A.cfg
index 246d3315fcd..0668bcb6263 100644
--- a/ansible_collections/arista/avd/molecule/eos_designs_unit_tests/intended/configs/cv-pathfinder-edge2A.cfg
+++ b/ansible_collections/arista/avd/molecule/eos_designs_unit_tests/intended/configs/cv-pathfinder-edge2A.cfg
@@ -41,6 +41,11 @@ router adaptive-virtual-topology
match application-profile default
avt profile DEFAULT-AVT-POLICY-DEFAULT
!
+ policy DEFAULT-POLICY
+ !
+ match application-profile default
+ avt profile DEFAULT-POLICY-DEFAULT
+ !
policy PROD-AVT-POLICY
!
match application-profile VOICE
@@ -61,6 +66,15 @@ router adaptive-virtual-topology
profile DEFAULT-AVT-POLICY-VIDEO
path-selection load-balance LB-DEFAULT-AVT-POLICY-VIDEO
!
+ profile DEFAULT-AVT-POLICY-WITH-CP-DEFAULT
+ path-selection load-balance LB-DEFAULT-AVT-POLICY-WITH-CP-DEFAULT
+ !
+ profile DEFAULT-AVT-POLICY-WITH-CP-VIDEO
+ path-selection load-balance LB-DEFAULT-AVT-POLICY-WITH-CP-VIDEO
+ !
+ profile DEFAULT-POLICY-DEFAULT
+ path-selection load-balance LB-DEFAULT-POLICY-DEFAULT
+ !
profile PROD-AVT-POLICY-DEFAULT
path-selection load-balance LB-PROD-AVT-POLICY-DEFAULT
!
@@ -70,6 +84,10 @@ router adaptive-virtual-topology
profile PROD-AVT-POLICY-VOICE
path-selection load-balance LB-PROD-AVT-POLICY-VOICE
!
+ vrf ATTRACTED-VRF-FROM-UPLINK
+ avt policy DEFAULT-POLICY
+ avt profile DEFAULT-POLICY-DEFAULT id 1
+ !
vrf default
avt policy DEFAULT-AVT-POLICY-WITH-CP
avt profile DEFAULT-AVT-POLICY-DEFAULT id 1
@@ -128,6 +146,10 @@ router path-selection
path-group INET
path-group LAN_HA
!
+ load-balance policy LB-DEFAULT-POLICY-DEFAULT
+ path-group INET
+ path-group LAN_HA
+ !
load-balance policy LB-PROD-AVT-POLICY-DEFAULT
path-group INET
path-group LAN_HA
@@ -147,6 +169,8 @@ spanning-tree mode none
no enable password
no aaa root
!
+vrf instance ATTRACTED-VRF-FROM-UPLINK
+!
vrf instance IT
!
vrf instance MGMT
@@ -209,19 +233,27 @@ interface Ethernet52
flow tracker hardware WAN-FLOW-TRACKER
ip address 172.17.0.5/31
!
-interface Ethernet52.42
- description P2P_LINK_TO_SITE-HA-ENABLED-LEAF2A_Ethernet1.42_vrf_PROD
+interface Ethernet52.142
+ description P2P_LINK_TO_SITE-HA-ENABLED-LEAF2A_Ethernet1.142_vrf_PROD
no shutdown
mtu 9214
- encapsulation dot1q vlan 42
+ encapsulation dot1q vlan 142
vrf PROD
ip address 172.17.0.5/31
!
-interface Ethernet52.100
- description P2P_LINK_TO_SITE-HA-ENABLED-LEAF2A_Ethernet1.100_vrf_IT
+interface Ethernet52.666
+ description P2P_LINK_TO_SITE-HA-ENABLED-LEAF2A_Ethernet1.666_vrf_ATTRACTED-VRF-FROM-UPLINK
+ no shutdown
+ mtu 9214
+ encapsulation dot1q vlan 666
+ vrf ATTRACTED-VRF-FROM-UPLINK
+ ip address 172.17.0.5/31
+!
+interface Ethernet52.1000
+ description P2P_LINK_TO_SITE-HA-ENABLED-LEAF2A_Ethernet1.1000_vrf_IT
no shutdown
mtu 9214
- encapsulation dot1q vlan 100
+ encapsulation dot1q vlan 1000
vrf IT
ip address 172.17.0.5/31
!
@@ -233,19 +265,27 @@ interface Ethernet53
flow tracker hardware WAN-FLOW-TRACKER
ip address 172.17.0.7/31
!
-interface Ethernet53.42
- description P2P_LINK_TO_SITE-HA-ENABLED-LEAF2B_Ethernet1.42_vrf_PROD
+interface Ethernet53.142
+ description P2P_LINK_TO_SITE-HA-ENABLED-LEAF2B_Ethernet1.142_vrf_PROD
no shutdown
mtu 9214
- encapsulation dot1q vlan 42
+ encapsulation dot1q vlan 142
vrf PROD
ip address 172.17.0.7/31
!
-interface Ethernet53.100
- description P2P_LINK_TO_SITE-HA-ENABLED-LEAF2B_Ethernet1.100_vrf_IT
+interface Ethernet53.666
+ description P2P_LINK_TO_SITE-HA-ENABLED-LEAF2B_Ethernet1.666_vrf_ATTRACTED-VRF-FROM-UPLINK
no shutdown
mtu 9214
- encapsulation dot1q vlan 100
+ encapsulation dot1q vlan 666
+ vrf ATTRACTED-VRF-FROM-UPLINK
+ ip address 172.17.0.7/31
+!
+interface Ethernet53.1000
+ description P2P_LINK_TO_SITE-HA-ENABLED-LEAF2B_Ethernet1.1000_vrf_IT
+ no shutdown
+ mtu 9214
+ encapsulation dot1q vlan 1000
vrf IT
ip address 172.17.0.7/31
!
@@ -258,6 +298,7 @@ interface Vxlan1
description cv-pathfinder-edge2A_VTEP
vxlan source-interface Dps1
vxlan udp-port 4789
+ vxlan vrf ATTRACTED-VRF-FROM-UPLINK vni 166
vxlan vrf default vni 1
vxlan vrf IT vni 100
vxlan vrf PROD vni 42
@@ -306,6 +347,7 @@ application traffic recognition
42
!
ip routing
+ip routing vrf ATTRACTED-VRF-FROM-UPLINK
ip routing vrf IT
no ip routing vrf MGMT
ip routing vrf PROD
@@ -425,6 +467,19 @@ router bgp 65000
bgp additional-paths send any
neighbor WAN-OVERLAY-PEERS activate
!
+ vrf ATTRACTED-VRF-FROM-UPLINK
+ rd 192.168.42.2:666
+ route-target import evpn 666:666
+ route-target export evpn 666:666
+ router-id 192.168.42.2
+ neighbor 172.17.0.4 remote-as 65199
+ neighbor 172.17.0.4 peer group IPv4-UNDERLAY-PEERS
+ neighbor 172.17.0.4 description site-ha-enabled-leaf2A_Ethernet1.666_vrf_ATTRACTED-VRF-FROM-UPLINK
+ neighbor 172.17.0.6 remote-as 65199
+ neighbor 172.17.0.6 peer group IPv4-UNDERLAY-PEERS
+ neighbor 172.17.0.6 description site-ha-enabled-leaf2B_Ethernet1.666_vrf_ATTRACTED-VRF-FROM-UPLINK
+ redistribute connected
+ !
vrf default
rd 192.168.42.2:1
route-target import evpn 1:1
@@ -432,29 +487,29 @@ router bgp 65000
route-target export evpn route-map RM-EVPN-EXPORT-VRF-DEFAULT
!
vrf IT
- rd 192.168.42.2:100
- route-target import evpn 100:100
- route-target export evpn 100:100
+ rd 192.168.42.2:1000
+ route-target import evpn 1000:1000
+ route-target export evpn 1000:1000
router-id 192.168.42.2
neighbor 172.17.0.4 remote-as 65199
neighbor 172.17.0.4 peer group IPv4-UNDERLAY-PEERS
- neighbor 172.17.0.4 description site-ha-enabled-leaf2A_Ethernet1.100_vrf_IT
+ neighbor 172.17.0.4 description site-ha-enabled-leaf2A_Ethernet1.1000_vrf_IT
neighbor 172.17.0.6 remote-as 65199
neighbor 172.17.0.6 peer group IPv4-UNDERLAY-PEERS
- neighbor 172.17.0.6 description site-ha-enabled-leaf2B_Ethernet1.100_vrf_IT
+ neighbor 172.17.0.6 description site-ha-enabled-leaf2B_Ethernet1.1000_vrf_IT
redistribute connected
!
vrf PROD
- rd 192.168.42.2:42
- route-target import evpn 42:42
- route-target export evpn 42:42
+ rd 192.168.42.2:142
+ route-target import evpn 142:142
+ route-target export evpn 142:142
router-id 192.168.42.2
neighbor 172.17.0.4 remote-as 65199
neighbor 172.17.0.4 peer group IPv4-UNDERLAY-PEERS
- neighbor 172.17.0.4 description site-ha-enabled-leaf2A_Ethernet1.42_vrf_PROD
+ neighbor 172.17.0.4 description site-ha-enabled-leaf2A_Ethernet1.142_vrf_PROD
neighbor 172.17.0.6 remote-as 65199
neighbor 172.17.0.6 peer group IPv4-UNDERLAY-PEERS
- neighbor 172.17.0.6 description site-ha-enabled-leaf2B_Ethernet1.42_vrf_PROD
+ neighbor 172.17.0.6 description site-ha-enabled-leaf2B_Ethernet1.142_vrf_PROD
redistribute connected
!
router traffic-engineering
diff --git a/ansible_collections/arista/avd/molecule/eos_designs_unit_tests/intended/configs/cv-pathfinder-edge2B.cfg b/ansible_collections/arista/avd/molecule/eos_designs_unit_tests/intended/configs/cv-pathfinder-edge2B.cfg
index 36b51213649..48b2ca671c7 100644
--- a/ansible_collections/arista/avd/molecule/eos_designs_unit_tests/intended/configs/cv-pathfinder-edge2B.cfg
+++ b/ansible_collections/arista/avd/molecule/eos_designs_unit_tests/intended/configs/cv-pathfinder-edge2B.cfg
@@ -41,6 +41,11 @@ router adaptive-virtual-topology
match application-profile default
avt profile DEFAULT-AVT-POLICY-DEFAULT
!
+ policy DEFAULT-POLICY
+ !
+ match application-profile default
+ avt profile DEFAULT-POLICY-DEFAULT
+ !
policy PROD-AVT-POLICY
!
match application-profile VOICE
@@ -61,6 +66,15 @@ router adaptive-virtual-topology
profile DEFAULT-AVT-POLICY-VIDEO
path-selection load-balance LB-DEFAULT-AVT-POLICY-VIDEO
!
+ profile DEFAULT-AVT-POLICY-WITH-CP-DEFAULT
+ path-selection load-balance LB-DEFAULT-AVT-POLICY-WITH-CP-DEFAULT
+ !
+ profile DEFAULT-AVT-POLICY-WITH-CP-VIDEO
+ path-selection load-balance LB-DEFAULT-AVT-POLICY-WITH-CP-VIDEO
+ !
+ profile DEFAULT-POLICY-DEFAULT
+ path-selection load-balance LB-DEFAULT-POLICY-DEFAULT
+ !
profile PROD-AVT-POLICY-DEFAULT
path-selection load-balance LB-PROD-AVT-POLICY-DEFAULT
!
@@ -70,6 +84,10 @@ router adaptive-virtual-topology
profile PROD-AVT-POLICY-VOICE
path-selection load-balance LB-PROD-AVT-POLICY-VOICE
!
+ vrf ATTRACTED-VRF-FROM-UPLINK
+ avt policy DEFAULT-POLICY
+ avt profile DEFAULT-POLICY-DEFAULT id 1
+ !
vrf default
avt policy DEFAULT-AVT-POLICY-WITH-CP
avt profile DEFAULT-AVT-POLICY-DEFAULT id 1
@@ -126,6 +144,10 @@ router path-selection
path-group LAN_HA
path-group MPLS
!
+ load-balance policy LB-DEFAULT-POLICY-DEFAULT
+ path-group LAN_HA
+ path-group MPLS
+ !
load-balance policy LB-PROD-AVT-POLICY-DEFAULT
path-group LAN_HA
path-group MPLS priority 2
@@ -145,6 +167,8 @@ spanning-tree mode none
no enable password
no aaa root
!
+vrf instance ATTRACTED-VRF-FROM-UPLINK
+!
vrf instance IT
!
vrf instance MGMT
@@ -206,19 +230,27 @@ interface Ethernet52
flow tracker hardware WAN-FLOW-TRACKER
ip address 172.17.0.9/31
!
-interface Ethernet52.42
- description P2P_LINK_TO_SITE-HA-ENABLED-LEAF2A_Ethernet2.42_vrf_PROD
+interface Ethernet52.142
+ description P2P_LINK_TO_SITE-HA-ENABLED-LEAF2A_Ethernet2.142_vrf_PROD
no shutdown
mtu 9214
- encapsulation dot1q vlan 42
+ encapsulation dot1q vlan 142
vrf PROD
ip address 172.17.0.9/31
!
-interface Ethernet52.100
- description P2P_LINK_TO_SITE-HA-ENABLED-LEAF2A_Ethernet2.100_vrf_IT
+interface Ethernet52.666
+ description P2P_LINK_TO_SITE-HA-ENABLED-LEAF2A_Ethernet2.666_vrf_ATTRACTED-VRF-FROM-UPLINK
+ no shutdown
+ mtu 9214
+ encapsulation dot1q vlan 666
+ vrf ATTRACTED-VRF-FROM-UPLINK
+ ip address 172.17.0.9/31
+!
+interface Ethernet52.1000
+ description P2P_LINK_TO_SITE-HA-ENABLED-LEAF2A_Ethernet2.1000_vrf_IT
no shutdown
mtu 9214
- encapsulation dot1q vlan 100
+ encapsulation dot1q vlan 1000
vrf IT
ip address 172.17.0.9/31
!
@@ -230,19 +262,27 @@ interface Ethernet53
flow tracker hardware WAN-FLOW-TRACKER
ip address 172.17.0.11/31
!
-interface Ethernet53.42
- description P2P_LINK_TO_SITE-HA-ENABLED-LEAF2B_Ethernet2.42_vrf_PROD
+interface Ethernet53.142
+ description P2P_LINK_TO_SITE-HA-ENABLED-LEAF2B_Ethernet2.142_vrf_PROD
no shutdown
mtu 9214
- encapsulation dot1q vlan 42
+ encapsulation dot1q vlan 142
vrf PROD
ip address 172.17.0.11/31
!
-interface Ethernet53.100
- description P2P_LINK_TO_SITE-HA-ENABLED-LEAF2B_Ethernet2.100_vrf_IT
+interface Ethernet53.666
+ description P2P_LINK_TO_SITE-HA-ENABLED-LEAF2B_Ethernet2.666_vrf_ATTRACTED-VRF-FROM-UPLINK
no shutdown
mtu 9214
- encapsulation dot1q vlan 100
+ encapsulation dot1q vlan 666
+ vrf ATTRACTED-VRF-FROM-UPLINK
+ ip address 172.17.0.11/31
+!
+interface Ethernet53.1000
+ description P2P_LINK_TO_SITE-HA-ENABLED-LEAF2B_Ethernet2.1000_vrf_IT
+ no shutdown
+ mtu 9214
+ encapsulation dot1q vlan 1000
vrf IT
ip address 172.17.0.11/31
!
@@ -255,6 +295,7 @@ interface Vxlan1
description cv-pathfinder-edge2B_VTEP
vxlan source-interface Dps1
vxlan udp-port 4789
+ vxlan vrf ATTRACTED-VRF-FROM-UPLINK vni 166
vxlan vrf default vni 1
vxlan vrf IT vni 100
vxlan vrf PROD vni 42
@@ -303,6 +344,7 @@ application traffic recognition
42
!
ip routing
+ip routing vrf ATTRACTED-VRF-FROM-UPLINK
ip routing vrf IT
no ip routing vrf MGMT
ip routing vrf PROD
@@ -422,6 +464,19 @@ router bgp 65000
bgp additional-paths send any
neighbor WAN-OVERLAY-PEERS activate
!
+ vrf ATTRACTED-VRF-FROM-UPLINK
+ rd 192.168.42.3:666
+ route-target import evpn 666:666
+ route-target export evpn 666:666
+ router-id 192.168.42.3
+ neighbor 172.17.0.8 remote-as 65199
+ neighbor 172.17.0.8 peer group IPv4-UNDERLAY-PEERS
+ neighbor 172.17.0.8 description site-ha-enabled-leaf2A_Ethernet2.666_vrf_ATTRACTED-VRF-FROM-UPLINK
+ neighbor 172.17.0.10 remote-as 65199
+ neighbor 172.17.0.10 peer group IPv4-UNDERLAY-PEERS
+ neighbor 172.17.0.10 description site-ha-enabled-leaf2B_Ethernet2.666_vrf_ATTRACTED-VRF-FROM-UPLINK
+ redistribute connected
+ !
vrf default
rd 192.168.42.3:1
route-target import evpn 1:1
@@ -429,29 +484,29 @@ router bgp 65000
route-target export evpn route-map RM-EVPN-EXPORT-VRF-DEFAULT
!
vrf IT
- rd 192.168.42.3:100
- route-target import evpn 100:100
- route-target export evpn 100:100
+ rd 192.168.42.3:1000
+ route-target import evpn 1000:1000
+ route-target export evpn 1000:1000
router-id 192.168.42.3
neighbor 172.17.0.8 remote-as 65199
neighbor 172.17.0.8 peer group IPv4-UNDERLAY-PEERS
- neighbor 172.17.0.8 description site-ha-enabled-leaf2A_Ethernet2.100_vrf_IT
+ neighbor 172.17.0.8 description site-ha-enabled-leaf2A_Ethernet2.1000_vrf_IT
neighbor 172.17.0.10 remote-as 65199
neighbor 172.17.0.10 peer group IPv4-UNDERLAY-PEERS
- neighbor 172.17.0.10 description site-ha-enabled-leaf2B_Ethernet2.100_vrf_IT
+ neighbor 172.17.0.10 description site-ha-enabled-leaf2B_Ethernet2.1000_vrf_IT
redistribute connected
!
vrf PROD
- rd 192.168.42.3:42
- route-target import evpn 42:42
- route-target export evpn 42:42
+ rd 192.168.42.3:142
+ route-target import evpn 142:142
+ route-target export evpn 142:142
router-id 192.168.42.3
neighbor 172.17.0.8 remote-as 65199
neighbor 172.17.0.8 peer group IPv4-UNDERLAY-PEERS
- neighbor 172.17.0.8 description site-ha-enabled-leaf2A_Ethernet2.42_vrf_PROD
+ neighbor 172.17.0.8 description site-ha-enabled-leaf2A_Ethernet2.142_vrf_PROD
neighbor 172.17.0.10 remote-as 65199
neighbor 172.17.0.10 peer group IPv4-UNDERLAY-PEERS
- neighbor 172.17.0.10 description site-ha-enabled-leaf2B_Ethernet2.42_vrf_PROD
+ neighbor 172.17.0.10 description site-ha-enabled-leaf2B_Ethernet2.142_vrf_PROD
redistribute connected
!
router traffic-engineering
diff --git a/ansible_collections/arista/avd/molecule/eos_designs_unit_tests/intended/configs/cv-pathfinder-pathfinder.cfg b/ansible_collections/arista/avd/molecule/eos_designs_unit_tests/intended/configs/cv-pathfinder-pathfinder.cfg
index e570e7a4064..0052572db92 100644
--- a/ansible_collections/arista/avd/molecule/eos_designs_unit_tests/intended/configs/cv-pathfinder-pathfinder.cfg
+++ b/ansible_collections/arista/avd/molecule/eos_designs_unit_tests/intended/configs/cv-pathfinder-pathfinder.cfg
@@ -36,6 +36,11 @@ router adaptive-virtual-topology
match application-profile default
avt profile DEFAULT-AVT-POLICY-DEFAULT
!
+ policy DEFAULT-POLICY
+ !
+ match application-profile default
+ avt profile DEFAULT-POLICY-DEFAULT
+ !
policy PROD-AVT-POLICY
!
match application-profile VOICE
@@ -64,6 +69,15 @@ router adaptive-virtual-topology
profile DEFAULT-AVT-POLICY-VIDEO
path-selection load-balance LB-DEFAULT-AVT-POLICY-VIDEO
!
+ profile DEFAULT-AVT-POLICY-WITH-CP-DEFAULT
+ path-selection load-balance LB-DEFAULT-AVT-POLICY-WITH-CP-DEFAULT
+ !
+ profile DEFAULT-AVT-POLICY-WITH-CP-VIDEO
+ path-selection load-balance LB-DEFAULT-AVT-POLICY-WITH-CP-VIDEO
+ !
+ profile DEFAULT-POLICY-DEFAULT
+ path-selection load-balance LB-DEFAULT-POLICY-DEFAULT
+ !
profile PROD-AVT-POLICY-DEFAULT
path-selection load-balance LB-PROD-AVT-POLICY-DEFAULT
!
@@ -79,6 +93,10 @@ router adaptive-virtual-topology
profile TRANSIT-AVT-POLICY-VOICE
path-selection load-balance LB-TRANSIT-AVT-POLICY-VOICE
!
+ vrf ATTRACTED-VRF-FROM-UPLINK
+ avt policy DEFAULT-POLICY
+ avt profile DEFAULT-POLICY-DEFAULT id 1
+ !
vrf default
avt policy DEFAULT-AVT-POLICY-WITH-CP
avt profile DEFAULT-AVT-POLICY-DEFAULT id 1
@@ -141,6 +159,11 @@ router path-selection
path-group LAN_HA
path-group MPLS
!
+ load-balance policy LB-DEFAULT-POLICY-DEFAULT
+ path-group INET
+ path-group LAN_HA
+ path-group MPLS
+ !
load-balance policy LB-PROD-AVT-POLICY-DEFAULT
path-group INET
path-group LAN_HA
diff --git a/ansible_collections/arista/avd/molecule/eos_designs_unit_tests/intended/configs/cv-pathfinder-pathfinder1.cfg b/ansible_collections/arista/avd/molecule/eos_designs_unit_tests/intended/configs/cv-pathfinder-pathfinder1.cfg
index 87cd1f7baa1..af1f5cb5c15 100644
--- a/ansible_collections/arista/avd/molecule/eos_designs_unit_tests/intended/configs/cv-pathfinder-pathfinder1.cfg
+++ b/ansible_collections/arista/avd/molecule/eos_designs_unit_tests/intended/configs/cv-pathfinder-pathfinder1.cfg
@@ -36,6 +36,11 @@ router adaptive-virtual-topology
match application-profile default
avt profile DEFAULT-AVT-POLICY-DEFAULT
!
+ policy DEFAULT-POLICY
+ !
+ match application-profile default
+ avt profile DEFAULT-POLICY-DEFAULT
+ !
policy PROD-AVT-POLICY
!
match application-profile VOICE
@@ -64,6 +69,15 @@ router adaptive-virtual-topology
profile DEFAULT-AVT-POLICY-VIDEO
path-selection load-balance LB-DEFAULT-AVT-POLICY-VIDEO
!
+ profile DEFAULT-AVT-POLICY-WITH-CP-DEFAULT
+ path-selection load-balance LB-DEFAULT-AVT-POLICY-WITH-CP-DEFAULT
+ !
+ profile DEFAULT-AVT-POLICY-WITH-CP-VIDEO
+ path-selection load-balance LB-DEFAULT-AVT-POLICY-WITH-CP-VIDEO
+ !
+ profile DEFAULT-POLICY-DEFAULT
+ path-selection load-balance LB-DEFAULT-POLICY-DEFAULT
+ !
profile PROD-AVT-POLICY-DEFAULT
path-selection load-balance LB-PROD-AVT-POLICY-DEFAULT
!
@@ -79,6 +93,10 @@ router adaptive-virtual-topology
profile TRANSIT-AVT-POLICY-VOICE
path-selection load-balance LB-TRANSIT-AVT-POLICY-VOICE
!
+ vrf ATTRACTED-VRF-FROM-UPLINK
+ avt policy DEFAULT-POLICY
+ avt profile DEFAULT-POLICY-DEFAULT id 1
+ !
vrf default
avt policy DEFAULT-AVT-POLICY-WITH-CP
avt profile DEFAULT-AVT-POLICY-DEFAULT id 1
@@ -144,6 +162,10 @@ router path-selection
path-group LAN_HA
path-group MPLS
!
+ load-balance policy LB-DEFAULT-POLICY-DEFAULT
+ path-group INET
+ path-group LAN_HA
+ !
load-balance policy LB-PROD-AVT-POLICY-DEFAULT
path-group INET
path-group LAN_HA
diff --git a/ansible_collections/arista/avd/molecule/eos_designs_unit_tests/intended/configs/cv-pathfinder-pathfinder2.cfg b/ansible_collections/arista/avd/molecule/eos_designs_unit_tests/intended/configs/cv-pathfinder-pathfinder2.cfg
index d15b4856665..246f62d4511 100644
--- a/ansible_collections/arista/avd/molecule/eos_designs_unit_tests/intended/configs/cv-pathfinder-pathfinder2.cfg
+++ b/ansible_collections/arista/avd/molecule/eos_designs_unit_tests/intended/configs/cv-pathfinder-pathfinder2.cfg
@@ -36,6 +36,11 @@ router adaptive-virtual-topology
match application-profile default
avt profile DEFAULT-AVT-POLICY-DEFAULT
!
+ policy DEFAULT-POLICY
+ !
+ match application-profile default
+ avt profile DEFAULT-POLICY-DEFAULT
+ !
policy PROD-AVT-POLICY
!
match application-profile VOICE
@@ -64,6 +69,15 @@ router adaptive-virtual-topology
profile DEFAULT-AVT-POLICY-VIDEO
path-selection load-balance LB-DEFAULT-AVT-POLICY-VIDEO
!
+ profile DEFAULT-AVT-POLICY-WITH-CP-DEFAULT
+ path-selection load-balance LB-DEFAULT-AVT-POLICY-WITH-CP-DEFAULT
+ !
+ profile DEFAULT-AVT-POLICY-WITH-CP-VIDEO
+ path-selection load-balance LB-DEFAULT-AVT-POLICY-WITH-CP-VIDEO
+ !
+ profile DEFAULT-POLICY-DEFAULT
+ path-selection load-balance LB-DEFAULT-POLICY-DEFAULT
+ !
profile PROD-AVT-POLICY-DEFAULT
path-selection load-balance LB-PROD-AVT-POLICY-DEFAULT
!
@@ -79,6 +93,10 @@ router adaptive-virtual-topology
profile TRANSIT-AVT-POLICY-VOICE
path-selection load-balance LB-TRANSIT-AVT-POLICY-VOICE
!
+ vrf ATTRACTED-VRF-FROM-UPLINK
+ avt policy DEFAULT-POLICY
+ avt profile DEFAULT-POLICY-DEFAULT id 1
+ !
vrf default
avt policy DEFAULT-AVT-POLICY-WITH-CP
avt profile DEFAULT-AVT-POLICY-DEFAULT id 1
@@ -151,6 +169,11 @@ router path-selection
path-group LAN_HA
path-group MPLS
!
+ load-balance policy LB-DEFAULT-POLICY-DEFAULT
+ path-group INET
+ path-group LAN_HA
+ path-group MPLS
+ !
load-balance policy LB-PROD-AVT-POLICY-DEFAULT
path-group INET
path-group LAN_HA
diff --git a/ansible_collections/arista/avd/molecule/eos_designs_unit_tests/intended/configs/cv-pathfinder-transit1A.cfg b/ansible_collections/arista/avd/molecule/eos_designs_unit_tests/intended/configs/cv-pathfinder-transit1A.cfg
index db3d028a045..91c34dacebe 100644
--- a/ansible_collections/arista/avd/molecule/eos_designs_unit_tests/intended/configs/cv-pathfinder-transit1A.cfg
+++ b/ansible_collections/arista/avd/molecule/eos_designs_unit_tests/intended/configs/cv-pathfinder-transit1A.cfg
@@ -41,6 +41,11 @@ router adaptive-virtual-topology
match application-profile default
avt profile DEFAULT-AVT-POLICY-DEFAULT
!
+ policy DEFAULT-POLICY
+ !
+ match application-profile default
+ avt profile DEFAULT-POLICY-DEFAULT
+ !
policy PROD-AVT-POLICY
!
match application-profile VOICE
@@ -69,6 +74,15 @@ router adaptive-virtual-topology
profile DEFAULT-AVT-POLICY-VIDEO
path-selection load-balance LB-DEFAULT-AVT-POLICY-VIDEO
!
+ profile DEFAULT-AVT-POLICY-WITH-CP-DEFAULT
+ path-selection load-balance LB-DEFAULT-AVT-POLICY-WITH-CP-DEFAULT
+ !
+ profile DEFAULT-AVT-POLICY-WITH-CP-VIDEO
+ path-selection load-balance LB-DEFAULT-AVT-POLICY-WITH-CP-VIDEO
+ !
+ profile DEFAULT-POLICY-DEFAULT
+ path-selection load-balance LB-DEFAULT-POLICY-DEFAULT
+ !
profile PROD-AVT-POLICY-DEFAULT
path-selection load-balance LB-PROD-AVT-POLICY-DEFAULT
!
@@ -84,6 +98,10 @@ router adaptive-virtual-topology
profile TRANSIT-AVT-POLICY-VOICE
path-selection load-balance LB-TRANSIT-AVT-POLICY-VOICE
!
+ vrf ATTRACTED-VRF-FROM-UPLINK
+ avt policy DEFAULT-POLICY
+ avt profile DEFAULT-POLICY-DEFAULT id 1
+ !
vrf default
avt policy DEFAULT-AVT-POLICY-WITH-CP
avt profile DEFAULT-AVT-POLICY-DEFAULT id 1
@@ -157,6 +175,11 @@ router path-selection
path-group LAN_HA
path-group MPLS
!
+ load-balance policy LB-DEFAULT-POLICY-DEFAULT
+ path-group INET
+ path-group LAN_HA
+ path-group MPLS
+ !
load-balance policy LB-PROD-AVT-POLICY-DEFAULT
path-group INET
path-group LAN_HA
@@ -189,6 +212,8 @@ spanning-tree mode none
no enable password
no aaa root
!
+vrf instance ATTRACTED-VRF-FROM-UPLINK
+!
vrf instance IT
!
vrf instance MGMT
@@ -269,19 +294,27 @@ interface Ethernet52
flow tracker hardware WAN-FLOW-TRACKER
ip address 172.17.0.1/31
!
-interface Ethernet52.42
- description P2P_LINK_TO_SITE-HA-ENABLED-LEAF1_Ethernet1.42_vrf_PROD
+interface Ethernet52.142
+ description P2P_LINK_TO_SITE-HA-ENABLED-LEAF1_Ethernet1.142_vrf_PROD
no shutdown
mtu 9214
- encapsulation dot1q vlan 42
+ encapsulation dot1q vlan 142
vrf PROD
ip address 172.17.0.1/31
!
-interface Ethernet52.100
- description P2P_LINK_TO_SITE-HA-ENABLED-LEAF1_Ethernet1.100_vrf_IT
+interface Ethernet52.666
+ description P2P_LINK_TO_SITE-HA-ENABLED-LEAF1_Ethernet1.666_vrf_ATTRACTED-VRF-FROM-UPLINK
no shutdown
mtu 9214
- encapsulation dot1q vlan 100
+ encapsulation dot1q vlan 666
+ vrf ATTRACTED-VRF-FROM-UPLINK
+ ip address 172.17.0.1/31
+!
+interface Ethernet52.1000
+ description P2P_LINK_TO_SITE-HA-ENABLED-LEAF1_Ethernet1.1000_vrf_IT
+ no shutdown
+ mtu 9214
+ encapsulation dot1q vlan 1000
vrf IT
ip address 172.17.0.1/31
!
@@ -294,6 +327,7 @@ interface Vxlan1
description cv-pathfinder-transit1A_VTEP
vxlan source-interface Dps1
vxlan udp-port 4789
+ vxlan vrf ATTRACTED-VRF-FROM-UPLINK vni 166
vxlan vrf default vni 1
vxlan vrf IT vni 100
vxlan vrf PROD vni 42
@@ -343,6 +377,7 @@ application traffic recognition
42
!
ip routing
+ip routing vrf ATTRACTED-VRF-FROM-UPLINK
ip routing vrf IT
no ip routing vrf MGMT
ip routing vrf NOT-WAN-VRF
@@ -459,6 +494,16 @@ router bgp 65000
bgp additional-paths send any
neighbor WAN-OVERLAY-PEERS activate
!
+ vrf ATTRACTED-VRF-FROM-UPLINK
+ rd 192.168.43.1:666
+ route-target import evpn 666:666
+ route-target export evpn 666:666
+ router-id 192.168.43.1
+ neighbor 172.17.0.0 remote-as 65199
+ neighbor 172.17.0.0 peer group IPv4-UNDERLAY-PEERS
+ neighbor 172.17.0.0 description site-ha-enabled-leaf1_Ethernet1.666_vrf_ATTRACTED-VRF-FROM-UPLINK
+ redistribute connected
+ !
vrf default
rd 192.168.43.1:1
route-target import evpn 1:1
@@ -472,7 +517,11 @@ router bgp 65000
router-id 192.168.43.1
neighbor 172.17.0.0 remote-as 65199
neighbor 172.17.0.0 peer group IPv4-UNDERLAY-PEERS
- neighbor 172.17.0.0 description site-ha-enabled-leaf1_Ethernet1.100_vrf_IT
+ neighbor 172.17.0.0 description site-ha-enabled-leaf1_Ethernet1.1000_vrf_IT
+ redistribute connected
+ !
+ vrf NOT-WAN-VRF
+ router-id 192.168.43.1
redistribute connected
!
vrf PROD
@@ -482,7 +531,7 @@ router bgp 65000
router-id 192.168.43.1
neighbor 172.17.0.0 remote-as 65199
neighbor 172.17.0.0 peer group IPv4-UNDERLAY-PEERS
- neighbor 172.17.0.0 description site-ha-enabled-leaf1_Ethernet1.42_vrf_PROD
+ neighbor 172.17.0.0 description site-ha-enabled-leaf1_Ethernet1.142_vrf_PROD
redistribute connected
!
vrf TRANSIT
diff --git a/ansible_collections/arista/avd/molecule/eos_designs_unit_tests/intended/configs/cv-pathfinder-transit1B.cfg b/ansible_collections/arista/avd/molecule/eos_designs_unit_tests/intended/configs/cv-pathfinder-transit1B.cfg
index b80503236d5..b5474e6cff4 100644
--- a/ansible_collections/arista/avd/molecule/eos_designs_unit_tests/intended/configs/cv-pathfinder-transit1B.cfg
+++ b/ansible_collections/arista/avd/molecule/eos_designs_unit_tests/intended/configs/cv-pathfinder-transit1B.cfg
@@ -41,6 +41,11 @@ router adaptive-virtual-topology
match application-profile default
avt profile DEFAULT-AVT-POLICY-DEFAULT
!
+ policy DEFAULT-POLICY
+ !
+ match application-profile default
+ avt profile DEFAULT-POLICY-DEFAULT
+ !
policy PROD-AVT-POLICY
!
match application-profile VOICE
@@ -69,6 +74,15 @@ router adaptive-virtual-topology
profile DEFAULT-AVT-POLICY-VIDEO
path-selection load-balance LB-DEFAULT-AVT-POLICY-VIDEO
!
+ profile DEFAULT-AVT-POLICY-WITH-CP-DEFAULT
+ path-selection load-balance LB-DEFAULT-AVT-POLICY-WITH-CP-DEFAULT
+ !
+ profile DEFAULT-AVT-POLICY-WITH-CP-VIDEO
+ path-selection load-balance LB-DEFAULT-AVT-POLICY-WITH-CP-VIDEO
+ !
+ profile DEFAULT-POLICY-DEFAULT
+ path-selection load-balance LB-DEFAULT-POLICY-DEFAULT
+ !
profile PROD-AVT-POLICY-DEFAULT
path-selection load-balance LB-PROD-AVT-POLICY-DEFAULT
!
@@ -84,6 +98,10 @@ router adaptive-virtual-topology
profile TRANSIT-AVT-POLICY-VOICE
path-selection load-balance LB-TRANSIT-AVT-POLICY-VOICE
!
+ vrf ATTRACTED-VRF-FROM-UPLINK
+ avt policy DEFAULT-POLICY
+ avt profile DEFAULT-POLICY-DEFAULT id 1
+ !
vrf default
avt policy DEFAULT-AVT-POLICY-WITH-CP
avt profile DEFAULT-AVT-POLICY-DEFAULT id 1
@@ -157,6 +175,11 @@ router path-selection
path-group LAN_HA
path-group MPLS
!
+ load-balance policy LB-DEFAULT-POLICY-DEFAULT
+ path-group INET
+ path-group LAN_HA
+ path-group MPLS
+ !
load-balance policy LB-PROD-AVT-POLICY-DEFAULT
path-group INET
path-group LAN_HA
@@ -189,10 +212,14 @@ spanning-tree mode none
no enable password
no aaa root
!
+vrf instance ATTRACTED-VRF-FROM-UPLINK
+!
vrf instance IT
!
vrf instance MGMT
!
+vrf instance NOT-WAN-VRF
+!
vrf instance PROD
!
vrf instance TRANSIT
@@ -267,19 +294,27 @@ interface Ethernet52
flow tracker hardware WAN-FLOW-TRACKER
ip address 172.17.0.3/31
!
-interface Ethernet52.42
- description P2P_LINK_TO_SITE-HA-ENABLED-LEAF1_Ethernet2.42_vrf_PROD
+interface Ethernet52.142
+ description P2P_LINK_TO_SITE-HA-ENABLED-LEAF1_Ethernet2.142_vrf_PROD
no shutdown
mtu 9214
- encapsulation dot1q vlan 42
+ encapsulation dot1q vlan 142
vrf PROD
ip address 172.17.0.3/31
!
-interface Ethernet52.100
- description P2P_LINK_TO_SITE-HA-ENABLED-LEAF1_Ethernet2.100_vrf_IT
+interface Ethernet52.666
+ description P2P_LINK_TO_SITE-HA-ENABLED-LEAF1_Ethernet2.666_vrf_ATTRACTED-VRF-FROM-UPLINK
no shutdown
mtu 9214
- encapsulation dot1q vlan 100
+ encapsulation dot1q vlan 666
+ vrf ATTRACTED-VRF-FROM-UPLINK
+ ip address 172.17.0.3/31
+!
+interface Ethernet52.1000
+ description P2P_LINK_TO_SITE-HA-ENABLED-LEAF1_Ethernet2.1000_vrf_IT
+ no shutdown
+ mtu 9214
+ encapsulation dot1q vlan 1000
vrf IT
ip address 172.17.0.3/31
!
@@ -292,6 +327,7 @@ interface Vxlan1
description cv-pathfinder-transit1B_VTEP
vxlan source-interface Dps1
vxlan udp-port 4789
+ vxlan vrf ATTRACTED-VRF-FROM-UPLINK vni 166
vxlan vrf default vni 1
vxlan vrf IT vni 100
vxlan vrf PROD vni 42
@@ -341,8 +377,10 @@ application traffic recognition
42
!
ip routing
+ip routing vrf ATTRACTED-VRF-FROM-UPLINK
ip routing vrf IT
no ip routing vrf MGMT
+ip routing vrf NOT-WAN-VRF
ip routing vrf PROD
ip routing vrf TRANSIT
!
@@ -456,6 +494,16 @@ router bgp 65000
bgp additional-paths send any
neighbor WAN-OVERLAY-PEERS activate
!
+ vrf ATTRACTED-VRF-FROM-UPLINK
+ rd 192.168.43.2:666
+ route-target import evpn 666:666
+ route-target export evpn 666:666
+ router-id 192.168.43.2
+ neighbor 172.17.0.2 remote-as 65199
+ neighbor 172.17.0.2 peer group IPv4-UNDERLAY-PEERS
+ neighbor 172.17.0.2 description site-ha-enabled-leaf1_Ethernet2.666_vrf_ATTRACTED-VRF-FROM-UPLINK
+ redistribute connected
+ !
vrf default
rd 192.168.43.2:1
route-target import evpn 1:1
@@ -463,23 +511,27 @@ router bgp 65000
route-target export evpn route-map RM-EVPN-EXPORT-VRF-DEFAULT
!
vrf IT
- rd 192.168.43.2:100
- route-target import evpn 100:100
- route-target export evpn 100:100
+ rd 192.168.43.2:1000
+ route-target import evpn 1000:1000
+ route-target export evpn 1000:1000
router-id 192.168.43.2
neighbor 172.17.0.2 remote-as 65199
neighbor 172.17.0.2 peer group IPv4-UNDERLAY-PEERS
- neighbor 172.17.0.2 description site-ha-enabled-leaf1_Ethernet2.100_vrf_IT
+ neighbor 172.17.0.2 description site-ha-enabled-leaf1_Ethernet2.1000_vrf_IT
+ redistribute connected
+ !
+ vrf NOT-WAN-VRF
+ router-id 192.168.43.2
redistribute connected
!
vrf PROD
- rd 192.168.43.2:42
- route-target import evpn 42:42
- route-target export evpn 42:42
+ rd 192.168.43.2:142
+ route-target import evpn 142:142
+ route-target export evpn 142:142
router-id 192.168.43.2
neighbor 172.17.0.2 remote-as 65199
neighbor 172.17.0.2 peer group IPv4-UNDERLAY-PEERS
- neighbor 172.17.0.2 description site-ha-enabled-leaf1_Ethernet2.42_vrf_PROD
+ neighbor 172.17.0.2 description site-ha-enabled-leaf1_Ethernet2.142_vrf_PROD
redistribute connected
!
vrf TRANSIT
diff --git a/ansible_collections/arista/avd/molecule/eos_designs_unit_tests/intended/configs/site-ha-disabled-leaf.cfg b/ansible_collections/arista/avd/molecule/eos_designs_unit_tests/intended/configs/site-ha-disabled-leaf.cfg
index 99554be20f1..c6ceb6e7ce8 100644
--- a/ansible_collections/arista/avd/molecule/eos_designs_unit_tests/intended/configs/site-ha-disabled-leaf.cfg
+++ b/ansible_collections/arista/avd/molecule/eos_designs_unit_tests/intended/configs/site-ha-disabled-leaf.cfg
@@ -176,7 +176,7 @@ router bgp 65199
redistribute learned
!
vlan 666
- rd 192.168.45.3:1666
+ rd 192.168.45.4:1666
route-target both 1666:1666
redistribute learned
!
@@ -188,10 +188,10 @@ router bgp 65199
neighbor IPv4-UNDERLAY-PEERS activate
!
vrf ATTRACTED-VRF-FROM-UPLINK
- rd 192.168.45.3:666
+ rd 192.168.45.4:666
route-target import evpn 666:666
route-target export evpn 666:666
- router-id 192.168.45.3
+ router-id 192.168.45.4
neighbor 172.17.0.1 remote-as 65000
neighbor 172.17.0.1 peer group IPv4-UNDERLAY-PEERS
neighbor 172.17.0.1 description cv-pathfinder-edge_Ethernet52.666_vrf_ATTRACTED-VRF-FROM-UPLINK
@@ -206,17 +206,10 @@ router bgp 65199
route-target export evpn 1:1
!
vrf IT
-<<<<<<< HEAD
- rd 192.168.45.4:100
- route-target import evpn 100:100
- route-target export evpn 100:100
- router-id 192.168.45.4
-=======
- rd 192.168.45.3:1000
+ rd 192.168.45.4:1000
route-target import evpn 1000:1000
route-target export evpn 1000:1000
- router-id 192.168.45.3
->>>>>>> ff441f2cd (Feat(eos_designs): Add wan_vni for WAN VRF)
+ router-id 192.168.45.4
neighbor 172.17.0.1 remote-as 65000
neighbor 172.17.0.1 peer group IPv4-UNDERLAY-PEERS
neighbor 172.17.0.1 description cv-pathfinder-edge_Ethernet52.1000_vrf_IT
@@ -226,17 +219,10 @@ router bgp 65199
redistribute connected
!
vrf PROD
-<<<<<<< HEAD
- rd 192.168.45.4:42
- route-target import evpn 42:42
- route-target export evpn 42:42
- router-id 192.168.45.4
-=======
- rd 192.168.45.3:142
+ rd 192.168.45.4:142
route-target import evpn 142:142
route-target export evpn 142:142
- router-id 192.168.45.3
->>>>>>> ff441f2cd (Feat(eos_designs): Add wan_vni for WAN VRF)
+ router-id 192.168.45.4
neighbor 172.17.0.1 remote-as 65000
neighbor 172.17.0.1 peer group IPv4-UNDERLAY-PEERS
neighbor 172.17.0.1 description cv-pathfinder-edge_Ethernet52.142_vrf_PROD
diff --git a/ansible_collections/arista/avd/molecule/eos_designs_unit_tests/intended/configs/site-ha-enabled-leaf1.cfg b/ansible_collections/arista/avd/molecule/eos_designs_unit_tests/intended/configs/site-ha-enabled-leaf1.cfg
index b09f8c9740f..684625f0f62 100644
--- a/ansible_collections/arista/avd/molecule/eos_designs_unit_tests/intended/configs/site-ha-enabled-leaf1.cfg
+++ b/ansible_collections/arista/avd/molecule/eos_designs_unit_tests/intended/configs/site-ha-enabled-leaf1.cfg
@@ -17,6 +17,11 @@ vlan 100
vlan 101
name VLAN101
!
+vlan 666
+ name VLAN666
+!
+vrf instance ATTRACTED-VRF-FROM-UPLINK
+!
vrf instance IT
!
vrf instance MGMT
@@ -30,19 +35,27 @@ interface Ethernet1
no switchport
ip address 172.17.0.0/31
!
-interface Ethernet1.42
- description P2P_LINK_TO_CV-PATHFINDER-TRANSIT1A_Ethernet52.42_vrf_PROD
+interface Ethernet1.142
+ description P2P_LINK_TO_CV-PATHFINDER-TRANSIT1A_Ethernet52.142_vrf_PROD
no shutdown
mtu 9214
- encapsulation dot1q vlan 42
+ encapsulation dot1q vlan 142
vrf PROD
ip address 172.17.0.0/31
!
-interface Ethernet1.100
- description P2P_LINK_TO_CV-PATHFINDER-TRANSIT1A_Ethernet52.100_vrf_IT
+interface Ethernet1.666
+ description P2P_LINK_TO_CV-PATHFINDER-TRANSIT1A_Ethernet52.666_vrf_ATTRACTED-VRF-FROM-UPLINK
+ no shutdown
+ mtu 9214
+ encapsulation dot1q vlan 666
+ vrf ATTRACTED-VRF-FROM-UPLINK
+ ip address 172.17.0.0/31
+!
+interface Ethernet1.1000
+ description P2P_LINK_TO_CV-PATHFINDER-TRANSIT1A_Ethernet52.1000_vrf_IT
no shutdown
mtu 9214
- encapsulation dot1q vlan 100
+ encapsulation dot1q vlan 1000
vrf IT
ip address 172.17.0.0/31
!
@@ -53,19 +66,27 @@ interface Ethernet2
no switchport
ip address 172.17.0.2/31
!
-interface Ethernet2.42
- description P2P_LINK_TO_CV-PATHFINDER-TRANSIT1B_Ethernet52.42_vrf_PROD
+interface Ethernet2.142
+ description P2P_LINK_TO_CV-PATHFINDER-TRANSIT1B_Ethernet52.142_vrf_PROD
no shutdown
mtu 9214
- encapsulation dot1q vlan 42
+ encapsulation dot1q vlan 142
vrf PROD
ip address 172.17.0.2/31
!
-interface Ethernet2.100
- description P2P_LINK_TO_CV-PATHFINDER-TRANSIT1B_Ethernet52.100_vrf_IT
+interface Ethernet2.666
+ description P2P_LINK_TO_CV-PATHFINDER-TRANSIT1B_Ethernet52.666_vrf_ATTRACTED-VRF-FROM-UPLINK
no shutdown
mtu 9214
- encapsulation dot1q vlan 100
+ encapsulation dot1q vlan 666
+ vrf ATTRACTED-VRF-FROM-UPLINK
+ ip address 172.17.0.2/31
+!
+interface Ethernet2.1000
+ description P2P_LINK_TO_CV-PATHFINDER-TRANSIT1B_Ethernet52.1000_vrf_IT
+ no shutdown
+ mtu 9214
+ encapsulation dot1q vlan 1000
vrf IT
ip address 172.17.0.2/31
!
@@ -85,19 +106,28 @@ interface Vlan100
vrf PROD
ip address virtual 10.0.100.1/24
!
+interface Vlan666
+ description VLAN666
+ shutdown
+ vrf ATTRACTED-VRF-FROM-UPLINK
+ ip address virtual 10.66.66.66/24
+!
interface Vxlan1
description site-ha-enabled-leaf1_VTEP
vxlan source-interface Loopback1
vxlan udp-port 4789
vxlan vlan 100 vni 1100
vxlan vlan 101 vni 1101
+ vxlan vlan 666 vni 1666
+ vxlan vrf ATTRACTED-VRF-FROM-UPLINK vni 666
vxlan vrf default vni 1
- vxlan vrf IT vni 100
- vxlan vrf PROD vni 42
+ vxlan vrf IT vni 1000
+ vxlan vrf PROD vni 142
!
ip virtual-router mac-address 00:1c:73:00:00:01
!
ip routing
+ip routing vrf ATTRACTED-VRF-FROM-UPLINK
ip routing vrf IT
no ip routing vrf MGMT
ip routing vrf PROD
@@ -144,6 +174,11 @@ router bgp 65199
route-target both 1101:1101
redistribute learned
!
+ vlan 666
+ rd 192.168.45.1:1666
+ route-target both 1666:1666
+ redistribute learned
+ !
address-family evpn
neighbor EVPN-OVERLAY-PEERS activate
!
@@ -151,35 +186,48 @@ router bgp 65199
no neighbor EVPN-OVERLAY-PEERS activate
neighbor IPv4-UNDERLAY-PEERS activate
!
+ vrf ATTRACTED-VRF-FROM-UPLINK
+ rd 192.168.45.1:666
+ route-target import evpn 666:666
+ route-target export evpn 666:666
+ router-id 192.168.45.1
+ neighbor 172.17.0.1 remote-as 65000
+ neighbor 172.17.0.1 peer group IPv4-UNDERLAY-PEERS
+ neighbor 172.17.0.1 description cv-pathfinder-transit1A_Ethernet52.666_vrf_ATTRACTED-VRF-FROM-UPLINK
+ neighbor 172.17.0.3 remote-as 65000
+ neighbor 172.17.0.3 peer group IPv4-UNDERLAY-PEERS
+ neighbor 172.17.0.3 description cv-pathfinder-transit1B_Ethernet52.666_vrf_ATTRACTED-VRF-FROM-UPLINK
+ redistribute connected
+ !
vrf default
rd 192.168.45.1:1
route-target import evpn 1:1
route-target export evpn 1:1
!
vrf IT
- rd 192.168.45.1:100
- route-target import evpn 100:100
- route-target export evpn 100:100
+ rd 192.168.45.1:1000
+ route-target import evpn 1000:1000
+ route-target export evpn 1000:1000
router-id 192.168.45.1
neighbor 172.17.0.1 remote-as 65000
neighbor 172.17.0.1 peer group IPv4-UNDERLAY-PEERS
- neighbor 172.17.0.1 description cv-pathfinder-transit1A_Ethernet52.100_vrf_IT
+ neighbor 172.17.0.1 description cv-pathfinder-transit1A_Ethernet52.1000_vrf_IT
neighbor 172.17.0.3 remote-as 65000
neighbor 172.17.0.3 peer group IPv4-UNDERLAY-PEERS
- neighbor 172.17.0.3 description cv-pathfinder-transit1B_Ethernet52.100_vrf_IT
+ neighbor 172.17.0.3 description cv-pathfinder-transit1B_Ethernet52.1000_vrf_IT
redistribute connected
!
vrf PROD
- rd 192.168.45.1:42
- route-target import evpn 42:42
- route-target export evpn 42:42
+ rd 192.168.45.1:142
+ route-target import evpn 142:142
+ route-target export evpn 142:142
router-id 192.168.45.1
neighbor 172.17.0.1 remote-as 65000
neighbor 172.17.0.1 peer group IPv4-UNDERLAY-PEERS
- neighbor 172.17.0.1 description cv-pathfinder-transit1A_Ethernet52.42_vrf_PROD
+ neighbor 172.17.0.1 description cv-pathfinder-transit1A_Ethernet52.142_vrf_PROD
neighbor 172.17.0.3 remote-as 65000
neighbor 172.17.0.3 peer group IPv4-UNDERLAY-PEERS
- neighbor 172.17.0.3 description cv-pathfinder-transit1B_Ethernet52.42_vrf_PROD
+ neighbor 172.17.0.3 description cv-pathfinder-transit1B_Ethernet52.142_vrf_PROD
redistribute connected
!
management api http-commands
diff --git a/ansible_collections/arista/avd/molecule/eos_designs_unit_tests/intended/configs/site-ha-enabled-leaf2A.cfg b/ansible_collections/arista/avd/molecule/eos_designs_unit_tests/intended/configs/site-ha-enabled-leaf2A.cfg
index 878901518be..882ee166fb1 100644
--- a/ansible_collections/arista/avd/molecule/eos_designs_unit_tests/intended/configs/site-ha-enabled-leaf2A.cfg
+++ b/ansible_collections/arista/avd/molecule/eos_designs_unit_tests/intended/configs/site-ha-enabled-leaf2A.cfg
@@ -17,6 +17,11 @@ vlan 100
vlan 101
name VLAN101
!
+vlan 666
+ name VLAN666
+!
+vrf instance ATTRACTED-VRF-FROM-UPLINK
+!
vrf instance IT
!
vrf instance MGMT
@@ -30,19 +35,27 @@ interface Ethernet1
no switchport
ip address 172.17.0.4/31
!
-interface Ethernet1.42
- description P2P_LINK_TO_CV-PATHFINDER-EDGE2A_Ethernet52.42_vrf_PROD
+interface Ethernet1.142
+ description P2P_LINK_TO_CV-PATHFINDER-EDGE2A_Ethernet52.142_vrf_PROD
no shutdown
mtu 9214
- encapsulation dot1q vlan 42
+ encapsulation dot1q vlan 142
vrf PROD
ip address 172.17.0.4/31
!
-interface Ethernet1.100
- description P2P_LINK_TO_CV-PATHFINDER-EDGE2A_Ethernet52.100_vrf_IT
+interface Ethernet1.666
+ description P2P_LINK_TO_CV-PATHFINDER-EDGE2A_Ethernet52.666_vrf_ATTRACTED-VRF-FROM-UPLINK
+ no shutdown
+ mtu 9214
+ encapsulation dot1q vlan 666
+ vrf ATTRACTED-VRF-FROM-UPLINK
+ ip address 172.17.0.4/31
+!
+interface Ethernet1.1000
+ description P2P_LINK_TO_CV-PATHFINDER-EDGE2A_Ethernet52.1000_vrf_IT
no shutdown
mtu 9214
- encapsulation dot1q vlan 100
+ encapsulation dot1q vlan 1000
vrf IT
ip address 172.17.0.4/31
!
@@ -53,19 +66,27 @@ interface Ethernet2
no switchport
ip address 172.17.0.8/31
!
-interface Ethernet2.42
- description P2P_LINK_TO_CV-PATHFINDER-EDGE2B_Ethernet52.42_vrf_PROD
+interface Ethernet2.142
+ description P2P_LINK_TO_CV-PATHFINDER-EDGE2B_Ethernet52.142_vrf_PROD
no shutdown
mtu 9214
- encapsulation dot1q vlan 42
+ encapsulation dot1q vlan 142
vrf PROD
ip address 172.17.0.8/31
!
-interface Ethernet2.100
- description P2P_LINK_TO_CV-PATHFINDER-EDGE2B_Ethernet52.100_vrf_IT
+interface Ethernet2.666
+ description P2P_LINK_TO_CV-PATHFINDER-EDGE2B_Ethernet52.666_vrf_ATTRACTED-VRF-FROM-UPLINK
no shutdown
mtu 9214
- encapsulation dot1q vlan 100
+ encapsulation dot1q vlan 666
+ vrf ATTRACTED-VRF-FROM-UPLINK
+ ip address 172.17.0.8/31
+!
+interface Ethernet2.1000
+ description P2P_LINK_TO_CV-PATHFINDER-EDGE2B_Ethernet52.1000_vrf_IT
+ no shutdown
+ mtu 9214
+ encapsulation dot1q vlan 1000
vrf IT
ip address 172.17.0.8/31
!
@@ -85,19 +106,28 @@ interface Vlan100
vrf PROD
ip address virtual 10.0.100.1/24
!
+interface Vlan666
+ description VLAN666
+ shutdown
+ vrf ATTRACTED-VRF-FROM-UPLINK
+ ip address virtual 10.66.66.66/24
+!
interface Vxlan1
description site-ha-enabled-leaf2A_VTEP
vxlan source-interface Loopback1
vxlan udp-port 4789
vxlan vlan 100 vni 1100
vxlan vlan 101 vni 1101
+ vxlan vlan 666 vni 1666
+ vxlan vrf ATTRACTED-VRF-FROM-UPLINK vni 666
vxlan vrf default vni 1
- vxlan vrf IT vni 100
- vxlan vrf PROD vni 42
+ vxlan vrf IT vni 1000
+ vxlan vrf PROD vni 142
!
ip virtual-router mac-address 00:1c:73:00:00:01
!
ip routing
+ip routing vrf ATTRACTED-VRF-FROM-UPLINK
ip routing vrf IT
no ip routing vrf MGMT
ip routing vrf PROD
@@ -144,6 +174,11 @@ router bgp 65199
route-target both 1101:1101
redistribute learned
!
+ vlan 666
+ rd 192.168.45.2:1666
+ route-target both 1666:1666
+ redistribute learned
+ !
address-family evpn
neighbor EVPN-OVERLAY-PEERS activate
!
@@ -151,35 +186,48 @@ router bgp 65199
no neighbor EVPN-OVERLAY-PEERS activate
neighbor IPv4-UNDERLAY-PEERS activate
!
+ vrf ATTRACTED-VRF-FROM-UPLINK
+ rd 192.168.45.2:666
+ route-target import evpn 666:666
+ route-target export evpn 666:666
+ router-id 192.168.45.2
+ neighbor 172.17.0.5 remote-as 65000
+ neighbor 172.17.0.5 peer group IPv4-UNDERLAY-PEERS
+ neighbor 172.17.0.5 description cv-pathfinder-edge2A_Ethernet52.666_vrf_ATTRACTED-VRF-FROM-UPLINK
+ neighbor 172.17.0.9 remote-as 65000
+ neighbor 172.17.0.9 peer group IPv4-UNDERLAY-PEERS
+ neighbor 172.17.0.9 description cv-pathfinder-edge2B_Ethernet52.666_vrf_ATTRACTED-VRF-FROM-UPLINK
+ redistribute connected
+ !
vrf default
rd 192.168.45.2:1
route-target import evpn 1:1
route-target export evpn 1:1
!
vrf IT
- rd 192.168.45.2:100
- route-target import evpn 100:100
- route-target export evpn 100:100
+ rd 192.168.45.2:1000
+ route-target import evpn 1000:1000
+ route-target export evpn 1000:1000
router-id 192.168.45.2
neighbor 172.17.0.5 remote-as 65000
neighbor 172.17.0.5 peer group IPv4-UNDERLAY-PEERS
- neighbor 172.17.0.5 description cv-pathfinder-edge2A_Ethernet52.100_vrf_IT
+ neighbor 172.17.0.5 description cv-pathfinder-edge2A_Ethernet52.1000_vrf_IT
neighbor 172.17.0.9 remote-as 65000
neighbor 172.17.0.9 peer group IPv4-UNDERLAY-PEERS
- neighbor 172.17.0.9 description cv-pathfinder-edge2B_Ethernet52.100_vrf_IT
+ neighbor 172.17.0.9 description cv-pathfinder-edge2B_Ethernet52.1000_vrf_IT
redistribute connected
!
vrf PROD
- rd 192.168.45.2:42
- route-target import evpn 42:42
- route-target export evpn 42:42
+ rd 192.168.45.2:142
+ route-target import evpn 142:142
+ route-target export evpn 142:142
router-id 192.168.45.2
neighbor 172.17.0.5 remote-as 65000
neighbor 172.17.0.5 peer group IPv4-UNDERLAY-PEERS
- neighbor 172.17.0.5 description cv-pathfinder-edge2A_Ethernet52.42_vrf_PROD
+ neighbor 172.17.0.5 description cv-pathfinder-edge2A_Ethernet52.142_vrf_PROD
neighbor 172.17.0.9 remote-as 65000
neighbor 172.17.0.9 peer group IPv4-UNDERLAY-PEERS
- neighbor 172.17.0.9 description cv-pathfinder-edge2B_Ethernet52.42_vrf_PROD
+ neighbor 172.17.0.9 description cv-pathfinder-edge2B_Ethernet52.142_vrf_PROD
redistribute connected
!
management api http-commands
diff --git a/ansible_collections/arista/avd/molecule/eos_designs_unit_tests/intended/configs/site-ha-enabled-leaf2B.cfg b/ansible_collections/arista/avd/molecule/eos_designs_unit_tests/intended/configs/site-ha-enabled-leaf2B.cfg
index a8ddf9a9f1e..4ca165e4543 100644
--- a/ansible_collections/arista/avd/molecule/eos_designs_unit_tests/intended/configs/site-ha-enabled-leaf2B.cfg
+++ b/ansible_collections/arista/avd/molecule/eos_designs_unit_tests/intended/configs/site-ha-enabled-leaf2B.cfg
@@ -17,6 +17,11 @@ vlan 100
vlan 101
name VLAN101
!
+vlan 666
+ name VLAN666
+!
+vrf instance ATTRACTED-VRF-FROM-UPLINK
+!
vrf instance IT
!
vrf instance MGMT
@@ -30,19 +35,27 @@ interface Ethernet1
no switchport
ip address 172.17.0.6/31
!
-interface Ethernet1.42
- description P2P_LINK_TO_CV-PATHFINDER-EDGE2A_Ethernet53.42_vrf_PROD
+interface Ethernet1.142
+ description P2P_LINK_TO_CV-PATHFINDER-EDGE2A_Ethernet53.142_vrf_PROD
no shutdown
mtu 9214
- encapsulation dot1q vlan 42
+ encapsulation dot1q vlan 142
vrf PROD
ip address 172.17.0.6/31
!
-interface Ethernet1.100
- description P2P_LINK_TO_CV-PATHFINDER-EDGE2A_Ethernet53.100_vrf_IT
+interface Ethernet1.666
+ description P2P_LINK_TO_CV-PATHFINDER-EDGE2A_Ethernet53.666_vrf_ATTRACTED-VRF-FROM-UPLINK
+ no shutdown
+ mtu 9214
+ encapsulation dot1q vlan 666
+ vrf ATTRACTED-VRF-FROM-UPLINK
+ ip address 172.17.0.6/31
+!
+interface Ethernet1.1000
+ description P2P_LINK_TO_CV-PATHFINDER-EDGE2A_Ethernet53.1000_vrf_IT
no shutdown
mtu 9214
- encapsulation dot1q vlan 100
+ encapsulation dot1q vlan 1000
vrf IT
ip address 172.17.0.6/31
!
@@ -53,19 +66,27 @@ interface Ethernet2
no switchport
ip address 172.17.0.10/31
!
-interface Ethernet2.42
- description P2P_LINK_TO_CV-PATHFINDER-EDGE2B_Ethernet53.42_vrf_PROD
+interface Ethernet2.142
+ description P2P_LINK_TO_CV-PATHFINDER-EDGE2B_Ethernet53.142_vrf_PROD
no shutdown
mtu 9214
- encapsulation dot1q vlan 42
+ encapsulation dot1q vlan 142
vrf PROD
ip address 172.17.0.10/31
!
-interface Ethernet2.100
- description P2P_LINK_TO_CV-PATHFINDER-EDGE2B_Ethernet53.100_vrf_IT
+interface Ethernet2.666
+ description P2P_LINK_TO_CV-PATHFINDER-EDGE2B_Ethernet53.666_vrf_ATTRACTED-VRF-FROM-UPLINK
no shutdown
mtu 9214
- encapsulation dot1q vlan 100
+ encapsulation dot1q vlan 666
+ vrf ATTRACTED-VRF-FROM-UPLINK
+ ip address 172.17.0.10/31
+!
+interface Ethernet2.1000
+ description P2P_LINK_TO_CV-PATHFINDER-EDGE2B_Ethernet53.1000_vrf_IT
+ no shutdown
+ mtu 9214
+ encapsulation dot1q vlan 1000
vrf IT
ip address 172.17.0.10/31
!
@@ -85,19 +106,28 @@ interface Vlan100
vrf PROD
ip address virtual 10.0.100.1/24
!
+interface Vlan666
+ description VLAN666
+ shutdown
+ vrf ATTRACTED-VRF-FROM-UPLINK
+ ip address virtual 10.66.66.66/24
+!
interface Vxlan1
description site-ha-enabled-leaf2B_VTEP
vxlan source-interface Loopback1
vxlan udp-port 4789
vxlan vlan 100 vni 1100
vxlan vlan 101 vni 1101
+ vxlan vlan 666 vni 1666
+ vxlan vrf ATTRACTED-VRF-FROM-UPLINK vni 666
vxlan vrf default vni 1
- vxlan vrf IT vni 100
- vxlan vrf PROD vni 42
+ vxlan vrf IT vni 1000
+ vxlan vrf PROD vni 142
!
ip virtual-router mac-address 00:1c:73:00:00:01
!
ip routing
+ip routing vrf ATTRACTED-VRF-FROM-UPLINK
ip routing vrf IT
no ip routing vrf MGMT
ip routing vrf PROD
@@ -144,6 +174,11 @@ router bgp 65199
route-target both 1101:1101
redistribute learned
!
+ vlan 666
+ rd 192.168.45.3:1666
+ route-target both 1666:1666
+ redistribute learned
+ !
address-family evpn
neighbor EVPN-OVERLAY-PEERS activate
!
@@ -151,35 +186,48 @@ router bgp 65199
no neighbor EVPN-OVERLAY-PEERS activate
neighbor IPv4-UNDERLAY-PEERS activate
!
+ vrf ATTRACTED-VRF-FROM-UPLINK
+ rd 192.168.45.3:666
+ route-target import evpn 666:666
+ route-target export evpn 666:666
+ router-id 192.168.45.3
+ neighbor 172.17.0.7 remote-as 65000
+ neighbor 172.17.0.7 peer group IPv4-UNDERLAY-PEERS
+ neighbor 172.17.0.7 description cv-pathfinder-edge2A_Ethernet53.666_vrf_ATTRACTED-VRF-FROM-UPLINK
+ neighbor 172.17.0.11 remote-as 65000
+ neighbor 172.17.0.11 peer group IPv4-UNDERLAY-PEERS
+ neighbor 172.17.0.11 description cv-pathfinder-edge2B_Ethernet53.666_vrf_ATTRACTED-VRF-FROM-UPLINK
+ redistribute connected
+ !
vrf default
rd 192.168.45.3:1
route-target import evpn 1:1
route-target export evpn 1:1
!
vrf IT
- rd 192.168.45.3:100
- route-target import evpn 100:100
- route-target export evpn 100:100
+ rd 192.168.45.3:1000
+ route-target import evpn 1000:1000
+ route-target export evpn 1000:1000
router-id 192.168.45.3
neighbor 172.17.0.7 remote-as 65000
neighbor 172.17.0.7 peer group IPv4-UNDERLAY-PEERS
- neighbor 172.17.0.7 description cv-pathfinder-edge2A_Ethernet53.100_vrf_IT
+ neighbor 172.17.0.7 description cv-pathfinder-edge2A_Ethernet53.1000_vrf_IT
neighbor 172.17.0.11 remote-as 65000
neighbor 172.17.0.11 peer group IPv4-UNDERLAY-PEERS
- neighbor 172.17.0.11 description cv-pathfinder-edge2B_Ethernet53.100_vrf_IT
+ neighbor 172.17.0.11 description cv-pathfinder-edge2B_Ethernet53.1000_vrf_IT
redistribute connected
!
vrf PROD
- rd 192.168.45.3:42
- route-target import evpn 42:42
- route-target export evpn 42:42
+ rd 192.168.45.3:142
+ route-target import evpn 142:142
+ route-target export evpn 142:142
router-id 192.168.45.3
neighbor 172.17.0.7 remote-as 65000
neighbor 172.17.0.7 peer group IPv4-UNDERLAY-PEERS
- neighbor 172.17.0.7 description cv-pathfinder-edge2A_Ethernet53.42_vrf_PROD
+ neighbor 172.17.0.7 description cv-pathfinder-edge2A_Ethernet53.142_vrf_PROD
neighbor 172.17.0.11 remote-as 65000
neighbor 172.17.0.11 peer group IPv4-UNDERLAY-PEERS
- neighbor 172.17.0.11 description cv-pathfinder-edge2B_Ethernet53.42_vrf_PROD
+ neighbor 172.17.0.11 description cv-pathfinder-edge2B_Ethernet53.142_vrf_PROD
redistribute connected
!
management api http-commands
diff --git a/ansible_collections/arista/avd/molecule/eos_designs_unit_tests/intended/structured_configs/autovpn-edge-no-default-policy.yml b/ansible_collections/arista/avd/molecule/eos_designs_unit_tests/intended/structured_configs/autovpn-edge-no-default-policy.yml
index feecb7d555e..47c53b9d1e8 100644
--- a/ansible_collections/arista/avd/molecule/eos_designs_unit_tests/intended/structured_configs/autovpn-edge-no-default-policy.yml
+++ b/ansible_collections/arista/avd/molecule/eos_designs_unit_tests/intended/structured_configs/autovpn-edge-no-default-policy.yml
@@ -205,23 +205,30 @@ router_path_selection:
- 10.7.7.7
ipsec_profile: AUTOVPN
load_balance_policies:
- - name: LB-CONTROL-PLANE-PROFILE
+ - name: LB-DEFAULT-POLICY-DEFAULT
path_groups:
- name: INET
- - name: LB-DEFAULT-AVT-POLICY-DEFAULT
+ - name: LB-CONTROL-PLANE-PROFILE
path_groups:
- name: INET
policies:
- - name: DEFAULT-AVT-POLICY-WITH-CP
+ - name: DEFAULT-POLICY
+ default_match:
+ load_balance: LB-DEFAULT-POLICY-DEFAULT
+ - name: DEFAULT-POLICY-WITH-CP
rules:
- id: 10
application_profile: CONTROL-PLANE-APPLICATION-PROFILE
load_balance: LB-CONTROL-PLANE-PROFILE
default_match:
- load_balance: LB-DEFAULT-AVT-POLICY-DEFAULT
+ load_balance: LB-DEFAULT-POLICY-DEFAULT
vrfs:
+ - name: PROD
+ path_selection_policy: DEFAULT-POLICY
+ - name: IT
+ path_selection_policy: DEFAULT-POLICY
- name: default
- path_selection_policy: DEFAULT-AVT-POLICY-WITH-CP
+ path_selection_policy: DEFAULT-POLICY-WITH-CP
stun:
client:
server_profiles:
diff --git a/ansible_collections/arista/avd/molecule/eos_designs_unit_tests/intended/structured_configs/autovpn-edge.yml b/ansible_collections/arista/avd/molecule/eos_designs_unit_tests/intended/structured_configs/autovpn-edge.yml
index 85e8d9a0c28..60eace584af 100644
--- a/ansible_collections/arista/avd/molecule/eos_designs_unit_tests/intended/structured_configs/autovpn-edge.yml
+++ b/ansible_collections/arista/avd/molecule/eos_designs_unit_tests/intended/structured_configs/autovpn-edge.yml
@@ -217,6 +217,10 @@ router_path_selection:
- name: LB-CONTROL-PLANE-PROFILE
path_groups:
- name: INET
+ - name: LB-DEFAULT-AVT-POLICY-IT
+ path_groups:
+ - name: INET
+ priority: 2
- name: LB-PROD-AVT-POLICY-VOICE
path_groups:
- name: INET
@@ -226,11 +230,15 @@ router_path_selection:
- name: LB-PROD-AVT-POLICY-DEFAULT
path_groups:
- name: INET
- - name: LB-DEFAULT-AVT-POLICY-IT
- path_groups:
- - name: INET
- priority: 2
policies:
+ - name: DEFAULT-AVT-POLICY-WITH-CP
+ rules:
+ - id: 10
+ application_profile: CONTROL-PLANE-APPLICATION-PROFILE
+ load_balance: LB-CONTROL-PLANE-PROFILE
+ - id: 20
+ application_profile: IT
+ load_balance: LB-DEFAULT-AVT-POLICY-IT
- name: PROD-AVT-POLICY
rules:
- id: 10
@@ -241,14 +249,6 @@ router_path_selection:
load_balance: LB-PROD-AVT-POLICY-VIDEO
default_match:
load_balance: LB-PROD-AVT-POLICY-DEFAULT
- - name: DEFAULT-AVT-POLICY-WITH-CP
- rules:
- - id: 10
- application_profile: CONTROL-PLANE-APPLICATION-PROFILE
- load_balance: LB-CONTROL-PLANE-PROFILE
- - id: 20
- application_profile: IT
- load_balance: LB-DEFAULT-AVT-POLICY-IT
vrfs:
- name: default
path_selection_policy: DEFAULT-AVT-POLICY-WITH-CP
@@ -263,9 +263,9 @@ stun:
ip_address: 10.8.8.8
application_traffic_recognition:
application_profiles:
+ - name: IT
- name: VOICE
- name: VIDEO
- - name: IT
- name: CONTROL-PLANE-APPLICATION-PROFILE
applications:
- name: CONTROL-PLANE-APPLICATION
diff --git a/ansible_collections/arista/avd/molecule/eos_designs_unit_tests/intended/structured_configs/autovpn-rr1.yml b/ansible_collections/arista/avd/molecule/eos_designs_unit_tests/intended/structured_configs/autovpn-rr1.yml
index c22906e19b1..5f48b0a9d69 100644
--- a/ansible_collections/arista/avd/molecule/eos_designs_unit_tests/intended/structured_configs/autovpn-rr1.yml
+++ b/ansible_collections/arista/avd/molecule/eos_designs_unit_tests/intended/structured_configs/autovpn-rr1.yml
@@ -185,6 +185,11 @@ router_path_selection:
- name: LB-CONTROL-PLANE-PROFILE
path_groups:
- name: INET
+ - name: LB-DEFAULT-AVT-POLICY-IT
+ path_groups:
+ - name: MPLS
+ - name: INET
+ priority: 2
- name: LB-PROD-AVT-POLICY-VOICE
path_groups:
- name: INET
@@ -194,12 +199,15 @@ router_path_selection:
- name: LB-PROD-AVT-POLICY-DEFAULT
path_groups:
- name: INET
- - name: LB-DEFAULT-AVT-POLICY-IT
- path_groups:
- - name: MPLS
- - name: INET
- priority: 2
policies:
+ - name: DEFAULT-AVT-POLICY-WITH-CP
+ rules:
+ - id: 10
+ application_profile: CONTROL-PLANE-APPLICATION-PROFILE
+ load_balance: LB-CONTROL-PLANE-PROFILE
+ - id: 20
+ application_profile: IT
+ load_balance: LB-DEFAULT-AVT-POLICY-IT
- name: PROD-AVT-POLICY
rules:
- id: 10
@@ -210,14 +218,6 @@ router_path_selection:
load_balance: LB-PROD-AVT-POLICY-VIDEO
default_match:
load_balance: LB-PROD-AVT-POLICY-DEFAULT
- - name: DEFAULT-AVT-POLICY-WITH-CP
- rules:
- - id: 10
- application_profile: CONTROL-PLANE-APPLICATION-PROFILE
- load_balance: LB-CONTROL-PLANE-PROFILE
- - id: 20
- application_profile: IT
- load_balance: LB-DEFAULT-AVT-POLICY-IT
vrfs:
- name: default
path_selection_policy: DEFAULT-AVT-POLICY-WITH-CP
@@ -229,9 +229,9 @@ stun:
- Ethernet1
application_traffic_recognition:
application_profiles:
+ - name: IT
- name: VOICE
- name: VIDEO
- - name: IT
- name: CONTROL-PLANE-APPLICATION-PROFILE
applications:
- name: CONTROL-PLANE-APPLICATION
diff --git a/ansible_collections/arista/avd/molecule/eos_designs_unit_tests/intended/structured_configs/autovpn-rr2.yml b/ansible_collections/arista/avd/molecule/eos_designs_unit_tests/intended/structured_configs/autovpn-rr2.yml
index 371e69060b1..930e4832503 100644
--- a/ansible_collections/arista/avd/molecule/eos_designs_unit_tests/intended/structured_configs/autovpn-rr2.yml
+++ b/ansible_collections/arista/avd/molecule/eos_designs_unit_tests/intended/structured_configs/autovpn-rr2.yml
@@ -187,6 +187,11 @@ router_path_selection:
- name: LB-CONTROL-PLANE-PROFILE
path_groups:
- name: INET
+ - name: LB-DEFAULT-AVT-POLICY-IT
+ path_groups:
+ - name: MPLS
+ - name: INET
+ priority: 2
- name: LB-PROD-AVT-POLICY-VOICE
path_groups:
- name: INET
@@ -196,12 +201,15 @@ router_path_selection:
- name: LB-PROD-AVT-POLICY-DEFAULT
path_groups:
- name: INET
- - name: LB-DEFAULT-AVT-POLICY-IT
- path_groups:
- - name: MPLS
- - name: INET
- priority: 2
policies:
+ - name: DEFAULT-AVT-POLICY-WITH-CP
+ rules:
+ - id: 10
+ application_profile: CONTROL-PLANE-APPLICATION-PROFILE
+ load_balance: LB-CONTROL-PLANE-PROFILE
+ - id: 20
+ application_profile: IT
+ load_balance: LB-DEFAULT-AVT-POLICY-IT
- name: PROD-AVT-POLICY
rules:
- id: 10
@@ -212,14 +220,6 @@ router_path_selection:
load_balance: LB-PROD-AVT-POLICY-VIDEO
default_match:
load_balance: LB-PROD-AVT-POLICY-DEFAULT
- - name: DEFAULT-AVT-POLICY-WITH-CP
- rules:
- - id: 10
- application_profile: CONTROL-PLANE-APPLICATION-PROFILE
- load_balance: LB-CONTROL-PLANE-PROFILE
- - id: 20
- application_profile: IT
- load_balance: LB-DEFAULT-AVT-POLICY-IT
vrfs:
- name: default
path_selection_policy: DEFAULT-AVT-POLICY-WITH-CP
@@ -231,9 +231,9 @@ stun:
- Ethernet1
application_traffic_recognition:
application_profiles:
+ - name: IT
- name: VOICE
- name: VIDEO
- - name: IT
- name: CONTROL-PLANE-APPLICATION-PROFILE
applications:
- name: CONTROL-PLANE-APPLICATION
diff --git a/ansible_collections/arista/avd/molecule/eos_designs_unit_tests/intended/structured_configs/cv-pathfinder-edge-custom-default-policy.yml b/ansible_collections/arista/avd/molecule/eos_designs_unit_tests/intended/structured_configs/cv-pathfinder-edge-custom-default-policy.yml
new file mode 100644
index 00000000000..e11ac010d8c
--- /dev/null
+++ b/ansible_collections/arista/avd/molecule/eos_designs_unit_tests/intended/structured_configs/cv-pathfinder-edge-custom-default-policy.yml
@@ -0,0 +1,460 @@
+hostname: cv-pathfinder-edge-custom-default-policy
+is_deployed: true
+router_bgp:
+ as: '65000'
+ router_id: 192.168.42.1
+ bgp:
+ default:
+ ipv4_unicast: false
+ maximum_paths:
+ paths: 16
+ updates:
+ wait_install: true
+ redistribute_routes:
+ - source_protocol: connected
+ route_map: RM-CONN-2-BGP
+ peer_groups:
+ - name: WAN-OVERLAY-PEERS
+ type: wan
+ update_source: Dps1
+ bfd: true
+ password: htm4AZe9mIQOO1uiMuGgYQ==
+ send_community: all
+ maximum_routes: 0
+ remote_as: '65000'
+ ttl_maximum_hops: 42
+ bfd_timers:
+ interval: 1000
+ min_rx: 1000
+ multiplier: 10
+ address_family_evpn:
+ peer_groups:
+ - name: WAN-OVERLAY-PEERS
+ activate: true
+ route_map_in: RM-EVPN-SOO-IN
+ route_map_out: RM-EVPN-SOO-OUT
+ address_family_ipv4:
+ peer_groups:
+ - name: WAN-OVERLAY-PEERS
+ activate: false
+ address_family_ipv4_sr_te:
+ peer_groups:
+ - name: WAN-OVERLAY-PEERS
+ activate: true
+ address_family_link_state:
+ peer_groups:
+ - name: WAN-OVERLAY-PEERS
+ activate: true
+ path_selection:
+ roles:
+ producer: true
+ address_family_path_selection:
+ peer_groups:
+ - name: WAN-OVERLAY-PEERS
+ activate: true
+ bgp:
+ additional_paths:
+ receive: true
+ send:
+ any: true
+ neighbors:
+ - ip_address: 192.168.144.1
+ peer_group: WAN-OVERLAY-PEERS
+ peer: cv-pathfinder-pathfinder
+ description: cv-pathfinder-pathfinder
+ vrfs:
+ - name: default
+ rd: 192.168.42.1:1
+ route_targets:
+ import:
+ - address_family: evpn
+ route_targets:
+ - '1:1'
+ export:
+ - address_family: evpn
+ route_targets:
+ - '1:1'
+ - route-map RM-EVPN-EXPORT-VRF-DEFAULT
+ - name: IT
+ router_id: 192.168.42.1
+ rd: 192.168.42.1:100
+ route_targets:
+ import:
+ - address_family: evpn
+ route_targets:
+ - 100:100
+ export:
+ - address_family: evpn
+ route_targets:
+ - 100:100
+ redistribute_routes:
+ - source_protocol: connected
+ - name: PROD
+ router_id: 192.168.42.1
+ rd: 192.168.42.1:42
+ route_targets:
+ import:
+ - address_family: evpn
+ route_targets:
+ - '42:42'
+ export:
+ - address_family: evpn
+ route_targets:
+ - '42:42'
+ redistribute_routes:
+ - source_protocol: connected
+service_routing_protocols_model: multi-agent
+ip_routing: true
+transceiver_qsfp_default_mode_4x10: false
+spanning_tree:
+ mode: none
+vrfs:
+- name: MGMT
+ ip_routing: false
+- name: IT
+ tenant: TenantA
+ ip_routing: true
+- name: PROD
+ tenant: TenantA
+ ip_routing: true
+management_api_http:
+ enable_vrfs:
+ - name: MGMT
+ enable_https: true
+ethernet_interfaces:
+- name: Ethernet1
+ peer_type: l3_interface
+ ip_address: dhcp
+ shutdown: false
+ type: routed
+ dhcp_client_accept_default_route: true
+ flow_tracker:
+ hardware: WAN-FLOW-TRACKER
+- name: Ethernet2
+ peer_type: l3_interface
+ ip_address: 172.15.5.5/31
+ shutdown: false
+ type: routed
+ flow_tracker:
+ hardware: WAN-FLOW-TRACKER
+- name: Ethernet3
+ peer_type: l3_interface
+ ip_address: 172.20.20.20/31
+ shutdown: false
+ type: routed
+ flow_tracker:
+ hardware: WAN-FLOW-TRACKER
+loopback_interfaces:
+- name: Loopback0
+ description: Router_ID
+ shutdown: false
+ ip_address: 192.168.42.1/32
+prefix_lists:
+- name: PL-LOOPBACKS-EVPN-OVERLAY
+ sequence_numbers:
+ - sequence: 10
+ action: permit 192.168.42.0/24 eq 32
+route_maps:
+- name: RM-CONN-2-BGP
+ sequence_numbers:
+ - sequence: 10
+ type: permit
+ match:
+ - ip address prefix-list PL-LOOPBACKS-EVPN-OVERLAY
+ set:
+ - extcommunity soo 192.168.42.1:1 additive
+- name: RM-EVPN-SOO-IN
+ sequence_numbers:
+ - sequence: 10
+ type: deny
+ match:
+ - extcommunity ECL-EVPN-SOO
+ - sequence: 20
+ type: permit
+- name: RM-EVPN-SOO-OUT
+ sequence_numbers:
+ - sequence: 10
+ type: permit
+ set:
+ - extcommunity soo 192.168.42.1:1 additive
+- name: RM-EVPN-EXPORT-VRF-DEFAULT
+ sequence_numbers:
+ - sequence: 10
+ type: permit
+ match:
+ - extcommunity ECL-EVPN-SOO
+flow_tracking:
+ hardware:
+ trackers:
+ - name: WAN-FLOW-TRACKER
+ record_export:
+ on_inactive_timeout: 70000
+ on_interval: 5000
+ exporters:
+ - name: DPI-EXPORTER
+ collector:
+ host: 127.0.0.1
+ local_interface: Loopback0
+ template_interval: 5000
+ shutdown: false
+ip_extcommunity_lists:
+- name: ECL-EVPN-SOO
+ entries:
+ - type: permit
+ extcommunities: soo 192.168.42.1:1
+ip_security:
+ ike_policies:
+ - name: CP-IKE-POLICY
+ local_id: 192.168.255.1
+ sa_policies:
+ - name: DP-SA-POLICY
+ esp:
+ encryption: aes128
+ pfs_dh_group: 14
+ - name: CP-SA-POLICY
+ esp:
+ encryption: aes128
+ pfs_dh_group: 14
+ profiles:
+ - name: DP-PROFILE
+ sa_policy: DP-SA-POLICY
+ connection: start
+ shared_key: ABCDEF1234567890666
+ dpd:
+ interval: 10
+ time: 50
+ action: clear
+ mode: transport
+ - name: CP-PROFILE
+ ike_policy: CP-IKE-POLICY
+ sa_policy: CP-SA-POLICY
+ connection: start
+ shared_key: ABCDEF1234567890
+ dpd:
+ interval: 10
+ time: 50
+ action: clear
+ mode: transport
+ key_controller:
+ profile: DP-PROFILE
+router_adaptive_virtual_topology:
+ topology_role: edge
+ region:
+ name: AVD_Land_West
+ id: 42
+ zone:
+ name: DEFAULT-ZONE
+ id: 1
+ site:
+ name: Site1
+ id: 1
+ profiles:
+ - name: CONTROL-PLANE-PROFILE
+ load_balance_policy: LB-CONTROL-PLANE-PROFILE
+ - name: DEFAULT-POLICY-WITH-CP-VIDEO
+ load_balance_policy: LB-DEFAULT-POLICY-WITH-CP-VIDEO
+ - name: DEFAULT-POLICY-WITH-CP-DEFAULT
+ load_balance_policy: LB-DEFAULT-POLICY-WITH-CP-DEFAULT
+ - name: DEFAULT-POLICY-VIDEO
+ load_balance_policy: LB-DEFAULT-POLICY-VIDEO
+ - name: DEFAULT-POLICY-DEFAULT
+ load_balance_policy: LB-DEFAULT-POLICY-DEFAULT
+ vrfs:
+ - name: default
+ policy: DEFAULT-POLICY-WITH-CP
+ profiles:
+ - name: CONTROL-PLANE-PROFILE
+ id: 254
+ - name: DEFAULT-POLICY-VIDEO
+ id: 3
+ - name: DEFAULT-POLICY-DEFAULT
+ id: 1
+ - name: PROD
+ policy: DEFAULT-POLICY
+ profiles:
+ - name: DEFAULT-POLICY-VIDEO
+ id: 3
+ - name: DEFAULT-POLICY-DEFAULT
+ id: 1
+ policies:
+ - name: DEFAULT-POLICY-WITH-CP
+ matches:
+ - application_profile: CONTROL-PLANE-APPLICATION-PROFILE
+ avt_profile: CONTROL-PLANE-PROFILE
+ - application_profile: VIDEO
+ avt_profile: DEFAULT-POLICY-VIDEO
+ - application_profile: default
+ avt_profile: DEFAULT-POLICY-DEFAULT
+ - name: DEFAULT-POLICY
+ matches:
+ - application_profile: VIDEO
+ avt_profile: DEFAULT-POLICY-VIDEO
+ - application_profile: default
+ avt_profile: DEFAULT-POLICY-DEFAULT
+router_bfd:
+ multihop:
+ interval: 300
+ min_rx: 300
+ multiplier: 3
+router_path_selection:
+ tcp_mss_ceiling:
+ ipv4_segment_size: auto
+ path_groups:
+ - name: INET
+ id: 101
+ local_interfaces:
+ - name: Ethernet1
+ stun:
+ server_profiles:
+ - INET-cv-pathfinder-pathfinder-Ethernet1
+ - INET-cv-pathfinder-pathfinder-Ethernet3
+ dynamic_peers:
+ enabled: true
+ static_peers:
+ - router_ip: 192.168.144.1
+ name: cv-pathfinder-pathfinder
+ ipv4_addresses:
+ - 10.7.7.7
+ - 10.9.9.9
+ ipsec_profile: CP-PROFILE
+ - name: MPLS
+ id: 100
+ local_interfaces:
+ - name: Ethernet2
+ stun:
+ server_profiles:
+ - MPLS-cv-pathfinder-pathfinder-Ethernet2
+ dynamic_peers:
+ enabled: true
+ static_peers:
+ - router_ip: 192.168.144.1
+ name: cv-pathfinder-pathfinder
+ ipv4_addresses:
+ - 172.16.0.1
+ - name: LTE
+ id: 102
+ local_interfaces:
+ - name: Ethernet3
+ dynamic_peers:
+ enabled: true
+ ipsec_profile: CP-PROFILE
+ load_balance_policies:
+ - name: LB-CONTROL-PLANE-PROFILE
+ path_groups:
+ - name: INET
+ - name: MPLS
+ - name: LB-DEFAULT-POLICY-VIDEO
+ path_groups:
+ - name: MPLS
+ - name: INET
+ - name: LB-DEFAULT-POLICY-DEFAULT
+ path_groups:
+ - name: INET
+ - name: LTE
+ priority: 42
+router_traffic_engineering:
+ enabled: true
+stun:
+ client:
+ server_profiles:
+ - name: INET-cv-pathfinder-pathfinder-Ethernet1
+ ip_address: 10.7.7.7
+ - name: INET-cv-pathfinder-pathfinder-Ethernet3
+ ip_address: 10.9.9.9
+ - name: MPLS-cv-pathfinder-pathfinder-Ethernet2
+ ip_address: 172.16.0.1
+application_traffic_recognition:
+ application_profiles:
+ - name: VIDEO
+ applications:
+ - name: CUSTOM-APPLICATION-1
+ - name: skype
+ - name: CONTROL-PLANE-APPLICATION-PROFILE
+ applications:
+ - name: CONTROL-PLANE-APPLICATION
+ applications:
+ ipv4_applications:
+ - name: CONTROL-PLANE-APPLICATION
+ dest_prefix_set_name: CONTROL-PLANE-APP-DEST-PREFIXES
+ field_sets:
+ ipv4_prefixes:
+ - name: CONTROL-PLANE-APP-DEST-PREFIXES
+ prefix_values:
+ - 192.168.144.1/32
+dps_interfaces:
+- name: Dps1
+ description: DPS Interface
+ mtu: 9214
+ ip_address: 192.168.255.1/32
+ flow_tracker:
+ hardware: WAN-FLOW-TRACKER
+vxlan_interface:
+ Vxlan1:
+ description: cv-pathfinder-edge-custom-default-policy_VTEP
+ vxlan:
+ udp_port: 4789
+ source_interface: Dps1
+ vrfs:
+ - name: default
+ vni: 1
+ - name: IT
+ vni: 100
+ - name: PROD
+ vni: 42
+metadata:
+ cv_tags:
+ device_tags:
+ - name: Role
+ value: edge
+ - name: Region
+ value: AVD_Land_West
+ - name: Zone
+ value: DEFAULT-ZONE
+ - name: Site
+ value: Site1
+ interface_tags:
+ - interface: Ethernet1
+ tags:
+ - name: Type
+ value: wan
+ - name: Carrier
+ value: ATT
+ - name: Circuit
+ value: '666'
+ - interface: Ethernet2
+ tags:
+ - name: Type
+ value: wan
+ - name: Carrier
+ value: Colt
+ - name: Circuit
+ value: '10555'
+ - interface: Ethernet3
+ tags:
+ - name: Type
+ value: wan
+ - name: Carrier
+ value: Comcast-5G
+ - name: Circuit
+ value: AF830
+ cv_pathfinder:
+ role: edge
+ vtep_ip: 192.168.255.1
+ region: AVD_Land_West
+ zone: DEFAULT-ZONE
+ site: Site1
+ interfaces:
+ - name: Ethernet1
+ carrier: ATT
+ circuit_id: '666'
+ pathgroup: INET
+ - name: Ethernet2
+ carrier: Colt
+ circuit_id: '10555'
+ pathgroup: MPLS
+ - name: Ethernet3
+ carrier: Comcast-5G
+ circuit_id: AF830
+ pathgroup: LTE
+ pathfinders:
+ - vtep_ip: 192.168.144.1
diff --git a/ansible_collections/arista/avd/molecule/eos_designs_unit_tests/intended/structured_configs/cv-pathfinder-edge-no-common-path-group.yml b/ansible_collections/arista/avd/molecule/eos_designs_unit_tests/intended/structured_configs/cv-pathfinder-edge-no-common-path-group.yml
index 0e335d14fe4..67513001fe1 100644
--- a/ansible_collections/arista/avd/molecule/eos_designs_unit_tests/intended/structured_configs/cv-pathfinder-edge-no-common-path-group.yml
+++ b/ansible_collections/arista/avd/molecule/eos_designs_unit_tests/intended/structured_configs/cv-pathfinder-edge-no-common-path-group.yml
@@ -47,15 +47,9 @@ router_bgp:
neighbors:
- ip_address: 172.17.0.2
peer_group: IPv4-UNDERLAY-PEERS
-<<<<<<< HEAD
remote_as: '65199'
- description: site-ha-disabled-leaf_Ethernet2.100_vrf_IT
- rd: 192.168.42.2:100
-=======
- remote_as: '65000'
description: site-ha-disabled-leaf_Ethernet2.1000_vrf_IT
rd: 192.168.42.2:1000
->>>>>>> ff441f2cd (Feat(eos_designs): Add wan_vni for WAN VRF)
route_targets:
import:
- address_family: evpn
@@ -72,15 +66,9 @@ router_bgp:
neighbors:
- ip_address: 172.17.0.2
peer_group: IPv4-UNDERLAY-PEERS
-<<<<<<< HEAD
remote_as: '65199'
- description: site-ha-disabled-leaf_Ethernet2.42_vrf_PROD
- rd: 192.168.42.2:42
-=======
- remote_as: '65000'
description: site-ha-disabled-leaf_Ethernet2.142_vrf_PROD
rd: 192.168.42.2:142
->>>>>>> ff441f2cd (Feat(eos_designs): Add wan_vni for WAN VRF)
route_targets:
import:
- address_family: evpn
@@ -97,7 +85,7 @@ router_bgp:
neighbors:
- ip_address: 172.17.0.2
peer_group: IPv4-UNDERLAY-PEERS
- remote_as: '65000'
+ remote_as: '65199'
description: site-ha-disabled-leaf_Ethernet2.666_vrf_ATTRACTED-VRF-FROM-UPLINK
rd: 192.168.42.2:666
route_targets:
@@ -355,6 +343,10 @@ router_adaptive_virtual_topology:
profiles:
- name: CONTROL-PLANE-PROFILE
load_balance_policy: LB-CONTROL-PLANE-PROFILE
+ - name: DEFAULT-AVT-POLICY-WITH-CP-VIDEO
+ load_balance_policy: LB-DEFAULT-AVT-POLICY-WITH-CP-VIDEO
+ - name: DEFAULT-AVT-POLICY-WITH-CP-DEFAULT
+ load_balance_policy: LB-DEFAULT-AVT-POLICY-WITH-CP-DEFAULT
- name: PROD-AVT-POLICY-VOICE
load_balance_policy: LB-PROD-AVT-POLICY-VOICE
- name: PROD-AVT-POLICY-VIDEO
@@ -365,6 +357,8 @@ router_adaptive_virtual_topology:
load_balance_policy: LB-DEFAULT-AVT-POLICY-VIDEO
- name: DEFAULT-AVT-POLICY-DEFAULT
load_balance_policy: LB-DEFAULT-AVT-POLICY-DEFAULT
+ - name: DEFAULT-POLICY-DEFAULT
+ load_balance_policy: LB-DEFAULT-POLICY-DEFAULT
vrfs:
- name: default
policy: DEFAULT-AVT-POLICY-WITH-CP
@@ -391,7 +385,20 @@ router_adaptive_virtual_topology:
id: 3
- name: DEFAULT-AVT-POLICY-DEFAULT
id: 1
+ - name: ATTRACTED-VRF-FROM-UPLINK
+ policy: DEFAULT-POLICY
+ profiles:
+ - name: DEFAULT-POLICY-DEFAULT
+ id: 1
policies:
+ - name: DEFAULT-AVT-POLICY-WITH-CP
+ matches:
+ - application_profile: CONTROL-PLANE-APPLICATION-PROFILE
+ avt_profile: CONTROL-PLANE-PROFILE
+ - application_profile: VIDEO
+ avt_profile: DEFAULT-AVT-POLICY-VIDEO
+ - application_profile: default
+ avt_profile: DEFAULT-AVT-POLICY-DEFAULT
- name: PROD-AVT-POLICY
matches:
- application_profile: VOICE
@@ -406,14 +413,10 @@ router_adaptive_virtual_topology:
avt_profile: DEFAULT-AVT-POLICY-VIDEO
- application_profile: default
avt_profile: DEFAULT-AVT-POLICY-DEFAULT
- - name: DEFAULT-AVT-POLICY-WITH-CP
+ - name: DEFAULT-POLICY
matches:
- - application_profile: CONTROL-PLANE-APPLICATION-PROFILE
- avt_profile: CONTROL-PLANE-PROFILE
- - application_profile: VIDEO
- avt_profile: DEFAULT-AVT-POLICY-VIDEO
- application_profile: default
- avt_profile: DEFAULT-AVT-POLICY-DEFAULT
+ avt_profile: DEFAULT-POLICY-DEFAULT
router_bfd:
multihop:
interval: 300
@@ -434,26 +437,29 @@ router_path_selection:
- name: LB-CONTROL-PLANE-PROFILE
path_groups:
- name: Satellite
+ - name: LB-DEFAULT-AVT-POLICY-VIDEO
+ - name: LB-DEFAULT-AVT-POLICY-DEFAULT
- name: LB-PROD-AVT-POLICY-VOICE
jitter: 42
- name: LB-PROD-AVT-POLICY-VIDEO
loss_rate: '42.0'
- name: LB-PROD-AVT-POLICY-DEFAULT
- - name: LB-DEFAULT-AVT-POLICY-VIDEO
- - name: LB-DEFAULT-AVT-POLICY-DEFAULT
+ - name: LB-DEFAULT-POLICY-DEFAULT
+ path_groups:
+ - name: Satellite
router_traffic_engineering:
enabled: true
application_traffic_recognition:
application_profiles:
- - name: VOICE
- applications:
- - name: CUSTOM-VOICE-APPLICATION
- name: VIDEO
categories:
- name: VIDEO1
applications:
- name: CUSTOM-APPLICATION-1
- name: skype
+ - name: VOICE
+ applications:
+ - name: CUSTOM-VOICE-APPLICATION
- name: CONTROL-PLANE-APPLICATION-PROFILE
applications:
- name: CONTROL-PLANE-APPLICATION
diff --git a/ansible_collections/arista/avd/molecule/eos_designs_unit_tests/intended/structured_configs/cv-pathfinder-edge-no-default-policy.yml b/ansible_collections/arista/avd/molecule/eos_designs_unit_tests/intended/structured_configs/cv-pathfinder-edge-no-default-policy.yml
index 76167c1ad3c..0e57f388770 100644
--- a/ansible_collections/arista/avd/molecule/eos_designs_unit_tests/intended/structured_configs/cv-pathfinder-edge-no-default-policy.yml
+++ b/ansible_collections/arista/avd/molecule/eos_designs_unit_tests/intended/structured_configs/cv-pathfinder-edge-no-default-policy.yml
@@ -251,23 +251,39 @@ router_adaptive_virtual_topology:
profiles:
- name: CONTROL-PLANE-PROFILE
load_balance_policy: LB-CONTROL-PLANE-PROFILE
- - name: DEFAULT-AVT-POLICY-DEFAULT
- load_balance_policy: LB-DEFAULT-AVT-POLICY-DEFAULT
+ - name: DEFAULT-POLICY-DEFAULT
+ load_balance_policy: LB-DEFAULT-POLICY-DEFAULT
+ - name: DEFAULT-POLICY-WITH-CP-DEFAULT
+ load_balance_policy: LB-DEFAULT-POLICY-WITH-CP-DEFAULT
vrfs:
+ - name: PROD
+ policy: DEFAULT-POLICY
+ profiles:
+ - name: DEFAULT-POLICY-DEFAULT
+ id: 1
+ - name: IT
+ policy: DEFAULT-POLICY
+ profiles:
+ - name: DEFAULT-POLICY-DEFAULT
+ id: 1
- name: default
- policy: DEFAULT-AVT-POLICY-WITH-CP
+ policy: DEFAULT-POLICY-WITH-CP
profiles:
- name: CONTROL-PLANE-PROFILE
id: 254
- - name: DEFAULT-AVT-POLICY-DEFAULT
+ - name: DEFAULT-POLICY-DEFAULT
id: 1
policies:
- - name: DEFAULT-AVT-POLICY-WITH-CP
+ - name: DEFAULT-POLICY
+ matches:
+ - application_profile: default
+ avt_profile: DEFAULT-POLICY-DEFAULT
+ - name: DEFAULT-POLICY-WITH-CP
matches:
- application_profile: CONTROL-PLANE-APPLICATION-PROFILE
avt_profile: CONTROL-PLANE-PROFILE
- application_profile: default
- avt_profile: DEFAULT-AVT-POLICY-DEFAULT
+ avt_profile: DEFAULT-POLICY-DEFAULT
router_bfd:
multihop:
interval: 300
@@ -316,15 +332,15 @@ router_path_selection:
enabled: true
ipsec_profile: CP-PROFILE
load_balance_policies:
- - name: LB-CONTROL-PLANE-PROFILE
+ - name: LB-DEFAULT-POLICY-DEFAULT
path_groups:
- name: INET
- name: MPLS
- - name: LB-DEFAULT-AVT-POLICY-DEFAULT
+ - name: LTE
+ - name: LB-CONTROL-PLANE-PROFILE
path_groups:
- name: INET
- name: MPLS
- - name: LTE
router_traffic_engineering:
enabled: true
stun:
diff --git a/ansible_collections/arista/avd/molecule/eos_designs_unit_tests/intended/structured_configs/cv-pathfinder-edge.yml b/ansible_collections/arista/avd/molecule/eos_designs_unit_tests/intended/structured_configs/cv-pathfinder-edge.yml
index d88debcb9c8..dd10a5846f7 100644
--- a/ansible_collections/arista/avd/molecule/eos_designs_unit_tests/intended/structured_configs/cv-pathfinder-edge.yml
+++ b/ansible_collections/arista/avd/molecule/eos_designs_unit_tests/intended/structured_configs/cv-pathfinder-edge.yml
@@ -57,15 +57,9 @@ router_bgp:
neighbors:
- ip_address: 172.17.0.0
peer_group: IPv4-UNDERLAY-PEERS
-<<<<<<< HEAD
remote_as: '65199'
- description: site-ha-disabled-leaf_Ethernet1.100_vrf_IT
- rd: 192.168.42.1:100
-=======
- remote_as: '65000'
description: site-ha-disabled-leaf_Ethernet1.1000_vrf_IT
rd: 192.168.42.1:1000
->>>>>>> ff441f2cd (Feat(eos_designs): Add wan_vni for WAN VRF)
route_targets:
import:
- address_family: evpn
@@ -82,15 +76,9 @@ router_bgp:
neighbors:
- ip_address: 172.17.0.0
peer_group: IPv4-UNDERLAY-PEERS
-<<<<<<< HEAD
remote_as: '65199'
- description: site-ha-disabled-leaf_Ethernet1.42_vrf_PROD
- rd: 192.168.42.1:42
-=======
- remote_as: '65000'
description: site-ha-disabled-leaf_Ethernet1.142_vrf_PROD
rd: 192.168.42.1:142
->>>>>>> ff441f2cd (Feat(eos_designs): Add wan_vni for WAN VRF)
route_targets:
import:
- address_family: evpn
@@ -107,7 +95,7 @@ router_bgp:
neighbors:
- ip_address: 172.17.0.0
peer_group: IPv4-UNDERLAY-PEERS
- remote_as: '65000'
+ remote_as: '65199'
description: site-ha-disabled-leaf_Ethernet1.666_vrf_ATTRACTED-VRF-FROM-UPLINK
rd: 192.168.42.1:666
route_targets:
@@ -397,6 +385,10 @@ router_adaptive_virtual_topology:
profiles:
- name: CONTROL-PLANE-PROFILE
load_balance_policy: LB-CONTROL-PLANE-PROFILE
+ - name: DEFAULT-AVT-POLICY-WITH-CP-VIDEO
+ load_balance_policy: LB-DEFAULT-AVT-POLICY-WITH-CP-VIDEO
+ - name: DEFAULT-AVT-POLICY-WITH-CP-DEFAULT
+ load_balance_policy: LB-DEFAULT-AVT-POLICY-WITH-CP-DEFAULT
- name: PROD-AVT-POLICY-VOICE
load_balance_policy: LB-PROD-AVT-POLICY-VOICE
- name: PROD-AVT-POLICY-VIDEO
@@ -407,6 +399,8 @@ router_adaptive_virtual_topology:
load_balance_policy: LB-DEFAULT-AVT-POLICY-VIDEO
- name: DEFAULT-AVT-POLICY-DEFAULT
load_balance_policy: LB-DEFAULT-AVT-POLICY-DEFAULT
+ - name: DEFAULT-POLICY-DEFAULT
+ load_balance_policy: LB-DEFAULT-POLICY-DEFAULT
vrfs:
- name: default
policy: DEFAULT-AVT-POLICY-WITH-CP
@@ -433,7 +427,20 @@ router_adaptive_virtual_topology:
id: 3
- name: DEFAULT-AVT-POLICY-DEFAULT
id: 1
+ - name: ATTRACTED-VRF-FROM-UPLINK
+ policy: DEFAULT-POLICY
+ profiles:
+ - name: DEFAULT-POLICY-DEFAULT
+ id: 1
policies:
+ - name: DEFAULT-AVT-POLICY-WITH-CP
+ matches:
+ - application_profile: CONTROL-PLANE-APPLICATION-PROFILE
+ avt_profile: CONTROL-PLANE-PROFILE
+ - application_profile: VIDEO
+ avt_profile: DEFAULT-AVT-POLICY-VIDEO
+ - application_profile: default
+ avt_profile: DEFAULT-AVT-POLICY-DEFAULT
- name: PROD-AVT-POLICY
matches:
- application_profile: VOICE
@@ -448,14 +455,10 @@ router_adaptive_virtual_topology:
avt_profile: DEFAULT-AVT-POLICY-VIDEO
- application_profile: default
avt_profile: DEFAULT-AVT-POLICY-DEFAULT
- - name: DEFAULT-AVT-POLICY-WITH-CP
+ - name: DEFAULT-POLICY
matches:
- - application_profile: CONTROL-PLANE-APPLICATION-PROFILE
- avt_profile: CONTROL-PLANE-PROFILE
- - application_profile: VIDEO
- avt_profile: DEFAULT-AVT-POLICY-VIDEO
- application_profile: default
- avt_profile: DEFAULT-AVT-POLICY-DEFAULT
+ avt_profile: DEFAULT-POLICY-DEFAULT
router_bfd:
multihop:
interval: 300
@@ -508,6 +511,15 @@ router_path_selection:
path_groups:
- name: INET
- name: MPLS
+ - name: LB-DEFAULT-AVT-POLICY-VIDEO
+ path_groups:
+ - name: MPLS
+ - name: INET
+ - name: LB-DEFAULT-AVT-POLICY-DEFAULT
+ path_groups:
+ - name: INET
+ - name: MPLS
+ priority: 42
- name: LB-PROD-AVT-POLICY-VOICE
path_groups:
- name: MPLS
@@ -526,15 +538,11 @@ router_path_selection:
- name: INET
- name: MPLS
priority: 2
- - name: LB-DEFAULT-AVT-POLICY-VIDEO
- path_groups:
- - name: MPLS
- - name: INET
- - name: LB-DEFAULT-AVT-POLICY-DEFAULT
+ - name: LB-DEFAULT-POLICY-DEFAULT
path_groups:
- name: INET
- name: MPLS
- priority: 42
+ - name: LTE
router_traffic_engineering:
enabled: true
stun:
@@ -548,15 +556,15 @@ stun:
ip_address: 172.16.0.1
application_traffic_recognition:
application_profiles:
- - name: VOICE
- applications:
- - name: CUSTOM-VOICE-APPLICATION
- name: VIDEO
categories:
- name: VIDEO1
applications:
- name: CUSTOM-APPLICATION-1
- name: skype
+ - name: VOICE
+ applications:
+ - name: CUSTOM-VOICE-APPLICATION
- name: CONTROL-PLANE-APPLICATION-PROFILE
applications:
- name: CONTROL-PLANE-APPLICATION
diff --git a/ansible_collections/arista/avd/molecule/eos_designs_unit_tests/intended/structured_configs/cv-pathfinder-edge2A.yml b/ansible_collections/arista/avd/molecule/eos_designs_unit_tests/intended/structured_configs/cv-pathfinder-edge2A.yml
index 6ae477f1355..c1e8e43c377 100644
--- a/ansible_collections/arista/avd/molecule/eos_designs_unit_tests/intended/structured_configs/cv-pathfinder-edge2A.yml
+++ b/ansible_collections/arista/avd/molecule/eos_designs_unit_tests/intended/structured_configs/cv-pathfinder-edge2A.yml
@@ -64,21 +64,21 @@ router_bgp:
- ip_address: 172.17.0.4
peer_group: IPv4-UNDERLAY-PEERS
remote_as: '65199'
- description: site-ha-enabled-leaf2A_Ethernet1.100_vrf_IT
+ description: site-ha-enabled-leaf2A_Ethernet1.1000_vrf_IT
- ip_address: 172.17.0.6
peer_group: IPv4-UNDERLAY-PEERS
remote_as: '65199'
- description: site-ha-enabled-leaf2B_Ethernet1.100_vrf_IT
- rd: 192.168.42.2:100
+ description: site-ha-enabled-leaf2B_Ethernet1.1000_vrf_IT
+ rd: 192.168.42.2:1000
route_targets:
import:
- address_family: evpn
route_targets:
- - 100:100
+ - 1000:1000
export:
- address_family: evpn
route_targets:
- - 100:100
+ - 1000:1000
redistribute_routes:
- source_protocol: connected
- name: PROD
@@ -87,21 +87,44 @@ router_bgp:
- ip_address: 172.17.0.4
peer_group: IPv4-UNDERLAY-PEERS
remote_as: '65199'
- description: site-ha-enabled-leaf2A_Ethernet1.42_vrf_PROD
+ description: site-ha-enabled-leaf2A_Ethernet1.142_vrf_PROD
- ip_address: 172.17.0.6
peer_group: IPv4-UNDERLAY-PEERS
remote_as: '65199'
- description: site-ha-enabled-leaf2B_Ethernet1.42_vrf_PROD
- rd: 192.168.42.2:42
+ description: site-ha-enabled-leaf2B_Ethernet1.142_vrf_PROD
+ rd: 192.168.42.2:142
route_targets:
import:
- address_family: evpn
route_targets:
- - '42:42'
+ - 142:142
export:
- address_family: evpn
route_targets:
- - '42:42'
+ - 142:142
+ redistribute_routes:
+ - source_protocol: connected
+ - name: ATTRACTED-VRF-FROM-UPLINK
+ router_id: 192.168.42.2
+ neighbors:
+ - ip_address: 172.17.0.4
+ peer_group: IPv4-UNDERLAY-PEERS
+ remote_as: '65199'
+ description: site-ha-enabled-leaf2A_Ethernet1.666_vrf_ATTRACTED-VRF-FROM-UPLINK
+ - ip_address: 172.17.0.6
+ peer_group: IPv4-UNDERLAY-PEERS
+ remote_as: '65199'
+ description: site-ha-enabled-leaf2B_Ethernet1.666_vrf_ATTRACTED-VRF-FROM-UPLINK
+ rd: 192.168.42.2:666
+ route_targets:
+ import:
+ - address_family: evpn
+ route_targets:
+ - 666:666
+ export:
+ - address_family: evpn
+ route_targets:
+ - 666:666
redistribute_routes:
- source_protocol: connected
- name: default
@@ -156,6 +179,9 @@ vrfs:
- name: PROD
tenant: TenantA
ip_routing: true
+- name: ATTRACTED-VRF-FROM-UPLINK
+ tenant: TenantC
+ ip_routing: true
management_api_http:
enable_vrfs:
- name: MGMT
@@ -172,26 +198,37 @@ ethernet_interfaces:
ip_address: 172.17.0.5/31
flow_tracker:
hardware: WAN-FLOW-TRACKER
-- name: Ethernet52.100
+- name: Ethernet52.1000
peer: site-ha-enabled-leaf2A
- peer_interface: Ethernet1.100
+ peer_interface: Ethernet1.1000
peer_type: l3leaf
vrf: IT
- description: P2P_LINK_TO_SITE-HA-ENABLED-LEAF2A_Ethernet1.100_vrf_IT
+ description: P2P_LINK_TO_SITE-HA-ENABLED-LEAF2A_Ethernet1.1000_vrf_IT
shutdown: false
type: l3dot1q
- encapsulation_dot1q_vlan: 100
+ encapsulation_dot1q_vlan: 1000
mtu: 9214
ip_address: 172.17.0.5/31
-- name: Ethernet52.42
+- name: Ethernet52.142
peer: site-ha-enabled-leaf2A
- peer_interface: Ethernet1.42
+ peer_interface: Ethernet1.142
peer_type: l3leaf
vrf: PROD
- description: P2P_LINK_TO_SITE-HA-ENABLED-LEAF2A_Ethernet1.42_vrf_PROD
+ description: P2P_LINK_TO_SITE-HA-ENABLED-LEAF2A_Ethernet1.142_vrf_PROD
+ shutdown: false
+ type: l3dot1q
+ encapsulation_dot1q_vlan: 142
+ mtu: 9214
+ ip_address: 172.17.0.5/31
+- name: Ethernet52.666
+ peer: site-ha-enabled-leaf2A
+ peer_interface: Ethernet1.666
+ peer_type: l3leaf
+ vrf: ATTRACTED-VRF-FROM-UPLINK
+ description: P2P_LINK_TO_SITE-HA-ENABLED-LEAF2A_Ethernet1.666_vrf_ATTRACTED-VRF-FROM-UPLINK
shutdown: false
type: l3dot1q
- encapsulation_dot1q_vlan: 42
+ encapsulation_dot1q_vlan: 666
mtu: 9214
ip_address: 172.17.0.5/31
- name: Ethernet53
@@ -205,26 +242,37 @@ ethernet_interfaces:
ip_address: 172.17.0.7/31
flow_tracker:
hardware: WAN-FLOW-TRACKER
-- name: Ethernet53.100
+- name: Ethernet53.1000
peer: site-ha-enabled-leaf2B
- peer_interface: Ethernet1.100
+ peer_interface: Ethernet1.1000
peer_type: l3leaf
vrf: IT
- description: P2P_LINK_TO_SITE-HA-ENABLED-LEAF2B_Ethernet1.100_vrf_IT
+ description: P2P_LINK_TO_SITE-HA-ENABLED-LEAF2B_Ethernet1.1000_vrf_IT
shutdown: false
type: l3dot1q
- encapsulation_dot1q_vlan: 100
+ encapsulation_dot1q_vlan: 1000
mtu: 9214
ip_address: 172.17.0.7/31
-- name: Ethernet53.42
+- name: Ethernet53.142
peer: site-ha-enabled-leaf2B
- peer_interface: Ethernet1.42
+ peer_interface: Ethernet1.142
peer_type: l3leaf
vrf: PROD
- description: P2P_LINK_TO_SITE-HA-ENABLED-LEAF2B_Ethernet1.42_vrf_PROD
+ description: P2P_LINK_TO_SITE-HA-ENABLED-LEAF2B_Ethernet1.142_vrf_PROD
+ shutdown: false
+ type: l3dot1q
+ encapsulation_dot1q_vlan: 142
+ mtu: 9214
+ ip_address: 172.17.0.7/31
+- name: Ethernet53.666
+ peer: site-ha-enabled-leaf2B
+ peer_interface: Ethernet1.666
+ peer_type: l3leaf
+ vrf: ATTRACTED-VRF-FROM-UPLINK
+ description: P2P_LINK_TO_SITE-HA-ENABLED-LEAF2B_Ethernet1.666_vrf_ATTRACTED-VRF-FROM-UPLINK
shutdown: false
type: l3dot1q
- encapsulation_dot1q_vlan: 42
+ encapsulation_dot1q_vlan: 666
mtu: 9214
ip_address: 172.17.0.7/31
- name: Ethernet1
@@ -410,6 +458,10 @@ router_adaptive_virtual_topology:
profiles:
- name: CONTROL-PLANE-PROFILE
load_balance_policy: LB-CONTROL-PLANE-PROFILE
+ - name: DEFAULT-AVT-POLICY-WITH-CP-VIDEO
+ load_balance_policy: LB-DEFAULT-AVT-POLICY-WITH-CP-VIDEO
+ - name: DEFAULT-AVT-POLICY-WITH-CP-DEFAULT
+ load_balance_policy: LB-DEFAULT-AVT-POLICY-WITH-CP-DEFAULT
- name: PROD-AVT-POLICY-VOICE
load_balance_policy: LB-PROD-AVT-POLICY-VOICE
- name: PROD-AVT-POLICY-VIDEO
@@ -420,6 +472,8 @@ router_adaptive_virtual_topology:
load_balance_policy: LB-DEFAULT-AVT-POLICY-VIDEO
- name: DEFAULT-AVT-POLICY-DEFAULT
load_balance_policy: LB-DEFAULT-AVT-POLICY-DEFAULT
+ - name: DEFAULT-POLICY-DEFAULT
+ load_balance_policy: LB-DEFAULT-POLICY-DEFAULT
vrfs:
- name: default
policy: DEFAULT-AVT-POLICY-WITH-CP
@@ -446,7 +500,20 @@ router_adaptive_virtual_topology:
id: 3
- name: DEFAULT-AVT-POLICY-DEFAULT
id: 1
+ - name: ATTRACTED-VRF-FROM-UPLINK
+ policy: DEFAULT-POLICY
+ profiles:
+ - name: DEFAULT-POLICY-DEFAULT
+ id: 1
policies:
+ - name: DEFAULT-AVT-POLICY-WITH-CP
+ matches:
+ - application_profile: CONTROL-PLANE-APPLICATION-PROFILE
+ avt_profile: CONTROL-PLANE-PROFILE
+ - application_profile: VIDEO
+ avt_profile: DEFAULT-AVT-POLICY-VIDEO
+ - application_profile: default
+ avt_profile: DEFAULT-AVT-POLICY-DEFAULT
- name: PROD-AVT-POLICY
matches:
- application_profile: VOICE
@@ -461,14 +528,10 @@ router_adaptive_virtual_topology:
avt_profile: DEFAULT-AVT-POLICY-VIDEO
- application_profile: default
avt_profile: DEFAULT-AVT-POLICY-DEFAULT
- - name: DEFAULT-AVT-POLICY-WITH-CP
+ - name: DEFAULT-POLICY
matches:
- - application_profile: CONTROL-PLANE-APPLICATION-PROFILE
- avt_profile: CONTROL-PLANE-PROFILE
- - application_profile: VIDEO
- avt_profile: DEFAULT-AVT-POLICY-VIDEO
- application_profile: default
- avt_profile: DEFAULT-AVT-POLICY-DEFAULT
+ avt_profile: DEFAULT-POLICY-DEFAULT
router_bfd:
multihop:
interval: 300
@@ -513,6 +576,14 @@ router_path_selection:
path_groups:
- name: LAN_HA
- name: INET
+ - name: LB-DEFAULT-AVT-POLICY-VIDEO
+ path_groups:
+ - name: LAN_HA
+ - name: INET
+ - name: LB-DEFAULT-AVT-POLICY-DEFAULT
+ path_groups:
+ - name: LAN_HA
+ - name: INET
- name: LB-PROD-AVT-POLICY-VOICE
path_groups:
- name: LAN_HA
@@ -529,11 +600,7 @@ router_path_selection:
path_groups:
- name: LAN_HA
- name: INET
- - name: LB-DEFAULT-AVT-POLICY-VIDEO
- path_groups:
- - name: LAN_HA
- - name: INET
- - name: LB-DEFAULT-AVT-POLICY-DEFAULT
+ - name: LB-DEFAULT-POLICY-DEFAULT
path_groups:
- name: LAN_HA
- name: INET
@@ -548,15 +615,15 @@ stun:
ip_address: 10.9.9.9
application_traffic_recognition:
application_profiles:
- - name: VOICE
- applications:
- - name: CUSTOM-VOICE-APPLICATION
- name: VIDEO
categories:
- name: VIDEO1
applications:
- name: CUSTOM-APPLICATION-1
- name: skype
+ - name: VOICE
+ applications:
+ - name: CUSTOM-VOICE-APPLICATION
- name: CONTROL-PLANE-APPLICATION-PROFILE
applications:
- name: CONTROL-PLANE-APPLICATION
@@ -618,6 +685,8 @@ vxlan_interface:
vni: 100
- name: PROD
vni: 42
+ - name: ATTRACTED-VRF-FROM-UPLINK
+ vni: 166
metadata:
cv_tags:
device_tags:
diff --git a/ansible_collections/arista/avd/molecule/eos_designs_unit_tests/intended/structured_configs/cv-pathfinder-edge2B.yml b/ansible_collections/arista/avd/molecule/eos_designs_unit_tests/intended/structured_configs/cv-pathfinder-edge2B.yml
index 5a719d87e84..2403f7e6aa0 100644
--- a/ansible_collections/arista/avd/molecule/eos_designs_unit_tests/intended/structured_configs/cv-pathfinder-edge2B.yml
+++ b/ansible_collections/arista/avd/molecule/eos_designs_unit_tests/intended/structured_configs/cv-pathfinder-edge2B.yml
@@ -64,21 +64,21 @@ router_bgp:
- ip_address: 172.17.0.8
peer_group: IPv4-UNDERLAY-PEERS
remote_as: '65199'
- description: site-ha-enabled-leaf2A_Ethernet2.100_vrf_IT
+ description: site-ha-enabled-leaf2A_Ethernet2.1000_vrf_IT
- ip_address: 172.17.0.10
peer_group: IPv4-UNDERLAY-PEERS
remote_as: '65199'
- description: site-ha-enabled-leaf2B_Ethernet2.100_vrf_IT
- rd: 192.168.42.3:100
+ description: site-ha-enabled-leaf2B_Ethernet2.1000_vrf_IT
+ rd: 192.168.42.3:1000
route_targets:
import:
- address_family: evpn
route_targets:
- - 100:100
+ - 1000:1000
export:
- address_family: evpn
route_targets:
- - 100:100
+ - 1000:1000
redistribute_routes:
- source_protocol: connected
- name: PROD
@@ -87,21 +87,44 @@ router_bgp:
- ip_address: 172.17.0.8
peer_group: IPv4-UNDERLAY-PEERS
remote_as: '65199'
- description: site-ha-enabled-leaf2A_Ethernet2.42_vrf_PROD
+ description: site-ha-enabled-leaf2A_Ethernet2.142_vrf_PROD
- ip_address: 172.17.0.10
peer_group: IPv4-UNDERLAY-PEERS
remote_as: '65199'
- description: site-ha-enabled-leaf2B_Ethernet2.42_vrf_PROD
- rd: 192.168.42.3:42
+ description: site-ha-enabled-leaf2B_Ethernet2.142_vrf_PROD
+ rd: 192.168.42.3:142
route_targets:
import:
- address_family: evpn
route_targets:
- - '42:42'
+ - 142:142
export:
- address_family: evpn
route_targets:
- - '42:42'
+ - 142:142
+ redistribute_routes:
+ - source_protocol: connected
+ - name: ATTRACTED-VRF-FROM-UPLINK
+ router_id: 192.168.42.3
+ neighbors:
+ - ip_address: 172.17.0.8
+ peer_group: IPv4-UNDERLAY-PEERS
+ remote_as: '65199'
+ description: site-ha-enabled-leaf2A_Ethernet2.666_vrf_ATTRACTED-VRF-FROM-UPLINK
+ - ip_address: 172.17.0.10
+ peer_group: IPv4-UNDERLAY-PEERS
+ remote_as: '65199'
+ description: site-ha-enabled-leaf2B_Ethernet2.666_vrf_ATTRACTED-VRF-FROM-UPLINK
+ rd: 192.168.42.3:666
+ route_targets:
+ import:
+ - address_family: evpn
+ route_targets:
+ - 666:666
+ export:
+ - address_family: evpn
+ route_targets:
+ - 666:666
redistribute_routes:
- source_protocol: connected
- name: default
@@ -156,6 +179,9 @@ vrfs:
- name: PROD
tenant: TenantA
ip_routing: true
+- name: ATTRACTED-VRF-FROM-UPLINK
+ tenant: TenantC
+ ip_routing: true
management_api_http:
enable_vrfs:
- name: MGMT
@@ -172,26 +198,37 @@ ethernet_interfaces:
ip_address: 172.17.0.9/31
flow_tracker:
hardware: WAN-FLOW-TRACKER
-- name: Ethernet52.100
+- name: Ethernet52.1000
peer: site-ha-enabled-leaf2A
- peer_interface: Ethernet2.100
+ peer_interface: Ethernet2.1000
peer_type: l3leaf
vrf: IT
- description: P2P_LINK_TO_SITE-HA-ENABLED-LEAF2A_Ethernet2.100_vrf_IT
+ description: P2P_LINK_TO_SITE-HA-ENABLED-LEAF2A_Ethernet2.1000_vrf_IT
shutdown: false
type: l3dot1q
- encapsulation_dot1q_vlan: 100
+ encapsulation_dot1q_vlan: 1000
mtu: 9214
ip_address: 172.17.0.9/31
-- name: Ethernet52.42
+- name: Ethernet52.142
peer: site-ha-enabled-leaf2A
- peer_interface: Ethernet2.42
+ peer_interface: Ethernet2.142
peer_type: l3leaf
vrf: PROD
- description: P2P_LINK_TO_SITE-HA-ENABLED-LEAF2A_Ethernet2.42_vrf_PROD
+ description: P2P_LINK_TO_SITE-HA-ENABLED-LEAF2A_Ethernet2.142_vrf_PROD
shutdown: false
type: l3dot1q
- encapsulation_dot1q_vlan: 42
+ encapsulation_dot1q_vlan: 142
+ mtu: 9214
+ ip_address: 172.17.0.9/31
+- name: Ethernet52.666
+ peer: site-ha-enabled-leaf2A
+ peer_interface: Ethernet2.666
+ peer_type: l3leaf
+ vrf: ATTRACTED-VRF-FROM-UPLINK
+ description: P2P_LINK_TO_SITE-HA-ENABLED-LEAF2A_Ethernet2.666_vrf_ATTRACTED-VRF-FROM-UPLINK
+ shutdown: false
+ type: l3dot1q
+ encapsulation_dot1q_vlan: 666
mtu: 9214
ip_address: 172.17.0.9/31
- name: Ethernet53
@@ -205,26 +242,37 @@ ethernet_interfaces:
ip_address: 172.17.0.11/31
flow_tracker:
hardware: WAN-FLOW-TRACKER
-- name: Ethernet53.100
+- name: Ethernet53.1000
peer: site-ha-enabled-leaf2B
- peer_interface: Ethernet2.100
+ peer_interface: Ethernet2.1000
peer_type: l3leaf
vrf: IT
- description: P2P_LINK_TO_SITE-HA-ENABLED-LEAF2B_Ethernet2.100_vrf_IT
+ description: P2P_LINK_TO_SITE-HA-ENABLED-LEAF2B_Ethernet2.1000_vrf_IT
shutdown: false
type: l3dot1q
- encapsulation_dot1q_vlan: 100
+ encapsulation_dot1q_vlan: 1000
mtu: 9214
ip_address: 172.17.0.11/31
-- name: Ethernet53.42
+- name: Ethernet53.142
peer: site-ha-enabled-leaf2B
- peer_interface: Ethernet2.42
+ peer_interface: Ethernet2.142
peer_type: l3leaf
vrf: PROD
- description: P2P_LINK_TO_SITE-HA-ENABLED-LEAF2B_Ethernet2.42_vrf_PROD
+ description: P2P_LINK_TO_SITE-HA-ENABLED-LEAF2B_Ethernet2.142_vrf_PROD
shutdown: false
type: l3dot1q
- encapsulation_dot1q_vlan: 42
+ encapsulation_dot1q_vlan: 142
+ mtu: 9214
+ ip_address: 172.17.0.11/31
+- name: Ethernet53.666
+ peer: site-ha-enabled-leaf2B
+ peer_interface: Ethernet2.666
+ peer_type: l3leaf
+ vrf: ATTRACTED-VRF-FROM-UPLINK
+ description: P2P_LINK_TO_SITE-HA-ENABLED-LEAF2B_Ethernet2.666_vrf_ATTRACTED-VRF-FROM-UPLINK
+ shutdown: false
+ type: l3dot1q
+ encapsulation_dot1q_vlan: 666
mtu: 9214
ip_address: 172.17.0.11/31
- name: Ethernet2
@@ -409,6 +457,10 @@ router_adaptive_virtual_topology:
profiles:
- name: CONTROL-PLANE-PROFILE
load_balance_policy: LB-CONTROL-PLANE-PROFILE
+ - name: DEFAULT-AVT-POLICY-WITH-CP-VIDEO
+ load_balance_policy: LB-DEFAULT-AVT-POLICY-WITH-CP-VIDEO
+ - name: DEFAULT-AVT-POLICY-WITH-CP-DEFAULT
+ load_balance_policy: LB-DEFAULT-AVT-POLICY-WITH-CP-DEFAULT
- name: PROD-AVT-POLICY-VOICE
load_balance_policy: LB-PROD-AVT-POLICY-VOICE
- name: PROD-AVT-POLICY-VIDEO
@@ -419,6 +471,8 @@ router_adaptive_virtual_topology:
load_balance_policy: LB-DEFAULT-AVT-POLICY-VIDEO
- name: DEFAULT-AVT-POLICY-DEFAULT
load_balance_policy: LB-DEFAULT-AVT-POLICY-DEFAULT
+ - name: DEFAULT-POLICY-DEFAULT
+ load_balance_policy: LB-DEFAULT-POLICY-DEFAULT
vrfs:
- name: default
policy: DEFAULT-AVT-POLICY-WITH-CP
@@ -445,7 +499,20 @@ router_adaptive_virtual_topology:
id: 3
- name: DEFAULT-AVT-POLICY-DEFAULT
id: 1
+ - name: ATTRACTED-VRF-FROM-UPLINK
+ policy: DEFAULT-POLICY
+ profiles:
+ - name: DEFAULT-POLICY-DEFAULT
+ id: 1
policies:
+ - name: DEFAULT-AVT-POLICY-WITH-CP
+ matches:
+ - application_profile: CONTROL-PLANE-APPLICATION-PROFILE
+ avt_profile: CONTROL-PLANE-PROFILE
+ - application_profile: VIDEO
+ avt_profile: DEFAULT-AVT-POLICY-VIDEO
+ - application_profile: default
+ avt_profile: DEFAULT-AVT-POLICY-DEFAULT
- name: PROD-AVT-POLICY
matches:
- application_profile: VOICE
@@ -460,14 +527,10 @@ router_adaptive_virtual_topology:
avt_profile: DEFAULT-AVT-POLICY-VIDEO
- application_profile: default
avt_profile: DEFAULT-AVT-POLICY-DEFAULT
- - name: DEFAULT-AVT-POLICY-WITH-CP
+ - name: DEFAULT-POLICY
matches:
- - application_profile: CONTROL-PLANE-APPLICATION-PROFILE
- avt_profile: CONTROL-PLANE-PROFILE
- - application_profile: VIDEO
- avt_profile: DEFAULT-AVT-POLICY-VIDEO
- application_profile: default
- avt_profile: DEFAULT-AVT-POLICY-DEFAULT
+ avt_profile: DEFAULT-POLICY-DEFAULT
router_bfd:
multihop:
interval: 300
@@ -509,6 +572,15 @@ router_path_selection:
path_groups:
- name: LAN_HA
- name: MPLS
+ - name: LB-DEFAULT-AVT-POLICY-VIDEO
+ path_groups:
+ - name: LAN_HA
+ - name: MPLS
+ - name: LB-DEFAULT-AVT-POLICY-DEFAULT
+ path_groups:
+ - name: LAN_HA
+ - name: MPLS
+ priority: 42
- name: LB-PROD-AVT-POLICY-VOICE
path_groups:
- name: LAN_HA
@@ -524,15 +596,10 @@ router_path_selection:
- name: LAN_HA
- name: MPLS
priority: 2
- - name: LB-DEFAULT-AVT-POLICY-VIDEO
- path_groups:
- - name: LAN_HA
- - name: MPLS
- - name: LB-DEFAULT-AVT-POLICY-DEFAULT
+ - name: LB-DEFAULT-POLICY-DEFAULT
path_groups:
- name: LAN_HA
- name: MPLS
- priority: 42
router_traffic_engineering:
enabled: true
stun:
@@ -542,15 +609,15 @@ stun:
ip_address: 172.16.0.1
application_traffic_recognition:
application_profiles:
- - name: VOICE
- applications:
- - name: CUSTOM-VOICE-APPLICATION
- name: VIDEO
categories:
- name: VIDEO1
applications:
- name: CUSTOM-APPLICATION-1
- name: skype
+ - name: VOICE
+ applications:
+ - name: CUSTOM-VOICE-APPLICATION
- name: CONTROL-PLANE-APPLICATION-PROFILE
applications:
- name: CONTROL-PLANE-APPLICATION
@@ -612,6 +679,8 @@ vxlan_interface:
vni: 100
- name: PROD
vni: 42
+ - name: ATTRACTED-VRF-FROM-UPLINK
+ vni: 166
metadata:
cv_tags:
device_tags:
diff --git a/ansible_collections/arista/avd/molecule/eos_designs_unit_tests/intended/structured_configs/cv-pathfinder-pathfinder.yml b/ansible_collections/arista/avd/molecule/eos_designs_unit_tests/intended/structured_configs/cv-pathfinder-pathfinder.yml
index 6ae24d73c62..3692622cdab 100644
--- a/ansible_collections/arista/avd/molecule/eos_designs_unit_tests/intended/structured_configs/cv-pathfinder-pathfinder.yml
+++ b/ansible_collections/arista/avd/molecule/eos_designs_unit_tests/intended/structured_configs/cv-pathfinder-pathfinder.yml
@@ -199,6 +199,10 @@ router_adaptive_virtual_topology:
profiles:
- name: CONTROL-PLANE-PROFILE
load_balance_policy: LB-CONTROL-PLANE-PROFILE
+ - name: DEFAULT-AVT-POLICY-WITH-CP-VIDEO
+ load_balance_policy: LB-DEFAULT-AVT-POLICY-WITH-CP-VIDEO
+ - name: DEFAULT-AVT-POLICY-WITH-CP-DEFAULT
+ load_balance_policy: LB-DEFAULT-AVT-POLICY-WITH-CP-DEFAULT
- name: PROD-AVT-POLICY-VOICE
load_balance_policy: LB-PROD-AVT-POLICY-VOICE
- name: PROD-AVT-POLICY-VIDEO
@@ -213,6 +217,8 @@ router_adaptive_virtual_topology:
load_balance_policy: LB-TRANSIT-AVT-POLICY-VOICE
- name: TRANSIT-AVT-POLICY-DEFAULT
load_balance_policy: LB-TRANSIT-AVT-POLICY-DEFAULT
+ - name: DEFAULT-POLICY-DEFAULT
+ load_balance_policy: LB-DEFAULT-POLICY-DEFAULT
vrfs:
- name: default
policy: DEFAULT-AVT-POLICY-WITH-CP
@@ -246,7 +252,20 @@ router_adaptive_virtual_topology:
id: 42
- name: TRANSIT-AVT-POLICY-DEFAULT
id: 1
+ - name: ATTRACTED-VRF-FROM-UPLINK
+ policy: DEFAULT-POLICY
+ profiles:
+ - name: DEFAULT-POLICY-DEFAULT
+ id: 1
policies:
+ - name: DEFAULT-AVT-POLICY-WITH-CP
+ matches:
+ - application_profile: CONTROL-PLANE-APPLICATION-PROFILE
+ avt_profile: CONTROL-PLANE-PROFILE
+ - application_profile: VIDEO
+ avt_profile: DEFAULT-AVT-POLICY-VIDEO
+ - application_profile: default
+ avt_profile: DEFAULT-AVT-POLICY-DEFAULT
- name: PROD-AVT-POLICY
matches:
- application_profile: VOICE
@@ -267,14 +286,10 @@ router_adaptive_virtual_topology:
avt_profile: TRANSIT-AVT-POLICY-VOICE
- application_profile: default
avt_profile: TRANSIT-AVT-POLICY-DEFAULT
- - name: DEFAULT-AVT-POLICY-WITH-CP
+ - name: DEFAULT-POLICY
matches:
- - application_profile: CONTROL-PLANE-APPLICATION-PROFILE
- avt_profile: CONTROL-PLANE-PROFILE
- - application_profile: VIDEO
- avt_profile: DEFAULT-AVT-POLICY-VIDEO
- application_profile: default
- avt_profile: DEFAULT-AVT-POLICY-DEFAULT
+ avt_profile: DEFAULT-POLICY-DEFAULT
router_bfd:
multihop:
interval: 300
@@ -310,6 +325,18 @@ router_path_selection:
- name: LAN_HA
- name: INET
- name: MPLS
+ - name: LB-DEFAULT-AVT-POLICY-VIDEO
+ path_groups:
+ - name: LAN_HA
+ - name: MPLS
+ - name: INET
+ - name: LB-DEFAULT-AVT-POLICY-DEFAULT
+ path_groups:
+ - name: LAN_HA
+ - name: INET
+ - name: Equinix
+ - name: MPLS
+ priority: 42
- name: LB-PROD-AVT-POLICY-VOICE
path_groups:
- name: LAN_HA
@@ -331,30 +358,23 @@ router_path_selection:
- name: INET
- name: MPLS
priority: 2
- - name: LB-DEFAULT-AVT-POLICY-VIDEO
+ - name: LB-TRANSIT-AVT-POLICY-VOICE
path_groups:
- name: LAN_HA
- name: MPLS
- name: INET
- - name: LB-DEFAULT-AVT-POLICY-DEFAULT
+ priority: 2
+ - name: LB-TRANSIT-AVT-POLICY-DEFAULT
path_groups:
- name: LAN_HA
- name: INET
- - name: Equinix
- - name: MPLS
- priority: 42
- - name: LB-TRANSIT-AVT-POLICY-VOICE
- path_groups:
- - name: LAN_HA
- name: MPLS
- - name: INET
priority: 2
- - name: LB-TRANSIT-AVT-POLICY-DEFAULT
+ - name: LB-DEFAULT-POLICY-DEFAULT
path_groups:
- name: LAN_HA
- name: INET
- name: MPLS
- priority: 2
router_traffic_engineering:
enabled: true
stun:
@@ -365,15 +385,15 @@ stun:
- Ethernet3
application_traffic_recognition:
application_profiles:
- - name: VOICE
- applications:
- - name: CUSTOM-VOICE-APPLICATION
- name: VIDEO
categories:
- name: VIDEO1
applications:
- name: CUSTOM-APPLICATION-1
- name: skype
+ - name: VOICE
+ applications:
+ - name: CUSTOM-VOICE-APPLICATION
- name: CONTROL-PLANE-APPLICATION-PROFILE
applications:
- name: CONTROL-PLANE-APPLICATION
@@ -636,3 +656,15 @@ metadata:
preference: preferred
- name: MPLS
preference: alternate
+ - name: ATTRACTED-VRF-FROM-UPLINK
+ vni: 666
+ avts:
+ - id: 1
+ name: DEFAULT-POLICY-DEFAULT
+ pathgroups:
+ - name: LAN_HA
+ preference: preferred
+ - name: INET
+ preference: preferred
+ - name: MPLS
+ preference: preferred
diff --git a/ansible_collections/arista/avd/molecule/eos_designs_unit_tests/intended/structured_configs/cv-pathfinder-pathfinder1.yml b/ansible_collections/arista/avd/molecule/eos_designs_unit_tests/intended/structured_configs/cv-pathfinder-pathfinder1.yml
index 62c80cee7c1..603cad0990a 100644
--- a/ansible_collections/arista/avd/molecule/eos_designs_unit_tests/intended/structured_configs/cv-pathfinder-pathfinder1.yml
+++ b/ansible_collections/arista/avd/molecule/eos_designs_unit_tests/intended/structured_configs/cv-pathfinder-pathfinder1.yml
@@ -213,6 +213,10 @@ router_adaptive_virtual_topology:
profiles:
- name: CONTROL-PLANE-PROFILE
load_balance_policy: LB-CONTROL-PLANE-PROFILE
+ - name: DEFAULT-AVT-POLICY-WITH-CP-VIDEO
+ load_balance_policy: LB-DEFAULT-AVT-POLICY-WITH-CP-VIDEO
+ - name: DEFAULT-AVT-POLICY-WITH-CP-DEFAULT
+ load_balance_policy: LB-DEFAULT-AVT-POLICY-WITH-CP-DEFAULT
- name: PROD-AVT-POLICY-VOICE
load_balance_policy: LB-PROD-AVT-POLICY-VOICE
- name: PROD-AVT-POLICY-VIDEO
@@ -227,6 +231,8 @@ router_adaptive_virtual_topology:
load_balance_policy: LB-TRANSIT-AVT-POLICY-VOICE
- name: TRANSIT-AVT-POLICY-DEFAULT
load_balance_policy: LB-TRANSIT-AVT-POLICY-DEFAULT
+ - name: DEFAULT-POLICY-DEFAULT
+ load_balance_policy: LB-DEFAULT-POLICY-DEFAULT
vrfs:
- name: default
policy: DEFAULT-AVT-POLICY-WITH-CP
@@ -260,7 +266,20 @@ router_adaptive_virtual_topology:
id: 42
- name: TRANSIT-AVT-POLICY-DEFAULT
id: 1
+ - name: ATTRACTED-VRF-FROM-UPLINK
+ policy: DEFAULT-POLICY
+ profiles:
+ - name: DEFAULT-POLICY-DEFAULT
+ id: 1
policies:
+ - name: DEFAULT-AVT-POLICY-WITH-CP
+ matches:
+ - application_profile: CONTROL-PLANE-APPLICATION-PROFILE
+ avt_profile: CONTROL-PLANE-PROFILE
+ - application_profile: VIDEO
+ avt_profile: DEFAULT-AVT-POLICY-VIDEO
+ - application_profile: default
+ avt_profile: DEFAULT-AVT-POLICY-DEFAULT
- name: PROD-AVT-POLICY
matches:
- application_profile: VOICE
@@ -281,14 +300,10 @@ router_adaptive_virtual_topology:
avt_profile: TRANSIT-AVT-POLICY-VOICE
- application_profile: default
avt_profile: TRANSIT-AVT-POLICY-DEFAULT
- - name: DEFAULT-AVT-POLICY-WITH-CP
+ - name: DEFAULT-POLICY
matches:
- - application_profile: CONTROL-PLANE-APPLICATION-PROFILE
- avt_profile: CONTROL-PLANE-PROFILE
- - application_profile: VIDEO
- avt_profile: DEFAULT-AVT-POLICY-VIDEO
- application_profile: default
- avt_profile: DEFAULT-AVT-POLICY-DEFAULT
+ avt_profile: DEFAULT-POLICY-DEFAULT
router_bfd:
multihop:
interval: 300
@@ -329,6 +344,18 @@ router_path_selection:
path_groups:
- name: LAN_HA
- name: INET
+ - name: LB-DEFAULT-AVT-POLICY-VIDEO
+ path_groups:
+ - name: LAN_HA
+ - name: MPLS
+ - name: INET
+ - name: LB-DEFAULT-AVT-POLICY-DEFAULT
+ path_groups:
+ - name: LAN_HA
+ - name: INET
+ - name: Equinix
+ - name: MPLS
+ priority: 42
- name: LB-PROD-AVT-POLICY-VOICE
path_groups:
- name: LAN_HA
@@ -350,18 +377,6 @@ router_path_selection:
- name: INET
- name: MPLS
priority: 2
- - name: LB-DEFAULT-AVT-POLICY-VIDEO
- path_groups:
- - name: LAN_HA
- - name: MPLS
- - name: INET
- - name: LB-DEFAULT-AVT-POLICY-DEFAULT
- path_groups:
- - name: LAN_HA
- - name: INET
- - name: Equinix
- - name: MPLS
- priority: 42
- name: LB-TRANSIT-AVT-POLICY-VOICE
path_groups:
- name: LAN_HA
@@ -374,6 +389,10 @@ router_path_selection:
- name: INET
- name: MPLS
priority: 2
+ - name: LB-DEFAULT-POLICY-DEFAULT
+ path_groups:
+ - name: LAN_HA
+ - name: INET
router_traffic_engineering:
enabled: true
stun:
@@ -382,15 +401,15 @@ stun:
- Ethernet1
application_traffic_recognition:
application_profiles:
- - name: VOICE
- applications:
- - name: CUSTOM-VOICE-APPLICATION
- name: VIDEO
categories:
- name: VIDEO1
applications:
- name: CUSTOM-APPLICATION-1
- name: skype
+ - name: VOICE
+ applications:
+ - name: CUSTOM-VOICE-APPLICATION
- name: CONTROL-PLANE-APPLICATION-PROFILE
applications:
- name: CONTROL-PLANE-APPLICATION
@@ -625,3 +644,13 @@ metadata:
preference: preferred
- name: MPLS
preference: alternate
+ - name: ATTRACTED-VRF-FROM-UPLINK
+ vni: 666
+ avts:
+ - id: 1
+ name: DEFAULT-POLICY-DEFAULT
+ pathgroups:
+ - name: LAN_HA
+ preference: preferred
+ - name: INET
+ preference: preferred
diff --git a/ansible_collections/arista/avd/molecule/eos_designs_unit_tests/intended/structured_configs/cv-pathfinder-pathfinder2.yml b/ansible_collections/arista/avd/molecule/eos_designs_unit_tests/intended/structured_configs/cv-pathfinder-pathfinder2.yml
index 56ac5de0e5c..25db97564fb 100644
--- a/ansible_collections/arista/avd/molecule/eos_designs_unit_tests/intended/structured_configs/cv-pathfinder-pathfinder2.yml
+++ b/ansible_collections/arista/avd/molecule/eos_designs_unit_tests/intended/structured_configs/cv-pathfinder-pathfinder2.yml
@@ -220,6 +220,10 @@ router_adaptive_virtual_topology:
profiles:
- name: CONTROL-PLANE-PROFILE
load_balance_policy: LB-CONTROL-PLANE-PROFILE
+ - name: DEFAULT-AVT-POLICY-WITH-CP-VIDEO
+ load_balance_policy: LB-DEFAULT-AVT-POLICY-WITH-CP-VIDEO
+ - name: DEFAULT-AVT-POLICY-WITH-CP-DEFAULT
+ load_balance_policy: LB-DEFAULT-AVT-POLICY-WITH-CP-DEFAULT
- name: PROD-AVT-POLICY-VOICE
load_balance_policy: LB-PROD-AVT-POLICY-VOICE
- name: PROD-AVT-POLICY-VIDEO
@@ -234,6 +238,8 @@ router_adaptive_virtual_topology:
load_balance_policy: LB-TRANSIT-AVT-POLICY-VOICE
- name: TRANSIT-AVT-POLICY-DEFAULT
load_balance_policy: LB-TRANSIT-AVT-POLICY-DEFAULT
+ - name: DEFAULT-POLICY-DEFAULT
+ load_balance_policy: LB-DEFAULT-POLICY-DEFAULT
vrfs:
- name: default
policy: DEFAULT-AVT-POLICY-WITH-CP
@@ -267,7 +273,20 @@ router_adaptive_virtual_topology:
id: 42
- name: TRANSIT-AVT-POLICY-DEFAULT
id: 1
+ - name: ATTRACTED-VRF-FROM-UPLINK
+ policy: DEFAULT-POLICY
+ profiles:
+ - name: DEFAULT-POLICY-DEFAULT
+ id: 1
policies:
+ - name: DEFAULT-AVT-POLICY-WITH-CP
+ matches:
+ - application_profile: CONTROL-PLANE-APPLICATION-PROFILE
+ avt_profile: CONTROL-PLANE-PROFILE
+ - application_profile: VIDEO
+ avt_profile: DEFAULT-AVT-POLICY-VIDEO
+ - application_profile: default
+ avt_profile: DEFAULT-AVT-POLICY-DEFAULT
- name: PROD-AVT-POLICY
matches:
- application_profile: VOICE
@@ -288,14 +307,10 @@ router_adaptive_virtual_topology:
avt_profile: TRANSIT-AVT-POLICY-VOICE
- application_profile: default
avt_profile: TRANSIT-AVT-POLICY-DEFAULT
- - name: DEFAULT-AVT-POLICY-WITH-CP
+ - name: DEFAULT-POLICY
matches:
- - application_profile: CONTROL-PLANE-APPLICATION-PROFILE
- avt_profile: CONTROL-PLANE-PROFILE
- - application_profile: VIDEO
- avt_profile: DEFAULT-AVT-POLICY-VIDEO
- application_profile: default
- avt_profile: DEFAULT-AVT-POLICY-DEFAULT
+ avt_profile: DEFAULT-POLICY-DEFAULT
router_bfd:
multihop:
interval: 300
@@ -344,6 +359,18 @@ router_path_selection:
- name: LAN_HA
- name: INET
- name: MPLS
+ - name: LB-DEFAULT-AVT-POLICY-VIDEO
+ path_groups:
+ - name: LAN_HA
+ - name: MPLS
+ - name: INET
+ - name: LB-DEFAULT-AVT-POLICY-DEFAULT
+ path_groups:
+ - name: LAN_HA
+ - name: INET
+ - name: Equinix
+ - name: MPLS
+ priority: 42
- name: LB-PROD-AVT-POLICY-VOICE
path_groups:
- name: LAN_HA
@@ -365,30 +392,23 @@ router_path_selection:
- name: INET
- name: MPLS
priority: 2
- - name: LB-DEFAULT-AVT-POLICY-VIDEO
+ - name: LB-TRANSIT-AVT-POLICY-VOICE
path_groups:
- name: LAN_HA
- name: MPLS
- name: INET
- - name: LB-DEFAULT-AVT-POLICY-DEFAULT
+ priority: 2
+ - name: LB-TRANSIT-AVT-POLICY-DEFAULT
path_groups:
- name: LAN_HA
- name: INET
- - name: Equinix
- - name: MPLS
- priority: 42
- - name: LB-TRANSIT-AVT-POLICY-VOICE
- path_groups:
- - name: LAN_HA
- name: MPLS
- - name: INET
priority: 2
- - name: LB-TRANSIT-AVT-POLICY-DEFAULT
+ - name: LB-DEFAULT-POLICY-DEFAULT
path_groups:
- name: LAN_HA
- name: INET
- name: MPLS
- priority: 2
router_traffic_engineering:
enabled: true
stun:
@@ -398,15 +418,15 @@ stun:
- Ethernet2
application_traffic_recognition:
application_profiles:
- - name: VOICE
- applications:
- - name: CUSTOM-VOICE-APPLICATION
- name: VIDEO
categories:
- name: VIDEO1
applications:
- name: CUSTOM-APPLICATION-1
- name: skype
+ - name: VOICE
+ applications:
+ - name: CUSTOM-VOICE-APPLICATION
- name: CONTROL-PLANE-APPLICATION-PROFILE
applications:
- name: CONTROL-PLANE-APPLICATION
@@ -656,3 +676,15 @@ metadata:
preference: preferred
- name: MPLS
preference: alternate
+ - name: ATTRACTED-VRF-FROM-UPLINK
+ vni: 666
+ avts:
+ - id: 1
+ name: DEFAULT-POLICY-DEFAULT
+ pathgroups:
+ - name: LAN_HA
+ preference: preferred
+ - name: INET
+ preference: preferred
+ - name: MPLS
+ preference: preferred
diff --git a/ansible_collections/arista/avd/molecule/eos_designs_unit_tests/intended/structured_configs/cv-pathfinder-transit1A.yml b/ansible_collections/arista/avd/molecule/eos_designs_unit_tests/intended/structured_configs/cv-pathfinder-transit1A.yml
index a1c21c338be..b911ffc0806 100644
--- a/ansible_collections/arista/avd/molecule/eos_designs_unit_tests/intended/structured_configs/cv-pathfinder-transit1A.yml
+++ b/ansible_collections/arista/avd/molecule/eos_designs_unit_tests/intended/structured_configs/cv-pathfinder-transit1A.yml
@@ -59,17 +59,17 @@ router_bgp:
- ip_address: 172.17.0.0
peer_group: IPv4-UNDERLAY-PEERS
remote_as: '65199'
- description: site-ha-enabled-leaf1_Ethernet1.100_vrf_IT
- rd: 192.168.43.1:100
+ description: site-ha-enabled-leaf1_Ethernet1.1000_vrf_IT
+ rd: 192.168.43.1:1000
route_targets:
import:
- address_family: evpn
route_targets:
- - 100:100
+ - 1000:1000
export:
- address_family: evpn
route_targets:
- - 100:100
+ - 1000:1000
redistribute_routes:
- source_protocol: connected
- name: PROD
@@ -78,17 +78,36 @@ router_bgp:
- ip_address: 172.17.0.0
peer_group: IPv4-UNDERLAY-PEERS
remote_as: '65199'
- description: site-ha-enabled-leaf1_Ethernet1.42_vrf_PROD
- rd: 192.168.43.1:42
+ description: site-ha-enabled-leaf1_Ethernet1.142_vrf_PROD
+ rd: 192.168.43.1:142
route_targets:
import:
- address_family: evpn
route_targets:
- - '42:42'
+ - 142:142
export:
- address_family: evpn
route_targets:
- - '42:42'
+ - 142:142
+ redistribute_routes:
+ - source_protocol: connected
+ - name: ATTRACTED-VRF-FROM-UPLINK
+ router_id: 192.168.43.1
+ neighbors:
+ - ip_address: 172.17.0.0
+ peer_group: IPv4-UNDERLAY-PEERS
+ remote_as: '65199'
+ description: site-ha-enabled-leaf1_Ethernet1.666_vrf_ATTRACTED-VRF-FROM-UPLINK
+ rd: 192.168.43.1:666
+ route_targets:
+ import:
+ - address_family: evpn
+ route_targets:
+ - 666:666
+ export:
+ - address_family: evpn
+ route_targets:
+ - 666:666
redistribute_routes:
- source_protocol: connected
- name: default
@@ -103,6 +122,10 @@ router_bgp:
route_targets:
- '1:1'
- route-map RM-EVPN-EXPORT-VRF-DEFAULT
+ - name: NOT-WAN-VRF
+ router_id: 192.168.43.1
+ redistribute_routes:
+ - source_protocol: connected
- name: TRANSIT
router_id: 192.168.43.1
rd: 192.168.43.1:66
@@ -143,69 +166,6 @@ router_bgp:
receive: true
send:
any: true
-<<<<<<< HEAD:ansible_collections/arista/avd/molecule/eos_designs_unit_tests/intended/structured_configs/cv-pathfinder-transit1A.yml
-=======
- neighbors:
- - ip_address: 192.168.144.1
- peer_group: WAN-OVERLAY-PEERS
- peer: cv-pathfinder-pathfinder
- description: cv-pathfinder-pathfinder
- vrfs:
- - name: default
- rd: 192.168.43.1:1
- route_targets:
- import:
- - address_family: evpn
- route_targets:
- - '1:1'
- export:
- - address_family: evpn
- route_targets:
- - '1:1'
- - route-map RM-EVPN-EXPORT-VRF-DEFAULT
- - name: IT
- router_id: 192.168.43.1
- rd: 192.168.43.1:1000
- route_targets:
- import:
- - address_family: evpn
- route_targets:
- - 1000:1000
- export:
- - address_family: evpn
- route_targets:
- - 1000:1000
- redistribute_routes:
- - source_protocol: connected
- - name: PROD
- router_id: 192.168.43.1
- rd: 192.168.43.1:142
- route_targets:
- import:
- - address_family: evpn
- route_targets:
- - 142:142
- export:
- - address_family: evpn
- route_targets:
- - 142:142
- redistribute_routes:
- - source_protocol: connected
- - name: TRANSIT
- router_id: 192.168.43.1
- rd: 192.168.43.1:66
- route_targets:
- import:
- - address_family: evpn
- route_targets:
- - 66:66
- export:
- - address_family: evpn
- route_targets:
- - 66:66
- redistribute_routes:
- - source_protocol: connected
->>>>>>> ff441f2cd (Feat(eos_designs): Add wan_vni for WAN VRF):ansible_collections/arista/avd/molecule/eos_designs_unit_tests/intended/structured_configs/cv-pathfinder-transit.yml
service_routing_protocols_model: multi-agent
ip_routing: true
transceiver_qsfp_default_mode_4x10: false
@@ -226,6 +186,9 @@ vrfs:
- name: TRANSIT
tenant: TenantB
ip_routing: true
+- name: ATTRACTED-VRF-FROM-UPLINK
+ tenant: TenantC
+ ip_routing: true
management_api_http:
enable_vrfs:
- name: MGMT
@@ -242,26 +205,37 @@ ethernet_interfaces:
ip_address: 172.17.0.1/31
flow_tracker:
hardware: WAN-FLOW-TRACKER
-- name: Ethernet52.100
+- name: Ethernet52.1000
peer: site-ha-enabled-leaf1
- peer_interface: Ethernet1.100
+ peer_interface: Ethernet1.1000
peer_type: l3leaf
vrf: IT
- description: P2P_LINK_TO_SITE-HA-ENABLED-LEAF1_Ethernet1.100_vrf_IT
+ description: P2P_LINK_TO_SITE-HA-ENABLED-LEAF1_Ethernet1.1000_vrf_IT
shutdown: false
type: l3dot1q
- encapsulation_dot1q_vlan: 100
+ encapsulation_dot1q_vlan: 1000
mtu: 9214
ip_address: 172.17.0.1/31
-- name: Ethernet52.42
+- name: Ethernet52.142
peer: site-ha-enabled-leaf1
- peer_interface: Ethernet1.42
+ peer_interface: Ethernet1.142
peer_type: l3leaf
vrf: PROD
- description: P2P_LINK_TO_SITE-HA-ENABLED-LEAF1_Ethernet1.42_vrf_PROD
+ description: P2P_LINK_TO_SITE-HA-ENABLED-LEAF1_Ethernet1.142_vrf_PROD
shutdown: false
type: l3dot1q
- encapsulation_dot1q_vlan: 42
+ encapsulation_dot1q_vlan: 142
+ mtu: 9214
+ ip_address: 172.17.0.1/31
+- name: Ethernet52.666
+ peer: site-ha-enabled-leaf1
+ peer_interface: Ethernet1.666
+ peer_type: l3leaf
+ vrf: ATTRACTED-VRF-FROM-UPLINK
+ description: P2P_LINK_TO_SITE-HA-ENABLED-LEAF1_Ethernet1.666_vrf_ATTRACTED-VRF-FROM-UPLINK
+ shutdown: false
+ type: l3dot1q
+ encapsulation_dot1q_vlan: 666
mtu: 9214
ip_address: 172.17.0.1/31
- name: Ethernet1.42
@@ -460,6 +434,10 @@ router_adaptive_virtual_topology:
profiles:
- name: CONTROL-PLANE-PROFILE
load_balance_policy: LB-CONTROL-PLANE-PROFILE
+ - name: DEFAULT-AVT-POLICY-WITH-CP-VIDEO
+ load_balance_policy: LB-DEFAULT-AVT-POLICY-WITH-CP-VIDEO
+ - name: DEFAULT-AVT-POLICY-WITH-CP-DEFAULT
+ load_balance_policy: LB-DEFAULT-AVT-POLICY-WITH-CP-DEFAULT
- name: PROD-AVT-POLICY-VOICE
load_balance_policy: LB-PROD-AVT-POLICY-VOICE
- name: PROD-AVT-POLICY-VIDEO
@@ -474,6 +452,8 @@ router_adaptive_virtual_topology:
load_balance_policy: LB-TRANSIT-AVT-POLICY-VOICE
- name: TRANSIT-AVT-POLICY-DEFAULT
load_balance_policy: LB-TRANSIT-AVT-POLICY-DEFAULT
+ - name: DEFAULT-POLICY-DEFAULT
+ load_balance_policy: LB-DEFAULT-POLICY-DEFAULT
vrfs:
- name: default
policy: DEFAULT-AVT-POLICY-WITH-CP
@@ -507,7 +487,20 @@ router_adaptive_virtual_topology:
id: 42
- name: TRANSIT-AVT-POLICY-DEFAULT
id: 1
+ - name: ATTRACTED-VRF-FROM-UPLINK
+ policy: DEFAULT-POLICY
+ profiles:
+ - name: DEFAULT-POLICY-DEFAULT
+ id: 1
policies:
+ - name: DEFAULT-AVT-POLICY-WITH-CP
+ matches:
+ - application_profile: CONTROL-PLANE-APPLICATION-PROFILE
+ avt_profile: CONTROL-PLANE-PROFILE
+ - application_profile: VIDEO
+ avt_profile: DEFAULT-AVT-POLICY-VIDEO
+ - application_profile: default
+ avt_profile: DEFAULT-AVT-POLICY-DEFAULT
- name: PROD-AVT-POLICY
matches:
- application_profile: VOICE
@@ -528,14 +521,10 @@ router_adaptive_virtual_topology:
avt_profile: TRANSIT-AVT-POLICY-VOICE
- application_profile: default
avt_profile: TRANSIT-AVT-POLICY-DEFAULT
- - name: DEFAULT-AVT-POLICY-WITH-CP
+ - name: DEFAULT-POLICY
matches:
- - application_profile: CONTROL-PLANE-APPLICATION-PROFILE
- avt_profile: CONTROL-PLANE-PROFILE
- - application_profile: VIDEO
- avt_profile: DEFAULT-AVT-POLICY-VIDEO
- application_profile: default
- avt_profile: DEFAULT-AVT-POLICY-DEFAULT
+ avt_profile: DEFAULT-POLICY-DEFAULT
router_bfd:
multihop:
interval: 300
@@ -592,6 +581,17 @@ router_path_selection:
- name: LAN_HA
- name: INET
- name: MPLS
+ - name: LB-DEFAULT-AVT-POLICY-VIDEO
+ path_groups:
+ - name: LAN_HA
+ - name: MPLS
+ - name: INET
+ - name: LB-DEFAULT-AVT-POLICY-DEFAULT
+ path_groups:
+ - name: LAN_HA
+ - name: INET
+ - name: MPLS
+ priority: 42
- name: LB-PROD-AVT-POLICY-VOICE
path_groups:
- name: LAN_HA
@@ -612,29 +612,23 @@ router_path_selection:
- name: INET
- name: MPLS
priority: 2
- - name: LB-DEFAULT-AVT-POLICY-VIDEO
+ - name: LB-TRANSIT-AVT-POLICY-VOICE
path_groups:
- name: LAN_HA
- name: MPLS
- name: INET
- - name: LB-DEFAULT-AVT-POLICY-DEFAULT
+ priority: 2
+ - name: LB-TRANSIT-AVT-POLICY-DEFAULT
path_groups:
- name: LAN_HA
- name: INET
- name: MPLS
- priority: 42
- - name: LB-TRANSIT-AVT-POLICY-VOICE
- path_groups:
- - name: LAN_HA
- - name: MPLS
- - name: INET
priority: 2
- - name: LB-TRANSIT-AVT-POLICY-DEFAULT
+ - name: LB-DEFAULT-POLICY-DEFAULT
path_groups:
- name: LAN_HA
- name: INET
- name: MPLS
- priority: 2
router_traffic_engineering:
enabled: true
stun:
@@ -648,15 +642,15 @@ stun:
ip_address: 172.16.0.1
application_traffic_recognition:
application_profiles:
- - name: VOICE
- applications:
- - name: CUSTOM-VOICE-APPLICATION
- name: VIDEO
categories:
- name: VIDEO1
applications:
- name: CUSTOM-APPLICATION-1
- name: skype
+ - name: VOICE
+ applications:
+ - name: CUSTOM-VOICE-APPLICATION
- name: CONTROL-PLANE-APPLICATION-PROFILE
applications:
- name: CONTROL-PLANE-APPLICATION
@@ -720,6 +714,8 @@ vxlan_interface:
vni: 42
- name: TRANSIT
vni: 66
+ - name: ATTRACTED-VRF-FROM-UPLINK
+ vni: 166
metadata:
cv_tags:
device_tags:
diff --git a/ansible_collections/arista/avd/molecule/eos_designs_unit_tests/intended/structured_configs/cv-pathfinder-transit1B.yml b/ansible_collections/arista/avd/molecule/eos_designs_unit_tests/intended/structured_configs/cv-pathfinder-transit1B.yml
index 8dfa33db598..447c2c43026 100644
--- a/ansible_collections/arista/avd/molecule/eos_designs_unit_tests/intended/structured_configs/cv-pathfinder-transit1B.yml
+++ b/ansible_collections/arista/avd/molecule/eos_designs_unit_tests/intended/structured_configs/cv-pathfinder-transit1B.yml
@@ -59,17 +59,17 @@ router_bgp:
- ip_address: 172.17.0.2
peer_group: IPv4-UNDERLAY-PEERS
remote_as: '65199'
- description: site-ha-enabled-leaf1_Ethernet2.100_vrf_IT
- rd: 192.168.43.2:100
+ description: site-ha-enabled-leaf1_Ethernet2.1000_vrf_IT
+ rd: 192.168.43.2:1000
route_targets:
import:
- address_family: evpn
route_targets:
- - 100:100
+ - 1000:1000
export:
- address_family: evpn
route_targets:
- - 100:100
+ - 1000:1000
redistribute_routes:
- source_protocol: connected
- name: PROD
@@ -78,17 +78,36 @@ router_bgp:
- ip_address: 172.17.0.2
peer_group: IPv4-UNDERLAY-PEERS
remote_as: '65199'
- description: site-ha-enabled-leaf1_Ethernet2.42_vrf_PROD
- rd: 192.168.43.2:42
+ description: site-ha-enabled-leaf1_Ethernet2.142_vrf_PROD
+ rd: 192.168.43.2:142
route_targets:
import:
- address_family: evpn
route_targets:
- - '42:42'
+ - 142:142
export:
- address_family: evpn
route_targets:
- - '42:42'
+ - 142:142
+ redistribute_routes:
+ - source_protocol: connected
+ - name: ATTRACTED-VRF-FROM-UPLINK
+ router_id: 192.168.43.2
+ neighbors:
+ - ip_address: 172.17.0.2
+ peer_group: IPv4-UNDERLAY-PEERS
+ remote_as: '65199'
+ description: site-ha-enabled-leaf1_Ethernet2.666_vrf_ATTRACTED-VRF-FROM-UPLINK
+ rd: 192.168.43.2:666
+ route_targets:
+ import:
+ - address_family: evpn
+ route_targets:
+ - 666:666
+ export:
+ - address_family: evpn
+ route_targets:
+ - 666:666
redistribute_routes:
- source_protocol: connected
- name: default
@@ -103,6 +122,10 @@ router_bgp:
route_targets:
- '1:1'
- route-map RM-EVPN-EXPORT-VRF-DEFAULT
+ - name: NOT-WAN-VRF
+ router_id: 192.168.43.2
+ redistribute_routes:
+ - source_protocol: connected
- name: TRANSIT
router_id: 192.168.43.2
rd: 192.168.43.2:66
@@ -157,9 +180,15 @@ vrfs:
- name: PROD
tenant: TenantA
ip_routing: true
+- name: NOT-WAN-VRF
+ tenant: TenantB
+ ip_routing: true
- name: TRANSIT
tenant: TenantB
ip_routing: true
+- name: ATTRACTED-VRF-FROM-UPLINK
+ tenant: TenantC
+ ip_routing: true
management_api_http:
enable_vrfs:
- name: MGMT
@@ -176,26 +205,37 @@ ethernet_interfaces:
ip_address: 172.17.0.3/31
flow_tracker:
hardware: WAN-FLOW-TRACKER
-- name: Ethernet52.100
+- name: Ethernet52.1000
peer: site-ha-enabled-leaf1
- peer_interface: Ethernet2.100
+ peer_interface: Ethernet2.1000
peer_type: l3leaf
vrf: IT
- description: P2P_LINK_TO_SITE-HA-ENABLED-LEAF1_Ethernet2.100_vrf_IT
+ description: P2P_LINK_TO_SITE-HA-ENABLED-LEAF1_Ethernet2.1000_vrf_IT
shutdown: false
type: l3dot1q
- encapsulation_dot1q_vlan: 100
+ encapsulation_dot1q_vlan: 1000
mtu: 9214
ip_address: 172.17.0.3/31
-- name: Ethernet52.42
+- name: Ethernet52.142
peer: site-ha-enabled-leaf1
- peer_interface: Ethernet2.42
+ peer_interface: Ethernet2.142
peer_type: l3leaf
vrf: PROD
- description: P2P_LINK_TO_SITE-HA-ENABLED-LEAF1_Ethernet2.42_vrf_PROD
+ description: P2P_LINK_TO_SITE-HA-ENABLED-LEAF1_Ethernet2.142_vrf_PROD
shutdown: false
type: l3dot1q
- encapsulation_dot1q_vlan: 42
+ encapsulation_dot1q_vlan: 142
+ mtu: 9214
+ ip_address: 172.17.0.3/31
+- name: Ethernet52.666
+ peer: site-ha-enabled-leaf1
+ peer_interface: Ethernet2.666
+ peer_type: l3leaf
+ vrf: ATTRACTED-VRF-FROM-UPLINK
+ description: P2P_LINK_TO_SITE-HA-ENABLED-LEAF1_Ethernet2.666_vrf_ATTRACTED-VRF-FROM-UPLINK
+ shutdown: false
+ type: l3dot1q
+ encapsulation_dot1q_vlan: 666
mtu: 9214
ip_address: 172.17.0.3/31
- name: Ethernet1.42
@@ -394,6 +434,10 @@ router_adaptive_virtual_topology:
profiles:
- name: CONTROL-PLANE-PROFILE
load_balance_policy: LB-CONTROL-PLANE-PROFILE
+ - name: DEFAULT-AVT-POLICY-WITH-CP-VIDEO
+ load_balance_policy: LB-DEFAULT-AVT-POLICY-WITH-CP-VIDEO
+ - name: DEFAULT-AVT-POLICY-WITH-CP-DEFAULT
+ load_balance_policy: LB-DEFAULT-AVT-POLICY-WITH-CP-DEFAULT
- name: PROD-AVT-POLICY-VOICE
load_balance_policy: LB-PROD-AVT-POLICY-VOICE
- name: PROD-AVT-POLICY-VIDEO
@@ -408,6 +452,8 @@ router_adaptive_virtual_topology:
load_balance_policy: LB-TRANSIT-AVT-POLICY-VOICE
- name: TRANSIT-AVT-POLICY-DEFAULT
load_balance_policy: LB-TRANSIT-AVT-POLICY-DEFAULT
+ - name: DEFAULT-POLICY-DEFAULT
+ load_balance_policy: LB-DEFAULT-POLICY-DEFAULT
vrfs:
- name: default
policy: DEFAULT-AVT-POLICY-WITH-CP
@@ -441,7 +487,20 @@ router_adaptive_virtual_topology:
id: 42
- name: TRANSIT-AVT-POLICY-DEFAULT
id: 1
+ - name: ATTRACTED-VRF-FROM-UPLINK
+ policy: DEFAULT-POLICY
+ profiles:
+ - name: DEFAULT-POLICY-DEFAULT
+ id: 1
policies:
+ - name: DEFAULT-AVT-POLICY-WITH-CP
+ matches:
+ - application_profile: CONTROL-PLANE-APPLICATION-PROFILE
+ avt_profile: CONTROL-PLANE-PROFILE
+ - application_profile: VIDEO
+ avt_profile: DEFAULT-AVT-POLICY-VIDEO
+ - application_profile: default
+ avt_profile: DEFAULT-AVT-POLICY-DEFAULT
- name: PROD-AVT-POLICY
matches:
- application_profile: VOICE
@@ -462,14 +521,10 @@ router_adaptive_virtual_topology:
avt_profile: TRANSIT-AVT-POLICY-VOICE
- application_profile: default
avt_profile: TRANSIT-AVT-POLICY-DEFAULT
- - name: DEFAULT-AVT-POLICY-WITH-CP
+ - name: DEFAULT-POLICY
matches:
- - application_profile: CONTROL-PLANE-APPLICATION-PROFILE
- avt_profile: CONTROL-PLANE-PROFILE
- - application_profile: VIDEO
- avt_profile: DEFAULT-AVT-POLICY-VIDEO
- application_profile: default
- avt_profile: DEFAULT-AVT-POLICY-DEFAULT
+ avt_profile: DEFAULT-POLICY-DEFAULT
router_bfd:
multihop:
interval: 300
@@ -526,6 +581,17 @@ router_path_selection:
- name: LAN_HA
- name: INET
- name: MPLS
+ - name: LB-DEFAULT-AVT-POLICY-VIDEO
+ path_groups:
+ - name: LAN_HA
+ - name: MPLS
+ - name: INET
+ - name: LB-DEFAULT-AVT-POLICY-DEFAULT
+ path_groups:
+ - name: LAN_HA
+ - name: INET
+ - name: MPLS
+ priority: 42
- name: LB-PROD-AVT-POLICY-VOICE
path_groups:
- name: LAN_HA
@@ -546,29 +612,23 @@ router_path_selection:
- name: INET
- name: MPLS
priority: 2
- - name: LB-DEFAULT-AVT-POLICY-VIDEO
+ - name: LB-TRANSIT-AVT-POLICY-VOICE
path_groups:
- name: LAN_HA
- name: MPLS
- name: INET
- - name: LB-DEFAULT-AVT-POLICY-DEFAULT
+ priority: 2
+ - name: LB-TRANSIT-AVT-POLICY-DEFAULT
path_groups:
- name: LAN_HA
- name: INET
- name: MPLS
- priority: 42
- - name: LB-TRANSIT-AVT-POLICY-VOICE
- path_groups:
- - name: LAN_HA
- - name: MPLS
- - name: INET
priority: 2
- - name: LB-TRANSIT-AVT-POLICY-DEFAULT
+ - name: LB-DEFAULT-POLICY-DEFAULT
path_groups:
- name: LAN_HA
- name: INET
- name: MPLS
- priority: 2
router_traffic_engineering:
enabled: true
stun:
@@ -582,15 +642,15 @@ stun:
ip_address: 172.16.0.1
application_traffic_recognition:
application_profiles:
- - name: VOICE
- applications:
- - name: CUSTOM-VOICE-APPLICATION
- name: VIDEO
categories:
- name: VIDEO1
applications:
- name: CUSTOM-APPLICATION-1
- name: skype
+ - name: VOICE
+ applications:
+ - name: CUSTOM-VOICE-APPLICATION
- name: CONTROL-PLANE-APPLICATION-PROFILE
applications:
- name: CONTROL-PLANE-APPLICATION
@@ -654,6 +714,8 @@ vxlan_interface:
vni: 42
- name: TRANSIT
vni: 66
+ - name: ATTRACTED-VRF-FROM-UPLINK
+ vni: 166
metadata:
cv_tags:
device_tags:
diff --git a/ansible_collections/arista/avd/molecule/eos_designs_unit_tests/intended/structured_configs/site-ha-disabled-leaf.yml b/ansible_collections/arista/avd/molecule/eos_designs_unit_tests/intended/structured_configs/site-ha-disabled-leaf.yml
index e396481e781..b95fe408e58 100644
--- a/ansible_collections/arista/avd/molecule/eos_designs_unit_tests/intended/structured_configs/site-ha-disabled-leaf.yml
+++ b/ansible_collections/arista/avd/molecule/eos_designs_unit_tests/intended/structured_configs/site-ha-disabled-leaf.yml
@@ -54,13 +54,8 @@ router_bgp:
- ip_address: 172.17.0.3
peer_group: IPv4-UNDERLAY-PEERS
remote_as: '65000'
-<<<<<<< HEAD
- description: cv-pathfinder-edge-no-common-path-group_Ethernet52.100_vrf_IT
- rd: 192.168.45.4:100
-=======
description: cv-pathfinder-edge-no-common-path-group_Ethernet52.1000_vrf_IT
- rd: 192.168.45.3:1000
->>>>>>> ff441f2cd (Feat(eos_designs): Add wan_vni for WAN VRF)
+ rd: 192.168.45.4:1000
route_targets:
import:
- address_family: evpn
@@ -82,13 +77,8 @@ router_bgp:
- ip_address: 172.17.0.3
peer_group: IPv4-UNDERLAY-PEERS
remote_as: '65000'
-<<<<<<< HEAD
- description: cv-pathfinder-edge-no-common-path-group_Ethernet52.42_vrf_PROD
- rd: 192.168.45.4:42
-=======
description: cv-pathfinder-edge-no-common-path-group_Ethernet52.142_vrf_PROD
- rd: 192.168.45.3:142
->>>>>>> ff441f2cd (Feat(eos_designs): Add wan_vni for WAN VRF)
+ rd: 192.168.45.4:142
route_targets:
import:
- address_family: evpn
@@ -101,7 +91,7 @@ router_bgp:
redistribute_routes:
- source_protocol: connected
- name: ATTRACTED-VRF-FROM-UPLINK
- router_id: 192.168.45.3
+ router_id: 192.168.45.4
neighbors:
- ip_address: 172.17.0.1
peer_group: IPv4-UNDERLAY-PEERS
@@ -111,7 +101,7 @@ router_bgp:
peer_group: IPv4-UNDERLAY-PEERS
remote_as: '65000'
description: cv-pathfinder-edge-no-common-path-group_Ethernet52.666_vrf_ATTRACTED-VRF-FROM-UPLINK
- rd: 192.168.45.3:666
+ rd: 192.168.45.4:666
route_targets:
import:
- address_family: evpn
@@ -157,7 +147,7 @@ router_bgp:
- learned
- id: 666
tenant: TenantC
- rd: 192.168.45.3:1666
+ rd: 192.168.45.4:1666
route_targets:
both:
- 1666:1666
diff --git a/ansible_collections/arista/avd/molecule/eos_designs_unit_tests/intended/structured_configs/site-ha-enabled-leaf1.yml b/ansible_collections/arista/avd/molecule/eos_designs_unit_tests/intended/structured_configs/site-ha-enabled-leaf1.yml
index 7a35d7e79bd..16ebd6286ba 100644
--- a/ansible_collections/arista/avd/molecule/eos_designs_unit_tests/intended/structured_configs/site-ha-enabled-leaf1.yml
+++ b/ansible_collections/arista/avd/molecule/eos_designs_unit_tests/intended/structured_configs/site-ha-enabled-leaf1.yml
@@ -50,21 +50,21 @@ router_bgp:
- ip_address: 172.17.0.1
peer_group: IPv4-UNDERLAY-PEERS
remote_as: '65000'
- description: cv-pathfinder-transit1A_Ethernet52.100_vrf_IT
+ description: cv-pathfinder-transit1A_Ethernet52.1000_vrf_IT
- ip_address: 172.17.0.3
peer_group: IPv4-UNDERLAY-PEERS
remote_as: '65000'
- description: cv-pathfinder-transit1B_Ethernet52.100_vrf_IT
- rd: 192.168.45.1:100
+ description: cv-pathfinder-transit1B_Ethernet52.1000_vrf_IT
+ rd: 192.168.45.1:1000
route_targets:
import:
- address_family: evpn
route_targets:
- - 100:100
+ - 1000:1000
export:
- address_family: evpn
route_targets:
- - 100:100
+ - 1000:1000
redistribute_routes:
- source_protocol: connected
- name: PROD
@@ -73,21 +73,44 @@ router_bgp:
- ip_address: 172.17.0.1
peer_group: IPv4-UNDERLAY-PEERS
remote_as: '65000'
- description: cv-pathfinder-transit1A_Ethernet52.42_vrf_PROD
+ description: cv-pathfinder-transit1A_Ethernet52.142_vrf_PROD
- ip_address: 172.17.0.3
peer_group: IPv4-UNDERLAY-PEERS
remote_as: '65000'
- description: cv-pathfinder-transit1B_Ethernet52.42_vrf_PROD
- rd: 192.168.45.1:42
+ description: cv-pathfinder-transit1B_Ethernet52.142_vrf_PROD
+ rd: 192.168.45.1:142
route_targets:
import:
- address_family: evpn
route_targets:
- - '42:42'
+ - 142:142
export:
- address_family: evpn
route_targets:
- - '42:42'
+ - 142:142
+ redistribute_routes:
+ - source_protocol: connected
+ - name: ATTRACTED-VRF-FROM-UPLINK
+ router_id: 192.168.45.1
+ neighbors:
+ - ip_address: 172.17.0.1
+ peer_group: IPv4-UNDERLAY-PEERS
+ remote_as: '65000'
+ description: cv-pathfinder-transit1A_Ethernet52.666_vrf_ATTRACTED-VRF-FROM-UPLINK
+ - ip_address: 172.17.0.3
+ peer_group: IPv4-UNDERLAY-PEERS
+ remote_as: '65000'
+ description: cv-pathfinder-transit1B_Ethernet52.666_vrf_ATTRACTED-VRF-FROM-UPLINK
+ rd: 192.168.45.1:666
+ route_targets:
+ import:
+ - address_family: evpn
+ route_targets:
+ - 666:666
+ export:
+ - address_family: evpn
+ route_targets:
+ - 666:666
redistribute_routes:
- source_protocol: connected
- name: default
@@ -122,6 +145,14 @@ router_bgp:
- 1101:1101
redistribute_routes:
- learned
+ - id: 666
+ tenant: TenantC
+ rd: 192.168.45.1:1666
+ route_targets:
+ both:
+ - 1666:1666
+ redistribute_routes:
+ - learned
service_routing_protocols_model: multi-agent
ip_routing: true
vlan_internal_order:
@@ -138,6 +169,9 @@ vrfs:
- name: PROD
tenant: TenantA
ip_routing: true
+- name: ATTRACTED-VRF-FROM-UPLINK
+ tenant: TenantC
+ ip_routing: true
management_api_http:
enable_vrfs:
- name: MGMT
@@ -152,26 +186,37 @@ ethernet_interfaces:
mtu: 9214
type: routed
ip_address: 172.17.0.0/31
-- name: Ethernet1.100
+- name: Ethernet1.1000
peer: cv-pathfinder-transit1A
- peer_interface: Ethernet52.100
+ peer_interface: Ethernet52.1000
peer_type: wan_transit
vrf: IT
- description: P2P_LINK_TO_CV-PATHFINDER-TRANSIT1A_Ethernet52.100_vrf_IT
+ description: P2P_LINK_TO_CV-PATHFINDER-TRANSIT1A_Ethernet52.1000_vrf_IT
shutdown: false
type: l3dot1q
- encapsulation_dot1q_vlan: 100
+ encapsulation_dot1q_vlan: 1000
mtu: 9214
ip_address: 172.17.0.0/31
-- name: Ethernet1.42
+- name: Ethernet1.142
peer: cv-pathfinder-transit1A
- peer_interface: Ethernet52.42
+ peer_interface: Ethernet52.142
peer_type: wan_transit
vrf: PROD
- description: P2P_LINK_TO_CV-PATHFINDER-TRANSIT1A_Ethernet52.42_vrf_PROD
+ description: P2P_LINK_TO_CV-PATHFINDER-TRANSIT1A_Ethernet52.142_vrf_PROD
shutdown: false
type: l3dot1q
- encapsulation_dot1q_vlan: 42
+ encapsulation_dot1q_vlan: 142
+ mtu: 9214
+ ip_address: 172.17.0.0/31
+- name: Ethernet1.666
+ peer: cv-pathfinder-transit1A
+ peer_interface: Ethernet52.666
+ peer_type: wan_transit
+ vrf: ATTRACTED-VRF-FROM-UPLINK
+ description: P2P_LINK_TO_CV-PATHFINDER-TRANSIT1A_Ethernet52.666_vrf_ATTRACTED-VRF-FROM-UPLINK
+ shutdown: false
+ type: l3dot1q
+ encapsulation_dot1q_vlan: 666
mtu: 9214
ip_address: 172.17.0.0/31
- name: Ethernet2
@@ -183,26 +228,37 @@ ethernet_interfaces:
mtu: 9214
type: routed
ip_address: 172.17.0.2/31
-- name: Ethernet2.100
+- name: Ethernet2.1000
peer: cv-pathfinder-transit1B
- peer_interface: Ethernet52.100
+ peer_interface: Ethernet52.1000
peer_type: wan_transit
vrf: IT
- description: P2P_LINK_TO_CV-PATHFINDER-TRANSIT1B_Ethernet52.100_vrf_IT
+ description: P2P_LINK_TO_CV-PATHFINDER-TRANSIT1B_Ethernet52.1000_vrf_IT
shutdown: false
type: l3dot1q
- encapsulation_dot1q_vlan: 100
+ encapsulation_dot1q_vlan: 1000
mtu: 9214
ip_address: 172.17.0.2/31
-- name: Ethernet2.42
+- name: Ethernet2.142
peer: cv-pathfinder-transit1B
- peer_interface: Ethernet52.42
+ peer_interface: Ethernet52.142
peer_type: wan_transit
vrf: PROD
- description: P2P_LINK_TO_CV-PATHFINDER-TRANSIT1B_Ethernet52.42_vrf_PROD
+ description: P2P_LINK_TO_CV-PATHFINDER-TRANSIT1B_Ethernet52.142_vrf_PROD
+ shutdown: false
+ type: l3dot1q
+ encapsulation_dot1q_vlan: 142
+ mtu: 9214
+ ip_address: 172.17.0.2/31
+- name: Ethernet2.666
+ peer: cv-pathfinder-transit1B
+ peer_interface: Ethernet52.666
+ peer_type: wan_transit
+ vrf: ATTRACTED-VRF-FROM-UPLINK
+ description: P2P_LINK_TO_CV-PATHFINDER-TRANSIT1B_Ethernet52.666_vrf_ATTRACTED-VRF-FROM-UPLINK
shutdown: false
type: l3dot1q
- encapsulation_dot1q_vlan: 42
+ encapsulation_dot1q_vlan: 666
mtu: 9214
ip_address: 172.17.0.2/31
loopback_interfaces:
@@ -240,6 +296,9 @@ vlans:
- id: 101
name: VLAN101
tenant: TenantA
+- id: 666
+ name: VLAN666
+ tenant: TenantC
ip_igmp_snooping:
globally_enabled: true
ip_virtual_router_mac_address: 00:1c:73:00:00:01
@@ -250,6 +309,12 @@ vlan_interfaces:
shutdown: true
ip_address_virtual: 10.0.100.1/24
vrf: PROD
+- name: Vlan666
+ tenant: TenantC
+ description: VLAN666
+ shutdown: true
+ ip_address_virtual: 10.66.66.66/24
+ vrf: ATTRACTED-VRF-FROM-UPLINK
vxlan_interface:
Vxlan1:
description: site-ha-enabled-leaf1_VTEP
@@ -261,10 +326,14 @@ vxlan_interface:
vni: 1100
- id: 101
vni: 1101
+ - id: 666
+ vni: 1666
vrfs:
- name: default
vni: 1
- name: IT
- vni: 100
+ vni: 1000
- name: PROD
- vni: 42
+ vni: 142
+ - name: ATTRACTED-VRF-FROM-UPLINK
+ vni: 666
diff --git a/ansible_collections/arista/avd/molecule/eos_designs_unit_tests/intended/structured_configs/site-ha-enabled-leaf2A.yml b/ansible_collections/arista/avd/molecule/eos_designs_unit_tests/intended/structured_configs/site-ha-enabled-leaf2A.yml
index b58d641ae53..f47ddbdc813 100644
--- a/ansible_collections/arista/avd/molecule/eos_designs_unit_tests/intended/structured_configs/site-ha-enabled-leaf2A.yml
+++ b/ansible_collections/arista/avd/molecule/eos_designs_unit_tests/intended/structured_configs/site-ha-enabled-leaf2A.yml
@@ -50,21 +50,21 @@ router_bgp:
- ip_address: 172.17.0.5
peer_group: IPv4-UNDERLAY-PEERS
remote_as: '65000'
- description: cv-pathfinder-edge2A_Ethernet52.100_vrf_IT
+ description: cv-pathfinder-edge2A_Ethernet52.1000_vrf_IT
- ip_address: 172.17.0.9
peer_group: IPv4-UNDERLAY-PEERS
remote_as: '65000'
- description: cv-pathfinder-edge2B_Ethernet52.100_vrf_IT
- rd: 192.168.45.2:100
+ description: cv-pathfinder-edge2B_Ethernet52.1000_vrf_IT
+ rd: 192.168.45.2:1000
route_targets:
import:
- address_family: evpn
route_targets:
- - 100:100
+ - 1000:1000
export:
- address_family: evpn
route_targets:
- - 100:100
+ - 1000:1000
redistribute_routes:
- source_protocol: connected
- name: PROD
@@ -73,21 +73,44 @@ router_bgp:
- ip_address: 172.17.0.5
peer_group: IPv4-UNDERLAY-PEERS
remote_as: '65000'
- description: cv-pathfinder-edge2A_Ethernet52.42_vrf_PROD
+ description: cv-pathfinder-edge2A_Ethernet52.142_vrf_PROD
- ip_address: 172.17.0.9
peer_group: IPv4-UNDERLAY-PEERS
remote_as: '65000'
- description: cv-pathfinder-edge2B_Ethernet52.42_vrf_PROD
- rd: 192.168.45.2:42
+ description: cv-pathfinder-edge2B_Ethernet52.142_vrf_PROD
+ rd: 192.168.45.2:142
route_targets:
import:
- address_family: evpn
route_targets:
- - '42:42'
+ - 142:142
export:
- address_family: evpn
route_targets:
- - '42:42'
+ - 142:142
+ redistribute_routes:
+ - source_protocol: connected
+ - name: ATTRACTED-VRF-FROM-UPLINK
+ router_id: 192.168.45.2
+ neighbors:
+ - ip_address: 172.17.0.5
+ peer_group: IPv4-UNDERLAY-PEERS
+ remote_as: '65000'
+ description: cv-pathfinder-edge2A_Ethernet52.666_vrf_ATTRACTED-VRF-FROM-UPLINK
+ - ip_address: 172.17.0.9
+ peer_group: IPv4-UNDERLAY-PEERS
+ remote_as: '65000'
+ description: cv-pathfinder-edge2B_Ethernet52.666_vrf_ATTRACTED-VRF-FROM-UPLINK
+ rd: 192.168.45.2:666
+ route_targets:
+ import:
+ - address_family: evpn
+ route_targets:
+ - 666:666
+ export:
+ - address_family: evpn
+ route_targets:
+ - 666:666
redistribute_routes:
- source_protocol: connected
- name: default
@@ -122,6 +145,14 @@ router_bgp:
- 1101:1101
redistribute_routes:
- learned
+ - id: 666
+ tenant: TenantC
+ rd: 192.168.45.2:1666
+ route_targets:
+ both:
+ - 1666:1666
+ redistribute_routes:
+ - learned
service_routing_protocols_model: multi-agent
ip_routing: true
vlan_internal_order:
@@ -138,6 +169,9 @@ vrfs:
- name: PROD
tenant: TenantA
ip_routing: true
+- name: ATTRACTED-VRF-FROM-UPLINK
+ tenant: TenantC
+ ip_routing: true
management_api_http:
enable_vrfs:
- name: MGMT
@@ -152,26 +186,37 @@ ethernet_interfaces:
mtu: 9214
type: routed
ip_address: 172.17.0.4/31
-- name: Ethernet1.100
+- name: Ethernet1.1000
peer: cv-pathfinder-edge2A
- peer_interface: Ethernet52.100
+ peer_interface: Ethernet52.1000
peer_type: wan_edge
vrf: IT
- description: P2P_LINK_TO_CV-PATHFINDER-EDGE2A_Ethernet52.100_vrf_IT
+ description: P2P_LINK_TO_CV-PATHFINDER-EDGE2A_Ethernet52.1000_vrf_IT
shutdown: false
type: l3dot1q
- encapsulation_dot1q_vlan: 100
+ encapsulation_dot1q_vlan: 1000
mtu: 9214
ip_address: 172.17.0.4/31
-- name: Ethernet1.42
+- name: Ethernet1.142
peer: cv-pathfinder-edge2A
- peer_interface: Ethernet52.42
+ peer_interface: Ethernet52.142
peer_type: wan_edge
vrf: PROD
- description: P2P_LINK_TO_CV-PATHFINDER-EDGE2A_Ethernet52.42_vrf_PROD
+ description: P2P_LINK_TO_CV-PATHFINDER-EDGE2A_Ethernet52.142_vrf_PROD
shutdown: false
type: l3dot1q
- encapsulation_dot1q_vlan: 42
+ encapsulation_dot1q_vlan: 142
+ mtu: 9214
+ ip_address: 172.17.0.4/31
+- name: Ethernet1.666
+ peer: cv-pathfinder-edge2A
+ peer_interface: Ethernet52.666
+ peer_type: wan_edge
+ vrf: ATTRACTED-VRF-FROM-UPLINK
+ description: P2P_LINK_TO_CV-PATHFINDER-EDGE2A_Ethernet52.666_vrf_ATTRACTED-VRF-FROM-UPLINK
+ shutdown: false
+ type: l3dot1q
+ encapsulation_dot1q_vlan: 666
mtu: 9214
ip_address: 172.17.0.4/31
- name: Ethernet2
@@ -183,26 +228,37 @@ ethernet_interfaces:
mtu: 9214
type: routed
ip_address: 172.17.0.8/31
-- name: Ethernet2.100
+- name: Ethernet2.1000
peer: cv-pathfinder-edge2B
- peer_interface: Ethernet52.100
+ peer_interface: Ethernet52.1000
peer_type: wan_edge
vrf: IT
- description: P2P_LINK_TO_CV-PATHFINDER-EDGE2B_Ethernet52.100_vrf_IT
+ description: P2P_LINK_TO_CV-PATHFINDER-EDGE2B_Ethernet52.1000_vrf_IT
shutdown: false
type: l3dot1q
- encapsulation_dot1q_vlan: 100
+ encapsulation_dot1q_vlan: 1000
mtu: 9214
ip_address: 172.17.0.8/31
-- name: Ethernet2.42
+- name: Ethernet2.142
peer: cv-pathfinder-edge2B
- peer_interface: Ethernet52.42
+ peer_interface: Ethernet52.142
peer_type: wan_edge
vrf: PROD
- description: P2P_LINK_TO_CV-PATHFINDER-EDGE2B_Ethernet52.42_vrf_PROD
+ description: P2P_LINK_TO_CV-PATHFINDER-EDGE2B_Ethernet52.142_vrf_PROD
+ shutdown: false
+ type: l3dot1q
+ encapsulation_dot1q_vlan: 142
+ mtu: 9214
+ ip_address: 172.17.0.8/31
+- name: Ethernet2.666
+ peer: cv-pathfinder-edge2B
+ peer_interface: Ethernet52.666
+ peer_type: wan_edge
+ vrf: ATTRACTED-VRF-FROM-UPLINK
+ description: P2P_LINK_TO_CV-PATHFINDER-EDGE2B_Ethernet52.666_vrf_ATTRACTED-VRF-FROM-UPLINK
shutdown: false
type: l3dot1q
- encapsulation_dot1q_vlan: 42
+ encapsulation_dot1q_vlan: 666
mtu: 9214
ip_address: 172.17.0.8/31
loopback_interfaces:
@@ -240,6 +296,9 @@ vlans:
- id: 101
name: VLAN101
tenant: TenantA
+- id: 666
+ name: VLAN666
+ tenant: TenantC
ip_igmp_snooping:
globally_enabled: true
ip_virtual_router_mac_address: 00:1c:73:00:00:01
@@ -250,6 +309,12 @@ vlan_interfaces:
shutdown: true
ip_address_virtual: 10.0.100.1/24
vrf: PROD
+- name: Vlan666
+ tenant: TenantC
+ description: VLAN666
+ shutdown: true
+ ip_address_virtual: 10.66.66.66/24
+ vrf: ATTRACTED-VRF-FROM-UPLINK
vxlan_interface:
Vxlan1:
description: site-ha-enabled-leaf2A_VTEP
@@ -261,10 +326,14 @@ vxlan_interface:
vni: 1100
- id: 101
vni: 1101
+ - id: 666
+ vni: 1666
vrfs:
- name: default
vni: 1
- name: IT
- vni: 100
+ vni: 1000
- name: PROD
- vni: 42
+ vni: 142
+ - name: ATTRACTED-VRF-FROM-UPLINK
+ vni: 666
diff --git a/ansible_collections/arista/avd/molecule/eos_designs_unit_tests/intended/structured_configs/site-ha-enabled-leaf2B.yml b/ansible_collections/arista/avd/molecule/eos_designs_unit_tests/intended/structured_configs/site-ha-enabled-leaf2B.yml
index b9be0d8ac7b..d19d3a8073b 100644
--- a/ansible_collections/arista/avd/molecule/eos_designs_unit_tests/intended/structured_configs/site-ha-enabled-leaf2B.yml
+++ b/ansible_collections/arista/avd/molecule/eos_designs_unit_tests/intended/structured_configs/site-ha-enabled-leaf2B.yml
@@ -50,21 +50,21 @@ router_bgp:
- ip_address: 172.17.0.7
peer_group: IPv4-UNDERLAY-PEERS
remote_as: '65000'
- description: cv-pathfinder-edge2A_Ethernet53.100_vrf_IT
+ description: cv-pathfinder-edge2A_Ethernet53.1000_vrf_IT
- ip_address: 172.17.0.11
peer_group: IPv4-UNDERLAY-PEERS
remote_as: '65000'
- description: cv-pathfinder-edge2B_Ethernet53.100_vrf_IT
- rd: 192.168.45.3:100
+ description: cv-pathfinder-edge2B_Ethernet53.1000_vrf_IT
+ rd: 192.168.45.3:1000
route_targets:
import:
- address_family: evpn
route_targets:
- - 100:100
+ - 1000:1000
export:
- address_family: evpn
route_targets:
- - 100:100
+ - 1000:1000
redistribute_routes:
- source_protocol: connected
- name: PROD
@@ -73,21 +73,44 @@ router_bgp:
- ip_address: 172.17.0.7
peer_group: IPv4-UNDERLAY-PEERS
remote_as: '65000'
- description: cv-pathfinder-edge2A_Ethernet53.42_vrf_PROD
+ description: cv-pathfinder-edge2A_Ethernet53.142_vrf_PROD
- ip_address: 172.17.0.11
peer_group: IPv4-UNDERLAY-PEERS
remote_as: '65000'
- description: cv-pathfinder-edge2B_Ethernet53.42_vrf_PROD
- rd: 192.168.45.3:42
+ description: cv-pathfinder-edge2B_Ethernet53.142_vrf_PROD
+ rd: 192.168.45.3:142
route_targets:
import:
- address_family: evpn
route_targets:
- - '42:42'
+ - 142:142
export:
- address_family: evpn
route_targets:
- - '42:42'
+ - 142:142
+ redistribute_routes:
+ - source_protocol: connected
+ - name: ATTRACTED-VRF-FROM-UPLINK
+ router_id: 192.168.45.3
+ neighbors:
+ - ip_address: 172.17.0.7
+ peer_group: IPv4-UNDERLAY-PEERS
+ remote_as: '65000'
+ description: cv-pathfinder-edge2A_Ethernet53.666_vrf_ATTRACTED-VRF-FROM-UPLINK
+ - ip_address: 172.17.0.11
+ peer_group: IPv4-UNDERLAY-PEERS
+ remote_as: '65000'
+ description: cv-pathfinder-edge2B_Ethernet53.666_vrf_ATTRACTED-VRF-FROM-UPLINK
+ rd: 192.168.45.3:666
+ route_targets:
+ import:
+ - address_family: evpn
+ route_targets:
+ - 666:666
+ export:
+ - address_family: evpn
+ route_targets:
+ - 666:666
redistribute_routes:
- source_protocol: connected
- name: default
@@ -122,6 +145,14 @@ router_bgp:
- 1101:1101
redistribute_routes:
- learned
+ - id: 666
+ tenant: TenantC
+ rd: 192.168.45.3:1666
+ route_targets:
+ both:
+ - 1666:1666
+ redistribute_routes:
+ - learned
service_routing_protocols_model: multi-agent
ip_routing: true
vlan_internal_order:
@@ -138,6 +169,9 @@ vrfs:
- name: PROD
tenant: TenantA
ip_routing: true
+- name: ATTRACTED-VRF-FROM-UPLINK
+ tenant: TenantC
+ ip_routing: true
management_api_http:
enable_vrfs:
- name: MGMT
@@ -152,26 +186,37 @@ ethernet_interfaces:
mtu: 9214
type: routed
ip_address: 172.17.0.6/31
-- name: Ethernet1.100
+- name: Ethernet1.1000
peer: cv-pathfinder-edge2A
- peer_interface: Ethernet53.100
+ peer_interface: Ethernet53.1000
peer_type: wan_edge
vrf: IT
- description: P2P_LINK_TO_CV-PATHFINDER-EDGE2A_Ethernet53.100_vrf_IT
+ description: P2P_LINK_TO_CV-PATHFINDER-EDGE2A_Ethernet53.1000_vrf_IT
shutdown: false
type: l3dot1q
- encapsulation_dot1q_vlan: 100
+ encapsulation_dot1q_vlan: 1000
mtu: 9214
ip_address: 172.17.0.6/31
-- name: Ethernet1.42
+- name: Ethernet1.142
peer: cv-pathfinder-edge2A
- peer_interface: Ethernet53.42
+ peer_interface: Ethernet53.142
peer_type: wan_edge
vrf: PROD
- description: P2P_LINK_TO_CV-PATHFINDER-EDGE2A_Ethernet53.42_vrf_PROD
+ description: P2P_LINK_TO_CV-PATHFINDER-EDGE2A_Ethernet53.142_vrf_PROD
shutdown: false
type: l3dot1q
- encapsulation_dot1q_vlan: 42
+ encapsulation_dot1q_vlan: 142
+ mtu: 9214
+ ip_address: 172.17.0.6/31
+- name: Ethernet1.666
+ peer: cv-pathfinder-edge2A
+ peer_interface: Ethernet53.666
+ peer_type: wan_edge
+ vrf: ATTRACTED-VRF-FROM-UPLINK
+ description: P2P_LINK_TO_CV-PATHFINDER-EDGE2A_Ethernet53.666_vrf_ATTRACTED-VRF-FROM-UPLINK
+ shutdown: false
+ type: l3dot1q
+ encapsulation_dot1q_vlan: 666
mtu: 9214
ip_address: 172.17.0.6/31
- name: Ethernet2
@@ -183,26 +228,37 @@ ethernet_interfaces:
mtu: 9214
type: routed
ip_address: 172.17.0.10/31
-- name: Ethernet2.100
+- name: Ethernet2.1000
peer: cv-pathfinder-edge2B
- peer_interface: Ethernet53.100
+ peer_interface: Ethernet53.1000
peer_type: wan_edge
vrf: IT
- description: P2P_LINK_TO_CV-PATHFINDER-EDGE2B_Ethernet53.100_vrf_IT
+ description: P2P_LINK_TO_CV-PATHFINDER-EDGE2B_Ethernet53.1000_vrf_IT
shutdown: false
type: l3dot1q
- encapsulation_dot1q_vlan: 100
+ encapsulation_dot1q_vlan: 1000
mtu: 9214
ip_address: 172.17.0.10/31
-- name: Ethernet2.42
+- name: Ethernet2.142
peer: cv-pathfinder-edge2B
- peer_interface: Ethernet53.42
+ peer_interface: Ethernet53.142
peer_type: wan_edge
vrf: PROD
- description: P2P_LINK_TO_CV-PATHFINDER-EDGE2B_Ethernet53.42_vrf_PROD
+ description: P2P_LINK_TO_CV-PATHFINDER-EDGE2B_Ethernet53.142_vrf_PROD
+ shutdown: false
+ type: l3dot1q
+ encapsulation_dot1q_vlan: 142
+ mtu: 9214
+ ip_address: 172.17.0.10/31
+- name: Ethernet2.666
+ peer: cv-pathfinder-edge2B
+ peer_interface: Ethernet53.666
+ peer_type: wan_edge
+ vrf: ATTRACTED-VRF-FROM-UPLINK
+ description: P2P_LINK_TO_CV-PATHFINDER-EDGE2B_Ethernet53.666_vrf_ATTRACTED-VRF-FROM-UPLINK
shutdown: false
type: l3dot1q
- encapsulation_dot1q_vlan: 42
+ encapsulation_dot1q_vlan: 666
mtu: 9214
ip_address: 172.17.0.10/31
loopback_interfaces:
@@ -240,6 +296,9 @@ vlans:
- id: 101
name: VLAN101
tenant: TenantA
+- id: 666
+ name: VLAN666
+ tenant: TenantC
ip_igmp_snooping:
globally_enabled: true
ip_virtual_router_mac_address: 00:1c:73:00:00:01
@@ -250,6 +309,12 @@ vlan_interfaces:
shutdown: true
ip_address_virtual: 10.0.100.1/24
vrf: PROD
+- name: Vlan666
+ tenant: TenantC
+ description: VLAN666
+ shutdown: true
+ ip_address_virtual: 10.66.66.66/24
+ vrf: ATTRACTED-VRF-FROM-UPLINK
vxlan_interface:
Vxlan1:
description: site-ha-enabled-leaf2B_VTEP
@@ -261,10 +326,14 @@ vxlan_interface:
vni: 1100
- id: 101
vni: 1101
+ - id: 666
+ vni: 1666
vrfs:
- name: default
vni: 1
- name: IT
- vni: 100
+ vni: 1000
- name: PROD
- vni: 42
+ vni: 142
+ - name: ATTRACTED-VRF-FROM-UPLINK
+ vni: 666
diff --git a/ansible_collections/arista/avd/molecule/eos_designs_unit_tests/inventory/group_vars/AUTOVPN_TESTS.yml b/ansible_collections/arista/avd/molecule/eos_designs_unit_tests/inventory/group_vars/AUTOVPN_TESTS.yml
index 6f07482fdf4..e99200f7d8b 100644
--- a/ansible_collections/arista/avd/molecule/eos_designs_unit_tests/inventory/group_vars/AUTOVPN_TESTS.yml
+++ b/ansible_collections/arista/avd/molecule/eos_designs_unit_tests/inventory/group_vars/AUTOVPN_TESTS.yml
@@ -100,18 +100,14 @@ tenants:
vrfs:
- name: default
vrf_id: 1
- # Testing VRF default without wan_vni set to check it is inserted and
- # does not explode
- name: PROD
vrf_id: 42
- wan_vni: 42
svis:
- id: 100
name: VLAN100
ip_address_virtual: 10.0.100.1/24
- name: IT
vrf_id: 100
- wan_vni: 100
l2vlans:
- id: 101
name: VLAN101
@@ -120,8 +116,10 @@ wan_virtual_topologies:
vrfs:
- name: default
policy: DEFAULT-AVT-POLICY
+ wan_vni: 1
- name: PROD
policy: PROD-AVT-POLICY
+ wan_vni: 42
policies:
- name: PROD-AVT-POLICY
default_virtual_topology:
diff --git a/ansible_collections/arista/avd/molecule/eos_designs_unit_tests/inventory/group_vars/CV_PATHFINDER_TESTS.yml b/ansible_collections/arista/avd/molecule/eos_designs_unit_tests/inventory/group_vars/CV_PATHFINDER_TESTS.yml
index 0bfff5c5bff..da86d9a8eab 100644
--- a/ansible_collections/arista/avd/molecule/eos_designs_unit_tests/inventory/group_vars/CV_PATHFINDER_TESTS.yml
+++ b/ansible_collections/arista/avd/molecule/eos_designs_unit_tests/inventory/group_vars/CV_PATHFINDER_TESTS.yml
@@ -282,7 +282,6 @@ tenants:
vrfs:
- name: default
vrf_id: 1
- wan_vni: 1
# Checking static route on VRF default is redistributed in a route-map
static_routes:
- destination_address_prefix: 66.66.66.0/24
@@ -291,14 +290,12 @@ tenants:
- name: PROD
# Showing that wan_vni and vrf_id can be different. `vrf_id` influences the subinterface id.
vrf_id: 142
- wan_vni: 42
svis:
- id: 100
name: VLAN100
ip_address_virtual: 10.0.100.1/24
- name: IT
vrf_id: 1000
- wan_vni: 100
l2vlans:
- id: 101
name: VLAN101
@@ -306,10 +303,8 @@ tenants:
vrfs:
- name: default
vrf_id: 1
- wan_vni: 1
- name: TRANSIT
vrf_id: 66
- wan_vni: 66
# Test that a VRF with address_families: [] on a WAN router is not configured on Vxlan1 interface nor BGP
- name: NOT-WAN-VRF
vrf_id: 13
@@ -320,7 +315,6 @@ tenants:
# Test adding a VRF on an uplink switch and seeing it configured on the WAN routers
- name: ATTRACTED-VRF-FROM-UPLINK
vrf_id: 666
- wan_vni: 166
svis:
- id: 666
name: VLAN666
@@ -333,14 +327,20 @@ wan_virtual_topologies:
vrfs:
- name: default
policy: DEFAULT-AVT-POLICY
+ wan_vni: 1
- name: PROD
policy: PROD-AVT-POLICY
+ wan_vni: 42
# Testing reusing the same policy as default VRF
- name: IT
policy: DEFAULT-AVT-POLICY
+ wan_vni: 100
# Testing a VRF only on transit and not edge
- name: TRANSIT
policy: TRANSIT-AVT-POLICY
+ wan_vni: 66
+ - name: ATTRACTED-VRF-FROM-UPLINK
+ wan_vni: 166
policies:
- name: PROD-AVT-POLICY
default_virtual_topology:
diff --git a/ansible_collections/arista/avd/molecule/eos_designs_unit_tests/inventory/host_vars/autovpn-edge-no-default-policy.yml b/ansible_collections/arista/avd/molecule/eos_designs_unit_tests/inventory/host_vars/autovpn-edge-no-default-policy.yml
index 11cd0abc476..1d493abc67e 100644
--- a/ansible_collections/arista/avd/molecule/eos_designs_unit_tests/inventory/host_vars/autovpn-edge-no-default-policy.yml
+++ b/ansible_collections/arista/avd/molecule/eos_designs_unit_tests/inventory/host_vars/autovpn-edge-no-default-policy.yml
@@ -73,10 +73,12 @@ tenants:
vrf_id: 1
- name: PROD
vrf_id: 42
- wan_vni: 42
- name: IT
vrf_id: 100
- wan_vni: 100
-# empty
-wan_virtual_topologies: null
+wan_virtual_topologies:
+ vrfs:
+ - name: PROD
+ wan_vni: 42
+ - name: IT
+ wan_vni: 100
diff --git a/ansible_collections/arista/avd/molecule/eos_designs_unit_tests/inventory/host_vars/cv-pathfinder-edge-custom-default-policy.yml b/ansible_collections/arista/avd/molecule/eos_designs_unit_tests/inventory/host_vars/cv-pathfinder-edge-custom-default-policy.yml
new file mode 100644
index 00000000000..7256102f066
--- /dev/null
+++ b/ansible_collections/arista/avd/molecule/eos_designs_unit_tests/inventory/host_vars/cv-pathfinder-edge-custom-default-policy.yml
@@ -0,0 +1,145 @@
+---
+# Testing CV pathfinder edge with no policy in VRF default to make sure the correct
+# default policy is auto generated by AVD
+wan_mode: cv-pathfinder
+# Disabling underlay for tests
+underlay_routing_protocol: none
+
+bgp_as: 65000
+
+cv_pathfinder_regions:
+ - name: AVD_Land_West
+ id: 42
+ description: AVD Region
+ sites:
+ - name: Site1
+ id: 1
+ location: one place
+
+bgp_peer_groups:
+ wan_overlay_peers:
+ password: "htm4AZe9mIQOO1uiMuGgYQ=="
+ # Overwriting TTL
+ ttl_maximum_hops: 42
+ listen_range_prefixes:
+ - 192.168.255.0/24
+
+wan_route_servers:
+ - hostname: cv-pathfinder-pathfinder
+
+wan_ipsec_profiles:
+ control_plane:
+ shared_key: ABCDEF1234567890
+ data_plane:
+ shared_key: ABCDEF1234567890666
+
+default_node_types:
+ - node_type: wan_edge
+ match_hostnames:
+ - "cv-pathfinder-edge.*"
+
+wan_edge:
+ defaults:
+ loopback_ipv4_pool: 192.168.42.0/24
+ vtep_loopback_ipv4_pool: 192.168.255.0/24
+ filter:
+ always_include_vrfs_in_tenants: [TenantA]
+ nodes:
+ - name: cv-pathfinder-edge-custom-default-policy
+ cv_pathfinder_region: AVD_Land_West
+ cv_pathfinder_site: Site1
+ id: 1
+ l3_interfaces:
+ - name: Ethernet1
+ wan_carrier: ATT
+ wan_circuit_id: 666
+ dhcp_accept_default_route: true
+ ip_address: dhcp
+ - name: Ethernet2
+ wan_carrier: Colt
+ wan_circuit_id: 10555
+ ip_address: 172.15.5.5/31
+ - name: Ethernet3
+ wan_carrier: Comcast-5G
+ wan_circuit_id: AF830
+ ip_address: 172.20.20.20/31
+ connected_to_pathfinder: False
+
+wan_path_groups:
+ - name: MPLS
+ ipsec: false
+ # TODO remove one once auto-id is implemented - for now required in schema
+ id: 100
+ - name: INET
+ id: 101
+ - name: LTE
+ id: 102
+ - name: Equinix
+ id: 103
+ - name: Satellite
+ id: 104
+
+wan_carriers:
+ - name: Comcast
+ path_group: INET
+ - name: ATT
+ path_group: INET
+ - name: Bouygues_Telecom
+ path_group: INET
+ - name: SFR
+ path_group: INET
+ - name: Orange
+ path_group: INET
+ - name: Another-ISP
+ path_group: INET
+ - name: Colt
+ path_group: MPLS
+ - name: ATT-MPLS
+ path_group: MPLS
+ - name: Comcast-5G
+ path_group: LTE
+ - name: Inmrasat
+ path_group: Satellite
+
+tenants:
+ - name: TenantA
+ vrfs:
+ - name: default
+ vrf_id: 1
+ - name: PROD
+ vrf_id: 42
+ - name: IT
+ vrf_id: 100
+
+wan_virtual_topologies:
+ vrfs:
+ # No policy for default or PROD, going to use DEFAULT-POLICY
+ # overwrite DEFAULT-POLICY below
+ - name: default
+ wan_vni: 1
+ - name: PROD
+ wan_vni: 42
+ policies:
+ # Name of the DEFAULT-POLICY being overwritten
+ - name: DEFAULT-POLICY
+ default_virtual_topology:
+ path_groups:
+ - names: [INET]
+ - names: [LTE]
+ preference: 42
+ application_virtual_topologies:
+ - application_profile: VIDEO
+ path_groups:
+ - names: [MPLS, INET]
+ preference: preferred
+ id: 3
+
+application_classification:
+ application_profiles:
+ - name: VIDEO
+ # Testing categories filtering
+ applications:
+ # Testing applications in application-profiles filtering
+ - name: CUSTOM-APPLICATION-1
+ # Builtin application that should not raise
+ - name: skype
diff --git a/ansible_collections/arista/avd/molecule/eos_designs_unit_tests/inventory/host_vars/cv-pathfinder-edge-no-default-policy.yml b/ansible_collections/arista/avd/molecule/eos_designs_unit_tests/inventory/host_vars/cv-pathfinder-edge-no-default-policy.yml
index e687bf965ec..d63909e999d 100644
--- a/ansible_collections/arista/avd/molecule/eos_designs_unit_tests/inventory/host_vars/cv-pathfinder-edge-no-default-policy.yml
+++ b/ansible_collections/arista/avd/molecule/eos_designs_unit_tests/inventory/host_vars/cv-pathfinder-edge-no-default-policy.yml
@@ -116,9 +116,12 @@ tenants:
vrf_id: 1
- name: PROD
vrf_id: 42
- wan_vni: 42
- name: IT
vrf_id: 100
- wan_vni: 100
-wan_virtual_topologies: null
+wan_virtual_topologies:
+ vrfs:
+ - name: PROD
+ wan_vni: 42
+ - name: IT
+ wan_vni: 100
diff --git a/ansible_collections/arista/avd/molecule/eos_designs_unit_tests/inventory/hosts.yml b/ansible_collections/arista/avd/molecule/eos_designs_unit_tests/inventory/hosts.yml
index 66f65060948..003e35e604b 100644
--- a/ansible_collections/arista/avd/molecule/eos_designs_unit_tests/inventory/hosts.yml
+++ b/ansible_collections/arista/avd/molecule/eos_designs_unit_tests/inventory/hosts.yml
@@ -319,6 +319,7 @@ all:
hosts:
autovpn-edge-no-default-policy:
cv-pathfinder-edge-no-default-policy:
+ cv-pathfinder-edge-custom-default-policy:
UPLINK_P2P_VRFS_TESTS:
hosts:
UPLINK_P2P_VRFS_TESTS_SPINE1:
diff --git a/ansible_collections/arista/avd/roles/eos_designs/docs/tables/network-services-vrfs-settings.md b/ansible_collections/arista/avd/roles/eos_designs/docs/tables/network-services-vrfs-settings.md
index 1e33a32bbb1..a7fc699e0b9 100644
--- a/ansible_collections/arista/avd/roles/eos_designs/docs/tables/network-services-vrfs-settings.md
+++ b/ansible_collections/arista/avd/roles/eos_designs/docs/tables/network-services-vrfs-settings.md
@@ -17,7 +17,6 @@
| [ - <str>](## ".[].vrfs.[].address_families.[]") | String | | | Valid Values:
- evpn
- vpn-ipv4
- vpn-ipv6
| |
| [ description](## ".[].vrfs.[].description") | String | | | | VRF description. |
| [ vrf_vni](## ".[].vrfs.[].vrf_vni") | Integer | | | Min: 1
Max: 16777215 | Required if "vrf_id" is not set.
The VRF VNI range is not limited, but if vrf_id is not set, "vrf_vni" is used for calculating MLAG iBGP peering vlan id.
"vrf_vni" may also be used for VRF RD/RT ID. See "overlay_rd_type" and "overlay_rt_type" for details.
See "mlag_ibgp_peering_vrfs.base_vlan" for details.
If vrf_vni > 10000 make sure to adjust "mac_vrf_vni_base" accordingly to avoid overlap.
|
- | [ wan_vni](## ".[].vrfs.[].wan_vni") | Integer | | | Min: 1
Max: 255 | Required for VRFs carried over AutoVPN or CV Pathfinder WAN.
A VRF can have a different VNI in the Datacenters and in the WAN.
Note that if no VRF default is configured for WAN, AVD will automatically inject the VRF default with
`wan_vni` set to `1`.
In addition either `vrf_id` or `vrf_vni` must be set to enforce consistant route-targets across domains.
|
| [ vrf_id](## ".[].vrfs.[].vrf_id") | Integer | | | | Required if "vrf_vni" is not set.
"vrf_id" is used as default value for "vrf_vni" and "ospf.process_id" unless those are set.
"vrf_id" may also be used for VRF RD/RT ID. See "overlay_rd_type" and "overlay_rt_type" for details.
"vrf_id" is preferred over "vrf_vni" for MLAG iBGP peering vlan, see "mlag_ibgp_peering_vrfs.base_vlan" for details.
|
| [ rd_override](## ".[].vrfs.[].rd_override") | String | | | | By default, the VRF RD will be derived from the pattern defined in `overlay_rd_type`.
The rd_override allows us to override this value and statically define it.
rd_override supports two formats:
- A single number will be used in the RD assigned number subfield (second part of the RD).
- A full RD string with colon seperator which will override the full RD.
|
| [ rt_override](## ".[].vrfs.[].rt_override") | String | | | | By default, the VRF RT will be derived from the pattern defined in `overlay_rt_type`.
The rt_override allows us to override this value and statically define it.
rt_override supports two formats:
- A single number will be used in the RT assigned number subfield (second part of the RT).
- A full RT string with colon seperator which will override the full RT.
|
@@ -116,14 +115,6 @@
# If vrf_vni > 10000 make sure to adjust "mac_vrf_vni_base" accordingly to avoid overlap.
vrf_vni:
- # Required for VRFs carried over AutoVPN or CV Pathfinder WAN.
-
- # A VRF can have a different VNI in the Datacenters and in the WAN.
- # Note that if no VRF default is configured for WAN, AVD will automatically inject the VRF default with
- # `wan_vni` set to `1`.
- # In addition either `vrf_id` or `vrf_vni` must be set to enforce consistant route-targets across domains.
- wan_vni:
-
# Required if "vrf_vni" is not set.
# "vrf_id" is used as default value for "vrf_vni" and "ospf.process_id" unless those are set.
# "vrf_id" may also be used for VRF RD/RT ID. See "overlay_rd_type" and "overlay_rt_type" for details.
diff --git a/ansible_collections/arista/avd/roles/eos_designs/docs/tables/wan-virtual-topologies.md b/ansible_collections/arista/avd/roles/eos_designs/docs/tables/wan-virtual-topologies.md
index abc5a6b4b1d..a2eaed817c2 100644
--- a/ansible_collections/arista/avd/roles/eos_designs/docs/tables/wan-virtual-topologies.md
+++ b/ansible_collections/arista/avd/roles/eos_designs/docs/tables/wan-virtual-topologies.md
@@ -10,7 +10,8 @@
| [wan_virtual_topologies](## "wan_virtual_topologies") | Dictionary | | | | PREVIEW: WAN Preview
Configure Virtual Topologies for CV Pathfinder and AutoVPN.
Auto create a control plane profile/policy/application and enforce it being first in the default VRF. |
| [ vrfs](## "wan_virtual_topologies.vrfs") | List, items: Dictionary | | | | Map a VRF that exists in network_services to an AVT policy.
TODO: missing default VRF behavior |
| [ - name](## "wan_virtual_topologies.vrfs.[].name") | String | Required, Unique | | | VRF name. |
- | [ policy](## "wan_virtual_topologies.vrfs.[].policy") | String | | | | Name of the AVT policy to apply to this VRF. |
+ | [ policy](## "wan_virtual_topologies.vrfs.[].policy") | String | | `DEFAULT-POLICY` | | Name of the policy to apply to this VRF.
It is possible to overwrite the default policy for all VRFs using it
by redefining it in the `wan_virtual_topologies.policies` list using the
default name `DEFAULT-POLICY`. |
+ | [ wan_vni](## "wan_virtual_topologies.vrfs.[].wan_vni") | Integer | Required | | Min: 1
Max: 255 | Required for VRFs carried over AutoVPN or CV Pathfinder WAN.
A VRF can have a different VNI in the Datacenters and in the WAN.
Note that if no VRF default is configured for WAN, AVD will automatically inject the VRF default with
`wan_vni` set to `1`.
In addition either `vrf_id` or `vrf_vni` must be set to enforce consistant route-targets across domains.
|
| [ control_plane_virtual_topology](## "wan_virtual_topologies.control_plane_virtual_topology") | Dictionary | | | | Always injected into the default VRF policy as the first entry.
By default, if no path-groups are specified, all locally available path-groups
are used in the generated load-balance policy.
ID is hardcoded to 254 for the AVT profile in CV Pathfinder mode. |
| [ name](## "wan_virtual_topologies.control_plane_virtual_topology.name") | String | | | | Optional name, if not set `CONTROL-PLANE-PROFILE` is used. |
| [ traffic_class](## "wan_virtual_topologies.control_plane_virtual_topology.traffic_class") | Integer | | | Min: 0
Max: 7 | Set traffic-class for matched traffic. |
@@ -70,8 +71,19 @@
# VRF name.
- name:
- # Name of the AVT policy to apply to this VRF.
- policy:
+ # Name of the policy to apply to this VRF.
+ # It is possible to overwrite the default policy for all VRFs using it
+ # by redefining it in the `wan_virtual_topologies.policies` list using the
+ # default name `DEFAULT-POLICY`.
+ policy:
+
+ # Required for VRFs carried over AutoVPN or CV Pathfinder WAN.
+
+ # A VRF can have a different VNI in the Datacenters and in the WAN.
+ # Note that if no VRF default is configured for WAN, AVD will automatically inject the VRF default with
+ # `wan_vni` set to `1`.
+ # In addition either `vrf_id` or `vrf_vni` must be set to enforce consistant route-targets across domains.
+ wan_vni:
# Always injected into the default VRF policy as the first entry.
diff --git a/ansible_collections/arista/avd/roles/eos_designs/python_modules/network_services/router_adaptive_virtual_topology.py b/ansible_collections/arista/avd/roles/eos_designs/python_modules/network_services/router_adaptive_virtual_topology.py
index af825f90d8c..3af8ca258b9 100644
--- a/ansible_collections/arista/avd/roles/eos_designs/python_modules/network_services/router_adaptive_virtual_topology.py
+++ b/ansible_collections/arista/avd/roles/eos_designs/python_modules/network_services/router_adaptive_virtual_topology.py
@@ -41,17 +41,15 @@ def _cv_pathfinder_wan_vrfs(self) -> list:
wan_vrfs = []
for vrf in self._filtered_wan_vrfs:
- wan_vrf = vrf.copy()
+ wan_vrf = {"name": vrf["name"], "policy": vrf["policy"]}
# Need to allocate an ID for each profile in the policy, for now picked up from the input.
policy = get_item(
self._augmented_cv_pathfinder_policies,
"name",
- wan_vrf[self._wan_policy_key],
+ wan_vrf["policy"],
required=True,
- custom_error_msg=(
- f"The policy {wan_vrf[self._wan_policy_key]} used in vrf {wan_vrf['name']} is not configured under 'wan_virtual_topologies.policies'."
- ),
+ custom_error_msg=(f"The policy {wan_vrf['policy']} used in vrf {wan_vrf['name']} is not configured under 'wan_virtual_topologies.policies'."),
)
for match in policy.get("matches", []):
@@ -70,8 +68,6 @@ def _cv_pathfinder_wan_vrfs(self) -> list:
def _augmented_cv_pathfinder_policies(self) -> list:
"""
Return a list of augmented CV_Pathfinder Policies with an `_id` key to be used when rendering VRFs.
-
- Insert the policy for default VRF using {name}-WITH-CP
"""
if not self.shared_utils.cv_pathfinder_role:
return []
@@ -87,8 +83,6 @@ def _augmented_cv_pathfinder_policies(self) -> list:
}
if get(avt_policy, "is_default", default=False):
- # Update policy name
- cv_pathfinder_policy["name"] = f"{cv_pathfinder_policy['name']}-WITH-CP"
cv_pathfinder_policy["matches"].append(
{
"application_profile": self._wan_control_plane_application_profile,
@@ -98,6 +92,8 @@ def _augmented_cv_pathfinder_policies(self) -> list:
"_id": 254,
}
)
+ # Eurk
+ avt_policy['name'] = avt_policy['original_name']
for application_virtual_topology in get(avt_policy, "application_virtual_topologies", []):
application_profile = get(application_virtual_topology, "application_profile", required=True)
diff --git a/ansible_collections/arista/avd/roles/eos_designs/python_modules/network_services/router_path_selection.py b/ansible_collections/arista/avd/roles/eos_designs/python_modules/network_services/router_path_selection.py
index c6443c9741e..b7402d2350e 100644
--- a/ansible_collections/arista/avd/roles/eos_designs/python_modules/network_services/router_path_selection.py
+++ b/ansible_collections/arista/avd/roles/eos_designs/python_modules/network_services/router_path_selection.py
@@ -30,16 +30,17 @@ def router_path_selection(self) -> dict | None:
"load_balance_policies": self._wan_load_balance_policies,
}
- # When running CV Pathfinder, only load balance policies
- if self.shared_utils.cv_pathfinder_role:
- return strip_empties_from_dict(router_path_selection)
-
- router_path_selection.update(
- {
- "policies": self._autovpn_policies,
- "vrfs": self._filtered_wan_vrfs,
- }
- )
+ # When running CV Pathfinder, only load balance policies are configured
+ # for AutoVPN, need also vrfs and policies.
+ if self.shared_utils.wan_mode == "autovpn":
+ vrfs = [{"name": vrf["name"], "path_selection_policy": vrf["policy"]} for vrf in self._filtered_wan_vrfs]
+
+ router_path_selection.update(
+ {
+ "policies": self._autovpn_policies,
+ "vrfs": vrfs,
+ }
+ )
return strip_empties_from_dict(router_path_selection)
@@ -60,8 +61,6 @@ def _autovpn_policies(self) -> list:
}
if get(policy, "is_default", default=False):
- # Update policy name
- autovpn_policy["name"] = f"{autovpn_policy['name']}-WITH-CP"
autovpn_policy.setdefault("rules", []).append(
{
"id": 10,
@@ -70,6 +69,8 @@ def _autovpn_policies(self) -> list:
}
)
rule_id_offset = 1
+ # Eurk
+ policy['name'] = policy['original_name']
for rule_id, application_virtual_topology in enumerate(get(policy, "application_virtual_topologies", []), start=1):
name = get(application_virtual_topology, "name", default=f"{policy['name']}-{application_virtual_topology['application_profile']}")
diff --git a/ansible_collections/arista/avd/roles/eos_designs/python_modules/network_services/utils.py b/ansible_collections/arista/avd/roles/eos_designs/python_modules/network_services/utils.py
index 3cfab23e4bc..97a1b1c9433 100644
--- a/ansible_collections/arista/avd/roles/eos_designs/python_modules/network_services/utils.py
+++ b/ansible_collections/arista/avd/roles/eos_designs/python_modules/network_services/utils.py
@@ -205,13 +205,6 @@ def _wan_control_plane_application_profile(self) -> str:
"""
return "CONTROL-PLANE-APPLICATION-PROFILE"
- @cached_property
- def _wan_policy_key(self) -> str:
- """
- The key for policies is different for AutoVPN and CV Pathfinder
- """
- return "policy" if self.shared_utils.wan_mode == "cv-pathfinder" else "path_selection_policy"
-
def _generate_wan_load_balance_policy(self, name: str, input_dict: dict, context_path: str) -> dict:
"""
Generate and return a router path-selection load-balance policy. If HA is enabled, inject the HA path-group with priority 1.
@@ -306,15 +299,21 @@ def _wan_load_balance_policies(self) -> list:
default={"path_groups": [{"names": self._local_path_groups_connected_to_pathfinder}]},
)
- wan_load_balance_policies = [
- self._generate_wan_load_balance_policy(f"LB-{self._wan_control_plane_profile}", control_plane_virtual_topology, self._default_vrf_policy["name"])
- ]
+ wan_load_balance_policies = []
+
for policy in self._filtered_wan_policies:
+ policy_name = policy["name"]
+ if get(policy, "is_default", default=False):
+ # for the default policy, need to render the control_plane_virtual_topology
+ wan_load_balance_policies.append(
+ self._generate_wan_load_balance_policy(f"LB-{self._wan_control_plane_profile}", control_plane_virtual_topology, policy["original_name"])
+ )
+ policy_name = policy["original_name"]
for application_virtual_topology in get(policy, "application_virtual_topologies", []):
# TODO add internet exit once supported
- name = get(application_virtual_topology, "name", default=f"{policy['name']}-{application_virtual_topology['application_profile']}")
+ name = get(application_virtual_topology, "name", default=f"{policy_name}-{application_virtual_topology['application_profile']}")
context_path = (
- f"wan_virtual_topologies.policies[{policy['name']}].application_virtual_topologies[{application_virtual_topology['application_profile']}]"
+ f"wan_virtual_topologies.policies[{policy_name}].application_virtual_topologies[{application_virtual_topology['application_profile']}]"
)
append_if_not_duplicate(
list_of_dicts=wan_load_balance_policies,
@@ -325,11 +324,11 @@ def _wan_load_balance_policies(self) -> list:
)
default_virtual_topology = get(
- policy, "default_virtual_topology", required=True, org_key=f"wan_virtual_topologies.policies[{policy['name']}].default_virtual_toplogy"
+ policy, "default_virtual_topology", required=True, org_key=f"wan_virtual_topologies.policies[{policy_name}].default_virtual_toplogy"
)
if not get(default_virtual_topology, "drop_unmatched", default=False):
- name = get(default_virtual_topology, "name", default=f"{policy['name']}-DEFAULT")
- context_path = f"wan_virtual_topologies.policies[{policy['name']}].default_virtual_topology"
+ name = get(default_virtual_topology, "name", default=f"{policy_name}-DEFAULT")
+ context_path = f"wan_virtual_topologies.policies[{policy_name}].default_virtual_topology"
# Verify that path_groups are set or raise
get(
@@ -356,13 +355,15 @@ def _filtered_wan_vrfs(self) -> list:
"""
wan_vrfs = []
- for avt_vrf in get(self._hostvars, "wan_virtual_topologies.vrfs", []):
- vrf_name = avt_vrf["name"]
+ for vrf in get(self._hostvars, "wan_virtual_topologies.vrfs", []):
+ vrf_name = vrf["name"]
if vrf_name in self.shared_utils.vrfs or self.shared_utils.is_wan_server:
- # TODO check that the policy exists or raise
wan_vrf = {
"name": vrf_name,
- self._wan_policy_key: get(avt_vrf, "policy", required=True),
+ "policy": get(vrf, "policy", default="DEFAULT-POLICY"),
+ "wan_vni": get(
+ vrf, "wan_vni", required=True, org_key=f"Required `wan_vni` is missing for VRF {vrf_name} under `wan_virtual_topologies.vrfs`."
+ ),
}
wan_vrfs.append(wan_vrf)
@@ -372,68 +373,67 @@ def _filtered_wan_vrfs(self) -> list:
wan_vrfs.append(
{
"name": "default",
- self._wan_policy_key: f"{self._default_vrf_policy['name']}-WITH-CP",
+ "policy": f"{self._default_avt_policy['name']}-WITH-CP",
+ "wan_vni": 1,
+ "original_policy": self._default_avt_policy["name"],
}
)
else:
- vrf_default[self._wan_policy_key] = f"{vrf_default[self._wan_policy_key]}-WITH-CP"
+ vrf_default["original_policy"] = vrf_default["policy"]
+ vrf_default["policy"] = f"{vrf_default['policy']}-WITH-CP"
return wan_vrfs
+ @cached_property
+ def _wan_policies(self) -> list:
+ """ """
+ policies = get(self._hostvars, "wan_virtual_topologies.policies", default=[])
+ # If not overwritten, inject the DEFAULT-POLICY in case it is required for one of the VRFs
+ if get_item(policies, "name", "DEFAULT-POLICY") is None:
+ policies.append(self._default_avt_policy)
+
+ return policies
+
@cached_property
def _filtered_wan_policies(self) -> list:
"""
Loop through all the VRFs defined under `wan_virtual_topologies.vrfs` and returns a list of policies to configure on this device.
-
inject the default_vrf_policy
"""
- policies = get(self._hostvars, "wan_virtual_topologies.policies", default=[])
- # Need to handle VRF default differently
- filtered_policies = [
- get_item(
- policies,
+ # to track the names already injected
+ filtered_policy_names = []
+ filtered_policies = []
+ for vrf in self._filtered_wan_vrfs:
+ # Need to handle VRF default differently and lookup for the original policy
+ lookup_name = get(vrf, "original_policy", default=vrf["policy"])
+ vrf_policy = get_item(
+ self._wan_policies,
"name",
- wan_vrf[self._wan_policy_key],
+ lookup_name,
required=True,
custom_error_msg=(
- f"The policy {wan_vrf[self._wan_policy_key]} applied to vrf {wan_vrf['name']} under `wan_virtual_topologies.vrfs` is not "
+ f"The policy {lookup_name} applied to vrf {vrf['name']} under `wan_virtual_topologies.vrfs` is not "
"defined under `wan_virtual_topologies.policies`."
),
)
- for wan_vrf in self._filtered_wan_vrfs
- if wan_vrf["name"] != "default"
- ]
- filtered_policies.append(self._default_vrf_policy)
+
+ if vrf["name"] == "default":
+ vrf_policy = vrf_policy.copy()
+ vrf_policy["is_default"] = True
+ vrf_policy["original_name"] = lookup_name
+ vrf_policy["name"] = f"{vrf_policy['name']}-WITH-CP"
+
+ if vrf_policy["name"] not in filtered_policy_names:
+ filtered_policy_names.append(vrf_policy["name"])
+ filtered_policies.append(vrf_policy)
+
return filtered_policies
@cached_property
- def _default_vrf_policy(self) -> dict:
+ def _default_avt_policy(self) -> dict:
"""
- Retrieves the name of the policy used for the default VRF and appending -WITH-CP to its name.
-
- If not policy is defined for VRF default under 'wan_virtual_topologies.vrfs', use a default policy named DEFAULT-AVT-POLICY-WITH-CP where all
- traffic is matched in the default category and distributed amongst all path-groups.
+ If no policy is defined for a VRF under 'wan_virtual_topologies.vrfs', a default policy named DEFAULT-POLICY is used
+ where all traffic is matched in the default category and distributed amongst all path-groups.
"""
- vrfs = get(self._hostvars, "wan_virtual_topologies.vrfs", [])
- default_vrf = get_item(vrfs, "name", "default", default={})
-
- if (vrf_default_policy := get(default_vrf, "policy")) is not None:
- policies = get(self._hostvars, "wan_virtual_topologies.policies", default=[])
- # copy is safe here as we change only the name
- default_policy = get_item(
- policies,
- "name",
- vrf_default_policy,
- required=True,
- custom_error_msg=(
- f"The policy {vrf_default_policy} defined for vrf default under 'wan_virtual_topologies.vrfs' "
- "is not defined under 'wan_virtual_topologies.policies'."
- ),
- ).copy()
- else:
- wan_local_path_group_names = [path_group["name"] for path_group in self.shared_utils.wan_local_path_groups]
- default_policy = {"name": "DEFAULT-AVT-POLICY", "default_virtual_topology": {"path_groups": [{"names": wan_local_path_group_names}]}}
-
- default_policy["is_default"] = True
-
- return default_policy
+ wan_local_path_group_names = [path_group["name"] for path_group in self.shared_utils.wan_local_path_groups]
+ return {"name": "DEFAULT-POLICY", "default_virtual_topology": {"path_groups": [{"names": wan_local_path_group_names}]}}
diff --git a/ansible_collections/arista/avd/roles/eos_designs/python_modules/network_services/vxlan_interface.py b/ansible_collections/arista/avd/roles/eos_designs/python_modules/network_services/vxlan_interface.py
index 5e142ac4cec..7c1d5760673 100644
--- a/ansible_collections/arista/avd/roles/eos_designs/python_modules/network_services/vxlan_interface.py
+++ b/ansible_collections/arista/avd/roles/eos_designs/python_modules/network_services/vxlan_interface.py
@@ -9,7 +9,7 @@
from ansible_collections.arista.avd.plugins.filter.natural_sort import natural_sort
from ansible_collections.arista.avd.plugins.filter.range_expand import range_expand
from ansible_collections.arista.avd.plugins.plugin_utils.errors import AristaAvdError, AristaAvdMissingVariableError
-from ansible_collections.arista.avd.plugins.plugin_utils.utils import append_if_not_duplicate, default, get, unique
+from ansible_collections.arista.avd.plugins.plugin_utils.utils import append_if_not_duplicate, default, get, unique, get_item
from .utils import UtilsMixin
@@ -100,6 +100,16 @@ def vxlan_interface(self) -> dict | None:
}
}
+ def _get_wan_vrf(self, name: str) -> dict | None:
+ """
+ Retrieve the VRF object from `wan_virtual_topologies.vrfs` list.
+ Return None if not found
+ """
+ if not self.shared_utils.is_wan_router:
+ return None
+ wan_vrfs = get(self._hostvars, "wan_virtual_topologies.vrfs", default=[])
+ return get_item(wan_vrfs, "name", name)
+
def _get_vxlan_interface_config_for_vrf(self, vrf: dict, tenant: dict, vrfs: list, vlans: list, vnis: list) -> None:
"""
In place updates of the vlans, vnis and vrfs list
@@ -132,9 +142,9 @@ def _get_vxlan_interface_config_for_vrf(self, vrf: dict, tenant: dict, vrfs: lis
if "evpn" not in vrf.get("address_families", ["evpn"]):
return
- if self.shared_utils.is_wan_router:
+ if (wan_vrf := self._get_wan_vrf(vrf_name)) is not None:
vni = get(
- vrf,
+ wan_vrf,
"wan_vni",
required=True,
# TODO when adding VRF filter, change the error message
@@ -144,7 +154,7 @@ def _get_vxlan_interface_config_for_vrf(self, vrf: dict, tenant: dict, vrfs: lis
# "If not intended on the WAN router, use the VRF filter"
# )
org_key=(
- f"VRF {vrf_name} in tenant {tenant['name']} does not have a `wan_vni` defined. "
+ f"VRF {vrf_name} in tenant {tenant['name']} does not have a `wan_vni` defined under `wan_virtual_topologies.vrfs`. "
"If this VRF was not intended to be extended over WAN, set 'address_families: []' under the VRF definition."
),
)
diff --git a/ansible_collections/arista/avd/roles/eos_designs/schemas/eos_designs.jsonschema.json b/ansible_collections/arista/avd/roles/eos_designs/schemas/eos_designs.jsonschema.json
index 1375d737b79..44165a4802d 100644
--- a/ansible_collections/arista/avd/roles/eos_designs/schemas/eos_designs.jsonschema.json
+++ b/ansible_collections/arista/avd/roles/eos_designs/schemas/eos_designs.jsonschema.json
@@ -24894,17 +24894,26 @@
},
"policy": {
"type": "string",
- "description": "Name of the AVT policy to apply to this VRF.",
+ "description": "Name of the policy to apply to this VRF.\nIt is possible to overwrite the default policy for all VRFs using it\nby redefining it in the `wan_virtual_topologies.policies` list using the\ndefault name `DEFAULT-POLICY`.",
+ "default": "DEFAULT-POLICY",
"title": "Policy"
+ },
+ "wan_vni": {
+ "type": "integer",
+ "minimum": 1,
+ "maximum": 255,
+ "description": "Required for VRFs carried over AutoVPN or CV Pathfinder WAN.\n\nA VRF can have a different VNI in the Datacenters and in the WAN.\nNote that if no VRF default is configured for WAN, AVD will automatically inject the VRF default with\n`wan_vni` set to `1`.\nIn addition either `vrf_id` or `vrf_vni` must be set to enforce consistant route-targets across domains.\n",
+ "title": "Wan Vni"
}
},
+ "required": [
+ "wan_vni",
+ "name"
+ ],
"additionalProperties": false,
"patternProperties": {
"^_.+$": {}
- },
- "required": [
- "name"
- ]
+ }
},
"title": "VRFs"
},
diff --git a/ansible_collections/arista/avd/roles/eos_designs/schemas/eos_designs.schema.yml b/ansible_collections/arista/avd/roles/eos_designs/schemas/eos_designs.schema.yml
index 5915f193e70..8dee514aa55 100644
--- a/ansible_collections/arista/avd/roles/eos_designs/schemas/eos_designs.schema.yml
+++ b/ansible_collections/arista/avd/roles/eos_designs/schemas/eos_designs.schema.yml
@@ -3716,7 +3716,38 @@ keys:
description: VRF name.
policy:
type: str
- description: Name of the AVT policy to apply to this VRF.
+ description: 'Name of the policy to apply to this VRF.
+
+ It is possible to overwrite the default policy for all VRFs using
+ it
+
+ by redefining it in the `wan_virtual_topologies.policies` list using
+ the
+
+ default name `DEFAULT-POLICY`.'
+ default: DEFAULT-POLICY
+ wan_vni:
+ type: int
+ convert_types:
+ - str
+ min: 1
+ max: 255
+ required: true
+ description: 'Required for VRFs carried over AutoVPN or CV Pathfinder
+ WAN.
+
+
+ A VRF can have a different VNI in the Datacenters and in the WAN.
+
+ Note that if no VRF default is configured for WAN, AVD will automatically
+ inject the VRF default with
+
+ `wan_vni` set to `1`.
+
+ In addition either `vrf_id` or `vrf_vni` must be set to enforce consistant
+ route-targets across domains.
+
+ '
control_plane_virtual_topology:
type: dict
description: 'Always injected into the default VRF policy as the first entry.
@@ -4982,27 +5013,6 @@ $defs:
If vrf_vni > 10000 make sure to adjust "mac_vrf_vni_base" accordingly
to avoid overlap.
- '
- wan_vni:
- type: int
- convert_types:
- - str
- min: 1
- max: 255
- description: 'Required for VRFs carried over AutoVPN or CV Pathfinder
- WAN.
-
-
- A VRF can have a different VNI in the Datacenters and in the WAN.
-
- Note that if no VRF default is configured for WAN, AVD will automatically
- inject the VRF default with
-
- `wan_vni` set to `1`.
-
- In addition either `vrf_id` or `vrf_vni` must be set to enforce
- consistant route-targets across domains.
-
'
vrf_id:
type: int
diff --git a/ansible_collections/arista/avd/roles/eos_designs/schemas/schema_fragments/defs_network_services.schema.yml b/ansible_collections/arista/avd/roles/eos_designs/schemas/schema_fragments/defs_network_services.schema.yml
index e0e0f67740e..ddd87f6be5e 100644
--- a/ansible_collections/arista/avd/roles/eos_designs/schemas/schema_fragments/defs_network_services.schema.yml
+++ b/ansible_collections/arista/avd/roles/eos_designs/schemas/schema_fragments/defs_network_services.schema.yml
@@ -280,19 +280,6 @@ $defs:
"vrf_vni" may also be used for VRF RD/RT ID. See "overlay_rd_type" and "overlay_rt_type" for details.
See "mlag_ibgp_peering_vrfs.base_vlan" for details.
If vrf_vni > 10000 make sure to adjust "mac_vrf_vni_base" accordingly to avoid overlap.
- wan_vni:
- type: int
- convert_types:
- - str
- min: 1
- max: 255
- description: |
- Required for VRFs carried over AutoVPN or CV Pathfinder WAN.
-
- A VRF can have a different VNI in the Datacenters and in the WAN.
- Note that if no VRF default is configured for WAN, AVD will automatically inject the VRF default with
- `wan_vni` set to `1`.
- In addition either `vrf_id` or `vrf_vni` must be set to enforce consistant route-targets across domains.
vrf_id:
type: int
convert_types:
diff --git a/ansible_collections/arista/avd/roles/eos_designs/schemas/schema_fragments/wan_virtual_topologies.schema.yml b/ansible_collections/arista/avd/roles/eos_designs/schemas/schema_fragments/wan_virtual_topologies.schema.yml
index 8f7557ed9f7..b4f5b51ae4f 100644
--- a/ansible_collections/arista/avd/roles/eos_designs/schemas/schema_fragments/wan_virtual_topologies.schema.yml
+++ b/ansible_collections/arista/avd/roles/eos_designs/schemas/schema_fragments/wan_virtual_topologies.schema.yml
@@ -31,7 +31,33 @@ keys:
description: VRF name.
policy:
type: str
- description: Name of the AVT policy to apply to this VRF.
+ description: |-
+ Name of the policy to apply to this VRF.
+ It is possible to overwrite the default policy for all VRFs using it
+ by redefining it in the `wan_virtual_topologies.policies` list using the
+ default name `DEFAULT-POLICY`.
+ default: DEFAULT-POLICY
+ wan_vni:
+ # The `wan_vni` is under here rather than `tenants.vrfs` as it as
+ # initially planned for 2 reasons:
+ # 1. This allow to keep a consistent WAN VNI ID in a more
+ # effective way, as otherwise this wan_vni key would have had
+ # to be aligned in every tenant where the VRF is defined.
+ # 2. This is used in the WAN metadata for pathfinder nodes to pick
+ # up WAN VRFs and their VNI.
+ type: int
+ convert_types:
+ - str
+ min: 1
+ max: 255
+ required: true
+ description: |
+ Required for VRFs carried over AutoVPN or CV Pathfinder WAN.
+
+ A VRF can have a different VNI in the Datacenters and in the WAN.
+ Note that if no VRF default is configured for WAN, AVD will automatically inject the VRF default with
+ `wan_vni` set to `1`.
+ In addition either `vrf_id` or `vrf_vni` must be set to enforce consistant route-targets across domains.
control_plane_virtual_topology:
type: dict
description: |-