[orchagent] Fix: ERR swss#orchagent: :- setPortPvid: pvid setting for tunnel Port_EVPN_XXX is not allowed #3402
Azure Pipelines / Azure.sonic-swss
succeeded
Dec 16, 2024 in 2h 28m 12s
Build #20241216.3 had test failures
Details
- Failed: 2 (0.11%)
- Passed: 1,660 (92.84%)
- Other: 126 (7.05%)
- Total: 1,788
- 44850 of 66058 lines covered (67.89%)
Annotations
Check failure on line 5700 in Build log
azure-pipelines / Azure.sonic-swss
Build log #L5700
Bash exited with code '123'.
Check failure on line 1 in test_Overlay6TableCreationDeletion
azure-pipelines / Azure.sonic-swss
test_Overlay6TableCreationDeletion
AssertionError: assert 'oid:0xb000000000639' in ['oid:0xb000000000646', 'oid:0xb000000000644', 'oid:0xb000000000642', 'oid:0xb000000000648']
Raw output
self = <test_acl_mark.TestAclMarkMeta object at 0x7efdf19a64c0>
dvs_acl = <dvslib.dvs_acl.DVSAcl object at 0x7efdf1992c70>
def test_Overlay6TableCreationDeletion(self, dvs_acl):
try:
dvs_acl.create_acl_table(OVERLAY_TABLE_NAME6, OVERLAY_TABLE_TYPE6, OVERLAY_BIND_PORTS6)
# this should create 2 tables. MARK_META and EGR_SET_DSCP Verify the table count.
acl_table_id = dvs_acl.get_acl_table_ids(2)
stages, names, ports = self.get_table_stage(dvs_acl, acl_table_id, [], OVERLAY_BIND_PORTS6)
acl_table_group_ids = dvs_acl.get_acl_table_group_ids(len(OVERLAY_BIND_PORTS6)*2)
table_member_map = self.verify_acl_table_group_members_multitable(dvs_acl, acl_table_id, acl_table_group_ids, 8)
> self.verify_acl_table_port_binding_multi(dvs_acl, table_member_map, ports, stages, acl_table_id)
test_acl_mark.py:170:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <test_acl_mark.TestAclMarkMeta object at 0x7efdf19a64c0>
dvs_acl = <dvslib.dvs_acl.DVSAcl object at 0x7efdf1992c70>
table_member_map = {'oid:0x7000000000638': ['oid:0xb00000000063d', 'oid:0xb000000000639', 'oid:0xb00000000063f', 'oid:0xb00000000063b'], 'oid:0x7000000000641': ['oid:0xb000000000646', 'oid:0xb000000000644', 'oid:0xb000000000642', 'oid:0xb000000000648']}
bind_ports = [['Ethernet20', 'Ethernet24', 'Ethernet28', 'Ethernet32'], ['Ethernet20', 'Ethernet24', 'Ethernet28', 'Ethernet32']]
stages = ['egress']
acl_table_id = ['oid:0x7000000000641', 'oid:0x7000000000638']
def verify_acl_table_port_binding_multi(self, dvs_acl, table_member_map, bind_ports, stages, acl_table_id):
for i in range(0, len(stages)):
stage = stages[i]
table = acl_table_id[i]
port_groups = []
for port in bind_ports[i]:
port_oid = dvs_acl.counters_db.get_entry("COUNTERS_PORT_NAME_MAP", "").get(port)
fvs = dvs_acl.asic_db.wait_for_entry("ASIC_STATE:SAI_OBJECT_TYPE_PORT", port_oid)
acl_table_group_id = fvs.pop(dvs_acl.ADB_PORT_ATTR_LOOKUP[stage], None)
> assert acl_table_group_id in table_member_map[table]
E AssertionError: assert 'oid:0xb000000000639' in ['oid:0xb000000000646', 'oid:0xb000000000644', 'oid:0xb000000000642', 'oid:0xb000000000648']
test_acl_mark.py:94: AssertionError
Check failure on line 1 in test_OverlayEntryTestMetaDataMgr
azure-pipelines / Azure.sonic-swss
test_OverlayEntryTestMetaDataMgr
AssertionError: Unexpected number of keys: expected=14, received=0 ([]), table="ASIC_STATE:SAI_OBJECT_TYPE_ACL_ENTRY"
Raw output
self = <test_acl_mark.TestAclMarkMeta object at 0x7efdf1937700>
dvs_acl = <dvslib.dvs_acl.DVSAcl object at 0x7efdf19378b0>
overlay_acl_table = ['oid:0x700000000077c', 'oid:0x7000000000773']
def test_OverlayEntryTestMetaDataMgr(self, dvs_acl, overlay_acl_table):
# allocate all 7 metadata values and free them multiple times.
# At the end there should be no rules allocated.
for i in range(1, 4):
config_qualifiers = {"DST_IP": "20.0.0.1/32",
"SRC_IP": "10.0.0.0/32",
"DSCP": "1"
}
acl_table_id = dvs_acl.get_acl_table_ids(2)
_, names, _ = self.get_table_stage(dvs_acl, acl_table_id, [], OVERLAY_BIND_PORTS)
#create 8 rules. 8th one should fail.
for i in range(1, 9):
config_qualifiers["DSCP"] = str(i)
dvs_acl.create_dscp_acl_rule(OVERLAY_TABLE_NAME, str(i), config_qualifiers, action=str(i+10))
if i < 8:
dvs_acl.verify_acl_rule_status(OVERLAY_TABLE_NAME, str(i), "Active")
else:
dvs_acl.verify_acl_rule_status(OVERLAY_TABLE_NAME, str(i), None)
> table_rules = self.get_acl_rules_with_action(dvs_acl, 14)
test_acl_mark.py:434:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
test_acl_mark.py:103: in get_acl_rules_with_action
members = dvs_acl.asic_db.wait_for_n_keys("ASIC_STATE:SAI_OBJECT_TYPE_ACL_ENTRY",
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <dvslib.dvs_database.DVSDatabase object at 0x7efdf19f3580>
table_name = 'ASIC_STATE:SAI_OBJECT_TYPE_ACL_ENTRY', num_keys = 14
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=14, received=0 ([]), table="ASIC_STATE:SAI_OBJECT_TYPE_ACL_ENTRY"
dvslib/dvs_database.py:414: AssertionError
Loading