* [dts] [PATCH v1] tests/TestSuite_rss_to_rte_flow:modify create flow rule commands
@ 2020-04-30 8:35 Xu Hailin
2020-04-30 8:45 ` Xu, HailinX
2020-05-06 5:41 ` Tu, Lijuan
0 siblings, 2 replies; 3+ messages in thread
From: Xu Hailin @ 2020-04-30 8:35 UTC (permalink / raw)
To: dts; +Cc: xu,hailin
From: "xu,hailin" <hailinx.xu@intel.com>
i04e driver changed,so create rss flow rule need change.
Signed-off-by: xu,hailin <hailinx.xu@intel.com>
---
| 211 ++++++++++++++++++++++++++++---------
1 file changed, 161 insertions(+), 50 deletions(-)
--git a/tests/TestSuite_rss_to_rte_flow.py b/tests/TestSuite_rss_to_rte_flow.py
index dd7c869..56b2266 100644
--- a/tests/TestSuite_rss_to_rte_flow.py
+++ b/tests/TestSuite_rss_to_rte_flow.py
@@ -109,6 +109,7 @@ class TestRSS_to_Rteflow(TestCase):
self.tester.scapy_append('sendp(%s, iface="%s")' % (pkt, self.tester_itf))
self.tester.scapy_execute()
queue = self.get_queue_number()
+ print('queue=%s' % queue)
self.verify(queue in rss_queue, "the packet doesn't enter the expected RSS queue.")
return queue
@@ -188,21 +189,32 @@ class TestRSS_to_Rteflow(TestCase):
self.dut.send_expect("start", "testpmd> ", 120)
# Disable RSS hash function
- self.dut.send_expect(
+ """self.dut.send_expect(
"flow create 0 ingress pattern end actions rss types none end / end", "created")
if self.nic == 'foxville':
self.dut.send_expect("flow flush 0", "testpmd> ")
self.dut.send_expect(
- "show port 0 rss-hash", "RSS disabled")
- # send the packets and verify the results
+ "show port 0 rss-hash key", "RSS disabled")
+ send the packets and verify the results
self.send_packet("ipv4-other", self.tester_itf)
out = self.dut.send_expect("stop", "testpmd> ", 120)
self.check_packet_queue("0", out)
- self.dut.send_expect("start", "testpmd> ", 120)
+ self.dut.send_expect("start", "testpmd> ", 120)"""
# Enable RSS hash function all
- self.dut.send_expect(
- "flow create 0 ingress pattern end actions rss types all end / end", "created")
+ rule_list = ["ipv4-frag", "ipv4-tcp", "ipv4-udp", "ipv4-sctp", "ipv4-other", "ipv6-frag", "ipv6-tcp", "ipv6-udp"
+ , "ipv6-sctp", "ipv6-other", "l2-payload"]
+ for rule in rule_list:
+ parameter = rule.replace('-', ' / ')
+ if rule == "ipv4-other" or rule == "ipv4-frag":
+ parameter = 'ipv4'
+ elif rule == "ipv6-frag" or rule == "ipv6-other":
+ parameter = 'ipv6'
+ self.dut.send_expect(
+ "flow create 0 ingress pattern end actions rss types end queues 0 1 2 3 end / end", "created")
+ self.dut.send_expect(
+ "flow create 0 ingress pattern eth / %s / end actions rss types %s end queues end / end" % (
+ parameter, rule), "created")
if (self.nic in ["fortville_eagle", "fortville_spirit", "carlsville",
"fortville_spirit_single", "fortpark_TLV","fortpark_BASE-T", "fortville_25g"]):
self.dut.send_expect(
@@ -249,7 +261,9 @@ class TestRSS_to_Rteflow(TestCase):
# enable ipv4-udp rss function
self.dut.send_expect(
- "flow create 0 ingress pattern end actions rss types ipv4-udp end / end", "created")
+ "flow create 0 ingress pattern end actions rss types end queues 0 1 2 3 end / end", "created")
+ self.dut.send_expect(
+ "flow create 0 ingress pattern eth / ipv4 / udp / end actions rss types ipv4-udp end queues end / end", "created")
self.dut.send_expect(
"show port 0 rss-hash", "ipv4-udp udp")
# send the packets and verify the results
@@ -276,11 +290,16 @@ class TestRSS_to_Rteflow(TestCase):
# Create a rss queue rule
if self.nic in ['foxville',"springville"]:
self.dut.send_expect(
- #"flow create 0 ingress pattern end actions rss queues 1 4 7 end / end", "created")
- "flow create 0 ingress pattern end actions rss queues 1 2 3 end / end", "created")
+ "flow create 0 ingress pattern end actions rss types end queues 1 2 3 end / end", "created")
+ self.dut.send_expect(
+ "flow create 0 ingress pattern eth / ipv4 / end actions rss types ipv4-other end queues end / end",
+ "created")
else:
self.dut.send_expect(
- "flow create 0 ingress pattern end actions rss queues 1 4 7 end / end", "created")
+ "flow create 0 ingress pattern end actions rss types end queues 1 4 7 end / end", "created")
+ self.dut.send_expect(
+ "flow create 0 ingress pattern eth / ipv4 / end actions rss types ipv4-other end queues end / end",
+ "created")
# send the packets and verify the results
# ipv4-other and ipv6-other is enabled by default.
@@ -289,8 +308,8 @@ class TestRSS_to_Rteflow(TestCase):
if (self.nic in ["fortville_eagle", "fortville_spirit", "carlsville",
"fortville_spirit_single", "fortpark_TLV","fortpark_BASE-T", "fortville_25g"]):
self.send_and_check(self.pkt4, rss_queue)
- self.send_and_check(self.pkt8, rss_queue)
rss_queue = ["0"]
+ self.send_and_check(self.pkt8, rss_queue)
self.send_and_check(self.pkt1, rss_queue)
self.send_and_check(self.pkt2, rss_queue)
self.send_and_check(self.pkt3, rss_queue)
@@ -310,23 +329,28 @@ class TestRSS_to_Rteflow(TestCase):
self.send_and_check(self.pkt8, rss_queue)
# There can't be more than one RSS queue rule existing.
- self.dut.send_expect(
- "flow create 0 ingress pattern end actions rss queues 3 end / end", "error")
- self.dut.send_expect(
- "flow create 0 ingress pattern end actions rss types ipv4-udp end queues 3 end / end", "error")
+ #self.dut.send_expect(
+ # "flow create 0 ingress pattern end actions rss types end queues 3 end / end", "error")
+ #self.dut.send_expect(
+ # "flow create 0 ingress pattern eth / ipv4 / udp / end actions rss types ipv4-udp end queues end / end", "error")
+
+
# Flush the rules and create a new RSS queue rule.
- self.dut.send_expect("flow flush 0", "testpmd> ")
+ #self.dut.send_expect("flow flush 0", "testpmd> ")
self.dut.send_expect(
- "flow create 0 ingress pattern end actions rss queues 3 end / end", "created")
+ "flow create 0 ingress pattern end actions rss types end queues 3 end / end", "created")
+ self.dut.send_expect(
+ "flow create 0 ingress pattern eth / ipv4 / udp / end actions rss types ipv4-udp end queues end / end",
+ "created")
# Send the packets and verify the results
if (self.nic in ["fortville_eagle", "fortville_spirit","carlsville",
"fortville_spirit_single", "fortpark_TLV","fortpark_BASE-T", "fortville_25g"]):
rss_queue = ["3"]
self.send_and_check(self.pkt4, rss_queue)
- self.send_and_check(self.pkt8, rss_queue)
+ self.send_and_check(self.pkt2, rss_queue)
rss_queue = ["0"]
+ self.send_and_check(self.pkt8, rss_queue)
self.send_and_check(self.pkt1, rss_queue)
- self.send_and_check(self.pkt2, rss_queue)
self.send_and_check(self.pkt3, rss_queue)
self.send_and_check(self.pkt5, rss_queue)
self.send_and_check(self.pkt6, rss_queue)
@@ -345,14 +369,18 @@ class TestRSS_to_Rteflow(TestCase):
# Set a wrong parameter: queue ID is 16
self.dut.send_expect(
- "flow create 0 ingress pattern end actions rss queues 8 end / end", "error")
+ "flow create 0 ingress pattern end actions rss types end queues 8 end / end", "error")
# Set all the queues to the rule
if self.nic in ['foxville', 'springville']:
self.dut.send_expect(
- "flow create 0 ingress pattern end actions rss queues 0 1 2 3 end / end", "created")
+ "flow create 0 ingress pattern end actions rss types end queues 0 1 2 3 end / end", "created")
+ self.dut.send_expect(
+ "flow create 0 ingress pattern eth / ipv4 / end actions rss types ipv4-other end queues end / end", "created")
else:
self.dut.send_expect(
- "flow create 0 ingress pattern end actions rss queues 0 1 2 3 4 5 6 7 end / end", "created")
+ "flow create 0 ingress pattern end actions rss types end queues 0 1 2 3 4 5 6 7 end / end", "created")
+ self.dut.send_expect(
+ "flow create 0 ingress pattern eth / ipv4 / end actions rss types ipv4-other end queues end / end ", "created")
def test_different_types_rss_queue_rule(self):
"""
@@ -367,13 +395,26 @@ class TestRSS_to_Rteflow(TestCase):
# Create a rss queue rule
if self.nic in ['foxville', 'springville']:
- self.dut.send_expect(
- #"flow create 0 ingress pattern end actions rss types udp ipv4-tcp ipv6-sctp ipv4-other end queues 1 4 7 end / end", "created")
- "flow create 0 ingress pattern end actions rss types udp ipv4-tcp ipv6-sctp ipv4-other end queues 1 2 3 end / end", "created")
+ rule_list = ["ipv6-sctp", "ipv6-udp", "ipv4-tcp", "ipv4-udp", "ipv4-other"]
+ for rule in rule_list:
+ parameter = rule.replace('-', ' / ')
+ if rule == "ipv4-other":
+ parameter = 'ipv4'
+ self.dut.send_expect(
+ "flow create 0 ingress pattern end actions rss types end queues 1 2 3 end / end", "created")
+ self.dut.send_expect(
+ "flow create 0 ingress pattern eth / %s / end actions rss types %s end queues end / end" % (
+ parameter, rule), "created")
else:
- self.dut.send_expect(
- "flow create 0 ingress pattern end actions rss types udp ipv4-tcp ipv6-sctp ipv4-other end queues 1 4 7 end / end", "created")
-
+ rule_list = ["ipv6-sctp", "ipv6-udp", "ipv4-tcp", "ipv4-udp", "ipv4-other"]
+ for rule in rule_list:
+ parameter = rule.replace('-', ' / ')
+ if rule == "ipv4-other":
+ parameter = 'ipv4'
+ self.dut.send_expect(
+ "flow create 0 ingress pattern end actions rss types end queues 1 4 7 end / end", "created")
+ self.dut.send_expect(
+ "flow create 0 ingress pattern eth / %s / end actions rss types %s end queues end / end" % (parameter, rule), "created")
# send the packets and verify the results
rss_queue = ["1", "4", "7"]
if (self.nic in ["fortville_eagle", "fortville_spirit", "carlsville",
@@ -408,8 +449,10 @@ class TestRSS_to_Rteflow(TestCase):
self.send_and_check(self.pkt8, rss_queue)
# There can't be more than one RSS queue rule existing.
- self.dut.send_expect(
- "flow create 0 ingress pattern end actions rss types ipv6-other end queues 3 end / end", "error")
+ #self.dut.send_expect(
+ # "flow create 0 ingress pattern end actions rss types end queues 3 end / end", "error")
+ #self.dut.send_expect(
+ # "flow create 0 ingress pattern eth / ipv6 / end actions rss types ipv6-other end queues end / end", "error")
def test_set_key_keylen(self):
"""
@@ -432,8 +475,11 @@ class TestRSS_to_Rteflow(TestCase):
# Create a rss rule
self.dut.send_expect(
- "flow create 0 ingress pattern end actions rss types ipv4-udp end / end", "created")
+ "flow create 0 ingress pattern end actions rss types end queues 0 1 2 3 end / end", "created")
+ self.dut.send_expect(
+ "flow create 0 ingress pattern eth / ipv4 / udp / end actions rss types ipv4-udp end queues end / end", "created")
out1 = self.dut.send_expect("show port 0 rss-hash key", "testpmd> ", 120)
+ print('out1=%s' % out1)
rss_queue = ["0", "1", "2", "3"]
queue1 = self.send_and_check(pkt1, rss_queue)
queue2 = self.send_and_check(pkt2, rss_queue)
@@ -441,19 +487,26 @@ class TestRSS_to_Rteflow(TestCase):
queue4 = self.send_and_check(pkt4, rss_queue)
queue5 = self.send_and_check(pkt5, rss_queue)
list1 = [queue1, queue2, queue3, queue4, queue5]
+ print('list1=%s' % list1)
# Create a rss key rule
self.dut.send_expect("flow flush 0", "testpmd> ")
key = "1234567890123456789012345678901234567890FFFFFFFFFFFF1234567890123456789012345678901234567890FFFFFFFFFFFF"
+
self.dut.send_expect(
- "flow create 0 ingress pattern end actions rss types ipv4-udp end key %s / end" % key, "created")
+ "flow create 0 ingress pattern eth / ipv4 / udp / end actions rss types ipv4-udp end queues end key %s / end" % key,
+ #"flow create 0 ingress pattern eth / ipv4 / udp / end actions rss types ipv4-udp end queues end key %s / end" % key,
+ "created")
+ #self.dut.send_expect("port config 0 rss-hash-key ipv4 %s" % key, 'testpmd>')
out2 = self.dut.send_expect("show port 0 rss-hash key", "testpmd> ", 120)
+ print('out2=%s' % out2)
key_queue1 = self.send_and_check(pkt1, rss_queue)
key_queue2 = self.send_and_check(pkt2, rss_queue)
key_queue3 = self.send_and_check(pkt3, rss_queue)
key_queue4 = self.send_and_check(pkt4, rss_queue)
key_queue5 = self.send_and_check(pkt5, rss_queue)
list2 = [key_queue1, key_queue2, key_queue3, key_queue4, key_queue5]
+ print('list2=%s' % list2)
self.verify((key in out2) and (out1 != out2) and (list1 != list2), "the key setting doesn't take effect.")
@@ -462,14 +515,17 @@ class TestRSS_to_Rteflow(TestCase):
key = "1234567890123456789012345678901234567890FFFFFFFFFFFF1234567890123456789012345678901234567890FFFFFFFFFFFF"
key_len = "50"
self.dut.send_expect(
- "flow create 0 ingress pattern end actions rss types ipv4-udp end key %s key_len %s / end" % (key, key_len), "created")
+ "flow create 0 ingress pattern eth / ipv4 / udp / end actions rss types ipv4-udp end queues end key %s key_len %s / end " % (key, key_len),
+ "created")
out3 = self.dut.send_expect("show port 0 rss-hash key", "testpmd> ", 120)
+ print('out3=%s' % out3)
key_queue1 = self.send_and_check(pkt1, rss_queue)
key_queue2 = self.send_and_check(pkt2, rss_queue)
key_queue3 = self.send_and_check(pkt3, rss_queue)
key_queue4 = self.send_and_check(pkt4, rss_queue)
key_queue5 = self.send_and_check(pkt5, rss_queue)
list3 = [key_queue1, key_queue2, key_queue3, key_queue4, key_queue5]
+ print('list3=%s' % list3)
self.verify((key not in out3) and (out3 != out1 != out2) and (list3 != list1 != list2), "the key setting doesn't take effect.")
@@ -478,17 +534,22 @@ class TestRSS_to_Rteflow(TestCase):
key = "1234567890123456789012345678901234567890FFFFFFFFFFFF1234567890123456789012345678901234567890FFFFFF"
key_len = "52"
self.dut.send_expect(
- "flow create 0 ingress pattern end actions rss types ipv4-udp end key %s key_len %s / end" % (key, key_len), "created")
+ "flow create 0 ingress pattern eth / ipv4 / udp / end actions rss types ipv4-udp end queues end key %s key_len %s / end " % (
+ key, key_len),
+ "created")
out4 = self.dut.send_expect("show port 0 rss-hash key", "testpmd> ", 120)
+ print('out=%s' % out4)
key_queue1 = self.send_and_check(pkt1, rss_queue)
key_queue2 = self.send_and_check(pkt2, rss_queue)
key_queue3 = self.send_and_check(pkt3, rss_queue)
key_queue4 = self.send_and_check(pkt4, rss_queue)
key_queue5 = self.send_and_check(pkt5, rss_queue)
list4 = [key_queue1, key_queue2, key_queue3, key_queue4, key_queue5]
+ print('list4=%s' % list4)
self.verify((key in out4) and (out4 != out1 != out2 != out3) and (list4 != list1 != list2), "the key setting doesn't take effect.")
+
def test_disable_rss_in_commandline(self):
"""
Set RSS queue rule while disable RSS in command-line.
@@ -501,8 +562,19 @@ class TestRSS_to_Rteflow(TestCase):
time.sleep(2)
# Create a rss queue rule
- self.dut.send_expect(
- "flow create 0 ingress pattern end actions rss types all end / end", "created")
+ rule_list = ["ipv4-frag", "ipv4-tcp", "ipv4-udp", "ipv4-sctp", "ipv4-other", "ipv6-frag", "ipv6-tcp", "ipv6-udp"
+ , "ipv6-sctp", "ipv6-other", "l2-payload"]
+ for rule in rule_list:
+ parameter = rule.replace('-', ' / ')
+ if rule == "ipv4-other" or rule == "ipv4-frag":
+ parameter = 'ipv4'
+ elif rule == "ipv6-frag" or rule == "ipv6-other":
+ parameter = 'ipv6'
+ self.dut.send_expect(
+ "flow create 0 ingress pattern end actions rss types end queues 0 1 2 3 end / end", "created")
+ self.dut.send_expect(
+ "flow create 0 ingress pattern eth / %s / end actions rss types %s end queues end / end" % (
+ parameter, rule), "created")
self.send_packet("ipv4-udp", self.tester_itf)
out = self.dut.send_expect("stop", "testpmd> ", 120)
self.check_packet_queue("all", out)
@@ -514,12 +586,34 @@ class TestRSS_to_Rteflow(TestCase):
self.dut.send_expect("start", "testpmd> ", 120)
time.sleep(2)
# Create a rss queue rule
+ rule_list = ["ipv6-tcp", "ipv4-udp", "ipv4-sctp", "ipv6-other", "ipv6-sctp"]
if self.nic in ['foxville', 'springville']:
- self.dut.send_expect(
- "flow create 0 ingress pattern end actions rss types ipv6-tcp ipv4-udp sctp ipv6-other end queues 1 2 3 end / end", "created")
+ #self.dut.send_expect(
+ # "flow create 0 ingress pattern end actions rss types ipv6-tcp ipv4-udp sctp ipv6-other end queues 1 2 3 end / end", "created")
+ for rule in rule_list:
+ parameter = rule.replace('-', ' / ')
+ if rule == "ipv6-other":
+ parameter = 'ipv6'
+ self.dut.send_expect(
+ "flow create 0 ingress pattern end actions rss types end queues 1 2 3 end / end", "created")
+ self.dut.send_expect(
+ "flow create 0 ingress pattern eth / %s / end actions rss types %s end queues end / end" % (
+ parameter, rule), "created")
else:
self.dut.send_expect(
- "flow create 0 ingress pattern end actions rss types ipv6-tcp ipv4-udp sctp ipv6-other end queues 5 6 7 end / end", "created")
+ "flow create 0 ingress pattern end actions rss types end queues 5 6 7 end / end", "created")
+ for rule in rule_list:
+ parameter = rule.replace('-', ' / ')
+ if rule == "ipv6-other":
+ parameter = 'ipv6'
+ self.dut.send_expect(
+ "flow create 0 ingress pattern end actions rss types end queues 5 6 7 end / end", "created")
+ self.dut.send_expect(
+ "flow create 0 ingress pattern eth / %s / end actions rss types %s end queues end / end" % (
+ parameter, rule), "created")
+ #self.dut.send_expect(
+ # "flow create 0 ingress pattern end actions rss types ipv6-tcp ipv4-udp sctp ipv6-other end queues 5 6 7 end / end",
+ # "created")
# send the packets and verify the results
rss_queue = ["5", "6", "7"]
if (self.nic in ["fortville_eagle", "fortville_spirit", "carlsville",
@@ -570,12 +664,21 @@ class TestRSS_to_Rteflow(TestCase):
time.sleep(2)
# Create a rss queue rule
+ rule_list = ["ipv4-udp", "ipv6-udp"]
if self.nic in ['foxville', 'springville']:
- self.dut.send_expect(
- "flow create 0 ingress pattern end actions rss types udp end queues 1 2 3 end / end", "created")
+ for rule in rule_list:
+ parameter = rule.replace('-', ' / ')
+ self.dut.send_expect(
+ "flow create 0 ingress pattern end actions rss types end queues 1 2 3 end / end", "created")
+ self.dut.send_expect(
+ "flow create 0 ingress pattern eth / %s / end actions rss types %s end queues end / end" % (parameter, rule), "created")
else:
- self.dut.send_expect(
- "flow create 0 ingress pattern end actions rss types udp end queues 3 4 5 end / end", "created")
+ for rule in rule_list:
+ parameter = rule.replace('-', ' / ')
+ self.dut.send_expect(
+ "flow create 0 ingress pattern end actions rss types end queues 3 4 5 end / end", "created")
+ self.dut.send_expect(
+ "flow create 0 ingress pattern eth / %s / end actions rss types %s end queues end / end" % (parameter, rule), "created")
# send the packets and verify the results
rss_queue = ["1", "2", "3"] if self.nic in ['foxville', 'springville'] else ["3", "4", "5"]
self.send_and_check(self.pkt2, rss_queue)
@@ -595,7 +698,7 @@ class TestRSS_to_Rteflow(TestCase):
rss_queue = ["1"]
self.send_and_check(self.pkt2, rss_queue)
# There can't be more than one RSS queue rule existing.
- self.dut.send_expect("flow destroy 0 rule 1", "testpmd> ")
+ self.dut.send_expect("flow destroy 0 rule 4", "testpmd> ")
rss_queue = ["1", "2", "3"] if self.nic in ['foxville', 'springville'] else ["3", "4", "5"]
self.send_and_check(self.pkt2, rss_queue)
@@ -612,8 +715,14 @@ class TestRSS_to_Rteflow(TestCase):
time.sleep(2)
# Create a rss queue rule.
- self.dut.send_expect(
- "flow create 0 ingress pattern end actions rss types tcp end queues 7 8 10 11 12 14 15 end / end", "created")
+ rule_list = ["ipv4-tcp", "ipv6-tcp"]
+ for rule in rule_list:
+ parameter = rule.replace('-', ' / ')
+ self.dut.send_expect(
+ "flow create 0 ingress pattern end actions rss types end queues 7 8 10 11 12 14 15 end / end", "created")
+ self.dut.send_expect(
+ "flow create 0 ingress pattern eth / %s / end actions rss types %s end queues end / end" % (parameter, rule),
+ "created")
# send the packets and verify the results
rss_queue = ["7", "8", "10", "11", "12", "14", "15"]
queue1 = self.send_and_check(self.prio_pkt1, rss_queue)
@@ -637,8 +746,8 @@ class TestRSS_to_Rteflow(TestCase):
queue3 = self.send_and_check(self.prio_pkt3, rss_queue)
# Destroy one queue region rule, all the rules become invalid.
- self.dut.send_expect("flow destroy 0 rule 2", "testpmd> ")
- rss_queue = ["0"]
+ self.dut.send_expect("flow destroy 0 rule 6", "testpmd> ")
+ rss_queue = ["7", "8", "10", "11", "12", "14", "15"]
self.send_and_check(self.prio_pkt1, rss_queue)
self.send_and_check(self.prio_pkt2, rss_queue)
self.send_and_check(self.prio_pkt3, rss_queue)
@@ -657,7 +766,7 @@ class TestRSS_to_Rteflow(TestCase):
# Create a rss queue rule.
self.dut.send_expect(
- "flow create 0 ingress pattern end actions rss queues 8 10 11 12 15 end / end", "created")
+ "flow create 0 ingress pattern end actions rss types end queues 8 10 11 12 15 end / end", "created")
# Set a queue region with invalid queue ID
self.dut.send_expect(
"flow create 0 ingress pattern vlan tci is 0x2000 / end actions rss queues 8 9 end / end", "error")
@@ -695,7 +804,9 @@ class TestRSS_to_Rteflow(TestCase):
# Create a RSS queue rule.
self.dut.send_expect(
- "flow create 0 ingress pattern end actions rss queues 6 7 end / end", "testpmd> ")
+ "flow create 0 ingress pattern end actions rss types end queues 6 7 end / end", "testpmd> ")
+ self.dut.send_expect(
+ "flow create 0 ingress pattern eth / ipv4 / udp / end actions rss types ipv4-udp end queues end / end", "testpmd> ")
# send the packets and verify the results
rss_queue = ["1"]
self.send_and_check(self.pkt2, rss_queue)
--
1.8.3.1
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [dts] [PATCH v1] tests/TestSuite_rss_to_rte_flow:modify create flow rule commands
2020-04-30 8:35 [dts] [PATCH v1] tests/TestSuite_rss_to_rte_flow:modify create flow rule commands Xu Hailin
@ 2020-04-30 8:45 ` Xu, HailinX
2020-05-06 5:41 ` Tu, Lijuan
1 sibling, 0 replies; 3+ messages in thread
From: Xu, HailinX @ 2020-04-30 8:45 UTC (permalink / raw)
To: dts
[-- Attachment #1: Type: text/plain, Size: 25771 bytes --]
Tested-by: Xu, Hailin <hailinx.xu@intel.com>
Regards,
Xu, Hailin
Regards,
Xu, Hailin
-----Original Message-----
From: Xu, HailinX
Sent: Thursday, April 30, 2020 4:35 PM
To: dts@dpdk.org
Cc: Xu, HailinX <hailinx.xu@intel.com>
Subject: [dts][PATCH v1] tests/TestSuite_rss_to_rte_flow:modify create flow rule commands
From: "xu,hailin" <hailinx.xu@intel.com>
i04e driver changed,so create rss flow rule need change.
Signed-off-by: xu,hailin <hailinx.xu@intel.com>
---
| 211 ++++++++++++++++++++++++++++---------
1 file changed, 161 insertions(+), 50 deletions(-)
--git a/tests/TestSuite_rss_to_rte_flow.py b/tests/TestSuite_rss_to_rte_flow.py
index dd7c869..56b2266 100644
--- a/tests/TestSuite_rss_to_rte_flow.py
+++ b/tests/TestSuite_rss_to_rte_flow.py
@@ -109,6 +109,7 @@ class TestRSS_to_Rteflow(TestCase):
self.tester.scapy_append('sendp(%s, iface="%s")' % (pkt, self.tester_itf))
self.tester.scapy_execute()
queue = self.get_queue_number()
+ print('queue=%s' % queue)
self.verify(queue in rss_queue, "the packet doesn't enter the expected RSS queue.")
return queue
@@ -188,21 +189,32 @@ class TestRSS_to_Rteflow(TestCase):
self.dut.send_expect("start", "testpmd> ", 120)
# Disable RSS hash function
- self.dut.send_expect(
+ """self.dut.send_expect(
"flow create 0 ingress pattern end actions rss types none end / end", "created")
if self.nic == 'foxville':
self.dut.send_expect("flow flush 0", "testpmd> ")
self.dut.send_expect(
- "show port 0 rss-hash", "RSS disabled")
- # send the packets and verify the results
+ "show port 0 rss-hash key", "RSS disabled")
+ send the packets and verify the results
self.send_packet("ipv4-other", self.tester_itf)
out = self.dut.send_expect("stop", "testpmd> ", 120)
self.check_packet_queue("0", out)
- self.dut.send_expect("start", "testpmd> ", 120)
+ self.dut.send_expect("start", "testpmd> ", 120)"""
# Enable RSS hash function all
- self.dut.send_expect(
- "flow create 0 ingress pattern end actions rss types all end / end", "created")
+ rule_list = ["ipv4-frag", "ipv4-tcp", "ipv4-udp", "ipv4-sctp", "ipv4-other", "ipv6-frag", "ipv6-tcp", "ipv6-udp"
+ , "ipv6-sctp", "ipv6-other", "l2-payload"]
+ for rule in rule_list:
+ parameter = rule.replace('-', ' / ')
+ if rule == "ipv4-other" or rule == "ipv4-frag":
+ parameter = 'ipv4'
+ elif rule == "ipv6-frag" or rule == "ipv6-other":
+ parameter = 'ipv6'
+ self.dut.send_expect(
+ "flow create 0 ingress pattern end actions rss types end queues 0 1 2 3 end / end", "created")
+ self.dut.send_expect(
+ "flow create 0 ingress pattern eth / %s / end actions rss types %s end queues end / end" % (
+ parameter, rule), "created")
if (self.nic in ["fortville_eagle", "fortville_spirit", "carlsville",
"fortville_spirit_single", "fortpark_TLV","fortpark_BASE-T", "fortville_25g"]):
self.dut.send_expect(
@@ -249,7 +261,9 @@ class TestRSS_to_Rteflow(TestCase):
# enable ipv4-udp rss function
self.dut.send_expect(
- "flow create 0 ingress pattern end actions rss types ipv4-udp end / end", "created")
+ "flow create 0 ingress pattern end actions rss types end queues 0 1 2 3 end / end", "created")
+ self.dut.send_expect(
+ "flow create 0 ingress pattern eth / ipv4 / udp / end
+ actions rss types ipv4-udp end queues end / end", "created")
self.dut.send_expect(
"show port 0 rss-hash", "ipv4-udp udp")
# send the packets and verify the results @@ -276,11 +290,16 @@ class TestRSS_to_Rteflow(TestCase):
# Create a rss queue rule
if self.nic in ['foxville',"springville"]:
self.dut.send_expect(
- #"flow create 0 ingress pattern end actions rss queues 1 4 7 end / end", "created")
- "flow create 0 ingress pattern end actions rss queues 1 2 3 end / end", "created")
+ "flow create 0 ingress pattern end actions rss types end queues 1 2 3 end / end", "created")
+ self.dut.send_expect(
+ "flow create 0 ingress pattern eth / ipv4 / end actions rss types ipv4-other end queues end / end",
+ "created")
else:
self.dut.send_expect(
- "flow create 0 ingress pattern end actions rss queues 1 4 7 end / end", "created")
+ "flow create 0 ingress pattern end actions rss types end queues 1 4 7 end / end", "created")
+ self.dut.send_expect(
+ "flow create 0 ingress pattern eth / ipv4 / end actions rss types ipv4-other end queues end / end",
+ "created")
# send the packets and verify the results
# ipv4-other and ipv6-other is enabled by default.
@@ -289,8 +308,8 @@ class TestRSS_to_Rteflow(TestCase):
if (self.nic in ["fortville_eagle", "fortville_spirit", "carlsville",
"fortville_spirit_single", "fortpark_TLV","fortpark_BASE-T", "fortville_25g"]):
self.send_and_check(self.pkt4, rss_queue)
- self.send_and_check(self.pkt8, rss_queue)
rss_queue = ["0"]
+ self.send_and_check(self.pkt8, rss_queue)
self.send_and_check(self.pkt1, rss_queue)
self.send_and_check(self.pkt2, rss_queue)
self.send_and_check(self.pkt3, rss_queue) @@ -310,23 +329,28 @@ class TestRSS_to_Rteflow(TestCase):
self.send_and_check(self.pkt8, rss_queue)
# There can't be more than one RSS queue rule existing.
- self.dut.send_expect(
- "flow create 0 ingress pattern end actions rss queues 3 end / end", "error")
- self.dut.send_expect(
- "flow create 0 ingress pattern end actions rss types ipv4-udp end queues 3 end / end", "error")
+ #self.dut.send_expect(
+ # "flow create 0 ingress pattern end actions rss types end queues 3 end / end", "error")
+ #self.dut.send_expect(
+ # "flow create 0 ingress pattern eth / ipv4 / udp / end actions rss types ipv4-udp end queues end / end", "error")
+
+
# Flush the rules and create a new RSS queue rule.
- self.dut.send_expect("flow flush 0", "testpmd> ")
+ #self.dut.send_expect("flow flush 0", "testpmd> ")
self.dut.send_expect(
- "flow create 0 ingress pattern end actions rss queues 3 end / end", "created")
+ "flow create 0 ingress pattern end actions rss types end queues 3 end / end", "created")
+ self.dut.send_expect(
+ "flow create 0 ingress pattern eth / ipv4 / udp / end actions rss types ipv4-udp end queues end / end",
+ "created")
# Send the packets and verify the results
if (self.nic in ["fortville_eagle", "fortville_spirit","carlsville",
"fortville_spirit_single", "fortpark_TLV","fortpark_BASE-T", "fortville_25g"]):
rss_queue = ["3"]
self.send_and_check(self.pkt4, rss_queue)
- self.send_and_check(self.pkt8, rss_queue)
+ self.send_and_check(self.pkt2, rss_queue)
rss_queue = ["0"]
+ self.send_and_check(self.pkt8, rss_queue)
self.send_and_check(self.pkt1, rss_queue)
- self.send_and_check(self.pkt2, rss_queue)
self.send_and_check(self.pkt3, rss_queue)
self.send_and_check(self.pkt5, rss_queue)
self.send_and_check(self.pkt6, rss_queue) @@ -345,14 +369,18 @@ class TestRSS_to_Rteflow(TestCase):
# Set a wrong parameter: queue ID is 16
self.dut.send_expect(
- "flow create 0 ingress pattern end actions rss queues 8 end / end", "error")
+ "flow create 0 ingress pattern end actions rss types end
+ queues 8 end / end", "error")
# Set all the queues to the rule
if self.nic in ['foxville', 'springville']:
self.dut.send_expect(
- "flow create 0 ingress pattern end actions rss queues 0 1 2 3 end / end", "created")
+ "flow create 0 ingress pattern end actions rss types end queues 0 1 2 3 end / end", "created")
+ self.dut.send_expect(
+ "flow create 0 ingress pattern eth / ipv4 / end
+ actions rss types ipv4-other end queues end / end", "created")
else:
self.dut.send_expect(
- "flow create 0 ingress pattern end actions rss queues 0 1 2 3 4 5 6 7 end / end", "created")
+ "flow create 0 ingress pattern end actions rss types end queues 0 1 2 3 4 5 6 7 end / end", "created")
+ self.dut.send_expect(
+ "flow create 0 ingress pattern eth / ipv4 / end
+ actions rss types ipv4-other end queues end / end ", "created")
def test_different_types_rss_queue_rule(self):
"""
@@ -367,13 +395,26 @@ class TestRSS_to_Rteflow(TestCase):
# Create a rss queue rule
if self.nic in ['foxville', 'springville']:
- self.dut.send_expect(
- #"flow create 0 ingress pattern end actions rss types udp ipv4-tcp ipv6-sctp ipv4-other end queues 1 4 7 end / end", "created")
- "flow create 0 ingress pattern end actions rss types udp ipv4-tcp ipv6-sctp ipv4-other end queues 1 2 3 end / end", "created")
+ rule_list = ["ipv6-sctp", "ipv6-udp", "ipv4-tcp", "ipv4-udp", "ipv4-other"]
+ for rule in rule_list:
+ parameter = rule.replace('-', ' / ')
+ if rule == "ipv4-other":
+ parameter = 'ipv4'
+ self.dut.send_expect(
+ "flow create 0 ingress pattern end actions rss types end queues 1 2 3 end / end", "created")
+ self.dut.send_expect(
+ "flow create 0 ingress pattern eth / %s / end actions rss types %s end queues end / end" % (
+ parameter, rule), "created")
else:
- self.dut.send_expect(
- "flow create 0 ingress pattern end actions rss types udp ipv4-tcp ipv6-sctp ipv4-other end queues 1 4 7 end / end", "created")
-
+ rule_list = ["ipv6-sctp", "ipv6-udp", "ipv4-tcp", "ipv4-udp", "ipv4-other"]
+ for rule in rule_list:
+ parameter = rule.replace('-', ' / ')
+ if rule == "ipv4-other":
+ parameter = 'ipv4'
+ self.dut.send_expect(
+ "flow create 0 ingress pattern end actions rss types end queues 1 4 7 end / end", "created")
+ self.dut.send_expect(
+ "flow create 0 ingress pattern eth / %s / end
+ actions rss types %s end queues end / end" % (parameter, rule),
+ "created")
# send the packets and verify the results
rss_queue = ["1", "4", "7"]
if (self.nic in ["fortville_eagle", "fortville_spirit", "carlsville", @@ -408,8 +449,10 @@ class TestRSS_to_Rteflow(TestCase):
self.send_and_check(self.pkt8, rss_queue)
# There can't be more than one RSS queue rule existing.
- self.dut.send_expect(
- "flow create 0 ingress pattern end actions rss types ipv6-other end queues 3 end / end", "error")
+ #self.dut.send_expect(
+ # "flow create 0 ingress pattern end actions rss types end queues 3 end / end", "error")
+ #self.dut.send_expect(
+ # "flow create 0 ingress pattern eth / ipv6 / end actions rss types ipv6-other end queues end / end", "error")
def test_set_key_keylen(self):
"""
@@ -432,8 +475,11 @@ class TestRSS_to_Rteflow(TestCase):
# Create a rss rule
self.dut.send_expect(
- "flow create 0 ingress pattern end actions rss types ipv4-udp end / end", "created")
+ "flow create 0 ingress pattern end actions rss types end queues 0 1 2 3 end / end", "created")
+ self.dut.send_expect(
+ "flow create 0 ingress pattern eth / ipv4 / udp / end
+ actions rss types ipv4-udp end queues end / end", "created")
out1 = self.dut.send_expect("show port 0 rss-hash key", "testpmd> ", 120)
+ print('out1=%s' % out1)
rss_queue = ["0", "1", "2", "3"]
queue1 = self.send_and_check(pkt1, rss_queue)
queue2 = self.send_and_check(pkt2, rss_queue) @@ -441,19 +487,26 @@ class TestRSS_to_Rteflow(TestCase):
queue4 = self.send_and_check(pkt4, rss_queue)
queue5 = self.send_and_check(pkt5, rss_queue)
list1 = [queue1, queue2, queue3, queue4, queue5]
+ print('list1=%s' % list1)
# Create a rss key rule
self.dut.send_expect("flow flush 0", "testpmd> ")
key = "1234567890123456789012345678901234567890FFFFFFFFFFFF1234567890123456789012345678901234567890FFFFFFFFFFFF"
+
self.dut.send_expect(
- "flow create 0 ingress pattern end actions rss types ipv4-udp end key %s / end" % key, "created")
+ "flow create 0 ingress pattern eth / ipv4 / udp / end actions rss types ipv4-udp end queues end key %s / end" % key,
+ #"flow create 0 ingress pattern eth / ipv4 / udp / end actions rss types ipv4-udp end queues end key %s / end" % key,
+ "created")
+ #self.dut.send_expect("port config 0 rss-hash-key ipv4 %s" %
+ key, 'testpmd>')
out2 = self.dut.send_expect("show port 0 rss-hash key", "testpmd> ", 120)
+ print('out2=%s' % out2)
key_queue1 = self.send_and_check(pkt1, rss_queue)
key_queue2 = self.send_and_check(pkt2, rss_queue)
key_queue3 = self.send_and_check(pkt3, rss_queue)
key_queue4 = self.send_and_check(pkt4, rss_queue)
key_queue5 = self.send_and_check(pkt5, rss_queue)
list2 = [key_queue1, key_queue2, key_queue3, key_queue4, key_queue5]
+ print('list2=%s' % list2)
self.verify((key in out2) and (out1 != out2) and (list1 != list2), "the key setting doesn't take effect.")
@@ -462,14 +515,17 @@ class TestRSS_to_Rteflow(TestCase):
key = "1234567890123456789012345678901234567890FFFFFFFFFFFF1234567890123456789012345678901234567890FFFFFFFFFFFF"
key_len = "50"
self.dut.send_expect(
- "flow create 0 ingress pattern end actions rss types ipv4-udp end key %s key_len %s / end" % (key, key_len), "created")
+ "flow create 0 ingress pattern eth / ipv4 / udp / end actions rss types ipv4-udp end queues end key %s key_len %s / end " % (key, key_len),
+ "created")
out3 = self.dut.send_expect("show port 0 rss-hash key", "testpmd> ", 120)
+ print('out3=%s' % out3)
key_queue1 = self.send_and_check(pkt1, rss_queue)
key_queue2 = self.send_and_check(pkt2, rss_queue)
key_queue3 = self.send_and_check(pkt3, rss_queue)
key_queue4 = self.send_and_check(pkt4, rss_queue)
key_queue5 = self.send_and_check(pkt5, rss_queue)
list3 = [key_queue1, key_queue2, key_queue3, key_queue4, key_queue5]
+ print('list3=%s' % list3)
self.verify((key not in out3) and (out3 != out1 != out2) and (list3 != list1 != list2), "the key setting doesn't take effect.")
@@ -478,17 +534,22 @@ class TestRSS_to_Rteflow(TestCase):
key = "1234567890123456789012345678901234567890FFFFFFFFFFFF1234567890123456789012345678901234567890FFFFFF"
key_len = "52"
self.dut.send_expect(
- "flow create 0 ingress pattern end actions rss types ipv4-udp end key %s key_len %s / end" % (key, key_len), "created")
+ "flow create 0 ingress pattern eth / ipv4 / udp / end actions rss types ipv4-udp end queues end key %s key_len %s / end " % (
+ key, key_len),
+ "created")
out4 = self.dut.send_expect("show port 0 rss-hash key", "testpmd> ", 120)
+ print('out=%s' % out4)
key_queue1 = self.send_and_check(pkt1, rss_queue)
key_queue2 = self.send_and_check(pkt2, rss_queue)
key_queue3 = self.send_and_check(pkt3, rss_queue)
key_queue4 = self.send_and_check(pkt4, rss_queue)
key_queue5 = self.send_and_check(pkt5, rss_queue)
list4 = [key_queue1, key_queue2, key_queue3, key_queue4, key_queue5]
+ print('list4=%s' % list4)
self.verify((key in out4) and (out4 != out1 != out2 != out3) and (list4 != list1 != list2), "the key setting doesn't take effect.")
+
def test_disable_rss_in_commandline(self):
"""
Set RSS queue rule while disable RSS in command-line.
@@ -501,8 +562,19 @@ class TestRSS_to_Rteflow(TestCase):
time.sleep(2)
# Create a rss queue rule
- self.dut.send_expect(
- "flow create 0 ingress pattern end actions rss types all end / end", "created")
+ rule_list = ["ipv4-frag", "ipv4-tcp", "ipv4-udp", "ipv4-sctp", "ipv4-other", "ipv6-frag", "ipv6-tcp", "ipv6-udp"
+ , "ipv6-sctp", "ipv6-other", "l2-payload"]
+ for rule in rule_list:
+ parameter = rule.replace('-', ' / ')
+ if rule == "ipv4-other" or rule == "ipv4-frag":
+ parameter = 'ipv4'
+ elif rule == "ipv6-frag" or rule == "ipv6-other":
+ parameter = 'ipv6'
+ self.dut.send_expect(
+ "flow create 0 ingress pattern end actions rss types end queues 0 1 2 3 end / end", "created")
+ self.dut.send_expect(
+ "flow create 0 ingress pattern eth / %s / end actions rss types %s end queues end / end" % (
+ parameter, rule), "created")
self.send_packet("ipv4-udp", self.tester_itf)
out = self.dut.send_expect("stop", "testpmd> ", 120)
self.check_packet_queue("all", out) @@ -514,12 +586,34 @@ class TestRSS_to_Rteflow(TestCase):
self.dut.send_expect("start", "testpmd> ", 120)
time.sleep(2)
# Create a rss queue rule
+ rule_list = ["ipv6-tcp", "ipv4-udp", "ipv4-sctp", "ipv6-other",
+ "ipv6-sctp"]
if self.nic in ['foxville', 'springville']:
- self.dut.send_expect(
- "flow create 0 ingress pattern end actions rss types ipv6-tcp ipv4-udp sctp ipv6-other end queues 1 2 3 end / end", "created")
+ #self.dut.send_expect(
+ # "flow create 0 ingress pattern end actions rss types ipv6-tcp ipv4-udp sctp ipv6-other end queues 1 2 3 end / end", "created")
+ for rule in rule_list:
+ parameter = rule.replace('-', ' / ')
+ if rule == "ipv6-other":
+ parameter = 'ipv6'
+ self.dut.send_expect(
+ "flow create 0 ingress pattern end actions rss types end queues 1 2 3 end / end", "created")
+ self.dut.send_expect(
+ "flow create 0 ingress pattern eth / %s / end actions rss types %s end queues end / end" % (
+ parameter, rule), "created")
else:
self.dut.send_expect(
- "flow create 0 ingress pattern end actions rss types ipv6-tcp ipv4-udp sctp ipv6-other end queues 5 6 7 end / end", "created")
+ "flow create 0 ingress pattern end actions rss types end queues 5 6 7 end / end", "created")
+ for rule in rule_list:
+ parameter = rule.replace('-', ' / ')
+ if rule == "ipv6-other":
+ parameter = 'ipv6'
+ self.dut.send_expect(
+ "flow create 0 ingress pattern end actions rss types end queues 5 6 7 end / end", "created")
+ self.dut.send_expect(
+ "flow create 0 ingress pattern eth / %s / end actions rss types %s end queues end / end" % (
+ parameter, rule), "created")
+ #self.dut.send_expect(
+ # "flow create 0 ingress pattern end actions rss types ipv6-tcp ipv4-udp sctp ipv6-other end queues 5 6 7 end / end",
+ # "created")
# send the packets and verify the results
rss_queue = ["5", "6", "7"]
if (self.nic in ["fortville_eagle", "fortville_spirit", "carlsville", @@ -570,12 +664,21 @@ class TestRSS_to_Rteflow(TestCase):
time.sleep(2)
# Create a rss queue rule
+ rule_list = ["ipv4-udp", "ipv6-udp"]
if self.nic in ['foxville', 'springville']:
- self.dut.send_expect(
- "flow create 0 ingress pattern end actions rss types udp end queues 1 2 3 end / end", "created")
+ for rule in rule_list:
+ parameter = rule.replace('-', ' / ')
+ self.dut.send_expect(
+ "flow create 0 ingress pattern end actions rss types end queues 1 2 3 end / end", "created")
+ self.dut.send_expect(
+ "flow create 0 ingress pattern eth / %s / end
+ actions rss types %s end queues end / end" % (parameter, rule),
+ "created")
else:
- self.dut.send_expect(
- "flow create 0 ingress pattern end actions rss types udp end queues 3 4 5 end / end", "created")
+ for rule in rule_list:
+ parameter = rule.replace('-', ' / ')
+ self.dut.send_expect(
+ "flow create 0 ingress pattern end actions rss types end queues 3 4 5 end / end", "created")
+ self.dut.send_expect(
+ "flow create 0 ingress pattern eth / %s / end
+ actions rss types %s end queues end / end" % (parameter, rule),
+ "created")
# send the packets and verify the results
rss_queue = ["1", "2", "3"] if self.nic in ['foxville', 'springville'] else ["3", "4", "5"]
self.send_and_check(self.pkt2, rss_queue) @@ -595,7 +698,7 @@ class TestRSS_to_Rteflow(TestCase):
rss_queue = ["1"]
self.send_and_check(self.pkt2, rss_queue)
# There can't be more than one RSS queue rule existing.
- self.dut.send_expect("flow destroy 0 rule 1", "testpmd> ")
+ self.dut.send_expect("flow destroy 0 rule 4", "testpmd> ")
rss_queue = ["1", "2", "3"] if self.nic in ['foxville', 'springville'] else ["3", "4", "5"]
self.send_and_check(self.pkt2, rss_queue)
@@ -612,8 +715,14 @@ class TestRSS_to_Rteflow(TestCase):
time.sleep(2)
# Create a rss queue rule.
- self.dut.send_expect(
- "flow create 0 ingress pattern end actions rss types tcp end queues 7 8 10 11 12 14 15 end / end", "created")
+ rule_list = ["ipv4-tcp", "ipv6-tcp"]
+ for rule in rule_list:
+ parameter = rule.replace('-', ' / ')
+ self.dut.send_expect(
+ "flow create 0 ingress pattern end actions rss types end queues 7 8 10 11 12 14 15 end / end", "created")
+ self.dut.send_expect(
+ "flow create 0 ingress pattern eth / %s / end actions rss types %s end queues end / end" % (parameter, rule),
+ "created")
# send the packets and verify the results
rss_queue = ["7", "8", "10", "11", "12", "14", "15"]
queue1 = self.send_and_check(self.prio_pkt1, rss_queue) @@ -637,8 +746,8 @@ class TestRSS_to_Rteflow(TestCase):
queue3 = self.send_and_check(self.prio_pkt3, rss_queue)
# Destroy one queue region rule, all the rules become invalid.
- self.dut.send_expect("flow destroy 0 rule 2", "testpmd> ")
- rss_queue = ["0"]
+ self.dut.send_expect("flow destroy 0 rule 6", "testpmd> ")
+ rss_queue = ["7", "8", "10", "11", "12", "14", "15"]
self.send_and_check(self.prio_pkt1, rss_queue)
self.send_and_check(self.prio_pkt2, rss_queue)
self.send_and_check(self.prio_pkt3, rss_queue) @@ -657,7 +766,7 @@ class TestRSS_to_Rteflow(TestCase):
# Create a rss queue rule.
self.dut.send_expect(
- "flow create 0 ingress pattern end actions rss queues 8 10 11 12 15 end / end", "created")
+ "flow create 0 ingress pattern end actions rss types end
+ queues 8 10 11 12 15 end / end", "created")
# Set a queue region with invalid queue ID
self.dut.send_expect(
"flow create 0 ingress pattern vlan tci is 0x2000 / end actions rss queues 8 9 end / end", "error") @@ -695,7 +804,9 @@ class TestRSS_to_Rteflow(TestCase):
# Create a RSS queue rule.
self.dut.send_expect(
- "flow create 0 ingress pattern end actions rss queues 6 7 end / end", "testpmd> ")
+ "flow create 0 ingress pattern end actions rss types end queues 6 7 end / end", "testpmd> ")
+ self.dut.send_expect(
+ "flow create 0 ingress pattern eth / ipv4 / udp / end
+ actions rss types ipv4-udp end queues end / end", "testpmd> ")
# send the packets and verify the results
rss_queue = ["1"]
self.send_and_check(self.pkt2, rss_queue)
--
1.8.3.1
[-- Attachment #2: TestRSS_to_Rteflow.log --]
[-- Type: application/octet-stream, Size: 943903 bytes --]
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [dts] [PATCH v1] tests/TestSuite_rss_to_rte_flow:modify create flow rule commands
2020-04-30 8:35 [dts] [PATCH v1] tests/TestSuite_rss_to_rte_flow:modify create flow rule commands Xu Hailin
2020-04-30 8:45 ` Xu, HailinX
@ 2020-05-06 5:41 ` Tu, Lijuan
1 sibling, 0 replies; 3+ messages in thread
From: Tu, Lijuan @ 2020-05-06 5:41 UTC (permalink / raw)
To: Xu, HailinX, dts; +Cc: Xu, HailinX
1, please remove your commented code.
2, why commented the code of " Disable RSS hash function " in test_disable_enable_rss, around line 188.
> -----Original Message-----
> From: dts [mailto:dts-bounces@dpdk.org] On Behalf Of Xu Hailin
> Sent: Thursday, April 30, 2020 4:35 PM
> To: dts@dpdk.org
> Cc: Xu, HailinX <hailinx.xu@intel.com>
> Subject: [dts] [PATCH v1] tests/TestSuite_rss_to_rte_flow:modify create flow
> rule commands
>
> From: "xu,hailin" <hailinx.xu@intel.com>
>
> i04e driver changed,so create rss flow rule need change.
>
> Signed-off-by: xu,hailin <hailinx.xu@intel.com>
> ---
> tests/TestSuite_rss_to_rte_flow.py | 211 ++++++++++++++++++++++++++++--
> -------
> 1 file changed, 161 insertions(+), 50 deletions(-)
>
> diff --git a/tests/TestSuite_rss_to_rte_flow.py
> b/tests/TestSuite_rss_to_rte_flow.py
> index dd7c869..56b2266 100644
> --- a/tests/TestSuite_rss_to_rte_flow.py
> +++ b/tests/TestSuite_rss_to_rte_flow.py
> @@ -109,6 +109,7 @@ class TestRSS_to_Rteflow(TestCase):
> self.tester.scapy_append('sendp(%s, iface="%s")' % (pkt, self.tester_itf))
> self.tester.scapy_execute()
> queue = self.get_queue_number()
> + print('queue=%s' % queue)
> self.verify(queue in rss_queue, "the packet doesn't enter the expected
> RSS queue.")
> return queue
>
> @@ -188,21 +189,32 @@ class TestRSS_to_Rteflow(TestCase):
> self.dut.send_expect("start", "testpmd> ", 120)
>
> # Disable RSS hash function
> - self.dut.send_expect(
> + """self.dut.send_expect(
> "flow create 0 ingress pattern end actions rss types none end / end",
> "created")
> if self.nic == 'foxville':
> self.dut.send_expect("flow flush 0", "testpmd> ")
> self.dut.send_expect(
> - "show port 0 rss-hash", "RSS disabled")
> - # send the packets and verify the results
> + "show port 0 rss-hash key", "RSS disabled")
> + send the packets and verify the results
> self.send_packet("ipv4-other", self.tester_itf)
> out = self.dut.send_expect("stop", "testpmd> ", 120)
> self.check_packet_queue("0", out)
> - self.dut.send_expect("start", "testpmd> ", 120)
> + self.dut.send_expect("start", "testpmd> ", 120)"""
[Lijuan] why commented these code ? if commented them , the case is not match case name " test_disable_enable_rss"
>
> # Enable RSS hash function all
> - self.dut.send_expect(
> - "flow create 0 ingress pattern end actions rss types all end / end",
> "created")
> + rule_list = ["ipv4-frag", "ipv4-tcp", "ipv4-udp", "ipv4-sctp", "ipv4-other",
> "ipv6-frag", "ipv6-tcp", "ipv6-udp"
> + , "ipv6-sctp", "ipv6-other", "l2-payload"]
> + for rule in rule_list:
> + parameter = rule.replace('-', ' / ')
> + if rule == "ipv4-other" or rule == "ipv4-frag":
> + parameter = 'ipv4'
> + elif rule == "ipv6-frag" or rule == "ipv6-other":
> + parameter = 'ipv6'
> + self.dut.send_expect(
> + "flow create 0 ingress pattern end actions rss types end queues 0 1
> 2 3 end / end", "created")
> + self.dut.send_expect(
> + "flow create 0 ingress pattern eth / %s / end actions rss types %s
> end queues end / end" % (
> + parameter, rule), "created")
> if (self.nic in ["fortville_eagle", "fortville_spirit", "carlsville",
> "fortville_spirit_single", "fortpark_TLV","fortpark_BASE-T",
> "fortville_25g"]):
> self.dut.send_expect(
> @@ -249,7 +261,9 @@ class TestRSS_to_Rteflow(TestCase):
>
> # enable ipv4-udp rss function
> self.dut.send_expect(
> - "flow create 0 ingress pattern end actions rss types ipv4-udp end /
> end", "created")
> + "flow create 0 ingress pattern end actions rss types end queues 0 1 2
> 3 end / end", "created")
> + self.dut.send_expect(
> + "flow create 0 ingress pattern eth / ipv4 / udp / end
> + actions rss types ipv4-udp end queues end / end", "created")
> self.dut.send_expect(
> "show port 0 rss-hash", "ipv4-udp udp")
> # send the packets and verify the results @@ -276,11 +290,16 @@ class
> TestRSS_to_Rteflow(TestCase):
> # Create a rss queue rule
> if self.nic in ['foxville',"springville"]:
> self.dut.send_expect(
> - #"flow create 0 ingress pattern end actions rss queues 1 4 7 end /
> end", "created")
> - "flow create 0 ingress pattern end actions rss queues 1 2 3 end /
> end", "created")
> + "flow create 0 ingress pattern end actions rss types end queues 1 2
> 3 end / end", "created")
> + self.dut.send_expect(
> + "flow create 0 ingress pattern eth / ipv4 / end actions rss types
> ipv4-other end queues end / end",
> + "created")
> else:
> self.dut.send_expect(
> - "flow create 0 ingress pattern end actions rss queues 1 4 7 end /
> end", "created")
> + "flow create 0 ingress pattern end actions rss types end queues 1 4
> 7 end / end", "created")
> + self.dut.send_expect(
> + "flow create 0 ingress pattern eth / ipv4 / end actions rss types
> ipv4-other end queues end / end",
> + "created")
>
> # send the packets and verify the results
> # ipv4-other and ipv6-other is enabled by default.
> @@ -289,8 +308,8 @@ class TestRSS_to_Rteflow(TestCase):
> if (self.nic in ["fortville_eagle", "fortville_spirit", "carlsville",
> "fortville_spirit_single", "fortpark_TLV","fortpark_BASE-T",
> "fortville_25g"]):
> self.send_and_check(self.pkt4, rss_queue)
> - self.send_and_check(self.pkt8, rss_queue)
> rss_queue = ["0"]
> + self.send_and_check(self.pkt8, rss_queue)
> self.send_and_check(self.pkt1, rss_queue)
> self.send_and_check(self.pkt2, rss_queue)
> self.send_and_check(self.pkt3, rss_queue) @@ -310,23 +329,28 @@
> class TestRSS_to_Rteflow(TestCase):
> self.send_and_check(self.pkt8, rss_queue)
>
> # There can't be more than one RSS queue rule existing.
> - self.dut.send_expect(
> - "flow create 0 ingress pattern end actions rss queues 3 end / end",
> "error")
> - self.dut.send_expect(
> - "flow create 0 ingress pattern end actions rss types ipv4-udp end
> queues 3 end / end", "error")
> + #self.dut.send_expect(
> + # "flow create 0 ingress pattern end actions rss types end queues 3
> end / end", "error")
> + #self.dut.send_expect(
> + # "flow create 0 ingress pattern eth / ipv4 / udp / end actions rss
> types ipv4-udp end queues end / end", "error")
> +
> +
> # Flush the rules and create a new RSS queue rule.
> - self.dut.send_expect("flow flush 0", "testpmd> ")
> + #self.dut.send_expect("flow flush 0", "testpmd> ")
> self.dut.send_expect(
> - "flow create 0 ingress pattern end actions rss queues 3 end / end",
> "created")
> + "flow create 0 ingress pattern end actions rss types end queues 3 end
> / end", "created")
> + self.dut.send_expect(
> + "flow create 0 ingress pattern eth / ipv4 / udp / end actions rss types
> ipv4-udp end queues end / end",
> + "created")
> # Send the packets and verify the results
> if (self.nic in ["fortville_eagle", "fortville_spirit","carlsville",
> "fortville_spirit_single", "fortpark_TLV","fortpark_BASE-T",
> "fortville_25g"]):
> rss_queue = ["3"]
> self.send_and_check(self.pkt4, rss_queue)
> - self.send_and_check(self.pkt8, rss_queue)
> + self.send_and_check(self.pkt2, rss_queue)
> rss_queue = ["0"]
> + self.send_and_check(self.pkt8, rss_queue)
> self.send_and_check(self.pkt1, rss_queue)
> - self.send_and_check(self.pkt2, rss_queue)
> self.send_and_check(self.pkt3, rss_queue)
> self.send_and_check(self.pkt5, rss_queue)
> self.send_and_check(self.pkt6, rss_queue) @@ -345,14 +369,18 @@
> class TestRSS_to_Rteflow(TestCase):
>
> # Set a wrong parameter: queue ID is 16
> self.dut.send_expect(
> - "flow create 0 ingress pattern end actions rss queues 8 end / end",
> "error")
> + "flow create 0 ingress pattern end actions rss types end
> + queues 8 end / end", "error")
> # Set all the queues to the rule
> if self.nic in ['foxville', 'springville']:
> self.dut.send_expect(
> - "flow create 0 ingress pattern end actions rss queues 0 1 2 3 end /
> end", "created")
> + "flow create 0 ingress pattern end actions rss types end queues 0 1
> 2 3 end / end", "created")
> + self.dut.send_expect(
> + "flow create 0 ingress pattern eth / ipv4 / end
> + actions rss types ipv4-other end queues end / end", "created")
> else:
> self.dut.send_expect(
> - "flow create 0 ingress pattern end actions rss queues 0 1 2 3 4 5 6 7
> end / end", "created")
> + "flow create 0 ingress pattern end actions rss types end queues 0 1
> 2 3 4 5 6 7 end / end", "created")
> + self.dut.send_expect(
> + "flow create 0 ingress pattern eth / ipv4 / end
> + actions rss types ipv4-other end queues end / end ", "created")
>
> def test_different_types_rss_queue_rule(self):
> """
> @@ -367,13 +395,26 @@ class TestRSS_to_Rteflow(TestCase):
>
> # Create a rss queue rule
> if self.nic in ['foxville', 'springville']:
> - self.dut.send_expect(
> - #"flow create 0 ingress pattern end actions rss types udp ipv4-tcp
> ipv6-sctp ipv4-other end queues 1 4 7 end / end", "created")
> - "flow create 0 ingress pattern end actions rss types udp ipv4-tcp
> ipv6-sctp ipv4-other end queues 1 2 3 end / end", "created")
> + rule_list = ["ipv6-sctp", "ipv6-udp", "ipv4-tcp", "ipv4-udp", "ipv4-
> other"]
> + for rule in rule_list:
> + parameter = rule.replace('-', ' / ')
> + if rule == "ipv4-other":
> + parameter = 'ipv4'
> + self.dut.send_expect(
> + "flow create 0 ingress pattern end actions rss types end queues
> 1 2 3 end / end", "created")
> + self.dut.send_expect(
> + "flow create 0 ingress pattern eth / %s / end actions rss types %s
> end queues end / end" % (
> + parameter, rule), "created")
> else:
> - self.dut.send_expect(
> - "flow create 0 ingress pattern end actions rss types udp ipv4-tcp
> ipv6-sctp ipv4-other end queues 1 4 7 end / end", "created")
> -
> + rule_list = ["ipv6-sctp", "ipv6-udp", "ipv4-tcp", "ipv4-udp", "ipv4-
> other"]
> + for rule in rule_list:
> + parameter = rule.replace('-', ' / ')
> + if rule == "ipv4-other":
> + parameter = 'ipv4'
> + self.dut.send_expect(
> + "flow create 0 ingress pattern end actions rss types end queues
> 1 4 7 end / end", "created")
> + self.dut.send_expect(
> + "flow create 0 ingress pattern eth / %s / end
> + actions rss types %s end queues end / end" % (parameter, rule),
> + "created")
> # send the packets and verify the results
> rss_queue = ["1", "4", "7"]
> if (self.nic in ["fortville_eagle", "fortville_spirit", "carlsville", @@ -408,8
> +449,10 @@ class TestRSS_to_Rteflow(TestCase):
> self.send_and_check(self.pkt8, rss_queue)
>
> # There can't be more than one RSS queue rule existing.
> - self.dut.send_expect(
> - "flow create 0 ingress pattern end actions rss types ipv6-other end
> queues 3 end / end", "error")
> + #self.dut.send_expect(
> + # "flow create 0 ingress pattern end actions rss types end queues 3
> end / end", "error")
> + #self.dut.send_expect(
> + # "flow create 0 ingress pattern eth / ipv6 / end actions rss types
> ipv6-other end queues end / end", "error")
>
> def test_set_key_keylen(self):
> """
> @@ -432,8 +475,11 @@ class TestRSS_to_Rteflow(TestCase):
>
> # Create a rss rule
> self.dut.send_expect(
> - "flow create 0 ingress pattern end actions rss types ipv4-udp end /
> end", "created")
> + "flow create 0 ingress pattern end actions rss types end queues 0 1 2
> 3 end / end", "created")
> + self.dut.send_expect(
> + "flow create 0 ingress pattern eth / ipv4 / udp / end
> + actions rss types ipv4-udp end queues end / end", "created")
> out1 = self.dut.send_expect("show port 0 rss-hash key", "testpmd> ",
> 120)
> + print('out1=%s' % out1)
> rss_queue = ["0", "1", "2", "3"]
> queue1 = self.send_and_check(pkt1, rss_queue)
> queue2 = self.send_and_check(pkt2, rss_queue) @@ -441,19 +487,26
> @@ class TestRSS_to_Rteflow(TestCase):
> queue4 = self.send_and_check(pkt4, rss_queue)
> queue5 = self.send_and_check(pkt5, rss_queue)
> list1 = [queue1, queue2, queue3, queue4, queue5]
> + print('list1=%s' % list1)
>
> # Create a rss key rule
> self.dut.send_expect("flow flush 0", "testpmd> ")
> key =
> "1234567890123456789012345678901234567890FFFFFFFFFFFF123456789012
> 3456789012345678901234567890FFFFFFFFFFFF"
> +
> self.dut.send_expect(
> - "flow create 0 ingress pattern end actions rss types ipv4-udp end
> key %s / end" % key, "created")
> + "flow create 0 ingress pattern eth / ipv4 / udp / end actions rss types
> ipv4-udp end queues end key %s / end" % key,
> + #"flow create 0 ingress pattern eth / ipv4 / udp / end actions rss
> types ipv4-udp end queues end key %s / end" % key,
> + "created")
> + #self.dut.send_expect("port config 0 rss-hash-key ipv4 %s" %
> + key, 'testpmd>')
> out2 = self.dut.send_expect("show port 0 rss-hash key", "testpmd> ",
> 120)
> + print('out2=%s' % out2)
> key_queue1 = self.send_and_check(pkt1, rss_queue)
> key_queue2 = self.send_and_check(pkt2, rss_queue)
> key_queue3 = self.send_and_check(pkt3, rss_queue)
> key_queue4 = self.send_and_check(pkt4, rss_queue)
> key_queue5 = self.send_and_check(pkt5, rss_queue)
> list2 = [key_queue1, key_queue2, key_queue3, key_queue4,
> key_queue5]
> + print('list2=%s' % list2)
>
> self.verify((key in out2) and (out1 != out2) and (list1 != list2), "the key
> setting doesn't take effect.")
>
> @@ -462,14 +515,17 @@ class TestRSS_to_Rteflow(TestCase):
> key =
> "1234567890123456789012345678901234567890FFFFFFFFFFFF123456789012
> 3456789012345678901234567890FFFFFFFFFFFF"
> key_len = "50"
> self.dut.send_expect(
> - "flow create 0 ingress pattern end actions rss types ipv4-udp end
> key %s key_len %s / end" % (key, key_len), "created")
> + "flow create 0 ingress pattern eth / ipv4 / udp / end actions rss types
> ipv4-udp end queues end key %s key_len %s / end " % (key, key_len),
> + "created")
> out3 = self.dut.send_expect("show port 0 rss-hash key", "testpmd> ",
> 120)
> + print('out3=%s' % out3)
> key_queue1 = self.send_and_check(pkt1, rss_queue)
> key_queue2 = self.send_and_check(pkt2, rss_queue)
> key_queue3 = self.send_and_check(pkt3, rss_queue)
> key_queue4 = self.send_and_check(pkt4, rss_queue)
> key_queue5 = self.send_and_check(pkt5, rss_queue)
> list3 = [key_queue1, key_queue2, key_queue3, key_queue4,
> key_queue5]
> + print('list3=%s' % list3)
>
> self.verify((key not in out3) and (out3 != out1 != out2) and (list3 !=
> list1 != list2), "the key setting doesn't take effect.")
>
> @@ -478,17 +534,22 @@ class TestRSS_to_Rteflow(TestCase):
> key =
> "1234567890123456789012345678901234567890FFFFFFFFFFFF123456789012
> 3456789012345678901234567890FFFFFF"
> key_len = "52"
> self.dut.send_expect(
> - "flow create 0 ingress pattern end actions rss types ipv4-udp end
> key %s key_len %s / end" % (key, key_len), "created")
> + "flow create 0 ingress pattern eth / ipv4 / udp / end actions rss types
> ipv4-udp end queues end key %s key_len %s / end " % (
> + key, key_len),
> + "created")
> out4 = self.dut.send_expect("show port 0 rss-hash key", "testpmd> ",
> 120)
> + print('out=%s' % out4)
> key_queue1 = self.send_and_check(pkt1, rss_queue)
> key_queue2 = self.send_and_check(pkt2, rss_queue)
> key_queue3 = self.send_and_check(pkt3, rss_queue)
> key_queue4 = self.send_and_check(pkt4, rss_queue)
> key_queue5 = self.send_and_check(pkt5, rss_queue)
> list4 = [key_queue1, key_queue2, key_queue3, key_queue4,
> key_queue5]
> + print('list4=%s' % list4)
>
> self.verify((key in out4) and (out4 != out1 != out2 != out3) and (list4 !=
> list1 != list2), "the key setting doesn't take effect.")
>
> +
> def test_disable_rss_in_commandline(self):
> """
> Set RSS queue rule while disable RSS in command-line.
> @@ -501,8 +562,19 @@ class TestRSS_to_Rteflow(TestCase):
> time.sleep(2)
>
> # Create a rss queue rule
> - self.dut.send_expect(
> - "flow create 0 ingress pattern end actions rss types all end / end",
> "created")
> + rule_list = ["ipv4-frag", "ipv4-tcp", "ipv4-udp", "ipv4-sctp", "ipv4-other",
> "ipv6-frag", "ipv6-tcp", "ipv6-udp"
> + , "ipv6-sctp", "ipv6-other", "l2-payload"]
> + for rule in rule_list:
> + parameter = rule.replace('-', ' / ')
> + if rule == "ipv4-other" or rule == "ipv4-frag":
> + parameter = 'ipv4'
> + elif rule == "ipv6-frag" or rule == "ipv6-other":
> + parameter = 'ipv6'
> + self.dut.send_expect(
> + "flow create 0 ingress pattern end actions rss types end queues 0 1
> 2 3 end / end", "created")
> + self.dut.send_expect(
> + "flow create 0 ingress pattern eth / %s / end actions rss types %s
> end queues end / end" % (
> + parameter, rule), "created")
> self.send_packet("ipv4-udp", self.tester_itf)
> out = self.dut.send_expect("stop", "testpmd> ", 120)
> self.check_packet_queue("all", out) @@ -514,12 +586,34 @@ class
> TestRSS_to_Rteflow(TestCase):
> self.dut.send_expect("start", "testpmd> ", 120)
> time.sleep(2)
> # Create a rss queue rule
> + rule_list = ["ipv6-tcp", "ipv4-udp", "ipv4-sctp", "ipv6-other",
> + "ipv6-sctp"]
> if self.nic in ['foxville', 'springville']:
> - self.dut.send_expect(
> - "flow create 0 ingress pattern end actions rss types ipv6-tcp ipv4-
> udp sctp ipv6-other end queues 1 2 3 end / end", "created")
> + #self.dut.send_expect(
> + # "flow create 0 ingress pattern end actions rss types ipv6-tcp ipv4-
> udp sctp ipv6-other end queues 1 2 3 end / end", "created")
> + for rule in rule_list:
> + parameter = rule.replace('-', ' / ')
> + if rule == "ipv6-other":
> + parameter = 'ipv6'
> + self.dut.send_expect(
> + "flow create 0 ingress pattern end actions rss types end queues
> 1 2 3 end / end", "created")
> + self.dut.send_expect(
> + "flow create 0 ingress pattern eth / %s / end actions rss types %s
> end queues end / end" % (
> + parameter, rule), "created")
> else:
> self.dut.send_expect(
> - "flow create 0 ingress pattern end actions rss types ipv6-tcp ipv4-
> udp sctp ipv6-other end queues 5 6 7 end / end", "created")
> + "flow create 0 ingress pattern end actions rss types end queues 5 6
> 7 end / end", "created")
> + for rule in rule_list:
> + parameter = rule.replace('-', ' / ')
> + if rule == "ipv6-other":
> + parameter = 'ipv6'
> + self.dut.send_expect(
> + "flow create 0 ingress pattern end actions rss types end queues
> 5 6 7 end / end", "created")
> + self.dut.send_expect(
> + "flow create 0 ingress pattern eth / %s / end actions rss types %s
> end queues end / end" % (
> + parameter, rule), "created")
> + #self.dut.send_expect(
> + # "flow create 0 ingress pattern end actions rss types ipv6-tcp ipv4-
> udp sctp ipv6-other end queues 5 6 7 end / end",
> + # "created")
> # send the packets and verify the results
> rss_queue = ["5", "6", "7"]
> if (self.nic in ["fortville_eagle", "fortville_spirit", "carlsville", @@ -570,12
> +664,21 @@ class TestRSS_to_Rteflow(TestCase):
> time.sleep(2)
>
> # Create a rss queue rule
> + rule_list = ["ipv4-udp", "ipv6-udp"]
> if self.nic in ['foxville', 'springville']:
> - self.dut.send_expect(
> - "flow create 0 ingress pattern end actions rss types udp end queues
> 1 2 3 end / end", "created")
> + for rule in rule_list:
> + parameter = rule.replace('-', ' / ')
> + self.dut.send_expect(
> + "flow create 0 ingress pattern end actions rss types end queues
> 1 2 3 end / end", "created")
> + self.dut.send_expect(
> + "flow create 0 ingress pattern eth / %s / end
> + actions rss types %s end queues end / end" % (parameter, rule),
> + "created")
> else:
> - self.dut.send_expect(
> - "flow create 0 ingress pattern end actions rss types udp end queues
> 3 4 5 end / end", "created")
> + for rule in rule_list:
> + parameter = rule.replace('-', ' / ')
> + self.dut.send_expect(
> + "flow create 0 ingress pattern end actions rss types end queues
> 3 4 5 end / end", "created")
> + self.dut.send_expect(
> + "flow create 0 ingress pattern eth / %s / end
> + actions rss types %s end queues end / end" % (parameter, rule),
> + "created")
> # send the packets and verify the results
> rss_queue = ["1", "2", "3"] if self.nic in ['foxville', 'springville'] else ["3",
> "4", "5"]
> self.send_and_check(self.pkt2, rss_queue) @@ -595,7 +698,7 @@ class
> TestRSS_to_Rteflow(TestCase):
> rss_queue = ["1"]
> self.send_and_check(self.pkt2, rss_queue)
> # There can't be more than one RSS queue rule existing.
> - self.dut.send_expect("flow destroy 0 rule 1", "testpmd> ")
> + self.dut.send_expect("flow destroy 0 rule 4", "testpmd> ")
> rss_queue = ["1", "2", "3"] if self.nic in ['foxville', 'springville'] else ["3",
> "4", "5"]
> self.send_and_check(self.pkt2, rss_queue)
>
> @@ -612,8 +715,14 @@ class TestRSS_to_Rteflow(TestCase):
> time.sleep(2)
>
> # Create a rss queue rule.
> - self.dut.send_expect(
> - "flow create 0 ingress pattern end actions rss types tcp end queues 7
> 8 10 11 12 14 15 end / end", "created")
> + rule_list = ["ipv4-tcp", "ipv6-tcp"]
> + for rule in rule_list:
> + parameter = rule.replace('-', ' / ')
> + self.dut.send_expect(
> + "flow create 0 ingress pattern end actions rss types end queues 7 8
> 10 11 12 14 15 end / end", "created")
> + self.dut.send_expect(
> + "flow create 0 ingress pattern eth / %s / end actions rss types %s
> end queues end / end" % (parameter, rule),
> + "created")
> # send the packets and verify the results
> rss_queue = ["7", "8", "10", "11", "12", "14", "15"]
> queue1 = self.send_and_check(self.prio_pkt1, rss_queue) @@ -637,8
> +746,8 @@ class TestRSS_to_Rteflow(TestCase):
> queue3 = self.send_and_check(self.prio_pkt3, rss_queue)
>
> # Destroy one queue region rule, all the rules become invalid.
> - self.dut.send_expect("flow destroy 0 rule 2", "testpmd> ")
> - rss_queue = ["0"]
> + self.dut.send_expect("flow destroy 0 rule 6", "testpmd> ")
> + rss_queue = ["7", "8", "10", "11", "12", "14", "15"]
> self.send_and_check(self.prio_pkt1, rss_queue)
> self.send_and_check(self.prio_pkt2, rss_queue)
> self.send_and_check(self.prio_pkt3, rss_queue) @@ -657,7 +766,7 @@
> class TestRSS_to_Rteflow(TestCase):
>
> # Create a rss queue rule.
> self.dut.send_expect(
> - "flow create 0 ingress pattern end actions rss queues 8 10 11 12 15
> end / end", "created")
> + "flow create 0 ingress pattern end actions rss types end
> + queues 8 10 11 12 15 end / end", "created")
> # Set a queue region with invalid queue ID
> self.dut.send_expect(
> "flow create 0 ingress pattern vlan tci is 0x2000 / end actions rss
> queues 8 9 end / end", "error") @@ -695,7 +804,9 @@ class
> TestRSS_to_Rteflow(TestCase):
>
> # Create a RSS queue rule.
> self.dut.send_expect(
> - "flow create 0 ingress pattern end actions rss queues 6 7 end / end",
> "testpmd> ")
> + "flow create 0 ingress pattern end actions rss types end queues 6 7
> end / end", "testpmd> ")
> + self.dut.send_expect(
> + "flow create 0 ingress pattern eth / ipv4 / udp / end
> + actions rss types ipv4-udp end queues end / end", "testpmd> ")
> # send the packets and verify the results
> rss_queue = ["1"]
> self.send_and_check(self.pkt2, rss_queue)
> --
> 1.8.3.1
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2020-05-06 5:42 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-04-30 8:35 [dts] [PATCH v1] tests/TestSuite_rss_to_rte_flow:modify create flow rule commands Xu Hailin
2020-04-30 8:45 ` Xu, HailinX
2020-05-06 5:41 ` Tu, Lijuan
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).