From: Vladimir Medvedkin <medvedkinv@gmail.com>
To: "chen_lp@neusoft.com" <chen_lp@neusoft.com>
Cc: "dev@dpdk.org" <dev@dpdk.org>
Subject: Re: [dpdk-dev] Who can correct me about 82599 RSS Hash Function
Date: Thu, 12 Dec 2013 19:17:10 +0400 [thread overview]
Message-ID: <CANDrEHn7DJq7mAfc9vV4Psz09hnqh3NoHMX2pfMCqSVmW+t43Q@mail.gmail.com> (raw)
In-Reply-To: <C56116049ECAE44E80D96D7789DBE1C40C9EE4AB@MPS-SYMBX02.neusoft.internal>
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 <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<n;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.
>
> ---------------------------------------------------------------------------------------------------
>
next prev parent reply other threads:[~2013-12-12 15:16 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-12-11 14:21 chen_lp
2013-12-12 15:17 ` Vladimir Medvedkin [this message]
2013-12-13 0:31 ` chen_lp
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=CANDrEHn7DJq7mAfc9vV4Psz09hnqh3NoHMX2pfMCqSVmW+t43Q@mail.gmail.com \
--to=medvedkinv@gmail.com \
--cc=chen_lp@neusoft.com \
--cc=dev@dpdk.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).