[smartswitch] Add support for ENI Based Forwarding #3398
Build #20250122.19 had test failures
Details
- Failed: 6 (0.67%)
- Passed: 833 (92.66%)
- Other: 60 (6.67%)
- Total: 899
- 49678 of 66827 lines covered (74.34%)
Annotations
Check failure on line 6271 in Build log
azure-pipelines / Azure.sonic-swss
Build log #L6271
Bash exited with code '123'.
Check failure on line 7227 in Build log
azure-pipelines / Azure.sonic-swss
Build log #L7227
Bash exited with code '123'.
Check failure on line 1 in test_AddRemoveSrv6MySidEnd
azure-pipelines / Azure.sonic-swss
test_AddRemoveSrv6MySidEnd
AssertionError: Unexpected number of keys: expected=3, received=2 (('oid:0x6000000000621', 'oid:0x60000000005c9')), table="ASIC_STATE:SAI_OBJECT_TYPE_ROUTER_INTERFACE"
Raw output
self = <test_srv6.TestSrv6MySidFpmsyncd object at 0x7faa9eb73ee0>
dvs = <conftest.DockerVirtualSwitch object at 0x7faa9ee34c70>, testlog = None
def test_AddRemoveSrv6MySidEnd(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)
test_srv6.py:821:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
test_srv6.py:720: in setup_srv6
self.create_l3_intf("Ethernet104", "")
test_srv6.py:686: in create_l3_intf
self.adb.wait_for_n_keys(table, len(existed_entries) + 1)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <dvslib.dvs_database.DVSDatabase object at 0x7faa9ee08d30>
table_name = 'ASIC_STATE:SAI_OBJECT_TYPE_ROUTER_INTERFACE', num_keys = 3
wait_at_least_n_keys = False
polling_config = PollingConfig(polling_interval=0.01, timeout=20.0, strict=True)
failure_message = None
def wait_for_n_keys(
self,
table_name: str,
num_keys: int,
wait_at_least_n_keys: bool = False,
polling_config: PollingConfig = PollingConfig(),
failure_message: str = None,
) -> List[str]:
"""Wait for the specified number of keys to exist in the table.
Args:
table_name: The name of the table from which to fetch the keys.
num_keys: The expected number of keys to retrieve from the table.
polling_config: The parameters to use to poll the db.
failure_message: The message to print if the call times out. This will only take effect
if the PollingConfig is set to strict.
Returns:
The keys stored in the table. If no keys are found, then an empty List is returned.
"""
def access_function():
keys = self.get_keys(table_name)
if wait_at_least_n_keys:
return (len(keys) >= num_keys, keys)
else:
return (len(keys) == num_keys, keys)
status, result = wait_for_result(
access_function, self._disable_strict_polling(polling_config)
)
if not status:
message = failure_message or (
f"Unexpected number of keys: expected={num_keys}, received={len(result)} "
f'({result}), table="{table_name}"'
)
> assert not polling_config.strict, message
E AssertionError: Unexpected number of keys: expected=3, received=2 (('oid:0x6000000000621', 'oid:0x60000000005c9')), table="ASIC_STATE:SAI_OBJECT_TYPE_ROUTER_INTERFACE"
dvslib/dvs_database.py:414: AssertionError
Check failure on line 1 in test_AddRemoveSrv6MySidEndX
azure-pipelines / Azure.sonic-swss
test_AddRemoveSrv6MySidEndX
AssertionError: Unexpected number of keys: expected=3, received=2 (('oid:0x6000000000621', 'oid:0x60000000005c9')), table="ASIC_STATE:SAI_OBJECT_TYPE_ROUTER_INTERFACE"
Raw output
self = <test_srv6.TestSrv6MySidFpmsyncd object at 0x7faa9ee16c10>
dvs = <conftest.DockerVirtualSwitch object at 0x7faa9ee34c70>, testlog = None
def test_AddRemoveSrv6MySidEndX(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)
test_srv6.py:866:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
test_srv6.py:720: in setup_srv6
self.create_l3_intf("Ethernet104", "")
test_srv6.py:686: in create_l3_intf
self.adb.wait_for_n_keys(table, len(existed_entries) + 1)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <dvslib.dvs_database.DVSDatabase object at 0x7faa9ee08d30>
table_name = 'ASIC_STATE:SAI_OBJECT_TYPE_ROUTER_INTERFACE', num_keys = 3
wait_at_least_n_keys = False
polling_config = PollingConfig(polling_interval=0.01, timeout=20.0, strict=True)
failure_message = None
def wait_for_n_keys(
self,
table_name: str,
num_keys: int,
wait_at_least_n_keys: bool = False,
polling_config: PollingConfig = PollingConfig(),
failure_message: str = None,
) -> List[str]:
"""Wait for the specified number of keys to exist in the table.
Args:
table_name: The name of the table from which to fetch the keys.
num_keys: The expected number of keys to retrieve from the table.
polling_config: The parameters to use to poll the db.
failure_message: The message to print if the call times out. This will only take effect
if the PollingConfig is set to strict.
Returns:
The keys stored in the table. If no keys are found, then an empty List is returned.
"""
def access_function():
keys = self.get_keys(table_name)
if wait_at_least_n_keys:
return (len(keys) >= num_keys, keys)
else:
return (len(keys) == num_keys, keys)
status, result = wait_for_result(
access_function, self._disable_strict_polling(polling_config)
)
if not status:
message = failure_message or (
f"Unexpected number of keys: expected={num_keys}, received={len(result)} "
f'({result}), table="{table_name}"'
)
> assert not polling_config.strict, message
E AssertionError: Unexpected number of keys: expected=3, received=2 (('oid:0x6000000000621', 'oid:0x60000000005c9')), table="ASIC_STATE:SAI_OBJECT_TYPE_ROUTER_INTERFACE"
dvslib/dvs_database.py:414: AssertionError
Check failure on line 1 in test_AddRemoveSrv6MySidEndDT4
azure-pipelines / Azure.sonic-swss
test_AddRemoveSrv6MySidEndDT4
AssertionError: Unexpected number of keys: expected=3, received=2 (('oid:0x6000000000621', 'oid:0x60000000005c9')), table="ASIC_STATE:SAI_OBJECT_TYPE_ROUTER_INTERFACE"
Raw output
self = <test_srv6.TestSrv6MySidFpmsyncd object at 0x7faa9ed9e220>
dvs = <conftest.DockerVirtualSwitch object at 0x7faa9ee34c70>, testlog = None
@pytest.mark.skipif(LooseVersion(platform.release()) < LooseVersion('5.11'),
reason="This test requires Linux kernel 5.11 or higher")
def test_AddRemoveSrv6MySidEndDT4(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)
test_srv6.py:917:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
test_srv6.py:720: in setup_srv6
self.create_l3_intf("Ethernet104", "")
test_srv6.py:686: in create_l3_intf
self.adb.wait_for_n_keys(table, len(existed_entries) + 1)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <dvslib.dvs_database.DVSDatabase object at 0x7faa9ee08d30>
table_name = 'ASIC_STATE:SAI_OBJECT_TYPE_ROUTER_INTERFACE', num_keys = 3
wait_at_least_n_keys = False
polling_config = PollingConfig(polling_interval=0.01, timeout=20.0, strict=True)
failure_message = None
def wait_for_n_keys(
self,
table_name: str,
num_keys: int,
wait_at_least_n_keys: bool = False,
polling_config: PollingConfig = PollingConfig(),
failure_message: str = None,
) -> List[str]:
"""Wait for the specified number of keys to exist in the table.
Args:
table_name: The name of the table from which to fetch the keys.
num_keys: The expected number of keys to retrieve from the table.
polling_config: The parameters to use to poll the db.
failure_message: The message to print if the call times out. This will only take effect
if the PollingConfig is set to strict.
Returns:
The keys stored in the table. If no keys are found, then an empty List is returned.
"""
def access_function():
keys = self.get_keys(table_name)
if wait_at_least_n_keys:
return (len(keys) >= num_keys, keys)
else:
return (len(keys) == num_keys, keys)
status, result = wait_for_result(
access_function, self._disable_strict_polling(polling_config)
)
if not status:
message = failure_message or (
f"Unexpected number of keys: expected={num_keys}, received={len(result)} "
f'({result}), table="{table_name}"'
)
> assert not polling_config.strict, message
E AssertionError: Unexpected number of keys: expected=3, received=2 (('oid:0x6000000000621', 'oid:0x60000000005c9')), table="ASIC_STATE:SAI_OBJECT_TYPE_ROUTER_INTERFACE"
dvslib/dvs_database.py:414: AssertionError
Check failure on line 1 in test_AddRemoveSrv6MySidEndDT6
azure-pipelines / Azure.sonic-swss
test_AddRemoveSrv6MySidEndDT6
AssertionError: Unexpected number of keys: expected=3, received=2 (('oid:0x6000000000621', 'oid:0x60000000005c9')), table="ASIC_STATE:SAI_OBJECT_TYPE_ROUTER_INTERFACE"
Raw output
self = <test_srv6.TestSrv6MySidFpmsyncd object at 0x7faa9edc4520>
dvs = <conftest.DockerVirtualSwitch object at 0x7faa9ee34c70>, testlog = None
def test_AddRemoveSrv6MySidEndDT6(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)
test_srv6.py:965:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
test_srv6.py:720: in setup_srv6
self.create_l3_intf("Ethernet104", "")
test_srv6.py:686: in create_l3_intf
self.adb.wait_for_n_keys(table, len(existed_entries) + 1)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <dvslib.dvs_database.DVSDatabase object at 0x7faa9ee08d30>
table_name = 'ASIC_STATE:SAI_OBJECT_TYPE_ROUTER_INTERFACE', num_keys = 3
wait_at_least_n_keys = False
polling_config = PollingConfig(polling_interval=0.01, timeout=20.0, strict=True)
failure_message = None
def wait_for_n_keys(
self,
table_name: str,
num_keys: int,
wait_at_least_n_keys: bool = False,
polling_config: PollingConfig = PollingConfig(),
failure_message: str = None,
) -> List[str]:
"""Wait for the specified number of keys to exist in the table.
Args:
table_name: The name of the table from which to fetch the keys.
num_keys: The expected number of keys to retrieve from the table.
polling_config: The parameters to use to poll the db.
failure_message: The message to print if the call times out. This will only take effect
if the PollingConfig is set to strict.
Returns:
The keys stored in the table. If no keys are found, then an empty List is returned.
"""
def access_function():
keys = self.get_keys(table_name)
if wait_at_least_n_keys:
return (len(keys) >= num_keys, keys)
else:
return (len(keys) == num_keys, keys)
status, result = wait_for_result(
access_function, self._disable_strict_polling(polling_config)
)
if not status:
message = failure_message or (
f"Unexpected number of keys: expected={num_keys}, received={len(result)} "
f'({result}), table="{table_name}"'
)
> assert not polling_config.strict, message
E AssertionError: Unexpected number of keys: expected=3, received=2 (('oid:0x6000000000621', 'oid:0x60000000005c9')), table="ASIC_STATE:SAI_OBJECT_TYPE_ROUTER_INTERFACE"
dvslib/dvs_database.py:414: AssertionError