<div dir="ltr">Hey, Dmitry!<br>Thanks for reply!<br><br>I'm using global RSS configuration (configured using rte_eth_dev_configure) which distributes incoming packets to different queues. And each queue is handled by different lcore.<br>I've checked that incoming traffic is properly distributed among them. For example, in case of 16 queues (lcores) I see about 900 Kpps per lcore which in sum gives 15 Mpps.<br><br>I was able to reproduce the same using testpmd utility<br><br>My steps:<br><br>- Start generator at 50 Mpps with 2 IP dest addresses: 10.0.0.1 and 10.0.0.2<br><br>- Start testpmd in interactive mode with 16 queues/lcores:<br><br>numactl -N 1 -m 1 ./dpdk-testpmd -l 64-127 -a 0000:c1:00.0  -- --nb-cores=16 --rxq=16 --txq=16 -i<br><br>- Create flow rule:<br><br>testpmd> flow create 0 group 0 priority 0 ingress pattern eth / ipv4 dst is 10.0.0.2 / end actions drop / end<br><br>- Start forwarding:<br><br>testpmd> start<br><br>- Show stats (it shows the same 15Mpps instead of expected 25 Mpps)<br><br>testpmd> show port stats 0<br><br>  ######################## NIC statistics for port 0  ########################<br>  RX-packets: 1127219612 RX-missed: 0          RX-bytes:  67633178722<br>  RX-errors: 0<br>  RX-nombuf:  0         <br>  TX-packets: 1127219393 TX-errors: 0          TX-bytes:  67633171416<br><br>  Throughput (since last show)<br>  Rx-pps:     14759286          Rx-bps:   7084457512<br>  Tx-pps:     14758730          Tx-bps:   7084315448<br>  ############################################################################<br><br>- Ensure incoming traffic is properly distributed among queues (lcores):<br><br>testpmd> show port xstats 0<br><br>rx_q0_packets: 21841125<br>rx_q1_packets: 21847375<br>rx_q2_packets: 21833731<br>rx_q3_packets: 21837461<br>rx_q4_packets: 21842922<br>rx_q5_packets: 21843999<br>rx_q6_packets: 21838775<br>rx_q7_packets: 21833429<br>rx_q8_packets: 21838033<br>rx_q9_packets: 21835210<br>rx_q10_packets: 21833261<br>rx_q11_packets: 21833059<br>rx_q12_packets: 21849831<br>rx_q13_packets: 21843589<br>rx_q14_packets: 21842721<br>rx_q15_packets: 21834222<br><br>- If I use IP dest addresses which don't match drop rule (replace 10.0.0.2 by 10.0.0.3) - I get expected 50 Mpps<br><br>  ######################## NIC statistics for port 0  ########################<br>  RX-packets: 1988576249 RX-missed: 0          RX-bytes:  119314577228<br>  RX-errors: 0<br>  RX-nombuf:  0         <br>  TX-packets: 1988576248 TX-errors: 0          TX-bytes:  119314576882<br><br>  Throughput (since last show)<br>  Rx-pps:     49999534          Rx-bps:  23999776424<br>  Tx-pps:     49999580          Tx-bps:  23999776424<br>  ############################################################################<br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">пт, 11 мар. 2022 г. в 14:37, Dmitry Kozlyuk <<a href="mailto:dkozlyuk@nvidia.com">dkozlyuk@nvidia.com</a>>:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Hi Dmitry,<br>
<br>
Can it be that RSS, to which non-matching traffic gets by default,<br>
is configured in a way that steers each destination IP to one queue?<br>
And this 15 Mpps is in fact how much a core can read from a queue?<br>
In general, it is always worth trying to reproduce the issue with testpmd<br>
and to describe flow rules in full testpmd format ("flow create...").<br>
</blockquote></div>