[v2,2/2] test_plans/multiprocess: add 2 cases

Message ID 20221227173537.513185-2-songx.jiale@intel.com (mailing list archive)
State Superseded
Headers
Series [v2,1/2] tests/multiprocess: add new cases according to testplan |

Checks

Context Check Description
ci/Intel-dts-format-test success Testing OK
ci/Intel-dts-pylama-test success Testing OK
ci/Intel-dts-doc-test success Testing OK
ci/Intel-dts-suite-test success Testing OK

Commit Message

Jiale, SongX Dec. 27, 2022, 5:35 p.m. UTC
  in DPDK multiprocess, all operations done by the secondary process on the hardware are invalid.
so action 'port stop' and 'port reset' only work in primary process. 
add 2 cases to test it.

Signed-off-by: Jin Ling <jin.ling@intel.com>
---
 test_plans/multiprocess_test_plan.rst | 138 ++++++++++++++++++++++++++
 1 file changed, 138 insertions(+)
  

Comments

Jin Ling Dec. 28, 2022, 3:32 a.m. UTC | #1
> -----Original Message-----
> From: Jiale, SongX <songx.jiale@intel.com>
> Sent: 2022年12月28日 1:36
> To: dts@dpdk.org
> Cc: Jiale, SongX <songx.jiale@intel.com>; Ling, Jin <jin.ling@intel.com>
> Subject: [dts] [PATCH v2 2/2] test_plans/multiprocess: add 2 cases
> 
> in DPDK multiprocess, all operations done by the secondary process on the
> hardware are invalid.
> so action 'port stop' and 'port reset' only work in primary process.
> add 2 cases to test it.
> 
> Signed-off-by: Jin Ling <jin.ling@intel.com>
> ---
>  test_plans/multiprocess_test_plan.rst | 138 ++++++++++++++++++++++++++
>  1 file changed, 138 insertions(+)
> 
Acked-by: Jin Ling <jin.ling@intel.com>
  

Patch

diff --git a/test_plans/multiprocess_test_plan.rst b/test_plans/multiprocess_test_plan.rst
index bfef1ca9..6520243e 100644
--- a/test_plans/multiprocess_test_plan.rst
+++ b/test_plans/multiprocess_test_plan.rst
@@ -17,6 +17,9 @@  twice - once as a primary instance, and once as a secondary instance. Messages
 are sent from primary to secondary and vice versa, demonstrating the processes
 are sharing memory and can communicate using rte_ring structures.
 
+In DPDK multprocess, all operations done by the secondary process on the hardware are invalid.
+So action `port stop` and `port reset` only work in primary process.
+
 Prerequisites
 -------------
 
@@ -969,3 +972,138 @@  Test Case: test_multiprocess_negative_exceed_process_num
     the first and second processes should be launched successfully
     the third process should be launched failed and output should contain the following string:
     'multi-process option proc-id(2) should be less than num-procs(2)'
+
+TestCase : test_multiprocess_port_stop
+======================================
+Subcase 1: secondary_port_stop
+------------------------------
+test steps
+~~~~~~~~~~
+
+1. Launch the app ``testpmd``, start primary process and secondary process with the following arguments::
+
+   ./dpdk-testpmd -l 1,2 --proc-type=auto -a 0000:17:00.0  --log-level=ice,7 -- -i --rxq=8 --txq=8  --num-procs=2 --proc-id=0
+   ./dpdk-testpmd -l 3,4 --proc-type=auto -a 0000:17:00.0  --log-level=ice,7 -- -i --rxq=8 --txq=8  --num-procs=2 --proc-id=1
+
+2. stop fwd in secondary process and start fwd in primary process::
+
+    secondary process:
+      testpmd> port stop 0
+
+    primary process:
+      testpmd> set fwd rxonly
+      testpmd> set verbose 1
+      testpmd> start
+
+3. send 1 packet from scapy::
+
+    >>> sendp([Ether(dst="B4:96:91:BB:64:54", src="52:00:00:00:00:00")/IP()/Raw(load="P"*20)], iface="ens6")
+
+expected result
+~~~~~~~~~~~~~~~
+
+Check that one packet was received::
+
+   primary process:
+      testpmd> port 0/queue 0: received 1 packets
+
+      testpmd> stop
+
+      ---------------------- Forward statistics for port 0  ----------------------
+        RX-packets: 1              RX-dropped: 0             RX-total: 1
+        TX-packets: 0              TX-dropped: 0             TX-total: 0
+      ----------------------------------------------------------------------------
+
+Subcase 2: primary_port_stop
+----------------------------
+test steps
+~~~~~~~~~~
+
+1. Launch the app ``testpmd``, start 2 process with the following arguments::
+
+   ./dpdk-testpmd -l 1,2 --proc-type=auto -a 0000:17:00.0  --log-level=ice,7 -- -i --rxq=8 --txq=8  --num-procs=2 --proc-id=0
+   ./dpdk-testpmd -l 3,4 --proc-type=auto -a 0000:17:00.0  --log-level=ice,7 -- -i --rxq=8 --txq=8  --num-procs=2 --proc-id=1
+
+2. stop port in primary process and start fwd in secondary::
+
+    primary process:
+      testpmd> port stop 0
+
+    secondary process:
+      testpmd> set fwd rxonly
+      testpmd> set verbose 1
+      testpmd> start
+
+3. send 1 packet from scapy::
+
+    >>> sendp([Ether(dst="B4:96:91:BB:64:54", src="52:00:00:00:00:00")/IP()/Raw(load="P"*20)], iface="ens6")
+
+
+expected result
+~~~~~~~~~~~~~~~
+
+Check that no packet was received::
+
+   secondary process:
+      testpmd> stop
+
+      Telling cores to stop...
+      Waiting for lcores to finish...
+
+      ---------------------- Forward statistics for port 0  ----------------------
+      RX-packets: 0              RX-dropped: 0             RX-total: 0
+      TX-packets: 0              TX-dropped: 0             TX-total: 0
+      ----------------------------------------------------------------------------
+
+TestCase: test_multiprocess_secondary_port_reset
+================================================
+Subcase 1: primary_port_reset
+------------------------------
+test steps
+~~~~~~~~~~
+
+1. Launch the app ``testpmd``, start 2 process with the following argumentss::
+
+    ./dpdk-testpmd -l 1,2 --proc-type=auto -a 0000:17:00.0  --log-level=ice,7 -- -i --rxq=8 --txq=8 --num-procs=2 --proc-id=0
+    ./dpdk-testpmd -l 3,4 --proc-type=auto -a 0000:17:00.0  --log-level=ice,7 -- -i --rxq=8 --txq=8 --num-procs=2 --proc-id=1
+
+
+2. reset port in primary::
+
+    primary process:
+      testpmd> port stop 0
+      testpmd> port reset 0
+
+expected result
+~~~~~~~~~~~~~~~
+
+secondary process & primary process::
+
+    testpmd> show port info 0
+
+   Check that link status of port 0 is `down`
+
+Subcase 2: secondary_port_reset
+-------------------------------
+test steps
+~~~~~~~~~~
+
+1. Launch the app ``testpmd``, start 2 process with the following arguments::
+
+    ./dpdk-testpmd -l 1,2 --proc-type=auto -a 0000:17:00.0  --log-level=ice,7 -- -i --rxq=8 --txq=8 --num-procs=2 --proc-id=0
+    ./dpdk-testpmd -l 3,4 --proc-type=auto -a 0000:17:00.0  --log-level=ice,7 -- -i --rxq=8 --txq=8 --num-procs=2 --proc-id=1
+
+2. reset port in secondary::
+
+    secondary process:
+      testpmd>port stop 0
+      testpmd>port reset 0
+
+expected result
+~~~~~~~~~~~~~~~
+
+primary process & secondary process::
+
+    testpmd> show port info 0
+
+   Check that link status of port 0 is `up`
\ No newline at end of file