From mboxrd@z Thu Jan 1 00:00:00 1970 From: Yerden Zhumabekov Subject: Re: Load-balancing position field in DPDK load_balancer sample app vs. Hash table Date: Sat, 15 Nov 2014 13:10:05 +0600 Message-ID: <5466FC4D.1060405@sts.kz> References: <2601191342CEEE43887BDE71AB977258213ADDFA@IRSMSX105.ger.corp.intel.com> <54662C64.9040500@sts.kz> <2601191342CEEE43887BDE71AB977258213ADEA6@IRSMSX105.ger.corp.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Cc: "dev-VfR2kkLFssw@public.gmane.org" To: Matt Laswell Return-path: In-Reply-To: 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" Hello Matt, You can specify RSS configuration through rte_eth_dev_configure() function 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 RSS. > > 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 > > 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 f= or > > 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, th= en > > > 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 > > > > --=20 Sincerely, Yerden Zhumabekov State Technical Service Astana, KZ