From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-wi0-f169.google.com (mail-wi0-f169.google.com [209.85.212.169]) by dpdk.org (Postfix) with ESMTP id 552E0DE0 for ; Fri, 10 Jan 2014 11:12:54 +0100 (CET) Received: by mail-wi0-f169.google.com with SMTP id q15so287183wie.4 for ; Fri, 10 Jan 2014 02:14:06 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:message-id:date:from:user-agent:mime-version:to :cc:subject:references:in-reply-to:content-type; bh=E04l5rdoHpy4DrkKrUnqRESEd0BY7r0aZP/goQyRSzE=; b=OqcSgCNa+JBAcS1cDy3qgjtw4EnW9I99AXvS/NZY+iei+XLlBweV08JaZw0ssN/U/H cJAmWvWjiKcvspX+0+i0XlKWrlBYVsnbDhCbJkB3Yl4Y6WjDoE1u19wm6NGmqcHCAFJd r6iEfw/bVMb2tfpqgE6nGEZ8lQ7mCsE0Xgy4ZGEZOvnvO78ng/yf9SaP83GIHV0Cw7a4 L1PAqShCJdL62YeQh7io8fEX3Cv/puJuhZoUFIrW5/OdNpqnsJULWE7kidoezTSR/+LV 7vTASr9oWckseeSoArTH8vtfl5VAnWtRxdHuEBhsyRYzHXbiqC3YCcMLrMu2vpypV83o CF4g== X-Gm-Message-State: ALoCoQnNT8LNK9I2Vo5WFat0rEtb5ELyFdvswERfeOL5lmI0wrw08F8sEyoiqOJoubXQT/ELLsct X-Received: by 10.180.149.175 with SMTP id ub15mr1843156wib.44.1389348846182; Fri, 10 Jan 2014 02:14:06 -0800 (PST) Received: from [10.16.0.189] (6wind.net2.nerim.net. [213.41.180.237]) by mx.google.com with ESMTPSA id cy10sm3695843wjb.6.2014.01.10.02.14.04 for (version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Fri, 10 Jan 2014 02:14:05 -0800 (PST) Message-ID: <52CFC7EB.1000600@6wind.com> Date: Fri, 10 Jan 2014 11:14:03 +0100 From: Ivan Boule User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20131103 Icedove/17.0.10 MIME-Version: 1.0 To: Stefan Baranoff References: <52CACA17.7000202@6wind.com> <52CBBC6F.6030401@6wind.com> In-Reply-To: Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Content-Filtered-By: Mailman/MimeDel 2.1.15 Cc: dev@dpdk.org Subject: Re: [dpdk-dev] Redirection Table X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 10 Jan 2014 10:12:54 -0000 On 01/07/2014 02:03 PM, Stefan Baranoff wrote: > > All, > > Does this mean that an application looking at traffic in something > like an IP/IP or GRE tunnel with only two endpoints on the tunnels but > many clients behind them must do software load balancing as the > packets would IP only (not TCP/UDP) with the same two addresses? > Yes, your understanding is correct, when Intel's NICs are used. But some other NICs could allow deeper packet analysis. When NICs only support IPv4/IPv6 RSS, then it is up to the network stack on top of the DPDK to provide the best optimal solution in software. > How much of a penalty is there for crossing processor boundaries in > that case and might a 1 CPU server, while less core dense, actually > give better performance/watt? > This is hard to say. It is likely to partially depend on the CPU/memory/bus/ characteristics. Note that if you consider dedicating a single core to the polling of packets received on all ports, then you only need a single RX queue per port. By the way, in such a case, you can still configure RSS on the ports, so that the hardware computes the 32-bit RSS hash on each IP packet (it is stored into the rte_mbuf structure by the Poll Mode Driver), so that the RSS hash can be used in software to speed-up the assignment of IP packets to [a subset of] processing cores, if needed. Regards Ivan > Thanks, > Stefan > > Sent from my smart phone; people don't make typos, Swype does! > > On Jan 7, 2014 3:36 AM, "Ivan Boule" > wrote: > > On 01/06/2014 05:52 PM, Michael Quicquaro wrote: > > Thanks for the details. Can the hash function be modified so > that I can provide my own RSS function? i.e. my ultimate > goal is to provide RSS that is not dependent on packet contents. > > No, the RSS function is "hard-wired" and only works on IPv4/IPv6 > packets. All other packets are stored in the same queue (0 by > default). > You can change the RSS key used by the RSS function to compute the > hash value. > See the following testpmd command: > > port config X rss-hash-key <80 hexa digits> > > to set the 320-bit RSS key of port X. > > Best regards, > Ivan > > You may have seen my thread "generic load balancing". At this > point, I'm realizing that the only way to accomplish this is > to let the packets land where they may (the queue where the > NIC places the packet) and distribute them (to other queues) > by having some of the CPU processing devoted to this task. > Can you verify this? > > Regards, > - Michael. > > > On Mon, Jan 6, 2014 at 10:21 AM, Ivan Boule > > >> > wrote: > > On 12/31/2013 08:45 PM, Michael Quicquaro wrote: > > Has anyone used the "port config all reta (hash,queue)" > command of testpmd > with any success? > > I haven't found much documentation on it. > > Can someone provide an example on why and how it was used. > > Regards and Happy New Year, > Michael Quicquaro > > Hi Michael, > > "RETA" stands for Redirection Table. > It is a per-port configurable table of 128 entries that is > used by the > RSS filtering feature of Intel 1GbE and 10GbE controllers to > select the > RX queue into which to store a received IP packet. > When receiving an IPv4/IPv6 packet, the controller > computes a 32-bit > hash on: > > * the source address and the destination address of the > IP header of > the packet, > * the source port and the destination port of the UDP/TCP > header, if any. > > Then, the controller takes the 7 lower bits of the RSS > hash as an > index > into the RETA table to get the RX queue number where to > store the > packet. > > The API of the DPDK includes a function that is exported > by Poll Mode > Drivers to configure RETA entries of a given port. > > For test purposes, the testpmd application includes the > following > command > > "port config X rss reta (hash,queue)[,(hash,queue)]" > > to configure RETA entries of a port X, with each couple > (hash,queue) > contains the index of a RETA entry (between 0 and 127 > included) > and the > RX queue number (between 0 and 15) to be stored into that > RETA entry. > > Best regards > Ivan > > -- Ivan Boule > 6WIND Development Engineer > > > > > -- > Ivan Boule > 6WIND Development Engineer > -- Ivan Boule 6WIND Development Engineer