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

Fix everflow tests for active-active dualtor. #12506

Conversation

vivekverma-arista
Copy link
Contributor

@vivekverma-arista vivekverma-arista commented Apr 18, 2024

Description of PR

Summary:
Fixes #97

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?

everflow/test_everflow_ipv6.py fails on active-active dualtor

msg        = 'Did not receive expected packet on any of ports [35] for device 0.\n========== EXPECTED ==========\nMask:\n\npacket s...0 00  ....<!..IT......\n0040  00 00 FF 00 00                                   .....\n==============================\n'
self       = <tests.common.plugins.ptfadapter.ptfadapter.PtfTestAdapter testMethod=runTest>

everflow/test_everflow_testbed.py fails on active-active dualtor.

        # verify both ToRs are active
        for duthost in duthosts:
>           pt_assert(
                wait_until(30, 5, 0, check_active_active_port_status, duthost, active_active_ports, "active"),
                "Not all active-active mux ports are active on device %s" % duthost.hostname
            )
E           Failed: Not all active-active mux ports are active on device ld302

Following pull requests attempted to fix everflow tests -

  1. everflow/test_everflow_ipv6.py: fix the everflow ipv6 failure on dualtor A-A #10228
  2. everflow/test_everflow_testbed.py: fix the everflow testbed failure on dualtor A-A #12022

PR10228 was reverted because in the fix, BGP was't being shutdown and TTL was set to 1 only for dualtor case but it introduced a new regression.
PR12022 relied on PR120228 ( the fact that BGP would stll run for dualtor-aa ) and after the revert of former, the fix no longer works as both ToRs become standby and validation inside fixture validate_active_active_dualtor_setup fails.

How did you do it?

The proposed fix is to use the fixture setup_standby_ports_on_rand_unselected_tor_unconditionally introduced in PR11921, so that these tests can run active-standby mode even if we shutdown BGP, ICMP responder, etc

How did you verify/test it?

Verified on Arista-7260 platform with dualtor-aa topology with 202305 image.

everflow/test_everflow_ipv6.py::TestIngressEverflowIPv6::test_src_ipv6_mirroring[cli-default] PASSED                                   [  5%]
everflow/test_everflow_ipv6.py::TestIngressEverflowIPv6::test_dst_ipv6_mirroring[cli-default] PASSED                                   [ 10%]
everflow/test_everflow_ipv6.py::TestIngressEverflowIPv6::test_next_header_mirroring[cli-default] PASSED                                [ 15%]
everflow/test_everflow_ipv6.py::TestIngressEverflowIPv6::test_l4_src_port_mirroring[cli-default] PASSED                                [ 20%]
everflow/test_everflow_ipv6.py::TestIngressEverflowIPv6::test_l4_dst_port_mirroring[cli-default] PASSED                                [ 25%]
everflow/test_everflow_ipv6.py::TestIngressEverflowIPv6::test_l4_src_port_range_mirroring[cli-default] PASSED                          [ 30%]
everflow/test_everflow_ipv6.py::TestIngressEverflowIPv6::test_l4_dst_port_range_mirroring[cli-default] PASSED                          [ 35%]
everflow/test_everflow_ipv6.py::TestIngressEverflowIPv6::test_tcp_flags_mirroring[cli-default] PASSED                                  [ 40%]
everflow/test_everflow_ipv6.py::TestIngressEverflowIPv6::test_dscp_mirroring[cli-default] PASSED                                       [ 45%]
everflow/test_everflow_ipv6.py::TestIngressEverflowIPv6::test_l4_range_mirroring[cli-default] PASSED                                   [ 50%]
everflow/test_everflow_ipv6.py::TestIngressEverflowIPv6::test_tcp_response_mirroring[cli-default] PASSED                               [ 55%]
everflow/test_everflow_ipv6.py::TestIngressEverflowIPv6::test_tcp_application_mirroring[cli-default] PASSED                            [ 60%]
everflow/test_everflow_ipv6.py::TestIngressEverflowIPv6::test_udp_application_mirroring[cli-default] PASSED                            [ 65%]
everflow/test_everflow_ipv6.py::TestIngressEverflowIPv6::test_any_protocol[cli-default] PASSED                                         [ 70%]
everflow/test_everflow_ipv6.py::TestIngressEverflowIPv6::test_any_transport_protocol[cli-default] PASSED                               [ 75%]
everflow/test_everflow_ipv6.py::TestIngressEverflowIPv6::test_invalid_tcp_rule[cli-default] PASSED                                     [ 80%]
everflow/test_everflow_ipv6.py::TestIngressEverflowIPv6::test_source_subnet[cli-default] PASSED                                        [ 85%]
everflow/test_everflow_ipv6.py::TestIngressEverflowIPv6::test_dest_subnet[cli-default] PASSED                                          [ 90%]
everflow/test_everflow_ipv6.py::TestIngressEverflowIPv6::test_both_subnets[cli-default] PASSED                                         [ 95%]
everflow/test_everflow_ipv6.py::TestIngressEverflowIPv6::test_fuzzy_subnets[cli-default] PASSED                                        [100%]

everflow/test_everflow_testbed.py::TestEverflowV4IngressAclIngressMirror::test_everflow_basic_forwarding[cli-downstream-default] PASSED                        [  2%]
everflow/test_everflow_testbed.py::TestEverflowV4IngressAclIngressMirror::test_everflow_neighbor_mac_change[cli-downstream-default] PASSED                     [  5%]
everflow/test_everflow_testbed.py::TestEverflowV4IngressAclIngressMirror::test_everflow_remove_unused_ecmp_next_hop[cli-downstream-default] PASSED             [  7%]
everflow/test_everflow_testbed.py::TestEverflowV4IngressAclIngressMirror::test_everflow_remove_used_ecmp_next_hop[cli-downstream-default] PASSED               [ 10%]
everflow/test_everflow_testbed.py::TestEverflowV4IngressAclIngressMirror::test_everflow_dscp_with_policer[cli-downstream-default] PASSED                       [ 12%]
everflow/test_everflow_testbed.py::TestEverflowV4IngressAclEgressMirror::test_everflow_basic_forwarding[cli-downstream-default] SKIPPED (ingress ACL w/ eg...) [ 15%]
everflow/test_everflow_testbed.py::TestEverflowV4IngressAclEgressMirror::test_everflow_neighbor_mac_change[cli-downstream-default] SKIPPED (ingress ACL w/...) [ 17%]
everflow/test_everflow_testbed.py::TestEverflowV4IngressAclEgressMirror::test_everflow_remove_unused_ecmp_next_hop[cli-downstream-default] SKIPPED (ingres...) [ 20%]
everflow/test_everflow_testbed.py::TestEverflowV4IngressAclEgressMirror::test_everflow_remove_used_ecmp_next_hop[cli-downstream-default] SKIPPED (ingress ...) [ 22%]
everflow/test_everflow_testbed.py::TestEverflowV4IngressAclEgressMirror::test_everflow_dscp_with_policer[cli-downstream-default] SKIPPED (ingress ACL w/ e...) [ 25%]
everflow/test_everflow_testbed.py::TestEverflowV4EgressAclIngressMirror::test_everflow_basic_forwarding[cli-downstream-default] SKIPPED (egress ACL w/ ing...) [ 27%]
everflow/test_everflow_testbed.py::TestEverflowV4EgressAclIngressMirror::test_everflow_neighbor_mac_change[cli-downstream-default] SKIPPED (egress ACL w/ ...) [ 30%]
everflow/test_everflow_testbed.py::TestEverflowV4EgressAclIngressMirror::test_everflow_remove_unused_ecmp_next_hop[cli-downstream-default] SKIPPED (egress...) [ 32%]
everflow/test_everflow_testbed.py::TestEverflowV4EgressAclIngressMirror::test_everflow_remove_used_ecmp_next_hop[cli-downstream-default] SKIPPED (egress A...) [ 35%]
everflow/test_everflow_testbed.py::TestEverflowV4EgressAclIngressMirror::test_everflow_dscp_with_policer[cli-downstream-default] SKIPPED (egress ACL w/ in...) [ 37%]
everflow/test_everflow_testbed.py::TestEverflowV4EgressAclEgressMirror::test_everflow_basic_forwarding[cli-downstream-default] SKIPPED (egress ACL w/ egre...) [ 40%]
everflow/test_everflow_testbed.py::TestEverflowV4EgressAclEgressMirror::test_everflow_neighbor_mac_change[cli-downstream-default] SKIPPED (egress ACL w/ e...) [ 42%]
everflow/test_everflow_testbed.py::TestEverflowV4EgressAclEgressMirror::test_everflow_remove_unused_ecmp_next_hop[cli-downstream-default] SKIPPED (egress ...) [ 45%]
everflow/test_everflow_testbed.py::TestEverflowV4EgressAclEgressMirror::test_everflow_remove_used_ecmp_next_hop[cli-downstream-default] SKIPPED (egress AC...) [ 47%]
everflow/test_everflow_testbed.py::TestEverflowV4EgressAclEgressMirror::test_everflow_dscp_with_policer[cli-downstream-default] SKIPPED (egress ACL w/ egr...) [ 50%]
everflow/test_everflow_testbed.py::TestEverflowV4IngressAclIngressMirror::test_everflow_basic_forwarding[cli-upstream-default] PASSED                          [ 52%]
everflow/test_everflow_testbed.py::TestEverflowV4IngressAclIngressMirror::test_everflow_neighbor_mac_change[cli-upstream-default] PASSED                       [ 55%]
everflow/test_everflow_testbed.py::TestEverflowV4IngressAclIngressMirror::test_everflow_remove_unused_ecmp_next_hop[cli-upstream-default] PASSED               [ 57%]
everflow/test_everflow_testbed.py::TestEverflowV4IngressAclIngressMirror::test_everflow_remove_used_ecmp_next_hop[cli-upstream-default] PASSED                 [ 60%]
everflow/test_everflow_testbed.py::TestEverflowV4IngressAclIngressMirror::test_everflow_dscp_with_policer[cli-upstream-default] PASSED                         [ 62%]
everflow/test_everflow_testbed.py::TestEverflowV4IngressAclEgressMirror::test_everflow_basic_forwarding[cli-upstream-default] SKIPPED (ingress ACL w/ egre...) [ 65%]
everflow/test_everflow_testbed.py::TestEverflowV4IngressAclEgressMirror::test_everflow_neighbor_mac_change[cli-upstream-default] SKIPPED (ingress ACL w/ e...) [ 67%]
everflow/test_everflow_testbed.py::TestEverflowV4IngressAclEgressMirror::test_everflow_remove_unused_ecmp_next_hop[cli-upstream-default] SKIPPED (ingress ...) [ 70%]
everflow/test_everflow_testbed.py::TestEverflowV4IngressAclEgressMirror::test_everflow_remove_used_ecmp_next_hop[cli-upstream-default] SKIPPED (ingress AC...) [ 72%]
everflow/test_everflow_testbed.py::TestEverflowV4IngressAclEgressMirror::test_everflow_dscp_with_policer[cli-upstream-default] SKIPPED (ingress ACL w/ egr...) [ 75%]
everflow/test_everflow_testbed.py::TestEverflowV4EgressAclIngressMirror::test_everflow_basic_forwarding[cli-upstream-default] SKIPPED (egress ACL w/ ingre...) [ 77%]
everflow/test_everflow_testbed.py::TestEverflowV4EgressAclIngressMirror::test_everflow_neighbor_mac_change[cli-upstream-default] SKIPPED (egress ACL w/ in...) [ 80%]
everflow/test_everflow_testbed.py::TestEverflowV4EgressAclIngressMirror::test_everflow_remove_unused_ecmp_next_hop[cli-upstream-default] SKIPPED (egress A...) [ 82%]
everflow/test_everflow_testbed.py::TestEverflowV4EgressAclIngressMirror::test_everflow_remove_used_ecmp_next_hop[cli-upstream-default] SKIPPED (egress ACL...) [ 85%]
everflow/test_everflow_testbed.py::TestEverflowV4EgressAclIngressMirror::test_everflow_dscp_with_policer[cli-upstream-default] SKIPPED (egress ACL w/ ingr...) [ 87%]
everflow/test_everflow_testbed.py::TestEverflowV4EgressAclEgressMirror::test_everflow_basic_forwarding[cli-upstream-default] SKIPPED (egress ACL w/ egress...) [ 90%]
everflow/test_everflow_testbed.py::TestEverflowV4EgressAclEgressMirror::test_everflow_neighbor_mac_change[cli-upstream-default] SKIPPED (egress ACL w/ egr...) [ 92%]
everflow/test_everflow_testbed.py::TestEverflowV4EgressAclEgressMirror::test_everflow_remove_unused_ecmp_next_hop[cli-upstream-default] SKIPPED (egress AC...) [ 95%]
everflow/test_everflow_testbed.py::TestEverflowV4EgressAclEgressMirror::test_everflow_remove_used_ecmp_next_hop[cli-upstream-default] SKIPPED (egress ACL ...) [ 97%]
everflow/test_everflow_testbed.py::TestEverflowV4EgressAclEgressMirror::test_everflow_dscp_with_policer[cli-upstream-default] SKIPPED (egress ACL w/ egres...) [100%]

Any platform specific information?

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

Documentation

@StormLiangMS
Copy link
Collaborator

/azp run Azure.sonic-mgmt

Copy link

Azure Pipelines successfully started running 1 pipeline(s).

@StormLiangMS
Copy link
Collaborator

hi @bingwang-ms @lolyu could you help to take a look?

@bingwang-ms bingwang-ms merged commit b6a6390 into sonic-net:master Apr 24, 2024
13 checks passed
@vivekverma-arista vivekverma-arista deleted the fix-everflow-tests-for-dualtor-aa branch April 24, 2024 05:39
mssonicbld pushed a commit to mssonicbld/sonic-mgmt that referenced this pull request Apr 26, 2024
@mssonicbld
Copy link
Collaborator

Cherry-pick PR to 202311: #12603

@mssonicbld
Copy link
Collaborator

Cherry-pick PR to 202305: #12604

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.

4 participants