diff --git a/ansible_collections/arista/avd/docs/porting-guides/5.x.x.md b/ansible_collections/arista/avd/docs/porting-guides/5.x.x.md
index 9cae763b9ee..33213ce8f3e 100644
--- a/ansible_collections/arista/avd/docs/porting-guides/5.x.x.md
+++ b/ansible_collections/arista/avd/docs/porting-guides/5.x.x.md
@@ -78,8 +78,8 @@ The following data model keys have been removed from `eos_cli_config_gen` in v5.
| management_api_gnmi.octa | management_api_gnmi.provider |
| management_security.entropy_source | management_security.entropy_sources |
| name_server | ip_name_servers |
-| old key 7.1(port_channel_interfaces) | new key(TODO) |
-| old key 7.2(port_channel_interfaces) | new key(TODO) |
+| port_channel_interfaces.esi | port_channel_interfaces.evpn_ethernet_segment.identifier |
+| port_channel_interfaces.rt | port_channel_interfaces.evpn_ethernet_segment.route_target |
| radius_servers | radius_server.hosts |
| router_bgp.peer_groups[].peer_filter | router_bgp.listen_ranges[].peer_filter |
| router_bgp.peer_groups[].bgp_listen_range_prefix | router_bgp.listen_ranges[].prefix |
diff --git a/ansible_collections/arista/avd/molecule/eos_cli_config_gen_deprecated_vars/documentation/devices/host1.md b/ansible_collections/arista/avd/molecule/eos_cli_config_gen_deprecated_vars/documentation/devices/host1.md
index 54c1567202a..e94864b5058 100644
--- a/ansible_collections/arista/avd/molecule/eos_cli_config_gen_deprecated_vars/documentation/devices/host1.md
+++ b/ansible_collections/arista/avd/molecule/eos_cli_config_gen_deprecated_vars/documentation/devices/host1.md
@@ -555,7 +555,7 @@ interface Ethernet47
| Interface | Description | Type | Mode | VLANs | Native VLAN | Trunk Group | LACP Fallback Timeout | LACP Fallback Mode | MLAG ID | EVPN ESI |
| --------- | ----------- | ---- | ---- | ----- | ----------- | ------------| --------------------- | ------------------ | ------- | -------- |
-| Port-Channel1 | SRV01_bond0 | switched | trunk | 2-3000 | - | - | - | - | - | 0000:0000:0404:0404:0303 |
+| Port-Channel1 | SRV01_bond0 | switched | trunk | 2-3000 | - | - | - | - | - | - |
| Port-Channel51 | ipv6_prefix | switched | trunk | 1-500 | - | - | - | - | - | - |
##### Flexible Encapsulation Interfaces
@@ -573,9 +573,6 @@ interface Port-Channel1
switchport
switchport trunk allowed vlan 2-3000
switchport mode trunk
- evpn ethernet-segment
- identifier 0000:0000:0404:0404:0303
- route-target import 04:04:03:03:02:02
lacp system-id 0303.0202.0101
!
interface Port-Channel2
@@ -587,9 +584,6 @@ interface Port-Channel2.1000
vlan id 1000
encapsulation vlan
client dot1q 100 network client
- evpn ethernet-segment
- identifier 0000:0000:0303:0202:0101
- route-target import 03:03:02:02:01:01
lacp system-id 0303.0202.0101
!
interface Port-Channel51
diff --git a/ansible_collections/arista/avd/molecule/eos_cli_config_gen_deprecated_vars/intended/configs/host1.cfg b/ansible_collections/arista/avd/molecule/eos_cli_config_gen_deprecated_vars/intended/configs/host1.cfg
index 420f6e67018..71df23983ff 100644
--- a/ansible_collections/arista/avd/molecule/eos_cli_config_gen_deprecated_vars/intended/configs/host1.cfg
+++ b/ansible_collections/arista/avd/molecule/eos_cli_config_gen_deprecated_vars/intended/configs/host1.cfg
@@ -121,9 +121,6 @@ interface Port-Channel1
switchport
switchport trunk allowed vlan 2-3000
switchport mode trunk
- evpn ethernet-segment
- identifier 0000:0000:0404:0404:0303
- route-target import 04:04:03:03:02:02
lacp system-id 0303.0202.0101
!
interface Port-Channel2
@@ -135,9 +132,6 @@ interface Port-Channel2.1000
vlan id 1000
encapsulation vlan
client dot1q 100 network client
- evpn ethernet-segment
- identifier 0000:0000:0303:0202:0101
- route-target import 03:03:02:02:01:01
lacp system-id 0303.0202.0101
!
interface Port-Channel51
diff --git a/ansible_collections/arista/avd/molecule/eos_cli_config_gen_deprecated_vars/inventory/host_vars/host1/port-channel-interfaces.yml b/ansible_collections/arista/avd/molecule/eos_cli_config_gen_deprecated_vars/inventory/host_vars/host1/port-channel-interfaces.yml
index 78720cb676a..4e72acdc1bd 100644
--- a/ansible_collections/arista/avd/molecule/eos_cli_config_gen_deprecated_vars/inventory/host_vars/host1/port-channel-interfaces.yml
+++ b/ansible_collections/arista/avd/molecule/eos_cli_config_gen_deprecated_vars/inventory/host_vars/host1/port-channel-interfaces.yml
@@ -4,13 +4,10 @@
# Testing port_channel_interfaces as dict of dict
# Dict type is deprecated in 4.0.0. To be removed in 5.0.0
port_channel_interfaces:
- # Testing deprecated esi and rt variables on port-channel interfaces/subinterfaces
Port-Channel1:
description: SRV01_bond0
vlans: 2-3000
mode: trunk
- esi: 0000:0000:0404:0404:0303
- rt: 04:04:03:03:02:02
lacp_id: 0303.0202.0101
Port-Channel2:
@@ -26,8 +23,6 @@ port_channel_interfaces:
vlan: 100
network:
client: true
- esi: 0000:0000:0303:0202:0101
- rt: 03:03:02:02:01:01
lacp_id: 0303.0202.0101
Port-Channel51:
diff --git a/ansible_collections/arista/avd/roles/eos_cli_config_gen/docs/tables/port-channel-interfaces.md b/ansible_collections/arista/avd/roles/eos_cli_config_gen/docs/tables/port-channel-interfaces.md
index 5c59aa78c56..8b5c713ce2a 100644
--- a/ansible_collections/arista/avd/roles/eos_cli_config_gen/docs/tables/port-channel-interfaces.md
+++ b/ansible_collections/arista/avd/roles/eos_cli_config_gen/docs/tables/port-channel-interfaces.md
@@ -125,8 +125,6 @@
| [ shared_index](## "port_channel_interfaces.[].evpn_ethernet_segment.mpls.shared_index") | Integer | | | Min: 1
Max: 1024 | |
| [ tunnel_flood_filter_time](## "port_channel_interfaces.[].evpn_ethernet_segment.mpls.tunnel_flood_filter_time") | Integer | | | | |
| [ route_target](## "port_channel_interfaces.[].evpn_ethernet_segment.route_target") | String | | | | EVPN Route Target for ESI with format xx:xx:xx:xx:xx:xx. |
- | [ esi](## "port_channel_interfaces.[].esi") deprecated | String | | | | EVPN Ethernet Segment Identifier (Type 1 format).
If both "esi" and "evpn_ethernet_segment.identifier" are defined, the new variable takes precedence.
This key is deprecated. Support will be removed in AVD version 5.0.0. Use evpn_ethernet_segment.identifier instead. |
- | [ rt](## "port_channel_interfaces.[].rt") deprecated | String | | | | EVPN Route Target for ESI with format xx:xx:xx:xx:xx:xx.
If both "rt" and "evpn_ethernet_segment.route_target" are defined, the new variable takes precedence.
This key is deprecated. Support will be removed in AVD version 5.0.0. Use evpn_ethernet_segment.route_target instead. |
| [ lacp_id](## "port_channel_interfaces.[].lacp_id") | String | | | | LACP ID with format xxxx.xxxx.xxxx. |
| [ spanning_tree_bpdufilter](## "port_channel_interfaces.[].spanning_tree_bpdufilter") | String | | | Valid Values:
- enabled
- disabled
- True
- False
- true
- false
| |
| [ spanning_tree_bpduguard](## "port_channel_interfaces.[].spanning_tree_bpduguard") | String | | | Valid Values:
- enabled
- disabled
- True
- False
- true
- false
| |
@@ -250,6 +248,8 @@
| [ unmodified_enable](## "port_channel_interfaces.[].sflow.egress.unmodified_enable") | Boolean | | | | |
| [ validate_state](## "port_channel_interfaces.[].validate_state") | Boolean | | | | Set to false to disable interface validation by the `eos_validate_state` role. |
| [ eos_cli](## "port_channel_interfaces.[].eos_cli") | String | | | | Multiline EOS CLI rendered directly on the port-channel interface in the final EOS configuration. |
+ | [ esi](## "port_channel_interfaces.[].esi") removed | String | | | | EVPN Ethernet Segment Identifier (Type 1 format).
This key was removed. Support was removed in AVD version 5.0.0. Use evpn_ethernet_segment.identifier instead. |
+ | [ rt](## "port_channel_interfaces.[].rt") removed | String | | | | EVPN Route Target for ESI with format xx:xx:xx:xx:xx:xx.
This key was removed. Support was removed in AVD version 5.0.0. Use evpn_ethernet_segment.route_target instead. |
=== "YAML"
@@ -479,20 +479,6 @@
# EVPN Route Target for ESI with format xx:xx:xx:xx:xx:xx.
route_target:
- # EVPN Ethernet Segment Identifier (Type 1 format).
- # If both "esi" and "evpn_ethernet_segment.identifier" are defined, the new variable takes precedence.
- # This key is deprecated.
- # Support will be removed in AVD version 5.0.0.
- # Use evpn_ethernet_segment.identifier instead.
- esi:
-
- # EVPN Route Target for ESI with format xx:xx:xx:xx:xx:xx.
- # If both "rt" and "evpn_ethernet_segment.route_target" are defined, the new variable takes precedence.
- # This key is deprecated.
- # Support will be removed in AVD version 5.0.0.
- # Use evpn_ethernet_segment.route_target instead.
- rt:
-
# LACP ID with format xxxx.xxxx.xxxx.
lacp_id:
spanning_tree_bpdufilter:
diff --git a/python-avd/pyavd/_eos_cli_config_gen/j2templates/documentation/port-channel-interfaces.j2 b/python-avd/pyavd/_eos_cli_config_gen/j2templates/documentation/port-channel-interfaces.j2
index 805069cd252..24408c7713a 100644
--- a/python-avd/pyavd/_eos_cli_config_gen/j2templates/documentation/port-channel-interfaces.j2
+++ b/python-avd/pyavd/_eos_cli_config_gen/j2templates/documentation/port-channel-interfaces.j2
@@ -38,7 +38,7 @@
{% set lacp_fallback_timeout = port_channel_interface.lacp_fallback_timeout | arista.avd.default("-") %}
{% set lacp_fallback_mode = port_channel_interface.lacp_fallback_mode | arista.avd.default("-") %}
{% set mlag = port_channel_interface.mlag | arista.avd.default("-") %}
-{% set esi = port_channel_interface.evpn_ethernet_segment.identifier | arista.avd.default(port_channel_interface.esi, "-") %}
+{% set esi = port_channel_interface.evpn_ethernet_segment.identifier | arista.avd.default("-") %}
| {{ port_channel_interface.name }} | {{ description }} | {{ type }} | {{ mode }} | {{ vlans }} | {{ native_vlan }} | {{ l2.trunk_groups }} | {{ lacp_fallback_timeout }} | {{ lacp_fallback_mode }} | {{ mlag }} | {{ esi }} |
{% endif %}
{% endfor %}
@@ -171,7 +171,7 @@
{% for evpn_es_po_interface in evpn_es_po_interfaces | arista.avd.natural_sort('name') %}
{% set esi = evpn_es_po_interface.evpn_ethernet_segment.identifier | arista.avd.default(evpn_es_po_interface.esi, "-") %}
{% set redundancy = evpn_es_po_interface.evpn_ethernet_segment.redundancy | arista.avd.default("all-active") %}
-{% set rt = evpn_es_po_interface.evpn_ethernet_segment.route_target | arista.avd.default(evpn_es_po_interface.rt, "-") %}
+{% set rt = evpn_es_po_interface.evpn_ethernet_segment.route_target | arista.avd.default("-") %}
| {{ evpn_es_po_interface.name }} | {{ esi }} | {{ redundancy }} | {{ rt }} |
{% endfor %}
{% if evpn_dfe_po_interfaces | length > 0 %}
diff --git a/python-avd/pyavd/_eos_cli_config_gen/j2templates/eos/port-channel-interfaces.j2 b/python-avd/pyavd/_eos_cli_config_gen/j2templates/eos/port-channel-interfaces.j2
index 24b2882a56f..6b5ebaa55ea 100644
--- a/python-avd/pyavd/_eos_cli_config_gen/j2templates/eos/port-channel-interfaces.j2
+++ b/python-avd/pyavd/_eos_cli_config_gen/j2templates/eos/port-channel-interfaces.j2
@@ -120,10 +120,10 @@ interface {{ port_channel_interface.name }}
{% if port_channel_interface.flow_tracker.sampled is arista.avd.defined %}
flow tracker sampled {{ port_channel_interface.flow_tracker.sampled }}
{% endif %}
-{% if port_channel_interface.evpn_ethernet_segment.identifier | arista.avd.default(port_channel_interface.esi) is arista.avd.defined or port_channel_interface.evpn_ethernet_segment is arista.avd.defined %}
+{% if port_channel_interface.evpn_ethernet_segment is arista.avd.defined %}
evpn ethernet-segment
-{% if port_channel_interface.evpn_ethernet_segment.identifier | arista.avd.default(port_channel_interface.esi) is arista.avd.defined %}
- identifier {{ port_channel_interface.evpn_ethernet_segment.identifier | arista.avd.default(port_channel_interface.esi) }}
+{% if port_channel_interface.evpn_ethernet_segment.identifier is arista.avd.defined %}
+ identifier {{ port_channel_interface.evpn_ethernet_segment.identifier }}
{% endif %}
{% if port_channel_interface.evpn_ethernet_segment.redundancy is arista.avd.defined %}
redundancy {{ port_channel_interface.evpn_ethernet_segment.redundancy }}
@@ -157,8 +157,8 @@ interface {{ port_channel_interface.name }}
{% if port_channel_interface.evpn_ethernet_segment.mpls.shared_index is arista.avd.defined %}
mpls shared index {{ port_channel_interface.evpn_ethernet_segment.mpls.shared_index }}
{% endif %}
-{% if port_channel_interface.evpn_ethernet_segment.route_target | arista.avd.default(port_channel_interface.rt) is arista.avd.defined %}
- route-target import {{ port_channel_interface.evpn_ethernet_segment.route_target | arista.avd.default(port_channel_interface.rt) }}
+{% if port_channel_interface.evpn_ethernet_segment.route_target is arista.avd.defined %}
+ route-target import {{ port_channel_interface.evpn_ethernet_segment.route_target }}
{% endif %}
{% endif %}
{% if port_channel_interface.snmp_trap_link_change is arista.avd.defined(false) %}
diff --git a/python-avd/pyavd/_eos_cli_config_gen/schema/eos_cli_config_gen.schema.yml b/python-avd/pyavd/_eos_cli_config_gen/schema/eos_cli_config_gen.schema.yml
index e3a2f753491..9b1e0564f78 100644
--- a/python-avd/pyavd/_eos_cli_config_gen/schema/eos_cli_config_gen.schema.yml
+++ b/python-avd/pyavd/_eos_cli_config_gen/schema/eos_cli_config_gen.schema.yml
@@ -9134,30 +9134,6 @@ keys:
route_target:
type: str
description: EVPN Route Target for ESI with format xx:xx:xx:xx:xx:xx.
- esi:
- type: str
- description: 'EVPN Ethernet Segment Identifier (Type 1 format).
-
- If both "esi" and "evpn_ethernet_segment.identifier" are defined, the
- new variable takes precedence.
-
- '
- deprecation:
- warning: true
- new_key: evpn_ethernet_segment.identifier
- remove_in_version: 5.0.0
- rt:
- type: str
- description: 'EVPN Route Target for ESI with format xx:xx:xx:xx:xx:xx.
-
- If both "rt" and "evpn_ethernet_segment.route_target" are defined, the
- new variable takes precedence.
-
- '
- deprecation:
- warning: true
- new_key: evpn_ethernet_segment.route_target
- remove_in_version: 5.0.0
lacp_id:
type: str
description: LACP ID with format xxxx.xxxx.xxxx.
@@ -9514,6 +9490,26 @@ keys:
type: str
description: Multiline EOS CLI rendered directly on the port-channel interface
in the final EOS configuration.
+ esi:
+ type: str
+ description: 'EVPN Ethernet Segment Identifier (Type 1 format).
+
+ '
+ deprecation:
+ removed: true
+ warning: true
+ new_key: evpn_ethernet_segment.identifier
+ remove_in_version: 5.0.0
+ rt:
+ type: str
+ description: 'EVPN Route Target for ESI with format xx:xx:xx:xx:xx:xx.
+
+ '
+ deprecation:
+ removed: true
+ warning: true
+ new_key: evpn_ethernet_segment.route_target
+ remove_in_version: 5.0.0
prefix_lists:
type: list
primary_key: name
diff --git a/python-avd/pyavd/_eos_cli_config_gen/schema/schema_fragments/port_channel_interfaces.schema.yml b/python-avd/pyavd/_eos_cli_config_gen/schema/schema_fragments/port_channel_interfaces.schema.yml
index a680bdb6f9a..41241ea16cf 100644
--- a/python-avd/pyavd/_eos_cli_config_gen/schema/schema_fragments/port_channel_interfaces.schema.yml
+++ b/python-avd/pyavd/_eos_cli_config_gen/schema/schema_fragments/port_channel_interfaces.schema.yml
@@ -502,24 +502,6 @@ keys:
route_target:
type: str
description: EVPN Route Target for ESI with format xx:xx:xx:xx:xx:xx.
- esi:
- type: str
- description: |
- EVPN Ethernet Segment Identifier (Type 1 format).
- If both "esi" and "evpn_ethernet_segment.identifier" are defined, the new variable takes precedence.
- deprecation:
- warning: true
- new_key: evpn_ethernet_segment.identifier
- remove_in_version: "5.0.0"
- rt:
- type: str
- description: |
- EVPN Route Target for ESI with format xx:xx:xx:xx:xx:xx.
- If both "rt" and "evpn_ethernet_segment.route_target" are defined, the new variable takes precedence.
- deprecation:
- warning: true
- new_key: evpn_ethernet_segment.route_target
- remove_in_version: "5.0.0"
lacp_id:
type: str
description: LACP ID with format xxxx.xxxx.xxxx.
@@ -854,3 +836,21 @@ keys:
eos_cli:
type: str
description: Multiline EOS CLI rendered directly on the port-channel interface in the final EOS configuration.
+ esi:
+ type: str
+ description: |
+ EVPN Ethernet Segment Identifier (Type 1 format).
+ deprecation:
+ removed: true
+ warning: true
+ new_key: evpn_ethernet_segment.identifier
+ remove_in_version: "5.0.0"
+ rt:
+ type: str
+ description: |
+ EVPN Route Target for ESI with format xx:xx:xx:xx:xx:xx.
+ deprecation:
+ removed: true
+ warning: true
+ new_key: evpn_ethernet_segment.route_target
+ remove_in_version: "5.0.0"