Hi Bruce,
On Thu, Jan 30, 2025 at 04:14:42PM +0000, Vladimir Medvedkin wrote:Currently ICE PMD uses group attribute to select the appropriate HW engine to offload the flow. This behavior violates the rte_flow API, existing documentation/examples, and reveals hardware specific details. This patch eliminates the use of the group attribute and runs each engine parser in the order they work in the HW pipeline. Fixes: 9c5f0070fa3f ("net/ice: map group to pipeline stage") Cc: qi.z.zhang@intel.com Cc: stable@dpdk.org Signed-off-by: Vladimir Medvedkin <vladimir.medvedkin@intel.com>Thanks, this seems a great idea, to automatically put the flow in place. Question: is there ever a scenario where a user may need, or want, to override the automatic choice made here? Or is it just the case that once the flow is installed, it works the same whatever group it's added into? I would assume the latter, but just want to confirm.
I don't think a user might have to worry about the internals of the NIC filters. These filters perform different lookups: ACL provides wildcard matching, when FDIR in an exact match, so it depends on what kind of mask is used for a particular field, for example:
I want to install _exact_match_ rule:
- I use FDIR engine: flow create 0 ingress group 2 pattern eth /
ipv4 dst spec 192.168.0.1 dst mask 255.255.255.255 / end actions
drop / end
and it works as expected.
- I use ACL engine: flow create 0 ingress group 2 pattern eth /
ipv4 dst spec 192.168.0.1 dst mask 255.255.255.255 / end actions
drop / end
and parser throws an error: Invalid IPv4 mask.: Invalid argument
I want to install _wildcard_match_ rule:
- I use FDIR engine: flow create 0 ingress group 2 pattern eth /
ipv4 dst spec 192.168.0.1 dst mask 255.255.255.254 / end actions
drop / end
doesn't work, Invalid action.: Invalid argument
- I use ACL engine:flow create 0 ingress group 1 pattern eth /
ipv4 dst spec 192.168.0.1 dst mask 255.255.0.255 / end actions
drop / end
and it works as expected
/Bruce
-- Regards, Vladimir