We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
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
The vs test case "test_srv6.py::TestSrv6VpnFpmsyncd::test_AddRemoveSrv6SteeringRouteIpv6" (#3123 ) has the probability to fail.
Here is the log:
shuai@shuai:~/sonic-buildimage/src/sonic-swss/tests$ sudo pytest --dvsname=vs test_srv6.py::TestSrv6VpnFpmsyncd::test_AddRemoveSrv6SteeringRouteIpv6 ==================================== test session starts ==================================== platform linux -- Python 3.10.12, pytest-8.3.4, pluggy-1.5.0 rootdir: /home/shuai/sonic-buildimage/src/sonic-swss/tests plugins: flaky-3.8.1 collected 1 item test_srv6.py F [100%] ========================================= FAILURES ========================================== __________________ TestSrv6VpnFpmsyncd.test_AddRemoveSrv6SteeringRouteIpv6 __________________ self = <test_srv6.TestSrv6VpnFpmsyncd object at 0x7ff98924b730> dvs = <conftest.DockerVirtualSwitch object at 0x7ff98924b910>, testlog = None def test_AddRemoveSrv6SteeringRouteIpv6(self, dvs, testlog): _, output = dvs.runcmd(f"vtysh -c 'show zebra dplane providers'") if 'dplane_fpm_sonic' not in output: pytest.skip("'dplane_fpm_sonic' required for this test is not available, skipping", allow_module_level=True) self.setup_srv6(dvs) dvs.runcmd("vtysh -c \"configure terminal\" -c \"interface lo\" -c \"ip address fc00:0:2::1/128\"") # configure srv6 usid locator dvs.runcmd("vtysh -c \"configure terminal\" -c \"segment-routing\" -c \"srv6\" -c \"locators\" -c \"locator loc1\" -c \"prefix fc00:0:2::/48 block-len 32 node-len 16 func-bits 16\" -c \"behavior usid\"") # save exist asic db entries tunnel_entries = get_exist_entries(self.adb.db_connection, "ASIC_STATE:SAI_OBJECT_TYPE_TUNNEL") nexthop_entries = get_exist_entries(self.adb.db_connection, "ASIC_STATE:SAI_OBJECT_TYPE_NEXT_HOP") route_entries = get_exist_entries(self.adb.db_connection, "ASIC_STATE:SAI_OBJECT_TYPE_ROUTE_ENTRY") sidlist_entries = get_exist_entries(self.adb.db_connection, "ASIC_STATE:SAI_OBJECT_TYPE_SRV6_SIDLIST") # create v6 route with vpn sid dvs.runcmd("ip -6 route add 2001:db8:1:1::/64 encap seg6 mode encap segs fc00:0:1:e000:: dev sr0 vrf Vrf13") time.sleep(3) # check application database self.pdb.wait_for_entry("ROUTE_TABLE", "Vrf13:2001:db8:1:1::/64") expected_fields = {"segment": "Vrf13:2001:db8:1:1::/64", "seg_src": "fc00:0:2::1"} self.pdb.wait_for_field_match("ROUTE_TABLE", "Vrf13:2001:db8:1:1::/64", expected_fields) self.pdb.wait_for_entry("SRV6_SID_LIST_TABLE", "Vrf13:2001:db8:1:1::/64") expected_fields = {"path": "fc00:0:1:e000::"} self.pdb.wait_for_field_match("SRV6_SID_LIST_TABLE", "Vrf13:2001:db8:1:1::/64", expected_fields) # verify that the route has been programmed into the ASIC self.adb.wait_for_n_keys("ASIC_STATE:SAI_OBJECT_TYPE_TUNNEL", len(tunnel_entries) + 1) self.adb.wait_for_n_keys("ASIC_STATE:SAI_OBJECT_TYPE_NEXT_HOP", len(nexthop_entries) + 1) self.adb.wait_for_n_keys("ASIC_STATE:SAI_OBJECT_TYPE_SRV6_SIDLIST", len(sidlist_entries) + 1) self.adb.wait_for_n_keys("ASIC_STATE:SAI_OBJECT_TYPE_ROUTE_ENTRY", len(route_entries) + 1) # get created entries route_key = get_created_entry(self.adb.db_connection, "ASIC_STATE:SAI_OBJECT_TYPE_ROUTE_ENTRY", route_entries) nexthop_id = get_created_entry(self.adb.db_connection, "ASIC_STATE:SAI_OBJECT_TYPE_NEXT_HOP", nexthop_entries) tunnel_id = get_created_entry(self.adb.db_connection, "ASIC_STATE:SAI_OBJECT_TYPE_TUNNEL", tunnel_entries) sidlist_id = get_created_entry(self.adb.db_connection, "ASIC_STATE:SAI_OBJECT_TYPE_SRV6_SIDLIST", sidlist_entries) # check ASIC SAI_OBJECT_TYPE_SRV6_SIDLIST database tbl = swsscommon.Table(self.adb.db_connection, "ASIC_STATE:SAI_OBJECT_TYPE_SRV6_SIDLIST") (status, fvs) = tbl.get(sidlist_id) assert status == True for fv in fvs: if fv[0] == "SAI_SRV6_SIDLIST_ATTR_SEGMENT_LIST": assert fv[1] == "1:fc00:0:1:e000::" elif fv[0] == "SAI_SRV6_SIDLIST_ATTR_TYPE": assert fv[1] == "SAI_SRV6_SIDLIST_TYPE_ENCAPS_RED" # check ASIC SAI_OBJECT_TYPE_ROUTE_ENTRY database tbl = swsscommon.Table(self.adb.db_connection, "ASIC_STATE:SAI_OBJECT_TYPE_ROUTE_ENTRY") (status, fvs) = tbl.get(route_key) assert status == True for fv in fvs: if fv[0] == "SAI_ROUTE_ENTRY_ATTR_NEXT_HOP_ID": assert fv[1] == nexthop_id # check ASIC SAI_OBJECT_TYPE_NEXT_HOP database tbl = swsscommon.Table(self.adb.db_connection, "ASIC_STATE:SAI_OBJECT_TYPE_NEXT_HOP") (status, fvs) = tbl.get(nexthop_id) assert status == True for fv in fvs: if fv[0] == "SAI_NEXT_HOP_ATTR_TYPE": assert fv[1] == "SAI_NEXT_HOP_TYPE_SRV6_SIDLIST" if fv[0] == "SAI_NEXT_HOP_ATTR_SRV6_SIDLIST_ID": > assert fv[1] == sidlist_id E AssertionError: assert 'oid:0x0' == 'oid:0x3d000000000617' E E - oid:0x3d000000000617 E + oid:0x0 test_srv6.py:1516: AssertionError ----------------------------------- Captured stdout setup ----------------------------------- remove extra link dummy ===================================== warnings summary ====================================== test_srv6.py:10 /home/shuai/sonic-buildimage/src/sonic-swss/tests/test_srv6.py:10: DeprecationWarning: The distutils package is deprecated and slated for removal in Python 3.12. Use setuptools or check PEP 632 for potential alternatives from distutils.version import LooseVersion -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html ================================== short test summary info ================================== FAILED test_srv6.py::TestSrv6VpnFpmsyncd::test_AddRemoveSrv6SteeringRouteIpv6 - AssertionError: assert 'oid:0x0' == 'oid:0x3d000000000617' ========================== 1 failed, 1 warning in 63.59s (0:01:03) ==========================
Here is the "swss.rec":
2024-12-02.08:14:18.102806|ROUTE_TABLE:Vrf13:2001:db8:1:1::/64|SET|segment:Vrf13:2001:db8:1:1::/64|seg_src:fc00:0:2::1 2024-12-02.08:14:18.107376|SRV6_SID_LIST_TABLE:Vrf13:2001:db8:1:1::/64|SET|path:fc00:0:1:e000::
Here is the "sairedis.rec":
2024-12-02.08:05:01.754828|c|SAI_OBJECT_TYPE_VIRTUAL_ROUTER:oid:0x3000000000614|NULL=NULL 2024-12-02.08:05:01.991263|c|SAI_OBJECT_TYPE_TUNNEL:oid:0x2a000000000615|SAI_TUNNEL_ATTR_TYPE=SAI_TUNNEL_TYPE_SRV6|SAI_TUNNEL_ATTR_UNDERLAY_INTERFACE=oid:0x60000000005c9|SAI_TUNNEL_ATTR_ENCAP_SRC_IP=fc00:0:2::1 2024-12-02.08:05:01.992157|c|SAI_OBJECT_TYPE_NEXT_HOP:oid:0x4000000000616|SAI_NEXT_HOP_ATTR_TYPE=SAI_NEXT_HOP_TYPE_SRV6_SIDLIST|SAI_NEXT_HOP_ATTR_SRV6_SIDLIST_ID=oid:0x0|SAI_NEXT_HOP_ATTR_TUNNEL_ID=oid:0x2a000000000615 2024-12-02.08:05:01.992793|C|SAI_OBJECT_TYPE_ROUTE_ENTRY||{"dest":"2001:db8:1:1::/64","switch_id":"oid:0x21000000000000","vr":"oid:0x3000000000614"}|SAI_ROUTE_ENTRY_ATTR_NEXT_HOP_ID=oid:0x4000000000616 2024-12-02.08:05:01.993867|c|SAI_OBJECT_TYPE_SRV6_SIDLIST:oid:0x3d000000000617|SAI_SRV6_SIDLIST_ATTR_SEGMENT_LIST=1:fc00:0:1:e000::|SAI_SRV6_SIDLIST_ATTR_TYPE=SAI_SRV6_SIDLIST_TYPE_ENCAPS_RED
According to "swss.rec", the SID_LIST may be created after ROUTE_TABLE. Then the case failed.
The text was updated successfully, but these errors were encountered:
@cscarpitta could you please help to check this issue?
Sorry, something went wrong.
No branches or pull requests
The vs test case "test_srv6.py::TestSrv6VpnFpmsyncd::test_AddRemoveSrv6SteeringRouteIpv6" (#3123 ) has the probability to fail.
Here is the log:
Here is the "swss.rec":
Here is the "sairedis.rec":
According to "swss.rec", the SID_LIST may be created after ROUTE_TABLE. Then the case failed.
The text was updated successfully, but these errors were encountered: