Skip to content
New issue

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

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

Already on GitHub? Sign in to your account

Feat(eos_designs): Interface "LACP Fallback Individual" Support #3510

Merged
Show file tree
Hide file tree
Changes from 14 commits
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
31b8e90
Adding lacp fallback individual for connected_endpoints in eos_designs
bjmeuer Jan 17, 2024
6706141
updating the json schema
bjmeuer Jan 17, 2024
5b7bc2a
add positiv and negative tests for eos_designs connected endpoints la…
bjmeuer Jan 17, 2024
354ceba
Merge branch 'aristanetworks:devel' into endpoints_lacp_fallback_indi…
bjmeuer Jan 17, 2024
c1438e0
changes based on comments from Claus
bjmeuer Jan 18, 2024
99d22a7
Update ansible_collections/arista/avd/roles/eos_designs/python_module…
bjmeuer Jan 18, 2024
b707f7b
Update ansible_collections/arista/avd/roles/eos_designs/python_module…
bjmeuer Jan 18, 2024
55efe72
Update ansible_collections/arista/avd/roles/eos_designs/python_module…
bjmeuer Jan 18, 2024
fe972f6
Update ansible_collections/arista/avd/roles/eos_designs/python_module…
bjmeuer Jan 18, 2024
af527d7
Merge branch 'aristanetworks:devel' into endpoints_lacp_fallback_indi…
bjmeuer Jan 18, 2024
5d58db7
Merge branch 'aristanetworks:devel' into endpoints_lacp_fallback_indi…
bjmeuer Jan 18, 2024
4162ae1
updated based on Claus feedback part 2
bjmeuer Jan 18, 2024
6cef29a
adding l2 mru and l2 mtu back to the shared function because it has n…
bjmeuer Jan 18, 2024
247bab1
Merge branch 'devel' into endpoints_lacp_fallback_individual
bjmeuer Jan 18, 2024
f2a4f0c
Update ansible_collections/arista/avd/roles/eos_designs/python_module…
bjmeuer Jan 19, 2024
5747735
remove spaces
bjmeuer Jan 19, 2024
f1b31c6
Merge branch 'devel' into endpoints_lacp_fallback_individual
bjmeuer Jan 19, 2024
bcac141
Merge branch 'devel' into endpoints_lacp_fallback_individual
bjmeuer Jan 22, 2024
93040e8
Merge branch 'devel' into endpoints_lacp_fallback_individual
bjmeuer Jan 23, 2024
004bb2c
Merge branch 'devel' into endpoints_lacp_fallback_individual
bjmeuer Jan 23, 2024
9e614ee
Merge branch 'devel' into endpoints_lacp_fallback_individual
bjmeuer Jan 24, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
loopback_ipv4_pool: 192.168.0.0/24

type: l2leaf
l2leaf:
defaults:
nodes:
- name: connected-endpoints-missing-profile-lacp-fallback

servers:
# port-channel with lacp fallback individual and missing profile for lacp fallback
- name: INDIVIDUAL_1
adapters:
- switches: [connected-endpoints-missing-profile-lacp-fallback, connected-endpoints-missing-profile-lacp-fallback]
switch_ports: [Ethernet14, Ethernet15]
port_channel:
mode: "active"
description: "INDIVIDUAL_1"
lacp_fallback:
mode: individual

expected_error_message: "A Port-channel which is set to lacp fallback mode 'individual' must have a 'profile' defined. Profile definition is missing for the connected endpoint with the name 'INDIVIDUAL_1'."
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
loopback_ipv4_pool: 192.168.0.0/24

type: l2leaf
l2leaf:
defaults:
nodes:
- name: connected-endpoints-wrong-profile-lacp-fallback

servers:
# port-channel with lacp fallback individual and missing profile for lacp fallback
- name: INDIVIDUAL_1
adapters:
- switches: [connected-endpoints-wrong-profile-lacp-fallback, connected-endpoints-wrong-profile-lacp-fallback]
switch_ports: [Ethernet14, Ethernet15]
port_channel:
mode: "active"
description: "INDIVIDUAL_1"
lacp_fallback:
mode: individual
individual:
profile: INDIVIDUAL_TRUNK

port_profiles:
- profile: INDIVIDUAL_TRUNKS
mode: trunk
vlans: "1,2,3,4,5,6,7,123,234"
native_vlan_tag: False
native_vlan: 123

expected_error_message: "The 'profile' of every port-channel lacp fallback individual setting must be defined in the 'port_profiles'. First occurence seen of a missing profile is 'INDIVIDUAL_TRUNK' for the connected endpoint with the name 'INDIVIDUAL_1'."
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,8 @@ all:
hosts:
failure-port-channel:
connected-endpoints-mismatched-descriptions:
connected-endpoints-missing-profile-lacp-fallback:
connected-endpoints-wrong-profile-lacp-fallback:
connected-endpoints-phone-vlan-mode:
connected-endpoints-phone-vlan-vlans:
duplicate-vlans-l2vlans:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,13 @@ interface Port-Channel10
no shutdown
switchport
!
interface Port-Channel12
description INDIVIDUAL_1_INDIVIDUAL_1
no shutdown
switchport
port-channel lacp fallback timeout 90
port-channel lacp fallback individual
!
interface Ethernet4
description PHYSICAL_PORT_DESCRIPTION
no shutdown
Expand Down Expand Up @@ -67,6 +74,28 @@ interface Ethernet11
description PHYSICAL_PORT_DESCRIPTION_2
no shutdown
channel-group 10 mode active
!
interface Ethernet12
bjmeuer marked this conversation as resolved.
Show resolved Hide resolved
description INDIVIDUAL_1
no shutdown
switchport trunk native vlan 123
switchport trunk allowed vlan 1,2,3,4,5,6,7,123,234
switchport mode trunk
switchport
channel-group 12 mode active
spanning-tree portfast
spanning-tree bpdufilter enable
!
interface Ethernet13
description INDIVIDUAL_1
no shutdown
switchport trunk native vlan 123
switchport trunk allowed vlan 1,2,3,4,5,6,7,123,234
switchport mode trunk
switchport
channel-group 12 mode active
spanning-tree portfast
spanning-tree bpdufilter enable
no ip routing vrf MGMT
!
management api http-commands
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -82,6 +82,36 @@ ethernet_interfaces:
channel_group:
id: 10
mode: active
- name: Ethernet12
peer: INDIVIDUAL_1
peer_type: server
description: INDIVIDUAL_1
shutdown: false
type: switched
channel_group:
id: 12
mode: active
mode: trunk
vlans: 1,2,3,4,5,6,7,123,234
native_vlan_tag: false
native_vlan: 123
spanning_tree_portfast: edge
spanning_tree_bpdufilter: 'True'
- name: Ethernet13
peer: INDIVIDUAL_1
peer_type: server
description: INDIVIDUAL_1
shutdown: false
type: switched
channel_group:
id: 12
mode: active
mode: trunk
vlans: 1,2,3,4,5,6,7,123,234
native_vlan_tag: false
native_vlan: 123
spanning_tree_portfast: edge
spanning_tree_bpdufilter: 'True'
port_channel_interfaces:
- name: Port-Channel5
description: OLD_SW-1/5_PORT_CHANNEL_DESCRIPTION
Expand All @@ -95,3 +125,9 @@ port_channel_interfaces:
description: OLD_SW-1/7_PORT_CHANNEL_DESCRIPTION
type: switched
shutdown: false
- name: Port-Channel12
description: INDIVIDUAL_1_INDIVIDUAL_1
type: switched
shutdown: false
lacp_fallback_mode: individual
lacp_fallback_timeout: 90
Original file line number Diff line number Diff line change
Expand Up @@ -46,3 +46,24 @@ servers:
port_channel:
mode: "active"
description: "PORT_CHANNEL_DESCRIPTION"
# port-channel with lacp fallback individual and profile for member interfaces
- name: INDIVIDUAL_1
adapters:
- switches: [connected_endpoints, connected_endpoints]
switch_ports: [Ethernet12, Ethernet13]
port_channel:
mode: "active"
description: "INDIVIDUAL_1"
lacp_fallback:
mode: individual
individual:
profile: INDIVIDUAL_TRUNK

port_profiles:
- profile: INDIVIDUAL_TRUNK
mode: trunk
vlans: "1,2,3,4,5,6,7,123,234"
native_vlan_tag: False
native_vlan: 123
spanning_tree_portfast: "edge"
spanning_tree_bpdufilter: True
Original file line number Diff line number Diff line change
Expand Up @@ -137,7 +137,9 @@
| [<samp>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;esi</samp>](## "<connected_endpoints_keys.key>.[].adapters.[].port_channel.esi") <span style="color:red">removed</span> | String | | | | Format xxxx:xxxx:xxxx.<span style="color:red">This key was removed. Support was removed in AVD version 4.0.0. Use <samp>short_esi</samp> instead.</span> |
| [<samp>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;short_esi</samp>](## "<connected_endpoints_keys.key>.[].adapters.[].port_channel.short_esi") <span style="color:red">deprecated</span> | String | | | | In format xxxx:xxxx:xxxx or "auto".<span style="color:red">This key is deprecated. Support will be removed in AVD version 5.0.0. Use <samp>ethernet_segment.short_esi</samp> instead.</span> |
| [<samp>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lacp_fallback</samp>](## "<connected_endpoints_keys.key>.[].adapters.[].port_channel.lacp_fallback") | Dictionary | | | | LACP fallback configuration. |
| [<samp>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mode</samp>](## "<connected_endpoints_keys.key>.[].adapters.[].port_channel.lacp_fallback.mode") | String | | | Valid Values:<br>- <code>static</code> | Currently only static mode is supported. |
| [<samp>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mode</samp>](## "<connected_endpoints_keys.key>.[].adapters.[].port_channel.lacp_fallback.mode") | String | | | Valid Values:<br>- <code>static</code><br>- <code>individual</code> | Either static or individual mode is supported.<br>If the mode is set to "individual" the "individual.profile" setting must be defined.<br> |
| [<samp>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;individual</samp>](## "<connected_endpoints_keys.key>.[].adapters.[].port_channel.lacp_fallback.individual") | Dictionary | | | | Define parameters for port-channel member interfaces. Applies only if LACP fallback is set to "individual". |
| [<samp>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;profile</samp>](## "<connected_endpoints_keys.key>.[].adapters.[].port_channel.lacp_fallback.individual.profile") | String | | | | Port-profile name to inherit configuration. |
| [<samp>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;timeout</samp>](## "<connected_endpoints_keys.key>.[].adapters.[].port_channel.lacp_fallback.timeout") | Integer | | | | Timeout in seconds. EOS default is 90 seconds. |
| [<samp>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lacp_timer</samp>](## "<connected_endpoints_keys.key>.[].adapters.[].port_channel.lacp_timer") | Dictionary | | | | LACP timer configuration. Applies only when Port-channel mode is not "on". |
| [<samp>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mode</samp>](## "<connected_endpoints_keys.key>.[].adapters.[].port_channel.lacp_timer.mode") | String | | | Valid Values:<br>- <code>normal</code><br>- <code>fast</code> | LACP mode for interface members. |
Expand Down Expand Up @@ -476,8 +478,15 @@
# LACP fallback configuration.
lacp_fallback:

# Currently only static mode is supported.
mode: <str; "static">
# Either static or individual mode is supported.
# If the mode is set to "individual" the "individual.profile" setting must be defined.
mode: <str; "static" | "individual">

# Define parameters for port-channel member interfaces. Applies only if LACP fallback is set to "individual".
individual:

# Port-profile name to inherit configuration.
profile: <str>

# Timeout in seconds. EOS default is 90 seconds.
timeout: <int>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -129,7 +129,9 @@
| [<samp>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;esi</samp>](## "network_ports.[].port_channel.esi") <span style="color:red">removed</span> | String | | | | Format xxxx:xxxx:xxxx.<span style="color:red">This key was removed. Support was removed in AVD version 4.0.0. Use <samp>short_esi</samp> instead.</span> |
| [<samp>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;short_esi</samp>](## "network_ports.[].port_channel.short_esi") <span style="color:red">deprecated</span> | String | | | | In format xxxx:xxxx:xxxx or "auto".<span style="color:red">This key is deprecated. Support will be removed in AVD version 5.0.0. Use <samp>ethernet_segment.short_esi</samp> instead.</span> |
| [<samp>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lacp_fallback</samp>](## "network_ports.[].port_channel.lacp_fallback") | Dictionary | | | | LACP fallback configuration. |
| [<samp>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mode</samp>](## "network_ports.[].port_channel.lacp_fallback.mode") | String | | | Valid Values:<br>- <code>static</code> | Currently only static mode is supported. |
| [<samp>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mode</samp>](## "network_ports.[].port_channel.lacp_fallback.mode") | String | | | Valid Values:<br>- <code>static</code><br>- <code>individual</code> | Either static or individual mode is supported.<br>If the mode is set to "individual" the "individual.profile" setting must be defined.<br> |
| [<samp>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;individual</samp>](## "network_ports.[].port_channel.lacp_fallback.individual") | Dictionary | | | | Define parameters for port-channel member interfaces. Applies only if LACP fallback is set to "individual". |
| [<samp>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;profile</samp>](## "network_ports.[].port_channel.lacp_fallback.individual.profile") | String | | | | Port-profile name to inherit configuration. |
| [<samp>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;timeout</samp>](## "network_ports.[].port_channel.lacp_fallback.timeout") | Integer | | | | Timeout in seconds. EOS default is 90 seconds. |
| [<samp>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lacp_timer</samp>](## "network_ports.[].port_channel.lacp_timer") | Dictionary | | | | LACP timer configuration. Applies only when Port-channel mode is not "on". |
| [<samp>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mode</samp>](## "network_ports.[].port_channel.lacp_timer.mode") | String | | | Valid Values:<br>- <code>normal</code><br>- <code>fast</code> | LACP mode for interface members. |
Expand Down Expand Up @@ -448,8 +450,15 @@
# LACP fallback configuration.
lacp_fallback:

# Currently only static mode is supported.
mode: <str; "static">
# Either static or individual mode is supported.
# If the mode is set to "individual" the "individual.profile" setting must be defined.
mode: <str; "static" | "individual">

# Define parameters for port-channel member interfaces. Applies only if LACP fallback is set to "individual".
individual:

# Port-profile name to inherit configuration.
profile: <str>

# Timeout in seconds. EOS default is 90 seconds.
timeout: <int>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -126,7 +126,9 @@
| [<samp>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;esi</samp>](## "port_profiles.[].port_channel.esi") <span style="color:red">removed</span> | String | | | | Format xxxx:xxxx:xxxx.<span style="color:red">This key was removed. Support was removed in AVD version 4.0.0. Use <samp>short_esi</samp> instead.</span> |
| [<samp>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;short_esi</samp>](## "port_profiles.[].port_channel.short_esi") <span style="color:red">deprecated</span> | String | | | | In format xxxx:xxxx:xxxx or "auto".<span style="color:red">This key is deprecated. Support will be removed in AVD version 5.0.0. Use <samp>ethernet_segment.short_esi</samp> instead.</span> |
| [<samp>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lacp_fallback</samp>](## "port_profiles.[].port_channel.lacp_fallback") | Dictionary | | | | LACP fallback configuration. |
| [<samp>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mode</samp>](## "port_profiles.[].port_channel.lacp_fallback.mode") | String | | | Valid Values:<br>- <code>static</code> | Currently only static mode is supported. |
| [<samp>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mode</samp>](## "port_profiles.[].port_channel.lacp_fallback.mode") | String | | | Valid Values:<br>- <code>static</code><br>- <code>individual</code> | Either static or individual mode is supported.<br>If the mode is set to "individual" the "individual.profile" setting must be defined.<br> |
| [<samp>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;individual</samp>](## "port_profiles.[].port_channel.lacp_fallback.individual") | Dictionary | | | | Define parameters for port-channel member interfaces. Applies only if LACP fallback is set to "individual". |
| [<samp>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;profile</samp>](## "port_profiles.[].port_channel.lacp_fallback.individual.profile") | String | | | | Port-profile name to inherit configuration. |
| [<samp>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;timeout</samp>](## "port_profiles.[].port_channel.lacp_fallback.timeout") | Integer | | | | Timeout in seconds. EOS default is 90 seconds. |
| [<samp>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lacp_timer</samp>](## "port_profiles.[].port_channel.lacp_timer") | Dictionary | | | | LACP timer configuration. Applies only when Port-channel mode is not "on". |
| [<samp>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mode</samp>](## "port_profiles.[].port_channel.lacp_timer.mode") | String | | | Valid Values:<br>- <code>normal</code><br>- <code>fast</code> | LACP mode for interface members. |
Expand Down Expand Up @@ -434,8 +436,15 @@
# LACP fallback configuration.
lacp_fallback:

# Currently only static mode is supported.
mode: <str; "static">
# Either static or individual mode is supported.
# If the mode is set to "individual" the "individual.profile" setting must be defined.
mode: <str; "static" | "individual">

# Define parameters for port-channel member interfaces. Applies only if LACP fallback is set to "individual".
individual:

# Port-profile name to inherit configuration.
profile: <str>

# Timeout in seconds. EOS default is 90 seconds.
timeout: <int>
Expand Down
Loading