[PATCH v9 2/3] dts: add capability check for multicast filtering
Nicholas Pratte
npratte at iol.unh.edu
Wed Oct 16 19:13:06 CEST 2024
The multicast address filter component of the mac filter test suite
is definitively supported across all vendors. Thus, a simple capability
check is added to ensure that this functionality is supported.
Bugzilla ID: 1454
Signed-off-by: Nicholas Pratte <npratte at iol.unh.edu>
---
dts/framework/remote_session/testpmd_shell.py | 25 +++++++++++++++++++
1 file changed, 25 insertions(+)
diff --git a/dts/framework/remote_session/testpmd_shell.py b/dts/framework/remote_session/testpmd_shell.py
index 6beec66e43..f350568b70 100644
--- a/dts/framework/remote_session/testpmd_shell.py
+++ b/dts/framework/remote_session/testpmd_shell.py
@@ -2086,6 +2086,27 @@ def get_capabilities_show_port_info(
self.ports[0].device_capabilities,
)
+ def get_capabilities_mcast_filtering(
+ self,
+ supported_capabilities: MutableSet["NicCapability"],
+ unsupported_capabilities: MutableSet["NicCapability"],
+ ) -> None:
+ """Get multicast filtering capability from mcast_addr add and check for testpmd error code.
+
+ Args:
+ supported_capabilities: Supported capabilities will be added to this set.
+ unsupported_capabilities: Unsupported capabilities will be added to this set.
+ """
+ self._logger.debug("Getting mcast filter capabilities.")
+ command = f"mcast_addr add {self.ports[0].id} 01:00:5E:00:00:00"
+ output = self.send_command(command)
+ if "diag=-95" in output:
+ unsupported_capabilities.add(NicCapability.MCAST_FILTERING)
+ else:
+ supported_capabilities.add(NicCapability.MCAST_FILTERING)
+ command = str.replace(command, "add", "remove", 1)
+ self.send_command(command)
+
class NicCapability(NoAliasEnum):
"""A mapping between capability names and the associated :class:`TestPmdShell` methods.
@@ -2217,6 +2238,10 @@ class NicCapability(NoAliasEnum):
FLOW_SHARED_OBJECT_KEEP: TestPmdShellCapabilityMethod = functools.partial(
TestPmdShell.get_capabilities_show_port_info
)
+ #: Device supports multicast address filtering.
+ MCAST_FILTERING: TestPmdShellCapabilityMethod = functools.partial(
+ TestPmdShell.get_capabilities_mcast_filtering
+ )
def __call__(
self,
--
2.44.0
More information about the dev
mailing list