From mboxrd@z Thu Jan 1 00:00:00 1970 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 To: dev@dpdk.org From: =?UTF-8?Q?Martin_Dra=c5=a1ar?= X-Enigmail-Draft-Status: N1110 Message-ID: <55E44563.5050208@ics.muni.cz> Date: Mon, 31 Aug 2015 14:15:31 +0200 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:38.0) Gecko/20100101 Thunderbird/38.2.0 MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-2 Content-Transfer-Encoding: 8bit X-Muni-Envelope-From: drasar@ics.muni.cz X-Muni-Spam-TestIP: 147.251.17.24 X-Muni-Local-IP: yes X-Muni-Local-Auth: yes X-Greylist: Sender succeeded SMTP AUTH, not delayed by milter-greylist-4.3.9 (minas.ics.muni.cz [147.251.4.35]); Mon, 31 Aug 2015 14:15:39 +0200 (CEST) X-Virus-Scanned: clamav-milter 0.98.7 at minas X-Virus-Status: Clean Subject: [dpdk-dev] Broken RSS hash computation on Intel 82574L 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: Mon, 31 Aug 2015 12:15:39 -0000 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, }, }, };