From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?Q?Martin_Dra=c5=a1ar?= Subject: Broken RSS hash computation on Intel 82574L Date: Mon, 31 Aug 2015 14:15:31 +0200 Message-ID: <55E44563.5050208@ics.muni.cz> Mime-Version: 1.0 Content-Type: text/plain; charset=iso-8859-2 Content-Transfer-Encoding: quoted-printable To: dev@dpdk.org Return-path: Received: from minas.ics.muni.cz (minas.ics.muni.cz [147.251.4.46]) by dpdk.org (Postfix) with ESMTP id 89BA491A1 for ; Mon, 31 Aug 2015 14:15:39 +0200 (CEST) Received: from [147.251.17.24] (dhcp17-24.ics.muni.cz [147.251.17.24]) (authenticated user=98998@is.muni.cz bits=0) by minas.ics.muni.cz (8.14.4/8.14.4/Debian-4) with ESMTP id t7VCFbsd039637 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NOT) for ; Mon, 31 Aug 2015 14:15:39 +0200 List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" 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] =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 }; static const struct rte_eth_conf port_conf =3D { .link_speed =3D 0, .link_duplex =3D 0, .rxmode =3D { .mq_mode =3D ETH_RSS, .max_rx_pkt_len =3D 0, .split_hdr_size =3D 0, .header_split =3D 0, .hw_ip_checksum =3D 0, .hw_vlan_filter =3D 0, .hw_vlan_strip =3D 0, .hw_vlan_extend =3D 0, .jumbo_frame =3D 0, .hw_strip_crc =3D 0, }, .txmode =3D { .mq_mode =3D ETH_DCB_NONE, }, .lpbk_mode =3D 0, .rx_adv_conf =3D { .rss_conf =3D { .rss_key =3D hash_key, .rss_key_len =3D RSS_HASH_KEY_LENGTH, .rss_hf =3D ETH_RSS_PROTO_MASK, }, }, };