From mboxrd@z Thu Jan 1 00:00:00 1970 From: Matt Laswell Subject: Re: Load-balancing position field in DPDK load_balancer sample app vs. Hash table Date: Sat, 15 Nov 2014 09:28:01 -0600 Message-ID: References: <2601191342CEEE43887BDE71AB977258213ADDFA@IRSMSX105.ger.corp.intel.com> <54662C64.9040500@sts.kz> <2601191342CEEE43887BDE71AB977258213ADEA6@IRSMSX105.ger.corp.intel.com> <5466FC4D.1060405@sts.kz> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Cc: "dev-VfR2kkLFssw@public.gmane.org" To: Yerden Zhumabekov Return-path: In-Reply-To: <5466FC4D.1060405-8EHiFRVJVgQ@public.gmane.org> List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces-VfR2kkLFssw@public.gmane.org Sender: "dev" Fantastic. Thanks for the assist. -- Matt Laswell laswell-bIuJOMs36aleGPcbtGPokg@public.gmane.org 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-bIuJOMs36aleGPcbtGPokg@public.gmane.org > infinite io, inc. > > On Fri, Nov 14, 2014 at 10:57 AM, Chilikin, Andrey < > andrey.chilikin-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org> 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-VfR2kkLFssw@public.gmane.org] On Behalf Of Ananyev, Konstantin >> Sent: Friday, November 14, 2014 4:50 PM >> To: Yerden Zhumabekov; Kamraan Nasim; dev-VfR2kkLFssw@public.gmane.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-8EHiFRVJVgQ@public.gmane.org] >> > Sent: Friday, November 14, 2014 4:23 PM >> > To: Ananyev, Konstantin; Kamraan Nasim; dev-VfR2kkLFssw@public.gmane.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 > >