From ac5db61ef74d98f84bb258f4a75c0b9376dfc2f5 Mon Sep 17 00:00:00 2001
From: Mahesh Kumar <122076792+MaheshGSLAB@users.noreply.github.com>
Date: Thu, 6 Feb 2025 19:41:23 +0530
Subject: [PATCH] Feat(eos_designs): Add support for RSS interface profile for
select platforms
---
.../node-type-l3-interfaces-configuration.md | 90 ++
...ode-type-l3-port-channels-configuration.md | 72 ++
.../docs/tables/platform-settings.md | 9 +
.../pyavd/_eos_designs/schema/__init__.py | 1091 ++++++++++++++++-
.../schema/eos_designs.schema.yml | 55 +
.../defs_node_type_l3_interfaces.schema.yml | 24 +
...defs_node_type_l3_port_channels.schema.yml | 24 +
.../platform_settings.schema.yml | 5 +
.../router_service_insertion.py | 39 +-
9 files changed, 1385 insertions(+), 24 deletions(-)
diff --git a/ansible_collections/arista/avd/roles/eos_designs/docs/tables/node-type-l3-interfaces-configuration.md b/ansible_collections/arista/avd/roles/eos_designs/docs/tables/node-type-l3-interfaces-configuration.md
index c3f39baf1a3..2f713916991 100644
--- a/ansible_collections/arista/avd/roles/eos_designs/docs/tables/node-type-l3-interfaces-configuration.md
+++ b/ansible_collections/arista/avd/roles/eos_designs/docs/tables/node-type-l3-interfaces-configuration.md
@@ -39,6 +39,10 @@
| [ policies](## ".defaults.l3_interfaces.[].cv_pathfinder_internet_exit.policies") | List, items: Dictionary | | | | List of Internet-exit policies using this interface as exit. |
| [ - name](## ".defaults.l3_interfaces.[].cv_pathfinder_internet_exit.policies.[].name") | String | Required, Unique | | | Internet-exit policy name. |
| [ tunnel_interface_numbers](## ".defaults.l3_interfaces.[].cv_pathfinder_internet_exit.policies.[].tunnel_interface_numbers") | String | | | | Number range to use for Tunnel interfaces to an internet-exit service provider using this local interface.
Examples: '1-3' or '100,200,300' |
+ | [ rx_queue](## ".defaults.l3_interfaces.[].rx_queue") | Dictionary | | | | Receive queue parameters for Receive Side Scaling (RSS) profile for this interface. |
+ | [ count](## ".defaults.l3_interfaces.[].rx_queue.count") | Integer | | | Min: 1 | Number of receive queues.
The maximum value is platform dependent. |
+ | [ worker](## ".defaults.l3_interfaces.[].rx_queue.worker") | String | | | | Worker ids specified as combination of range and/or comma separated values
such as 0-4,7. |
+ | [ mode](## ".defaults.l3_interfaces.[].rx_queue.mode") | String | | | Valid Values:
- shared
- exclusive
| Mode applicable to the workers. Default mode is 'shared'. |
| [ raw_eos_cli](## ".defaults.l3_interfaces.[].raw_eos_cli") | String | | | | EOS CLI rendered directly on the interface in the final EOS configuration. |
| [ flow_tracking](## ".defaults.l3_interfaces.[].flow_tracking") | Dictionary | | | | Configures flow-tracking on the interface. Overrides `fabric_flow_tracking.l3_interfaces` setting. |
| [ enabled](## ".defaults.l3_interfaces.[].flow_tracking.enabled") | Boolean | | | | |
@@ -78,6 +82,10 @@
| [ policies](## ".node_groups.[].nodes.[].l3_interfaces.[].cv_pathfinder_internet_exit.policies") | List, items: Dictionary | | | | List of Internet-exit policies using this interface as exit. |
| [ - name](## ".node_groups.[].nodes.[].l3_interfaces.[].cv_pathfinder_internet_exit.policies.[].name") | String | Required, Unique | | | Internet-exit policy name. |
| [ tunnel_interface_numbers](## ".node_groups.[].nodes.[].l3_interfaces.[].cv_pathfinder_internet_exit.policies.[].tunnel_interface_numbers") | String | | | | Number range to use for Tunnel interfaces to an internet-exit service provider using this local interface.
Examples: '1-3' or '100,200,300' |
+ | [ rx_queue](## ".node_groups.[].nodes.[].l3_interfaces.[].rx_queue") | Dictionary | | | | Receive queue parameters for Receive Side Scaling (RSS) profile for this interface. |
+ | [ count](## ".node_groups.[].nodes.[].l3_interfaces.[].rx_queue.count") | Integer | | | Min: 1 | Number of receive queues.
The maximum value is platform dependent. |
+ | [ worker](## ".node_groups.[].nodes.[].l3_interfaces.[].rx_queue.worker") | String | | | | Worker ids specified as combination of range and/or comma separated values
such as 0-4,7. |
+ | [ mode](## ".node_groups.[].nodes.[].l3_interfaces.[].rx_queue.mode") | String | | | Valid Values:
- shared
- exclusive
| Mode applicable to the workers. Default mode is 'shared'. |
| [ raw_eos_cli](## ".node_groups.[].nodes.[].l3_interfaces.[].raw_eos_cli") | String | | | | EOS CLI rendered directly on the interface in the final EOS configuration. |
| [ flow_tracking](## ".node_groups.[].nodes.[].l3_interfaces.[].flow_tracking") | Dictionary | | | | Configures flow-tracking on the interface. Overrides `fabric_flow_tracking.l3_interfaces` setting. |
| [ enabled](## ".node_groups.[].nodes.[].l3_interfaces.[].flow_tracking.enabled") | Boolean | | | | |
@@ -113,6 +121,10 @@
| [ policies](## ".node_groups.[].l3_interfaces.[].cv_pathfinder_internet_exit.policies") | List, items: Dictionary | | | | List of Internet-exit policies using this interface as exit. |
| [ - name](## ".node_groups.[].l3_interfaces.[].cv_pathfinder_internet_exit.policies.[].name") | String | Required, Unique | | | Internet-exit policy name. |
| [ tunnel_interface_numbers](## ".node_groups.[].l3_interfaces.[].cv_pathfinder_internet_exit.policies.[].tunnel_interface_numbers") | String | | | | Number range to use for Tunnel interfaces to an internet-exit service provider using this local interface.
Examples: '1-3' or '100,200,300' |
+ | [ rx_queue](## ".node_groups.[].l3_interfaces.[].rx_queue") | Dictionary | | | | Receive queue parameters for Receive Side Scaling (RSS) profile for this interface. |
+ | [ count](## ".node_groups.[].l3_interfaces.[].rx_queue.count") | Integer | | | Min: 1 | Number of receive queues.
The maximum value is platform dependent. |
+ | [ worker](## ".node_groups.[].l3_interfaces.[].rx_queue.worker") | String | | | | Worker ids specified as combination of range and/or comma separated values
such as 0-4,7. |
+ | [ mode](## ".node_groups.[].l3_interfaces.[].rx_queue.mode") | String | | | Valid Values:
- shared
- exclusive
| Mode applicable to the workers. Default mode is 'shared'. |
| [ raw_eos_cli](## ".node_groups.[].l3_interfaces.[].raw_eos_cli") | String | | | | EOS CLI rendered directly on the interface in the final EOS configuration. |
| [ flow_tracking](## ".node_groups.[].l3_interfaces.[].flow_tracking") | Dictionary | | | | Configures flow-tracking on the interface. Overrides `fabric_flow_tracking.l3_interfaces` setting. |
| [ enabled](## ".node_groups.[].l3_interfaces.[].flow_tracking.enabled") | Boolean | | | | |
@@ -150,6 +162,10 @@
| [ policies](## ".nodes.[].l3_interfaces.[].cv_pathfinder_internet_exit.policies") | List, items: Dictionary | | | | List of Internet-exit policies using this interface as exit. |
| [ - name](## ".nodes.[].l3_interfaces.[].cv_pathfinder_internet_exit.policies.[].name") | String | Required, Unique | | | Internet-exit policy name. |
| [ tunnel_interface_numbers](## ".nodes.[].l3_interfaces.[].cv_pathfinder_internet_exit.policies.[].tunnel_interface_numbers") | String | | | | Number range to use for Tunnel interfaces to an internet-exit service provider using this local interface.
Examples: '1-3' or '100,200,300' |
+ | [ rx_queue](## ".nodes.[].l3_interfaces.[].rx_queue") | Dictionary | | | | Receive queue parameters for Receive Side Scaling (RSS) profile for this interface. |
+ | [ count](## ".nodes.[].l3_interfaces.[].rx_queue.count") | Integer | | | Min: 1 | Number of receive queues.
The maximum value is platform dependent. |
+ | [ worker](## ".nodes.[].l3_interfaces.[].rx_queue.worker") | String | | | | Worker ids specified as combination of range and/or comma separated values
such as 0-4,7. |
+ | [ mode](## ".nodes.[].l3_interfaces.[].rx_queue.mode") | String | | | Valid Values:
- shared
- exclusive
| Mode applicable to the workers. Default mode is 'shared'. |
| [ raw_eos_cli](## ".nodes.[].l3_interfaces.[].raw_eos_cli") | String | | | | EOS CLI rendered directly on the interface in the final EOS configuration. |
| [ flow_tracking](## ".nodes.[].l3_interfaces.[].flow_tracking") | Dictionary | | | | Configures flow-tracking on the interface. Overrides `fabric_flow_tracking.l3_interfaces` setting. |
| [ enabled](## ".nodes.[].l3_interfaces.[].flow_tracking.enabled") | Boolean | | | | |
@@ -185,6 +201,10 @@
| [ policies](## "l3_interface_profiles.[].cv_pathfinder_internet_exit.policies") | List, items: Dictionary | | | | List of Internet-exit policies using this interface as exit. |
| [ - name](## "l3_interface_profiles.[].cv_pathfinder_internet_exit.policies.[].name") | String | Required, Unique | | | Internet-exit policy name. |
| [ tunnel_interface_numbers](## "l3_interface_profiles.[].cv_pathfinder_internet_exit.policies.[].tunnel_interface_numbers") | String | | | | Number range to use for Tunnel interfaces to an internet-exit service provider using this local interface.
Examples: '1-3' or '100,200,300' |
+ | [ rx_queue](## "l3_interface_profiles.[].rx_queue") | Dictionary | | | | Receive queue parameters for Receive Side Scaling (RSS) profile for this interface. |
+ | [ count](## "l3_interface_profiles.[].rx_queue.count") | Integer | | | Min: 1 | Number of receive queues.
The maximum value is platform dependent. |
+ | [ worker](## "l3_interface_profiles.[].rx_queue.worker") | String | | | | Worker ids specified as combination of range and/or comma separated values
such as 0-4,7. |
+ | [ mode](## "l3_interface_profiles.[].rx_queue.mode") | String | | | Valid Values:
- shared
- exclusive
| Mode applicable to the workers. Default mode is 'shared'. |
| [ raw_eos_cli](## "l3_interface_profiles.[].raw_eos_cli") | String | | | | EOS CLI rendered directly on the interface in the final EOS configuration. |
| [ flow_tracking](## "l3_interface_profiles.[].flow_tracking") | Dictionary | | | | Configures flow-tracking on the interface. Overrides `fabric_flow_tracking.l3_interfaces` setting. |
| [ enabled](## "l3_interface_profiles.[].flow_tracking.enabled") | Boolean | | | | |
@@ -313,6 +333,20 @@
# Examples: '1-3' or '100,200,300'
tunnel_interface_numbers:
+ # Receive queue parameters for Receive Side Scaling (RSS) profile for this interface.
+ rx_queue:
+
+ # Number of receive queues.
+ # The maximum value is platform dependent.
+ count: =1>
+
+ # Worker ids specified as combination of range and/or comma separated values
+ # such as 0-4,7.
+ worker:
+
+ # Mode applicable to the workers. Default mode is 'shared'.
+ mode:
+
# EOS CLI rendered directly on the interface in the final EOS configuration.
raw_eos_cli:
@@ -453,6 +487,20 @@
# Examples: '1-3' or '100,200,300'
tunnel_interface_numbers:
+ # Receive queue parameters for Receive Side Scaling (RSS) profile for this interface.
+ rx_queue:
+
+ # Number of receive queues.
+ # The maximum value is platform dependent.
+ count: =1>
+
+ # Worker ids specified as combination of range and/or comma separated values
+ # such as 0-4,7.
+ worker:
+
+ # Mode applicable to the workers. Default mode is 'shared'.
+ mode:
+
# EOS CLI rendered directly on the interface in the final EOS configuration.
raw_eos_cli:
@@ -580,6 +628,20 @@
# Examples: '1-3' or '100,200,300'
tunnel_interface_numbers:
+ # Receive queue parameters for Receive Side Scaling (RSS) profile for this interface.
+ rx_queue:
+
+ # Number of receive queues.
+ # The maximum value is platform dependent.
+ count: =1>
+
+ # Worker ids specified as combination of range and/or comma separated values
+ # such as 0-4,7.
+ worker:
+
+ # Mode applicable to the workers. Default mode is 'shared'.
+ mode:
+
# EOS CLI rendered directly on the interface in the final EOS configuration.
raw_eos_cli:
@@ -713,6 +775,20 @@
# Examples: '1-3' or '100,200,300'
tunnel_interface_numbers:
+ # Receive queue parameters for Receive Side Scaling (RSS) profile for this interface.
+ rx_queue:
+
+ # Number of receive queues.
+ # The maximum value is platform dependent.
+ count: =1>
+
+ # Worker ids specified as combination of range and/or comma separated values
+ # such as 0-4,7.
+ worker:
+
+ # Mode applicable to the workers. Default mode is 'shared'.
+ mode:
+
# EOS CLI rendered directly on the interface in the final EOS configuration.
raw_eos_cli:
@@ -841,6 +917,20 @@
# Examples: '1-3' or '100,200,300'
tunnel_interface_numbers:
+ # Receive queue parameters for Receive Side Scaling (RSS) profile for this interface.
+ rx_queue:
+
+ # Number of receive queues.
+ # The maximum value is platform dependent.
+ count: =1>
+
+ # Worker ids specified as combination of range and/or comma separated values
+ # such as 0-4,7.
+ worker:
+
+ # Mode applicable to the workers. Default mode is 'shared'.
+ mode:
+
# EOS CLI rendered directly on the interface in the final EOS configuration.
raw_eos_cli:
diff --git a/ansible_collections/arista/avd/roles/eos_designs/docs/tables/node-type-l3-port-channels-configuration.md b/ansible_collections/arista/avd/roles/eos_designs/docs/tables/node-type-l3-port-channels-configuration.md
index 132226d1cc7..91e930f7b92 100644
--- a/ansible_collections/arista/avd/roles/eos_designs/docs/tables/node-type-l3-port-channels-configuration.md
+++ b/ansible_collections/arista/avd/roles/eos_designs/docs/tables/node-type-l3-port-channels-configuration.md
@@ -19,6 +19,10 @@
| [ peer](## ".defaults.l3_port_channels.[].member_interfaces.[].peer") | String | | | | The peer device name. Used for description and documentation.
If not set, this inherits the peer setting on the port-channel interface. |
| [ peer_interface](## ".defaults.l3_port_channels.[].member_interfaces.[].peer_interface") | String | | | | The peer device interface. Used for description and documentation. |
| [ speed](## ".defaults.l3_port_channels.[].member_interfaces.[].speed") | String | | | | Speed should be set in the format `` or `forced ` or `auto `. |
+ | [ rx_queue](## ".defaults.l3_port_channels.[].member_interfaces.[].rx_queue") | Dictionary | | | | Receive queue parameters for Receive Side Scaling (RSS) profile for this interface. |
+ | [ count](## ".defaults.l3_port_channels.[].member_interfaces.[].rx_queue.count") | Integer | | | Min: 1 | Number of receive queues.
The maximum value is platform dependent. |
+ | [ worker](## ".defaults.l3_port_channels.[].member_interfaces.[].rx_queue.worker") | String | | | | Worker ids specified as combination of range and/or comma separated values
such as 0-4,7. |
+ | [ mode](## ".defaults.l3_port_channels.[].member_interfaces.[].rx_queue.mode") | String | | | Valid Values:
- shared
- exclusive
| Mode applicable to the workers. Default mode is 'shared'. |
| [ structured_config](## ".defaults.l3_port_channels.[].member_interfaces.[].structured_config") | Dictionary | | | | Custom structured config for the member ethernet interface. |
| [ ip_address](## ".defaults.l3_port_channels.[].ip_address") | String | | | | Node IPv4 address/Mask or 'dhcp'. |
| [ dhcp_ip](## ".defaults.l3_port_channels.[].dhcp_ip") | String | | | | When the `ip_address` is `dhcp`, this optional field allows to indicate the expected
IPv4 address (without mask) to be allocated on the interface if known.
This is not rendered in the configuration but can be used for substitution of 'interface_ip' in the Access-list
set under `ipv4_acl_in` and `ipv4_acl_out`. |
@@ -60,6 +64,10 @@
| [ peer](## ".node_groups.[].nodes.[].l3_port_channels.[].member_interfaces.[].peer") | String | | | | The peer device name. Used for description and documentation.
If not set, this inherits the peer setting on the port-channel interface. |
| [ peer_interface](## ".node_groups.[].nodes.[].l3_port_channels.[].member_interfaces.[].peer_interface") | String | | | | The peer device interface. Used for description and documentation. |
| [ speed](## ".node_groups.[].nodes.[].l3_port_channels.[].member_interfaces.[].speed") | String | | | | Speed should be set in the format `` or `forced ` or `auto `. |
+ | [ rx_queue](## ".node_groups.[].nodes.[].l3_port_channels.[].member_interfaces.[].rx_queue") | Dictionary | | | | Receive queue parameters for Receive Side Scaling (RSS) profile for this interface. |
+ | [ count](## ".node_groups.[].nodes.[].l3_port_channels.[].member_interfaces.[].rx_queue.count") | Integer | | | Min: 1 | Number of receive queues.
The maximum value is platform dependent. |
+ | [ worker](## ".node_groups.[].nodes.[].l3_port_channels.[].member_interfaces.[].rx_queue.worker") | String | | | | Worker ids specified as combination of range and/or comma separated values
such as 0-4,7. |
+ | [ mode](## ".node_groups.[].nodes.[].l3_port_channels.[].member_interfaces.[].rx_queue.mode") | String | | | Valid Values:
- shared
- exclusive
| Mode applicable to the workers. Default mode is 'shared'. |
| [ structured_config](## ".node_groups.[].nodes.[].l3_port_channels.[].member_interfaces.[].structured_config") | Dictionary | | | | Custom structured config for the member ethernet interface. |
| [ ip_address](## ".node_groups.[].nodes.[].l3_port_channels.[].ip_address") | String | | | | Node IPv4 address/Mask or 'dhcp'. |
| [ dhcp_ip](## ".node_groups.[].nodes.[].l3_port_channels.[].dhcp_ip") | String | | | | When the `ip_address` is `dhcp`, this optional field allows to indicate the expected
IPv4 address (without mask) to be allocated on the interface if known.
This is not rendered in the configuration but can be used for substitution of 'interface_ip' in the Access-list
set under `ipv4_acl_in` and `ipv4_acl_out`. |
@@ -97,6 +105,10 @@
| [ peer](## ".node_groups.[].l3_port_channels.[].member_interfaces.[].peer") | String | | | | The peer device name. Used for description and documentation.
If not set, this inherits the peer setting on the port-channel interface. |
| [ peer_interface](## ".node_groups.[].l3_port_channels.[].member_interfaces.[].peer_interface") | String | | | | The peer device interface. Used for description and documentation. |
| [ speed](## ".node_groups.[].l3_port_channels.[].member_interfaces.[].speed") | String | | | | Speed should be set in the format `` or `forced ` or `auto `. |
+ | [ rx_queue](## ".node_groups.[].l3_port_channels.[].member_interfaces.[].rx_queue") | Dictionary | | | | Receive queue parameters for Receive Side Scaling (RSS) profile for this interface. |
+ | [ count](## ".node_groups.[].l3_port_channels.[].member_interfaces.[].rx_queue.count") | Integer | | | Min: 1 | Number of receive queues.
The maximum value is platform dependent. |
+ | [ worker](## ".node_groups.[].l3_port_channels.[].member_interfaces.[].rx_queue.worker") | String | | | | Worker ids specified as combination of range and/or comma separated values
such as 0-4,7. |
+ | [ mode](## ".node_groups.[].l3_port_channels.[].member_interfaces.[].rx_queue.mode") | String | | | Valid Values:
- shared
- exclusive
| Mode applicable to the workers. Default mode is 'shared'. |
| [ structured_config](## ".node_groups.[].l3_port_channels.[].member_interfaces.[].structured_config") | Dictionary | | | | Custom structured config for the member ethernet interface. |
| [ ip_address](## ".node_groups.[].l3_port_channels.[].ip_address") | String | | | | Node IPv4 address/Mask or 'dhcp'. |
| [ dhcp_ip](## ".node_groups.[].l3_port_channels.[].dhcp_ip") | String | | | | When the `ip_address` is `dhcp`, this optional field allows to indicate the expected
IPv4 address (without mask) to be allocated on the interface if known.
This is not rendered in the configuration but can be used for substitution of 'interface_ip' in the Access-list
set under `ipv4_acl_in` and `ipv4_acl_out`. |
@@ -136,6 +148,10 @@
| [ peer](## ".nodes.[].l3_port_channels.[].member_interfaces.[].peer") | String | | | | The peer device name. Used for description and documentation.
If not set, this inherits the peer setting on the port-channel interface. |
| [ peer_interface](## ".nodes.[].l3_port_channels.[].member_interfaces.[].peer_interface") | String | | | | The peer device interface. Used for description and documentation. |
| [ speed](## ".nodes.[].l3_port_channels.[].member_interfaces.[].speed") | String | | | | Speed should be set in the format `` or `forced ` or `auto `. |
+ | [ rx_queue](## ".nodes.[].l3_port_channels.[].member_interfaces.[].rx_queue") | Dictionary | | | | Receive queue parameters for Receive Side Scaling (RSS) profile for this interface. |
+ | [ count](## ".nodes.[].l3_port_channels.[].member_interfaces.[].rx_queue.count") | Integer | | | Min: 1 | Number of receive queues.
The maximum value is platform dependent. |
+ | [ worker](## ".nodes.[].l3_port_channels.[].member_interfaces.[].rx_queue.worker") | String | | | | Worker ids specified as combination of range and/or comma separated values
such as 0-4,7. |
+ | [ mode](## ".nodes.[].l3_port_channels.[].member_interfaces.[].rx_queue.mode") | String | | | Valid Values:
- shared
- exclusive
| Mode applicable to the workers. Default mode is 'shared'. |
| [ structured_config](## ".nodes.[].l3_port_channels.[].member_interfaces.[].structured_config") | Dictionary | | | | Custom structured config for the member ethernet interface. |
| [ ip_address](## ".nodes.[].l3_port_channels.[].ip_address") | String | | | | Node IPv4 address/Mask or 'dhcp'. |
| [ dhcp_ip](## ".nodes.[].l3_port_channels.[].dhcp_ip") | String | | | | When the `ip_address` is `dhcp`, this optional field allows to indicate the expected
IPv4 address (without mask) to be allocated on the interface if known.
This is not rendered in the configuration but can be used for substitution of 'interface_ip' in the Access-list
set under `ipv4_acl_in` and `ipv4_acl_out`. |
@@ -209,6 +225,20 @@
# Speed should be set in the format `` or `forced ` or `auto `.
speed:
+ # Receive queue parameters for Receive Side Scaling (RSS) profile for this interface.
+ rx_queue:
+
+ # Number of receive queues.
+ # The maximum value is platform dependent.
+ count: =1>
+
+ # Worker ids specified as combination of range and/or comma separated values
+ # such as 0-4,7.
+ worker:
+
+ # Mode applicable to the workers. Default mode is 'shared'.
+ mode:
+
# Custom structured config for the member ethernet interface.
structured_config:
@@ -359,6 +389,20 @@
# Speed should be set in the format `` or `forced ` or `auto `.
speed:
+ # Receive queue parameters for Receive Side Scaling (RSS) profile for this interface.
+ rx_queue:
+
+ # Number of receive queues.
+ # The maximum value is platform dependent.
+ count: =1>
+
+ # Worker ids specified as combination of range and/or comma separated values
+ # such as 0-4,7.
+ worker:
+
+ # Mode applicable to the workers. Default mode is 'shared'.
+ mode:
+
# Custom structured config for the member ethernet interface.
structured_config:
@@ -496,6 +540,20 @@
# Speed should be set in the format `` or `forced ` or `auto `.
speed:
+ # Receive queue parameters for Receive Side Scaling (RSS) profile for this interface.
+ rx_queue:
+
+ # Number of receive queues.
+ # The maximum value is platform dependent.
+ count: =1>
+
+ # Worker ids specified as combination of range and/or comma separated values
+ # such as 0-4,7.
+ worker:
+
+ # Mode applicable to the workers. Default mode is 'shared'.
+ mode:
+
# Custom structured config for the member ethernet interface.
structured_config:
@@ -639,6 +697,20 @@
# Speed should be set in the format `` or `forced ` or `auto `.
speed:
+ # Receive queue parameters for Receive Side Scaling (RSS) profile for this interface.
+ rx_queue:
+
+ # Number of receive queues.
+ # The maximum value is platform dependent.
+ count: =1>
+
+ # Worker ids specified as combination of range and/or comma separated values
+ # such as 0-4,7.
+ worker:
+
+ # Mode applicable to the workers. Default mode is 'shared'.
+ mode:
+
# Custom structured config for the member ethernet interface.
structured_config:
diff --git a/ansible_collections/arista/avd/roles/eos_designs/docs/tables/platform-settings.md b/ansible_collections/arista/avd/roles/eos_designs/docs/tables/platform-settings.md
index b775702d906..0f354da8f59 100644
--- a/ansible_collections/arista/avd/roles/eos_designs/docs/tables/platform-settings.md
+++ b/ansible_collections/arista/avd/roles/eos_designs/docs/tables/platform-settings.md
@@ -25,6 +25,7 @@
| [ per_interface_mtu](## "custom_platform_settings.[].feature_support.per_interface_mtu") | Boolean | | `True` | | Support for configuration of per interface MTU for p2p links, MLAG SVIs and Network Services.
Effectively this means that all settings regarding interface MTU will be ignored if this is false.
Platforms without support for per interface MTU can use a single default interface MTU setting. Set this via "default_interface_mtu"
|
| [ bgp_update_wait_install](## "custom_platform_settings.[].feature_support.bgp_update_wait_install") | Boolean | | `True` | | Disables FIB updates and route advertisement when the BGP instance is initiated until the BGP convergence state is reached.
Can be overridden by setting "bgp_update_wait_install" host/group_vars.
|
| [ bgp_update_wait_for_convergence](## "custom_platform_settings.[].feature_support.bgp_update_wait_for_convergence") | Boolean | | `True` | | Do not advertise reachability to a prefix until that prefix has been installed in hardware.
This will eliminate any temporary black holes due to a BGP speaker advertising reachability to a prefix that may not yet be installed into the forwarding plane.
Can be overridden by setting "bgp_update_wait_for_convergence" host/group_vars.
|
+ | [ build_rss_profile](## "custom_platform_settings.[].feature_support.build_rss_profile") | Boolean | | `False` | | Build RSS interface profile for supported platforms. |
| [ management_interface](## "custom_platform_settings.[].management_interface") | String | | `Management1` | | |
| [ security_entropy_sources](## "custom_platform_settings.[].security_entropy_sources") | Dictionary | | | | Entropy source improves the randomness of the numbers used to generate MACsec's cryptographic keys. |
| [ hardware](## "custom_platform_settings.[].security_entropy_sources.hardware") | Boolean | | | | Use a hardware based source. |
@@ -51,6 +52,7 @@
| [ per_interface_mtu](## "platform_settings.[].feature_support.per_interface_mtu") | Boolean | | `True` | | Support for configuration of per interface MTU for p2p links, MLAG SVIs and Network Services.
Effectively this means that all settings regarding interface MTU will be ignored if this is false.
Platforms without support for per interface MTU can use a single default interface MTU setting. Set this via "default_interface_mtu"
|
| [ bgp_update_wait_install](## "platform_settings.[].feature_support.bgp_update_wait_install") | Boolean | | `True` | | Disables FIB updates and route advertisement when the BGP instance is initiated until the BGP convergence state is reached.
Can be overridden by setting "bgp_update_wait_install" host/group_vars.
|
| [ bgp_update_wait_for_convergence](## "platform_settings.[].feature_support.bgp_update_wait_for_convergence") | Boolean | | `True` | | Do not advertise reachability to a prefix until that prefix has been installed in hardware.
This will eliminate any temporary black holes due to a BGP speaker advertising reachability to a prefix that may not yet be installed into the forwarding plane.
Can be overridden by setting "bgp_update_wait_for_convergence" host/group_vars.
|
+ | [ build_rss_profile](## "platform_settings.[].feature_support.build_rss_profile") | Boolean | | `False` | | Build RSS interface profile for supported platforms. |
| [ management_interface](## "platform_settings.[].management_interface") | String | | `Management1` | | |
| [ security_entropy_sources](## "platform_settings.[].security_entropy_sources") | Dictionary | | | | Entropy source improves the randomness of the numbers used to generate MACsec's cryptographic keys. |
| [ hardware](## "platform_settings.[].security_entropy_sources.hardware") | Boolean | | | | Use a hardware based source. |
@@ -112,6 +114,9 @@
# This will eliminate any temporary black holes due to a BGP speaker advertising reachability to a prefix that may not yet be installed into the forwarding plane.
# Can be overridden by setting "bgp_update_wait_for_convergence" host/group_vars.
bgp_update_wait_for_convergence:
+
+ # Build RSS interface profile for supported platforms.
+ build_rss_profile:
management_interface:
# Entropy source improves the randomness of the numbers used to generate MACsec's cryptographic keys.
@@ -178,6 +183,9 @@
# This will eliminate any temporary black holes due to a BGP speaker advertising reachability to a prefix that may not yet be installed into the forwarding plane.
# Can be overridden by setting "bgp_update_wait_for_convergence" host/group_vars.
bgp_update_wait_for_convergence:
+
+ # Build RSS interface profile for supported platforms.
+ build_rss_profile:
management_interface:
# Entropy source improves the randomness of the numbers used to generate MACsec's cryptographic keys.
@@ -356,6 +364,7 @@
- feature_support:
bgp_update_wait_for_convergence: true
bgp_update_wait_install: false
+ build_rss_profile: false
interface_storm_control: false
queue_monitor_length_notify: false
management_interface: Management1/1
diff --git a/python-avd/pyavd/_eos_designs/schema/__init__.py b/python-avd/pyavd/_eos_designs/schema/__init__.py
index e7f93fd31ea..83fbcdae8c2 100644
--- a/python-avd/pyavd/_eos_designs/schema/__init__.py
+++ b/python-avd/pyavd/_eos_designs/schema/__init__.py
@@ -6636,6 +6636,52 @@ def __init__(self, *, policies: Policies | UndefinedType = Undefined, _custom_da
"""
+ class RxQueue(AvdModel):
+ """Subclass of AvdModel."""
+
+ _fields: ClassVar[dict] = {"count": {"type": int}, "worker": {"type": str}, "mode": {"type": str}, "_custom_data": {"type": dict}}
+ count: int | None
+ """
+ Number of receive queues.
+ The maximum value is platform dependent.
+ """
+ worker: str | None
+ """
+ Worker ids specified as combination of range and/or comma separated values
+ such as 0-4,7.
+ """
+ mode: Literal["shared", "exclusive"] | None
+ """Mode applicable to the workers. Default mode is 'shared'."""
+ _custom_data: dict[str, Any]
+
+ if TYPE_CHECKING:
+
+ def __init__(
+ self,
+ *,
+ count: int | None | UndefinedType = Undefined,
+ worker: str | None | UndefinedType = Undefined,
+ mode: Literal["shared", "exclusive"] | None | UndefinedType = Undefined,
+ _custom_data: dict[str, Any] | UndefinedType = Undefined,
+ ) -> None:
+ """
+ RxQueue.
+
+
+ Subclass of AvdModel.
+
+ Args:
+ count:
+ Number of receive queues.
+ The maximum value is platform dependent.
+ worker:
+ Worker ids specified as combination of range and/or comma separated values
+ such as 0-4,7.
+ mode: Mode applicable to the workers. Default mode is 'shared'.
+ _custom_data: _custom_data
+
+ """
+
class FlowTracking(AvdModel):
"""Subclass of AvdModel."""
@@ -6693,6 +6739,7 @@ class StructuredConfig(EosCliConfigGen.EthernetInterfacesItem):
"wan_circuit_id": {"type": str},
"connected_to_pathfinder": {"type": bool, "default": True},
"cv_pathfinder_internet_exit": {"type": CvPathfinderInternetExit},
+ "rx_queue": {"type": RxQueue},
"raw_eos_cli": {"type": str},
"flow_tracking": {"type": FlowTracking},
"structured_config": {"type": StructuredConfig},
@@ -6830,6 +6877,13 @@ class StructuredConfig(EosCliConfigGen.EthernetInterfacesItem):
Subclass of AvdModel.
"""
+ rx_queue: RxQueue
+ """
+ Receive queue parameters for Receive Side Scaling (RSS) profile for this interface.
+
+ Subclass of
+ AvdModel.
+ """
raw_eos_cli: str | None
"""EOS CLI rendered directly on the interface in the final EOS configuration."""
flow_tracking: FlowTracking
@@ -6872,6 +6926,7 @@ def __init__(
wan_circuit_id: str | None | UndefinedType = Undefined,
connected_to_pathfinder: bool | UndefinedType = Undefined,
cv_pathfinder_internet_exit: CvPathfinderInternetExit | UndefinedType = Undefined,
+ rx_queue: RxQueue | UndefinedType = Undefined,
raw_eos_cli: str | None | UndefinedType = Undefined,
flow_tracking: FlowTracking | UndefinedType = Undefined,
structured_config: StructuredConfig | UndefinedType = Undefined,
@@ -6967,6 +7022,11 @@ def __init__(
PREVIEW: This key is in preview mode
Subclass of AvdModel.
+ rx_queue:
+ Receive queue parameters for Receive Side Scaling (RSS) profile for this interface.
+
+ Subclass of
+ AvdModel.
raw_eos_cli: EOS CLI rendered directly on the interface in the final EOS configuration.
flow_tracking:
Configures flow-tracking on the interface. Overrides `fabric_flow_tracking.l3_interfaces` setting.
@@ -10368,6 +10428,7 @@ class FeatureSupport(AvdModel):
"per_interface_mtu": {"type": bool, "default": True},
"bgp_update_wait_install": {"type": bool, "default": True},
"bgp_update_wait_for_convergence": {"type": bool, "default": True},
+ "build_rss_profile": {"type": bool, "default": False},
"_custom_data": {"type": dict},
}
queue_monitor_length_notify: bool
@@ -10405,6 +10466,12 @@ class FeatureSupport(AvdModel):
Default value: `True`
"""
+ build_rss_profile: bool
+ """
+ Build RSS interface profile for supported platforms.
+
+ Default value: `False`
+ """
_custom_data: dict[str, Any]
if TYPE_CHECKING:
@@ -10418,6 +10485,7 @@ def __init__(
per_interface_mtu: bool | UndefinedType = Undefined,
bgp_update_wait_install: bool | UndefinedType = Undefined,
bgp_update_wait_for_convergence: bool | UndefinedType = Undefined,
+ build_rss_profile: bool | UndefinedType = Undefined,
_custom_data: dict[str, Any] | UndefinedType = Undefined,
) -> None:
"""
@@ -10447,6 +10515,7 @@ def __init__(
that may not yet be installed into the forwarding plane.
Can be overridden by setting
"bgp_update_wait_for_convergence" host/group_vars.
+ build_rss_profile: Build RSS interface profile for supported platforms.
_custom_data: _custom_data
"""
@@ -10662,6 +10731,7 @@ class FeatureSupport(AvdModel):
"per_interface_mtu": {"type": bool, "default": True},
"bgp_update_wait_install": {"type": bool, "default": True},
"bgp_update_wait_for_convergence": {"type": bool, "default": True},
+ "build_rss_profile": {"type": bool, "default": False},
"_custom_data": {"type": dict},
}
queue_monitor_length_notify: bool
@@ -10699,6 +10769,12 @@ class FeatureSupport(AvdModel):
Default value: `True`
"""
+ build_rss_profile: bool
+ """
+ Build RSS interface profile for supported platforms.
+
+ Default value: `False`
+ """
_custom_data: dict[str, Any]
if TYPE_CHECKING:
@@ -10712,6 +10788,7 @@ def __init__(
per_interface_mtu: bool | UndefinedType = Undefined,
bgp_update_wait_install: bool | UndefinedType = Undefined,
bgp_update_wait_for_convergence: bool | UndefinedType = Undefined,
+ build_rss_profile: bool | UndefinedType = Undefined,
_custom_data: dict[str, Any] | UndefinedType = Undefined,
) -> None:
"""
@@ -10741,6 +10818,7 @@ def __init__(
that may not yet be installed into the forwarding plane.
Can be overridden by setting
"bgp_update_wait_for_convergence" host/group_vars.
+ build_rss_profile: Build RSS interface profile for supported platforms.
_custom_data: _custom_data
"""
@@ -21242,6 +21320,52 @@ def __init__(
"""
+ class RxQueue(AvdModel):
+ """Subclass of AvdModel."""
+
+ _fields: ClassVar[dict] = {"count": {"type": int}, "worker": {"type": str}, "mode": {"type": str}, "_custom_data": {"type": dict}}
+ count: int | None
+ """
+ Number of receive queues.
+ The maximum value is platform dependent.
+ """
+ worker: str | None
+ """
+ Worker ids specified as combination of range and/or comma separated values
+ such as 0-4,7.
+ """
+ mode: Literal["shared", "exclusive"] | None
+ """Mode applicable to the workers. Default mode is 'shared'."""
+ _custom_data: dict[str, Any]
+
+ if TYPE_CHECKING:
+
+ def __init__(
+ self,
+ *,
+ count: int | None | UndefinedType = Undefined,
+ worker: str | None | UndefinedType = Undefined,
+ mode: Literal["shared", "exclusive"] | None | UndefinedType = Undefined,
+ _custom_data: dict[str, Any] | UndefinedType = Undefined,
+ ) -> None:
+ """
+ RxQueue.
+
+
+ Subclass of AvdModel.
+
+ Args:
+ count:
+ Number of receive queues.
+ The maximum value is platform dependent.
+ worker:
+ Worker ids specified as combination of range and/or comma separated values
+ such as 0-4,7.
+ mode: Mode applicable to the workers. Default mode is 'shared'.
+ _custom_data: _custom_data
+
+ """
+
class FlowTracking(AvdModel):
"""Subclass of AvdModel."""
@@ -21299,6 +21423,7 @@ class StructuredConfig(EosCliConfigGen.EthernetInterfacesItem):
"wan_circuit_id": {"type": str},
"connected_to_pathfinder": {"type": bool, "default": True},
"cv_pathfinder_internet_exit": {"type": CvPathfinderInternetExit},
+ "rx_queue": {"type": RxQueue},
"raw_eos_cli": {"type": str},
"flow_tracking": {"type": FlowTracking},
"structured_config": {"type": StructuredConfig},
@@ -21433,6 +21558,13 @@ class StructuredConfig(EosCliConfigGen.EthernetInterfacesItem):
Subclass of AvdModel.
"""
+ rx_queue: RxQueue
+ """
+ Receive queue parameters for Receive Side Scaling (RSS) profile for this interface.
+
+ Subclass of
+ AvdModel.
+ """
raw_eos_cli: str | None
"""EOS CLI rendered directly on the interface in the final EOS configuration."""
flow_tracking: FlowTracking
@@ -21475,6 +21607,7 @@ def __init__(
wan_circuit_id: str | None | UndefinedType = Undefined,
connected_to_pathfinder: bool | UndefinedType = Undefined,
cv_pathfinder_internet_exit: CvPathfinderInternetExit | UndefinedType = Undefined,
+ rx_queue: RxQueue | UndefinedType = Undefined,
raw_eos_cli: str | None | UndefinedType = Undefined,
flow_tracking: FlowTracking | UndefinedType = Undefined,
structured_config: StructuredConfig | UndefinedType = Undefined,
@@ -21568,6 +21701,11 @@ def __init__(
PREVIEW: This key is in preview mode
Subclass of AvdModel.
+ rx_queue:
+ Receive queue parameters for Receive Side Scaling (RSS) profile for this interface.
+
+ Subclass of
+ AvdModel.
raw_eos_cli: EOS CLI rendered directly on the interface in the final EOS configuration.
flow_tracking:
Configures flow-tracking on the interface. Overrides `fabric_flow_tracking.l3_interfaces` setting.
@@ -21593,6 +21731,57 @@ class L3PortChannelsItem(AvdModel):
class MemberInterfacesItem(AvdModel):
"""Subclass of AvdModel."""
+ class RxQueue(AvdModel):
+ """Subclass of AvdModel."""
+
+ _fields: ClassVar[dict] = {
+ "count": {"type": int},
+ "worker": {"type": str},
+ "mode": {"type": str},
+ "_custom_data": {"type": dict},
+ }
+ count: int | None
+ """
+ Number of receive queues.
+ The maximum value is platform dependent.
+ """
+ worker: str | None
+ """
+ Worker ids specified as combination of range and/or comma separated values
+ such as 0-4,7.
+ """
+ mode: Literal["shared", "exclusive"] | None
+ """Mode applicable to the workers. Default mode is 'shared'."""
+ _custom_data: dict[str, Any]
+
+ if TYPE_CHECKING:
+
+ def __init__(
+ self,
+ *,
+ count: int | None | UndefinedType = Undefined,
+ worker: str | None | UndefinedType = Undefined,
+ mode: Literal["shared", "exclusive"] | None | UndefinedType = Undefined,
+ _custom_data: dict[str, Any] | UndefinedType = Undefined,
+ ) -> None:
+ """
+ RxQueue.
+
+
+ Subclass of AvdModel.
+
+ Args:
+ count:
+ Number of receive queues.
+ The maximum value is platform dependent.
+ worker:
+ Worker ids specified as combination of range and/or comma separated values
+ such as 0-4,7.
+ mode: Mode applicable to the workers. Default mode is 'shared'.
+ _custom_data: _custom_data
+
+ """
+
class StructuredConfig(EosCliConfigGen.EthernetInterfacesItem):
"""Subclass of AvdModel."""
@@ -21602,6 +21791,7 @@ class StructuredConfig(EosCliConfigGen.EthernetInterfacesItem):
"peer": {"type": str},
"peer_interface": {"type": str},
"speed": {"type": str},
+ "rx_queue": {"type": RxQueue},
"structured_config": {"type": StructuredConfig},
"_custom_data": {"type": dict},
}
@@ -21629,6 +21819,13 @@ class StructuredConfig(EosCliConfigGen.EthernetInterfacesItem):
Speed should be set in the format `` or `forced ` or `auto
`.
"""
+ rx_queue: RxQueue
+ """
+ Receive queue parameters for Receive Side Scaling (RSS) profile for this interface.
+
+ Subclass of
+ AvdModel.
+ """
structured_config: StructuredConfig
"""
Custom structured config for the member ethernet interface.
@@ -21647,6 +21844,7 @@ def __init__(
peer: str | None | UndefinedType = Undefined,
peer_interface: str | None | UndefinedType = Undefined,
speed: str | None | UndefinedType = Undefined,
+ rx_queue: RxQueue | UndefinedType = Undefined,
structured_config: StructuredConfig | UndefinedType = Undefined,
_custom_data: dict[str, Any] | UndefinedType = Undefined,
) -> None:
@@ -21672,6 +21870,11 @@ def __init__(
speed:
Speed should be set in the format `` or `forced ` or `auto
`.
+ rx_queue:
+ Receive queue parameters for Receive Side Scaling (RSS) profile for this interface.
+
+ Subclass of
+ AvdModel.
structured_config:
Custom structured config for the member ethernet interface.
@@ -25341,6 +25544,57 @@ def __init__(
"""
+ class RxQueue(AvdModel):
+ """Subclass of AvdModel."""
+
+ _fields: ClassVar[dict] = {
+ "count": {"type": int},
+ "worker": {"type": str},
+ "mode": {"type": str},
+ "_custom_data": {"type": dict},
+ }
+ count: int | None
+ """
+ Number of receive queues.
+ The maximum value is platform dependent.
+ """
+ worker: str | None
+ """
+ Worker ids specified as combination of range and/or comma separated values
+ such as 0-4,7.
+ """
+ mode: Literal["shared", "exclusive"] | None
+ """Mode applicable to the workers. Default mode is 'shared'."""
+ _custom_data: dict[str, Any]
+
+ if TYPE_CHECKING:
+
+ def __init__(
+ self,
+ *,
+ count: int | None | UndefinedType = Undefined,
+ worker: str | None | UndefinedType = Undefined,
+ mode: Literal["shared", "exclusive"] | None | UndefinedType = Undefined,
+ _custom_data: dict[str, Any] | UndefinedType = Undefined,
+ ) -> None:
+ """
+ RxQueue.
+
+
+ Subclass of AvdModel.
+
+ Args:
+ count:
+ Number of receive queues.
+ The maximum value is platform dependent.
+ worker:
+ Worker ids specified as combination of range and/or comma separated values
+ such as 0-4,7.
+ mode: Mode applicable to the workers. Default mode is 'shared'.
+ _custom_data: _custom_data
+
+ """
+
class FlowTracking(AvdModel):
"""Subclass of AvdModel."""
@@ -25398,6 +25652,7 @@ class StructuredConfig(EosCliConfigGen.EthernetInterfacesItem):
"wan_circuit_id": {"type": str},
"connected_to_pathfinder": {"type": bool, "default": True},
"cv_pathfinder_internet_exit": {"type": CvPathfinderInternetExit},
+ "rx_queue": {"type": RxQueue},
"raw_eos_cli": {"type": str},
"flow_tracking": {"type": FlowTracking},
"structured_config": {"type": StructuredConfig},
@@ -25532,6 +25787,13 @@ class StructuredConfig(EosCliConfigGen.EthernetInterfacesItem):
Subclass of AvdModel.
"""
+ rx_queue: RxQueue
+ """
+ Receive queue parameters for Receive Side Scaling (RSS) profile for this interface.
+
+ Subclass of
+ AvdModel.
+ """
raw_eos_cli: str | None
"""EOS CLI rendered directly on the interface in the final EOS configuration."""
flow_tracking: FlowTracking
@@ -25574,6 +25836,7 @@ def __init__(
wan_circuit_id: str | None | UndefinedType = Undefined,
connected_to_pathfinder: bool | UndefinedType = Undefined,
cv_pathfinder_internet_exit: CvPathfinderInternetExit | UndefinedType = Undefined,
+ rx_queue: RxQueue | UndefinedType = Undefined,
raw_eos_cli: str | None | UndefinedType = Undefined,
flow_tracking: FlowTracking | UndefinedType = Undefined,
structured_config: StructuredConfig | UndefinedType = Undefined,
@@ -25667,6 +25930,11 @@ def __init__(
PREVIEW: This key is in preview mode
Subclass of AvdModel.
+ rx_queue:
+ Receive queue parameters for Receive Side Scaling (RSS) profile for this interface.
+
+ Subclass of
+ AvdModel.
raw_eos_cli: EOS CLI rendered directly on the interface in the final EOS configuration.
flow_tracking:
Configures flow-tracking on the interface. Overrides `fabric_flow_tracking.l3_interfaces` setting.
@@ -25692,6 +25960,57 @@ class L3PortChannelsItem(AvdModel):
class MemberInterfacesItem(AvdModel):
"""Subclass of AvdModel."""
+ class RxQueue(AvdModel):
+ """Subclass of AvdModel."""
+
+ _fields: ClassVar[dict] = {
+ "count": {"type": int},
+ "worker": {"type": str},
+ "mode": {"type": str},
+ "_custom_data": {"type": dict},
+ }
+ count: int | None
+ """
+ Number of receive queues.
+ The maximum value is platform dependent.
+ """
+ worker: str | None
+ """
+ Worker ids specified as combination of range and/or comma separated values
+ such as 0-4,7.
+ """
+ mode: Literal["shared", "exclusive"] | None
+ """Mode applicable to the workers. Default mode is 'shared'."""
+ _custom_data: dict[str, Any]
+
+ if TYPE_CHECKING:
+
+ def __init__(
+ self,
+ *,
+ count: int | None | UndefinedType = Undefined,
+ worker: str | None | UndefinedType = Undefined,
+ mode: Literal["shared", "exclusive"] | None | UndefinedType = Undefined,
+ _custom_data: dict[str, Any] | UndefinedType = Undefined,
+ ) -> None:
+ """
+ RxQueue.
+
+
+ Subclass of AvdModel.
+
+ Args:
+ count:
+ Number of receive queues.
+ The maximum value is platform dependent.
+ worker:
+ Worker ids specified as combination of range and/or comma separated values
+ such as 0-4,7.
+ mode: Mode applicable to the workers. Default mode is 'shared'.
+ _custom_data: _custom_data
+
+ """
+
class StructuredConfig(EosCliConfigGen.EthernetInterfacesItem):
"""Subclass of AvdModel."""
@@ -25701,6 +26020,7 @@ class StructuredConfig(EosCliConfigGen.EthernetInterfacesItem):
"peer": {"type": str},
"peer_interface": {"type": str},
"speed": {"type": str},
+ "rx_queue": {"type": RxQueue},
"structured_config": {"type": StructuredConfig},
"_custom_data": {"type": dict},
}
@@ -25728,6 +26048,13 @@ class StructuredConfig(EosCliConfigGen.EthernetInterfacesItem):
Speed should be set in the format `` or `forced ` or `auto
`.
"""
+ rx_queue: RxQueue
+ """
+ Receive queue parameters for Receive Side Scaling (RSS) profile for this interface.
+
+ Subclass of
+ AvdModel.
+ """
structured_config: StructuredConfig
"""
Custom structured config for the member ethernet interface.
@@ -25746,6 +26073,7 @@ def __init__(
peer: str | None | UndefinedType = Undefined,
peer_interface: str | None | UndefinedType = Undefined,
speed: str | None | UndefinedType = Undefined,
+ rx_queue: RxQueue | UndefinedType = Undefined,
structured_config: StructuredConfig | UndefinedType = Undefined,
_custom_data: dict[str, Any] | UndefinedType = Undefined,
) -> None:
@@ -25771,6 +26099,11 @@ def __init__(
speed:
Speed should be set in the format `` or `forced ` or `auto
`.
+ rx_queue:
+ Receive queue parameters for Receive Side Scaling (RSS) profile for this interface.
+
+ Subclass of
+ AvdModel.
structured_config:
Custom structured config for the member ethernet interface.
@@ -29394,6 +29727,52 @@ def __init__(
"""
+ class RxQueue(AvdModel):
+ """Subclass of AvdModel."""
+
+ _fields: ClassVar[dict] = {"count": {"type": int}, "worker": {"type": str}, "mode": {"type": str}, "_custom_data": {"type": dict}}
+ count: int | None
+ """
+ Number of receive queues.
+ The maximum value is platform dependent.
+ """
+ worker: str | None
+ """
+ Worker ids specified as combination of range and/or comma separated values
+ such as 0-4,7.
+ """
+ mode: Literal["shared", "exclusive"] | None
+ """Mode applicable to the workers. Default mode is 'shared'."""
+ _custom_data: dict[str, Any]
+
+ if TYPE_CHECKING:
+
+ def __init__(
+ self,
+ *,
+ count: int | None | UndefinedType = Undefined,
+ worker: str | None | UndefinedType = Undefined,
+ mode: Literal["shared", "exclusive"] | None | UndefinedType = Undefined,
+ _custom_data: dict[str, Any] | UndefinedType = Undefined,
+ ) -> None:
+ """
+ RxQueue.
+
+
+ Subclass of AvdModel.
+
+ Args:
+ count:
+ Number of receive queues.
+ The maximum value is platform dependent.
+ worker:
+ Worker ids specified as combination of range and/or comma separated values
+ such as 0-4,7.
+ mode: Mode applicable to the workers. Default mode is 'shared'.
+ _custom_data: _custom_data
+
+ """
+
class FlowTracking(AvdModel):
"""Subclass of AvdModel."""
@@ -29451,6 +29830,7 @@ class StructuredConfig(EosCliConfigGen.EthernetInterfacesItem):
"wan_circuit_id": {"type": str},
"connected_to_pathfinder": {"type": bool, "default": True},
"cv_pathfinder_internet_exit": {"type": CvPathfinderInternetExit},
+ "rx_queue": {"type": RxQueue},
"raw_eos_cli": {"type": str},
"flow_tracking": {"type": FlowTracking},
"structured_config": {"type": StructuredConfig},
@@ -29585,6 +29965,13 @@ class StructuredConfig(EosCliConfigGen.EthernetInterfacesItem):
Subclass of AvdModel.
"""
+ rx_queue: RxQueue
+ """
+ Receive queue parameters for Receive Side Scaling (RSS) profile for this interface.
+
+ Subclass of
+ AvdModel.
+ """
raw_eos_cli: str | None
"""EOS CLI rendered directly on the interface in the final EOS configuration."""
flow_tracking: FlowTracking
@@ -29627,6 +30014,7 @@ def __init__(
wan_circuit_id: str | None | UndefinedType = Undefined,
connected_to_pathfinder: bool | UndefinedType = Undefined,
cv_pathfinder_internet_exit: CvPathfinderInternetExit | UndefinedType = Undefined,
+ rx_queue: RxQueue | UndefinedType = Undefined,
raw_eos_cli: str | None | UndefinedType = Undefined,
flow_tracking: FlowTracking | UndefinedType = Undefined,
structured_config: StructuredConfig | UndefinedType = Undefined,
@@ -29720,6 +30108,11 @@ def __init__(
PREVIEW: This key is in preview mode
Subclass of AvdModel.
+ rx_queue:
+ Receive queue parameters for Receive Side Scaling (RSS) profile for this interface.
+
+ Subclass of
+ AvdModel.
raw_eos_cli: EOS CLI rendered directly on the interface in the final EOS configuration.
flow_tracking:
Configures flow-tracking on the interface. Overrides `fabric_flow_tracking.l3_interfaces` setting.
@@ -29745,6 +30138,57 @@ class L3PortChannelsItem(AvdModel):
class MemberInterfacesItem(AvdModel):
"""Subclass of AvdModel."""
+ class RxQueue(AvdModel):
+ """Subclass of AvdModel."""
+
+ _fields: ClassVar[dict] = {
+ "count": {"type": int},
+ "worker": {"type": str},
+ "mode": {"type": str},
+ "_custom_data": {"type": dict},
+ }
+ count: int | None
+ """
+ Number of receive queues.
+ The maximum value is platform dependent.
+ """
+ worker: str | None
+ """
+ Worker ids specified as combination of range and/or comma separated values
+ such as 0-4,7.
+ """
+ mode: Literal["shared", "exclusive"] | None
+ """Mode applicable to the workers. Default mode is 'shared'."""
+ _custom_data: dict[str, Any]
+
+ if TYPE_CHECKING:
+
+ def __init__(
+ self,
+ *,
+ count: int | None | UndefinedType = Undefined,
+ worker: str | None | UndefinedType = Undefined,
+ mode: Literal["shared", "exclusive"] | None | UndefinedType = Undefined,
+ _custom_data: dict[str, Any] | UndefinedType = Undefined,
+ ) -> None:
+ """
+ RxQueue.
+
+
+ Subclass of AvdModel.
+
+ Args:
+ count:
+ Number of receive queues.
+ The maximum value is platform dependent.
+ worker:
+ Worker ids specified as combination of range and/or comma separated values
+ such as 0-4,7.
+ mode: Mode applicable to the workers. Default mode is 'shared'.
+ _custom_data: _custom_data
+
+ """
+
class StructuredConfig(EosCliConfigGen.EthernetInterfacesItem):
"""Subclass of AvdModel."""
@@ -29754,6 +30198,7 @@ class StructuredConfig(EosCliConfigGen.EthernetInterfacesItem):
"peer": {"type": str},
"peer_interface": {"type": str},
"speed": {"type": str},
+ "rx_queue": {"type": RxQueue},
"structured_config": {"type": StructuredConfig},
"_custom_data": {"type": dict},
}
@@ -29781,6 +30226,13 @@ class StructuredConfig(EosCliConfigGen.EthernetInterfacesItem):
Speed should be set in the format `` or `forced ` or `auto
`.
"""
+ rx_queue: RxQueue
+ """
+ Receive queue parameters for Receive Side Scaling (RSS) profile for this interface.
+
+ Subclass of
+ AvdModel.
+ """
structured_config: StructuredConfig
"""
Custom structured config for the member ethernet interface.
@@ -29799,6 +30251,7 @@ def __init__(
peer: str | None | UndefinedType = Undefined,
peer_interface: str | None | UndefinedType = Undefined,
speed: str | None | UndefinedType = Undefined,
+ rx_queue: RxQueue | UndefinedType = Undefined,
structured_config: StructuredConfig | UndefinedType = Undefined,
_custom_data: dict[str, Any] | UndefinedType = Undefined,
) -> None:
@@ -29824,6 +30277,11 @@ def __init__(
speed:
Speed should be set in the format `` or `forced ` or `auto
`.
+ rx_queue:
+ Receive queue parameters for Receive Side Scaling (RSS) profile for this interface.
+
+ Subclass of
+ AvdModel.
structured_config:
Custom structured config for the member ethernet interface.
@@ -33521,6 +33979,52 @@ def __init__(
"""
+ class RxQueue(AvdModel):
+ """Subclass of AvdModel."""
+
+ _fields: ClassVar[dict] = {"count": {"type": int}, "worker": {"type": str}, "mode": {"type": str}, "_custom_data": {"type": dict}}
+ count: int | None
+ """
+ Number of receive queues.
+ The maximum value is platform dependent.
+ """
+ worker: str | None
+ """
+ Worker ids specified as combination of range and/or comma separated values
+ such as 0-4,7.
+ """
+ mode: Literal["shared", "exclusive"] | None
+ """Mode applicable to the workers. Default mode is 'shared'."""
+ _custom_data: dict[str, Any]
+
+ if TYPE_CHECKING:
+
+ def __init__(
+ self,
+ *,
+ count: int | None | UndefinedType = Undefined,
+ worker: str | None | UndefinedType = Undefined,
+ mode: Literal["shared", "exclusive"] | None | UndefinedType = Undefined,
+ _custom_data: dict[str, Any] | UndefinedType = Undefined,
+ ) -> None:
+ """
+ RxQueue.
+
+
+ Subclass of AvdModel.
+
+ Args:
+ count:
+ Number of receive queues.
+ The maximum value is platform dependent.
+ worker:
+ Worker ids specified as combination of range and/or comma separated values
+ such as 0-4,7.
+ mode: Mode applicable to the workers. Default mode is 'shared'.
+ _custom_data: _custom_data
+
+ """
+
class FlowTracking(AvdModel):
"""Subclass of AvdModel."""
@@ -33578,6 +34082,7 @@ class StructuredConfig(EosCliConfigGen.EthernetInterfacesItem):
"wan_circuit_id": {"type": str},
"connected_to_pathfinder": {"type": bool, "default": True},
"cv_pathfinder_internet_exit": {"type": CvPathfinderInternetExit},
+ "rx_queue": {"type": RxQueue},
"raw_eos_cli": {"type": str},
"flow_tracking": {"type": FlowTracking},
"structured_config": {"type": StructuredConfig},
@@ -33712,6 +34217,13 @@ class StructuredConfig(EosCliConfigGen.EthernetInterfacesItem):
Subclass of AvdModel.
"""
+ rx_queue: RxQueue
+ """
+ Receive queue parameters for Receive Side Scaling (RSS) profile for this interface.
+
+ Subclass of
+ AvdModel.
+ """
raw_eos_cli: str | None
"""EOS CLI rendered directly on the interface in the final EOS configuration."""
flow_tracking: FlowTracking
@@ -33754,6 +34266,7 @@ def __init__(
wan_circuit_id: str | None | UndefinedType = Undefined,
connected_to_pathfinder: bool | UndefinedType = Undefined,
cv_pathfinder_internet_exit: CvPathfinderInternetExit | UndefinedType = Undefined,
+ rx_queue: RxQueue | UndefinedType = Undefined,
raw_eos_cli: str | None | UndefinedType = Undefined,
flow_tracking: FlowTracking | UndefinedType = Undefined,
structured_config: StructuredConfig | UndefinedType = Undefined,
@@ -33847,6 +34360,11 @@ def __init__(
PREVIEW: This key is in preview mode
Subclass of AvdModel.
+ rx_queue:
+ Receive queue parameters for Receive Side Scaling (RSS) profile for this interface.
+
+ Subclass of
+ AvdModel.
raw_eos_cli: EOS CLI rendered directly on the interface in the final EOS configuration.
flow_tracking:
Configures flow-tracking on the interface. Overrides `fabric_flow_tracking.l3_interfaces` setting.
@@ -33872,6 +34390,57 @@ class L3PortChannelsItem(AvdModel):
class MemberInterfacesItem(AvdModel):
"""Subclass of AvdModel."""
+ class RxQueue(AvdModel):
+ """Subclass of AvdModel."""
+
+ _fields: ClassVar[dict] = {
+ "count": {"type": int},
+ "worker": {"type": str},
+ "mode": {"type": str},
+ "_custom_data": {"type": dict},
+ }
+ count: int | None
+ """
+ Number of receive queues.
+ The maximum value is platform dependent.
+ """
+ worker: str | None
+ """
+ Worker ids specified as combination of range and/or comma separated values
+ such as 0-4,7.
+ """
+ mode: Literal["shared", "exclusive"] | None
+ """Mode applicable to the workers. Default mode is 'shared'."""
+ _custom_data: dict[str, Any]
+
+ if TYPE_CHECKING:
+
+ def __init__(
+ self,
+ *,
+ count: int | None | UndefinedType = Undefined,
+ worker: str | None | UndefinedType = Undefined,
+ mode: Literal["shared", "exclusive"] | None | UndefinedType = Undefined,
+ _custom_data: dict[str, Any] | UndefinedType = Undefined,
+ ) -> None:
+ """
+ RxQueue.
+
+
+ Subclass of AvdModel.
+
+ Args:
+ count:
+ Number of receive queues.
+ The maximum value is platform dependent.
+ worker:
+ Worker ids specified as combination of range and/or comma separated values
+ such as 0-4,7.
+ mode: Mode applicable to the workers. Default mode is 'shared'.
+ _custom_data: _custom_data
+
+ """
+
class StructuredConfig(EosCliConfigGen.EthernetInterfacesItem):
"""Subclass of AvdModel."""
@@ -33881,6 +34450,7 @@ class StructuredConfig(EosCliConfigGen.EthernetInterfacesItem):
"peer": {"type": str},
"peer_interface": {"type": str},
"speed": {"type": str},
+ "rx_queue": {"type": RxQueue},
"structured_config": {"type": StructuredConfig},
"_custom_data": {"type": dict},
}
@@ -33908,6 +34478,13 @@ class StructuredConfig(EosCliConfigGen.EthernetInterfacesItem):
Speed should be set in the format `` or `forced ` or `auto
`.
"""
+ rx_queue: RxQueue
+ """
+ Receive queue parameters for Receive Side Scaling (RSS) profile for this interface.
+
+ Subclass of
+ AvdModel.
+ """
structured_config: StructuredConfig
"""
Custom structured config for the member ethernet interface.
@@ -33926,6 +34503,7 @@ def __init__(
peer: str | None | UndefinedType = Undefined,
peer_interface: str | None | UndefinedType = Undefined,
speed: str | None | UndefinedType = Undefined,
+ rx_queue: RxQueue | UndefinedType = Undefined,
structured_config: StructuredConfig | UndefinedType = Undefined,
_custom_data: dict[str, Any] | UndefinedType = Undefined,
) -> None:
@@ -33951,6 +34529,11 @@ def __init__(
speed:
Speed should be set in the format `` or `forced ` or `auto
`.
+ rx_queue:
+ Receive queue parameters for Receive Side Scaling (RSS) profile for this interface.
+
+ Subclass of
+ AvdModel.
structured_config:
Custom structured config for the member ethernet interface.
@@ -44503,6 +45086,52 @@ def __init__(
"""
+ class RxQueue(AvdModel):
+ """Subclass of AvdModel."""
+
+ _fields: ClassVar[dict] = {"count": {"type": int}, "worker": {"type": str}, "mode": {"type": str}, "_custom_data": {"type": dict}}
+ count: int | None
+ """
+ Number of receive queues.
+ The maximum value is platform dependent.
+ """
+ worker: str | None
+ """
+ Worker ids specified as combination of range and/or comma separated values
+ such as 0-4,7.
+ """
+ mode: Literal["shared", "exclusive"] | None
+ """Mode applicable to the workers. Default mode is 'shared'."""
+ _custom_data: dict[str, Any]
+
+ if TYPE_CHECKING:
+
+ def __init__(
+ self,
+ *,
+ count: int | None | UndefinedType = Undefined,
+ worker: str | None | UndefinedType = Undefined,
+ mode: Literal["shared", "exclusive"] | None | UndefinedType = Undefined,
+ _custom_data: dict[str, Any] | UndefinedType = Undefined,
+ ) -> None:
+ """
+ RxQueue.
+
+
+ Subclass of AvdModel.
+
+ Args:
+ count:
+ Number of receive queues.
+ The maximum value is platform dependent.
+ worker:
+ Worker ids specified as combination of range and/or comma separated values
+ such as 0-4,7.
+ mode: Mode applicable to the workers. Default mode is 'shared'.
+ _custom_data: _custom_data
+
+ """
+
class FlowTracking(AvdModel):
"""Subclass of AvdModel."""
@@ -44560,6 +45189,7 @@ class StructuredConfig(EosCliConfigGen.EthernetInterfacesItem):
"wan_circuit_id": {"type": str},
"connected_to_pathfinder": {"type": bool, "default": True},
"cv_pathfinder_internet_exit": {"type": CvPathfinderInternetExit},
+ "rx_queue": {"type": RxQueue},
"raw_eos_cli": {"type": str},
"flow_tracking": {"type": FlowTracking},
"structured_config": {"type": StructuredConfig},
@@ -44694,6 +45324,13 @@ class StructuredConfig(EosCliConfigGen.EthernetInterfacesItem):
Subclass of AvdModel.
"""
+ rx_queue: RxQueue
+ """
+ Receive queue parameters for Receive Side Scaling (RSS) profile for this interface.
+
+ Subclass of
+ AvdModel.
+ """
raw_eos_cli: str | None
"""EOS CLI rendered directly on the interface in the final EOS configuration."""
flow_tracking: FlowTracking
@@ -44736,6 +45373,7 @@ def __init__(
wan_circuit_id: str | None | UndefinedType = Undefined,
connected_to_pathfinder: bool | UndefinedType = Undefined,
cv_pathfinder_internet_exit: CvPathfinderInternetExit | UndefinedType = Undefined,
+ rx_queue: RxQueue | UndefinedType = Undefined,
raw_eos_cli: str | None | UndefinedType = Undefined,
flow_tracking: FlowTracking | UndefinedType = Undefined,
structured_config: StructuredConfig | UndefinedType = Undefined,
@@ -44829,6 +45467,11 @@ def __init__(
PREVIEW: This key is in preview mode
Subclass of AvdModel.
+ rx_queue:
+ Receive queue parameters for Receive Side Scaling (RSS) profile for this interface.
+
+ Subclass of
+ AvdModel.
raw_eos_cli: EOS CLI rendered directly on the interface in the final EOS configuration.
flow_tracking:
Configures flow-tracking on the interface. Overrides `fabric_flow_tracking.l3_interfaces` setting.
@@ -44854,6 +45497,57 @@ class L3PortChannelsItem(AvdModel):
class MemberInterfacesItem(AvdModel):
"""Subclass of AvdModel."""
+ class RxQueue(AvdModel):
+ """Subclass of AvdModel."""
+
+ _fields: ClassVar[dict] = {
+ "count": {"type": int},
+ "worker": {"type": str},
+ "mode": {"type": str},
+ "_custom_data": {"type": dict},
+ }
+ count: int | None
+ """
+ Number of receive queues.
+ The maximum value is platform dependent.
+ """
+ worker: str | None
+ """
+ Worker ids specified as combination of range and/or comma separated values
+ such as 0-4,7.
+ """
+ mode: Literal["shared", "exclusive"] | None
+ """Mode applicable to the workers. Default mode is 'shared'."""
+ _custom_data: dict[str, Any]
+
+ if TYPE_CHECKING:
+
+ def __init__(
+ self,
+ *,
+ count: int | None | UndefinedType = Undefined,
+ worker: str | None | UndefinedType = Undefined,
+ mode: Literal["shared", "exclusive"] | None | UndefinedType = Undefined,
+ _custom_data: dict[str, Any] | UndefinedType = Undefined,
+ ) -> None:
+ """
+ RxQueue.
+
+
+ Subclass of AvdModel.
+
+ Args:
+ count:
+ Number of receive queues.
+ The maximum value is platform dependent.
+ worker:
+ Worker ids specified as combination of range and/or comma separated values
+ such as 0-4,7.
+ mode: Mode applicable to the workers. Default mode is 'shared'.
+ _custom_data: _custom_data
+
+ """
+
class StructuredConfig(EosCliConfigGen.EthernetInterfacesItem):
"""Subclass of AvdModel."""
@@ -44863,6 +45557,7 @@ class StructuredConfig(EosCliConfigGen.EthernetInterfacesItem):
"peer": {"type": str},
"peer_interface": {"type": str},
"speed": {"type": str},
+ "rx_queue": {"type": RxQueue},
"structured_config": {"type": StructuredConfig},
"_custom_data": {"type": dict},
}
@@ -44890,6 +45585,13 @@ class StructuredConfig(EosCliConfigGen.EthernetInterfacesItem):
Speed should be set in the format `` or `forced ` or `auto
`.
"""
+ rx_queue: RxQueue
+ """
+ Receive queue parameters for Receive Side Scaling (RSS) profile for this interface.
+
+ Subclass of
+ AvdModel.
+ """
structured_config: StructuredConfig
"""
Custom structured config for the member ethernet interface.
@@ -44908,6 +45610,7 @@ def __init__(
peer: str | None | UndefinedType = Undefined,
peer_interface: str | None | UndefinedType = Undefined,
speed: str | None | UndefinedType = Undefined,
+ rx_queue: RxQueue | UndefinedType = Undefined,
structured_config: StructuredConfig | UndefinedType = Undefined,
_custom_data: dict[str, Any] | UndefinedType = Undefined,
) -> None:
@@ -44933,6 +45636,11 @@ def __init__(
speed:
Speed should be set in the format `` or `forced ` or `auto
`.
+ rx_queue:
+ Receive queue parameters for Receive Side Scaling (RSS) profile for this interface.
+
+ Subclass of
+ AvdModel.
structured_config:
Custom structured config for the member ethernet interface.
@@ -48602,6 +49310,57 @@ def __init__(
"""
+ class RxQueue(AvdModel):
+ """Subclass of AvdModel."""
+
+ _fields: ClassVar[dict] = {
+ "count": {"type": int},
+ "worker": {"type": str},
+ "mode": {"type": str},
+ "_custom_data": {"type": dict},
+ }
+ count: int | None
+ """
+ Number of receive queues.
+ The maximum value is platform dependent.
+ """
+ worker: str | None
+ """
+ Worker ids specified as combination of range and/or comma separated values
+ such as 0-4,7.
+ """
+ mode: Literal["shared", "exclusive"] | None
+ """Mode applicable to the workers. Default mode is 'shared'."""
+ _custom_data: dict[str, Any]
+
+ if TYPE_CHECKING:
+
+ def __init__(
+ self,
+ *,
+ count: int | None | UndefinedType = Undefined,
+ worker: str | None | UndefinedType = Undefined,
+ mode: Literal["shared", "exclusive"] | None | UndefinedType = Undefined,
+ _custom_data: dict[str, Any] | UndefinedType = Undefined,
+ ) -> None:
+ """
+ RxQueue.
+
+
+ Subclass of AvdModel.
+
+ Args:
+ count:
+ Number of receive queues.
+ The maximum value is platform dependent.
+ worker:
+ Worker ids specified as combination of range and/or comma separated values
+ such as 0-4,7.
+ mode: Mode applicable to the workers. Default mode is 'shared'.
+ _custom_data: _custom_data
+
+ """
+
class FlowTracking(AvdModel):
"""Subclass of AvdModel."""
@@ -48659,6 +49418,7 @@ class StructuredConfig(EosCliConfigGen.EthernetInterfacesItem):
"wan_circuit_id": {"type": str},
"connected_to_pathfinder": {"type": bool, "default": True},
"cv_pathfinder_internet_exit": {"type": CvPathfinderInternetExit},
+ "rx_queue": {"type": RxQueue},
"raw_eos_cli": {"type": str},
"flow_tracking": {"type": FlowTracking},
"structured_config": {"type": StructuredConfig},
@@ -48793,6 +49553,13 @@ class StructuredConfig(EosCliConfigGen.EthernetInterfacesItem):
Subclass of AvdModel.
"""
+ rx_queue: RxQueue
+ """
+ Receive queue parameters for Receive Side Scaling (RSS) profile for this interface.
+
+ Subclass of
+ AvdModel.
+ """
raw_eos_cli: str | None
"""EOS CLI rendered directly on the interface in the final EOS configuration."""
flow_tracking: FlowTracking
@@ -48835,6 +49602,7 @@ def __init__(
wan_circuit_id: str | None | UndefinedType = Undefined,
connected_to_pathfinder: bool | UndefinedType = Undefined,
cv_pathfinder_internet_exit: CvPathfinderInternetExit | UndefinedType = Undefined,
+ rx_queue: RxQueue | UndefinedType = Undefined,
raw_eos_cli: str | None | UndefinedType = Undefined,
flow_tracking: FlowTracking | UndefinedType = Undefined,
structured_config: StructuredConfig | UndefinedType = Undefined,
@@ -48928,6 +49696,11 @@ def __init__(
PREVIEW: This key is in preview mode
Subclass of AvdModel.
+ rx_queue:
+ Receive queue parameters for Receive Side Scaling (RSS) profile for this interface.
+
+ Subclass of
+ AvdModel.
raw_eos_cli: EOS CLI rendered directly on the interface in the final EOS configuration.
flow_tracking:
Configures flow-tracking on the interface. Overrides `fabric_flow_tracking.l3_interfaces` setting.
@@ -48953,6 +49726,57 @@ class L3PortChannelsItem(AvdModel):
class MemberInterfacesItem(AvdModel):
"""Subclass of AvdModel."""
+ class RxQueue(AvdModel):
+ """Subclass of AvdModel."""
+
+ _fields: ClassVar[dict] = {
+ "count": {"type": int},
+ "worker": {"type": str},
+ "mode": {"type": str},
+ "_custom_data": {"type": dict},
+ }
+ count: int | None
+ """
+ Number of receive queues.
+ The maximum value is platform dependent.
+ """
+ worker: str | None
+ """
+ Worker ids specified as combination of range and/or comma separated values
+ such as 0-4,7.
+ """
+ mode: Literal["shared", "exclusive"] | None
+ """Mode applicable to the workers. Default mode is 'shared'."""
+ _custom_data: dict[str, Any]
+
+ if TYPE_CHECKING:
+
+ def __init__(
+ self,
+ *,
+ count: int | None | UndefinedType = Undefined,
+ worker: str | None | UndefinedType = Undefined,
+ mode: Literal["shared", "exclusive"] | None | UndefinedType = Undefined,
+ _custom_data: dict[str, Any] | UndefinedType = Undefined,
+ ) -> None:
+ """
+ RxQueue.
+
+
+ Subclass of AvdModel.
+
+ Args:
+ count:
+ Number of receive queues.
+ The maximum value is platform dependent.
+ worker:
+ Worker ids specified as combination of range and/or comma separated values
+ such as 0-4,7.
+ mode: Mode applicable to the workers. Default mode is 'shared'.
+ _custom_data: _custom_data
+
+ """
+
class StructuredConfig(EosCliConfigGen.EthernetInterfacesItem):
"""Subclass of AvdModel."""
@@ -48962,6 +49786,7 @@ class StructuredConfig(EosCliConfigGen.EthernetInterfacesItem):
"peer": {"type": str},
"peer_interface": {"type": str},
"speed": {"type": str},
+ "rx_queue": {"type": RxQueue},
"structured_config": {"type": StructuredConfig},
"_custom_data": {"type": dict},
}
@@ -48989,6 +49814,13 @@ class StructuredConfig(EosCliConfigGen.EthernetInterfacesItem):
Speed should be set in the format `` or `forced ` or `auto
`.
"""
+ rx_queue: RxQueue
+ """
+ Receive queue parameters for Receive Side Scaling (RSS) profile for this interface.
+
+ Subclass of
+ AvdModel.
+ """
structured_config: StructuredConfig
"""
Custom structured config for the member ethernet interface.
@@ -49007,6 +49839,7 @@ def __init__(
peer: str | None | UndefinedType = Undefined,
peer_interface: str | None | UndefinedType = Undefined,
speed: str | None | UndefinedType = Undefined,
+ rx_queue: RxQueue | UndefinedType = Undefined,
structured_config: StructuredConfig | UndefinedType = Undefined,
_custom_data: dict[str, Any] | UndefinedType = Undefined,
) -> None:
@@ -49032,6 +49865,11 @@ def __init__(
speed:
Speed should be set in the format `` or `forced ` or `auto
`.
+ rx_queue:
+ Receive queue parameters for Receive Side Scaling (RSS) profile for this interface.
+
+ Subclass of
+ AvdModel.
structured_config:
Custom structured config for the member ethernet interface.
@@ -52655,6 +53493,52 @@ def __init__(
"""
+ class RxQueue(AvdModel):
+ """Subclass of AvdModel."""
+
+ _fields: ClassVar[dict] = {"count": {"type": int}, "worker": {"type": str}, "mode": {"type": str}, "_custom_data": {"type": dict}}
+ count: int | None
+ """
+ Number of receive queues.
+ The maximum value is platform dependent.
+ """
+ worker: str | None
+ """
+ Worker ids specified as combination of range and/or comma separated values
+ such as 0-4,7.
+ """
+ mode: Literal["shared", "exclusive"] | None
+ """Mode applicable to the workers. Default mode is 'shared'."""
+ _custom_data: dict[str, Any]
+
+ if TYPE_CHECKING:
+
+ def __init__(
+ self,
+ *,
+ count: int | None | UndefinedType = Undefined,
+ worker: str | None | UndefinedType = Undefined,
+ mode: Literal["shared", "exclusive"] | None | UndefinedType = Undefined,
+ _custom_data: dict[str, Any] | UndefinedType = Undefined,
+ ) -> None:
+ """
+ RxQueue.
+
+
+ Subclass of AvdModel.
+
+ Args:
+ count:
+ Number of receive queues.
+ The maximum value is platform dependent.
+ worker:
+ Worker ids specified as combination of range and/or comma separated values
+ such as 0-4,7.
+ mode: Mode applicable to the workers. Default mode is 'shared'.
+ _custom_data: _custom_data
+
+ """
+
class FlowTracking(AvdModel):
"""Subclass of AvdModel."""
@@ -52712,6 +53596,7 @@ class StructuredConfig(EosCliConfigGen.EthernetInterfacesItem):
"wan_circuit_id": {"type": str},
"connected_to_pathfinder": {"type": bool, "default": True},
"cv_pathfinder_internet_exit": {"type": CvPathfinderInternetExit},
+ "rx_queue": {"type": RxQueue},
"raw_eos_cli": {"type": str},
"flow_tracking": {"type": FlowTracking},
"structured_config": {"type": StructuredConfig},
@@ -52846,6 +53731,13 @@ class StructuredConfig(EosCliConfigGen.EthernetInterfacesItem):
Subclass of AvdModel.
"""
+ rx_queue: RxQueue
+ """
+ Receive queue parameters for Receive Side Scaling (RSS) profile for this interface.
+
+ Subclass of
+ AvdModel.
+ """
raw_eos_cli: str | None
"""EOS CLI rendered directly on the interface in the final EOS configuration."""
flow_tracking: FlowTracking
@@ -52888,6 +53780,7 @@ def __init__(
wan_circuit_id: str | None | UndefinedType = Undefined,
connected_to_pathfinder: bool | UndefinedType = Undefined,
cv_pathfinder_internet_exit: CvPathfinderInternetExit | UndefinedType = Undefined,
+ rx_queue: RxQueue | UndefinedType = Undefined,
raw_eos_cli: str | None | UndefinedType = Undefined,
flow_tracking: FlowTracking | UndefinedType = Undefined,
structured_config: StructuredConfig | UndefinedType = Undefined,
@@ -52981,6 +53874,11 @@ def __init__(
PREVIEW: This key is in preview mode
Subclass of AvdModel.
+ rx_queue:
+ Receive queue parameters for Receive Side Scaling (RSS) profile for this interface.
+
+ Subclass of
+ AvdModel.
raw_eos_cli: EOS CLI rendered directly on the interface in the final EOS configuration.
flow_tracking:
Configures flow-tracking on the interface. Overrides `fabric_flow_tracking.l3_interfaces` setting.
@@ -53006,6 +53904,57 @@ class L3PortChannelsItem(AvdModel):
class MemberInterfacesItem(AvdModel):
"""Subclass of AvdModel."""
+ class RxQueue(AvdModel):
+ """Subclass of AvdModel."""
+
+ _fields: ClassVar[dict] = {
+ "count": {"type": int},
+ "worker": {"type": str},
+ "mode": {"type": str},
+ "_custom_data": {"type": dict},
+ }
+ count: int | None
+ """
+ Number of receive queues.
+ The maximum value is platform dependent.
+ """
+ worker: str | None
+ """
+ Worker ids specified as combination of range and/or comma separated values
+ such as 0-4,7.
+ """
+ mode: Literal["shared", "exclusive"] | None
+ """Mode applicable to the workers. Default mode is 'shared'."""
+ _custom_data: dict[str, Any]
+
+ if TYPE_CHECKING:
+
+ def __init__(
+ self,
+ *,
+ count: int | None | UndefinedType = Undefined,
+ worker: str | None | UndefinedType = Undefined,
+ mode: Literal["shared", "exclusive"] | None | UndefinedType = Undefined,
+ _custom_data: dict[str, Any] | UndefinedType = Undefined,
+ ) -> None:
+ """
+ RxQueue.
+
+
+ Subclass of AvdModel.
+
+ Args:
+ count:
+ Number of receive queues.
+ The maximum value is platform dependent.
+ worker:
+ Worker ids specified as combination of range and/or comma separated values
+ such as 0-4,7.
+ mode: Mode applicable to the workers. Default mode is 'shared'.
+ _custom_data: _custom_data
+
+ """
+
class StructuredConfig(EosCliConfigGen.EthernetInterfacesItem):
"""Subclass of AvdModel."""
@@ -53015,6 +53964,7 @@ class StructuredConfig(EosCliConfigGen.EthernetInterfacesItem):
"peer": {"type": str},
"peer_interface": {"type": str},
"speed": {"type": str},
+ "rx_queue": {"type": RxQueue},
"structured_config": {"type": StructuredConfig},
"_custom_data": {"type": dict},
}
@@ -53042,6 +53992,13 @@ class StructuredConfig(EosCliConfigGen.EthernetInterfacesItem):
Speed should be set in the format `` or `forced ` or `auto
`.
"""
+ rx_queue: RxQueue
+ """
+ Receive queue parameters for Receive Side Scaling (RSS) profile for this interface.
+
+ Subclass of
+ AvdModel.
+ """
structured_config: StructuredConfig
"""
Custom structured config for the member ethernet interface.
@@ -53060,6 +54017,7 @@ def __init__(
peer: str | None | UndefinedType = Undefined,
peer_interface: str | None | UndefinedType = Undefined,
speed: str | None | UndefinedType = Undefined,
+ rx_queue: RxQueue | UndefinedType = Undefined,
structured_config: StructuredConfig | UndefinedType = Undefined,
_custom_data: dict[str, Any] | UndefinedType = Undefined,
) -> None:
@@ -53085,6 +54043,11 @@ def __init__(
speed:
Speed should be set in the format `` or `forced ` or `auto
`.
+ rx_queue:
+ Receive queue parameters for Receive Side Scaling (RSS) profile for this interface.
+
+ Subclass of
+ AvdModel.
structured_config:
Custom structured config for the member ethernet interface.
@@ -56782,6 +57745,52 @@ def __init__(
"""
+ class RxQueue(AvdModel):
+ """Subclass of AvdModel."""
+
+ _fields: ClassVar[dict] = {"count": {"type": int}, "worker": {"type": str}, "mode": {"type": str}, "_custom_data": {"type": dict}}
+ count: int | None
+ """
+ Number of receive queues.
+ The maximum value is platform dependent.
+ """
+ worker: str | None
+ """
+ Worker ids specified as combination of range and/or comma separated values
+ such as 0-4,7.
+ """
+ mode: Literal["shared", "exclusive"] | None
+ """Mode applicable to the workers. Default mode is 'shared'."""
+ _custom_data: dict[str, Any]
+
+ if TYPE_CHECKING:
+
+ def __init__(
+ self,
+ *,
+ count: int | None | UndefinedType = Undefined,
+ worker: str | None | UndefinedType = Undefined,
+ mode: Literal["shared", "exclusive"] | None | UndefinedType = Undefined,
+ _custom_data: dict[str, Any] | UndefinedType = Undefined,
+ ) -> None:
+ """
+ RxQueue.
+
+
+ Subclass of AvdModel.
+
+ Args:
+ count:
+ Number of receive queues.
+ The maximum value is platform dependent.
+ worker:
+ Worker ids specified as combination of range and/or comma separated values
+ such as 0-4,7.
+ mode: Mode applicable to the workers. Default mode is 'shared'.
+ _custom_data: _custom_data
+
+ """
+
class FlowTracking(AvdModel):
"""Subclass of AvdModel."""
@@ -56839,6 +57848,7 @@ class StructuredConfig(EosCliConfigGen.EthernetInterfacesItem):
"wan_circuit_id": {"type": str},
"connected_to_pathfinder": {"type": bool, "default": True},
"cv_pathfinder_internet_exit": {"type": CvPathfinderInternetExit},
+ "rx_queue": {"type": RxQueue},
"raw_eos_cli": {"type": str},
"flow_tracking": {"type": FlowTracking},
"structured_config": {"type": StructuredConfig},
@@ -56973,6 +57983,13 @@ class StructuredConfig(EosCliConfigGen.EthernetInterfacesItem):
Subclass of AvdModel.
"""
+ rx_queue: RxQueue
+ """
+ Receive queue parameters for Receive Side Scaling (RSS) profile for this interface.
+
+ Subclass of
+ AvdModel.
+ """
raw_eos_cli: str | None
"""EOS CLI rendered directly on the interface in the final EOS configuration."""
flow_tracking: FlowTracking
@@ -57015,6 +58032,7 @@ def __init__(
wan_circuit_id: str | None | UndefinedType = Undefined,
connected_to_pathfinder: bool | UndefinedType = Undefined,
cv_pathfinder_internet_exit: CvPathfinderInternetExit | UndefinedType = Undefined,
+ rx_queue: RxQueue | UndefinedType = Undefined,
raw_eos_cli: str | None | UndefinedType = Undefined,
flow_tracking: FlowTracking | UndefinedType = Undefined,
structured_config: StructuredConfig | UndefinedType = Undefined,
@@ -57108,6 +58126,11 @@ def __init__(
PREVIEW: This key is in preview mode
Subclass of AvdModel.
+ rx_queue:
+ Receive queue parameters for Receive Side Scaling (RSS) profile for this interface.
+
+ Subclass of
+ AvdModel.
raw_eos_cli: EOS CLI rendered directly on the interface in the final EOS configuration.
flow_tracking:
Configures flow-tracking on the interface. Overrides `fabric_flow_tracking.l3_interfaces` setting.
@@ -57133,6 +58156,57 @@ class L3PortChannelsItem(AvdModel):
class MemberInterfacesItem(AvdModel):
"""Subclass of AvdModel."""
+ class RxQueue(AvdModel):
+ """Subclass of AvdModel."""
+
+ _fields: ClassVar[dict] = {
+ "count": {"type": int},
+ "worker": {"type": str},
+ "mode": {"type": str},
+ "_custom_data": {"type": dict},
+ }
+ count: int | None
+ """
+ Number of receive queues.
+ The maximum value is platform dependent.
+ """
+ worker: str | None
+ """
+ Worker ids specified as combination of range and/or comma separated values
+ such as 0-4,7.
+ """
+ mode: Literal["shared", "exclusive"] | None
+ """Mode applicable to the workers. Default mode is 'shared'."""
+ _custom_data: dict[str, Any]
+
+ if TYPE_CHECKING:
+
+ def __init__(
+ self,
+ *,
+ count: int | None | UndefinedType = Undefined,
+ worker: str | None | UndefinedType = Undefined,
+ mode: Literal["shared", "exclusive"] | None | UndefinedType = Undefined,
+ _custom_data: dict[str, Any] | UndefinedType = Undefined,
+ ) -> None:
+ """
+ RxQueue.
+
+
+ Subclass of AvdModel.
+
+ Args:
+ count:
+ Number of receive queues.
+ The maximum value is platform dependent.
+ worker:
+ Worker ids specified as combination of range and/or comma separated values
+ such as 0-4,7.
+ mode: Mode applicable to the workers. Default mode is 'shared'.
+ _custom_data: _custom_data
+
+ """
+
class StructuredConfig(EosCliConfigGen.EthernetInterfacesItem):
"""Subclass of AvdModel."""
@@ -57142,6 +58216,7 @@ class StructuredConfig(EosCliConfigGen.EthernetInterfacesItem):
"peer": {"type": str},
"peer_interface": {"type": str},
"speed": {"type": str},
+ "rx_queue": {"type": RxQueue},
"structured_config": {"type": StructuredConfig},
"_custom_data": {"type": dict},
}
@@ -57169,6 +58244,13 @@ class StructuredConfig(EosCliConfigGen.EthernetInterfacesItem):
Speed should be set in the format `` or `forced ` or `auto
`.
"""
+ rx_queue: RxQueue
+ """
+ Receive queue parameters for Receive Side Scaling (RSS) profile for this interface.
+
+ Subclass of
+ AvdModel.
+ """
structured_config: StructuredConfig
"""
Custom structured config for the member ethernet interface.
@@ -57187,6 +58269,7 @@ def __init__(
peer: str | None | UndefinedType = Undefined,
peer_interface: str | None | UndefinedType = Undefined,
speed: str | None | UndefinedType = Undefined,
+ rx_queue: RxQueue | UndefinedType = Undefined,
structured_config: StructuredConfig | UndefinedType = Undefined,
_custom_data: dict[str, Any] | UndefinedType = Undefined,
) -> None:
@@ -57212,6 +58295,11 @@ def __init__(
speed:
Speed should be set in the format `` or `forced ` or `auto
`.
+ rx_queue:
+ Receive queue parameters for Receive Side Scaling (RSS) profile for this interface.
+
+ Subclass of
+ AvdModel.
structured_config:
Custom structured config for the member ethernet interface.
@@ -59683,6 +60771,7 @@ def __init__(
"bgp_update_wait_install": False,
"interface_storm_control": False,
"queue_monitor_length_notify": False,
+ "build_rss_profile": False,
},
"management_interface": "Management1/1",
"p2p_uplinks_mtu": 9194,
@@ -61079,7 +62168,7 @@ def __init__(
`custom_platform_settings` will be matched before the equivalent entries from `platform_settings`.
Subclass of AvdList with `PlatformSettingsItem` items.
- Default value: `lambda cls: coerce_type([{"platforms": ["default"], "feature_support": {"queue_monitor_length_notify": False}, "reload_delay": {"mlag": 300, "non_mlag": 330}}, {"platforms": ["7050X3"], "feature_support": {"queue_monitor_length_notify": False}, "reload_delay": {"mlag": 300, "non_mlag": 330}, "trident_forwarding_table_partition": "flexible exact-match 16384 l2-shared 98304 l3-shared 131072"}, {"platforms": ["720XP"], "feature_support": {"poe": True, "queue_monitor_length_notify": False}, "reload_delay": {"mlag": 300, "non_mlag": 330}, "trident_forwarding_table_partition": "flexible exact-match 16000 l2-shared 18000 l3-shared 22000"}, {"platforms": ["750", "755", "758"], "management_interface": "Management0", "feature_support": {"poe": True, "queue_monitor_length_notify": False}, "reload_delay": {"mlag": 300, "non_mlag": 330}}, {"platforms": ["720DP", "722XP", "710P"], "feature_support": {"poe": True, "queue_monitor_length_notify": False}, "reload_delay": {"mlag": 300, "non_mlag": 330}}, {"platforms": ["7010TX"], "feature_support": {"queue_monitor_length_notify": False, "per_interface_mtu": False}, "reload_delay": {"mlag": 300, "non_mlag": 330}}, {"platforms": ["7280R", "7280R2", "7020R"], "lag_hardware_only": True, "reload_delay": {"mlag": 900, "non_mlag": 1020}, "tcam_profile": "vxlan-routing"}, {"platforms": ["7280R3"], "reload_delay": {"mlag": 900, "non_mlag": 1020}, "tcam_profile": "vxlan-routing"}, {"platforms": ["7500R", "7500R2"], "lag_hardware_only": True, "management_interface": "Management0", "reload_delay": {"mlag": 900, "non_mlag": 1020}, "tcam_profile": "vxlan-routing"}, {"platforms": ["7500R3", "7800R3"], "management_interface": "Management0", "reload_delay": {"mlag": 900, "non_mlag": 1020}, "tcam_profile": "vxlan-routing"}, {"platforms": ["7358X4"], "management_interface": "Management1/1", "reload_delay": {"mlag": 300, "non_mlag": 330}, "feature_support": {"queue_monitor_length_notify": False, "interface_storm_control": True, "bgp_update_wait_for_convergence": True, "bgp_update_wait_install": False}}, {"platforms": ["7368X4"], "management_interface": "Management0", "reload_delay": {"mlag": 300, "non_mlag": 330}}, {"platforms": ["7300X3"], "management_interface": "Management0", "reload_delay": {"mlag": 1200, "non_mlag": 1320}, "trident_forwarding_table_partition": "flexible exact-match 16384 l2-shared 98304 l3-shared 131072"}, {"platforms": ["VEOS", "VEOS-LAB", "vEOS", "vEOS-lab"], "feature_support": {"bgp_update_wait_for_convergence": False, "bgp_update_wait_install": False, "interface_storm_control": False, "queue_monitor_length_notify": False}, "reload_delay": {"mlag": 300, "non_mlag": 330}}, {"platforms": ["CEOS", "cEOS", "ceos", "cEOSLab"], "feature_support": {"bgp_update_wait_for_convergence": False, "bgp_update_wait_install": False, "interface_storm_control": False, "queue_monitor_length_notify": False}, "management_interface": "Management0", "reload_delay": {"mlag": 300, "non_mlag": 330}}, {"platforms": ["AWE-5310", "AWE-5510", "AWE-7250R", "AWE-7230R"], "feature_support": {"bgp_update_wait_for_convergence": True, "bgp_update_wait_install": False, "interface_storm_control": False, "queue_monitor_length_notify": False}, "management_interface": "Management1/1", "p2p_uplinks_mtu": 9194}, {"platforms": ["AWE-7220R"], "feature_support": {"bgp_update_wait_for_convergence": True, "bgp_update_wait_install": False, "interface_storm_control": False, "queue_monitor_length_notify": False, "poe": True}, "management_interface": "Management1", "p2p_uplinks_mtu": 9194}], target_type=cls)`
+ Default value: `lambda cls: coerce_type([{"platforms": ["default"], "feature_support": {"queue_monitor_length_notify": False}, "reload_delay": {"mlag": 300, "non_mlag": 330}}, {"platforms": ["7050X3"], "feature_support": {"queue_monitor_length_notify": False}, "reload_delay": {"mlag": 300, "non_mlag": 330}, "trident_forwarding_table_partition": "flexible exact-match 16384 l2-shared 98304 l3-shared 131072"}, {"platforms": ["720XP"], "feature_support": {"poe": True, "queue_monitor_length_notify": False}, "reload_delay": {"mlag": 300, "non_mlag": 330}, "trident_forwarding_table_partition": "flexible exact-match 16000 l2-shared 18000 l3-shared 22000"}, {"platforms": ["750", "755", "758"], "management_interface": "Management0", "feature_support": {"poe": True, "queue_monitor_length_notify": False}, "reload_delay": {"mlag": 300, "non_mlag": 330}}, {"platforms": ["720DP", "722XP", "710P"], "feature_support": {"poe": True, "queue_monitor_length_notify": False}, "reload_delay": {"mlag": 300, "non_mlag": 330}}, {"platforms": ["7010TX"], "feature_support": {"queue_monitor_length_notify": False, "per_interface_mtu": False}, "reload_delay": {"mlag": 300, "non_mlag": 330}}, {"platforms": ["7280R", "7280R2", "7020R"], "lag_hardware_only": True, "reload_delay": {"mlag": 900, "non_mlag": 1020}, "tcam_profile": "vxlan-routing"}, {"platforms": ["7280R3"], "reload_delay": {"mlag": 900, "non_mlag": 1020}, "tcam_profile": "vxlan-routing"}, {"platforms": ["7500R", "7500R2"], "lag_hardware_only": True, "management_interface": "Management0", "reload_delay": {"mlag": 900, "non_mlag": 1020}, "tcam_profile": "vxlan-routing"}, {"platforms": ["7500R3", "7800R3"], "management_interface": "Management0", "reload_delay": {"mlag": 900, "non_mlag": 1020}, "tcam_profile": "vxlan-routing"}, {"platforms": ["7358X4"], "management_interface": "Management1/1", "reload_delay": {"mlag": 300, "non_mlag": 330}, "feature_support": {"queue_monitor_length_notify": False, "interface_storm_control": True, "bgp_update_wait_for_convergence": True, "bgp_update_wait_install": False}}, {"platforms": ["7368X4"], "management_interface": "Management0", "reload_delay": {"mlag": 300, "non_mlag": 330}}, {"platforms": ["7300X3"], "management_interface": "Management0", "reload_delay": {"mlag": 1200, "non_mlag": 1320}, "trident_forwarding_table_partition": "flexible exact-match 16384 l2-shared 98304 l3-shared 131072"}, {"platforms": ["VEOS", "VEOS-LAB", "vEOS", "vEOS-lab"], "feature_support": {"bgp_update_wait_for_convergence": False, "bgp_update_wait_install": False, "interface_storm_control": False, "queue_monitor_length_notify": False}, "reload_delay": {"mlag": 300, "non_mlag": 330}}, {"platforms": ["CEOS", "cEOS", "ceos", "cEOSLab"], "feature_support": {"bgp_update_wait_for_convergence": False, "bgp_update_wait_install": False, "interface_storm_control": False, "queue_monitor_length_notify": False}, "management_interface": "Management0", "reload_delay": {"mlag": 300, "non_mlag": 330}}, {"platforms": ["AWE-5310", "AWE-5510", "AWE-7250R", "AWE-7230R"], "feature_support": {"bgp_update_wait_for_convergence": True, "bgp_update_wait_install": False, "interface_storm_control": False, "queue_monitor_length_notify": False, "build_rss_profile": False}, "management_interface": "Management1/1", "p2p_uplinks_mtu": 9194}, {"platforms": ["AWE-7220R"], "feature_support": {"bgp_update_wait_for_convergence": True, "bgp_update_wait_install": False, "interface_storm_control": False, "queue_monitor_length_notify": False, "poe": True}, "management_interface": "Management1", "p2p_uplinks_mtu": 9194}], target_type=cls)`
"""
platform_speed_groups: PlatformSpeedGroups
"""
diff --git a/python-avd/pyavd/_eos_designs/schema/eos_designs.schema.yml b/python-avd/pyavd/_eos_designs/schema/eos_designs.schema.yml
index b77ab51aa7b..0f994d6b646 100644
--- a/python-avd/pyavd/_eos_designs/schema/eos_designs.schema.yml
+++ b/python-avd/pyavd/_eos_designs/schema/eos_designs.schema.yml
@@ -3354,6 +3354,10 @@ keys:
Can be overridden by setting "bgp_update_wait_for_convergence" host/group_vars.
'
+ build_rss_profile:
+ type: bool
+ default: false
+ description: Build RSS interface profile for supported platforms.
management_interface:
type: str
default: Management1
@@ -3535,6 +3539,7 @@ keys:
bgp_update_wait_install: false
interface_storm_control: false
queue_monitor_length_notify: false
+ build_rss_profile: false
management_interface: Management1/1
p2p_uplinks_mtu: 9194
- platforms:
@@ -9738,6 +9743,31 @@ $defs:
internet-exit service provider using this local interface.
Examples: ''1-3'' or ''100,200,300'''
+ rx_queue:
+ type: dict
+ description: Receive queue parameters for Receive Side Scaling (RSS) profile
+ for this interface.
+ keys:
+ count:
+ type: int
+ min: 1
+ convert_types:
+ - str
+ description: 'Number of receive queues.
+
+ The maximum value is platform dependent.'
+ worker:
+ type: str
+ description: 'Worker ids specified as combination of range and/or comma
+ separated values
+
+ such as 0-4,7.'
+ mode:
+ type: str
+ description: Mode applicable to the workers. Default mode is 'shared'.
+ valid_values:
+ - shared
+ - exclusive
raw_eos_cli:
type: str
description: EOS CLI rendered directly on the interface in the final EOS
@@ -9818,6 +9848,31 @@ $defs:
type: str
description: Speed should be set in the format ``
or `forced ` or `auto `.
+ rx_queue:
+ type: dict
+ description: Receive queue parameters for Receive Side Scaling (RSS)
+ profile for this interface.
+ keys:
+ count:
+ type: int
+ min: 1
+ convert_types:
+ - str
+ description: 'Number of receive queues.
+
+ The maximum value is platform dependent.'
+ worker:
+ type: str
+ description: 'Worker ids specified as combination of range and/or
+ comma separated values
+
+ such as 0-4,7.'
+ mode:
+ type: str
+ description: Mode applicable to the workers. Default mode is 'shared'.
+ valid_values:
+ - shared
+ - exclusive
structured_config:
type: dict
documentation_options:
diff --git a/python-avd/pyavd/_eos_designs/schema/schema_fragments/defs_node_type_l3_interfaces.schema.yml b/python-avd/pyavd/_eos_designs/schema/schema_fragments/defs_node_type_l3_interfaces.schema.yml
index 21caa4463fd..369e61d0a45 100644
--- a/python-avd/pyavd/_eos_designs/schema/schema_fragments/defs_node_type_l3_interfaces.schema.yml
+++ b/python-avd/pyavd/_eos_designs/schema/schema_fragments/defs_node_type_l3_interfaces.schema.yml
@@ -169,6 +169,30 @@ $defs:
description: |-
Number range to use for Tunnel interfaces to an internet-exit service provider using this local interface.
Examples: '1-3' or '100,200,300'
+ rx_queue:
+ type: dict
+ description: |-
+ Receive queue parameters for Receive Side Scaling (RSS) profile for this interface.
+ keys:
+ count:
+ type: int
+ min: 1
+ convert_types:
+ - str
+ description: |-
+ Number of receive queues.
+ The maximum value is platform dependent.
+ worker:
+ type: str
+ description: |-
+ Worker ids specified as combination of range and/or comma separated values
+ such as 0-4,7.
+ mode:
+ type: str
+ description: Mode applicable to the workers. Default mode is 'shared'.
+ valid_values:
+ - shared
+ - exclusive
raw_eos_cli:
type: str
description: EOS CLI rendered directly on the interface in the final EOS configuration.
diff --git a/python-avd/pyavd/_eos_designs/schema/schema_fragments/defs_node_type_l3_port_channels.schema.yml b/python-avd/pyavd/_eos_designs/schema/schema_fragments/defs_node_type_l3_port_channels.schema.yml
index a2a8a079bc9..b04cf9d03c2 100644
--- a/python-avd/pyavd/_eos_designs/schema/schema_fragments/defs_node_type_l3_port_channels.schema.yml
+++ b/python-avd/pyavd/_eos_designs/schema/schema_fragments/defs_node_type_l3_port_channels.schema.yml
@@ -68,6 +68,30 @@ $defs:
type: str
description: |-
Speed should be set in the format `` or `forced ` or `auto `.
+ rx_queue:
+ type: dict
+ description: |-
+ Receive queue parameters for Receive Side Scaling (RSS) profile for this interface.
+ keys:
+ count:
+ type: int
+ min: 1
+ convert_types:
+ - str
+ description: |-
+ Number of receive queues.
+ The maximum value is platform dependent.
+ worker:
+ type: str
+ description: |-
+ Worker ids specified as combination of range and/or comma separated values
+ such as 0-4,7.
+ mode:
+ type: str
+ description: Mode applicable to the workers. Default mode is 'shared'.
+ valid_values:
+ - shared
+ - exclusive
structured_config:
type: dict
documentation_options:
diff --git a/python-avd/pyavd/_eos_designs/schema/schema_fragments/platform_settings.schema.yml b/python-avd/pyavd/_eos_designs/schema/schema_fragments/platform_settings.schema.yml
index d5f454146d0..ca5eab358e2 100644
--- a/python-avd/pyavd/_eos_designs/schema/schema_fragments/platform_settings.schema.yml
+++ b/python-avd/pyavd/_eos_designs/schema/schema_fragments/platform_settings.schema.yml
@@ -113,6 +113,10 @@ keys:
Do not advertise reachability to a prefix until that prefix has been installed in hardware.
This will eliminate any temporary black holes due to a BGP speaker advertising reachability to a prefix that may not yet be installed into the forwarding plane.
Can be overridden by setting "bgp_update_wait_for_convergence" host/group_vars.
+ build_rss_profile:
+ type: bool
+ default: false
+ description: Build RSS interface profile for supported platforms.
management_interface:
type: str
default: Management1
@@ -294,6 +298,7 @@ keys:
bgp_update_wait_install: false
interface_storm_control: false
queue_monitor_length_notify: false
+ build_rss_profile: false
management_interface: Management1/1
p2p_uplinks_mtu: 9194
- platforms:
diff --git a/python-avd/pyavd/_eos_designs/structured_config/network_services/router_service_insertion.py b/python-avd/pyavd/_eos_designs/structured_config/network_services/router_service_insertion.py
index fb3e3d11db0..1f27a2bcf1b 100644
--- a/python-avd/pyavd/_eos_designs/structured_config/network_services/router_service_insertion.py
+++ b/python-avd/pyavd/_eos_designs/structured_config/network_services/router_service_insertion.py
@@ -3,9 +3,11 @@
# that can be found in the LICENSE file.
from __future__ import annotations
-from functools import cached_property
from typing import TYPE_CHECKING, Protocol
+from pyavd._eos_cli_config_gen.schema import EosCliConfigGen
+from pyavd._eos_designs.structured_config.structured_config_generator import structured_config_contributor
+
if TYPE_CHECKING:
from . import AvdStructuredConfigNetworkServicesProtocol
@@ -17,38 +19,29 @@ class RouterServiceInsertionMixin(Protocol):
Class should only be used as Mixin to a AvdStructuredConfig class.
"""
- @cached_property
- def router_service_insertion(self: AvdStructuredConfigNetworkServicesProtocol) -> dict | None:
+ @structured_config_contributor
+ def router_service_insertion(self: AvdStructuredConfigNetworkServicesProtocol) -> None:
"""
- Return structured config for router_service_insertion.
+ Set the structured config for router_service_insertion.
Only used for CV Pathfinder edge routers today
"""
if not self._filtered_internet_exit_policies_and_connections:
- return None
-
- service_connections = []
+ return
for _policy, connections in self._filtered_internet_exit_policies_and_connections:
for connection in connections:
- service_connection = {
- "name": connection["name"],
- "monitor_connectivity_host": connection["monitor_name"],
- }
+ service_connection = EosCliConfigGen.RouterServiceInsertion.ConnectionsItem(
+ name=connection["name"], monitor_connectivity_host=connection["monitor_name"]
+ )
if connection["type"] == "tunnel":
- service_connection["tunnel_interface"] = {
- "primary": f"Tunnel{connection['tunnel_id']}",
- }
- elif connection["type"] == "ethernet":
- service_connection["ethernet_interface"] = {
- "name": connection["source_interface"],
- "next_hop": connection["next_hop"],
- }
+ service_connection.tunnel_interface.primary = f"Tunnel{connection['tunnel_id']}"
- service_connections.append(service_connection)
+ elif connection["type"] == "ethernet":
+ service_connection.ethernet_interface._update(name=connection["source_interface"], next_hop=connection["next_hop"])
- if service_connections:
- return {"enabled": True, "connections": service_connections}
+ self.structured_config.router_service_insertion.connections.append(service_connection)
- return None
+ if self.structured_config.router_service_insertion.connections:
+ self.structured_config.router_service_insertion.enabled = True