From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtpgw.sap-ag.de (smtpgw03.sap-ag.de [155.56.66.98]) by dpdk.org (Postfix) with ESMTP id 83A2E2C4F for ; Thu, 29 Dec 2016 09:06:00 +0100 (CET) From: "Saleh, Omran" To: Shahaf Shuler , "users@dpdk.org" Thread-Topic: Mellanox rss hash information Thread-Index: AdJg4ZUKHBVElpRgQ0Ozbzqe/tTD+QAFiM7wAAc1qPAAJI7f4A== Date: Thu, 29 Dec 2016 08:05:59 +0000 Message-ID: <6a2df95439f04b03bb4c2b37bc70965a@DEWDFE13DE16.global.corp.sap> References: <8c0c4278cb7045ffb4b204095ef621f7@DEWDFE13DE16.global.corp.sap> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ms-exchange-transport-fromentityheader: Hosted x-originating-ip: [10.21.23.231] Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Subject: Re: [dpdk-users] Mellanox rss hash information X-BeenThere: users@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK usage discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 29 Dec 2016 08:06:01 -0000 Another thing I have noticed that the mbuf.hash->rss is equal in both side= s , server and client,=20 For example, I am sending a packet which has the following info from a client to a serve= r: src_ip =3D172.31.134.146, dest_ip =3D 172.31.134.150, src_port=3D49154, des= t_port =3D 9=20 The rss value (mbuf.hash->rss) for this packet on the server was 427276354= 6. =20 Sending a reply from the server to the client src_ip =3D172.31.134.150, dest_ip =3D 172.31.134.146, src_port=3D9, dest_po= rt =3D 49154. Produces the same rss value (mbuf.hash->rss) on the client (4272763546).=20 On the other hand, rte_softrss_be and rte_softrss functions (both generat= e the same value) on the client output 3752309715=20 and on the server 1141129430. Any idea ? can be a kernel problem (i.e., modules) ? Can you please provide me how mbuf.hash->rss (i.e., Toeplitz function) is c= alculated ? -----Original Message----- From: users [mailto:users-bounces@dpdk.org] On Behalf Of Saleh, Omran Sent: Mittwoch, 28. Dezember 2016 15:19 To: Shahaf Shuler ; users@dpdk.org Subject: Re: [dpdk-users] Mellanox rss hash information I am still getting the same problem with the optimized function, the result= value from rte_softrss_be is different than mbuf.hash->rss. any idea about the problem, can be an old kernel produce this problem? -----Original Message----- From: Shahaf Shuler [mailto:shahafs@mellanox.com]=20 Sent: Mittwoch, 28. Dezember 2016 12:00 To: Saleh, Omran ; users@dpdk.org Subject: RE: Mellanox rss hash information Have you tried you use rte_softrss_be function? I suspect you have an endianness issue here as the mlx5 rss_hash_default_ke= y is already in big-endian format.=20 /** =20 * Optimized implementation. * If you want the calculated hash value matches NIC RSS value * you have to use special converted key with rte_convert_rss_key() fn. * @param input_tuple * Pointer to input tuple * @param input_len * Length of input_tuple in 4-bytes chunks * @param *rss_key * Pointer to RSS hash key. * @return * Calculated hash value. */ static inline uint32_t rte_softrss_be(uint32_t *input_tuple, uint32_t input_len, const uint8_t *rss_key) { ... } --Shahaf -----Original Message----- From: users [mailto:users-bounces@dpdk.org] On Behalf Of Saleh, Omran Sent: Wednesday, December 28, 2016 10:29 AM To: users@dpdk.org Subject: [dpdk-users] Mellanox rss hash information Hi All, Currently, I am using DPDK 16.11 with Mellanox NIC adapters (mlx5). I encou= nter a problem that the RSS hash value from mbuf (mbug.hash->rss) is not t= he same as calculated from rte_softrss(). It is completely different. I am using the default hash key from mlx5 uint8_t rss_hash_default_key[] =3D { 0x2c, 0xc6, 0x81, 0xd1, 0x5b, 0xdb, 0xf4, 0xf7, 0xfc, 0xa2, 0x83, 0x19, 0xdb, 0x1a, 0x3e, 0x94, 0x6b, 0x9e, 0x38, 0xd9, 0x2c, 0x9c, 0x03, 0xd1, 0xad, 0x99, 0x44, 0xa7, 0xd9, 0x56, 0x3d, 0x59, 0x06, 0x3c, 0x25, 0xf3, 0xfc, 0x1f, 0xdc, 0x2a, }; And the following call: auto hash =3D rte_softrss(&tuple.v4.src_addr, RTE_THASH_V4_L4_LEN, rss_hash= _default_key); with RSS configurations as the following: port_conf.rxmode.mq_mode =3D ETH_MQ_RX_RSS; port_conf.rx_adv_conf.rss_conf.= rss_hf =3D ETH_RSS_NONFRAG_IPV4_TCP; port_conf.rx_adv_conf.rss_conf.rss_key= =3D rss_hash_default_key; port_conf.rx_adv_conf.rss_conf.rss_key_len =3D 40= ; This is working perfectly with ixgbe but Mellanox not. Can you help me to = figure out what is the problem? What is the default Toeplitz function for m= lx5?! My NIC adapters are Mellanox Technologies MT27700 Family [ConnectX-4] With= firmware version 12.16.1006 and ofed version 3.3-2.0.0 uname -a : Linux ibmhanar16 3.12.49-11-default #1 SMP Wed Nov 11 20:52:43 U= TC 2015 (8d714a0) x86_64 x86_64 x86_64 GNU/Linux Thank you Best regards, Omran Saleh