[dpdk-dev] Broken RSS hash computation on Intel 82574L

De Lara Guarch, Pablo pablo.de.lara.guarch at intel.com
Tue Sep 1 15:45:18 CEST 2015


Hi Martin,

> -----Original Message-----
> From: dev [mailto:dev-bounces at dpdk.org] On Behalf Of Martin Drašar
> Sent: Monday, August 31, 2015 1:16 PM
> To: dev at dpdk.org
> Subject: [dpdk-dev] Broken RSS hash computation on Intel 82574L
> 
> Hi,
> 
> I am using RSS to get identical hash for both directions of a flow.
> Everything is working as it should with the Intel 82599ES, but when I
> run the same code with the Intel 82574L, then the hash is not calculated
> correctly and returns 0 as a hash value for all flows.
> 
> I could use the Toeplitz hash implementation from 2.1.0, but I would
> rather do it in hardware, because according to specification, 82574L can
> do RSS in hardware.
> 
> Any ideas what might be wrong?
> 
> Thanks in advance,
> Martin
> 
> conf:
> #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 };
> 
> static const struct rte_eth_conf port_conf = {
>   .link_speed  = 0,
>   .link_duplex = 0,
>   .rxmode = {
>     .mq_mode        = ETH_RSS,
>     .max_rx_pkt_len = 0,
>     .split_hdr_size = 0,
>     .header_split   = 0,
>     .hw_ip_checksum = 0,
>     .hw_vlan_filter = 0,
>     .hw_vlan_strip  = 0,
>     .hw_vlan_extend = 0,
>     .jumbo_frame    = 0,
>     .hw_strip_crc   = 0,
>   },
>   .txmode = {
>     .mq_mode = ETH_DCB_NONE,
>   },
>   .lpbk_mode = 0,
>   .rx_adv_conf = {
>     .rss_conf = {
>       .rss_key     = hash_key,
>       .rss_key_len = RSS_HASH_KEY_LENGTH,
>       .rss_hf      = ETH_RSS_PROTO_MASK,
>       },
>     },
> };

82574L NIC uses em PMD, which does not support more than 1 queue.
Therefore RSS is disabled in the NIC and then you cannot have RSS hashes.

Thanks,
Pablo


More information about the dev mailing list