From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by dpdk.org (Postfix) with ESMTP id A5B892A1A for ; Thu, 18 Dec 2014 08:41:10 +0100 (CET) Received: from fmsmga001.fm.intel.com ([10.253.24.23]) by fmsmga101.fm.intel.com with ESMTP; 17 Dec 2014 23:41:09 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.07,599,1413270000"; d="scan'208";a="639514013" Received: from pgsmsx106.gar.corp.intel.com ([10.221.44.98]) by fmsmga001.fm.intel.com with ESMTP; 17 Dec 2014 23:41:08 -0800 Received: from shsmsx103.ccr.corp.intel.com (10.239.110.14) by PGSMSX106.gar.corp.intel.com (10.221.44.98) with Microsoft SMTP Server (TLS) id 14.3.195.1; Thu, 18 Dec 2014 15:41:03 +0800 Received: from shsmsx104.ccr.corp.intel.com ([169.254.5.182]) by SHSMSX103.ccr.corp.intel.com ([169.254.4.240]) with mapi id 14.03.0195.001; Thu, 18 Dec 2014 15:41:02 +0800 From: "Zhang, Helin" To: Jim Thompson , Kamraan Nasim Thread-Topic: [dpdk-dev] Symmetric RSS Hashing in DPDK Thread-Index: AQHQGo/KxhtR4xqEz0qKBImAZDh535yU9IOA Date: Thu, 18 Dec 2014 07:41:01 +0000 Message-ID: References: In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.239.127.40] Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Cc: "dev@dpdk.org" , Steve Noble , Jeriel Smith Subject: Re: [dpdk-dev] Symmetric RSS Hashing in DPDK X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 18 Dec 2014 07:41:11 -0000 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@dpdk.org] On Behalf Of Jim Thompson > Sent: Thursday, December 18, 2014 2:56 PM > To: Kamraan Nasim > Cc: dev@dpdk.org; Steve Noble; Jeriel Smith > Subject: Re: [dpdk-dev] Symmetric RSS Hashing in DPDK >=20 >=20 > The issues are outlined in this paper: > http://www.ndsl.kaist.edu/~shinae/papers/TR-symRSS.pdf >=20 > > On Dec 17, 2014, at 7:28 PM, Kamraan Nasim > wrote: > > > > Hi DPDK community, > > > > Any better RSS hash keys out there? > > > > --Kam > > > > On Wed, Dec 17, 2014 at 2:12 PM, Kamraan Nasim > > > > 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 wro= te: > >>> > >>> 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 > >>>> Date: Tue, Dec 16, 2014 at 11:52 AM > >>>> Subject: [dpdk-dev] Symmetric RSS Hashing in DPDK > >>>> To: dev@dpdk.org > >>>> Cc: Steve Noble , Jun Du < > >>>> jdu@sidebandnetworks.com>, Ashish Juneja > >>>> > >>>> > >>>> 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] =3D { > >>>> 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 =3D { > >>>> .rxmode =3D { > >>>> .mq_mode =3D ETH_MQ_RX_RSS, > >>>> .split_hdr_size =3D 0, > >>>> .header_split =3D 0, /**< Header Split disabled */ > >>>> .hw_ip_checksum =3D 1, /**< IP checksum offload enabled */ > >>>> .hw_vlan_filter =3D 0, /**< VLAN filtering disabled */ > >>>> .jumbo_frame =3D 0, /**< Jumbo Frame Support disabled */ > >>>> .hw_strip_crc =3D 0, /**< CRC stripped by hardware */ > >>>> }, > >>>> .rx_adv_conf =3D { > >>>> .rss_conf =3D { > >>>> .rss_key =3D hash_key, > >>>> .rss_hf =3D ETH_RSS_PROTO_MASK, > >>>> }, > >>>> }, > >>>> .txmode =3D { > >>>> .mq_mode =3D ETH_MQ_TX_NONE, > >>>> }, > >>>> }; > >>>> > >>>> > >>>> Thanks, > >>>> Kam > >>>> > >>>