On 10/15/2020 1:41 PM, Lijun Ou wrote:
When start the testpmd, the pmd driver initializes the RSS
configuration. Generally, the recommended RSS hash key is
used as the default key in the driver. In addition, the
default key is different from the default RSS flow in testpmd
without specifying RSS hash key. So. if you do not specify
the RSS key when creating an RSS rule, the testpmd uses the
default key as the default RSS key of the RSS rule. As a result,
you may mistakenly consider that the RSS key in use is the valid
default key of the NIC, actually, the key and the valid default
key of the NIC are two values.

Consider the follow 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:
-74657374706D6427732064656661756C74205253532068617368206B65792C206F
-76657272696465

In order to solve the above problems, it use the NIC valid default
RSS key instead of the testpmd dummy RSS key in the flow configuration
when the RSS key is not specified in the flow rule. If the NIC RSS key
is invalid, it will use testpmd dummy RSS key as the default key.

Fixes: ac8d22de2394 ("ethdev: flatten RSS configuration in flow API")
Cc: sta...@dpdk.org

Signed-off-by: Lijun Ou <ouli...@huawei.com>
Reviewed-by: Phil Yang <phil.y...@arm.com>
---
V4->V5:
-rewrite the commit log
-add reviewed-by

Hi Lijun,

There were multiple other comments, it seems they are not addressed but only updated the commit log, can you please check comments to prev versions.

Before going into the details, my question was what happens if default key not provided at all? It seems this has been already tried by Ophir [1], later reverted back [2] bringing the initial issue back.

According commit, the reason of revert is to support following command:
"flow create 0 <pattern> actions rss queues 0 1 end key_len 40 / end"

@Ophir, @Lijun,
Can we ignore the 'key_len' if the 'key' is not supported and solve current issue as initially intended ([1])?


[1] https://git.dpdk.org/dpdk/commit/?id=a4391f8bae8

[2] https://git.dpdk.org/dpdk/commit/?id=f3698c3d09a

Reply via email to