Skip to content
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

[dualtor-aa][nic_simulator] Improve the upstream flow #11459

Merged
merged 3 commits into from
Feb 12, 2024

Conversation

lolyu
Copy link
Contributor

@lolyu lolyu commented Jan 31, 2024

Description of PR

Summary:
Fixes # (issue)

Type of change

  • Bug fix
  • Testbed and Framework(new/improvement)
  • Test case(new/improvement)

Back port request

  • 201911
  • 202012
  • 202205
  • 202305
  • 202311

Approach

What is the motivation for this PR?

Improve the nic_simulator upstream nic traffic flow.
Currently, the upstream traffic from server nic is duplicated to both ToRs.
So the grpc traffic to the lower ToR could be forwarded to the upper ToR in such case, and those
traffic will go out the upper ToR via the default route though the port-channels. And those trivial traffic
will make some noises so some of the testcases that verify the port/queue counters will fail.

Signed-off-by: Longxiang Lyu lolv@microsoft.com

How did you do it?

Add two dedicated flows:
one to forward the traffic with upper ToR loopback IP to the upper ToR.
one to forward the traffic with lower ToR loopback IP to the lower ToR.

How did you verify/test it?

run test_bgp_queues and verify that the counters on tx queue 1 don't increase.

Any platform specific information?

Supported testbed topology if it's a new test case?

Documentation

Signed-off-by: Longxiang Lyu <lolv@microsoft.com>
Signed-off-by: Longxiang Lyu <lolv@microsoft.com>
From the ovs doc, if mod-flow is used without --strict, priority is not
used in matching.
This will cause problem for downstream set_drop when
duplicate_nic_upstream is disabled.

For example:

When set_drop is applied to upstream_nic_flow(sonic-net#1), mod-flow will match both
flow sonic-net#2 and flow  sonic-net#3 as priority is not used in flow match.

So let's enforce strict match for mod-flow.

Signed-off-by: Longxiang Lyu <lolv@microsoft.com>
@lolyu
Copy link
Contributor Author

lolyu commented Feb 8, 2024

@yxieca, per previous discussion, add flag to enable/disable the nic upstream duplication. Please help review, thanks!

@yxieca yxieca merged commit 7585344 into sonic-net:master Feb 12, 2024
13 checks passed
mssonicbld pushed a commit to mssonicbld/sonic-mgmt that referenced this pull request Feb 12, 2024
From the ovs doc, if mod-flow is used without --strict, priority is not
used in matching.
This will cause problem for downstream set_drop when
duplicate_nic_upstream is disabled.

For example:

When set_drop is applied to upstream_nic_flow(#1), mod-flow will match both
flow sonic-net#2 and flow  sonic-net#3 as priority is not used in flow match.

So let's enforce strict match for mod-flow.

Signed-off-by: Longxiang Lyu <lolv@microsoft.com>
@mssonicbld
Copy link
Collaborator

Cherry-pick PR to 202311: #11686

mssonicbld pushed a commit to mssonicbld/sonic-mgmt that referenced this pull request Feb 12, 2024
From the ovs doc, if mod-flow is used without --strict, priority is not
used in matching.
This will cause problem for downstream set_drop when
duplicate_nic_upstream is disabled.

For example:

When set_drop is applied to upstream_nic_flow(#1), mod-flow will match both
flow sonic-net#2 and flow  sonic-net#3 as priority is not used in flow match.

So let's enforce strict match for mod-flow.

Signed-off-by: Longxiang Lyu <lolv@microsoft.com>
@mssonicbld
Copy link
Collaborator

Cherry-pick PR to 202305: #11687

mssonicbld pushed a commit that referenced this pull request Feb 15, 2024
From the ovs doc, if mod-flow is used without --strict, priority is not
used in matching.
This will cause problem for downstream set_drop when
duplicate_nic_upstream is disabled.

For example:

When set_drop is applied to upstream_nic_flow(#1), mod-flow will match both
flow #2 and flow  #3 as priority is not used in flow match.

So let's enforce strict match for mod-flow.

Signed-off-by: Longxiang Lyu <lolv@microsoft.com>
mssonicbld pushed a commit that referenced this pull request Feb 15, 2024
From the ovs doc, if mod-flow is used without --strict, priority is not
used in matching.
This will cause problem for downstream set_drop when
duplicate_nic_upstream is disabled.

For example:

When set_drop is applied to upstream_nic_flow(#1), mod-flow will match both
flow #2 and flow  #3 as priority is not used in flow match.

So let's enforce strict match for mod-flow.

Signed-off-by: Longxiang Lyu <lolv@microsoft.com>
vivekverma-arista added a commit to vivekverma-arista/sonic-mgmt that referenced this pull request Mar 23, 2024
…nks."

This change is not longer required as it was fixed by: sonic-net#11459

This reverts commit 45cb9ed.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants