From: ChenBo <box.c.chen@intel.com>
To: dts@dpdk.org
Cc: ChenBo <box.c.chen@intel.com>
Subject: [dts] [PATCH V1] test/ddp_l2tpv3: Adapt to Python 3 format
Date: Wed, 29 Apr 2020 17:13:26 +0800 [thread overview]
Message-ID: <20200429091326.17171-1-box.c.chen@intel.com> (raw)
Adapt to Python 3 format, remove invalid variables
Signed-off-by: ChenBo <box.c.chen@intel.com>
---
tests/TestSuite_ddp_l2tpv3.py | 427 +++++++++++++++++++---------------
1 file changed, 235 insertions(+), 192 deletions(-)
diff --git a/tests/TestSuite_ddp_l2tpv3.py b/tests/TestSuite_ddp_l2tpv3.py
index 710a069..552232b 100644
--- a/tests/TestSuite_ddp_l2tpv3.py
+++ b/tests/TestSuite_ddp_l2tpv3.py
@@ -35,28 +35,26 @@ l2tpv3 test script.
"""
import time
import re
-import sys
-import utils
from test_case import TestCase
from pmd_output import PmdOutput
-from settings import get_nic_name
from scapy.all import *
import random
+
+
class TestDdpL2tpv3(TestCase):
def set_up_all(self):
+ self.dut.session.copy_file_to('dep/l2tpv3oip-l4.pkg', "/tmp/")
+ self.dut_testpmd = PmdOutput(self.dut)
self.dut_ports = self.dut.get_ports(self.nic)
- profile_file = 'dep/l2tpv3oip-l4.pkg'
- profile_dst = "/tmp/"
- self.dut.session.copy_file_to(profile_file, profile_dst)
+ self.used_dut_port = self.dut_ports[0]
+ tester_port = self.tester.get_local_port(self.used_dut_port)
+ self.tester_intf = self.tester.get_interface(tester_port)
out = self.dut.send_expect("cat config/common_base", "]# ", 10)
self.PF_Q_strip = 'CONFIG_RTE_LIBRTE_I40E_QUEUE_NUM_PER_PF'
pattern = "(%s=)(\d*)" % self.PF_Q_strip
self.PF_QUEUE = self.element_strip(out, pattern)
- self.used_dut_port = self.dut_ports[0]
- tester_port = self.tester.get_local_port(self.used_dut_port)
- self.tester_intf = self.tester.get_interface(tester_port)
- self.dut_testpmd = PmdOutput(self.dut)
+ self.PF_Q_strip = 'CONFIG_RTE_LIBRTE_I40E_QUEUE_NUM_PER_PF'
def set_up(self):
self.load_profile()
@@ -69,13 +67,12 @@ class TestDdpL2tpv3(TestCase):
s = re.compile(pattern)
res = s.search(out)
if res is None:
- print 'Queue number not in output.'
+ print('Queue number not in output.')
return None
else:
result = res.group(2)
return int(result)
-
def load_profile(self):
"""
Load profile to update FVL configuration tables, profile will be
@@ -84,15 +81,16 @@ class TestDdpL2tpv3(TestCase):
self.dut_testpmd.start_testpmd(
"Default", "--pkt-filter-mode=perfect --port-topology=chained \
--txq=%s --rxq=%s --disable-rss"
- % (self.PF_QUEUE, self.PF_QUEUE))
- self.dut_testpmd.execute_cmd('port stop 0')
+ % (self.PF_QUEUE, self.PF_QUEUE))
+ self.dut_testpmd.execute_cmd('port stop all')
time.sleep(1)
self.dut_testpmd.execute_cmd(
'ddp add 0 /tmp/l2tpv3oip-l4.pkg,/tmp/l2tpv3oip-l4.bak')
out = self.dut_testpmd.execute_cmd('ddp get list 0')
self.verify("Profile number is: 1" in out,
"Failed to load ddp profile!!!")
- self.dut_testpmd.execute_cmd('port start 0')
+ self.dut_testpmd.execute_cmd('port start all')
+ time.sleep(3)
def l2tpv3pkts(self, keyword):
"""
@@ -101,7 +99,7 @@ class TestDdpL2tpv3(TestCase):
pkt = []
if keyword is not 'def':
if keyword is "l2tpv3oipv4":
- pkt.append("Ether()/IP(proto=115)/Raw('\\x00\\x00\\x03\\xe9')")
+ pkt.append("Ether()/IP(proto=115)/Raw('\\x00\\x00\\x03\\xe9')")
pkt.append("Ether()/IP(proto=115)/Raw('\\x00\\x00\\x03\\fe9')")
if keyword is "l2tpv3oipv4_dst":
pkt.append("Ether()/IP(dst=\"8.8.8.8\",proto=115)/Raw('\\x00\\x00\\x03\\xe9')")
@@ -128,16 +126,20 @@ class TestDdpL2tpv3(TestCase):
pkt.append("Ether()/IPv6(src=\"1:2:3:4:5:6:7:8\",nh=115)/Raw('\\x00\\x00\\x03\\xf9')")
pkt.append("Ether()/IPv6(src=\"1111:2:3:4:5:6:7:8\",nh=115)/Raw('\\x00\\x00\\x03\\xe9')")
if keyword is "l2tpv3oipv6_src_dst":
- pkt.append("Ether()/IPv6(src=\"2:3:4:5:6:7:8:9\",dst=\"6:5:4:3:2:1:8:9\",nh=115)/Raw('\\x00\\x00\\x03\\xe9')")
- pkt.append("Ether()/IPv6(src=\"2:3:4:5:6:7:8:9\",dst=\"6:5:4:3:2:1:8:9\",nh=115)/Raw('\\x00\\x00\\x03\\xf9')")
- pkt.append("Ether()/IPv6(src=\"2222:3:4:5:6:7:8:9\",dst=\"6:5:4:3:2:1:8:9\",nh=115)/Raw('\\x00\\x00\\x03\\xe9')")
- pkt.append("Ether()/IPv6(src=\"2:3:4:5:6:7:8:9\",dst=\"6666:5:4:3:2:1:8:9\",nh=115)/Raw('\\x00\\x00\\x03\\xe9')")
+ pkt.append(
+ "Ether()/IPv6(src=\"2:3:4:5:6:7:8:9\",dst=\"6:5:4:3:2:1:8:9\",nh=115)/Raw('\\x00\\x00\\x03\\xe9')")
+ pkt.append(
+ "Ether()/IPv6(src=\"2:3:4:5:6:7:8:9\",dst=\"6:5:4:3:2:1:8:9\",nh=115)/Raw('\\x00\\x00\\x03\\xf9')")
+ pkt.append(
+ "Ether()/IPv6(src=\"2222:3:4:5:6:7:8:9\",dst=\"6:5:4:3:2:1:8:9\",nh=115)/Raw('\\x00\\x00\\x03\\xe9')")
+ pkt.append(
+ "Ether()/IPv6(src=\"2:3:4:5:6:7:8:9\",dst=\"6666:5:4:3:2:1:8:9\",nh=115)/Raw('\\x00\\x00\\x03\\xe9')")
if keyword is "l2tpv3_ipv4_ipv6":
pkt.append("Ether()/IP(proto=115)/Raw('\\x00\\x00\\x03\\xe9')")
pkt.append("Ether()/IP(proto=115)/Raw('\\x00\\x00\\x03\\xf9')")
pkt.append("Ether()/IPv6(nh=115)/Raw('\\x00\\x00\\x03\\xe9')")
pkt.append("Ether()/IPv6(nh=115)/Raw('\\x00\\x00\\x03\\xf9')")
- if keyword is "l2tpv3oip_v4src_v6src" :
+ if keyword is "l2tpv3oip_v4src_v6src":
pkt.append("Ether()/IP(src=\"1.3.5.7\",proto=115)/Raw('\\x00\\x00\\x03\\xe9')")
pkt.append("Ether()/IP(src=\"1.3.5.7\",proto=115)/Raw('\\x00\\x00\\x03\\xa9')")
pkt.append("Ether()/IP(src=\"11.3.5.7\",proto=115)/Raw('\\x00\\x00\\x03\\xe9')")
@@ -156,10 +158,14 @@ class TestDdpL2tpv3(TestCase):
pkt.append("Ether()/IP(src=\"9.8.7.6\",dst=\"4.5.6.7\",proto=115)/Raw('\\x00\\x00\\x03\\xf9')")
pkt.append("Ether()/IP(src=\"99.8.7.6\",dst=\"4.5.6.7\",proto=115)/Raw('\\x00\\x00\\x03\\xe9')")
pkt.append("Ether()/IP(src=\"9.8.7.6\",dst=\"44.5.6.7\",proto=115)/Raw('\\x00\\x00\\x03\\xe9')")
- pkt.append("Ether()/IPv6(src=\"1:2:3:4:5:6:7:8\",dst=\"9:8:7:6:5:4:3:2\",nh=115)/Raw('\\x00\\x00\\x03\\xe9')")
- pkt.append("Ether()/IPv6(src=\"1:2:3:4:5:6:7:8\",dst=\"9:8:7:6:5:4:3:2\",nh=115)/Raw('\\x00\\x00\\x03\\xf9')")
- pkt.append("Ether()/IPv6(src=\"1111:2:3:4:5:6:7:8\",dst=\"9:8:7:6:5:4:3:2\",nh=115)/Raw('\\x00\\x00\\x03\\xe9')")
- pkt.append("Ether()/IPv6(src=\"1:2:3:4:5:6:7:8\",dst=\"9999:8:7:6:5:4:3:2\",nh=115)/Raw('\\x00\\x00\\x03\\xe9')")
+ pkt.append(
+ "Ether()/IPv6(src=\"1:2:3:4:5:6:7:8\",dst=\"9:8:7:6:5:4:3:2\",nh=115)/Raw('\\x00\\x00\\x03\\xe9')")
+ pkt.append(
+ "Ether()/IPv6(src=\"1:2:3:4:5:6:7:8\",dst=\"9:8:7:6:5:4:3:2\",nh=115)/Raw('\\x00\\x00\\x03\\xf9')")
+ pkt.append(
+ "Ether()/IPv6(src=\"1111:2:3:4:5:6:7:8\",dst=\"9:8:7:6:5:4:3:2\",nh=115)/Raw('\\x00\\x00\\x03\\xe9')")
+ pkt.append(
+ "Ether()/IPv6(src=\"1:2:3:4:5:6:7:8\",dst=\"9999:8:7:6:5:4:3:2\",nh=115)/Raw('\\x00\\x00\\x03\\xe9')")
if keyword is "l2tpv3oip_v4_v6_udp":
pkt.append("Ether()/IP(dst=\"9.7.5.3\",proto=115)/Raw('\\x00\\x00\\x03\\xe9')")
pkt.append("Ether()/IP(dst=\"9.7.5.3\",proto=115)/Raw('\\x00\\x00\\x03\\xb9')")
@@ -168,27 +174,27 @@ class TestDdpL2tpv3(TestCase):
pkt.append("Ether()/IP()/UDP()")
return pkt
- def send_and_verify(self,keyword='def'):
+ def send_and_verify(self, keyword='def'):
"""
Send packets and verify result.
"""
pkt = self.l2tpv3pkts(keyword)
- qnum=[]
+ qnum = []
for i in range(len(pkt)):
- self.tester.scapy_append('sendp([%s], iface="%s")'%(pkt[i], self.tester_intf))
- self.tester.scapy_execute()
- out = self.dut.get_session_output(timeout=2)
- pattern = "port (\d)/queue (\d{1,2}): received (\d) packets"
- qnum.append(self.element_strip(out, pattern))
+ self.tester.scapy_append('sendp([%s], iface="%s")' % (pkt[i], self.tester_intf))
+ self.tester.scapy_execute()
+ out = self.dut.get_session_output(timeout=2)
+ pattern = "port (\d)/queue (\d{1,2}): received (\d) packets"
+ qnum.append(self.element_strip(out, pattern))
return qnum
- def run_fd_test(self, keyword,crlwords_ipv4,crlwords_ipv6):
+ def run_fd_test(self, keyword, crlwords_ipv4, crlwords_ipv6):
"""
Configure Flow director rules.
keywords: keywords have IPv4/IPv6 SIP DIP and UDP
"""
- self.dut_testpmd.execute_cmd('port stop 0')
+ self.dut_testpmd.execute_cmd('port stop all')
self.dut_testpmd.execute_cmd('port config 0 pctype 28 fdir_inset clear all')
self.dut_testpmd.execute_cmd('port config 0 pctype 38 fdir_inset clear all')
if crlwords_ipv4 is not None:
@@ -197,248 +203,282 @@ class TestDdpL2tpv3(TestCase):
if crlwords_ipv6 is not None:
for field in crlwords_ipv6:
self.dut_testpmd.execute_cmd('port config 0 pctype 38 fdir_inset set field {}'.format(field))
- self.dut_testpmd.execute_cmd('port start 0')
+ self.dut_testpmd.execute_cmd('port start all')
self.dut_testpmd.execute_cmd('start')
self.dut_testpmd.execute_cmd('set verbose 1')
- qdef=[]
+ qdef = []
qnum = self.send_and_verify(keyword)
for i in range(len(qnum)):
self.verify(qnum[i] == 0, "Receive packet from wrong queue!!!")
- queue = random.randint(1, self.PF_QUEUE - 1)
+ queue = random.randint(1, self.PF_QUEUE - 1)
if 'l2tpv3oipv4' is keyword:
-
- self.dut_testpmd.execute_cmd( 'flow create 0 ingress pattern eth / ipv4 / l2tpv3oip session_id is 1001 / end actions queue index {} / end'.format(queue))
- qdef.append(queue) #Queue Number as configured in the rule for matched sessionID
- qdef.append(0) #Default Queue number to check for in case of non matching sessionID
+ self.dut_testpmd.execute_cmd(
+ 'flow create 0 ingress pattern eth / ipv4 / l2tpv3oip session_id is 1001 / end actions queue index {} / end'.format(
+ queue))
+ qdef.append(queue) # Queue Number as configured in the rule for matched sessionID
+ qdef.append(0) # Default Queue number to check for in case of non matching sessionID
if 'l2tpv3oipv4_dst' is keyword:
- self.dut_testpmd.execute_cmd( 'flow create 0 ingress pattern eth / ipv4 dst is 8.8.8.8 / l2tpv3oip session_id is 1001 / end actions queue index {} / end'.format(queue))
- qdef.append(queue) #Queue Number as configured in the rule for matched sessionID
- qdef.append(0) #Default Queue number to check for in case of non matching sessionID
- qdef.append(0) #Default Queue number to check for in case of non matching DIP
-
+ self.dut_testpmd.execute_cmd(
+ 'flow create 0 ingress pattern eth / ipv4 dst is 8.8.8.8 / l2tpv3oip session_id is 1001 / end actions queue index {} / end'.format(
+ queue))
+ qdef.append(queue) # Queue Number as configured in the rule for matched sessionID
+ qdef.append(0) # Default Queue number to check for in case of non matching sessionID
+ qdef.append(0) # Default Queue number to check for in case of non matching DIP
if 'l2tpv3oipv4_src' is keyword:
- self.dut_testpmd.execute_cmd( 'flow create 0 ingress pattern eth / ipv4 src is 1.1.1.1 / l2tpv3oip session_id is 1001 / end actions queue index {} / end'.format(queue))
- qdef.append(queue) #Queue Number as configured in the rule for matched sessionID
- qdef.append(0) #Default Queue number to check for in case of non matching sessionID
- qdef.append(0) #Default Queue number to check for in case of non matching SIP
+ self.dut_testpmd.execute_cmd(
+ 'flow create 0 ingress pattern eth / ipv4 src is 1.1.1.1 / l2tpv3oip session_id is 1001 / end actions queue index {} / end'.format(
+ queue))
+ qdef.append(queue) # Queue Number as configured in the rule for matched sessionID
+ qdef.append(0) # Default Queue number to check for in case of non matching sessionID
+ qdef.append(0) # Default Queue number to check for in case of non matching SIP
if 'l2tpv3oipv4_src_dst' is keyword:
- self.dut_testpmd.execute_cmd( 'flow create 0 ingress pattern eth / ipv4 src is 5.5.5.5 dst is 2.2.2.2 / l2tpv3oip session_id is 1001 / end actions queue index {} / end'.format(queue))
- qdef.append(queue) #Queue Number as configured in the rule for matched sessionID
- qdef.append(0) #Default Queue number to check for in case of non matching sessionID
- qdef.append(0) #Default Queue number to check for in case of non matching SIP
- qdef.append(0) #Default Queue number to check for in case of non matching DIP
+ self.dut_testpmd.execute_cmd(
+ 'flow create 0 ingress pattern eth / ipv4 src is 5.5.5.5 dst is 2.2.2.2 / l2tpv3oip session_id is 1001 / end actions queue index {} / end'.format(
+ queue))
+ qdef.append(queue) # Queue Number as configured in the rule for matched sessionID
+ qdef.append(0) # Default Queue number to check for in case of non matching sessionID
+ qdef.append(0) # Default Queue number to check for in case of non matching SIP
+ qdef.append(0) # Default Queue number to check for in case of non matching DIP
if 'l2tpv3oipv6' is keyword:
- self.dut_testpmd.execute_cmd( 'flow create 0 ingress pattern eth / ipv6 / l2tpv3oip session_id is 1001 / end actions queue index {} / end'.format(queue))
- qdef.append(queue) #Queue Number as configured in the rule for matched sessionID
- qdef.append(0) #Default Queue number to check for in case of non matching sessionID
+ self.dut_testpmd.execute_cmd(
+ 'flow create 0 ingress pattern eth / ipv6 / l2tpv3oip session_id is 1001 / end actions queue index {} / end'.format(
+ queue))
+ qdef.append(queue) # Queue Number as configured in the rule for matched sessionID
+ qdef.append(0) # Default Queue number to check for in case of non matching sessionID
if 'l2tpv3oipv6_dst' is keyword:
- self.dut_testpmd.execute_cmd( 'flow create 0 ingress pattern eth / ipv6 dst is 8:7:6:5:4:3:2:1 / l2tpv3oip session_id is 1001 / end actions queue index {} / end'.format(queue))
- qdef.append(queue) #Queue Number as configured in the rule for matched sessionID
- qdef.append(0) #Default Queue number to check for in case of non matching sessionID
- qdef.append(0) #Default Queue number to check for in case of non matching DIP
+ self.dut_testpmd.execute_cmd(
+ 'flow create 0 ingress pattern eth / ipv6 dst is 8:7:6:5:4:3:2:1 / l2tpv3oip session_id is 1001 / end actions queue index {} / end'.format(
+ queue))
+ qdef.append(queue) # Queue Number as configured in the rule for matched sessionID
+ qdef.append(0) # Default Queue number to check for in case of non matching sessionID
+ qdef.append(0) # Default Queue number to check for in case of non matching DIP
if 'l2tpv3oipv6_src' is keyword:
- self.dut_testpmd.execute_cmd('flow create 0 ingress pattern eth / ipv6 src is 1:2:3:4:5:6:7:8 / l2tpv3oip session_id is 1001 / end actions queue index {} / end'.format(queue))
- qdef.append(queue) #Queue Number as configured in the rule for matched sessionID
- qdef.append(0) #Default Queue number to check for in case of non matching sessionID
- qdef.append(0) #Default Queue number to check for in case of non matching SIP
+ self.dut_testpmd.execute_cmd(
+ 'flow create 0 ingress pattern eth / ipv6 src is 1:2:3:4:5:6:7:8 / l2tpv3oip session_id is 1001 / end actions queue index {} / end'.format(
+ queue))
+ qdef.append(queue) # Queue Number as configured in the rule for matched sessionID
+ qdef.append(0) # Default Queue number to check for in case of non matching sessionID
+ qdef.append(0) # Default Queue number to check for in case of non matching SIP
if 'l2tpv3oipv6_src_dst' is keyword:
- self.dut_testpmd.execute_cmd( 'flow create 0 ingress pattern eth / ipv6 src is 2:3:4:5:6:7:8:9 dst is 6:5:4:3:2:1:8:9 / l2tpv3oip session_id is 1001 / end actions queue index {} / end'.format(queue))
- qdef.append(queue) #Queue Number as configured in the rule for matched sessionID
- qdef.append(0) #Default Queue number to check for in case of non matching sessionID
- qdef.append(0) #Default Queue number to check for in case of non matching SIP
- qdef.append(0) #Default Queue number to check for in case of non matching DIP
+ self.dut_testpmd.execute_cmd(
+ 'flow create 0 ingress pattern eth / ipv6 src is 2:3:4:5:6:7:8:9 dst is 6:5:4:3:2:1:8:9 / l2tpv3oip session_id is 1001 / end actions queue index {} / end'.format(
+ queue))
+ qdef.append(queue) # Queue Number as configured in the rule for matched sessionID
+ qdef.append(0) # Default Queue number to check for in case of non matching sessionID
+ qdef.append(0) # Default Queue number to check for in case of non matching SIP
+ qdef.append(0) # Default Queue number to check for in case of non matching DIP
if 'l2tpv3_ipv4_ipv6' is keyword:
- self.dut_testpmd.execute_cmd( 'flow create 0 ingress pattern eth / ipv4 / l2tpv3oip session_id is 1001 / end actions queue index {} / end'.format(queue))
- qdef.append(queue) #Queue Number as configured in the rule for matched sessionID
- qdef.append(0) #Default Queue number to check for in case of non matching sessionID
+ self.dut_testpmd.execute_cmd(
+ 'flow create 0 ingress pattern eth / ipv4 / l2tpv3oip session_id is 1001 / end actions queue index {} / end'.format(
+ queue))
+ qdef.append(queue) # Queue Number as configured in the rule for matched sessionID
+ qdef.append(0) # Default Queue number to check for in case of non matching sessionID
queue = random.randint(1, self.PF_QUEUE - 1)
- out=self.dut_testpmd.execute_cmd( 'flow create 0 ingress pattern eth / ipv6 / l2tpv3oip session_id is 1001 / end actions queue index {} / end'.format(queue))
- qdef.append(queue) #Queue Number as configured in the rule for matched sessionID
- qdef.append(0) #Default Queue number to check for in case of non matching sessionID
+ self.dut_testpmd.execute_cmd(
+ 'flow create 0 ingress pattern eth / ipv6 / l2tpv3oip session_id is 1001 / end actions queue index {} / end'.format(
+ queue))
+ qdef.append(queue) # Queue Number as configured in the rule for matched sessionID
+ qdef.append(0) # Default Queue number to check for in case of non matching sessionID
if 'l2tpv3oip_v4src_v6src' is keyword:
- self.dut_testpmd.execute_cmd( 'flow create 0 ingress pattern eth / ipv4 src is 1.3.5.7 / l2tpv3oip session_id is 1001 / end actions queue index {} / end'.format(queue))
- qdef.append(queue) #Queue Number as configured in the rule for matched sessionID
- qdef.append(0) #Default Queue number to check for in case of non matching sessionID
- qdef.append(0) #Default Queue number to check for in case of non matching IPv4 SIP
+ self.dut_testpmd.execute_cmd(
+ 'flow create 0 ingress pattern eth / ipv4 src is 1.3.5.7 / l2tpv3oip session_id is 1001 / end actions queue index {} / end'.format(
+ queue))
+ qdef.append(queue) # Queue Number as configured in the rule for matched sessionID
+ qdef.append(0) # Default Queue number to check for in case of non matching sessionID
+ qdef.append(0) # Default Queue number to check for in case of non matching IPv4 SIP
queue = random.randint(1, self.PF_QUEUE - 1)
- out=self.dut_testpmd.execute_cmd( 'flow create 0 ingress pattern eth / ipv6 src is 1:3:5:7:9:2:4:6 / l2tpv3oip session_id is 1001 / end actions queue index {} / end'.format(queue))
- qdef.append(queue) #Queue Number as configured in the rule for matched sessionID
- qdef.append(0) #Default Queue number to check for in case of non matching sessionID
- qdef.append(0) #Default Queue number to check for in case of non matching IPv6 SIP
+ self.dut_testpmd.execute_cmd(
+ 'flow create 0 ingress pattern eth / ipv6 src is 1:3:5:7:9:2:4:6 / l2tpv3oip session_id is 1001 / end actions queue index {} / end'.format(
+ queue))
+ qdef.append(queue) # Queue Number as configured in the rule for matched sessionID
+ qdef.append(0) # Default Queue number to check for in case of non matching sessionID
+ qdef.append(0) # Default Queue number to check for in case of non matching IPv6 SIP
if 'l2tpv3oip_v4dst_v6dst' is keyword:
- self.dut_testpmd.execute_cmd( 'flow create 0 ingress pattern eth / ipv4 dst is 9.7.5.3 / l2tpv3oip session_id is 1001 / end actions queue index {} / end'.format(queue))
- qdef.append(queue) #Queue Number as configured in the rule for matched sessionID
- qdef.append(0) #Default Queue number to check for in case of non matching sessionID
- qdef.append(0) #Default Queue number to check for in case of non matching IPv4 DIP
+ self.dut_testpmd.execute_cmd(
+ 'flow create 0 ingress pattern eth / ipv4 dst is 9.7.5.3 / l2tpv3oip session_id is 1001 / end actions queue index {} / end'.format(
+ queue))
+ qdef.append(queue) # Queue Number as configured in the rule for matched sessionID
+ qdef.append(0) # Default Queue number to check for in case of non matching sessionID
+ qdef.append(0) # Default Queue number to check for in case of non matching IPv4 DIP
queue = random.randint(1, self.PF_QUEUE - 1)
- self.dut_testpmd.execute_cmd( 'flow create 0 ingress pattern eth / ipv6 dst is 2:4:6:8:1:3:5:7 / l2tpv3oip session_id is 1001 / end actions queue index {} / end'.format(queue))
- qdef.append(queue) #Queue Number as configured in the rule for matched sessionID
- qdef.append(0) #Default Queue number to check for in case of non matching sessionID
- qdef.append(0) #Default Queue number to check for in case of non matching IPv6 DIP
+ self.dut_testpmd.execute_cmd(
+ 'flow create 0 ingress pattern eth / ipv6 dst is 2:4:6:8:1:3:5:7 / l2tpv3oip session_id is 1001 / end actions queue index {} / end'.format(
+ queue))
+ qdef.append(queue) # Queue Number as configured in the rule for matched sessionID
+ qdef.append(0) # Default Queue number to check for in case of non matching sessionID
+ qdef.append(0) # Default Queue number to check for in case of non matching IPv6 DIP
if 'l2tpv3oip_v4srcdst_v6srcdst' is keyword:
- self.dut_testpmd.execute_cmd( 'flow create 0 ingress pattern eth / ipv4 src is 9.8.7.6 dst is 4.5.6.7 / l2tpv3oip session_id is 1001 / end actions queue index {} / end'.format(queue))
- qdef.append(queue) #Queue Number as configured in the rule for matched sessionID
- qdef.append(0) #Default Queue number to check for in case of non matching sessionID
- qdef.append(0) #Default Queue number to check for in case of non matching IPv4 SIP
- qdef.append(0) #Default Queue number to check for in case of non matching IPv4 DIP
+ self.dut_testpmd.execute_cmd(
+ 'flow create 0 ingress pattern eth / ipv4 src is 9.8.7.6 dst is 4.5.6.7 / l2tpv3oip session_id is 1001 / end actions queue index {} / end'.format(
+ queue))
+ qdef.append(queue) # Queue Number as configured in the rule for matched sessionID
+ qdef.append(0) # Default Queue number to check for in case of non matching sessionID
+ qdef.append(0) # Default Queue number to check for in case of non matching IPv4 SIP
+ qdef.append(0) # Default Queue number to check for in case of non matching IPv4 DIP
queue = random.randint(1, self.PF_QUEUE - 1)
- self.dut_testpmd.execute_cmd( 'flow create 0 ingress pattern eth / ipv6 src is 1:2:3:4:5:6:7:8 dst is 9:8:7:6:5:4:3:2 / l2tpv3oip session_id is 1001 / end actions queue index {} / end'.format(queue))
- qdef.append(queue) #Queue Number as configured in the rule for matched sessionID
- qdef.append(0) #Default Queue number to check for in case of non matching sessionID
- qdef.append(0) #Default Queue number to check for in case of non matching IPv6 SIP
- qdef.append(0) #Default Queue number to check for in case of non matching IPv6 DIP
+ self.dut_testpmd.execute_cmd(
+ 'flow create 0 ingress pattern eth / ipv6 src is 1:2:3:4:5:6:7:8 dst is 9:8:7:6:5:4:3:2 / l2tpv3oip session_id is 1001 / end actions queue index {} / end'.format(
+ queue))
+ qdef.append(queue) # Queue Number as configured in the rule for matched sessionID
+ qdef.append(0) # Default Queue number to check for in case of non matching sessionID
+ qdef.append(0) # Default Queue number to check for in case of non matching IPv6 SIP
+ qdef.append(0) # Default Queue number to check for in case of non matching IPv6 DIP
if 'l2tpv3oip_v4_v6_udp' is keyword:
- self.dut_testpmd.execute_cmd( 'flow create 0 ingress pattern eth / ipv4 / l2tpv3oip session_id is 1001 / end actions queue index {} / end'.format(queue))
- qdef.append(queue) #Queue Number as configured in the rule for matched sessionID
- qdef.append(0) #Default Queue number to check for in case of non matching sessionID
+ self.dut_testpmd.execute_cmd(
+ 'flow create 0 ingress pattern eth / ipv4 / l2tpv3oip session_id is 1001 / end actions queue index {} / end'.format(
+ queue))
+ qdef.append(queue) # Queue Number as configured in the rule for matched sessionID
+ qdef.append(0) # Default Queue number to check for in case of non matching sessionID
queue = random.randint(1, self.PF_QUEUE - 1)
- self.dut_testpmd.execute_cmd( 'flow create 0 ingress pattern eth / ipv6 / l2tpv3oip session_id is 1001 / end actions queue index {} / end'.format(queue))
- qdef.append(queue) #Queue Number as configured in the rule for matched sessionID
- qdef.append(0) #Default Queue number to check for in case of non matching sessionID
+ self.dut_testpmd.execute_cmd(
+ 'flow create 0 ingress pattern eth / ipv6 / l2tpv3oip session_id is 1001 / end actions queue index {} / end'.format(
+ queue))
+ qdef.append(queue) # Queue Number as configured in the rule for matched sessionID
+ qdef.append(0) # Default Queue number to check for in case of non matching sessionID
queue = random.randint(1, self.PF_QUEUE - 1)
- self.dut_testpmd.execute_cmd( 'flow create 0 ingress pattern eth / ipv4 / udp / end actions queue index {} / end'.format(queue))
- qdef.append(queue) #Queue Number as configured in the rule
+ self.dut_testpmd.execute_cmd(
+ 'flow create 0 ingress pattern eth / ipv4 / udp / end actions queue index {} / end'.format(queue))
+ qdef.append(queue) # Queue Number as configured in the rule
- qnum=self.send_and_verify(keyword)
+ qnum = self.send_and_verify(keyword)
for i in range(len(qdef)):
- self.verify(qdef[i] == qnum[i], "Receive packet from wrong queue!!!")
- self.dut_testpmd.execute_cmd("flow flush 0") # Delete all the flow director rules
+ self.verify(qdef[i] == qnum[i], "Receive packet from wrong queue!!!")
+ self.dut_testpmd.execute_cmd("flow flush 0") # Delete all the flow director rules
def test_l2tpv3oipv4(self):
"""
L2TPv3 PAY is supported by NVM with profile updated.
- Default flow director input set is sessionID
+ Default flow director input set is sessionID
flow director works to send matched packets to configured queue,
otherwise to queue 0.
"""
keyword = 'l2tpv3oipv4'
- crlwords_ipv4=range(44,46)
- crlwords_ipv6=None
- self.run_fd_test(keyword,crlwords_ipv4,crlwords_ipv6)
+ crlwords_ipv4 = range(44, 46)
+ crlwords_ipv6 = None
+ self.run_fd_test(keyword, crlwords_ipv4, crlwords_ipv6)
def test_l2tpv3oipv4_src(self):
"""
Flow director input set is sessionID + SIP for pctype 28
"""
- crlwords_ipv4=list(range(15,17))+list(range(44,46))
- crlwords_ipv6=None
+ crlwords_ipv4 = list(range(15, 17)) + list(range(44, 46))
+ crlwords_ipv6 = None
keyword = 'l2tpv3oipv4_src'
- self.run_fd_test(keyword,crlwords_ipv4,crlwords_ipv6)
+ self.run_fd_test(keyword, crlwords_ipv4, crlwords_ipv6)
def test_l2tpv3oipv4_dst(self):
"""
Flow director input set is sessionID + DIP for pctype 28
"""
- crlwords_ipv4=list(range(27,29))+list(range(44,46))
- crlwords_ipv6=None
+ crlwords_ipv4 = list(range(27, 29)) + list(range(44, 46))
+ crlwords_ipv6 = None
keyword = 'l2tpv3oipv4_dst'
- self.run_fd_test(keyword,crlwords_ipv4,crlwords_ipv6)
+ self.run_fd_test(keyword, crlwords_ipv4, crlwords_ipv6)
def test_l2tpv3oipv4_src_dst(self):
"""
Flow director input set is sessionID + SIP + DIP for pctype 28
"""
- crlwords_ipv4=list(range(15,17))+list(range(27,29))+list(range(44,46))
- crlwords_ipv6=None
+ crlwords_ipv4 = list(range(15, 17)) + list(range(27, 29)) + list(range(44, 46))
+ crlwords_ipv6 = None
keyword = 'l2tpv3oipv4_src_dst'
- self.run_fd_test(keyword,crlwords_ipv4,crlwords_ipv6)
+ self.run_fd_test(keyword, crlwords_ipv4, crlwords_ipv6)
def test_l2tpv3oipv6(self):
-
"""
Flow director input set is sessionID for pctyp 38
"""
- crlwords_ipv6=range(44,46)
- crlwords_ipv4=None
+ crlwords_ipv6 = range(44, 46)
+ crlwords_ipv4 = None
keyword = 'l2tpv3oipv6'
- self.run_fd_test(keyword,crlwords_ipv4,crlwords_ipv6)
+ self.run_fd_test(keyword, crlwords_ipv4, crlwords_ipv6)
def test_l2tpv3oipv6_dst(self):
"""
Flow director input set is sessionID + DIP for pctype 38
"""
- crlwords_ipv4=None
- crlwords_ipv6=list(range(21,29))+list(range(44,46))
+ crlwords_ipv4 = None
+ crlwords_ipv6 = list(range(21, 29)) + list(range(44, 46))
keyword = 'l2tpv3oipv6_dst'
- self.run_fd_test(keyword,crlwords_ipv4,crlwords_ipv6)
+ self.run_fd_test(keyword, crlwords_ipv4, crlwords_ipv6)
def test_l2tpv3oipv6_src(self):
"""
Flow director input set is sessionID + SIP for pctype 38
"""
- crlwords_ipv4=None
- crlwords_ipv6=list(range(13,21))+list(range(44,46))
+ crlwords_ipv4 = None
+ crlwords_ipv6 = list(range(13, 21)) + list(range(44, 46))
keyword = 'l2tpv3oipv6_src'
- self.run_fd_test(keyword,crlwords_ipv4,crlwords_ipv6)
+ self.run_fd_test(keyword, crlwords_ipv4, crlwords_ipv6)
def test_l2tpv3oipv6_src_dst(self):
"""
Flow director input set is sessionID + SIP + DIP for pctype 38
"""
- crlwords_ipv4=None
- crlwords_ipv6=list(range(13,29))+list(range(44,46))
+ crlwords_ipv4 = None
+ crlwords_ipv6 = list(range(13, 29)) + list(range(44, 46))
keyword = 'l2tpv3oipv6_src_dst'
- self.run_fd_test(keyword,crlwords_ipv4,crlwords_ipv6)
+ self.run_fd_test(keyword, crlwords_ipv4, crlwords_ipv6)
def test_l2tpv3_ipv4_ipv6(self):
"""
Flow director input set is sessionID for pctype 28 and 38
"""
- crlwords_ipv4=range(44,46)
- crlwords_ipv6=range(44,46)
+ crlwords_ipv4 = range(44, 46)
+ crlwords_ipv6 = range(44, 46)
keyword = 'l2tpv3_ipv4_ipv6'
- self.run_fd_test(keyword,crlwords_ipv4,crlwords_ipv6)
+ self.run_fd_test(keyword, crlwords_ipv4, crlwords_ipv6)
def test_l2tpv3oip_v4src_v6src(self):
"""
Flow director input set is sessionID + SIP for pctype 28 and 38
"""
- crlwords_ipv4=list(range(15,17))+list(range(44,46))
- crlwords_ipv6=list(range(13,21))+list(range(44,46))
+ crlwords_ipv4 = list(range(15, 17)) + list(range(44, 46))
+ crlwords_ipv6 = list(range(13, 21)) + list(range(44, 46))
keyword = 'l2tpv3oip_v4src_v6src'
- self.run_fd_test(keyword,crlwords_ipv4,crlwords_ipv6)
+ self.run_fd_test(keyword, crlwords_ipv4, crlwords_ipv6)
def test_l2tpv3oip_v4dst_v6dst(self):
"""
Flow director input set is sessionID + DIP for pctype 28 and 38
"""
- crlwords_ipv4=list(range(27,29))+list(range(44,46))
- crlwords_ipv6=list(range(21,29))+list(range(44,46))
+ crlwords_ipv4 = list(range(27, 29)) + list(range(44, 46))
+ crlwords_ipv6 = list(range(21, 29)) + list(range(44, 46))
keyword = 'l2tpv3oip_v4dst_v6dst'
- self.run_fd_test(keyword,crlwords_ipv4,crlwords_ipv6)
+ self.run_fd_test(keyword, crlwords_ipv4, crlwords_ipv6)
def test_l2tpv3oip_v4srcdst_v6srcdst(self):
"""
Flow director input set is sessionID + SIP + DIP for pctype 28 and 38
"""
- crlwords_ipv4=list(range(15,17))+list(range(27,29))+list(range(44,46))
- crlwords_ipv6=list(range(13,29))+list(range(44,46))
- keyword = 'l2tpv3oip_v4srcdst_v6srcdst'
- self.run_fd_test(keyword,crlwords_ipv4,crlwords_ipv6)
+ crlwords_ipv4 = list(range(15, 17)) + list(range(27, 29)) + list(range(44, 46))
+ crlwords_ipv6 = list(range(13, 29)) + list(range(44, 46))
+ keyword = 'l2tpv3oip_v4srcdst_v6srcdst'
+ self.run_fd_test(keyword, crlwords_ipv4, crlwords_ipv6)
def test_l2tpv3oip_v4_v6_udp(self):
"""
Flow director input set is sessionID for pctype 28 and 38
"""
- crlwords_ipv4=range(44,46)
- crlwords_ipv6=range(44,46)
- keyword = 'l2tpv3oip_v4_v6_udp'
- self.run_fd_test(keyword,crlwords_ipv4,crlwords_ipv6)
+ crlwords_ipv4 = range(44, 46)
+ crlwords_ipv6 = range(44, 46)
+ keyword = 'l2tpv3oip_v4_v6_udp'
+ self.run_fd_test(keyword, crlwords_ipv4, crlwords_ipv6)
def test_l2tpv3oip_load_profile(self):
"""
@@ -446,15 +486,15 @@ class TestDdpL2tpv3(TestCase):
Step1: Check if it is already loaded, if loaded delete the same
Step2: Load the profile
"""
- self.dut_testpmd.execute_cmd('port stop 0')
+ self.dut_testpmd.execute_cmd('port stop all')
- out=self.dut_testpmd.execute_cmd('ddp get list 0')
+ out = self.dut_testpmd.execute_cmd('ddp get list 0')
if "L2TPv3oIP with L4 payload" in out:
- print "Profile is already loaded!!"
- out=self.dut_testpmd.execute_cmd('ddp del 0 /tmp/l2tpv3oip-l4.bak')
- out=self.dut_testpmd.execute_cmd('ddp add 0 /tmp/l2tpv3oip-l4.pkg,/tmp/l2tpv3oip-l4.bak')
- out=self.dut_testpmd.execute_cmd('ddp get list 0')
- self.verify("L2TPv3oIP with L4 payload" in out,"Failed to Load DDP profile ")
+ print("Profile is already loaded!!")
+ out = self.dut_testpmd.execute_cmd('ddp del 0 /tmp/l2tpv3oip-l4.bak')
+ out = self.dut_testpmd.execute_cmd('ddp add 0 /tmp/l2tpv3oip-l4.pkg,/tmp/l2tpv3oip-l4.bak')
+ out = self.dut_testpmd.execute_cmd('ddp get list 0')
+ self.verify("L2TPv3oIP with L4 payload" in out, "Failed to Load DDP profile ")
def test_l2tpv3oip_delete_profile(self):
"""
@@ -462,21 +502,19 @@ class TestDdpL2tpv3(TestCase):
Step1: Check if profile is loaded, if loaded, delete the same
Step2: Add the profile again
"""
- self.dut_testpmd.execute_cmd('port stop 0')
- out=self.dut_testpmd.execute_cmd('ddp get list 0')
+ self.dut_testpmd.execute_cmd('port stop all')
+ out = self.dut_testpmd.execute_cmd('ddp get list 0')
if "L2TPv3oIP with L4 payload" not in out:
- out=self.dut_testpmd.execute_cmd('ddp add 0 /tmp/l2tpv3oip-l4.pkg,/tmp/l2tpv3oip-l4.bak')
- out=self.dut_testpmd.execute_cmd('ddp get list 0')
- self.verify("L2TPv3oIP with L4 payload" in out,"Error in loading the Profile")
- out=self.dut_testpmd.execute_cmd('ddp del 0 /tmp/l2tpv3oip-l4.bak')
- print out
- out=self.dut_testpmd.execute_cmd('ddp get list 0')
- print out
- self.verify("Profile number is: 0" in out,"Error in @@deleting the Profile !!")
- out=self.dut_testpmd.execute_cmd('ddp add 0 /tmp/l2tpv3oip-l4.pkg,/tmp/l2tpv3oip-l4.bak')
- out=self.dut_testpmd.execute_cmd('ddp get list 0')
- self.verify("L2TPv3oIP with L4 payload" in out,"Error in loading the Profile")
+ out = self.dut_testpmd.execute_cmd('ddp add 0 /tmp/l2tpv3oip-l4.pkg,/tmp/l2tpv3oip-l4.bak')
+ out = self.dut_testpmd.execute_cmd('ddp get list 0')
+ self.verify("L2TPv3oIP with L4 payload" in out, "Error in loading the Profile")
+ self.dut_testpmd.execute_cmd('ddp del 0 /tmp/l2tpv3oip-l4.bak')
+ out = self.dut_testpmd.execute_cmd('ddp get list 0')
+ self.verify("Profile number is: 0" in out, "Error in @@deleting the Profile !!")
+ self.dut_testpmd.execute_cmd('ddp add 0 /tmp/l2tpv3oip-l4.pkg,/tmp/l2tpv3oip-l4.bak')
+ out = self.dut_testpmd.execute_cmd('ddp get list 0')
+ self.verify("L2TPv3oIP with L4 payload" in out, "Error in loading the Profile")
def test_l2tpv3oip_delete_rules(self):
"""
@@ -486,20 +524,26 @@ class TestDdpL2tpv3(TestCase):
Step3: Flush all rules
"""
queue = random.randint(1, self.PF_QUEUE - 1)
- self.dut_testpmd.execute_cmd( 'flow create 0 ingress pattern eth / ipv4 / l2tpv3oip session_id is 1001 / end actions queue index {} / end'.format(queue))
- self.dut_testpmd.execute_cmd( 'flow create 0 ingress pattern eth / ipv4 / l2tpv3oip session_id is 1002 / end actions queue index {} / end'.format(queue))
- self.dut_testpmd.execute_cmd( 'flow create 0 ingress pattern eth / ipv4 / l2tpv3oip session_id is 1003 / end actions queue index {} / end'.format(queue))
- out=self.dut_testpmd.execute_cmd('flow list 0')
- verify=out.splitlines()
- self.verify(len(verify)== 6,"Flow rules not added")
- self.dut_testpmd.execute_cmd( 'flow destroy 0 rule 0')
- out=self.dut_testpmd.execute_cmd('flow list 0')
- verify=out.splitlines()
- self.verify(len(verify)== 5,"Flow rules not destroyed")
- self.dut_testpmd.execute_cmd( 'flow flush 0')
- out=self.dut_testpmd.execute_cmd('flow list 0')
- verify=out.splitlines()
- self.verify(len(verify)== 1,"Flow rules not destroyed")
+ self.dut_testpmd.execute_cmd(
+ 'flow create 0 ingress pattern eth / ipv4 / l2tpv3oip session_id is 1001 / end actions queue index {} / end'.format(
+ queue))
+ self.dut_testpmd.execute_cmd(
+ 'flow create 0 ingress pattern eth / ipv4 / l2tpv3oip session_id is 1002 / end actions queue index {} / end'.format(
+ queue))
+ self.dut_testpmd.execute_cmd(
+ 'flow create 0 ingress pattern eth / ipv4 / l2tpv3oip session_id is 1003 / end actions queue index {} / end'.format(
+ queue))
+ out = self.dut_testpmd.execute_cmd('flow list 0')
+ verify = out.splitlines()
+ self.verify(len(verify) == 6, "Flow rules not added")
+ self.dut_testpmd.execute_cmd('flow destroy 0 rule 0')
+ out = self.dut_testpmd.execute_cmd('flow list 0')
+ verify = out.splitlines()
+ self.verify(len(verify) == 5, "Flow rules not destroyed")
+ self.dut_testpmd.execute_cmd('flow flush 0')
+ out = self.dut_testpmd.execute_cmd('flow list 0')
+ verify = out.splitlines()
+ self.verify(len(verify) == 1, "Flow rules not destroyed")
def tear_down(self):
self.dut_testpmd.execute_cmd('stop')
@@ -516,4 +560,3 @@ class TestDdpL2tpv3(TestCase):
def tear_down_all(self):
pass
-
--
2.17.1
next reply other threads:[~2020-04-29 9:30 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-04-29 9:13 ChenBo [this message]
2020-04-29 9:31 ` Chen, BoX C
2020-05-06 3:23 ` Tu, Lijuan
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20200429091326.17171-1-box.c.chen@intel.com \
--to=box.c.chen@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).