Hello!
Now I  studying how to use RSS with DPDK.
 
Initialization part (stolen from DPDK examples) ...
static struct rte_eth_conf s_port_conf = {
	.rxmode = {
		.mq_mode = RTE_ETH_MQ_RX_RSS,
	},
	.rx_adv_conf = {
		.rss_conf = {
			.rss_key = hash_key,
			.rss_key_len = RSS_HASH_KEY_LENGTH,
			.rss_hf = RTE_ETH_RSS_IP | RTE_ETH_RSS_UDP |
				RTE_ETH_RSS_TCP | RTE_ETH_RSS_SCTP,
		},
	},

	.txmode = {
		.mq_mode = RTE_ETH_MQ_TX_NONE,
	},
};
 
...
/* Ethdev port_id=0 invalid rss_hf: 0xa38c, valid value: 0x38d34 */
		l_port_conf.rx_adv_conf.rss_conf.rss_hf &= l_dev_info.flow_type_rss_offloads;
...
 
 
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.
When I run 2 and more workers I see a garbage instead of packet body, some see output listing at end of mail.
Moreover every worker getting a copy of the packet.
 
Is there poor programming or something what I'm need to check in configuration vectors?
 
Thanks in advance!
 
 
 
 
 
Single worker
 
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
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]
29-01-2023 21:45:53.196 292717 [COMMON\iphdr_print:386]                 ICMP [Type:8, Code:0, CKSum:24d1, Id:001c, Seq:5bfb]
29-01-2023 21:45:53.196 [s_proc_forward:1025] Dump of 98 octets follows:
    +0000:  6c b3 11 0a fc 28 00 18 7d ff 4a eb 08 00 45 00   l....(..}.J...E.
    +0010:  00 54 f5 d9 40 00 40 01 20 c3 0a 00 88 0b 0a 00   .T..@.@. .......
    +0020:  88 01 08 00 24 d1 00 1c 5b fb e1 be d6 63 00 00   ....$...[....c..
    +0030:  00 00 fd 21 03 00 00 00 00 00 10 11 12 13 14 15   ...!............
    +0040:  16 17 18 19 1a 1b 1c 1d 1e 1f 20 21 22 23 24 25   .......... !"#$%
    +0050:  26 27 28 29 2a 2b 2c 2d 2e 2f 30 31 32 33 34 35   &'()*+,-./012345
 
 
Two workers
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
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
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]
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]
29-01-2023 21:47:50.718 292752 [COMMON\iphdr_print:377]                 UDP [SPN:20375, DPN:9993, Len:145, CKSum:0000]
29-01-2023 21:47:50.718 292753 [COMMON\iphdr_print:377]                 UDP [SPN:20375, DPN:9993, Len:145, CKSum:0000]
29-01-2023 21:47:50.718 [s_proc_forward:1025] Dump of 179 octets follows:
29-01-2023 21:47:50.718 [s_proc_forward:1025] Dump of 179 octets follows:
    +0000:  00 18 7d ff 4a eb 00 18 7d ff 4a eb 08 00 45 00   ..}.J...}.J...E.
    +0000:  00 18 7d ff 4a eb 00 18 7d ff 4a eb 08 00 45 00   ..}.J...}.J...E.
    +0010:  00 a5 e7 01 00 00 40 11 77 8f 0a 00 88 0b 54 11   ......@.w.....T.
    +0010:  00 a5 e7 01 00 00 40 11 77 8f 0a 00 88 0b 54 11   ......@.w.....T.
    +0020:  35 9b 4f 97 27 09 00 91 00 00 18 16 73 5c e7 0b   5.O.'.......s\..
    +0020:  35 9b 4f 97 27 09 00 91 00 00 18 16 73 5c e7 0b   5.O.'.......s\..
    +0030:  b9 37 ca fe 04 eb a9 46 3a f9 9a b7 00 61 03 72   .7.....F:....a.r
    +0030:  b9 37 ca fe 04 eb a9 46 3a f9 9a b7 00 61 03 72   .7.....F:....a.r
    +0040:  2d 07 57 53 dd 01 0c 01 0a 00 01 00 00 01 85 fe   -.WS............
    +0040:  2d 07 57 53 dd 01 0c 01 0a 00 01 00 00 01 85 fe   -.WS............
    +0050:  db 6a e0 46 3a f9 9a b7 00 a4 66 c0 83 bc 41 be   .j.F:.....f...A.
    +0050:  db 6a e0 46 3a f9 9a b7 00 a4 66 c0 83 bc 41 be   .j.F:.....f...A.
    +0060:  ce 72 27 9e 8d 95 3d f4 b6 5c aa 8a 15 e1 4e e7   .r'...=..\....N.
    +0060:  ce 72 27 9e 8d 95 3d f4 b6 5c aa 8a 15 e1 4e e7   .r'...=..\....N.
    +0070:  34 5c 51 28 e1 b1 52 55 00 78 38 13 85 9d bf 8e   4\Q(..RU.x8.....
    +0070:  34 5c 51 28 e1 b1 52 55 00 78 38 13 85 9d bf 8e   4\Q(..RU.x8.....
    +0080:  25 57 2a c3 5a 3b 97 fa fe 0d b2 fd 13 9b 12 02   %W*.Z;..........
    +0080:  25 57 2a c3 5a 3b 97 fa fe 0d b2 fd 13 9b 12 02   %W*.Z;..........
    +0090:  71 27 34 c0 f2 e1 1c dc 2c 00 04 54 11 35 9b 27   q'4.....,..T.5.'
    +0090:  71 27 34 c0 f2 e1 1c dc 2c 00 04 54 11 35 9b 27   q'4.....,..T.5.'
    +00a0:  09 00 00 00 00 08 ea c9 0a 00 00 01 7e e9 57 60   ............~.W`
    +00a0:  09 00 00 00 00 08 ea c9 0a 00 00 01 7e e9 57 60   ............~.W`
    +00b0:  cd 27 1f                                          .'.
    +00b0:  cd 27 1f                                          .'.
 
 
--- 
С уважением,
Ruslan R. Laishev
OpenVMS bigot, natural born system/network progger, C contractor.
+79013163222
+79910009922