RSS works with vlan. I'm not sure why it makes a difference for you. I did a 
quick test with vlans and had no trouble getting UDP packets across multiple 
queues on Rx.

If you could provide more details about how your interfaces are configured that 
may give us some idea and we can also try to reproduce it on our end.

Thanks,
Emil

>-----Original Message-----
>From: Xu, Gang 1. (NSN - CN/Hangzhou)
>[mailto:[email protected]]
>Sent: Sunday, June 29, 2014 10:28 PM
>To: Tantilov, Emil S; [email protected]
>Cc: Ni, Zhenglin (NSN - CN/Hangzhou); Liu, Xin 9. (NSN -
>CN/Hangzhou); Yan, Liming (NSN - CN/Hangzhou); Liu, Zuofeng
>(NSN - CN/Hangzhou); Pajunpaa, Jussi (NSN - FI/Oulu); Ao, Bo
>(NSN - CN/Hangzhou); Ouyang, Lane (NSN - CN/Hangzhou)
>Subject: RE: [E1000-devel] Need Help about UDP multiple
>receive queue
>
>Hi Emil,
>
>We remove the VLAN on the interface and the RSS works.
>Does it works with VLAN ?
>
>
>
>Regards
>Gang
>
>
>-----Original Message-----
>From: Ouyang, Lane (NSN - CN/Hangzhou)
>Sent: Tuesday, June 17, 2014 4:27 PM
>To: ext Tantilov, Emil S; Xu, Gang 1. (NSN - CN/Hangzhou);
>[email protected]
>Cc: Ni, Zhenglin (NSN - CN/Hangzhou); Liu, Xin 9. (NSN -
>CN/Hangzhou); Yan, Liming (NSN - CN/Hangzhou); Liu, Zuofeng
>(NSN - CN/Hangzhou); Pajunpaa, Jussi (NSN - FI/Oulu); Ao, Bo
>(NSN - CN/Hangzhou)
>Subject: RE: [E1000-devel] Need Help about UDP multiple
>receive queue
>
>Hi Emil,
>
>Thank you!
>
>But unfortunately, "infconfig ethX down/up" do not help to
>distribute UDP packets with different source port to
>different receiving queues of ethX. Here is my experiment:
>
>1.     # ethtool -d ethX | grep -i mrqc
>0x05818: MRQC        (Multiple Rx Queues Command)
>0x00330001
>
>2.     ethtool -N ethX rx-flow-hash udp4 sdfn
>
>3.     # ethtool -d ethX | grep -i mrqc
>0x05818: MRQC        (Multiple Rx Queues Command)
>0x00730001
>
>4.     infconfig ethX down
>
>5.     # ethtool -d ethX | grep -i mrqc
>0x05818: MRQC        (Multiple Rx Queues Command)
>0x00000000
>
>6.     infconfig ethX up
>
>7.     # ethtool -d ethX | grep -i mrqc
>0x05818: MRQC        (Multiple Rx Queues Command)
>0x00730001
>
>8.     Now starting the UDP traffic, ethX is receiving side.
># tcpdump -ni fi0
>tcpdump: WARNING: fi0: no IPv4 address assigned
>tcpdump: verbose output suppressed, use -v or -vv for full
>protocol decode
>listening on fi0, link-type EN10MB (Ethernet), capture size
>65535 bytes
>14:20:35.047762 IP 10.69.0.1.14405 > 10.69.74.38.3000: UDP,
>length 96
>14:20:35.047780 IP 10.69.0.1.13975 > 10.69.74.38.3000: UDP,
>length 96
>14:20:35.047796 IP 10.69.0.1.62189 > 10.69.74.38.3000: UDP,
>length 96
>14:20:35.047797 IP 10.69.0.1.13991 > 10.69.74.38.3000: UDP,
>length 96
>14:20:35.047805 IP 10.69.0.1.24751 > 10.69.74.38.3000: UDP,
>length 96
>14:20:35.047839 IP 10.69.0.1.64655 > 10.69.74.38.3000: UDP,
>length 96
>...
>
>9.     All UDP packets go to ethX queue 0
>ethtool -S ethX | grep rx_queue_
>     rx_queue_0_packets: 6988897
>     rx_queue_0_bytes: 453792845
>     rx_queue_1_packets: 0
>     rx_queue_1_bytes: 0
>     rx_queue_2_packets: 0
>     rx_queue_2_bytes: 0
>     rx_queue_3_packets: 0
>     rx_queue_3_bytes: 0
>     rx_queue_4_packets: 0
>     rx_queue_4_bytes: 0
>     rx_queue_5_packets: 0
>     rx_queue_5_bytes: 0
>     ...
>
>10.    # ifconfig fi0
>fi0       Link encap:Ethernet  HWaddr EC:9E:CD:0A:50:94
>          inet6 addr: fe80::ec9e:cd00:100a:5094/64
>Scope:Link
>          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
>          RX packets:1822562336 errors:0 dropped:0
>overruns:0 frame:0
>          TX packets:7041228 errors:0 dropped:0 overruns:0
>carrier:0
>          collisions:0 txqueuelen:1000
>          RX bytes:237415050805 (221.1 GiB)  TX
>bytes:450638686 (429.7 MiB)
>
>fi0 = ethX
>
>What else need to do ... ?
>
>Br,Lane
>
>-----Original Message-----
>From: ext Tantilov, Emil S
>[mailto:[email protected]]
>Sent: Tuesday, June 17, 2014 4:37 AM
>To: Ouyang, Lane (NSN - CN/Hangzhou); Xu, Gang 1. (NSN -
>CN/Hangzhou); [email protected]
>Cc: Ni, Zhenglin (NSN - CN/Hangzhou); Liu, Xin 9. (NSN -
>CN/Hangzhou); Yan, Liming (NSN - CN/Hangzhou); Liu, Zuofeng
>(NSN - CN/Hangzhou); Pajunpaa, Jussi (NSN - FI/Oulu)
>Subject: RE: [E1000-devel] Need Help about UDP multiple
>receive queue
>
>>-----Original Message-----
>>From: Ouyang, Lane (NSN - CN/Hangzhou)
>>[mailto:[email protected]]
>>Sent: Friday, June 13, 2014 2:04 AM
>>To: Tantilov, Emil S; Xu, Gang 1. (NSN - CN/Hangzhou);
>>[email protected]
>>Cc: Ni, Zhenglin (NSN - CN/Hangzhou); Liu, Xin 9. (NSN -
>>CN/Hangzhou); Yan, Liming (NSN - CN/Hangzhou); Liu, Zuofeng
>>(NSN - CN/Hangzhou); Pajunpaa, Jussi (NSN - FI/Oulu)
>>Subject: RE: [E1000-devel] Need Help about UDP multiple
>>receive queue
>>
>>Hi Emil,
>>
>>The size of UDP packets is quite small, so they should not
>>be fragmented.
>>
>>16:52:30.908413 IP 10.69.0.1.18890 > 10.69.9.81.3000: UDP,
>>length 96
>>16:52:30.908425 IP 10.69.0.1.42398 > 10.69.9.81.3000: UDP,
>>length 96
>
>...
>
>Yeah, the packets look OK.
>
>>
>>In Intel 82599 10 Gbe Controller Datasheet, it tells,
>>
>>"
>>Enabling rules:
>>* RSS is enabled in the MRQC register.
>>* |>***********RSS enabling cannot be done dynamically
>while it must be preceded by a software reset.************<|
>>* RSS status field in the descriptor write-back is enabled
>when the RXCSUM.PCSD bit is
>>set (fragment checksum is disabled). RSS is therefore
>mutually exclusive with UDP
>>fragmentation checksum offload. * Support for RSS is not
>provided when legacy receive
>>descriptor format is used."
>>
>>Before we execute the command " ethtool -N fi0 rx-flow-hash
>>udp4 sdfn "
>>
>>Register MRQC has value 330001
>>0x05818: MRQC        (Multiple Rx Queues Command)
>>0x00330001
>>
>>After we execute the command,
>>
>>Register MRQC has value 730001
>>0x05818: MRQC        (Multiple Rx Queues Command)
>>0x00330001
>>
>>I wonder, should we do any software reset after executing
>>the above command? And how to do a software reset? Please
>>advice...
>
>You can just do `ifconfig ethX down; ifconfig ethX up` and
>see if the packets are distributed differently after that.
>
>Also you can do a quick test using netperf:
>
>for ((i=0; i<5; i++))
>do
>       netperf -H $host -t UDP_SREAM &
>done
>
>and check the queue distribution on the $host.
>
>Thanks,
>Emil
>
>


------------------------------------------------------------------------------
Open source business process management suite built on Java and Eclipse
Turn processes into business applications with Bonita BPM Community Edition
Quickly connect people, data, and systems into organized workflows
Winner of BOSSIE, CODIE, OW2 and Gartner awards
http://p.sf.net/sfu/Bonitasoft
_______________________________________________
E1000-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/e1000-devel
To learn more about Intel&#174; Ethernet, visit 
http://communities.intel.com/community/wired

Reply via email to