Hi Georgios,

I looked at the documentation written in C...

ixgbe will first parse the rule as a 5-tuple filter. If parsing works, then it will install it as a 5-tuple filter. Then it will try ethertype filters, then syn filters, and if any of those "specific" filters did not work, then it will use fdir.

As far as I see, there is no way to prevent using 5-tuple/ntuple filters if the filter can match.

So currently one is limited to 128 5-tuple flows, while actually 8K could be used... Maybe a flag could be added to select the underlying hardware, but given ixgbe is getting old and the lack of answer, I doubt Intel will help on this...


PS: If some fields are missing (eg. no dst port), then it seems the ntuple will not be used and the parsing will continue. Maybe that can be used as a trick ? But it leads to potential collisions...

On 2018-12-11 15:31, Tom Barbette wrote:
?CC-ing maintainers.

De : Georgios Katsikas <katsikas...@gmail.com>
Envoyé : mardi 4 décembre 2018 11:41
À : dev@dpdk.org
Cc : Tom Barbette
Objet : Flow Director vs. 5-tuple filters on a 10GbE Intel 82599 ES NIC

Dear all,

I am performing rule installation/deletion benchmarks on a dual port 10 GbE 
Intel 82599 ES NIC using DPDK 18.11.
The benchmark installs increasing number of rules (5 to 8000), measures the 
rule installation rate and latency and then deletes the rules (measuring again 
the rule deletion rate/latency).
The rule sets comprise of rules with exact matches (no masks involved) as 

Simple rule
flow create 0 ingress pattern eth / ipv4 dst is / end actions 
queue index 0 / end

More complicated rule
flow create 0 ingress pattern eth / ipv4 dst is src is proto is 17 / udp dst is 26561 src is 7242 / end actions queue 
index 0 / end

No matter how simple or complicated the rules are, I am not able to install 
more than 128 rules on this NIC.

Here comes my question

According to the 
 this NIC can accommodate up to 128 5-tuple filters, which very well agrees with my 
observation above.
However, the same document states that this NIC can also accommodate up to 8000 
Flow Director filters.
What is the practical difference between a 5-tuple and a Flow Director rule in 
this case? How can I exploit these 8k filters using DPDK 18.11?

Thanks in advance,

Reply via email to