[dpdk-users] Mellanox rss hash information

Saleh, Omran omran.saleh at sap.com
Wed Dec 28 15:18:46 CET 2016


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 at mellanox.com] 
Sent: Mittwoch, 28. Dezember 2016 12:00
To: Saleh, Omran <omran.saleh at sap.com>; users at 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_key is already in big-endian format. 


/**         
 * 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 at dpdk.org] On Behalf Of Saleh, Omran
Sent: Wednesday, December 28, 2016 10:29 AM
To: users at dpdk.org
Subject: [dpdk-users] Mellanox rss hash information

Hi All,
Currently, I am using DPDK 16.11 with Mellanox NIC adapters (mlx5). I encounter a problem that the RSS hash value from mbuf  (mbug.hash->rss) is not the 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[] = {
        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 = 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 = ETH_MQ_RX_RSS; port_conf.rx_adv_conf.rss_conf.rss_hf = ETH_RSS_NONFRAG_IPV4_TCP; port_conf.rx_adv_conf.rss_conf.rss_key= rss_hash_default_key; port_conf.rx_adv_conf.rss_conf.rss_key_len = 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 mlx5?!

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 UTC 2015 (8d714a0) x86_64 x86_64 x86_64 GNU/Linux

Thank you
Best regards,
Omran Saleh


More information about the users mailing list