From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-la0-x22d.google.com (mail-la0-x22d.google.com [IPv6:2a00:1450:4010:c03::22d]) by dpdk.org (Postfix) with ESMTP id 271802A9 for ; Thu, 12 Dec 2013 16:16:06 +0100 (CET) Received: by mail-la0-f45.google.com with SMTP id eh20so422934lab.32 for ; Thu, 12 Dec 2013 07:17:10 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=eLIdcM6dEV42vxmyx1rzyRFKFZknA7deZe42wM2OOzY=; b=r+BXscZfFX8bVxvU5TLHegoRBgOUAKQMkgCVjgFbTEDzIOK2TYluLbMIkeYHZ4E2Pj GB9j+6ONKT5QxwVO82Q0ol+WbKmT1yArMIsjeDfxD5ZoNTC3O4awbnXk0Tnr0OeiUun+ UWF8R2u4Bpo5GEwjinZl0m/u2TTjBjRYI0leIzh6uKV4+InQzf58MU35jlwrvCdSVvEn h2UDBvq/j1EIRyobhe7xv5JMr9mRW5yUOgIWmaPfsBtJn3568D6b8qVBBWga4GyNPkO/ JhkGLbjW9FcxnenQNTaRycBESB75TQzvsYb7KvlwbFl8gmnll6Nb+Yoi91cIMPZQc13T Sayg== MIME-Version: 1.0 X-Received: by 10.152.4.230 with SMTP id n6mr4022615lan.1.1386861430580; Thu, 12 Dec 2013 07:17:10 -0800 (PST) Received: by 10.114.57.39 with HTTP; Thu, 12 Dec 2013 07:17:10 -0800 (PST) In-Reply-To: References: Date: Thu, 12 Dec 2013 19:17:10 +0400 Message-ID: From: Vladimir Medvedkin To: "chen_lp@neusoft.com" Content-Type: text/plain; charset=ISO-8859-1 X-Content-Filtered-By: Mailman/MimeDel 2.1.15 Cc: "dev@dpdk.org" Subject: Re: [dpdk-dev] Who can correct me about 82599 RSS Hash Function 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: Thu, 12 Dec 2013 15:16:06 -0000 Hi, First, I hope you configure port_conf->rx_adv_conf.rss_conf.rss_key and .rss_hf properly. Secondly, -for(j=0;j<8;j++){ +for(j=7;j>=0;j--){ Regards, Vladimir 2013/12/11 chen_lp@neusoft.com > > I want calculate the NIC rss hash result by function,but the result is not > right, I don't know where the wrong. > > > struct mbf_cb{ > uint32_t sip; > uint32_t dip; > uint16_t sport; > uint16_t dport; > }; > > static uint8_t test_rss[]={ > 0x6d,0x5a,0x56,0xda,0x25,0x5b,0x0e,0xc2, > 0x41,0x67,0x25,0x3d,0x43,0xa3,0x8f,0xb0, > 0xd0,0xca,0x2b,0xcb,0xae,0x7b,0x30,0xb4, > 0x77,0xcb,0x2d,0xa3,0x80,0x30,0xf2,0x0c, > 0x6a,0x42,0xb7,0x3b,0xbe,0xac,0x01,0xfa, > }; > > static uint8_t input_mask[]={ > 0x01,0x02,0x04,0x08, > 0x10,0x20,0x40,0x80, > }; > > mcb.sip=rte_cpu_to_be_32(IPv4(66,9,149,187)); > mcb.dip=rte_cpu_to_be_32(IPv4(161,142,100,80)); > mcb.sport=rte_cpu_to_be_16(2794); > mcb.dport=rte_cpu_to_be_16(1766); > > > uint32_t compute_hash(uint8_t *input, int n) > { > int i,j,k; > uint32_t result=0; > uint32_t *lk; > uint8_t rss_key[40]; > > memcpy(rss_key,test_rss,40); > > lk=(uint32_t *)rss_key; > for(i=0;i for(j=0;j<8;j++){ > if((input_mask[j])&input[i]){ > result^=*lk; > } > > // shift k left 1 bit > rss_key[0]=rss_key[0]<<1; > for(k=1;k<40;k++){ > if(rss_key[k]&0x80){ > rss_key[k-1]|=0x01; > } > rss_key[k]=rss_key[k]<<1; > } > } > } > return result; > } > > printf("rss_hash=%#x\n",compute_hash((uint8_t *)&mcb,sizeof(struct > mbf_cb))); > > rss_hash=0x57476eca > but the right result is 0x51ccc178 > > > > > > > > > --------------------------------------------------------------------------------------------------- > Confidentiality Notice: The information contained in this e-mail and any > accompanying attachment(s) > is intended only for the use of the intended recipient and may be > confidential and/or privileged of > Neusoft Corporation, its subsidiaries and/or its affiliates. If any reader > of this communication is > not the intended recipient, unauthorized use, forwarding, printing, > storing, disclosure or copying > is strictly prohibited, and may be unlawful.If you have received this > communication in error,please > immediately notify the sender by return e-mail, and delete the original > message and all copies from > your system. Thank you. > > --------------------------------------------------------------------------------------------------- >