<div><span style="font-family:'courier new' , monospace">Hello!</span></div><div><span style="font-family:'courier new' , monospace">Now I studying how to use RSS with DPDK. </span></div><div> </div><div><span style="font-family:'courier new' , monospace">Initialization part (stolen from DPDK examples) ...</span></div><div><pre style="margin:0px;text-indent:0px"><span style="font-family:'courier new' , monospace"><em style="color:#45c6d6;font-style:italic">static<span style="color:#bec0c2"> </span>struct</em></span><span style="color:#bec0c2;font-family:'courier new' , monospace"> </span><span style="color:#ff8080;font-family:'courier new' , monospace">rte_eth_conf</span><span style="color:#bec0c2;font-family:'courier new' , monospace"> </span><span style="font-family:'courier new' , monospace">s_port_conf</span><span style="color:#bec0c2;font-family:'courier new' , monospace"> </span><span style="color:#d6bb9a;font-family:'courier new' , monospace">=</span><span style="color:#bec0c2;font-family:'courier new' , monospace"> </span><span style="font-family:'courier new' , monospace">{<!-- --></span></pre><pre style="margin:0px;text-indent:0px"><span style="color:#bec0c2;font-family:'courier new' , monospace"> </span><span style="color:#d6bb9a;font-family:'courier new' , monospace">.</span><span style="font-family:'courier new' , monospace">rxmode</span><span style="color:#bec0c2;font-family:'courier new' , monospace"> </span><span style="color:#d6bb9a;font-family:'courier new' , monospace">=</span><span style="color:#bec0c2;font-family:'courier new' , monospace"> </span><span style="font-family:'courier new' , monospace">{<!-- --></span></pre><pre style="margin:0px;text-indent:0px"><span style="color:#bec0c2;font-family:'courier new' , monospace"> </span><span style="color:#d6bb9a;font-family:'courier new' , monospace">.</span><span style="font-family:'courier new' , monospace">mq_mode</span><span style="color:#bec0c2;font-family:'courier new' , monospace"> </span><span style="color:#d6bb9a;font-family:'courier new' , monospace">=</span><span style="color:#bec0c2;font-family:'courier new' , monospace"> </span><span style="font-family:'courier new' , monospace">RTE_ETH_MQ_RX_RSS,</span></pre><pre style="margin:0px;text-indent:0px"><span style="color:#bec0c2;font-family:'courier new' , monospace"> </span><span style="font-family:'courier new' , monospace">},</span></pre><pre style="margin:0px;text-indent:0px"><span style="color:#bec0c2;font-family:'courier new' , monospace"> </span><span style="color:#d6bb9a;font-family:'courier new' , monospace">.</span><span style="font-family:'courier new' , monospace">rx_adv_conf</span><span style="color:#bec0c2;font-family:'courier new' , monospace"> </span><span style="color:#d6bb9a;font-family:'courier new' , monospace">=</span><span style="color:#bec0c2;font-family:'courier new' , monospace"> </span><span style="font-family:'courier new' , monospace">{<!-- --></span></pre><pre style="margin:0px;text-indent:0px"><span style="color:#bec0c2;font-family:'courier new' , monospace"> </span><span style="color:#d6bb9a;font-family:'courier new' , monospace">.</span><span style="font-family:'courier new' , monospace">rss_conf</span><span style="color:#bec0c2;font-family:'courier new' , monospace"> </span><span style="color:#d6bb9a;font-family:'courier new' , monospace">=</span><span style="color:#bec0c2;font-family:'courier new' , monospace"> </span><span style="font-family:'courier new' , monospace">{<!-- --></span></pre><pre style="margin:0px;text-indent:0px"><span style="color:#bec0c2;font-family:'courier new' , monospace"> </span><span style="color:#d6bb9a;font-family:'courier new' , monospace">.</span><span style="font-family:'courier new' , monospace">rss_key</span><span style="color:#bec0c2;font-family:'courier new' , monospace"> </span><span style="color:#d6bb9a;font-family:'courier new' , monospace">=</span><span style="color:#bec0c2;font-family:'courier new' , monospace"> </span><span style="font-family:'courier new' , monospace">hash_key,</span></pre><pre style="margin:0px;text-indent:0px"><span style="color:#bec0c2;font-family:'courier new' , monospace"> </span><span style="color:#d6bb9a;font-family:'courier new' , monospace">.</span><span style="font-family:'courier new' , monospace">rss_key_len</span><span style="color:#bec0c2;font-family:'courier new' , monospace"> </span><span style="color:#d6bb9a;font-family:'courier new' , monospace">=</span><span style="color:#bec0c2;font-family:'courier new' , monospace"> </span><span style="color:#ff6aad;font-family:'courier new' , monospace">RSS_HASH_KEY_LENGTH</span><span style="font-family:'courier new' , monospace">,</span></pre><pre style="margin:0px;text-indent:0px"><span style="color:#bec0c2;font-family:'courier new' , monospace"> </span><span style="color:#d6bb9a;font-family:'courier new' , monospace">.</span><span style="font-family:'courier new' , monospace">rss_hf</span><span style="color:#bec0c2;font-family:'courier new' , monospace"> </span><span style="color:#d6bb9a;font-family:'courier new' , monospace">=</span><span style="color:#bec0c2;font-family:'courier new' , monospace"> </span><span style="color:#ff6aad;font-family:'courier new' , monospace">RTE_ETH_RSS_IP</span><span style="color:#bec0c2;font-family:'courier new' , monospace"> </span><span style="color:#d6bb9a;font-family:'courier new' , monospace">|</span><span style="color:#bec0c2;font-family:'courier new' , monospace"> </span><span style="color:#ff6aad;font-family:'courier new' , monospace">RTE_ETH_RSS_UDP</span><span style="color:#bec0c2;font-family:'courier new' , monospace"> </span><span style="color:#d6bb9a;font-family:'courier new' , monospace">|</span></pre><pre style="margin:0px;text-indent:0px"><span style="color:#bec0c2;font-family:'courier new' , monospace"> </span><span style="color:#ff6aad;font-family:'courier new' , monospace">RTE_ETH_RSS_TCP</span><span style="color:#bec0c2;font-family:'courier new' , monospace"> </span><span style="color:#d6bb9a;font-family:'courier new' , monospace">|</span><span style="color:#bec0c2;font-family:'courier new' , monospace"> </span><span style="color:#ff6aad;font-family:'courier new' , monospace">RTE_ETH_RSS_SCTP</span><span style="font-family:'courier new' , monospace">,</span></pre><pre style="margin:0px;text-indent:0px"><span style="color:#bec0c2;font-family:'courier new' , monospace"> </span><span style="font-family:'courier new' , monospace">},</span></pre><pre style="margin:0px;text-indent:0px"><span style="color:#bec0c2;font-family:'courier new' , monospace"> </span><span style="font-family:'courier new' , monospace">},
</span></pre><pre style="margin:0px;text-indent:0px"><span style="color:#bec0c2;font-family:'courier new' , monospace"> </span><span style="color:#d6bb9a;font-family:'courier new' , monospace">.</span><span style="font-family:'courier new' , monospace">txmode</span><span style="color:#bec0c2;font-family:'courier new' , monospace"> </span><span style="color:#d6bb9a;font-family:'courier new' , monospace">=</span><span style="color:#bec0c2;font-family:'courier new' , monospace"> </span><span style="font-family:'courier new' , monospace">{<!-- --></span></pre><pre style="margin:0px;text-indent:0px"><span style="color:#bec0c2;font-family:'courier new' , monospace"> </span><span style="color:#d6bb9a;font-family:'courier new' , monospace">.</span><span style="font-family:'courier new' , monospace">mq_mode</span><span style="color:#bec0c2;font-family:'courier new' , monospace"> </span><span style="color:#d6bb9a;font-family:'courier new' , monospace">=</span><span style="color:#bec0c2;font-family:'courier new' , monospace"> </span><span style="font-family:'courier new' , monospace">RTE_ETH_MQ_TX_NONE,</span></pre><pre style="margin:0px;text-indent:0px"><span style="color:#bec0c2;font-family:'courier new' , monospace"> </span><span style="font-family:'courier new' , monospace">},</span></pre><pre style="margin:0px;text-indent:0px"><span style="font-family:'courier new' , monospace">};</span></pre><pre style="margin:0px;text-indent:0px"> </pre></div><div><span style="font-family:'courier new' , monospace">...</span></div><div><pre style="margin:0px;text-indent:0px"><span style="font-family:'courier new' , monospace"><em style="color:#a8abb0;font-style:italic">/*<span style="color:#bec0c2"> </span>Ethdev</em></span><span style="color:#bec0c2;font-family:'courier new' , monospace"> </span><span style="font-family:'courier new' , monospace"><em style="color:#a8abb0;font-style:italic">port_id=0</em></span><span style="color:#bec0c2;font-family:'courier new' , monospace"> </span><span style="font-family:'courier new' , monospace"><em style="color:#a8abb0;font-style:italic">invalid</em></span><span style="color:#bec0c2;font-family:'courier new' , monospace"> </span><span style="font-family:'courier new' , monospace"><em style="color:#a8abb0;font-style:italic">rss_hf:</em></span><span style="color:#bec0c2;font-family:'courier new' , monospace"> </span><span style="font-family:'courier new' , monospace"><em style="color:#a8abb0;font-style:italic">0xa38c,</em></span><span style="color:#bec0c2;font-family:'courier new' , monospace"> </span><span style="font-family:'courier new' , monospace"><em style="color:#a8abb0;font-style:italic">valid</em></span><span style="color:#bec0c2;font-family:'courier new' , monospace"> </span><span style="font-family:'courier new' , monospace"><em style="color:#a8abb0;font-style:italic">value:</em></span><span style="color:#bec0c2;font-family:'courier new' , monospace"> </span><span style="font-family:'courier new' , monospace"><em style="color:#a8abb0;font-style:italic">0x38d34<span style="color:#bec0c2"> </span>*/</em></span></pre><pre style="margin:0px;text-indent:0px"><span style="color:#bec0c2;font-family:'courier new' , monospace"> </span><span style="color:#d6bb9a;font-family:'courier new' , monospace">l_port_conf.</span><span style="font-family:'courier new' , monospace">rx_adv_conf</span><span style="color:#d6bb9a;font-family:'courier new' , monospace">.</span><span style="font-family:'courier new' , monospace">rss_conf</span><span style="color:#d6bb9a;font-family:'courier new' , monospace">.</span><span style="font-family:'courier new' , monospace">rss_hf</span><span style="color:#bec0c2;font-family:'courier new' , monospace"> </span><span style="color:#d6bb9a;font-family:'courier new' , monospace">&=</span><span style="color:#bec0c2;font-family:'courier new' , monospace"> </span><span style="color:#d6bb9a;font-family:'courier new' , monospace">l_dev_info.</span><span style="font-family:'courier new' , monospace">flow_type_rss_offloads;</span></pre><div><span style="font-family:'courier new' , monospace">...</span></div><div> </div><div> </div><div><span style="font-family:'courier new' , monospace">After that I running 1 or 2 workers on own LCore . Every worker #X do receiving from port Y/queue#X . When I run single worker I see a valid ICMP Echo packet has been used for testing.</span></div><div><span style="font-family:'courier new' , monospace">When I run 2 and more workers I see a garbage instead of packet body, some see output listing at end of mail.</span></div><div><span style="font-family:'courier new' , monospace">Moreover every worker getting a copy of the packet. </span></div><div> </div><div><span style="font-family:'courier new' , monospace">Is there poor programming or something what I'm need to check in configuration vectors?</span></div><div> </div><div><span style="font-family:'courier new' , monospace">Thanks in advance!</span></div><div> </div><div> </div><div> </div><div> </div><div> </div><div><span style="font-family:'courier new' , monospace">Single worker</span></div><div> </div><div><div><div><span style="font-family:'courier new' , monospace;font-size:12px;line-height:18px">29-01-2023 21:45:53.196 292717 [CGWPROC\s_proc_forward:1018] QUE #0 --- 2PUZZLE-4/_PEA02: <--- src: 00:18:7D:FF:4A:EB dst: 6C:B3:11:0A:FC:28 EType:0800</span></div><div><span style="font-family:'courier new' , monospace;font-size:12px;line-height:18px">29-01-2023 21:45:53.196 292717 [COMMON\iphdr_print:367] IP Header: SIA: 10.0.136.11 DIA: 10.0.136.1, Id:62937, Len: 84, Proto:1, CKSum:c320]</span></div><div><span style="font-family:'courier new' , monospace;font-size:12px;line-height:18px">29-01-2023 21:45:53.196 292717 [COMMON\iphdr_print:386] ICMP [Type:8, Code:0, CKSum:24d1, Id:001c, Seq:5bfb]</span></div><div><span style="font-family:'courier new' , monospace;font-size:12px;line-height:18px">29-01-2023 21:45:53.196 [s_proc_forward:1025] Dump of 98 octets follows:</span></div><div><span style="font-family:'courier new' , monospace;font-size:12px;line-height:18px"> +0000: 6c b3 11 0a fc 28 00 18 7d ff 4a eb 08 00 45 00 l....(..}.J...E.</span></div><div><span style="font-family:'courier new' , monospace;font-size:12px;line-height:18px"> +0010: 00 54 f5 d9 40 00 40 01 20 c3 0a 00 88 0b 0a 00 .T..@.@. .......</span></div><div><span style="font-family:'courier new' , monospace;font-size:12px;line-height:18px"> +0020: 88 01 08 00 24 d1 00 1c 5b fb e1 be d6 63 00 00 ....$...[....c..</span></div><div><span style="font-family:'courier new' , monospace;font-size:12px;line-height:18px"> +0030: 00 00 fd 21 03 00 00 00 00 00 10 11 12 13 14 15 ...!............</span></div><div><span style="font-family:'courier new' , monospace;font-size:12px;line-height:18px"> +0040: 16 17 18 19 1a 1b 1c 1d 1e 1f 20 21 22 23 24 25 .......... !"#$%</span></div><div><span style="font-family:'courier new' , monospace;font-size:12px;line-height:18px"> +0050: 26 27 28 29 2a 2b 2c 2d 2e 2f 30 31 32 33 34 35 &'()*+,-./012345</span></div><div> </div><div> </div><div><span style="font-family:'courier new' , monospace">Two workers</span></div><div><span style="font-family:'courier new' , monospace;font-size:12px;line-height:18px">29-01-2023 21:47:50.718 292752 [CGWPROC\s_proc_forward:1018] QUE #0 --- 2PUZZLE-4/_PEA02: <--- src: 00:18:7D:FF:4A:EB dst: 00:18:7D:FF:4A:EB EType:0800</span></div><div><span style="font-family:'courier new' , monospace;font-size:12px;line-height:18px">29-01-2023 21:47:50.718 292753 [CGWPROC\s_proc_forward:1018] QUE #1 --- 2PUZZLE-4/_PEA02: <--- src: 00:18:7D:FF:4A:EB dst: 00:18:7D:FF:4A:EB EType:0800</span></div><div><span style="font-family:'courier new' , monospace;font-size:12px;line-height:18px">29-01-2023 21:47:50.718 292752 [COMMON\iphdr_print:367] IP Header: SIA: 10.0.136.11 DIA: 84.17.53.155, Id:59137, Len: 165, Proto:17, CKSum:8f77]</span></div><div><span style="font-family:'courier new' , monospace;font-size:12px;line-height:18px">29-01-2023 21:47:50.718 292753 [COMMON\iphdr_print:367] IP Header: SIA: 10.0.136.11 DIA: 84.17.53.155, Id:59137, Len: 165, Proto:17, CKSum:8f77]</span></div><div><span style="font-family:'courier new' , monospace;font-size:12px;line-height:18px">29-01-2023 21:47:50.718 292752 [COMMON\iphdr_print:377] UDP [SPN:20375, DPN:9993, Len:145, CKSum:0000]</span></div><div><span style="font-family:'courier new' , monospace;font-size:12px;line-height:18px">29-01-2023 21:47:50.718 292753 [COMMON\iphdr_print:377] UDP [SPN:20375, DPN:9993, Len:145, CKSum:0000]</span></div><div><span style="font-family:'courier new' , monospace;font-size:12px;line-height:18px">29-01-2023 21:47:50.718 [s_proc_forward:1025] Dump of 179 octets follows:</span></div><div><span style="font-family:'courier new' , monospace;font-size:12px;line-height:18px">29-01-2023 21:47:50.718 [s_proc_forward:1025] Dump of 179 octets follows:</span></div><div><span style="font-family:'courier new' , monospace;font-size:12px;line-height:18px"> +0000: 00 18 7d ff 4a eb 00 18 7d ff 4a eb 08 00 45 00 ..}.J...}.J...E.</span></div><div><span style="font-family:'courier new' , monospace;font-size:12px;line-height:18px"> +0000: 00 18 7d ff 4a eb 00 18 7d ff 4a eb 08 00 45 00 ..}.J...}.J...E.</span></div><div><span style="font-family:'courier new' , monospace;font-size:12px;line-height:18px"> +0010: 00 a5 e7 01 00 00 40 11 77 8f 0a 00 88 0b 54 11 ......@.w.....T.</span></div><div><span style="font-family:'courier new' , monospace;font-size:12px;line-height:18px"> +0010: 00 a5 e7 01 00 00 40 11 77 8f 0a 00 88 0b 54 11 ......@.w.....T.</span></div><div><span style="font-family:'courier new' , monospace;font-size:12px;line-height:18px"> +0020: 35 9b 4f 97 27 09 00 91 00 00 18 16 73 5c e7 0b 5.O.'.......s\..</span></div><div><span style="font-family:'courier new' , monospace;font-size:12px;line-height:18px"> +0020: 35 9b 4f 97 27 09 00 91 00 00 18 16 73 5c e7 0b 5.O.'.......s\..</span></div><div><span style="font-family:'courier new' , monospace;font-size:12px;line-height:18px"> +0030: b9 37 ca fe 04 eb a9 46 3a f9 9a b7 00 61 03 72 .7.....F:....a.r</span></div><div><span style="font-family:'courier new' , monospace;font-size:12px;line-height:18px"> +0030: b9 37 ca fe 04 eb a9 46 3a f9 9a b7 00 61 03 72 .7.....F:....a.r</span></div><div><span style="font-family:'courier new' , monospace;font-size:12px;line-height:18px"> +0040: 2d 07 57 53 dd 01 0c 01 0a 00 01 00 00 01 85 fe -.WS............</span></div><div><span style="font-family:'courier new' , monospace;font-size:12px;line-height:18px"> +0040: 2d 07 57 53 dd 01 0c 01 0a 00 01 00 00 01 85 fe -.WS............</span></div><div><span style="font-family:'courier new' , monospace;font-size:12px;line-height:18px"> +0050: db 6a e0 46 3a f9 9a b7 00 a4 66 c0 83 bc 41 be .j.F:.....f...A.</span></div><div><span style="font-family:'courier new' , monospace;font-size:12px;line-height:18px"> +0050: db 6a e0 46 3a f9 9a b7 00 a4 66 c0 83 bc 41 be .j.F:.....f...A.</span></div><div><span style="font-family:'courier new' , monospace;font-size:12px;line-height:18px"> +0060: ce 72 27 9e 8d 95 3d f4 b6 5c aa 8a 15 e1 4e e7 .r'...=..\....N.</span></div><div><span style="font-family:'courier new' , monospace;font-size:12px;line-height:18px"> +0060: ce 72 27 9e 8d 95 3d f4 b6 5c aa 8a 15 e1 4e e7 .r'...=..\....N.</span></div><div><span style="font-family:'courier new' , monospace;font-size:12px;line-height:18px"> +0070: 34 5c 51 28 e1 b1 52 55 00 78 38 13 85 9d bf 8e 4\Q(..RU.x8.....</span></div><div><span style="font-family:'courier new' , monospace;font-size:12px;line-height:18px"> +0070: 34 5c 51 28 e1 b1 52 55 00 78 38 13 85 9d bf 8e 4\Q(..RU.x8.....</span></div><div><span style="font-family:'courier new' , monospace;font-size:12px;line-height:18px"> +0080: 25 57 2a c3 5a 3b 97 fa fe 0d b2 fd 13 9b 12 02 %W*.Z;..........</span></div><div><span style="font-family:'courier new' , monospace;font-size:12px;line-height:18px"> +0080: 25 57 2a c3 5a 3b 97 fa fe 0d b2 fd 13 9b 12 02 %W*.Z;..........</span></div><div><span style="font-family:'courier new' , monospace;font-size:12px;line-height:18px"> +0090: 71 27 34 c0 f2 e1 1c dc 2c 00 04 54 11 35 9b 27 q'4.....,..T.5.'</span></div><div><span style="font-family:'courier new' , monospace;font-size:12px;line-height:18px"> +0090: 71 27 34 c0 f2 e1 1c dc 2c 00 04 54 11 35 9b 27 q'4.....,..T.5.'</span></div><div><span style="font-family:'courier new' , monospace;font-size:12px;line-height:18px"> +00a0: 09 00 00 00 00 08 ea c9 0a 00 00 01 7e e9 57 60 ............~.W`</span></div><div><span style="font-family:'courier new' , monospace;font-size:12px;line-height:18px"> +00a0: 09 00 00 00 00 08 ea c9 0a 00 00 01 7e e9 57 60 ............~.W`</span></div><div><span style="font-family:'courier new' , monospace;font-size:12px;line-height:18px"> +00b0: cd 27 1f .'.</span></div><div><span style="font-family:'courier new' , monospace;font-size:12px;line-height:18px"> +00b0: cd 27 1f .'.</span></div><div> </div></div></div><div> </div></div><div><span style="font-family:'georgia' , 'palatino'">--- </span></div><div><span style="font-family:'georgia' , 'palatino'">С уважением,<br />Ruslan R. Laishev</span></div><div><span style="font-family:'georgia' , 'palatino'">OpenVMS bigot, natural born system/network progger, C contractor.</span></div><div><span style="font-family:'georgia' , 'palatino'">+79013163222</span></div><div><span style="font-family:'georgia' , 'palatino'">+79910009922</span></div><div> </div>