From: <pvukkisala@marvell.com>
To: <dts@dpdk.org>
Cc: <avijay@marvell.com>, <fmasood@marvell.com>,
Phanendra Vukkisala <pvukkisala@marvell.com>
Subject: [dts] [PATCH] pmd: Add test case packet checking in scalar mode for marvell device
Date: Tue, 27 Aug 2019 12:18:28 +0530 [thread overview]
Message-ID: <1566888508-5477-1-git-send-email-pvukkisala@marvell.com> (raw)
From: Phanendra Vukkisala <pvukkisala@marvell.com>
Updated testplan, test script and support list.
Signed-off-by: Phanendra Vukkisala <pvukkisala@marvell.com>
---
conf/test_case_supportlist.json | 16 +++++++++++++++
test_plans/pmd_test_plan.rst | 15 ++++++++++++++
tests/TestSuite_pmd.py | 41 ++++++++++++++++++++++++++++++++-------
3 files changed, 65 insertions(+), 7 deletions(-)
diff --git a/conf/test_case_supportlist.json b/conf/test_case_supportlist.json
index f547b32..9c39f33 100644
--- a/conf/test_case_supportlist.json
+++ b/conf/test_case_supportlist.json
@@ -1612,5 +1612,21 @@
"Bug ID": "",
"Comments": "This case currently support for niantic "
}
+ ],
+ "packet_checking_scalar_mode": [
+ {
+ "OS": [
+ "ALL"
+ ],
+ "NIC": [
+ "cavium_a064",
+ "cavium_a063"
+ ],
+ "Target": [
+ "ALL"
+ ],
+ "Bug ID": "",
+ "Comments": "This case currently support for cavium_a063 and cavium_a064 "
+ }
]
}
diff --git a/test_plans/pmd_test_plan.rst b/test_plans/pmd_test_plan.rst
index a077cfa..f84fa55 100644
--- a/test_plans/pmd_test_plan.rst
+++ b/test_plans/pmd_test_plan.rst
@@ -92,6 +92,21 @@ Test Case: Packet Checking
which will be forwarded by the DUT. The test checks if the packets are correctly forwarded and
if both RX and TX packet sizes match by `show port all stats`
+Test Case: Packet Checking in scalar mode
+=========================================
+
+The linuxapp is started with the following parameters:
+
+::
+ -c 0x6 -n 4 -w <devid>,scalar_enable=1 -- -i --portmask=<portmask>
+
+
+This test is applicable for Marvell devices. The tester sends 1 packet at a
+time with different sizes (64, 65, 128, 256, 512, 1024, 1280 and 1518 bytes),
+using scapy, which will be forwarded by the DUT. The test checks if the packets
+are correctly forwarded and if both RX and TX packet sizes match.
+
+
Test Case: Descriptors Checking
===============================
diff --git a/tests/TestSuite_pmd.py b/tests/TestSuite_pmd.py
index dc9078f..46141d6 100644
--- a/tests/TestSuite_pmd.py
+++ b/tests/TestSuite_pmd.py
@@ -386,6 +386,29 @@ class TestPmd(TestCase):
self.dut.send_expect("quit", "# ", 30)
sleep(5)
+ def test_packet_checking_scalar_mode(self):
+ """
+ Packet forwarding checking test
+ """
+
+ self.dut.kill_all()
+
+ port_mask = utils.create_mask([self.dut_ports[0], self.dut_ports[1]])
+
+ eal_opts = ""
+ for port in self.dut_ports:
+ eal_opts += "-w %s,scalar_enable=1 "%(self.dut.get_port_pci(self.dut_ports[port]))
+
+
+ self.pmdout.start_testpmd("1S/2C/1T", "--portmask=%s" % port_mask, eal_param = eal_opts, socket=self.ports_socket)
+ self.dut.send_expect("start", "testpmd> ")
+ for size in self.frame_sizes:
+ self.send_packet(size, scalar_test=True)
+
+ self.dut.send_expect("stop", "testpmd> ")
+ self.dut.send_expect("quit", "# ", 30)
+ sleep(5)
+
def stop_and_get_l4csum_errors(self):
"""
Stop forwarding and get Bad-l4csum number from stop statistic
@@ -406,7 +429,7 @@ class TestPmd(TestCase):
stats = self.pmdout.get_pmd_stats(portid)
return stats
- def send_packet(self, frame_size, checksum_test=False):
+ def send_packet(self, frame_size, checksum_test=False, scalar_test=False):
"""
Send 1 packet to portid
"""
@@ -428,10 +451,14 @@ class TestPmd(TestCase):
if checksum_test:
checksum = 'chksum=0x1'
+ if scalar_test:
+ pkt_count = 1
+ else:
+ pkt_count = 4
self.tester.scapy_foreground()
self.tester.scapy_append('nutmac="%s"' % mac)
- self.tester.scapy_append('sendp([Ether(dst=nutmac, src="52:00:00:00:00:00")/IP(len=%s)/UDP(%s)/Raw(load="\x50"*%s)], iface="%s", count=4)' % (
- load_size, checksum, padding, interface))
+ self.tester.scapy_append('sendp([Ether(dst=nutmac, src="52:00:00:00:00:00")/IP(len=%s)/UDP(%s)/Raw(load="\x50"*%s)], iface="%s", count=%s)' % (
+ load_size, checksum, padding, interface, pkt_count))
out = self.tester.scapy_execute()
time.sleep(.5)
@@ -452,11 +479,11 @@ class TestPmd(TestCase):
self.verify(self.pmdout.check_tx_bytes(p0tx_pkts, p1rx_pkts),
"packet pass assert error, %d RX packets, %d TX packets" % (p1rx_pkts, p0tx_pkts))
- self.verify(p1rx_bytes == (frame_size - 4)*4,
- "packet pass assert error, expected %d RX bytes, actual %d" % ((frame_size - 4)*4, p1rx_bytes))
+ self.verify(p1rx_bytes == (frame_size - 4)*pkt_count,
+ "packet pass assert error, expected %d RX bytes, actual %d" % ((frame_size - 4)*pkt_count, p1rx_bytes))
- self.verify(self.pmdout.check_tx_bytes(p0tx_bytes, (frame_size - 4)*4),
- "packet pass assert error, expected %d TX bytes, actual %d" % ((frame_size - 4)*4, p0tx_bytes))
+ self.verify(self.pmdout.check_tx_bytes(p0tx_bytes, (frame_size - 4)*pkt_count),
+ "packet pass assert error, expected %d TX bytes, actual %d" % ((frame_size - 4)*pkt_count, p0tx_bytes))
return out
--
1.7.9.5
next reply other threads:[~2019-08-27 6:48 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-08-27 6:48 pvukkisala [this message]
2019-09-04 5:16 ` Tu, Lijuan
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=1566888508-5477-1-git-send-email-pvukkisala@marvell.com \
--to=pvukkisala@marvell.com \
--cc=avijay@marvell.com \
--cc=dts@dpdk.org \
--cc=fmasood@marvell.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).