[dpdk-dev] Load-balancing position field in DPDK load_balancer sample app vs. Hash table

Ananyev, Konstantin konstantin.ananyev at intel.com
Fri Nov 14 17:50:06 CET 2014

> -----Original Message-----
> From: Yerden Zhumabekov [mailto:e_zhumabekov at sts.kz]
> Sent: Friday, November 14, 2014 4:23 PM
> To: Ananyev, Konstantin; Kamraan Nasim; dev at 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:


> 14.11.2014 20:44, Ananyev, Konstantin пишет:
> > 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 = 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

More information about the dev mailing list