From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tom Barbette Subject: Re: Flow Director vs. 5-tuple filters on a 10GbE Intel 82599 ES NIC Date: Wed, 16 Jan 2019 09:55:44 +0100 Message-ID: References: <1544538698808.34010@kth.se> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit Cc: "wenzhuo.lu@intel.com" , "konstantin.ananyev@intel.com" , "adrien.mazarguil@6wind.com" To: Georgios Katsikas , "dev@dpdk.org" Return-path: Received: from smtp-4.sys.kth.se (smtp-4.sys.kth.se [130.237.48.193]) by dpdk.org (Postfix) with ESMTP id 195C9DE0 for ; Wed, 16 Jan 2019 09:56:00 +0100 (CET) In-Reply-To: <1544538698808.34010@kth.se> Content-Language: en-US List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" 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... Tom 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 > 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 follows: > > Simple rule > flow create 0 ingress pattern eth / ipv4 dst is 129.72.224.94 / end actions queue index 0 / end > > More complicated rule > flow create 0 ingress pattern eth / ipv4 dst is 46.54.254.68 src is 49.75.141.195 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 specification, 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, > Georgios > > >