-
Notifications
You must be signed in to change notification settings - Fork 235
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Feat(eos_designs): Add support for RSS interface profile for select p… #5009
base: devel
Are you sure you want to change the base?
Feat(eos_designs): Add support for RSS interface profile for select p… #5009
Conversation
Review docs on Read the Docs To test this pull request: # Create virtual environment for this testing below the current directory
python -m venv test-avd-pr-5009
# Activate the virtual environment
source test-avd-pr-5009/bin/activate
# Install all requirements including PyAVD
pip install "pyavd[ansible] @ git+https://github.com/ashenoy-arista/avd.git@eosDesignsRssProfileSupport#subdirectory=python-avd" --force
# Point Ansible collections path to the Python virtual environment
export ANSIBLE_COLLECTIONS_PATH=$VIRTUAL_ENV/ansible_collections
# Install Ansible collection
ansible-galaxy collection install git+https://github.com/ashenoy-arista/avd.git#/ansible_collections/arista/avd/,eosDesignsRssProfileSupport --force
# Optional: Install AVD examples
cd test-avd-pr-5009
ansible-playbook arista.avd.install_examples |
ac5db61
to
44d2491
Compare
python-avd/pyavd/_eos_designs/schema/schema_fragments/platform_settings.schema.yml
Outdated
Show resolved
Hide resolved
python-avd/pyavd/_eos_designs/schema/schema_fragments/platform_settings.schema.yml
Outdated
Show resolved
Hide resolved
@@ -68,6 +68,30 @@ $defs: | |||
type: str | |||
description: |- | |||
Speed should be set in the format `<interface_speed>` or `forced <interface_speed>` or `auto <interface_speed>`. | |||
rx_queue: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Did someone test that this works for port-channel interfaces?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Only regular ethernet interface is currently supported within RSS profile.
Tunnel or Port-Channel or sub-interface is not supported.
python-avd/pyavd/_eos_designs/schema/schema_fragments/defs_node_type_l3_interfaces.schema.yml
Show resolved
Hide resolved
such as 0-4,7. | ||
mode: | ||
type: str | ||
description: Mode applicable to the workers. Default mode is 'shared'. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Set the default key instead of writing it in description. (for eos_designs we can have default :) )
python-avd/pyavd/_eos_designs/schema/schema_fragments/platform_settings.schema.yml
Outdated
Show resolved
Hide resolved
@@ -294,6 +298,7 @@ keys: | |||
bgp_update_wait_install: false | |||
interface_storm_control: false | |||
queue_monitor_length_notify: false | |||
build_rss_profile: false |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
this should be enabled for these platforms right?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Have set supported
to true under respective supported platforms
Had to split existing batch of AWE platforms into 2 groups and then configured applicable values for max_rx_queues
for each group.
Please see if this schema looks fine.
My understanding is that supported
when set to true
will serve as hint to eos_designs
logic to validate schema inputs and generate structured config, correct?
…latforms for more information, see https://pre-commit.ci
ab65f89
to
02fd8de
Compare
|
Change Summary
Build schema for eos_designs role to help generate structured config for RSS interface profile.
RSS interface profile is only applicable to certain SFE (Software Forwarding Engine) hardware platforms.
We would like to have toggle/knob under
platform_settings
->feature_support
schema that end-user can enable for supported hardware platforms to allow generation of relevant structured config.Related Issue(s)
Fixes #4983
Component(s) name
arista.avd.eos_designs
Proposed changes
Propose adding
rx_queue
dictionary type under L3 interface and member eth interfaces of L3 Port-Channel interface.The keys within this dictionary would be
count
,worker
andmode
.Add a knob under
platform_settings
->feature_support
schema. When enabled, underlying logic would generate structured config for RSS profile for devices capable of supporting this feature. Such profile would include sections for each interface for whichrx_queue
dictionary type has been specified/populated in yml.There will be only one such RSS profile generated and same profile would be set as the chosen profile to apply for the system.
How to test
TBD
Checklist
User Checklist
Repository Checklist