Skip to contentSkip to conversation

rss_to_rte_flow/set_key_keylen: create rule failed: Invalid argument.

dpdk-dev [email protected] 1 participant 2 messages Nov 9, 2020 – Jan 6, 2021

lore
Share & tools
lore
#0 lore raw

https://bugs.dpdk.org/show_bug.cgi?id=573

            Bug ID: 573
           Summary: [dpdk-20.11]rss_to_rte_flow/set_key_keylen: create
                    rule failed: Invalid argument.
           Product: DPDK
           Version: 20.11
          Hardware: All
                OS: Linux
            Status: UNCONFIRMED
          Severity: normal
          Priority: Normal
         Component: testpmd
          Assignee: [email protected]
          Reporter: [email protected]

Target Milestone: ---

Environment

DPDK version: Use make showversion or for a non-released version: git remote -v && git show-ref --heads
20.11-rc3 60af9bd63dd46ebd709371e88b4096fd2bc048cf
Other software versions: name/version for QEMU, OVS, etc. Repeat as required.
OS: Ubuntu 20.04.1 LTS/5.4.0-42-generic
Compiler: gcc (Ubuntu 9.3.0-17ubuntu1~20.04) 9.3.0
Hardware platform: Intel(R) Xeon(R) Gold 6139 CPU @ 2.30GHz
NIC hardware: Fortville_25g(Ethernet Controller XXV710 for 25GbE SFP28 158b) NIC firmware:
driver: i40e
version: 2.13.10
firmware-version: 8.00 0x80008c1a 1.2766.0

Test Setup
Steps to reproduce
List the steps to reproduce the issue.

1.usertools/dpdk-devbind.py --force --bind=vfio-pci 0000:86:00.0 0000:86:00.1 2.x86_64-native-linuxapp-gcc/app/dpdk-testpmd -l 1,2 -n 4 -w 0000:86:00.0 -w
0000:86:00.1 --file-prefix=dpdk_361_20201110000440 -- -i --rxq=4 --txq=4
--port-topology=chained
3.set fwd rxonly
4.set verbose 1
5.start
6.flow create 0 ingress pattern eth / ipv4 / udp / end actions rss types
ipv4-udp end queues end key 1234567890123456789012345678901234567890FFFFFFFFFFFF1234567890123456789012345678901234567890FFFFFFFFFFFF / end

Show the output from the previous commands.

port_flow_complain(): Caught PMD error type 16 (specific action): cause:
0x7fff1489b808, RSS context initialization failure: Invalid argument

Expected Result
Explain what is the expected result in text or as an example output:

rule create successful,and no error log

Regression
Is this issue a regression: (Y)

Version the regression was introduced:

commit 1848b117cca159cc4e5f287876491e86e3413f21
Author: Lijun Ou <[email protected]>
Date: Wed Oct 21 18:07:10 2020 +0800

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 a4391f8bae85 ("app/testpmd: set default RSS key as null")

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

Fixes d0ad8648b1c5 ("app/testpmd: fix RSS flow action configuration")
Signature · 2 lines
You are receiving this mail because:
You are the assignee for the bug.
#1 lore raw

https://bugs.dpdk.org/show_bug.cgi?id=573

kumar amber ([email protected]) changed:

What |Removed |Added
----------------------------------------------------------------------------

                 CC|                            |[email protected]
             Status|UNCONFIRMED                 |RESOLVED
         Resolution|---                         |WONTFIX

--- Comment #5 from kumar amber ([email protected]) ---
This looks not necessary for me, cause Intel NIC usually not support per RSS queue group, For ice driver, we accept null queue configure, because a RSS configure always apply on all queues implicitly and I think it should be the same for i40e Otherwise, it’s always a burden for application to fill the queue array for each rule creation.

Signature · 2 lines
You are receiving this mail because:
You are the assignee for the bug.