[dpdk-dev] Symmetric RSS Hashing in DPDK

Zhang, Helin helin.zhang at intel.com
Thu Dec 18 08:41:01 CET 2014


Hi guys

I40e has hardware offload of symmetric hashing. Patch set has been sent out during R1.8 time slot, but it will be in R2.0.

Regards,
Helin

> -----Original Message-----
> From: dev [mailto:dev-bounces at dpdk.org] On Behalf Of Jim Thompson
> Sent: Thursday, December 18, 2014 2:56 PM
> To: Kamraan Nasim
> Cc: dev at dpdk.org; Steve Noble; Jeriel Smith
> Subject: Re: [dpdk-dev] Symmetric RSS Hashing in DPDK
> 
> 
> The issues are outlined in this paper:
> http://www.ndsl.kaist.edu/~shinae/papers/TR-symRSS.pdf
> 
> > On Dec 17, 2014, at 7:28 PM, Kamraan Nasim
> <knasim at sidebandnetworks.com> wrote:
> >
> > Hi DPDK community,
> >
> > Any better RSS hash keys out there?
> >
> > --Kam
> >
> > On Wed, Dec 17, 2014 at 2:12 PM, Kamraan Nasim
> > <knasim at sidebandnetworks.com>
> > wrote:
> >>
> >> Thank you Jeriel. 0x00 0x01 works and I can get bi-directional
> >> symmetry but you are right, it compromises the packet distribution. I
> >> am seeing vastly different 5 tuples hashed with the same value.
> >>
> >> Will let you know if I find a better alternative.
> >>
> >> --Kam
> >>
> >> On Tue, Dec 16, 2014 at 5:17 PM, Jeriel Smith <sjeriel2 at gmail.com> wrote:
> >>>
> >>> Hi Kamraan,
> >>>      Even i noticed it with "0x6d5a". Currently, I use a continuous
> >>> pattern of "0x00 0x01" which helps in getting a symmetrical hashing.
> >>> But, the packet spraying is not that good as "0x6d5a". Please let me
> >>> know if you find a alternative.
> >>> Thanks,
> >>> Jeriel
> >>>
> >>>
> >>>> ---------- Forwarded message ----------
> >>>> From: Kamraan Nasim <knasim at sidebandnetworks.com>
> >>>> Date: Tue, Dec 16, 2014 at 11:52 AM
> >>>> Subject: [dpdk-dev] Symmetric RSS Hashing in DPDK
> >>>> To: dev at dpdk.org
> >>>> Cc: Steve Noble <snoble at sidebandnetworks.com>, Jun Du <
> >>>> jdu at sidebandnetworks.com>, Ashish Juneja
> >>>> <ajuneja at sidebandnetworks.com>
> >>>>
> >>>> Hello,
> >>>>
> >>>> My DPDK application requires bidirectional TCP flows to have the
> >>>> same RSS hash however default RSS hashing is *asymmetric*.
> >>>>
> >>>>
> >>>> There are posts such as:
> >>>> http://dpdk.info/ml/archives/dev/2014-February/001460.html
> >>>>
> >>>> which point to a symmetric RSS key(0x6d5a). I have tried using it
> >>>> but it is still hashing bi-directional flows separately. I am using
> >>>> an 82599 NIC.
> >>>>
> >>>> Have others come across this? What other options are available(I
> >>>> presume S/W hashing)?
> >>>>
> >>>> Appreciate any help I can get on this :)
> >>>>
> >>>> #define RSS_HASH_KEY_LENGTH 40
> >>>> static uint8_t hash_key[RSS_HASH_KEY_LENGTH] = {
> >>>>        0x6D, 0x5A, 0x6D, 0x5A, 0x6D, 0x5A, 0x6D, 0x5A,
> >>>>        0x6D, 0x5A, 0x6D, 0x5A, 0x6D, 0x5A, 0x6D, 0x5A,
> >>>>        0x6D, 0x5A, 0x6D, 0x5A, 0x6D, 0x5A, 0x6D, 0x5A,
> >>>>        0x6D, 0x5A, 0x6D, 0x5A, 0x6D, 0x5A, 0x6D, 0x5A,
> >>>>        0x6D, 0x5A, 0x6D, 0x5A, 0x6D, 0x5A, 0x6D, 0x5A, }; //
> >>>> ethernet rx config static struct rte_eth_conf port_conf = {
> >>>>    .rxmode = {
> >>>>        .mq_mode    = ETH_MQ_RX_RSS,
> >>>>        .split_hdr_size = 0,
> >>>>        .header_split   = 0, /**< Header Split disabled */
> >>>>        .hw_ip_checksum = 1, /**< IP checksum offload enabled */
> >>>>        .hw_vlan_filter = 0, /**< VLAN filtering disabled */
> >>>>        .jumbo_frame    = 0, /**< Jumbo Frame Support disabled */
> >>>>        .hw_strip_crc   = 0, /**< CRC stripped by hardware */
> >>>>    },
> >>>>    .rx_adv_conf = {
> >>>>        .rss_conf = {
> >>>>            .rss_key = hash_key,
> >>>>            .rss_hf  = ETH_RSS_PROTO_MASK,
> >>>>        },
> >>>>    },
> >>>>    .txmode = {
> >>>>                .mq_mode = ETH_MQ_TX_NONE,
> >>>>    },
> >>>> };
> >>>>
> >>>>
> >>>> Thanks,
> >>>> Kam
> >>>>
> >>>



More information about the dev mailing list