<div dir="ltr"><div dir="ltr"><br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Wed, Feb 21, 2024 at 9:40 PM Yaron Illouz <<a href="mailto:yaroni@radcom.com">yaroni@radcom.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"><div class="msg-7692156074670919738">
<div style="overflow-wrap: break-word;" lang="en-IL">
<div class="m_-7692156074670919738WordSection1">
<p class="MsoNormal"><span lang="en-IL">Hi Ori
<br>
<br>
Thank you for your answer it helped me<br>
<br>
But </span><span lang="EN-US">I can see the load balancing is not done to the same instance for both directions<br>
I would like to have ip + port pairs arrive to same instance<br>
<br>
Now ip1+port1 -> ip2+port2 arrive to instance x and ip2+port2 -> ip1+port1 arrive to another instance<br>
<br>
How can I solve this?<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="en-IL"><u></u> <u></u></span></p>
<div>
<div style="border-color:rgb(225,225,225) currentcolor currentcolor;border-style:solid none none;border-width:1pt medium medium;padding:3pt 0cm 0cm">
<p class="MsoNormal" style="margin-bottom:0cm;line-height:normal"><b><span lang="EN-US">From:</span></b><span lang="EN-US"> Ori Kam <<a href="mailto:orika@nvidia.com" target="_blank">orika@nvidia.com</a>>
<br>
<b>Sent:</b> Wednesday, February 14, 2024 6:07 PM<br>
<b>To:</b> Yaron Illouz <<a href="mailto:yaroni@radcom.com" target="_blank">yaroni@radcom.com</a>>; <a href="mailto:dev@dpdk.org" target="_blank">dev@dpdk.org</a>; '<a href="mailto:users@dpdk.org" target="_blank">users@dpdk.org</a>' <<a href="mailto:users@dpdk.org" target="_blank">users@dpdk.org</a>><br>
<b>Subject:</b> RE: rss calculation as the nic<u></u><u></u></span></p>
</div>
</div>
<p class="MsoNormal"><u></u> <u></u></p>
<table style="background:rgb(255,242,204);border-collapse:collapse" cellspacing="0" cellpadding="0" border="0">
<tbody>
<tr>
<td style="width:432.35pt;background:rgb(251,228,213);padding:0cm 5.4pt" width="576" valign="top">
<p class="MsoNormal" style="margin-bottom:0cm;line-height:normal"><a name="m_-7692156074670919738__Hlk88152779"><b><span style="font-size:9pt;color:black">EXTERNAL EMAIL:</span></b></a><span style="font-size:9pt;color:black"> Do not click links or attachments unless you recognize
the sender and know the content is safe</span><u></u><u></u></p>
</td>
</tr>
</tbody>
</table>
<p class="MsoNormal"><span style="font-size:9pt;line-height:106%;color:red" lang="EN-US"> </span><span lang="EN-US"><u></u><u></u></span></p>
<div>
<p class="MsoNormal"><span lang="EN-US">Hi Yaron,<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US"><u></u> <u></u></span></p>
<p class="MsoNormal"><span lang="EN-US">I can see some possible issues with your code, please see below.<br></span></p></div></div></div></div></blockquote><div>If I understand your case correctly, you need to use a symmetric RSS key.<br></div><div>We use this one in production - <a href="https://www.ndsl.kaist.edu/~kyoungsoo/papers/TR-symRSS.pdf">https://www.ndsl.kaist.edu/~kyoungsoo/papers/TR-symRSS.pdf</a><br></div><div>And you'll need to set it accordingly when configuring the device:<br> port_conf.rx_adv_conf.rss_conf.rss_key = rss_key; <br> port_conf.rx_adv_conf.rss_conf.rss_key_len = rss_key_size;<br><br></div><div>HTH.<br></div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div class="msg-7692156074670919738"><div style="overflow-wrap: break-word;" lang="en-IL"><div class="m_-7692156074670919738WordSection1"><div><p class="MsoNormal"><span lang="EN-US"></span></p>
<p class="MsoNormal"><span lang="EN-US"><u></u> <u></u></span></p>
<div style="border-color:currentcolor currentcolor currentcolor blue;border-style:none none none solid;border-width:medium medium medium 1.5pt;padding:0cm 0cm 0cm 4pt">
<div>
<div style="border-color:rgb(225,225,225) currentcolor currentcolor;border-style:solid none none;border-width:1pt medium medium;padding:3pt 0cm 0cm">
<p class="MsoNormal"><b><span lang="EN-US">From:</span></b><span lang="EN-US"> Yaron Illouz <<a href="mailto:yaroni@radcom.com" target="_blank">yaroni@radcom.com</a>>
<br>
<b>Sent:</b> Saturday, February 3, 2024 7:03 PM<br>
<b>To:</b> <a href="mailto:dev@dpdk.org" target="_blank">dev@dpdk.org</a>; '<a href="mailto:users@dpdk.org" target="_blank">users@dpdk.org</a>' <<a href="mailto:users@dpdk.org" target="_blank">users@dpdk.org</a>><br>
<b>Subject:</b> rss calculation as the nic<u></u><u></u></span></p>
</div>
</div>
<p class="MsoNormal"><span lang="EN-US"><u></u> <u></u></span></p>
<p class="MsoNormal" style="vertical-align:baseline"><span style="font-size:10pt;line-height:106%;font-family:inherit;border:1pt none windowtext;padding:0cm" lang="EN-US">[Snip]<u></u><u></u></span></p>
<p class="MsoNormal" style="vertical-align:baseline"><span style="border:1pt none windowtext;padding:0cm" lang="EN-US"><u></u> <u></u></span></p>
<p class="MsoNormal" style="vertical-align:baseline"><span style="font-size:10pt;line-height:106%;font-family:inherit;color:rgb(12,13,14);border:1pt none windowtext;padding:0cm" lang="en-IL">static inline uint32_t<u></u><u></u></span></p>
<p class="MsoNormal" style="vertical-align:baseline"><span style="font-size:10pt;line-height:106%;font-family:inherit;color:rgb(12,13,14);border:1pt none windowtext;padding:0cm" lang="en-IL">do_softrss(struct rte_mbuf *m)<u></u><u></u></span></p>
<p class="MsoNormal" style="vertical-align:baseline"><span style="font-size:10pt;line-height:106%;font-family:inherit;color:rgb(12,13,14);border:1pt none windowtext;padding:0cm" lang="en-IL">{<u></u><u></u></span></p>
<p class="MsoNormal" style="vertical-align:baseline"><span style="font-size:10pt;line-height:106%;font-family:inherit;color:rgb(12,13,14);border:1pt none windowtext;padding:0cm" lang="en-IL"> uint32_t input_len;<u></u><u></u></span></p>
<p class="MsoNormal" style="vertical-align:baseline"><span style="font-size:10pt;line-height:106%;font-family:inherit;color:rgb(12,13,14);border:1pt none windowtext;padding:0cm" lang="en-IL"> struct rte_ipv4_tuple ipv4_tuple;<u></u><u></u></span></p>
<p class="MsoNormal" style="vertical-align:baseline"><span style="font-size:10pt;line-height:106%;font-family:inherit;color:rgb(12,13,14);border:1pt none windowtext;padding:0cm" lang="en-IL">
<u></u><u></u></span></p>
<p class="MsoNormal" style="vertical-align:baseline"><span style="font-size:10pt;line-height:106%;font-family:inherit;color:rgb(12,13,14);border:1pt none windowtext;padding:0cm" lang="en-IL"> char * pRawPacket = static_cast<char*>(rte_pktmbuf_mtod(pi_mbuf,
void* ));<u></u><u></u></span></p>
<p class="MsoNormal" style="vertical-align:baseline"><span style="font-size:10pt;line-height:106%;font-family:inherit;color:rgb(12,13,14);border:1pt none windowtext;padding:0cm" lang="en-IL"> IpHeader * pIpHeader = (IpHeader *)(pRawPacket
+ offsetOfIp);<u></u><u></u></span></p>
<p class="MsoNormal" style="vertical-align:baseline"><span style="font-size:10pt;line-height:106%;font-family:inherit;color:rgb(12,13,14);border:1pt none windowtext;padding:0cm" lang="en-IL"> if(pIpHeader->GetVersion()==4)<u></u><u></u></span></p>
<p class="MsoNormal" style="vertical-align:baseline"><span style="font-size:10pt;line-height:106%;font-family:inherit;color:rgb(12,13,14);border:1pt none windowtext;padding:0cm" lang="en-IL"> {<u></u><u></u></span></p>
<p class="MsoNormal" style="vertical-align:baseline"><span style="font-size:10pt;line-height:106%;font-family:inherit;color:rgb(12,13,14);border:1pt none windowtext;padding:0cm" lang="en-IL"> ipv4_tuple.src_addr = rte_be_to_cpu_32(pIpHeader->dwSrcAddressBigEndian);<u></u><u></u></span></p>
<p class="MsoNormal" style="vertical-align:baseline"><span style="font-size:10pt;line-height:106%;font-family:inherit;color:rgb(12,13,14);border:1pt none windowtext;padding:0cm" lang="en-IL"> ipv4_tuple.dst_addr = rte_be_to_cpu_32(pIpHeader->dwDstAddressBigEndian);<u></u><u></u></span></p>
<p class="MsoNormal" style="vertical-align:baseline"><span style="color:rgb(0,32,96);border:1pt none windowtext;padding:0cm" lang="EN-US">[Ori] here you are converting BE to CPU
<u></u><u></u></span></p>
<p class="MsoNormal" style="vertical-align:baseline"><span style="font-size:10pt;line-height:106%;font-family:inherit;color:rgb(12,13,14);border:1pt none windowtext;padding:0cm" lang="en-IL"> ipv4_tuple.sport = *(uint16_t*)(pRawPacket
+ transportLayerOffset);<u></u><u></u></span></p>
<p class="MsoNormal" style="vertical-align:baseline"><span style="font-size:10pt;line-height:106%;font-family:inherit;color:rgb(12,13,14);border:1pt none windowtext;padding:0cm" lang="en-IL"> ipv4_tuple.dport = *(uint16_t*)(pRawPacket
+ transportLayerOffset+2);<u></u><u></u></span></p>
<p class="MsoNormal" style="vertical-align:baseline"><span style="color:rgb(0,32,96);border:1pt none windowtext;padding:0cm" lang="EN-US">[Ori] here you keep the values as BE<u></u><u></u></span></p>
<p class="MsoNormal" style="vertical-align:baseline"><span style="font-size:10pt;line-height:106%;font-family:inherit;color:rgb(12,13,14);border:1pt none windowtext;padding:0cm" lang="en-IL"> input_len = RTE_THASH_V4_L3_LEN;<u></u><u></u></span></p>
<p class="MsoNormal" style="vertical-align:baseline"><span style="font-size:10pt;line-height:106%;font-family:inherit;color:rgb(12,13,14);border:1pt none windowtext;padding:0cm" lang="en-IL"> return rte_softrss_be((uint32_t *)&ipv4_tuple,
input_len, rss_key_be);<u></u><u></u></span></p>
<p class="MsoNormal" style="vertical-align:baseline"><span style="font-size:10pt;line-height:106%;font-family:inherit;color:rgb(0,32,96);border:1pt none windowtext;padding:0cm" lang="EN-US">[Ori] the above function expects to get everything
in BE and you should also call rte_convert_rss_key before the use of the above function.<u></u><u></u></span></p>
<p class="MsoNormal" style="vertical-align:baseline"><span style="font-size:10pt;line-height:106%;font-family:inherit;color:rgb(12,13,14);border:1pt none windowtext;padding:0cm" lang="en-IL"> }<u></u><u></u></span></p>
<p class="MsoNormal" style="vertical-align:baseline"><span style="font-size:10pt;line-height:106%;font-family:inherit;color:rgb(12,13,14);border:1pt none windowtext;padding:0cm" lang="en-IL"> return 0;<u></u><u></u></span></p>
<p class="MsoNormal" style="vertical-align:baseline"><span style="font-size:10pt;line-height:106%;font-family:inherit;color:rgb(12,13,14);border:1pt none windowtext;padding:0cm" lang="en-IL">}<u></u><u></u></span></p>
<p class="MsoNormal" style="vertical-align:baseline"><span style="font-size:10pt;line-height:106%;font-family:inherit;color:rgb(12,13,14);border:1pt none windowtext;padding:0cm" lang="en-IL">new_rss = do_softrss(mbuf_pointer);<u></u><u></u></span></p>
<p class="MsoNormal" style="vertical-align:baseline"><span style="font-size:10pt;line-height:106%;font-family:inherit;color:rgb(12,13,14);border:1pt none windowtext;padding:0cm" lang="en-IL">std::cout<< std::hex << mbuf_pointer->hash.rss <<
" -> " << new_rss << std::dec << std::endl;<u></u><u></u></span></p>
<p class="MsoNormal" style="vertical-align:baseline"><span style="font-size:10pt;line-height:106%;font-family:inherit;color:rgb(12,13,14);border:1pt none windowtext;padding:0cm" lang="en-IL"><u></u> <u></u></span></p>
<p class="MsoNormal" style="margin-bottom:13.2pt;background:white;vertical-align:baseline">
<span style="font-size:11.5pt;line-height:106%;font-family:-apple-system;color:rgb(12,13,14)" lang="en-IL">And i get a different value than the mbuf_pointer->hash.rss<u></u><u></u></span></p>
<p class="MsoNormal" style="vertical-align:baseline"><span style="font-size:10pt;line-height:106%;font-family:inherit;color:rgb(12,13,14);border:1pt none windowtext;padding:0cm" lang="en-IL">5ed28a5c -> 33eb33eb<u></u><u></u></span></p>
<p class="MsoNormal" style="vertical-align:baseline"><span style="font-size:10pt;line-height:106%;font-family:inherit;color:rgb(12,13,14);border:1pt none windowtext;padding:0cm" lang="en-IL">974c1896 -> 24e224e2<u></u><u></u></span></p>
<p class="MsoNormal" style="vertical-align:baseline"><span style="font-size:10pt;line-height:106%;font-family:inherit;color:rgb(12,13,14);border:1pt none windowtext;padding:0cm" lang="en-IL">1edf1638 -> 21752175<u></u><u></u></span></p>
<p class="MsoNormal" style="vertical-align:baseline"><span style="font-size:10pt;line-height:106%;font-family:inherit;color:rgb(12,13,14);border:1pt none windowtext;padding:0cm" lang="en-IL">8a54c19 -> 80638063<u></u><u></u></span></p>
<p class="MsoNormal" style="vertical-align:baseline"><span style="font-size:10pt;line-height:106%;font-family:inherit;color:rgb(12,13,14);border:1pt none windowtext;padding:0cm" lang="en-IL">459a6f76 -> 1b351b35<u></u><u></u></span></p>
<p class="MsoNormal" style="vertical-align:baseline"><span style="font-size:10pt;line-height:106%;font-family:inherit;color:rgb(12,13,14);border:1pt none windowtext;padding:0cm" lang="en-IL">1cdf1d1c -> e53be53b<u></u><u></u></span></p>
<p class="MsoNormal" style="vertical-align:baseline"><span style="font-size:10pt;line-height:106%;font-family:inherit;color:rgb(12,13,14);border:1pt none windowtext;padding:0cm" lang="en-IL"><u></u> <u></u></span></p>
<p class="MsoNormal" style="vertical-align:baseline"><span style="font-size:10pt;line-height:106%;font-family:inherit;color:rgb(12,13,14);border:1pt none windowtext;padding:0cm" lang="en-IL"><u></u> <u></u></span></p>
<p class="MsoNormal" style="margin-bottom:13.2pt;background:white;vertical-align:baseline">
<span style="font-size:11.5pt;line-height:106%;font-family:-apple-system;color:rgb(12,13,14)" lang="en-IL">**** I understand it is possible to do it, but i don't get the same value ***<u></u><u></u></span></p>
<p class="MsoNormal" style="vertical-align:baseline"><span style="font-size:10pt;line-height:106%;font-family:inherit;color:rgb(12,13,14);border:1pt none windowtext;padding:0cm" lang="en-IL">ethtool -i ens5f0<u></u><u></u></span></p>
<p class="MsoNormal" style="vertical-align:baseline"><span style="font-size:10pt;line-height:106%;font-family:inherit;color:rgb(12,13,14);border:1pt none windowtext;padding:0cm" lang="en-IL">driver: mlx5_core<u></u><u></u></span></p>
<p class="MsoNormal" style="vertical-align:baseline"><span style="font-size:10pt;line-height:106%;font-family:inherit;color:rgb(12,13,14);border:1pt none windowtext;padding:0cm" lang="en-IL">version: 5.8-3.0.7<u></u><u></u></span></p>
<p class="MsoNormal" style="vertical-align:baseline"><span style="font-size:10pt;line-height:106%;font-family:inherit;color:rgb(12,13,14);border:1pt none windowtext;padding:0cm" lang="en-IL">firmware-version: 22.32.2004 (MT_0000000437)<u></u><u></u></span></p>
<p class="MsoNormal" style="vertical-align:baseline"><span style="font-size:10pt;line-height:106%;font-family:inherit;color:rgb(12,13,14);border:1pt none windowtext;padding:0cm" lang="en-IL">expansion-rom-version:<u></u><u></u></span></p>
<p class="MsoNormal" style="vertical-align:baseline"><span style="font-size:10pt;line-height:106%;font-family:inherit;color:rgb(12,13,14);border:1pt none windowtext;padding:0cm" lang="en-IL">bus-info: 0000:83:00.0<u></u><u></u></span></p>
<p class="MsoNormal" style="vertical-align:baseline"><span style="font-size:10pt;line-height:106%;font-family:inherit;color:rgb(12,13,14);border:1pt none windowtext;padding:0cm" lang="en-IL">supports-statistics: yes<u></u><u></u></span></p>
<p class="MsoNormal" style="vertical-align:baseline"><span style="font-size:10pt;line-height:106%;font-family:inherit;color:rgb(12,13,14);border:1pt none windowtext;padding:0cm" lang="en-IL">supports-test: yes<u></u><u></u></span></p>
<p class="MsoNormal" style="vertical-align:baseline"><span style="font-size:10pt;line-height:106%;font-family:inherit;color:rgb(12,13,14);border:1pt none windowtext;padding:0cm" lang="en-IL">supports-eeprom-access: no<u></u><u></u></span></p>
<p class="MsoNormal" style="vertical-align:baseline"><span style="font-size:10pt;line-height:106%;font-family:inherit;color:rgb(12,13,14);border:1pt none windowtext;padding:0cm" lang="en-IL">supports-register-dump: no<u></u><u></u></span></p>
<p class="MsoNormal" style="vertical-align:baseline"><span style="font-size:10pt;line-height:106%;font-family:inherit;color:rgb(12,13,14);border:1pt none windowtext;padding:0cm" lang="en-IL">supports-priv-flags: yes</span><span style="font-size:10pt;line-height:106%;color:rgb(12,13,14)" lang="en-IL"><u></u><u></u></span></p>
<p class="MsoNormal"><span lang="en-IL"><u></u> <u></u></span></p>
</div>
</div>
</div>
</div>
</div></blockquote></div></div>