numam-dpdk/lib
Lijun Ou 1848b117cc app/testpmd: fix RSS key for flow API RSS rule
When a flow API RSS rule is issued in testpmd, device RSS key is changed
unexpectedly, device RSS key is changed to the testpmd default RSS key.

Consider the following usage with testpmd:
1. first, startup testpmd:
 testpmd> show port 0 rss-hash key
 RSS functions: all ipv4-frag ipv4-other ipv6-frag ipv6-other ip
 RSS key: 6D5A56DA255B0EC24167253D43A38FB0D0CA2BCBAE7B30B477CB2DA38030F
          20C6A42B73BBEAC01FA
2. create a rss rule
 testpmd> flow create 0 ingress pattern eth / ipv4 / udp / end \
          actions rss types ipv4-udp end queues end / end

3. show rss-hash key
 testpmd> show port 0 rss-hash key
 RSS functions: all ipv4-udp udp
 RSS key: 74657374706D6427732064656661756C74205253532068617368206B65792
          C206F76657272696465

This is because testpmd always sends a key with the RSS rule,
if user provides a key as part of the rule that key is used, if user
doesn't provide a key, testpmd default key is sent to the PMDs, which is
causing device programmed RSS key to be changed.

There was a previous attempt to fix the same issue [1], but it has been
reverted back [2] because of the crash when 'key_len' is provided
without 'key'.

This patch follows the same approach with the initial fix [1] but also
addresses the crash.

After change, testpmd RSS key is 'NULL' by default, if user provides a
key as part of rule it is used, if not no key is sent to the PMDs at all

[1]
Commit a4391f8bae ("app/testpmd: set default RSS key as null")

[2]
Commit f3698c3d09 ("app/testpmd: revert setting default RSS")

Fixes: d0ad8648b1 ("app/testpmd: fix RSS flow action configuration")
Cc: stable@dpdk.org

Signed-off-by: Lijun Ou <oulijun@huawei.com>
Signed-off-by: Ophir Munk <ophirmu@mellanox.com>
Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
2020-11-03 23:24:26 +01:00
..
librte_acl build: remove library name from version map file name 2020-10-19 22:13:59 +02:00
librte_bbdev build: remove library name from version map file name 2020-10-19 22:13:59 +02:00
librte_bitratestats build: remove library name from version map file name 2020-10-19 22:13:59 +02:00
librte_bpf bpf: use helper to install headers 2020-10-22 14:15:19 +02:00
librte_cfgfile build: remove library name from version map file name 2020-10-19 22:13:59 +02:00
librte_cmdline build: remove library name from version map file name 2020-10-19 22:13:59 +02:00
librte_compressdev build: remove library name from version map file name 2020-10-19 22:13:59 +02:00
librte_cryptodev build: remove library name from version map file name 2020-10-19 22:13:59 +02:00
librte_distributor build: remove library name from version map file name 2020-10-19 22:13:59 +02:00
librte_eal eal: fix power intrinsics API description 2020-11-03 22:45:24 +01:00
librte_efd efd: fix tailq entry leak in error path 2020-10-22 22:07:15 +02:00
librte_ethdev app/testpmd: fix RSS key for flow API RSS rule 2020-11-03 23:24:26 +01:00
librte_eventdev eventdev: remove software Rx timestamp 2020-11-03 15:28:26 +01:00
librte_fib fib6: add AVX512 lookup 2020-10-28 21:29:13 +01:00
librte_flow_classify build: remove library name from version map file name 2020-10-19 22:13:59 +02:00
librte_graph build: standardize component names and defines 2020-10-19 22:15:34 +02:00
librte_gro build: remove library name from version map file name 2020-10-19 22:13:59 +02:00
librte_gso gso: fix mbuf freeing responsibility 2020-11-03 22:45:02 +01:00
librte_hash hash: fix check of parameter 2020-10-29 16:45:17 +01:00
librte_ip_frag build: remove library name from version map file name 2020-10-19 22:13:59 +02:00
librte_ipsec build: remove library name from version map file name 2020-10-19 22:13:59 +02:00
librte_jobstats build: remove library name from version map file name 2020-10-19 22:13:59 +02:00
librte_kni mbuf: remove userdata field 2020-10-31 16:13:11 +01:00
librte_kvargs build: remove library name from version map file name 2020-10-19 22:13:59 +02:00
librte_latencystats latency: switch Rx timestamp to dynamic mbuf field 2020-11-03 16:21:15 +01:00
librte_lpm lpm: hide internal data 2020-10-24 19:08:06 +02:00
librte_mbuf mbuf: add Tx timestamp registration helper 2020-11-03 16:21:15 +01:00
librte_member build: remove library name from version map file name 2020-10-19 22:13:59 +02:00
librte_mempool build: remove library name from version map file name 2020-10-19 22:13:59 +02:00
librte_meter build: remove library name from version map file name 2020-10-19 22:13:59 +02:00
librte_metrics metrics: fix memory leak on allocation failure 2020-11-03 22:45:24 +01:00
librte_net build: remove library name from version map file name 2020-10-19 22:13:59 +02:00
librte_node node: switch IPv4 metadata to dynamic mbuf field 2020-10-31 16:13:10 +01:00
librte_pci build: remove library name from version map file name 2020-10-19 22:13:59 +02:00
librte_pdump build: remove library name from version map file name 2020-10-19 22:13:59 +02:00
librte_pipeline pipeline: increase SWX immediate operand size 2020-11-02 21:38:27 +01:00
librte_port build: replace use of old build macros 2020-10-19 22:15:44 +02:00
librte_power eal: rename lcore master and slave 2020-10-20 13:17:08 +02:00
librte_rawdev build: remove library name from version map file name 2020-10-19 22:13:59 +02:00
librte_rcu remove config prefix used with make 2020-10-23 19:25:21 +02:00
librte_regexdev regexdev: add out-of-order scan capability 2020-11-03 02:03:25 +01:00
librte_reorder reorder: switch sequence number to dynamic mbuf field 2020-10-31 22:14:30 +01:00
librte_rib build: remove library name from version map file name 2020-10-19 22:13:59 +02:00
librte_ring ring: add zero copy API 2020-10-29 14:13:31 +01:00
librte_sched build: remove library name from version map file name 2020-10-19 22:13:59 +02:00
librte_security security: switch metadata to dynamic mbuf field 2020-10-31 16:13:11 +01:00
librte_stack build: remove library name from version map file name 2020-10-19 22:13:59 +02:00
librte_table build: remove library name from version map file name 2020-10-19 22:13:59 +02:00
librte_telemetry build: remove library name from version map file name 2020-10-19 22:13:59 +02:00
librte_timer build: remove library name from version map file name 2020-10-19 22:13:59 +02:00
librte_vhost vhost: remove fallback in async enqueue API 2020-11-03 23:24:26 +01:00
meson.build rcu: build on Windows 2020-10-24 08:54:03 +02:00