-
Notifications
You must be signed in to change notification settings - Fork 714
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
[ansible][minigraph] add support for adding autonegotiation in minigraph templates and fanout EOS #13990
base: master
Are you sure you want to change the base?
[ansible][minigraph] add support for adding autonegotiation in minigraph templates and fanout EOS #13990
Conversation
minigraph templates Signed-off-by: Vaibhav Dahiya <[email protected]>
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.
@vdahiya12 do we need more changes to enable AN on EOS?
Signed-off-by: Vaibhav Dahiya <[email protected]>
Signed-off-by: Vaibhav Dahiya <[email protected]>
ansible/vars/topo_t0-116.yml
Outdated
@@ -134,6 +134,8 @@ topology: | |||
- 31 | |||
vm_offset: 3 | |||
DUT: | |||
autoneg_interfaces: | |||
intfs: [13, 14, 15, 16, 17, 18, 19, 20] |
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.
Since auto negotiation needs to be matched between DUT and fanout ports. This definition means that both DUT and fanout configuration need to be updated while deploying minigraph. An extra step needs to be added to after deploy minigraph to configure fanout ports accordingly.
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.
discussed offline, resolved
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.
why 8 interfaces? i thought we said half of them an/lt, and half of none an/lt?
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.
changed it to 4 ports
Signed-off-by: Vaibhav Dahiya <[email protected]>
The pre-commit check detected issues in the files touched by this pull request. Detailed pre-commit check results: To run the pre-commit checks locally, you can follow below steps:
|
Signed-off-by: Vaibhav Dahiya <[email protected]>
Signed-off-by: Vaibhav Dahiya <[email protected]>
Signed-off-by: Vaibhav Dahiya <[email protected]>
Signed-off-by: Vaibhav Dahiya <[email protected]>
<a:Name>FECDisabled</a:Name> | ||
<a:Reference i:nil="true"/> | ||
<a:Value>True</a:Value> |
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.
@vdahiya12 disabling FEC when AN is enabled, I would suggest to use msft_an_enabled
. Also keep autoneg_enabled
for only enabling AN which can be used in future
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.
fixed
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.
@vdahiya12 In future each SKU needs to be updated to parse the device connection if onboarded for AN testbed?
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.
yes, every template will need to be enhanced
{% if device_port_vlans[inventory_hostname][intf]['mode'] == 'Trunk' %} | ||
switchport mode trunk | ||
switchport trunk allowed vlan {{ device_port_vlans[inventory_hostname][intf]['vlanids'] }} | ||
{% else %} | ||
switchport mode dot1q-tunnel | ||
switchport access vlan {{ device_port_vlans[inventory_hostname][intf]['vlanids'] }} | ||
{% if device_conn[inventory_hostname][intf]['speed'] == "100000" %} | ||
{% if device_conn[inventory_hostname][intf]['speed'] == "100000" and device_conn[inventory_hostname][intf]['autoneg']|lower == "off" %} |
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.
@vdahiya12 Why are we restricting to 100G only?
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.
there is no restriction here, only if speed is 100000 and autoneg is off, then we keep fec as reed-solomon
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.
add the peer device check
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.
@vdahiya12 prevent configuration of RS FEC if msft_an_lt is enabled?
Signed-off-by: Vaibhav Dahiya <[email protected]>
Signed-off-by: Vaibhav Dahiya <[email protected]>
Signed-off-by: Vaibhav Dahiya <[email protected]>
Signed-off-by: Vaibhav Dahiya <[email protected]>
Signed-off-by: Vaibhav Dahiya <[email protected]>
Signed-off-by: Vaibhav Dahiya <[email protected]>
Signed-off-by: Vaibhav Dahiya <[email protected]>
<Link xmlns:a="http://schemas.datacontract.org/2004/07/Microsoft.Search.Autopilot.Evolution"> | ||
{% for if_index in vm_topo_config['autoneg_interfaces']['intfs'] %} | ||
{% set autoneg_intf = "Ethernet" ~ if_index ~ "/1" %} | ||
{% if device_conn[inventory_hostname][port_alias_map[autoneg_intf]]['autoneg']|lower == "on" %} |
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.
@vdahiya12 please add a comment this is for peer/link
device AN check
Signed-off-by: Vaibhav Dahiya <[email protected]>
Signed-off-by: Vaibhav Dahiya <[email protected]>
Signed-off-by: Vaibhav Dahiya <[email protected]>
Description of PR
These changes add a support for adding auto negotiation to specific testbed based on variables defined in ansible
Two things are required for autoneg support
must be enabled in inventory files
Example:
intfs : [1, 2, 3, 4, 5, 6, 7, 8]
With these changes the PR includes changes to pick the port numbering from topo file and apply minigraph parsing changes such that during deploy-mg or gen-mg the required ports have autoneg and deployment is clean with link up
Summary:
Fixes # (issue)
Type of change
Back port request
Approach
What is the motivation for this PR?
How did you do it?
How did you verify/test it?
Any platform specific information?
Supported testbed topology if it's a new test case?
Documentation