From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-pa0-f54.google.com (mail-pa0-f54.google.com [209.85.220.54]) by dpdk.org (Postfix) with ESMTP id A0AA17EB0 for ; Sat, 15 Nov 2014 16:17:54 +0100 (CET) Received: by mail-pa0-f54.google.com with SMTP id hz1so8262924pad.13 for ; Sat, 15 Nov 2014 07:28:01 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type; bh=GFwlgrm1gzox0Td9u/9l+E3WXEVRWT2X82JDWkE8ADY=; b=IKDnFU4ec2RfYWq34llx4ei1r9sOGhKnBFR4bO5sAyC1Zyq/hELnm+hD6rYhzZgyKC iqmaaPOFx/Ont4JtjkfwhS2HLJ+6z3TV8KUDm5APBq93mdRSbsLCtGlGdVsOukf5dao7 LaRQJXIN5FPC/V4Bguc/FIA+KYO0ceeRxmJ46ZQU84XY908xr2WwvIGwpnpYW5qhdpoa 2izCLMOrSstsv/XsBDhOuNnMpwvl7RKwyODoAKuqtrMrfhGRFq9Pm2RsnFSfaesOYDO7 7ccdWp5U1qw6r1sOPF6qmSZEqB+pAF2PEoTKrY5pUyydSsTsIriC+pFJjWHAZ6ZuLmiO bNVA== X-Gm-Message-State: ALoCoQlN51ml9jNMcmuxeJjkzHmYYgx8xAa2Sp17OYGnxEyY3HofUdO/Qp0fmaczGn/uSktAmOzp MIME-Version: 1.0 X-Received: by 10.70.39.41 with SMTP id m9mr1899689pdk.137.1416065281665; Sat, 15 Nov 2014 07:28:01 -0800 (PST) Received: by 10.70.41.76 with HTTP; Sat, 15 Nov 2014 07:28:01 -0800 (PST) In-Reply-To: <5466FC4D.1060405@sts.kz> References: <2601191342CEEE43887BDE71AB977258213ADDFA@IRSMSX105.ger.corp.intel.com> <54662C64.9040500@sts.kz> <2601191342CEEE43887BDE71AB977258213ADEA6@IRSMSX105.ger.corp.intel.com> <5466FC4D.1060405@sts.kz> Date: Sat, 15 Nov 2014 09:28:01 -0600 Message-ID: From: Matt Laswell To: Yerden Zhumabekov Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable X-Content-Filtered-By: Mailman/MimeDel 2.1.15 Cc: "dev@dpdk.org" Subject: Re: [dpdk-dev] Load-balancing position field in DPDK load_balancer sample app vs. Hash 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: Sat, 15 Nov 2014 15:17:55 -0000 Fantastic. Thanks for the assist. -- Matt Laswell laswell@infiniteio.com infinite io, inc. On Sat, Nov 15, 2014 at 1:10 AM, Yerden Zhumabekov wrote: > Hello Matt, > > You can specify RSS configuration through rte_eth_dev_configure() functio= n > supplied with this structure: > > struct rte_eth_conf port_conf =3D { > .rxmode =3D { > .mq_mode =3D ETH_MQ_RX_RSS, > ... > }, > .rx_adv_conf =3D { > .rss_conf =3D { > .rss_key =3D NULL, > .rss_hf =3D ETH_RSS_IPV4 | ETH_RSS_IPV6, > }, > }, > ..... > }; > > In this case, RSS-hash is calculated over IP addresses only and with > default RSS key. Look at lib/librte_ether/rte_ethdev.h for other > definitions. > > > 15.11.2014 0:49, Matt Laswell =D0=BF=D0=B8=D1=88=D0=B5=D1=82: > > Hey Folks, > > This thread has been tremendously helpful, as I'm looking at adding > RSS-based load balancing to my application in the not too distant future. > Many thanks to all who have contributed, especially regarding symmetric R= SS. > > Not to derail the conversation too badly, but could one of you point me > to some example code that demonstrates the steps needed to configure RSS? > We're using Niantic NICs, so I assume that this is pretty standard stuff, > but having an example to study is a real leg up. > > Again, thanks for all of the information. > > -- > Matt Laswell > laswell@infiniteio.com > infinite io, inc. > > On Fri, Nov 14, 2014 at 10:57 AM, Chilikin, Andrey < > andrey.chilikin@intel.com> wrote: > >> Fortville supports symmetrical hashing on HW level, a patch for i40e PMD >> was submitted a couple of weeks ago. For Niantic you can use symmetrical >> rss key recommended by Konstantin. >> >> Regards, >> Andrey >> >> -----Original Message----- >> From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Ananyev, Konstantin >> Sent: Friday, November 14, 2014 4:50 PM >> To: Yerden Zhumabekov; Kamraan Nasim; dev@dpdk.org >> Cc: Yuanzhang Hu >> Subject: Re: [dpdk-dev] Load-balancing position field in DPDK >> load_balancer sample app vs. Hash table >> >> > -----Original Message----- >> > From: Yerden Zhumabekov [mailto:e_zhumabekov@sts.kz] >> > Sent: Friday, November 14, 2014 4:23 PM >> > To: Ananyev, Konstantin; Kamraan Nasim; dev@dpdk.org >> > Cc: Yuanzhang Hu >> > Subject: Re: [dpdk-dev] Load-balancing position field in DPDK >> > load_balancer sample app vs. Hash table >> > >> > I'd like to interject a question here. >> > >> > In case of flow classification, one might possibly prefer for packets >> > from the same flow to fall on the same logical core. With this '%' >> > load balancing, it would require to get the same RSS hash value for >> > packets with direct (src to dst) and swapped (dst to src) IPs and >> > ports. Am I correct that hardware RSS calculation cannot provide this >> symmetry? >> >> As I remember, it is possible but you have to tweak rss key values. >> Here is a paper describing how to do that: >> http://www.ndsl.kaist.edu/~shinae/papers/TR-symRSS.pdf >> >> Konstantin >> >> > >> > 14.11.2014 20:44, Ananyev, Konstantin =D0=BF=D0=B8=D1=88=D0=B5=D1=82: >> > > If you have a NIC that is capable to do HW hash computation, then >> > > you can do your load balancing based on that value. >> > > Let say ixgbe/igb/i40e NICs can calculate RSS hash value based on >> > > different combinations of dst/src Ips, dst/src ports. >> > > This value can be stored inside mbuf for each RX packet by PMD RX >> function. >> > > Then you can do: >> > > worker_id =3D mbuf->hash.rss % n_workersl >> > > >> > > That might to provide better balancing then using just one byte >> > > value, plus should be a bit faster, as in that case your balancer >> code don't need to touch packet's data. >> > > >> > > Konstantin >> > >> > -- >> > Sincerely, >> > >> > Yerden Zhumabekov >> > State Technical Service >> > Astana, KZ >> > >> >> > > -- > Sincerely, > > Yerden Zhumabekov > State Technical Service > Astana, KZ > >