<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:-apple-system;}
@font-face
        {font-family:"var\(--ff-mono\)";}
@font-face
        {font-family:inherit;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin-top:0cm;
        margin-right:0cm;
        margin-bottom:8.0pt;
        margin-left:0cm;
        line-height:106%;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;
        mso-ligatures:standardcontextual;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:#0563C1;
        text-decoration:underline;}
span.EmailStyle21
        {mso-style-type:personal-reply;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;
        mso-ligatures:none;}
@page WordSection1
        {size:595.3pt 841.9pt;
        margin:72.0pt 72.0pt 72.0pt 72.0pt;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="en-IL" link="#0563C1" vlink="#954F72" style="word-wrap:break-word">
<div class="WordSection1">
<p class="MsoNormal"><span lang="en-IL" style="mso-fareast-language:EN-US">Hi Ori
<br>
<br>
Thank you for your answer it helped me<br>
<br>
But </span><span lang="EN-US" style="mso-fareast-language: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?<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="en-IL" style="mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<div>
<div style="border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0cm 0cm 0cm">
<p class="MsoNormal" style="margin-bottom:0cm;line-height:normal"><b><span lang="EN-US" style="mso-ligatures:none">From:</span></b><span lang="EN-US" style="mso-ligatures:none"> Ori Kam <orika@nvidia.com>
<br>
<b>Sent:</b> Wednesday, February 14, 2024 6:07 PM<br>
<b>To:</b> Yaron Illouz <yaroni@radcom.com>; dev@dpdk.org; 'users@dpdk.org' <users@dpdk.org><br>
<b>Subject:</b> RE: rss calculation as the nic<o:p></o:p></span></p>
</div>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<table class="MsoNormalTable" border="0" cellspacing="0" cellpadding="0" style="background:#FFF2CC;border-collapse:collapse">
<tbody>
<tr>
<td width="576" valign="top" style="width:432.35pt;background:#FBE4D5;padding:0cm 5.4pt 0cm 5.4pt">
<p class="MsoNormal" style="margin-bottom:0cm;line-height:normal"><a name="_Hlk88152779"><b><span style="font-size:9.0pt;color:black">EXTERNAL EMAIL:</span></b></a><span style="font-size:9.0pt;color:black"> Do not click links or attachments unless you recognize
 the sender and know the content is safe</span><o:p></o:p></p>
</td>
</tr>
</tbody>
</table>
<p class="MsoNormal"><span lang="EN-US" style="font-size:9.0pt;line-height:106%;color:red"> </span><span lang="EN-US"><o:p></o:p></span></p>
<div>
<p class="MsoNormal"><span lang="EN-US">Hi Yaron,<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">I can see some possible issues with your code, please see below.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<div style="border:none;border-left:solid blue 1.5pt;padding:0cm 0cm 0cm 4.0pt">
<div>
<div style="border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0cm 0cm 0cm">
<p class="MsoNormal"><b><span lang="EN-US" style="mso-ligatures:none">From:</span></b><span lang="EN-US" style="mso-ligatures:none"> Yaron Illouz <<a href="mailto:yaroni@radcom.com">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">dev@dpdk.org</a>; 'users@dpdk.org' <<a href="mailto:users@dpdk.org">users@dpdk.org</a>><br>
<b>Subject:</b> rss calculation as the nic<o:p></o:p></span></p>
</div>
</div>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal" style="vertical-align:baseline"><span lang="EN-US" style="font-size:10.0pt;line-height:106%;font-family:inherit;border:none windowtext 1.0pt;padding:0cm;mso-ligatures:none">[Snip]<o:p></o:p></span></p>
<p class="MsoNormal" style="vertical-align:baseline"><span lang="EN-US" style="border:none windowtext 1.0pt;padding:0cm;mso-ligatures:none"><o:p> </o:p></span></p>
<p class="MsoNormal" style="vertical-align:baseline"><span lang="en-IL" style="font-size:10.0pt;line-height:106%;font-family:inherit;color:#0C0D0E;border:none windowtext 1.0pt;padding:0cm;mso-ligatures:none">static inline uint32_t<o:p></o:p></span></p>
<p class="MsoNormal" style="vertical-align:baseline"><span lang="en-IL" style="font-size:10.0pt;line-height:106%;font-family:inherit;color:#0C0D0E;border:none windowtext 1.0pt;padding:0cm;mso-ligatures:none">do_softrss(struct rte_mbuf *m)<o:p></o:p></span></p>
<p class="MsoNormal" style="vertical-align:baseline"><span lang="en-IL" style="font-size:10.0pt;line-height:106%;font-family:inherit;color:#0C0D0E;border:none windowtext 1.0pt;padding:0cm;mso-ligatures:none">{<o:p></o:p></span></p>
<p class="MsoNormal" style="vertical-align:baseline"><span lang="en-IL" style="font-size:10.0pt;line-height:106%;font-family:inherit;color:#0C0D0E;border:none windowtext 1.0pt;padding:0cm;mso-ligatures:none">    uint32_t input_len;<o:p></o:p></span></p>
<p class="MsoNormal" style="vertical-align:baseline"><span lang="en-IL" style="font-size:10.0pt;line-height:106%;font-family:inherit;color:#0C0D0E;border:none windowtext 1.0pt;padding:0cm;mso-ligatures:none">    struct rte_ipv4_tuple ipv4_tuple;<o:p></o:p></span></p>
<p class="MsoNormal" style="vertical-align:baseline"><span lang="en-IL" style="font-size:10.0pt;line-height:106%;font-family:inherit;color:#0C0D0E;border:none windowtext 1.0pt;padding:0cm;mso-ligatures:none">   
<o:p></o:p></span></p>
<p class="MsoNormal" style="vertical-align:baseline"><span lang="en-IL" style="font-size:10.0pt;line-height:106%;font-family:inherit;color:#0C0D0E;border:none windowtext 1.0pt;padding:0cm;mso-ligatures:none">    char * pRawPacket = static_cast<char*>(rte_pktmbuf_mtod(pi_mbuf,
 void* ));<o:p></o:p></span></p>
<p class="MsoNormal" style="vertical-align:baseline"><span lang="en-IL" style="font-size:10.0pt;line-height:106%;font-family:inherit;color:#0C0D0E;border:none windowtext 1.0pt;padding:0cm;mso-ligatures:none">    IpHeader * pIpHeader = (IpHeader *)(pRawPacket
 + offsetOfIp);<o:p></o:p></span></p>
<p class="MsoNormal" style="vertical-align:baseline"><span lang="en-IL" style="font-size:10.0pt;line-height:106%;font-family:inherit;color:#0C0D0E;border:none windowtext 1.0pt;padding:0cm;mso-ligatures:none">    if(pIpHeader->GetVersion()==4)<o:p></o:p></span></p>
<p class="MsoNormal" style="vertical-align:baseline"><span lang="en-IL" style="font-size:10.0pt;line-height:106%;font-family:inherit;color:#0C0D0E;border:none windowtext 1.0pt;padding:0cm;mso-ligatures:none">    {<o:p></o:p></span></p>
<p class="MsoNormal" style="vertical-align:baseline"><span lang="en-IL" style="font-size:10.0pt;line-height:106%;font-family:inherit;color:#0C0D0E;border:none windowtext 1.0pt;padding:0cm;mso-ligatures:none">        ipv4_tuple.src_addr = rte_be_to_cpu_32(pIpHeader->dwSrcAddressBigEndian);<o:p></o:p></span></p>
<p class="MsoNormal" style="vertical-align:baseline"><span lang="en-IL" style="font-size:10.0pt;line-height:106%;font-family:inherit;color:#0C0D0E;border:none windowtext 1.0pt;padding:0cm;mso-ligatures:none">        ipv4_tuple.dst_addr = rte_be_to_cpu_32(pIpHeader->dwDstAddressBigEndian);<o:p></o:p></span></p>
<p class="MsoNormal" style="vertical-align:baseline"><span lang="EN-US" style="color:#002060;border:none windowtext 1.0pt;padding:0cm;mso-ligatures:none">[Ori] here you are converting BE to CPU
<o:p></o:p></span></p>
<p class="MsoNormal" style="vertical-align:baseline"><span lang="en-IL" style="font-size:10.0pt;line-height:106%;font-family:inherit;color:#0C0D0E;border:none windowtext 1.0pt;padding:0cm;mso-ligatures:none">        ipv4_tuple.sport = *(uint16_t*)(pRawPacket
 + transportLayerOffset);<o:p></o:p></span></p>
<p class="MsoNormal" style="vertical-align:baseline"><span lang="en-IL" style="font-size:10.0pt;line-height:106%;font-family:inherit;color:#0C0D0E;border:none windowtext 1.0pt;padding:0cm;mso-ligatures:none">        ipv4_tuple.dport = *(uint16_t*)(pRawPacket
 + transportLayerOffset+2);<o:p></o:p></span></p>
<p class="MsoNormal" style="vertical-align:baseline"><span lang="EN-US" style="color:#002060;border:none windowtext 1.0pt;padding:0cm;mso-ligatures:none">[Ori] here you keep the values as BE<o:p></o:p></span></p>
<p class="MsoNormal" style="vertical-align:baseline"><span lang="en-IL" style="font-size:10.0pt;line-height:106%;font-family:inherit;color:#0C0D0E;border:none windowtext 1.0pt;padding:0cm;mso-ligatures:none">        input_len = RTE_THASH_V4_L3_LEN;<o:p></o:p></span></p>
<p class="MsoNormal" style="vertical-align:baseline"><span lang="en-IL" style="font-size:10.0pt;line-height:106%;font-family:inherit;color:#0C0D0E;border:none windowtext 1.0pt;padding:0cm;mso-ligatures:none">        return rte_softrss_be((uint32_t *)&ipv4_tuple,
 input_len, rss_key_be);<o:p></o:p></span></p>
<p class="MsoNormal" style="vertical-align:baseline"><span lang="EN-US" style="font-size:10.0pt;line-height:106%;font-family:inherit;color:#002060;border:none windowtext 1.0pt;padding:0cm;mso-ligatures:none">[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.<o:p></o:p></span></p>
<p class="MsoNormal" style="vertical-align:baseline"><span lang="en-IL" style="font-size:10.0pt;line-height:106%;font-family:inherit;color:#0C0D0E;border:none windowtext 1.0pt;padding:0cm;mso-ligatures:none">    }<o:p></o:p></span></p>
<p class="MsoNormal" style="vertical-align:baseline"><span lang="en-IL" style="font-size:10.0pt;line-height:106%;font-family:inherit;color:#0C0D0E;border:none windowtext 1.0pt;padding:0cm;mso-ligatures:none">    return 0;<o:p></o:p></span></p>
<p class="MsoNormal" style="vertical-align:baseline"><span lang="en-IL" style="font-size:10.0pt;line-height:106%;font-family:inherit;color:#0C0D0E;border:none windowtext 1.0pt;padding:0cm;mso-ligatures:none">}<o:p></o:p></span></p>
<p class="MsoNormal" style="vertical-align:baseline"><span lang="en-IL" style="font-size:10.0pt;line-height:106%;font-family:inherit;color:#0C0D0E;border:none windowtext 1.0pt;padding:0cm;mso-ligatures:none">new_rss = do_softrss(mbuf_pointer);<o:p></o:p></span></p>
<p class="MsoNormal" style="vertical-align:baseline"><span lang="en-IL" style="font-size:10.0pt;line-height:106%;font-family:inherit;color:#0C0D0E;border:none windowtext 1.0pt;padding:0cm;mso-ligatures:none">std::cout<< std::hex << mbuf_pointer->hash.rss <<
 " -> " << new_rss << std::dec << std::endl;<o:p></o:p></span></p>
<p class="MsoNormal" style="vertical-align:baseline"><span lang="en-IL" style="font-size:10.0pt;line-height:106%;font-family:inherit;color:#0C0D0E;border:none windowtext 1.0pt;padding:0cm;mso-ligatures:none"><o:p> </o:p></span></p>
<p class="MsoNormal" style="margin-bottom:13.2pt;background:white;vertical-align:baseline">
<span lang="en-IL" style="font-size:11.5pt;line-height:106%;font-family:-apple-system;color:#0C0D0E;mso-ligatures:none">And i get a different value than the mbuf_pointer->hash.rss<o:p></o:p></span></p>
<p class="MsoNormal" style="vertical-align:baseline"><span lang="en-IL" style="font-size:10.0pt;line-height:106%;font-family:inherit;color:#0C0D0E;border:none windowtext 1.0pt;padding:0cm;mso-ligatures:none">5ed28a5c -> 33eb33eb<o:p></o:p></span></p>
<p class="MsoNormal" style="vertical-align:baseline"><span lang="en-IL" style="font-size:10.0pt;line-height:106%;font-family:inherit;color:#0C0D0E;border:none windowtext 1.0pt;padding:0cm;mso-ligatures:none">974c1896 -> 24e224e2<o:p></o:p></span></p>
<p class="MsoNormal" style="vertical-align:baseline"><span lang="en-IL" style="font-size:10.0pt;line-height:106%;font-family:inherit;color:#0C0D0E;border:none windowtext 1.0pt;padding:0cm;mso-ligatures:none">1edf1638 -> 21752175<o:p></o:p></span></p>
<p class="MsoNormal" style="vertical-align:baseline"><span lang="en-IL" style="font-size:10.0pt;line-height:106%;font-family:inherit;color:#0C0D0E;border:none windowtext 1.0pt;padding:0cm;mso-ligatures:none">8a54c19 -> 80638063<o:p></o:p></span></p>
<p class="MsoNormal" style="vertical-align:baseline"><span lang="en-IL" style="font-size:10.0pt;line-height:106%;font-family:inherit;color:#0C0D0E;border:none windowtext 1.0pt;padding:0cm;mso-ligatures:none">459a6f76 -> 1b351b35<o:p></o:p></span></p>
<p class="MsoNormal" style="vertical-align:baseline"><span lang="en-IL" style="font-size:10.0pt;line-height:106%;font-family:inherit;color:#0C0D0E;border:none windowtext 1.0pt;padding:0cm;mso-ligatures:none">1cdf1d1c -> e53be53b<o:p></o:p></span></p>
<p class="MsoNormal" style="vertical-align:baseline"><span lang="en-IL" style="font-size:10.0pt;line-height:106%;font-family:inherit;color:#0C0D0E;border:none windowtext 1.0pt;padding:0cm;mso-ligatures:none"><o:p> </o:p></span></p>
<p class="MsoNormal" style="vertical-align:baseline"><span lang="en-IL" style="font-size:10.0pt;line-height:106%;font-family:inherit;color:#0C0D0E;border:none windowtext 1.0pt;padding:0cm;mso-ligatures:none"><o:p> </o:p></span></p>
<p class="MsoNormal" style="margin-bottom:13.2pt;background:white;vertical-align:baseline">
<span lang="en-IL" style="font-size:11.5pt;line-height:106%;font-family:-apple-system;color:#0C0D0E;mso-ligatures:none">****  I understand it is possible to do it, but i don't get the same value  ***<o:p></o:p></span></p>
<p class="MsoNormal" style="vertical-align:baseline"><span lang="en-IL" style="font-size:10.0pt;line-height:106%;font-family:inherit;color:#0C0D0E;border:none windowtext 1.0pt;padding:0cm;mso-ligatures:none">ethtool -i ens5f0<o:p></o:p></span></p>
<p class="MsoNormal" style="vertical-align:baseline"><span lang="en-IL" style="font-size:10.0pt;line-height:106%;font-family:inherit;color:#0C0D0E;border:none windowtext 1.0pt;padding:0cm;mso-ligatures:none">driver: mlx5_core<o:p></o:p></span></p>
<p class="MsoNormal" style="vertical-align:baseline"><span lang="en-IL" style="font-size:10.0pt;line-height:106%;font-family:inherit;color:#0C0D0E;border:none windowtext 1.0pt;padding:0cm;mso-ligatures:none">version: 5.8-3.0.7<o:p></o:p></span></p>
<p class="MsoNormal" style="vertical-align:baseline"><span lang="en-IL" style="font-size:10.0pt;line-height:106%;font-family:inherit;color:#0C0D0E;border:none windowtext 1.0pt;padding:0cm;mso-ligatures:none">firmware-version: 22.32.2004 (MT_0000000437)<o:p></o:p></span></p>
<p class="MsoNormal" style="vertical-align:baseline"><span lang="en-IL" style="font-size:10.0pt;line-height:106%;font-family:inherit;color:#0C0D0E;border:none windowtext 1.0pt;padding:0cm;mso-ligatures:none">expansion-rom-version:<o:p></o:p></span></p>
<p class="MsoNormal" style="vertical-align:baseline"><span lang="en-IL" style="font-size:10.0pt;line-height:106%;font-family:inherit;color:#0C0D0E;border:none windowtext 1.0pt;padding:0cm;mso-ligatures:none">bus-info: 0000:83:00.0<o:p></o:p></span></p>
<p class="MsoNormal" style="vertical-align:baseline"><span lang="en-IL" style="font-size:10.0pt;line-height:106%;font-family:inherit;color:#0C0D0E;border:none windowtext 1.0pt;padding:0cm;mso-ligatures:none">supports-statistics: yes<o:p></o:p></span></p>
<p class="MsoNormal" style="vertical-align:baseline"><span lang="en-IL" style="font-size:10.0pt;line-height:106%;font-family:inherit;color:#0C0D0E;border:none windowtext 1.0pt;padding:0cm;mso-ligatures:none">supports-test: yes<o:p></o:p></span></p>
<p class="MsoNormal" style="vertical-align:baseline"><span lang="en-IL" style="font-size:10.0pt;line-height:106%;font-family:inherit;color:#0C0D0E;border:none windowtext 1.0pt;padding:0cm;mso-ligatures:none">supports-eeprom-access: no<o:p></o:p></span></p>
<p class="MsoNormal" style="vertical-align:baseline"><span lang="en-IL" style="font-size:10.0pt;line-height:106%;font-family:inherit;color:#0C0D0E;border:none windowtext 1.0pt;padding:0cm;mso-ligatures:none">supports-register-dump: no<o:p></o:p></span></p>
<p class="MsoNormal" style="vertical-align:baseline"><span lang="en-IL" style="font-size:10.0pt;line-height:106%;font-family:inherit;color:#0C0D0E;border:none windowtext 1.0pt;padding:0cm;mso-ligatures:none">supports-priv-flags: yes</span><span lang="en-IL" style="font-size:10.0pt;line-height:106%;font-family:"var\(--ff-mono\)";color:#0C0D0E;mso-ligatures:none"><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="en-IL"><o:p> </o:p></span></p>
</div>
</div>
</div>
</body>
</html>