test suite reviews and discussions
 help / color / mirror / Atom feed
From: Ke Xu <ke1.xu@intel.com>
To: dts@dpdk.org
Cc: lijuan.tu@intel.com, jin.ling@intel.com, zhiminx.huang@intel.com,
	weiyuanx.li@intel.com, qi.fu@intel.com, Ke Xu <ke1.xu@intel.com>
Subject: [DTS][PATCH V1 12/21] tests/ice_dcf_acl_filter: update test plan to support represented port action from deprecated vf action
Date: Wed, 28 Sep 2022 03:18:41 +0000	[thread overview]
Message-ID: <20220928031836.770004-13-ke1.xu@intel.com> (raw)
In-Reply-To: <20220928031836.770004-1-ke1.xu@intel.com>

Signed-off-by: Jin Ling <jin.ling@intel.com>
Reviewed-by: Ke Xu <ke1.xu@intel.com>
---
 tests/TestSuite_ice_dcf_acl_filter.py | 104 ++++++++++++++------------
 1 file changed, 57 insertions(+), 47 deletions(-)

diff --git a/tests/TestSuite_ice_dcf_acl_filter.py b/tests/TestSuite_ice_dcf_acl_filter.py
index 4fcca800..6c1ff54e 100644
--- a/tests/TestSuite_ice_dcf_acl_filter.py
+++ b/tests/TestSuite_ice_dcf_acl_filter.py
@@ -540,9 +540,9 @@ tv_mac_ipv4_pay_src_mac = {
 tv_mac_ipv4_pay_dst_mac = {
     "name": "test_mac_ipv4_pay_dst_mac",
     "rules": [
-        "flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / ipv4 / end actions vf id 1 / end",
-        "flow create 0 ingress pattern eth dst is 00:11:22:33:44:66 / ipv4 / end actions vf id 1 / end",
-        "flow create 0 ingress pattern eth dst is 00:11:22:33:66:55 / ipv4 / end actions vf id 1 / end",
+        "flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / ipv4 / end actions represented_port ethdev_port_id 1 / end",
+        "flow create 0 ingress pattern eth dst is 00:11:22:33:44:66 / ipv4 / end actions represented_port ethdev_port_id 1 / end",
+        "flow create 0 ingress pattern eth dst is 00:11:22:33:66:55 / ipv4 / end actions represented_port ethdev_port_id 1 / end",
         "flow create 0 ingress pattern eth dst spec 00:11:22:33:44:55 dst mask ff:ff:ff:ff:ff:00 / ipv4 / end actions drop / end",
     ],
     "scapy_str": MAC_IPV4_PAY_DST_MAC,
@@ -573,9 +573,9 @@ tv_mac_ipv4_pay_src_dst_ip = {
 tv_mac_ipv4_pay_src_dst_mac_src_dst_ip = {
     "name": "test_mac_ipv4_pay_src_dst_mac_src_dst_ip",
     "rules": [
-        "flow create 0 ingress pattern eth dst is 33:00:00:00:00:01 / ipv4 / end actions vf id 1 / end",
-        "flow create 0 ingress pattern eth dst is 33:00:00:00:00:02 / ipv4 / end actions vf id 1 / end",
-        "flow create 0 ingress pattern eth dst is 33:00:00:00:00:03 / ipv4 / end actions vf id 1 / end",
+        "flow create 0 ingress pattern eth dst is 33:00:00:00:00:01 / ipv4 / end actions represented_port ethdev_port_id 1 / end",
+        "flow create 0 ingress pattern eth dst is 33:00:00:00:00:02 / ipv4 / end actions represented_port ethdev_port_id 1 / end",
+        "flow create 0 ingress pattern eth dst is 33:00:00:00:00:03 / ipv4 / end actions represented_port ethdev_port_id 1 / end",
         "flow create 0 ingress pattern eth src spec 00:11:22:33:44:55 src mask ff:ff:ff:ff:ff:00 dst spec 33:00:00:00:00:02 dst mask ff:ff:ff:ff:ff:fe / ipv4 src spec 192.168.0.1 src mask 255.255.255.0 dst spec 192.168.0.2 dst mask 255.255.0.255 / end actions drop / end",
     ],
     "scapy_str": MAC_IPV4_PAY_SRC_DST_MAC_SRC_DST_IP,
@@ -592,9 +592,9 @@ tv_mac_ipv4_tcp_src_mac = {
 tv_mac_ipv4_tcp_dst_mac = {
     "name": "test_mac_ipv4_tcp_dst_mac",
     "rules": [
-        "flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / ipv4 / tcp / end actions vf id 1 / end",
-        "flow create 0 ingress pattern eth dst is 00:11:22:33:44:66 / ipv4 / tcp / end actions vf id 1 / end",
-        "flow create 0 ingress pattern eth dst is 00:11:22:33:66:55 / ipv4 / tcp / end actions vf id 1 / end",
+        "flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / ipv4 / tcp / end actions represented_port ethdev_port_id 1 / end",
+        "flow create 0 ingress pattern eth dst is 00:11:22:33:44:66 / ipv4 / tcp / end actions represented_port ethdev_port_id 1 / end",
+        "flow create 0 ingress pattern eth dst is 00:11:22:33:66:55 / ipv4 / tcp / end actions represented_port ethdev_port_id 1 / end",
         "flow create 0 ingress pattern eth dst spec 00:11:22:33:44:55 dst mask ff:ff:ff:ff:ff:00 / ipv4 / tcp / end actions drop / end",
     ],
     "scapy_str": MAC_IPV4_TCP_DST_MAC,
@@ -639,9 +639,9 @@ tv_mac_ipv4_tcp_src_dst_ip_src_dst_port = {
 tv_mac_ipv4_tcp_src_dst_mac_src_dst_ip_src_dst_port = {
     "name": "test_mac_ipv4_tcp_src_dst_mac_src_dst_ip_src_dst_port",
     "rules": [
-        "flow create 0 ingress pattern eth dst is 33:00:00:00:00:01 / ipv4 / end actions vf id 1 / end",
-        "flow create 0 ingress pattern eth dst is 33:00:00:00:00:02 / ipv4 / end actions vf id 1 / end",
-        "flow create 0 ingress pattern eth dst is 33:00:00:00:00:03 / ipv4 / end actions vf id 1 / end",
+        "flow create 0 ingress pattern eth dst is 33:00:00:00:00:01 / ipv4 / end actions represented_port ethdev_port_id 1 / end",
+        "flow create 0 ingress pattern eth dst is 33:00:00:00:00:02 / ipv4 / end actions represented_port ethdev_port_id 1 / end",
+        "flow create 0 ingress pattern eth dst is 33:00:00:00:00:03 / ipv4 / end actions represented_port ethdev_port_id 1 / end",
         "flow create 0 priority 0 ingress pattern eth src spec 00:11:22:33:44:55 src mask ff:ff:ff:ff:ff:00 dst spec 33:00:00:00:00:02 dst mask ff:ff:ff:ff:ff:fe / ipv4 src spec 192.168.0.1 src mask 255.255.255.0 dst spec 192.168.0.2 dst mask 255.255.0.255 / tcp src spec 8010 src mask 65520 dst spec 8017 dst mask 65520 / end actions drop / end",
     ],
     "scapy_str": MAC_IPV4_TCP_SRC_DST_MAC_SRC_DST_IP_SRC_DST_PORT,
@@ -658,9 +658,9 @@ tv_mac_ipv4_udp_src_mac = {
 tv_mac_ipv4_udp_dst_mac = {
     "name": "test_mac_ipv4_udp_dst_mac",
     "rules": [
-        "flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / ipv4 / udp / end actions vf id 1 / end",
-        "flow create 0 ingress pattern eth dst is 00:11:22:33:44:66 / ipv4 / udp / end actions vf id 1 / end",
-        "flow create 0 ingress pattern eth dst is 00:11:22:33:66:55 / ipv4 / udp / end actions vf id 1 / end",
+        "flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / ipv4 / udp / end actions represented_port ethdev_port_id 1 / end",
+        "flow create 0 ingress pattern eth dst is 00:11:22:33:44:66 / ipv4 / udp / end actions represented_port ethdev_port_id 1 / end",
+        "flow create 0 ingress pattern eth dst is 00:11:22:33:66:55 / ipv4 / udp / end actions represented_port ethdev_port_id 1 / end",
         "flow create 0 ingress pattern eth dst spec 00:11:22:33:44:55 dst mask ff:ff:ff:ff:ff:00 / ipv4 / udp / end actions drop / end",
     ],
     "scapy_str": MAC_IPV4_UDP_DST_MAC,
@@ -705,9 +705,9 @@ tv_mac_ipv4_udp_src_dst_ip_src_dst_port = {
 tv_mac_ipv4_udp_src_dst_mac_src_dst_ip_src_dst_port = {
     "name": "test_mac_ipv4_udp_src_dst_mac_src_dst_ip_src_dst_port",
     "rules": [
-        "flow create 0 ingress pattern eth dst is 33:00:00:00:00:01 / ipv4 / udp / end actions vf id 1 / end",
-        "flow create 0 ingress pattern eth dst is 33:00:00:00:00:02 / ipv4 / udp / end actions vf id 1 / end",
-        "flow create 0 ingress pattern eth dst is 33:00:00:00:00:03 / ipv4 / udp / end actions vf id 1 / end",
+        "flow create 0 ingress pattern eth dst is 33:00:00:00:00:01 / ipv4 / udp / end actions represented_port ethdev_port_id 1 / end",
+        "flow create 0 ingress pattern eth dst is 33:00:00:00:00:02 / ipv4 / udp / end actions represented_port ethdev_port_id 1 / end",
+        "flow create 0 ingress pattern eth dst is 33:00:00:00:00:03 / ipv4 / udp / end actions represented_port ethdev_port_id 1 / end",
         "flow create 0 priority 0 ingress pattern eth src spec 00:11:22:33:44:55 src mask ff:ff:ff:ff:ff:00 dst spec 33:00:00:00:00:03 dst mask ff:ff:ff:ff:ff:fe / ipv4 src spec 192.168.0.1 src mask 255.255.255.0 dst spec 192.168.0.2 dst mask 255.255.0.255 / udp src spec 8010 src mask 65520 dst spec 8017 dst mask 65520 / end actions drop / end",
     ],
     "scapy_str": MAC_IPV4_UDP_SRC_DST_MAC_SRC_DST_IP_SRC_DST_PORT,
@@ -930,28 +930,36 @@ class ICEDCFACLFilterTest(TestCase):
         Run before each test case.
         """
 
-    def create_testpmd_command(self, param):
+    def create_testpmd_command(self,param="",repre_vf=False):
         """
         Create testpmd command
         """
-        # Prepare testpmd EAL and parameters
-        all_eal_param = self.dut.create_eal_parameters(
+        if repre_vf:
+            all_eal_param = self.dut.create_eal_parameters(
             cores="1S/4C/1T",
             ports=[self.vf0_pci, self.vf1_pci],
-            port_options={self.vf0_pci: "cap=dcf"},
+            port_options={self.vf0_pci: "cap=dcf,representor=vf[1]"},
         )
+        else:
+        # Prepare testpmd EAL and parametes
+            all_eal_param = self.dut.create_eal_parameters(
+                cores="1S/4C/1T",
+                ports=[self.vf0_pci, self.vf1_pci],
+                port_options={self.vf0_pci: "cap=dcf"},
+            )
         command = self.path + all_eal_param + "--log-level='ice,7'" + " -- -i" + param
         return command
 
-    def launch_testpmd(self, param=""):
+    def launch_testpmd(self, param="",repre_vf=False,):
         """
         launch testpmd with the command
         """
         time.sleep(5)
-        command = self.create_testpmd_command(param)
+        command = self.create_testpmd_command(param,repre_vf)
+        port_id = 2 if repre_vf else 1
         out = self.dut.send_expect(command, "testpmd> ", 20)
         self.testpmd_status = "running"
-        self.dut.send_expect("set portlist 1", "testpmd> ", 15)
+        self.dut.send_expect("set portlist {}".format(port_id), "testpmd> ", 15)
         self.dut.send_expect("set fwd rxonly", "testpmd> ", 15)
         self.dut.send_expect("set verbose 1", "testpmd> ", 15)
         self.pmd_output.execute_cmd("start")
@@ -1115,15 +1123,17 @@ class ICEDCFACLFilterTest(TestCase):
         else:
             return destroy_list
 
-    def common_process(self, vectors, launch_testpmd=True):
+    def common_process(self, vectors,launch_testpmd=True,repre_vf=False):
 
         if launch_testpmd:
             # launch testpmd
-            self.launch_testpmd()
+            self.launch_testpmd(repre_vf=repre_vf)
 
         test_results = {}
         for test_vector in vectors:
             try:
+                if repre_vf:
+                    test_vector["check_param"]["port_id"] = 2
                 self.dut.send_expect("flow flush 0", "testpmd> ", 120)
 
                 # create a rule
@@ -1169,19 +1179,19 @@ class ICEDCFACLFilterTest(TestCase):
         if self.nic == "ICE_25G-E810C_SFP":
             self.common_process(vectors_ipv4_pay_4ports)
         else:
-            self.common_process(vectors_ipv4_pay_2ports)
+            self.common_process(vectors_ipv4_pay_2ports,repre_vf=True)
 
     def test_mac_ipv4_tcp(self):
         if self.nic == "ICE_25G-E810C_SFP":
             self.common_process(vectors_ipv4_tcp_4ports)
         else:
-            self.common_process(vectors_ipv4_tcp_2ports)
+            self.common_process(vectors_ipv4_tcp_2ports,repre_vf=True)
 
     def test_mac_ipv4_udp(self):
         if self.nic == "ICE_25G-E810C_SFP":
             self.common_process(vectors_ipv4_udp_4ports)
         else:
-            self.common_process(vectors_ipv4_udp_2ports)
+            self.common_process(vectors_ipv4_udp_2ports,repre_vf=True)
 
     def test_mac_ipv4_sctp(self):
         if self.nic == "ICE_25G-E810C_SFP":
@@ -1289,7 +1299,7 @@ class ICEDCFACLFilterTest(TestCase):
 
         # start testpmd with creating 512 ACL rules
         param = " --cmdline-file=%s" % (self.dut_file_dir + src_file)
-        out_testpmd = self.launch_testpmd(param)
+        out_testpmd = self.launch_testpmd(param=param)
         self.check_dcf_status(out_testpmd, stats=True)
         rule_list = self.dut.send_expect("flow list 0", "testpmd> ", 15)
         self.verify("159" in rule_list, "160 rules failed to be created")
@@ -1341,7 +1351,7 @@ class ICEDCFACLFilterTest(TestCase):
 
         # start testpmd with creating 255 ACL rules
         param = " --cmdline-file=%s" % (self.dut_file_dir + src_file)
-        out_testpmd = self.launch_testpmd(param)
+        out_testpmd = self.launch_testpmd(param=param)
         self.check_dcf_status(out_testpmd, stats=True)
         rule_list = self.dut.send_expect("flow list 0", "testpmd> ", 15)
         self.verify("254" in rule_list, "255 rules failed to be created")
@@ -1636,23 +1646,23 @@ class ICEDCFACLFilterTest(TestCase):
         create switch, acl and fdir rules simultaneously.
         """
         param = " --rxq=16 --txq=16"
-        out_testpmd = self.launch_testpmd(param)
+        out_testpmd = self.launch_testpmd(repre_vf=True,param=param)
         self.check_dcf_status(out_testpmd, stats=True)
         rules = {
             "switch": [
-                "flow create 0 ingress pattern eth / ipv4 src is 192.168.0.1 dst is 192.168.0.20 / tcp / end actions vf id 1 / end",
-                "flow create 0 ingress pattern eth / ipv4 src is 192.168.0.2 dst is 192.168.0.20 / tcp / end actions vf id 1 / end",
-                "flow create 0 ingress pattern eth / ipv4 src is 192.168.0.3 dst is 192.168.0.20 / tcp / end actions vf id 1 / end",
-                "flow create 0 ingress pattern eth / ipv4 src is 192.168.0.4 dst is 192.168.0.20 / tcp / end actions vf id 1 / end",
+                "flow create 0 ingress pattern eth / ipv4 src is 192.168.0.1 dst is 192.168.0.20 / tcp / end actions represented_port ethdev_port_id 1 / end",
+                "flow create 0 ingress pattern eth / ipv4 src is 192.168.0.2 dst is 192.168.0.20 / tcp / end actions represented_port ethdev_port_id 1 / end",
+                "flow create 0 ingress pattern eth / ipv4 src is 192.168.0.3 dst is 192.168.0.20 / tcp / end actions represented_port ethdev_port_id 1 / end",
+                "flow create 0 ingress pattern eth / ipv4 src is 192.168.0.4 dst is 192.168.0.20 / tcp / end actions represented_port ethdev_port_id 1 / end",
             ],
             "acl": [
                 "flow create 0 ingress pattern eth / ipv4 src spec 192.168.0.2 src mask 255.255.255.254 / tcp / end actions drop / end",
                 "flow create 0 ingress pattern eth / ipv4 dst spec 192.168.0.21 dst mask 255.255.0.255 / tcp / end actions drop / end",
             ],
             "fdir": [
-                "flow create 1 ingress pattern eth / ipv4 src is 192.168.0.1 dst is 192.168.0.20 / tcp src is 22 dst is 23 / end actions queue index 3 / mark / end",
-                "flow create 1 ingress pattern eth / ipv4 src is 192.168.0.2 dst is 192.168.0.20 / tcp src is 22 dst is 23 / end actions queue index 3 / mark / end",
-                "flow create 1 ingress pattern eth / ipv4 src is 192.168.1.1 dst is 192.168.0.20 / tcp src is 22 dst is 23 / end actions queue index 3 / mark / end",
+                "flow create 2 ingress pattern eth / ipv4 src is 192.168.0.1 dst is 192.168.0.20 / tcp src is 22 dst is 23 / end actions queue index 3 / mark / end",
+                "flow create 2 ingress pattern eth / ipv4 src is 192.168.0.2 dst is 192.168.0.20 / tcp src is 22 dst is 23 / end actions queue index 3 / mark / end",
+                "flow create 2 ingress pattern eth / ipv4 src is 192.168.1.1 dst is 192.168.0.20 / tcp src is 22 dst is 23 / end actions queue index 3 / mark / end",
             ],
         }
         switch_rule_list = self.create_other_filter_rule(
@@ -1662,7 +1672,7 @@ class ICEDCFACLFilterTest(TestCase):
         acl_rule_list = self.create_acl_filter_rule(rules["acl"], check_stats=True)
         self.check_filter_rule_list(0, switch_rule_list + acl_rule_list)
         fdir_rule_list = self.create_other_filter_rule(rules["fdir"], check_stats=True)
-        self.check_filter_rule_list(1, fdir_rule_list)
+        self.check_filter_rule_list(2, fdir_rule_list)
 
         packets = {
             "drop": [
@@ -1687,7 +1697,7 @@ class ICEDCFACLFilterTest(TestCase):
         rfc.check_drop(
             out_drop,
             pkt_num=len(packets["drop"]),
-            check_param={"port_id": 1, "drop": 1},
+            check_param={"port_id": 2, "drop": 1},
             stats=True,
         )
 
@@ -1695,19 +1705,19 @@ class ICEDCFACLFilterTest(TestCase):
         rfc.check_iavf_fdir_mark(
             out_mark,
             pkt_num=len(packets["mark"]),
-            check_param={"port_id": 1, "queue": 3, "mark_id": 0},
+            check_param={"port_id": 2, "queue": 3, "mark_id": 0},
         )
 
         out_rss = self.send_pkts_getouput(pkts=packets["rss"])
         rfc.check_iavf_fdir_mark(
             out_rss,
             pkt_num=len(packets["rss"]),
-            check_param={"port_id": 1, "passthru": 1},
+            check_param={"port_id": 2, "passthru": 1},
         )
 
         out_noreceived = self.send_pkts_getouput(pkts=packets["noreceived"])
         rfc.check_iavf_fdir_mark(
-            out_noreceived, pkt_num=0, check_param={"port_id": 1, "passthru": 1}
+            out_noreceived, pkt_num=0, check_param={"port_id": 2, "passthru": 1}
         )
 
         self.dut.send_expect("flow destroy 0 rule 4", "testpmd> ", 15)
@@ -1719,12 +1729,12 @@ class ICEDCFACLFilterTest(TestCase):
 
         out_mark = self.send_pkts_getouput(pkts=packets["mark"])
         rfc.check_iavf_fdir_mark(
-            out_mark, pkt_num=1, check_param={"port_id": 1, "queue": 3, "mark_id": 0}
+            out_mark, pkt_num=1, check_param={"port_id": 2, "queue": 3, "mark_id": 0}
         )
 
         out_rss = self.send_pkts_getouput(pkts=packets["rss"])
         rfc.check_iavf_fdir_mark(
-            out_rss, pkt_num=1, check_param={"port_id": 1, "passthru": 1}
+            out_rss, pkt_num=1, check_param={"port_id": 2, "passthru": 1}
         )
 
     def check_dcf_status(self, out_testpmd, stats=True):
-- 
2.25.1


  parent reply	other threads:[~2022-09-28  3:26 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-09-28  3:18 [DTS][PATCH V1 00/21] update test plans and tests to support represented port action and port representor action from deprecated vf action on DCF cases Ke Xu
2022-09-28  3:18 ` [DTS][PATCH V1 01/21] test_plans/dcf_lifecycle: update test plan to support represented port action from deprecated vf action Ke Xu
2022-09-28  3:18 ` [DTS][PATCH V1 02/21] test_plans/ice_dcf_acl_filter: " Ke Xu
2022-09-28  3:18 ` [DTS][PATCH V1 03/21] test_plans/ice_limit_value_test: " Ke Xu
2022-09-28  3:18 ` [DTS][PATCH V1 04/21] test_plans/ice_dcf_flow_priority: " Ke Xu
2022-09-28  3:18 ` [DTS][PATCH V1 05/21] test_plans/ice_dcf_switch_filter_gtpu: " Ke Xu
2022-09-28  3:18 ` [DTS][PATCH V1 06/21] test_plans/ice_dcf_switch_filter_pppoe: " Ke Xu
2022-09-28  3:18 ` [DTS][PATCH V1 07/21] test_plans/ice_qinq: " Ke Xu
2022-09-28  3:18 ` [DTS][PATCH V1 08/21] test_plans/ice_dcf_acl_filter: remove redundant white space Ke Xu
2022-09-28  3:18 ` [DTS][PATCH V1 09/21] test_plans/dcf_lifecycle: " Ke Xu
2022-09-28  3:18 ` [DTS][PATCH V1 10/21] test_plans/ice_dcf_data_path: update test plan to support port representor action from deprecated vf action Ke Xu
2022-09-28  3:18 ` [DTS][PATCH V1 11/21] tests/dcf_lifecycle: update test plan to support represented port " Ke Xu
2022-09-28  3:18 ` Ke Xu [this message]
2022-09-28  3:18 ` [DTS][PATCH V1 13/21] tests/ice_limit_value_test: " Ke Xu
2022-09-28  3:18 ` [DTS][PATCH V1 14/21] tests/ice_dcf_flow_priority: " Ke Xu
2022-09-28  3:18 ` [DTS][PATCH V1 15/21] tests/ice_dcf_switch_filter_gtpu: " Ke Xu
2022-09-28  3:18 ` [DTS][PATCH V1 16/21] tests/ice_dcf_switch_filter_pppoe: " Ke Xu
2022-09-28  3:18 ` [DTS][PATCH V1 17/21] tests/ice_qinq: " Ke Xu
2022-09-28  3:18 ` [DTS][PATCH V1 18/21] tests/ice_dcf_data_path: update test plan to support port representor " Ke Xu
2022-09-28  3:18 ` [DTS][PATCH V1 19/21] test_plans/ice_dcf_switch_filter: update test plan to support represented port " Ke Xu
2022-09-28  3:18 ` [DTS][PATCH V1 20/21] test/ice_dcf_switch_filter: " Ke Xu
2022-09-28  3:18 ` [DTS][PATCH V1 21/21] test_plans/ice_dcf_switch_filter: add white space to formate the table Ke Xu

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=20220928031836.770004-13-ke1.xu@intel.com \
    --to=ke1.xu@intel.com \
    --cc=dts@dpdk.org \
    --cc=jin.ling@intel.com \
    --cc=lijuan.tu@intel.com \
    --cc=qi.fu@intel.com \
    --cc=weiyuanx.li@intel.com \
    --cc=zhiminx.huang@intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).