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

[orchagent] Fix: ERR swss#orchagent: :- setPortPvid: pvid setting for tunnel Port_EVPN_XXX is not allowed #3402

Merged
merged 3 commits into from
Jan 13, 2025

Fix: ERR swss#orchagent: :- setPortPvid: pvid setting for tunnel Port…

1f15ade
Select commit
Loading
Failed to load commit list.
Merged

[orchagent] Fix: ERR swss#orchagent: :- setPortPvid: pvid setting for tunnel Port_EVPN_XXX is not allowed #3402

Fix: ERR swss#orchagent: :- setPortPvid: pvid setting for tunnel Port…
1f15ade
Select commit
Loading
Failed to load commit list.
Azure Pipelines / Azure.sonic-swss succeeded Dec 16, 2024 in 2h 28m 12s

Build #20241216.3 had test failures

Details

Tests

  • Failed: 2 (0.11%)
  • Passed: 1,660 (92.84%)
  • Other: 126 (7.05%)
  • Total: 1,788
Code coverage

  • 44850 of 66058 lines covered (67.89%)

Annotations

Check failure on line 5700 in Build log

See this annotation in the file changed.

@azure-pipelines azure-pipelines / Azure.sonic-swss

Build log #L5700

Bash exited with code '123'.

Check failure on line 1 in test_Overlay6TableCreationDeletion

See this annotation in the file changed.

@azure-pipelines 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

See this annotation in the file changed.

@azure-pipelines 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