-
Notifications
You must be signed in to change notification settings - Fork 239
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
...on-avd/pyavd/_eos_designs/schema/schema_fragments/defs_node_type_l3_port_channels.schema.yml
Show resolved
Hide resolved
python-avd/pyavd/_eos_designs/schema/schema_fragments/defs_node_type_l3_interfaces.schema.yml
Outdated
Show resolved
Hide resolved
...on-avd/pyavd/_eos_designs/schema/schema_fragments/defs_node_type_l3_port_channels.schema.yml
Outdated
Show resolved
Hide resolved
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
ab65f89
to
02fd8de
Compare
This pull request has conflicts, please resolve those before we can evaluate the pull request. |
d097795
to
0c7fb4c
Compare
Conflicts have been resolved. A maintainer will review the pull request shortly. |
0c7fb4c
to
fa284e3
Compare
Initial logic implementation in eos_designs to validate input yml and generate structured config for RSS profiles. |
b3d54d9
to
4edf20b
Compare
3cdaecf
to
1b8e4db
Compare
Updated few newly added input yml schema keys. |
1b8e4db
to
61c6015
Compare
python-avd/pyavd/_eos_designs/structured_config/base/__init__.py
Outdated
Show resolved
Hide resolved
51c62c4
to
78aeca8
Compare
This pull request has conflicts, please resolve those before we can evaluate the pull request. |
78aeca8
to
2245499
Compare
Conflicts have been resolved. A maintainer will review the pull request shortly. |
2245499
to
b3ae6ee
Compare
return rss_profile_member_interfaces | ||
return None | ||
|
||
def build_interface_with_rx_queue_settings( |
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.
I think all these helper methods could live in a UtilsMixin
for the base structured config module. Remember to prefix them with underscore if they are cached properties. (They are not shared when they are not used across multiple modules).
You can also choose to split out the platform
part into it's own mixin and keep the helpers there if that is better?
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.
Added helper methods to PlatformMixin class
Tried moving existing platform() method from structured_config/base/init.py to this class.
But it was not generating platform
key in yml files for structured config (regardless of decorator cached_property
or structured_config_contributor
)
Hence did not move platform() cached property to PlatformMixin class.
Please let me know if this method can be moved and what should be the decorator.
python-avd/pyavd/_eos_designs/schema/schema_fragments/platform_settings.schema.yml
Outdated
Show resolved
Hide resolved
c6eaec8
to
281750a
Compare
…latforms Updated unit tests and addressed review feedback for more information, see https://pre-commit.ci
281750a
to
396e5dc
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