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"