[inner hashing] extend inner hashing test with dynamic Policy Base Hashing configurations#4078
Conversation
… Hashing configurations Signed-off-by: Anton <antonh@nvidia.com>
… Hashing configurations Signed-off-by: Anton <antonh@nvidia.com>
… Hashing configurations Signed-off-by: Anton <antonh@nvidia.com>
|
@anish-n please help to review or assign a reviewer. |
|
/azp run |
|
Azure Pipelines successfully started running 1 pipeline(s). |
tests/ecmp/test_inner_hashing.py
Outdated
| "inner_src_ipv4": {"field": "INNER_SRC_IPV4", "sequence": "3", "mask": "255.255.255.255"}, | ||
| "inner_dst_ipv4": {"field": "INNER_DST_IPV4", "sequence": "3", "mask": "255.255.255.255"}, | ||
| "inner_src_ipv6": {"field": "INNER_SRC_IPV6", "sequence": "4", "mask": "ffff:ffff::"}, | ||
| "inner_dst_ipv6": {"field": "INNER_DST_IPV6", "sequence": "4", "mask": "ffff:ffff::"} |
There was a problem hiding this comment.
@AntonHryshchuk this mask doesn't fit the IPv6 address range, so load balancing won't be working:
SRC_IPV6_RANGE = ['20D0:A800:0:00::', '20D0:A800:0:00::FFFF']
DST_IPV6_RANGE = ['20D0:A800:0:01::', '20D0:A800:0:01::FFFF']Please fix the test logic.
There was a problem hiding this comment.
the ipv6 mask changed to "::ffff:ffff"
@liat-grozovik done |
… Hashing configurations Signed-off-by: Anton <antonh@nvidia.com>
|
trying to rebuild |
|
/azp run |
|
Commenter does not have sufficient privileges for PR 4078 in repo Azure/sonic-mgmt |
|
Command 'run
Get' is not supported by Azure Pipelines.
See additional documentation. |
|
/azp run |
|
Azure Pipelines successfully started running 1 pipeline(s). |
Signed-off-by: Anton <antonh@nvidia.com>
Signed-off-by: Anton <antonh@nvidia.com>
| mg_facts = duthost.get_extended_minigraph_facts(tbinfo) | ||
| for intf, index in mg_facts['minigraph_ptf_indices'].items(): | ||
| if index in vlan_ptf_ports: | ||
| test_intfs.append(intf) |
There was a problem hiding this comment.
I feel like we may need validation to check if this works with other interface types like portchannels, Ethernet interface for comprehensive test coverage
There was a problem hiding this comment.
The test is dedicated to t0 topology.
I'm using here the ports which are src_ports in ptf test (vlan_ptf_ports).
To use other interface types, need to update the test to t1-lag topology(as an example).
There was a problem hiding this comment.
No not necessary, you can take ports out of the vlan and configure them in a static portchannel or Ethernet interface and use that as the src port too.
There was a problem hiding this comment.
In this case, it's a static(custom) config. Need to run the static test. This part of the code is related to dynamic config only.
Or maybe I don't quite understand what you mean.
In a dynamic test, take out some ports from vlan, create portchannel/s, add ports w/o vlan as members to portchannel/s, add these portchannel/s to pbh table?
There was a problem hiding this comment.
Yes I mean we can modify the switch config here in the dynamic test to cover the other L3 interface types like portchannel interface and validate hashing with that
There was a problem hiding this comment.
As I understand, it's mean to change the topology configurations especially for the test, and not use the base configurations
of topology with feature config only.
Also, it's not a simple change. Need time to design, implement, and testing.
I suggest creating the feature request for test extended with L3/PortChannel interfaces or/and supporting other topologies, on which the requirement will be implemented. Not block the test implementation and start to check the PBH feature in the regression.
Signed-off-by: Anton <antonh@nvidia.com>
Signed-off-by: Anton <antonh@nvidia.com>
Signed-off-by: Anton <antonh@nvidia.com>
Signed-off-by: Anton <antonh@nvidia.com>
|
/azp run |
|
Commenter does not have sufficient privileges for PR 4078 in repo Azure/sonic-mgmt |
|
/azp run |
|
Azure Pipelines successfully started running 1 pipeline(s). |
|
/azpw run |
|
|
||
| def config_ipv4_rules(duthost, inner_ipver): | ||
| config_vxlan_rule(duthost, " --ip-protocol {}", V4_ETHER_TYPE, "ipv4", inner_ipver) | ||
| config_nvgre_rule(duthost, " --ip-protocol {}", V4_ETHER_TYPE, "ipv4", inner_ipver) |
There was a problem hiding this comment.
I feel like we maybe lacking test coverage for matching on:
gre_key = h32 "/" h32 ; GRE key (32 bits)
So would suggest adding a 3rd random packet format with a gre_key match, that way we can get full test coverage.
There was a problem hiding this comment.
will be covered in the next PR
|
As of now I found 2 places where we didn't have full coverage:
If you tell me any of the above are not needed for full coverage because it is covered in some way via other testing or implicit means, happy to close this. Otherwise would suggest incorporating these improvements. I won't block the PR on these comments, we can add it as a follow up PR, because this is a large change, but want to note these. Once you close out the other open comments, happy to approve. |
@anish-n thanks for the valuable feedback on the coverage. I totally agree that the improvements are needed but no reason to block this PR. The improvements will be done by Anton on a different PR. We can discuss offline when it will be available. |
|
/azp run |
|
Azure Pipelines successfully started running 1 pipeline(s). |
@liat-grozovik, @AntonHryshchuk awaiting closure of the other open comment, please mark resolved all incorporated comments. Will approve it then, thanks! |
Signed-off-by: Anton <antonh@nvidia.com>
|
@anish-n - the definition of OUTER_ENCAP_FORMATS updated, now it's defined only in conftest. Please review. |
…shing configurations (sonic-net#4078) Extending of inner hashing test with dynamic Policy Base Hashing configurations. Include 4 parameterized tests: * outer_ipver - inner_ipver * ipv4 - ipv4 * ipv6 - ipv4 * ipv6 - ipv4 * ipv6 - ipv6 - How did you verify/test it? The test executed on different Nvidia platforms, supported the PBH feature - Supported testbed topology if it's a new test case? t0 - Documentation sonic-net/SONiC#824
…lly (#24970) #### Why I did it src/sonic-swss ``` * 3c6ec95c - (HEAD -> 202511, origin/202511) [portsorch] fix crash when number of PGs returned 0 (sonic-net#4106) (29 hours ago) [mssonicbld] * f4c0865a - [orchagent] support single ASIC VOQ Fixed-System (sonic-net#4105) (30 hours ago) [mssonicbld] * 2a8deda1 - Change DB that DPU orchagents listens to for all orchs (sonic-net#4070) (2 days ago) [mssonicbld] * 15e017e8 - [ssw][ha] add ACTION_COUNTER to acl table type (sonic-net#4078) (2 days ago) [mssonicbld] ``` #### How I did it #### How to verify it #### Description for the changelog
Description of PR
Summary:
extending of inner hashing test with dynamic Policy Base Hashing configurations.
Include 4 parameterized tests:
outer_ipver - inner_ipver
ipv4 - ipv4
ipv6 - ipv4
ipv6 - ipv4
ipv6 - ipv6
Type of change
Back port request
Approach
What is the motivation for this PR?
Validation of PBH feature
How did you verify/test it?
The test executed on different MLNX platforms, supported the PBH feature
Supported testbed topology if it's a new test case?
t0
Documentation
https://github.com/anish-n/SONiC/blob/c27b933b0b3e7a13ebabc7b294ae15f7e5c6340e/doc/ecmp/inner_packet_hashing_test_plan.md
sonic-net/SONiC#824