From: Song Jiale <songx.jiale@intel.com>
To: dts@dpdk.org
Cc: Song Jiale <songx.jiale@intel.com>, Jin Ling <jin.ling@intel.com>
Subject: [dts] [PATCH v2 2/2] test_plans/multiprocess: add 2 cases
Date: Tue, 27 Dec 2022 17:35:37 +0000 [thread overview]
Message-ID: <20221227173537.513185-2-songx.jiale@intel.com> (raw)
In-Reply-To: <20221227173537.513185-1-songx.jiale@intel.com>
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(+)
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
--
2.25.1
next prev parent reply other threads:[~2022-12-27 9:37 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-12-27 17:35 [dts] [PATCH v2 1/2] tests/multiprocess: add new cases according to testplan Song Jiale
2022-12-27 17:35 ` Song Jiale [this message]
2022-12-28 3:32 ` [dts] [PATCH v2 2/2] test_plans/multiprocess: add 2 cases Ling, Jin
-- strict thread matches above, loose matches on Subject: below --
2022-12-27 17:33 [dts] [PATCH v2 1/2] tests/multiprocess: add new cases according to testplan Song Jiale
2022-12-27 17:33 ` [dts] [PATCH v2 2/2] test_plans/multiprocess: add 2 cases Song Jiale
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20221227173537.513185-2-songx.jiale@intel.com \
--to=songx.jiale@intel.com \
--cc=dts@dpdk.org \
--cc=jin.ling@intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).