[dpdk-dev] [Bug 613] [21.02] rule lost after port stopped
Ferruh Yigit
ferruh.yigit at intel.com
Thu Jan 14 09:38:05 CET 2021
On 1/14/2021 7:15 AM, bugzilla at dpdk.org wrote:
> https://bugs.dpdk.org/show_bug.cgi?id=613
>
> Bug ID: 613
> Summary: [21.02] rule lost after port stopped
> Product: DPDK
> Version: unspecified
> Hardware: x86
> OS: Linux
> Status: UNCONFIRMED
> Severity: normal
> Priority: Normal
> Component: testpmd
> Assignee: dev at dpdk.org
> Reporter: qinx.sun at intel.com
> Target Milestone: ---
>
> create a rule in testpmd, stop port and then flow list port find that rule
> lost.
>
> Environment
>
> DPDK version: Use make showversion or for a non-released version: git remote -v
> && git show-ref --heads
> 21.02.0-rc0:0144eeafd1467937a379a7dc005bcb0579b0ae5e
> Other software versions: name/version for QEMU, OVS, etc. Repeat as required.
> OS: CentOS8.3
> Compiler: gcc version 8.3.1 20191121 (Red Hat 8.3.1-5)
> Hardware platform: Intel(R) Xeon(R) CPU E5-2699 v3 @ 2.30GHz
> NIC hardware: Ethernet Controller E810-C for SFP 1593
> NIC firmware: 2.30 0x80004dcf 1.2839.0
> NIC driver: 1.3.0_dirty
> Pkg: ice-comms_1.3.24.0
>
> [reproduce steps]
> 1. bind to vfio-pci and create 2 vfs
> usertools/dpdk-devbind.py --force --bind=vfio-pci 0000:03:00.0
> echo 2 > /sys/bus/pci/devices/0000:03:00.0/sriov_numvfs
>
> 2. start testpmd
> x86_64-native-linuxapp-gcc/app/dpdk-testpmd -l 1,2,3,4 -n 4 -a
> 0000:03:01.0,cap=dcf -a 0000:03:01.1 --file-prefix=dpdk_1965_20210114114229
> -- -i
>
> 3. create a rule
> testpmd> flow create 0 ingress pattern eth dst is 68:05:ca:8d:ed:a8 / ipv4 src
> is 192.168.0.1 dst is 192.168.0.2 tos is 4 ttl is 3 / udp src is 25 dst is 23 /
> end actions vf id 1 / end
> Flow rule #1 created
>
> 4. list rule
> testpmd> flow list 0
> ID Group Prio Attr Rule
> 0 0 0 i-- ETH IPV4 UDP => VF
>
> 5.stop port 0
> testpmd> port stop 0
> Stopping ports...
> Checking link statuses...
> Done
>
> 6.list rule
> testpmd> flow list 0
> testpmd>
>
> Actual Result: rule lost after port stopped
>
> Expected Result: The result of rule list is the same as step 4.
>
> Regression
> Is this issue a regression: (Y)
>
> Version the regression was introduced: Specify git id if known.
>
> commit 0f93edbf7c874480e21e365f527fecdb305984b9
> Author: Gregory Etelson <getelson at nvidia.com>
> Date: Thu Nov 26 18:43:02 2020 +0200
>
> app/testpmd: release flows left before port stop
>
> According to RTE flow user guide, PMD will not keep flow rules after
> port stop. Application resources that refer to flow rules become
> obsolete after port stop and must not be used.
> Testpmd maintains linked list of active flows for each port. Entries in
> that list are allocated dynamically and must be explicitly released to
> prevent memory leak.
> The patch releases testpmd port flow_list that holds remaining flows
> before port is stopped.
>
> Cc: stable at dpdk.org
>
> Signed-off-by: Gregory Etelson <getelson at nvidia.com>
> Acked-by: Ori Kam <orika at nvidia.com>
> Acked-by: Ajit Khaparde <ajit.khaparde at broadcom.com>
>
cc'ed Gregory & Ori.
More information about the dev
mailing list