<html 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=Windows-1252">
<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:Aptos;
        panose-1:2 11 0 4 2 2 2 2 2 4;}
@font-face
        {font-family:Consolas;
        panose-1:2 11 6 9 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        font-size:12.0pt;
        font-family:"Aptos",sans-serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
pre
        {mso-style-priority:99;
        mso-style-link:"HTML Preformatted Char";
        margin:0cm;
        margin-bottom:.0001pt;
        font-size:10.0pt;
        font-family:"Courier New";}
span.HTMLPreformattedChar
        {mso-style-name:"HTML Preformatted Char";
        mso-style-priority:99;
        mso-style-link:"HTML Preformatted";
        font-family:Consolas;
        mso-ligatures:none;}
span.q
        {mso-style-name:q;}
span.EmailStyle23
        {mso-style-type:personal-reply;
        font-family:"Aptos",sans-serif;
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;
        mso-ligatures:none;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:72.0pt 72.0pt 72.0pt 72.0pt;}
div.WordSection1
        {page:WordSection1;}
--></style>
</head>
<body lang="en-IL" link="blue" vlink="purple" style="word-wrap:break-word;line-break:after-white-space">
<div class="WordSection1">
<p class="MsoNormal"><span style="font-size:11.0pt">OK,  I found my issue.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">The input to the hash function should include all  4 parameters also in case of symmetic:
<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">(SRC_IP^DST_IP ,  SRC_IP^DST_IP, SRC_PORT^DST_PORT, SRC_PORT^DST_PORT)
<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">Shaul.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"><o:p> </o:p></span></p>
<div id="mail-editor-reference-message-container">
<div>
<div style="border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0cm 0cm 0cm">
<p class="MsoNormal" style="margin-bottom:12.0pt"><b><span style="color:black">From:
</span></b><span style="color:black">Shaul Hamoi (shamoi) <shamoi@cisco.com><br>
<b>Date: </b>Sunday, 31 March 2024 at 14:48<br>
<b>To: </b>sismis@cesnet.cz <sismis@cesnet.cz><br>
<b>Cc: </b>Balakrishnan.K1@tatacommunications.com <Balakrishnan.K1@tatacommunications.com>, stephen@networkplumber.org <stephen@networkplumber.org>, users@dpdk.org <users@dpdk.org><br>
<b>Subject: </b>Re: Symmetric RSS Hashing support in DPDK<o:p></o:p></span></p>
</div>
<div>
<div id="mail-editor-reference-message-container">
<div>
<div>
<pre><span style="color:black">Hi,<br><br><br>I am looking to determine the target queue for a flow in advance <br>I’m using dpdk-rss-flows.py to calculate the Toeplitz hash with I40E key.</span><o:p></o:p></pre>
<div>
<pre><span style="color:black">However, If I use the script as is, I don’t obtain the correct queue because the hash calculation isn’t symmetric.<br>I have attempted to XOR the source and destination IP addresses  and source and destination  port before performing the calculation  but I still don’t get the correct queue.<br><br><br>In case you use RTE_ETH_HASH_SYMMETRIC_TOEPLITZ , the I40E key doesn’t change - Right ?<br>How do I find that the NIC does for symmetric hash so I can simulate it ? </span><o:p></o:p></pre>
<pre><span style="color:black">(src="1.0.0.1", dst="2.0.0.2")/TCP(sport=8819, dport=80)</span><o:p></o:p></pre>
<pre><span style="color:black">Actual queue - 7 (32 RX queues)</span><o:p></o:p></pre>
<pre><span style="color:black"> </span><o:p></o:p></pre>
<pre><span style="color:black">Result with XOR:</span><o:p></o:p></pre>
<pre><span style="color:black">dpdk-rss-flows.py -s 8819 -d 80 -k i40e 32 1.0.0.1 2.0.0.2 </span><o:p></o:p></pre>
<pre><span style="color:black">SRC_IP     SPORT    DST_IP     DPORT    QUEUE</span><o:p></o:p></pre>
<pre><span style="color:black">1.0.0.1    8819     2.0.0.2    80       19</span><o:p></o:p></pre>
<pre><span style="color:black"> </span><o:p></o:p></pre>
<pre><span style="color:black">Result without (original script):</span><o:p></o:p></pre>
<pre><span style="color:black">dpdk-rss-flows.py -s 8819 -d 80 -k i40e 32 1.0.0.1 2.0.0.2 </span><o:p></o:p></pre>
<pre><span style="color:black">SRC_IP     SPORT    DST_IP     DPORT    QUEUE</span><o:p></o:p></pre>
<pre><span style="color:black">1.0.0.1    8819     2.0.0.2    80       20</span><o:p></o:p></pre>
<pre><span style="color:black"> </span><o:p></o:p></pre>
<pre><span style="color:black"> </span><o:p></o:p></pre>
<pre style="margin-bottom:12.0pt"><span style="color:black">Thanks in advance,<br>Shaul.</span><o:p></o:p></pre>
<pre><span style="color:black"> </span><o:p></o:p></pre>
<pre id="b"><span style="color:black">From: "Lukáš Šišmiš" <sismis@cesnet.cz></span><o:p></o:p></pre>
<pre><span style="color:black">To: Balakrishnan K <Balakrishnan.K1@tatacommunications.com>,</span><o:p></o:p></pre>
<pre><span style="color:black">        Stephen Hemminger <stephen@networkplumber.org></span><o:p></o:p></pre>
<pre><span style="color:black">Cc: "users@dpdk.org" <users@dpdk.org></span><o:p></o:p></pre>
<pre><span style="color:black">Subject: <a href="https://inbox.dpdk.org/users/90dc11cf-8c60-4b90-a3fc-43b2351b6c93@cesnet.cz/#r">Re: Symmetric RSS Hashing support in DPDK</a></span><o:p></o:p></pre>
<pre><span style="color:black">Date: Fri, 8 Mar 2024 08:29:32 +0100  <a href="https://inbox.dpdk.org/users/90dc11cf-8c60-4b90-a3fc-43b2351b6c93@cesnet.cz/#r">[thread overview]</a></span><o:p></o:p></pre>
<pre><span style="color:black">Message-ID: <90dc11cf-8c60-4b90-a3fc-43b2351b6c93@cesnet.cz> (<a href="https://inbox.dpdk.org/users/90dc11cf-8c60-4b90-a3fc-43b2351b6c93@cesnet.cz/raw">raw</a>)</span><o:p></o:p></pre>
<pre><span style="color:black">In-Reply-To: <<a href="https://inbox.dpdk.org/users/PSAPR04MB551616841D8221851FF79214D6272@PSAPR04MB5516.apcprd04.prod.outlook.com/">PSAPR04MB551616841D8221851FF79214D6272@PSAPR04MB5516.apcprd04.prod.outlook.com</a>></span><o:p></o:p></pre>
<pre><span style="color:black"> </span><o:p></o:p></pre>
<pre><span style="color:black">Hi all,</span><o:p></o:p></pre>
<pre><span style="color:black"> </span><o:p></o:p></pre>
<pre><span style="color:black">I've made minimalist example app on how to set symmetric RSS support for </span><o:p></o:p></pre>
<pre><span style="color:black">X710 that uses RTE_FLOW rules - check it out here:</span><o:p></o:p></pre>
<pre><span style="color:black"> </span><o:p></o:p></pre>
<pre><span style="color:black"><a href="https://github.com/lukashino/i40e-symmetric-rss-rte-flow">https://github.com/lukashino/i40e-symmetric-rss-rte-flow</a></span><o:p></o:p></pre>
<pre><span style="color:black"> </span><o:p></o:p></pre>
<pre><span style="color:black">Lukas</span><o:p></o:p></pre>
<pre><span style="color:black"> </span><o:p></o:p></pre>
<pre><span style="color:black">On 08. 03. 24 6:53, Balakrishnan K wrote:</span><o:p></o:p></pre>
<pre><span class="q"><span style="color:black">> Hi Stephen,</span></span><o:p></o:p></pre>
<pre><span class="q"><span style="color:black">>    Thanks for the response . I will below option and come back if any help required.</span></span><o:p></o:p></pre>
<pre><span class="q"><span style="color:black">> </span></span><o:p></o:p></pre>
<pre><span class="q"><span style="color:black">> Regards,</span></span><o:p></o:p></pre>
<pre><span class="q"><span style="color:black">> Bala</span></span><o:p></o:p></pre>
<pre><span class="q"><span style="color:black">> </span></span><o:p></o:p></pre>
<pre><span class="q"><span style="color:black">> -----Original Message-----</span></span><o:p></o:p></pre>
<pre><span class="q"><span style="color:black">> From: Stephen Hemminger <stephen@networkplumber.org></span></span><o:p></o:p></pre>
<pre><span class="q"><span style="color:black">> Sent: Wednesday, March 6, 2024 8:34 PM</span></span><o:p></o:p></pre>
<pre><span class="q"><span style="color:black">> To: Balakrishnan K <Balakrishnan.K1@tatacommunications.com></span></span><o:p></o:p></pre>
<pre><span class="q"><span style="color:black">> Cc: users@dpdk.org</span></span><o:p></o:p></pre>
<pre><span class="q"><span style="color:black">> Subject: Re: Symmetric RSS Hashing support in DPDK</span></span><o:p></o:p></pre>
<pre><span class="q"><span style="color:black">> </span></span><o:p></o:p></pre>
<pre><span class="q"><span style="color:black">> CAUTION: This email originated from outside of the organization. Do not click links or open attachments unless you recognize the sender and know the content is safe.</span></span><o:p></o:p></pre>
<pre><span class="q"><span style="color:black">> </span></span><o:p></o:p></pre>
<pre><span class="q"><span style="color:black">> On Wed, 6 Mar 2024 07:28:40 +0000</span></span><o:p></o:p></pre>
<pre><span class="q"><span style="color:black">> Balakrishnan K <Balakrishnan.K1@tatacommunications.com> wrote:</span></span><o:p></o:p></pre>
<pre><span class="q"><span style="color:black">> </span></span><o:p></o:p></pre>
<pre><span class="q"><span style="color:black">>> Hello,</span></span><o:p></o:p></pre>
<pre><span class="q"><span style="color:black">>>     Our application needs symmetric hashing to handle the reverse</span></span><o:p></o:p></pre>
<pre><span class="q"><span style="color:black">>> traffic on the same core, also to Improve performance by distributing the traffic across core.</span></span><o:p></o:p></pre>
<pre><span class="q"><span style="color:black">>> Tried using rss config as below .</span></span><o:p></o:p></pre>
<pre><span class="q"><span style="color:black">>> action_rss_tcp.types = ETH_RSS_NONFRAG_IPV4_TCP | ETH_RSS_L3_SRC_ONLY|</span></span><o:p></o:p></pre>
<pre><span class="q"><span style="color:black">>> ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_SRC_ONLY | ETH_RSS_L4_DST_ONLY; but could not get desired result.</span></span><o:p></o:p></pre>
<pre><span class="q"><span style="color:black">>> Is there any options or API available to enable symmetric RSS hashing .</span></span><o:p></o:p></pre>
<pre><span class="q"><span style="color:black">>> We are using dpdk 20.11 and intel NIC X710 10GbE .</span></span><o:p></o:p></pre>
<pre><span class="q"><span style="color:black">>> </span></span><o:p></o:p></pre>
<pre><span class="q"><span style="color:black">>> Regards,</span></span><o:p></o:p></pre>
<pre><span class="q"><span style="color:black">>> Bala</span></span><o:p></o:p></pre>
<pre><span class="q"><span style="color:black">> With XL710 there are two choices:</span></span><o:p></o:p></pre>
<pre><span class="q"><span style="color:black">>          1. Set RSS hash function to RTE_ETH_HASH_SYMMETRIC_TOEPLITZ in</span></span><o:p></o:p></pre>
<pre><span class="q"><span style="color:black">>             the rte_eth_rss_conf passed in during configure</span></span><o:p></o:p></pre>
<pre><span class="q"><span style="color:black">>          2. Use default (non symmetric TOEPLITZ) but pass in a rss_key that</span></span><o:p></o:p></pre>
<pre><span class="q"><span style="color:black">>             has duplicated bits in the right place. Like:</span></span><o:p></o:p></pre>
<pre><span class="q"><span style="color:black">> </span></span><o:p></o:p></pre>
<pre><span class="q"><span style="color:black">> 0x6d5a 0x6d5a 0x6d5a 0x6d5a</span></span><o:p></o:p></pre>
<pre><span class="q"><span style="color:black">> 0x6d5a 0x6d5a 0x6d5a 0x6d5a</span></span><o:p></o:p></pre>
<pre><span class="q"><span style="color:black">> 0x6d5a 0x6d5a 0x6d5a 0x6d5a</span></span><o:p></o:p></pre>
<pre><span class="q"><span style="color:black">> 0x6d5a 0x6d5a 0x6d5a 0x6d5a</span></span><o:p></o:p></pre>
<pre><span class="q"><span style="color:black">> 0x6d5a 0x6d5a 0x6d5a 0x6d5a</span></span><o:p></o:p></pre>
<pre><span class="q"><span style="color:black">> </span></span><o:p></o:p></pre>
<p class="MsoNormal"><span style="font-size:10.0pt;color:black">> </span><a href="https://www.ndsl.kaist.edu/~kyoungsoo/papers/TR-symRSS.pdf"><span style="font-size:10.0pt">https://www.ndsl.kaist.edu/~kyoungsoo/papers/TR-symRSS.pdf</span></a><o:p></o:p></p>
<div>
<p class="MsoNormal"> <o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> <o:p></o:p></p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</body>
</html>