<div dir="ltr">FYI if I add a 'eth' only line (e.g. to match ARP packets) the performance remains the same (which is good). <div><br></div><div>flow create 0 ingress group 1 priority 1 pattern eth / ipv6 / end<span class="gmail-im" style="color:rgb(80,0,80)"><br>actions count / rss queues 6 7 8 9 end / end<br></span>flow create 0 ingress group 1 priority 1 pattern eth / ipv4 / end<span class="gmail-im" style="color:rgb(80,0,80)"><br>actions count / rss queues 6 7 8 9 end / end</span><br></div><div><span class="gmail-im" style="color:rgb(80,0,80)"><span style="color:rgb(34,34,34)">flow create 0 ingress group 1 priority 2 pattern eth / end</span><span class="gmail-im"><br>actions count / rss queues 6 7 8 9 end / end</span><br></span></div><div><span class="gmail-im" style="color:rgb(80,0,80)"><span class="gmail-im"><br></span></span></div><div><span class="gmail-im" style="color:rgb(80,0,80)"><span class="gmail-im">Any thoughts why the single 'pattern eth / end' performance is worse?</span></span></div><div><span class="gmail-im" style="color:rgb(80,0,80)"><span class="gmail-im"><br></span></span></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Wed, Jun 26, 2024 at 9:24 AM Tony Hart <<a href="mailto:tony.hart@domainhart.com">tony.hart@domainhart.com</a>> wrote:<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 Bing,<br>
Thanks for the quick reply. The results are...<br>
<br>
With a single hairpin queue I get approx the same rate for both<br>
patterns, ~54Gbps. I assume this is less than the RSS rates due to<br>
fewer queues?<br>
flow create 0 ingress group 1 pattern eth / end actions count / queue<br>
index 6 / end<br>
flow create 0 ingress group 1 pattern eth / ipv4 / end actions count /<br>
queue index 6 / end<br>
<br>
With the split ipv6/ipv4 I'm getting ~124Gbps<br>
<br>
flow create 0 ingress group 1 priority 1 pattern eth / ipv6 / end<br>
actions count / rss queues 6 7 8 9 end / end<br>
flow create 0 ingress group 1 priority 1 pattern eth / ipv4 / end<br>
actions count / rss queues 6 7 8 9 end / end<br>
<br>
testpmd> flow list 0<br>
ID Group Prio Attr Rule<br>
0 0 0 i-- => JUMP<br>
1 1 1 i-- ETH IPV6 => COUNT RSS<br>
2 1 1 i-- ETH IPV4 => COUNT RSS<br>
<br>
On Wed, Jun 26, 2024 at 8:10 AM Bing Zhao <<a href="mailto:bingz@nvidia.com" target="_blank">bingz@nvidia.com</a>> wrote:<br>
><br>
> Hi Tony,<br>
><br>
> Could you also try to test with:<br>
> 1. QUEUE action instead of RSS and check 1 queue performance.<br>
> 2. when trying to test IPv4 only case, try the following 3 commands with this order -<br>
> flow create 0 ingress group 0 pattern end actions jump group 1 / end<br>
> flow create 0 ingress group 1 pattern priority 1 eth / ipv6 / end actions count / rss queues 6 7 8 9 end / end<br>
> flow create 0 ingress group 1 pattern priority 1 eth / ipv4 / end actions count / rss queues 6 7 8 9 end / end<br>
><br>
> BR. Bing<br>
><br>
> > -----Original Message-----<br>
> > From: Tony Hart <<a href="mailto:tony.hart@domainhart.com" target="_blank">tony.hart@domainhart.com</a>><br>
> > Sent: Wednesday, June 26, 2024 7:39 PM<br>
> > To: <a href="mailto:users@dpdk.org" target="_blank">users@dpdk.org</a><br>
> > Subject: Performance of CX7 with 'eth' pattern versus 'eth/ipv4' in hairpin<br>
> ><br>
> > External email: Use caution opening links or attachments<br>
> ><br>
> ><br>
> > I'm using a CX7 and testing hairpin queues. The test traffic is entirely<br>
> > IPv4+UDP with distributed SIP,DIP pairs and received packets are u-turned via<br>
> > hairpin in the CX7 (single 400G interface).<br>
> ><br>
> > I see different performance when I use a pattern of 'eth' versus 'eth/ipv4' in<br>
> > the hairpin flow entry. From testing it seems that specifying just 'eth' is<br>
> > sufficient to invoke RSS and 'eth/ipv4'<br>
> > should be equivalent since the traffic is all ipv4, but I'm getting ~104Gbps for<br>
> > the 'eth' pattern and ~124Gbps for 'eth/ipv4' pattern.<br>
> ><br>
> > Any thoughts on why there is such a performance difference here?<br>
> ><br>
> > thanks<br>
> > tony<br>
> ><br>
> > This is the 'eth' pattern testpmd commands flow create 0 ingress group 0<br>
> > pattern end actions jump group 1 / end flow create 0 ingress group 1 pattern<br>
> > eth / end actions count / rss queues 6 7 8 9 end / end<br>
> ><br>
> > The testpmd commands for 'eth/ipv4'<br>
> > flow create 0 ingress group 0 pattern end actions jump group 1 / end flow<br>
> > create 0 ingress group 1 pattern eth / ipv4 / end actions count / rss queues 6 7<br>
> > 8 9 end / end<br>
> ><br>
> ><br>
> > This is the testpmd command line...<br>
> > dpdk-testpmd -l8-14 -a81:00.0,dv_flow_en=1 -- -i --nb-cores 6 --rxq 6 --txq 6<br>
> > --port-topology loop --forward-mode=rxonly --hairpinq 4 --hairpin-mode<br>
> > 0x10<br>
> ><br>
> > Versions<br>
> > mlnx-ofa_kernel-24.04-OFED.24.04.0.6.6.1.rhel9u4.x86_64<br>
> > kmod-mlnx-ofa_kernel-24.04-OFED.24.04.0.6.6.1.rhel9u4.x86_64<br>
> > mlnx-ofa_kernel-devel-24.04-OFED.24.04.0.6.6.1.rhel9u4.x86_64<br>
> > ofed-scripts-24.04-OFED.24.04.0.6.6.x86_64<br>
> ><br>
> > DPDK: v24.03<br>
<br>
<br>
<br>
-- <br>
tony<br>
</blockquote></div><br clear="all"><div><br></div><span class="gmail_signature_prefix">-- </span><br><div dir="ltr" class="gmail_signature">tony<br></div>