From: Jiale Song <songx.jiale@intel.com>
To: dts@dpdk.org
Cc: Jiale Song <songx.jiale@intel.com>
Subject: [dts] [PATCH V1] tests/multiprocess_iavf: synchronize case and testplan
Date: Fri, 24 Jun 2022 23:47:14 +0800 [thread overview]
Message-ID: <20220624154714.3805-1-songx.jiale@intel.com> (raw)
1.testplan tests iavf multiprocesses, while script tests PF multiprocesses. testplan is not
synchronized with the script. modify the script to synchronize testplan.
2.no perf case in testplan, delete perf case.
Signed-off-by: Jiale Song <songx.jiale@intel.com>
---
tests/TestSuite_multiprocess_iavf.py | 529 ++++++++-------------------
1 file changed, 144 insertions(+), 385 deletions(-)
diff --git a/tests/TestSuite_multiprocess_iavf.py b/tests/TestSuite_multiprocess_iavf.py
index 2e301367..bb8e0c98 100644
--- a/tests/TestSuite_multiprocess_iavf.py
+++ b/tests/TestSuite_multiprocess_iavf.py
@@ -1,6 +1,6 @@
# BSD LICENSE
#
-# Copyright(c) 2010-2014 Intel Corporation. All rights reserved.
+# Copyright(c) 2022 Intel Corporation. All rights reserved.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
@@ -56,7 +56,7 @@ from .rte_flow_common import RssProcessing as rssprocess
executions = []
-class TestMultiprocess(TestCase):
+class TestMultiprocessIavf(TestCase):
support_nic = ["ICE_100G-E810C_QSFP", "ICE_25G-E810C_SFP", "ICE_25G-E810_XXV_SFP"]
@@ -90,11 +90,16 @@ class TestMultiprocess(TestCase):
executions.append({"nprocs": 4, "cores": "1S/4C/1T", "pps": 0})
executions.append({"nprocs": 8, "cores": "1S/4C/2T", "pps": 0})
- self.eal_param = ""
- for i in self.dut_ports:
- self.eal_param += " -a %s" % self.dut.ports_info[i]["pci"]
-
- self.eal_para = self.dut.create_eal_parameters(cores="1S/2C/1T")
+ self.dport_info0 = self.dut.ports_info[self.dut_ports[0]]
+ self.dport_ifaces = self.dport_info0["intf"]
+ self.create_vfs()
+ self.port_pci_list = []
+ for vf_port in self.sriov_vfs_port:
+ self.port_pci_list.append(vf_port.pci)
+
+ self.eal_para = self.dut.create_eal_parameters(
+ cores="1S/2C/1T", ports=self.port_pci_list
+ )
# start new session to run secondary
self.session_secondary = self.dut.new_session()
@@ -106,8 +111,7 @@ class TestMultiprocess(TestCase):
self.output_path = os.sep.join([cur_path, self.logger.log_path])
# create an instance to set stream field setting
self.pktgen_helper = PacketGeneratorHelper()
- self.dport_info0 = self.dut.ports_info[self.dut_ports[0]]
- self.pci0 = self.dport_info0["pci"]
+
self.tester_ifaces = [
self.tester.get_interface(self.dut.ports_map[port])
for port in self.dut_ports
@@ -122,6 +126,29 @@ class TestMultiprocess(TestCase):
"""
pass
+ def create_vfs(self):
+ self.dut.bind_interfaces_linux(self.kdriver)
+ self.dut.generate_sriov_vfs_by_port(self.dut_ports[0], 2)
+ self.sriov_vfs_port = self.dut.ports_info[self.dut_ports[0]]["vfs_port"]
+ try:
+ for port in self.sriov_vfs_port:
+ port.bind_driver(self.drivername)
+ self.dut.send_expect("ifconfig {} up".format(self.dport_ifaces), "# ")
+ self.dut.send_expect(
+ "ip link set {} vf 0 mac {}".format(
+ self.dport_ifaces, "00:11:22:33:44:55"
+ ),
+ "# ",
+ )
+ except Exception as e:
+ self.destroy_iavf()
+ raise Exception(e)
+
+ def destroy_iavf(self):
+ self.dut.destroy_sriov_vfs_by_port(self.dut_ports[0])
+ for port in self.sriov_vfs_port:
+ port.bind_driver(self.drivername)
+
def launch_multi_testpmd(self, proc_type, queue_num, process_num, **kwargs):
self.session_list = [
self.dut.new_session("process_{}".format(i)) for i in range(process_num)
@@ -140,7 +167,7 @@ class TestMultiprocess(TestCase):
if i != 0 and proc_type_list:
proc_type = proc_type_list[1]
eal_param = "--proc-type={} -a {} --log-level=ice,7".format(
- proc_type, self.pci0
+ proc_type, self.sriov_vfs_port[0].pci
)
param = "--rxq={0} --txq={0} --num-procs={1} --proc-id={2}".format(
queue_num, process_num, i
@@ -962,11 +989,14 @@ class TestMultiprocess(TestCase):
session_list = [
self.dut.new_session("process_{}".format(i)) for i in range(proc_num)
]
+ port_param = ""
+ for port_pci in self.port_pci_list:
+ port_param += " -a {}".format(port_pci)
for i in range(proc_num):
session_list[i].send_expect(
self.app_symmetric_mp
+ " -l {} -n 4 --proc-type=auto {} -- -p {} --num-procs={} --proc-id={}".format(
- i + 1, self.eal_param, portMask, proc_num, i
+ i + 1, port_param, portMask, proc_num, i
),
"Finished Process Init",
)
@@ -1098,7 +1128,9 @@ class TestMultiprocess(TestCase):
pmd_2 = PmdOutput(self.dut, self.dut.new_session("process_2"))
self.dut.init_reserved_core()
cores = self.dut.get_reserved_core("2C", socket=1)
- eal_param = "--proc-type={} -a {} --log-level=ice,7".format("auto", self.pci0)
+ eal_param = "--proc-type={} -a {} --log-level=ice,7".format(
+ "auto", self.sriov_vfs_port[0].pci
+ )
param = "--rxq={0} --txq={0} --num-procs={1} --proc-id={2}".format(
queue_num, process_num, 2
)
@@ -1188,25 +1220,25 @@ class TestMultiprocess(TestCase):
}
mac_ipv4_pay_queue_index = {
"sub_casename": "mac_ipv4_pay_queue_index",
- "rule": "flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / ipv4 src is 192.168.0.20 dst is 192.168.0.21 proto is 255 ttl is 2 tos is 4 / end actions queue index 62 / mark id 4 / end",
+ "rule": "flow create 0 ingress pattern eth / ipv4 src is 192.168.0.20 dst is 192.168.0.21 proto is 255 ttl is 2 tos is 4 / end actions queue index 6 / mark id 4 / end",
"packet": MAC_IPV4_PAY,
- "check_param": {"port_id": 0, "queue": 62, "mark_id": 4},
+ "check_param": {"port_id": 0, "queue": 6, "mark_id": 4},
}
mac_ipv4_pay_drop = {
"sub_casename": "mac_ipv4_pay_drop",
- "rule": "flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / ipv4 src is 192.168.0.20 dst is 192.168.0.21 proto is 255 ttl is 2 tos is 4 / end actions drop / mark / end",
+ "rule": "flow create 0 ingress pattern eth / ipv4 src is 192.168.0.20 dst is 192.168.0.21 proto is 255 ttl is 2 tos is 4 / end actions drop / mark / end",
"packet": MAC_IPV4_PAY,
"check_param": {"port_id": 0, "drop": True},
}
mac_ipv4_pay_rss_queues = {
"sub_casename": "mac_ipv4_pay_rss_queues",
- "rule": "flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / ipv4 src is 192.168.0.20 dst is 192.168.0.21 proto is 255 ttl is 2 tos is 4 / end actions rss queues 31 32 end / mark / end",
+ "rule": "flow create 0 ingress pattern eth / ipv4 src is 192.168.0.20 dst is 192.168.0.21 proto is 255 ttl is 2 tos is 4 / end actions rss queues 10 11 end / mark / end",
"packet": MAC_IPV4_PAY,
- "check_param": {"port_id": 0, "queue": [31, 32]},
+ "check_param": {"port_id": 0, "queue": [10, 11]},
}
mac_ipv4_pay_mark_rss = {
"sub_casename": "mac_ipv4_pay_mark_rss",
- "rule": "flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / ipv4 src is 192.168.0.20 dst is 192.168.0.21 proto is 255 ttl is 2 tos is 4 / end actions mark / rss / end",
+ "rule": "flow create 0 ingress pattern eth / ipv4 src is 192.168.0.20 dst is 192.168.0.21 proto is 255 ttl is 2 tos is 4 / end actions mark / rss / end",
"packet": MAC_IPV4_PAY,
"check_param": {"port_id": 0, "mark_id": 0, "rss": True},
}
@@ -1228,13 +1260,9 @@ class TestMultiprocess(TestCase):
}
mac_ipv4_tcp_toeplitz_basic_pkt = {
"ipv4-tcp": [
- 'Ether(src="00:11:22:33:44:55", dst="68:05:CA:BB:26:E0")/IP(dst="192.168.0.1", src="192.168.0.2")/TCP(sport=22,dport=23)/("X"*480)',
+ 'Ether(src="68:05:CA:BB:26:E0", dst="00:11:22:33:44:55")/IP(dst="192.168.0.1", src="192.168.0.2")/TCP(sport=22,dport=23)/("X"*480)',
],
}
- mac_ipv4_tcp_toeplitz_non_basic_pkt = [
- 'Ether(src="00:11:22:33:44:55", dst="68:05:CA:BB:26:E0")/IP(dst="192.168.0.1", src="192.168.0.2")/UDP(sport=22,dport=23)/("X"*480)',
- 'Ether(src="00:11:22:33:44:55", dst="68:05:CA:BB:26:E0")/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2929",dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/TCP(sport=22,dport=23)/Raw("x"*80)',
- ]
mac_ipv4_tcp_l2_src = {
"sub_casename": "mac_ipv4_tcp_l2_src",
"port_id": 0,
@@ -1245,22 +1273,14 @@ class TestMultiprocess(TestCase):
"action": "save_hash",
},
{
- "send_packet": 'Ether(src="00:11:22:33:44:53", dst="68:05:CA:BB:26:E0")/IP(dst="192.168.0.1", src="192.168.0.2")/TCP(sport=22,dport=23)/("X"*480)',
+ "send_packet": 'Ether(src="68:05:CA:BB:26:E1", dst="00:11:22:33:44:55")/IP(dst="192.168.0.1", src="192.168.0.2")/TCP(sport=22,dport=23)/("X"*480)',
"action": "check_hash_different",
},
{
- "send_packet": 'Ether(src="00:11:22:33:44:55", dst="68:05:CA:BB:27:E0")/IP(dst="192.168.0.3", src="192.168.0.5")/TCP(sport=25,dport=99)/("X"*480)',
+ "send_packet": 'Ether(src="68:05:CA:BB:26:E0", dst="00:11:22:33:44:55")/IP(dst="192.168.0.3", src="192.168.0.5")/TCP(sport=25,dport=99)/("X"*480)',
"action": "check_hash_same",
},
],
- "post-test": [
- {
- "send_packet": [
- mac_ipv4_tcp_toeplitz_basic_pkt["ipv4-tcp"][0],
- ],
- "action": "check_no_hash",
- },
- ],
}
mac_ipv4_tcp_l2_dst = {
"sub_casename": "mac_ipv4_tcp_l2_dst",
@@ -1272,25 +1292,9 @@ class TestMultiprocess(TestCase):
"action": "save_hash",
},
{
- "send_packet": 'Ether(src="00:11:22:33:44:55", dst="68:05:CA:BB:27:E0")/IP(dst="192.168.0.1", src="192.168.0.2")/TCP(sport=22,dport=23)/("X"*480)',
- "action": "check_hash_different",
- },
- {
- "send_packet": 'Ether(src="00:11:22:33:44:53", dst="68:05:CA:BB:26:E0")/IP(dst="192.168.0.3", src="192.168.0.5")/TCP(sport=25,dport=99)/("X"*480)',
+ "send_packet": 'Ether(src="68:05:CA:BB:26:E1", dst="00:11:22:33:44:55")/IP(dst="192.168.0.3", src="192.168.0.5")/TCP(sport=25,dport=99)/("X"*480)',
"action": "check_hash_same",
},
- {
- "send_packet": mac_ipv4_tcp_toeplitz_non_basic_pkt,
- "action": "check_no_hash",
- },
- ],
- "post-test": [
- {
- "send_packet": [
- mac_ipv4_tcp_toeplitz_basic_pkt["ipv4-tcp"][0],
- ],
- "action": "check_no_hash",
- },
],
}
mac_ipv4_tcp_l2src_l2dst = {
@@ -1303,33 +1307,9 @@ class TestMultiprocess(TestCase):
"action": "save_hash",
},
{
- "send_packet": 'Ether(src="00:11:22:33:44:53", dst="68:05:CA:BB:26:E0")/IP(dst="192.168.0.1", src="192.168.0.2")/TCP(sport=22,dport=23)/("X"*480)',
- "action": "check_hash_different",
- },
- {
- "send_packet": 'Ether(src="00:11:22:33:44:55", dst="68:05:CA:BB:27:E0")/IP(dst="192.168.0.1", src="192.168.0.2")/TCP(sport=22,dport=23)/("X"*480)',
+ "send_packet": 'Ether(src="68:05:CA:BB:26:E1", dst="00:11:22:33:44:55")/IP(dst="192.168.0.1", src="192.168.0.2")/TCP(sport=22,dport=23)/("X"*480)',
"action": "check_hash_different",
},
- {
- "send_packet": 'Ether(src="00:11:22:33:44:53", dst="68:05:CA:BB:27:E0")/IP(dst="192.168.0.1", src="192.168.0.2")/TCP(sport=22,dport=23)/("X"*480)',
- "action": "check_hash_different",
- },
- {
- "send_packet": 'Ether(src="00:11:22:33:44:55", dst="68:05:CA:BB:26:E0")/IP(dst="192.168.0.3", src="192.168.0.5")/TCP(sport=25,dport=99)/("X"*480)',
- "action": "check_hash_same",
- },
- {
- "send_packet": mac_ipv4_tcp_toeplitz_non_basic_pkt,
- "action": "check_no_hash",
- },
- ],
- "post-test": [
- {
- "send_packet": [
- mac_ipv4_tcp_toeplitz_basic_pkt["ipv4-tcp"][0],
- ],
- "action": "check_no_hash",
- },
],
}
mac_ipv4_tcp_l3_src = {
@@ -1342,20 +1322,20 @@ class TestMultiprocess(TestCase):
"action": "save_hash",
},
{
- "send_packet": 'Ether(src="00:11:22:33:44:55", dst="68:05:CA:BB:26:E0")/IP(dst="192.168.0.1", src="192.168.1.2")/TCP(sport=22,dport=23)/("X"*480)',
+ "send_packet": 'Ether(src="68:05:CA:BB:26:E0", dst="00:11:22:33:44:55")/IP(dst="192.168.0.1", src="192.168.1.2")/TCP(sport=22,dport=23)/("X"*480)',
"action": "check_hash_different",
},
{
- "send_packet": 'Ether(src="00:11:22:33:44:53", dst="68:05:CA:BB:27:E0")/IP(dst="192.168.1.1", src="192.168.0.2")/TCP(sport=32,dport=33)/("X"*480)',
+ "send_packet": 'Ether(src="68:05:CA:BB:26:E0", dst="00:11:22:33:44:55")/IP(dst="192.168.0.1", src="192.168.0.2")/TCP(sport=32,dport=23)/("X"*480)',
+ "action": "check_hash_same",
+ },
+ {
+ "send_packet": 'Ether(src="68:05:CA:BB:26:E0", dst="00:11:22:33:44:55")/IP(dst="192.168.0.1", src="192.168.0.2")/TCP(sport=22,dport=33)/("X"*480)',
"action": "check_hash_same",
},
- ],
- "post-test": [
{
- "send_packet": [
- mac_ipv4_tcp_toeplitz_basic_pkt["ipv4-tcp"][0],
- ],
- "action": "check_no_hash",
+ "send_packet": 'Ether(src="68:05:CA:BB:26:E0", dst="00:11:22:33:44:55")/IP(dst="192.168.0.1", src="192.168.0.2")/TCP(sport=32,dport=33)/("X"*480)',
+ "action": "check_hash_same",
},
],
}
@@ -1369,20 +1349,24 @@ class TestMultiprocess(TestCase):
"action": "save_hash",
},
{
- "send_packet": 'Ether(src="00:11:22:33:44:55", dst="68:05:CA:BB:26:E0")/IP(dst="192.168.1.1", src="192.168.0.2")/TCP(sport=22,dport=23)/("X"*480)',
+ "send_packet": 'Ether(src="00:11:22:33:44:55", dst="00:11:22:33:44:55")/IP(dst="192.168.1.1", src="192.168.0.2")/TCP(sport=22,dport=23)/("X"*480)',
"action": "check_hash_different",
},
{
- "send_packet": 'Ether(src="00:11:22:33:44:53", dst="68:05:CA:BB:27:E0")/IP(dst="192.168.0.1", src="192.168.1.2")/TCP(sport=32,dport=33)/("X"*480)',
+ "send_packet": 'Ether(src="68:05:CA:BB:26:E0", dst="00:11:22:33:44:55")/IP(dst="192.168.0.1", src="192.168.1.2")/TCP(sport=32,dport=33)/("X"*480)',
"action": "check_hash_same",
},
- ],
- "post-test": [
{
- "send_packet": [
- mac_ipv4_tcp_toeplitz_basic_pkt["ipv4-tcp"][0],
- ],
- "action": "check_no_hash",
+ "send_packet": 'Ether(src="68:05:CA:BB:26:E0", dst="00:11:22:33:44:55")/IP(dst="192.168.0.1", src="192.168.0.2")/TCP(sport=32,dport=23)/("X"*480)',
+ "action": "check_hash_same",
+ },
+ {
+ "send_packet": 'Ether(src="68:05:CA:BB:26:E0", dst="00:11:22:33:44:55")/IP(dst="192.168.0.1", src="192.168.0.2")/TCP(sport=22,dport=33)/("X"*480)',
+ "action": "check_hash_same",
+ },
+ {
+ "send_packet": 'Ether(src="68:05:CA:BB:26:E0", dst="00:11:22:33:44:55")/IP(dst="192.168.0.1", src="192.168.0.2")/TCP(sport=32,dport=33)/("X"*480)',
+ "action": "check_hash_same",
},
],
}
@@ -1396,24 +1380,28 @@ class TestMultiprocess(TestCase):
"action": "save_hash",
},
{
- "send_packet": 'Ether(src="00:11:22:33:44:55", dst="68:05:CA:BB:26:E0")/IP(dst="192.168.0.1", src="192.168.1.2")/TCP(sport=22,dport=23)/("X"*480)',
+ "send_packet": 'Ether(src="68:05:CA:BB:26:E0", dst="00:11:22:33:44:55")/IP(dst="192.168.0.1", src="192.168.1.2")/TCP(sport=22,dport=23)/("X"*480)',
+ "action": "check_hash_different",
+ },
+ {
+ "send_packet": 'Ether(src="68:05:CA:BB:26:E0", dst="00:11:22:33:44:55")/IP(dst="192.168.0.1", src="192.168.0.2")/TCP(sport=32,dport=23)/("X"*480)',
"action": "check_hash_different",
},
{
- "send_packet": 'Ether(src="00:11:22:33:44:55", dst="68:05:CA:BB:26:E0")/IP(dst="192.168.0.1", src="192.168.0.2")/TCP(sport=32,dport=23)/("X"*480)',
+ "send_packet": 'Ether(src="68:05:CA:BB:26:E0", dst="00:11:22:33:44:55")/IP(dst="192.168.1.1", src="192.168.0.2")/TCP(sport=32,dport=23)/("X"*480)',
"action": "check_hash_different",
},
{
- "send_packet": 'Ether(src="00:11:22:33:44:53", dst="68:05:CA:BB:27:E0")/IP(dst="192.168.1.1", src="192.168.0.2")/TCP(sport=22,dport=33)/("X"*480)',
+ "send_packet": 'Ether(src="68:05:CA:BB:26:E0", dst="00:11:22:33:44:55")/IP(dst="192.168.1.1", src="192.168.0.2")/TCP(sport=22,dport=23)/("X"*480)',
+ "action": "check_hash_same",
+ },
+ {
+ "send_packet": 'Ether(src="68:05:CA:BB:26:E0", dst="00:11:22:33:44:55")/IP(dst="192.168.0.1", src="192.168.0.2")/TCP(sport=22,dport=33)/("X"*480)',
"action": "check_hash_same",
},
- ],
- "post-test": [
{
- "send_packet": [
- mac_ipv4_tcp_toeplitz_basic_pkt["ipv4-tcp"][0],
- ],
- "action": "check_no_hash",
+ "send_packet": 'Ether(src="68:05:CA:BB:26:E0", dst="00:11:22:33:44:55")/IP(dst="192.168.1.1", src="192.168.0.2")/TCP(sport=22,dport=33)/("X"*480)',
+ "action": "check_hash_same",
},
],
}
@@ -1427,24 +1415,28 @@ class TestMultiprocess(TestCase):
"action": "save_hash",
},
{
- "send_packet": 'Ether(src="00:11:22:33:44:55", dst="68:05:CA:BB:26:E0")/IP(dst="192.168.0.1", src="192.168.1.2")/TCP(sport=22,dport=23)/("X"*480)',
+ "send_packet": 'Ether(src="68:05:CA:BB:26:E0", dst="00:11:22:33:44:55")/IP(dst="192.168.0.1", src="192.168.1.2")/TCP(sport=22,dport=23)/("X"*480)',
"action": "check_hash_different",
},
{
- "send_packet": 'Ether(src="00:11:22:33:44:55", dst="68:05:CA:BB:26:E0")/IP(dst="192.168.0.1", src="192.168.0.2")/TCP(sport=22,dport=33)/("X"*480)',
+ "send_packet": 'Ether(src="68:05:CA:BB:26:E0", dst="00:11:22:33:44:55")/IP(dst="192.168.0.1", src="192.168.0.2")/TCP(sport=22,dport=33)/("X"*480)',
"action": "check_hash_different",
},
{
- "send_packet": 'Ether(src="00:11:22:33:44:53", dst="68:05:CA:BB:27:E0")/IP(dst="192.168.1.1", src="192.168.0.2")/TCP(sport=32,dport=23)/("X"*480)',
+ "send_packet": 'Ether(src="68:05:CA:BB:26:E0", dst="00:11:22:33:44:55")/IP(dst="192.168.0.1", src="192.168.1.2")/TCP(sport=22,dport=33)/("X"*480)',
+ "action": "check_hash_different",
+ },
+ {
+ "send_packet": 'Ether(src="68:05:CA:BB:26:E0", dst="00:11:22:33:44:55")/IP(dst="192.168.1.1", src="192.168.0.2")/TCP(sport=22,dport=23)/("X"*480)',
"action": "check_hash_same",
},
- ],
- "post-test": [
{
- "send_packet": [
- mac_ipv4_tcp_toeplitz_basic_pkt["ipv4-tcp"][0],
- ],
- "action": "check_no_hash",
+ "send_packet": 'Ether(src="68:05:CA:BB:26:E0", dst="00:11:22:33:44:55")/IP(dst="192.168.0.1", src="192.168.0.2")/TCP(sport=32,dport=23)/("X"*480)',
+ "action": "check_hash_same",
+ },
+ {
+ "send_packet": 'Ether(src="68:05:CA:BB:26:E0", dst="00:11:22:33:44:55")/IP(dst="192.168.1.1", src="192.168.0.2")/TCP(sport=32,dport=23)/("X"*480)',
+ "action": "check_hash_same",
},
],
}
@@ -1458,24 +1450,28 @@ class TestMultiprocess(TestCase):
"action": "save_hash",
},
{
- "send_packet": 'Ether(src="00:11:22:33:44:55", dst="68:05:CA:BB:26:E0")/IP(dst="192.168.1.1", src="192.168.0.2")/TCP(sport=22,dport=23)/("X"*480)',
+ "send_packet": 'Ether(src="00:11:22:33:44:55", dst="00:11:22:33:44:55")/IP(dst="192.168.1.1", src="192.168.0.2")/TCP(sport=22,dport=23)/("X"*480)',
"action": "check_hash_different",
},
{
- "send_packet": 'Ether(src="00:11:22:33:44:55", dst="68:05:CA:BB:26:E0")/IP(dst="192.168.0.1", src="192.168.0.2")/TCP(sport=32,dport=23)/("X"*480)',
+ "send_packet": 'Ether(src="00:11:22:33:44:55", dst="00:11:22:33:44:55")/IP(dst="192.168.0.1", src="192.168.0.2")/TCP(sport=32,dport=23)/("X"*480)',
"action": "check_hash_different",
},
{
- "send_packet": 'Ether(src="00:11:22:33:44:53", dst="68:05:CA:BB:27:E0")/IP(dst="192.168.0.1", src="192.168.1.2")/TCP(sport=22,dport=33)/("X"*480)',
+ "send_packet": 'Ether(src="00:11:22:33:44:55", dst="00:11:22:33:44:55")/IP(dst="192.168.1.1", src="192.168.0.2")/TCP(sport=32,dport=23)/("X"*480)',
+ "action": "check_hash_different",
+ },
+ {
+ "send_packet": 'Ether(src="68:05:CA:BB:26:E0", dst="00:11:22:33:44:55")/IP(dst="192.168.0.1", src="192.168.1.2")/TCP(sport=22,dport=23)/("X"*480)',
"action": "check_hash_same",
},
- ],
- "post-test": [
{
- "send_packet": [
- mac_ipv4_tcp_toeplitz_basic_pkt["ipv4-tcp"][0],
- ],
- "action": "check_no_hash",
+ "send_packet": 'Ether(src="68:05:CA:BB:26:E0", dst="00:11:22:33:44:55")/IP(dst="192.168.0.1", src="192.168.0.2")/TCP(sport=22,dport=33)/("X"*480)',
+ "action": "check_hash_same",
+ },
+ {
+ "send_packet": 'Ether(src="68:05:CA:BB:26:E0", dst="00:11:22:33:44:55")/IP(dst="192.168.0.1", src="192.168.1.2")/TCP(sport=22,dport=33)/("X"*480)',
+ "action": "check_hash_same",
},
],
}
@@ -1489,24 +1485,28 @@ class TestMultiprocess(TestCase):
"action": "save_hash",
},
{
- "send_packet": 'Ether(src="00:11:22:33:44:55", dst="68:05:CA:BB:26:E0")/IP(dst="192.168.1.1", src="192.168.0.2")/TCP(sport=22,dport=23)/("X"*480)',
+ "send_packet": 'Ether(src="68:05:CA:BB:26:E0", dst="00:11:22:33:44:55")/IP(dst="192.168.1.1", src="192.168.0.2")/TCP(sport=22,dport=23)/("X"*480)',
+ "action": "check_hash_different",
+ },
+ {
+ "send_packet": 'Ether(src="68:05:CA:BB:26:E0", dst="00:11:22:33:44:55")/IP(dst="192.168.0.1", src="192.168.0.2")/TCP(sport=22,dport=33)/("X"*480)',
"action": "check_hash_different",
},
{
- "send_packet": 'Ether(src="00:11:22:33:44:55", dst="68:05:CA:BB:26:E0")/IP(dst="192.168.0.1", src="192.168.0.2")/TCP(sport=22,dport=33)/("X"*480)',
+ "send_packet": 'Ether(src="68:05:CA:BB:26:E0", dst="00:11:22:33:44:55")/IP(dst="192.168.1.1", src="192.168.0.2")/TCP(sport=22,dport=33)/("X"*480)',
"action": "check_hash_different",
},
{
- "send_packet": 'Ether(src="00:11:22:33:44:53", dst="68:05:CA:BB:27:E0")/IP(dst="192.168.0.1", src="192.168.1.2")/TCP(sport=32,dport=23)/("X"*480)',
+ "send_packet": 'Ether(src="68:05:CA:BB:26:E0", dst="00:11:22:33:44:55")/IP(dst="192.168.0.1", src="192.168.1.2")/TCP(sport=22,dport=23)/("X"*480)',
+ "action": "check_hash_same",
+ },
+ {
+ "send_packet": 'Ether(src="68:05:CA:BB:26:E0", dst="00:11:22:33:44:55")/IP(dst="192.168.0.1", src="192.168.0.2")/TCP(sport=32,dport=23)/("X"*480)',
"action": "check_hash_same",
},
- ],
- "post-test": [
{
- "send_packet": [
- mac_ipv4_tcp_toeplitz_basic_pkt["ipv4-tcp"][0],
- ],
- "action": "check_no_hash",
+ "send_packet": 'Ether(src="68:05:CA:BB:26:E0", dst="00:11:22:33:44:55")/IP(dst="192.168.0.1", src="192.168.1.2")/TCP(sport=32,dport=23)/("X"*480)',
+ "action": "check_hash_same",
},
],
}
@@ -1520,22 +1520,14 @@ class TestMultiprocess(TestCase):
"action": "save_hash",
},
{
- "send_packet": 'Ether(src="00:11:22:33:44:55", dst="68:05:CA:BB:26:E0")/IP(dst="192.168.0.1", src="192.168.0.2")/TCP(sport=32,dport=23)/("X"*480)',
+ "send_packet": 'Ether(src="68:05:CA:BB:26:E0", dst="00:11:22:33:44:55")/IP(dst="192.168.0.1", src="192.168.0.2")/TCP(sport=32,dport=23)/("X"*480)',
"action": "check_hash_different",
},
{
- "send_packet": 'Ether(src="00:11:22:33:44:53", dst="68:05:CA:BB:27:E0")/IP(dst="192.168.1.1", src="192.168.1.2")/TCP(sport=22,dport=33)/("X"*480)',
+ "send_packet": 'Ether(src="68:05:CA:BB:26:E0", dst="00:11:22:33:44:55")/IP(dst="192.168.1.1", src="192.168.1.2")/TCP(sport=22,dport=33)/("X"*480)',
"action": "check_hash_same",
},
],
- "post-test": [
- {
- "send_packet": [
- mac_ipv4_tcp_toeplitz_basic_pkt["ipv4-tcp"][0],
- ],
- "action": "check_no_hash",
- },
- ],
}
mac_ipv4_tcp_l4_dst = {
"sub_casename": "mac_ipv4_tcp_l4_dst",
@@ -1547,22 +1539,14 @@ class TestMultiprocess(TestCase):
"action": "save_hash",
},
{
- "send_packet": 'Ether(src="00:11:22:33:44:55", dst="68:05:CA:BB:26:E0")/IP(dst="192.168.0.1", src="192.168.0.2")/TCP(sport=22,dport=33)/("X"*480)',
+ "send_packet": 'Ether(src="00:11:22:33:44:55", dst="00:11:22:33:44:55")/IP(dst="192.168.0.1", src="192.168.0.2")/TCP(sport=22,dport=33)/("X"*480)',
"action": "check_hash_different",
},
{
- "send_packet": 'Ether(src="00:11:22:33:44:53", dst="68:05:CA:BB:27:E0")/IP(dst="192.168.1.1", src="192.168.1.2")/TCP(sport=32,dport=23)/("X"*480)',
+ "send_packet": 'Ether(src="68:05:CA:BB:26:E0", dst="00:11:22:33:44:55")/IP(dst="192.168.1.1", src="192.168.1.2")/TCP(sport=32,dport=23)/("X"*480)',
"action": "check_hash_same",
},
],
- "post-test": [
- {
- "send_packet": [
- mac_ipv4_tcp_toeplitz_basic_pkt["ipv4-tcp"][0],
- ],
- "action": "check_no_hash",
- },
- ],
}
mac_ipv4_tcp_all = {
"sub_casename": "mac_ipv4_tcp_all",
@@ -1574,34 +1558,26 @@ class TestMultiprocess(TestCase):
"action": "save_hash",
},
{
- "send_packet": 'Ether(src="00:11:22:33:44:55", dst="68:05:CA:BB:26:E0")/IP(dst="192.168.0.1", src="192.168.0.2")/TCP(sport=22,dport=33)/("X"*480)',
+ "send_packet": 'Ether(src="00:11:22:33:44:55", dst="00:11:22:33:44:55")/IP(dst="192.168.0.1", src="192.168.0.2")/TCP(sport=22,dport=33)/("X"*480)',
"action": "check_hash_different",
},
{
- "send_packet": 'Ether(src="00:11:22:33:44:55", dst="68:05:CA:BB:26:E0")/IP(dst="192.168.0.1", src="192.168.0.2")/TCP(sport=32,dport=23)/("X"*480)',
+ "send_packet": 'Ether(src="00:11:22:33:44:55", dst="00:11:22:33:44:55")/IP(dst="192.168.0.1", src="192.168.0.2")/TCP(sport=32,dport=23)/("X"*480)',
"action": "check_hash_different",
},
{
- "send_packet": 'Ether(src="00:11:22:33:44:55", dst="68:05:CA:BB:26:E0")/IP(dst="192.168.1.1", src="192.168.0.2")/TCP(sport=22,dport=23)/("X"*480)',
+ "send_packet": 'Ether(src="00:11:22:33:44:55", dst="00:11:22:33:44:55")/IP(dst="192.168.1.1", src="192.168.0.2")/TCP(sport=22,dport=23)/("X"*480)',
"action": "check_hash_different",
},
{
- "send_packet": 'Ether(src="00:11:22:33:44:55", dst="68:05:CA:BB:26:E0")/IP(dst="192.168.0.1", src="192.168.1.2")/TCP(sport=22,dport=23)/("X"*480)',
+ "send_packet": 'Ether(src="00:11:22:33:44:55", dst="00:11:22:33:44:55")/IP(dst="192.168.0.1", src="192.168.1.2")/TCP(sport=22,dport=23)/("X"*480)',
"action": "check_hash_different",
},
{
- "send_packet": 'Ether(src="00:11:22:33:44:53", dst="68:05:CA:BB:27:E0")/IP(dst="192.168.0.1", src="192.168.0.2")/TCP(sport=22,dport=23)/("X"*480)',
+ "send_packet": 'Ether(src="68:05:CA:BB:26:E0", dst="00:11:22:33:44:55")/IP(dst="192.168.0.1", src="192.168.0.2")/TCP(sport=22,dport=23)/("X"*480)',
"action": "check_hash_same",
},
],
- "post-test": [
- {
- "send_packet": [
- mac_ipv4_tcp_toeplitz_basic_pkt["ipv4-tcp"][0],
- ],
- "action": "check_no_hash",
- },
- ],
}
mac_ipv4_tcp_ipv4 = {
"sub_casename": "mac_ipv4_tcp_ipv4",
@@ -1613,26 +1589,18 @@ class TestMultiprocess(TestCase):
"action": "save_hash",
},
{
- "send_packet": 'Ether(src="00:11:22:33:44:55", dst="68:05:CA:BB:26:E0")/IP(dst="192.168.1.1", src="192.168.0.2")/TCP(sport=22,dport=23)/("X"*480)',
+ "send_packet": 'Ether(src="68:05:CA:BB:26:E0", dst="00:11:22:33:44:55")/IP(dst="192.168.1.1", src="192.168.0.2")/TCP(sport=22,dport=23)/("X"*480)',
"action": "check_hash_different",
},
{
- "send_packet": 'Ether(src="00:11:22:33:44:55", dst="68:05:CA:BB:26:E0")/IP(dst="192.168.0.1", src="192.168.1.2")/TCP(sport=22,dport=23)/("X"*480)',
+ "send_packet": 'Ether(src="68:05:CA:BB:26:E0", dst="00:11:22:33:44:55")/IP(dst="192.168.0.1", src="192.168.1.2")/TCP(sport=22,dport=23)/("X"*480)',
"action": "check_hash_different",
},
{
- "send_packet": 'Ether(src="00:11:22:33:44:53", dst="68:05:CA:BB:27:E0")/IP(dst="192.168.0.1", src="192.168.0.2")/TCP(sport=22,dport=23)/("X"*480)',
+ "send_packet": 'Ether(src="68:05:CA:BB:26:E0", dst="00:11:22:33:44:55")/IP(dst="192.168.0.1", src="192.168.0.2")/TCP(sport=22,dport=23)/("X"*480)',
"action": "check_hash_same",
},
],
- "post-test": [
- {
- "send_packet": [
- mac_ipv4_tcp_toeplitz_basic_pkt["ipv4-tcp"][0],
- ],
- "action": "check_no_hash",
- },
- ],
}
case_list = [
@@ -1655,15 +1623,16 @@ class TestMultiprocess(TestCase):
@check_supported_nic(support_nic)
def test_multiprocess_with_rss_symmetric(self):
pmd_param = {
- "queue_num": 64,
+ "queue_num": 16,
"proc_num": 2,
"proc_type": "auto",
+ "symmetric": True,
}
packets = [
'Ether(dst="00:11:22:33:44:55", src="68:05:CA:BB:26:E0")/IP(dst="192.168.0.1", src="192.168.0.2")/("X"*480)',
'Ether(dst="00:11:22:33:44:55", src="68:05:CA:BB:26:E0")/IP(dst="192.168.0.2", src="192.168.0.1")/("X"*480)',
- 'Ether(dst="00:11:22:33:44:55", src="68:05:CA:BB:26:E0")/IP(dst="192.168.0.1", src="12.168.0.2")/TCP(sport=22,dport=23)/("X"*480)',
- 'Ether(dst="00:11:22:33:44:55", src="68:05:CA:BB:26:E0")/IP(dst="192.168.0.2", src="12.168.0.1")/TCP(sport=22,dport=23)/("X"*480)',
+ 'Ether(dst="00:11:22:33:44:55", src="68:05:CA:BB:26:E0")/IP(dst="192.168.0.1", src="192.168.0.2")/TCP(sport=22,dport=23)/("X"*480)',
+ 'Ether(dst="00:11:22:33:44:55", src="68:05:CA:BB:26:E0")/IP(dst="192.168.0.2", src="192.168.0.1")/TCP(sport=22,dport=23)/("X"*480)',
]
mac_ipv4_symmetric = {
"sub_casename": "mac_ipv4_all",
@@ -1708,216 +1677,6 @@ class TestMultiprocess(TestCase):
}
self.rte_flow(mac_ipv4_symmetric, self.multiprocess_rss_data, **pmd_param)
- def test_perf_multiprocess_performance(self):
- """
- Benchmark Multiprocess performance.
- #"""
- packet_count = 16
- self.dut.send_expect("fg", "# ")
- txPort = self.tester.get_local_port(self.dut_ports[0])
- rxPort = self.tester.get_local_port(self.dut_ports[1])
- mac = self.tester.get_mac(txPort)
- dmac = self.dut.get_mac_address(self.dut_ports[0])
- tgenInput = []
-
- # create mutative src_ip+dst_ip package
- for i in range(packet_count):
- package = (
- r'flows = [Ether(src="%s", dst="%s")/IP(src="192.168.1.%d", dst="192.168.1.%d")/("X"*26)]'
- % (mac, dmac, i + 1, i + 2)
- )
- self.tester.scapy_append(package)
- pcap = os.sep.join([self.output_path, "test_%d.pcap" % i])
- self.tester.scapy_append('wrpcap("%s", flows)' % pcap)
- tgenInput.append([txPort, rxPort, pcap])
- self.tester.scapy_execute()
-
- # run multiple symmetric_mp process
- validExecutions = []
- for execution in executions:
- if len(self.dut.get_core_list(execution["cores"])) == execution["nprocs"]:
- validExecutions.append(execution)
-
- portMask = utils.create_mask(self.dut_ports)
-
- for n in range(len(validExecutions)):
- execution = validExecutions[n]
- # get coreList form execution['cores']
- coreList = self.dut.get_core_list(execution["cores"], socket=self.socket)
- # to run a set of symmetric_mp instances, like test plan
- dutSessionList = []
- for index in range(len(coreList)):
- dut_new_session = self.dut.new_session()
- dutSessionList.append(dut_new_session)
- # add -a option when tester and dut in same server
- dut_new_session.send_expect(
- self.app_symmetric_mp
- + " -c %s --proc-type=auto %s -- -p %s --num-procs=%d --proc-id=%d"
- % (
- utils.create_mask([coreList[index]]),
- self.eal_param,
- portMask,
- execution["nprocs"],
- index,
- ),
- "Finished Process Init",
- )
-
- # clear streams before add new streams
- self.tester.pktgen.clear_streams()
- # run packet generator
- streams = self.pktgen_helper.prepare_stream_from_tginput(
- tgenInput, 100, None, self.tester.pktgen
- )
- _, pps = self.tester.pktgen.measure_throughput(stream_ids=streams)
-
- execution["pps"] = pps
-
- # close all symmetric_mp process
- self.dut.send_expect("killall symmetric_mp", "# ")
- # close all dut sessions
- for dut_session in dutSessionList:
- self.dut.close_session(dut_session)
-
- # get rate and mpps data
- for n in range(len(executions)):
- self.verify(executions[n]["pps"] is not 0, "No traffic detected")
- self.result_table_create(
- [
- "Num-procs",
- "Sockets/Cores/Threads",
- "Num Ports",
- "Frame Size",
- "%-age Line Rate",
- "Packet Rate(mpps)",
- ]
- )
-
- for execution in validExecutions:
- self.result_table_add(
- [
- execution["nprocs"],
- execution["cores"],
- 2,
- 64,
- execution["pps"] / float(100000000 / (8 * 84)),
- execution["pps"] / float(1000000),
- ]
- )
-
- self.result_table_print()
-
- def test_perf_multiprocess_client_serverperformance(self):
- """
- Benchmark Multiprocess client-server performance.
- """
- self.dut.kill_all()
- self.dut.send_expect("fg", "# ")
- txPort = self.tester.get_local_port(self.dut_ports[0])
- rxPort = self.tester.get_local_port(self.dut_ports[1])
- mac = self.tester.get_mac(txPort)
-
- self.tester.scapy_append(
- 'dmac="%s"' % self.dut.get_mac_address(self.dut_ports[0])
- )
- self.tester.scapy_append('smac="%s"' % mac)
- self.tester.scapy_append(
- 'flows = [Ether(src=smac, dst=dmac)/IP(src="192.168.1.1", dst="192.168.1.1")/("X"*26)]'
- )
-
- pcap = os.sep.join([self.output_path, "test.pcap"])
- self.tester.scapy_append('wrpcap("%s", flows)' % pcap)
- self.tester.scapy_execute()
-
- validExecutions = []
- for execution in executions:
- if len(self.dut.get_core_list(execution["cores"])) == execution["nprocs"]:
- validExecutions.append(execution)
-
- for execution in validExecutions:
- coreList = self.dut.get_core_list(execution["cores"], socket=self.socket)
- # get core with socket parameter to specified which core dut used when tester and dut in same server
- coreMask = utils.create_mask(
- self.dut.get_core_list("1S/1C/1T", socket=self.socket)
- )
- portMask = utils.create_mask(self.dut_ports)
- # specified mp_server core and add -a option when tester and dut in same server
- self.dut.send_expect(
- self.app_mp_server
- + " -n %d -c %s %s -- -p %s -n %d"
- % (
- self.dut.get_memory_channels(),
- coreMask,
- self.eal_param,
- portMask,
- execution["nprocs"],
- ),
- "Finished Process Init",
- 20,
- )
- self.dut.send_expect("^Z", "\r\n")
- self.dut.send_expect("bg", "# ")
-
- for n in range(execution["nprocs"]):
- time.sleep(5)
- # use next core as mp_client core, different from mp_server
- coreMask = utils.create_mask([str(int(coreList[n]) + 1)])
- self.dut.send_expect(
- self.app_mp_client
- + " -n %d -c %s --proc-type=secondary %s -- -n %d"
- % (self.dut.get_memory_channels(), coreMask, self.eal_param, n),
- "Finished Process Init",
- )
- self.dut.send_expect("^Z", "\r\n")
- self.dut.send_expect("bg", "# ")
-
- tgenInput = []
- tgenInput.append([txPort, rxPort, pcap])
-
- # clear streams before add new streams
- self.tester.pktgen.clear_streams()
- # run packet generator
- streams = self.pktgen_helper.prepare_stream_from_tginput(
- tgenInput, 100, None, self.tester.pktgen
- )
- _, pps = self.tester.pktgen.measure_throughput(stream_ids=streams)
-
- execution["pps"] = pps
- self.dut.kill_all()
- time.sleep(5)
-
- for n in range(len(executions)):
- self.verify(executions[n]["pps"] is not 0, "No traffic detected")
-
- self.result_table_create(
- [
- "Server threads",
- "Server Cores/Threads",
- "Num-procs",
- "Sockets/Cores/Threads",
- "Num Ports",
- "Frame Size",
- "%-age Line Rate",
- "Packet Rate(mpps)",
- ]
- )
-
- for execution in validExecutions:
- self.result_table_add(
- [
- 1,
- "1S/1C/1T",
- execution["nprocs"],
- execution["cores"],
- 2,
- 64,
- execution["pps"] / float(100000000 / (8 * 84)),
- execution["pps"] / float(1000000),
- ]
- )
-
- self.result_table_print()
-
def set_fields(self):
"""set ip protocol field behavior"""
fields_config = {
@@ -1943,4 +1702,4 @@ class TestMultiprocess(TestCase):
Run after each test suite.
"""
self.dut.kill_all()
- pass
+ self.destroy_iavf()
--
2.17.1
next reply other threads:[~2022-06-24 7:29 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-06-24 15:47 Jiale Song [this message]
2022-06-29 2:10 ` lijuan.tu
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=20220624154714.3805-1-songx.jiale@intel.com \
--to=songx.jiale@intel.com \
--cc=dts@dpdk.org \
/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).