Hello Matt, You can specify RSS configuration through rte_eth_dev_configure() function supplied with this structure:
struct rte_eth_conf port_conf = { .rxmode = { .mq_mode = ETH_MQ_RX_RSS, ... }, .rx_adv_conf = { .rss_conf = { .rss_key = NULL, .rss_hf = 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 ?????: > 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 at infiniteio.com <mailto:laswell at infiniteio.com> > infinite io, inc. > > On Fri, Nov 14, 2014 at 10:57 AM, Chilikin, Andrey > <andrey.chilikin at intel.com <mailto:andrey.chilikin at 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 at dpdk.org > <mailto:dev-bounces at dpdk.org>] On Behalf Of Ananyev, Konstantin > Sent: Friday, November 14, 2014 4:50 PM > To: Yerden Zhumabekov; Kamraan Nasim; dev at dpdk.org > <mailto:dev at 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 at sts.kz > <mailto:e_zhumabekov at sts.kz>] > > Sent: Friday, November 14, 2014 4:23 PM > > To: Ananyev, Konstantin; Kamraan Nasim; dev at dpdk.org > <mailto: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: > http://www.ndsl.kaist.edu/~shinae/papers/TR-symRSS.pdf > <http://www.ndsl.kaist.edu/%7Eshinae/papers/TR-symRSS.pdf> > > Konstantin > > > > > 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 > > > > -- Sincerely, Yerden Zhumabekov State Technical Service Astana, KZ