[V1] change send pkt mode and add the interface of generating package verification file

Message ID 20201208064059.8297-1-junx.w.zhou@intel.com (mailing list archive)
State Changes Requested
Headers
Series [V1] change send pkt mode and add the interface of generating package verification file |

Commit Message

Zhou, JunX W Dec. 8, 2020, 6:40 a.m. UTC
  Signed-off-by: Zhou Jun <junx.w.zhou@intel.com>
---
 framework/packet.py                 |  6 ++++++
 tests/TestSuite_ddp_gtp_qregion.py  | 22 ++++++++--------------
 tests/TestSuite_dynamic_flowtype.py |  7 +++----
 3 files changed, 17 insertions(+), 18 deletions(-)
  

Comments

Zhou, JunX W Dec. 8, 2020, 6:40 a.m. UTC | #1
Tested-by: Zhou, Jun <junx.w.zhou@intel.com>

-----Original Message-----
From: Zhou Jun [mailto:junx.w.zhou@intel.com] 
Sent: Tuesday, December 8, 2020 2:41 PM
To: dts@dpdk.org
Cc: Zhou, JunX W <junx.w.zhou@intel.com>
Subject: [dts][PATCH V1] change send pkt mode and add the interface of generating package verification file
  
Zhao, HaiyangX Dec. 9, 2020, 1:50 a.m. UTC | #2
Hi, Jun,
Please upstream these patches as a patch set, and  the function name 'write_test'  is not appropriate.

Best Regards,
Zhao Haiyang

> -----Original Message-----
> From: dts <dts-bounces@dpdk.org> On Behalf Of Zhou Jun
> Sent: Tuesday, December 8, 2020 14:41
> To: dts@dpdk.org
> Cc: Zhou, JunX W <junx.w.zhou@intel.com>
> Subject: [dts] [PATCH V1] change send pkt mode and add the interface of
> generating package verification file
  

Patch

diff --git a/framework/packet.py b/framework/packet.py
index 7d974db0..eb5e7d4c 100644
--- a/framework/packet.py
+++ b/framework/packet.py
@@ -119,6 +119,12 @@  PKTGEN_PIDS = {}
 # default filter for LLDP packet
 LLDP_FILTER = {'layer': 'ether', 'config': {'type': 'not lldp'}}
 
+def write_test(pkt_str, file_name):
+    tmp = eval(pkt_str)
+    tmp = bytearray(bytes(tmp))
+    with open(file_name, 'wb') as w:
+        w.write(tmp)
+        w.close()
 
 class scapy(object):
     SCAPY_LAYERS = {
diff --git a/tests/TestSuite_ddp_gtp_qregion.py b/tests/TestSuite_ddp_gtp_qregion.py
index 443e1927..2c22756e 100644
--- a/tests/TestSuite_ddp_gtp_qregion.py
+++ b/tests/TestSuite_ddp_gtp_qregion.py
@@ -37,6 +37,7 @@  from scapy.all import *
 from test_case import TestCase
 from pmd_output import PmdOutput
 from settings import get_nic_name
+import packet
 
 
 class TestDdpGtpQregion(TestCase):
@@ -160,14 +161,11 @@  class TestDdpGtpQregion(TestCase):
         template file and packets sent to NIC.
         """
         if flowtype == 23:
-            a = Ether()/IPv6()/UDP(dport=2152)/GTP_U_Header(teid=0xfe)/IPv6(dst="1001:0db8:85a3:0000:0000:8a2e:0370:0001", src="2001:0db8:85a3:0000:0000:8a2e:0370:0001")/UDP(dport=100, sport=200)/Raw("X"*20)
+            a = 'Ether()/IPv6()/UDP(dport=2152)/GTP_U_Header(teid=0xfe)/IPv6(dst="1001:0db8:85a3:0000:0000:8a2e:0370:0001", src="2001:0db8:85a3:0000:0000:8a2e:0370:0001")/UDP(dport=100, sport=200)/Raw("X"*20)'
         if flowtype == 26:
-            a = Ether()/IPv6()/UDP(dport=2152)/GTP_U_Header(teid=0xfe)/IP(dst="1.1.1.1", src="2.2.2.2")/UDP(dport=100, sport=200)/Raw("X"*20)
-        ba = bytearray(bytes(a))
+            a = 'Ether()/IPv6()/UDP(dport=2152)/GTP_U_Header(teid=0xfe)/IP(dst="1.1.1.1", src="2.2.2.2")/UDP(dport=100, sport=200)/Raw("X"*20)'
         rawfile_src = '/tmp/test_gtp.raw'
-        File = open("%s" % rawfile_src, "wb")
-        File.write(ba)
-        File.close()
+        packet.write_test(a, rawfile_src)
         rawfile_dst = "/tmp/"
         self.dut.session.copy_file_to(rawfile_src, rawfile_dst)
 
@@ -177,10 +175,8 @@  class TestDdpGtpQregion(TestCase):
         """
         pkts = self.gtp_pkts(flowtype, keyword, opt)
         for packet_type in list(pkts.keys()):
-            self.tester.scapy_append(
-                'sendp([%s], iface="%s")'
-                % (pkts[packet_type], self.tester_intf))
-            self.tester.scapy_execute()
+            pkt = packet.Packet(pkts[packet_type])
+            pkt.send_pkt(crb=self.tester, tx_port=self.tester_intf)
             out = self.dut.get_session_output(timeout=2)
             pattern = "port (\d)/queue (\d{1,2}): received (\d) packets"
             qnum = self.element_strip(out, pattern)
@@ -239,10 +235,8 @@  class TestDdpGtpQregion(TestCase):
                     keyword = 'src_ipv6'
             pkts = self.gtp_pkts(flowtype, keyword, opt)
             for packet_type in list(pkts.keys()):
-                self.tester.scapy_append(
-                    'sendp([%s], iface="%s")'
-                    % (pkts[packet_type], self.tester_intf))
-                self.tester.scapy_execute()
+                pkt = packet.Packet(pkts[packet_type])
+                pkt.send_pkt(crb=self.tester, tx_port=self.tester_intf)
                 out = self.dut.get_session_output(timeout=2)
                 self.verify("PKT_RX_RSS_HASH" in out, "Failed to test RSS!!!")
                 pattern = "port (\d)/queue (\d{1,2}): received (\d) packets"
diff --git a/tests/TestSuite_dynamic_flowtype.py b/tests/TestSuite_dynamic_flowtype.py
index 99f28d8a..3f47d590 100644
--- a/tests/TestSuite_dynamic_flowtype.py
+++ b/tests/TestSuite_dynamic_flowtype.py
@@ -34,6 +34,7 @@  import re
 import utils
 from test_case import TestCase
 from pmd_output import PmdOutput
+import packet
 
 VM_CORES_MASK = 'all'
 
@@ -202,10 +203,8 @@  class TestDynamicFlowtype(TestCase):
         """
         pkts = self.gtp_packets(flowtype, match_opt)
         for packet_type in list(pkts.keys()):
-            self.tester.scapy_append(
-                'sendp([%s], iface="%s")'
-                % (pkts[packet_type], self.tester_intf))
-            self.tester.scapy_execute()
+            pkt = packet.Packet(pkts[packet_type])
+            pkt.send_pkt(crb=self.tester, tx_port=self.tester_intf)
             out = self.dut.get_session_output(timeout=2)
             if match_opt == 'matched':
                 self.verify("PKT_RX_RSS_HASH" in out,