Hey all!

A few questions about rte_flow, specifically the MARK + JUMP actions;

What's the expected behavior of MARK + JUMP in the same flow? Is the mark 
expected to survive to the target flow group? Is it driver specific? Undefined? 
Unsupported?

For example, when testing with the following flow setup in testpmd (mlx CX6, 
DPDK 19.11.2 and latest mainline), none of the received packets are marked:

flow create 0 ingress pattern eth / end actions mark id 0x1337 / jump group 1 / 
end
flow create 0 ingress group 1 pattern eth / end actions queue index 0 / end

A single flow with MARK + QUEUE works as expected.

What I want in the end is a set of simple RSS rules that would match most of 
the traffic, and another set of rules that would mark a small subset of the 
traffic before being processed by the RSS rule.

I realize I *could* duplicate the RSS actions and have them in the same rule as 
the MARK, but that just seems like the wrong thing to do for a few different 
reasons;
* It would require one flow for each combination of MARK and RSS condition.
* The MARK rules should be inserted and removed during runtime, while the RSS 
rules should be long-lived and static.
* The code inserting the MARK rule ideally shouldn't have be aware of the RSS 
config (other than that it should continue to a new group for further matching).

What's the right way of doing something like this with DPDK?
I've already implemented the same thing with a custom/proprietary mlx driver, 
so I know it should be doable. What I ended up doing there was simply to have 
two flow tables. The root table (level 0) holds all "mark" rules (flow tag), 
and forwards to everything (including misses) to the next table. The table at 
level 1 contains the RSS rules, and leaves all flows untagged so the tag set in 
the first level is preserved. Is there a way to get to a similar setup through 
the rte_flow API?

Thanks,
Daniel Romell

(CCs as suggested by Thomas in slack + Tom as this seems somewhat similar to 
https://www.mail-archive.com/users@dpdk.org/msg03900.html)


Disclaimer:
This communication (including any attachments) is intended for the use of the 
intended recipient(s) only and may contain information that is considered 
confidential, proprietary, sensitive and/or otherwise legally protected. Any 
unauthorized use or dissemination of this communication is strictly prohibited. 
If you have received this communication in error, please immediately notify the 
sender by return e-mail message and delete all copies of the original 
communication. Thank you for your cooperation.

Reply via email to