[3/4] tests/pipeline: added testcases for dpdk 23.03 release

Message ID 20230501225842.1163820-4-yogesh.jangra@intel.com (mailing list archive)
State Accepted
Headers
Series Added testcases for dpdk 23.03 release features |

Commit Message

Yogesh Jangra May 1, 2023, 10:58 p.m. UTC
  Added testcases for the dpdk 23.03 release features viz, ipsec, large operand support,
toeplitz hash, validate instruction and action selector features.

Signed-off-by: Yogesh Jangra <yogesh.jangra@intel.com>
Signed-off-by: Harshad Narayane <harshad.suresh.narayane@intel.com>
Signed-off-by: Kamalakannan R <kamalakannan.r@intel.com>
---
 tests/TestSuite_pipeline.py | 352 +++++++++++++++++++++++++++++++++++-
 1 file changed, 349 insertions(+), 3 deletions(-)
  

Patch

diff --git a/tests/TestSuite_pipeline.py b/tests/TestSuite_pipeline.py
index d2f38faf..79050a05 100644
--- a/tests/TestSuite_pipeline.py
+++ b/tests/TestSuite_pipeline.py
@@ -459,7 +459,7 @@  class TestPipeline(TestCase):
             self.dut.send_expect("^C", "# ", 20)
             self.verify(0, "CLI Response Error")
 
-    def run_dpdk_app(self, cli_file, exp_out="PIPELINE0 enable"):
+    def run_dpdk_app(self, cli_file, exp_out="PIPELINE0 enable", vdev=""):
 
         try:
             cmd = 'test -f {} && echo "File exists!"'.format(cli_file)
@@ -473,8 +473,8 @@  class TestPipeline(TestCase):
             self.dut.send_expect(cmd, "# ", 20)
             cmd = "sed -i -e 's/0000:00:07.0/%s/' {}".format(cli_file) % self.dut_p3_pci
             self.dut.send_expect(cmd, "# ", 20)
-            cmd = "{0} {1} -- -s {2}".format(
-                self.app_pipeline_path, self.eal_para, cli_file
+            cmd = "{0} {1} {2} -- -s {3}".format(
+                self.app_pipeline_path, self.eal_para, vdev, cli_file
             )
             self.dut.send_expect(cmd, exp_out, 60)
         except Exception:
@@ -1518,6 +1518,88 @@  class TestPipeline(TestCase):
         self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters)
         self.dut.send_expect("^C", "# ", 20)
 
+    def test_mov_009(self):
+
+        cli_file = "/tmp/pipeline/mov_009/mov_009.cli"
+        self.run_dpdk_app(cli_file)
+
+        in_pcap = ["pipeline/mov_009/pcap_files/in_1.txt"] * 4
+        out_pcap = ["pipeline/mov_009/pcap_files/out_1.txt"] * 4
+        filters = ["udp port 4789"] * 4
+        tx_port = [0, 1, 2, 3]
+        rx_port = [0, 1, 2, 3]
+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters)
+        self.dut.send_expect("^C", "# ", 20)
+
+    def test_mov_010(self):
+
+        cli_file = "/tmp/pipeline/mov_010/mov_010.cli"
+        self.run_dpdk_app(cli_file)
+
+        sleep(self.cli_connect_delay)
+        s = self.connect_cli_server()
+
+        CMD_FILE = "/tmp/pipeline/mov_010/cmd_files/cmd_1.txt"
+        CLI_CMD = "pipeline PIPELINE0 table table_001 add {}\n".format(CMD_FILE)
+        self.socket_send_cmd(s, CLI_CMD, "pipeline> ")
+        CLI_CMD = "pipeline PIPELINE0 commit\n"
+        self.socket_send_cmd(s, CLI_CMD, "pipeline> ")
+
+        in_pcap = ["pipeline/mov_010/pcap_files/in_1.txt"] * 4
+        out_pcap = ["pipeline/mov_010/pcap_files/out_1.txt"] * 4
+        filters = ["ip"] * 4
+        tx_port = [0, 1, 2, 3]
+        rx_port = [0, 1, 2, 3]
+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters)
+        s.close()
+        self.dut.send_expect("^C", "# ", 20)
+
+    def test_mov_011(self):
+
+        cli_file = "/tmp/pipeline/mov_011/mov_011.cli"
+        self.run_dpdk_app(cli_file)
+
+        sleep(self.cli_connect_delay)
+        s = self.connect_cli_server()
+
+        CMD_FILE = "/tmp/pipeline/mov_011/cmd_files/cmd_1.txt"
+        CLI_CMD = "pipeline PIPELINE0 table table_001 add {}\n".format(CMD_FILE)
+        self.socket_send_cmd(s, CLI_CMD, "pipeline> ")
+        CLI_CMD = "pipeline PIPELINE0 commit\n"
+        self.socket_send_cmd(s, CLI_CMD, "pipeline> ")
+
+        in_pcap = ["pipeline/mov_011/pcap_files/in_1.txt"] * 4
+        out_pcap = ["pipeline/mov_011/pcap_files/out_1.txt"] * 4
+        filters = ["ip"] * 4
+        tx_port = [0, 1, 2, 3]
+        rx_port = [0, 1, 2, 3]
+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters)
+        s.close()
+        self.dut.send_expect("^C", "# ", 20)
+
+    def test_mov_012(self):
+
+        cli_file = "/tmp/pipeline/mov_012/mov_012.cli"
+        self.run_dpdk_app(cli_file)
+
+        sleep(self.cli_connect_delay)
+        s = self.connect_cli_server()
+
+        CMD_FILE = "/tmp/pipeline/mov_012/cmd_files/cmd_1.txt"
+        CLI_CMD = "pipeline PIPELINE0 table table_001 add {}\n".format(CMD_FILE)
+        self.socket_send_cmd(s, CLI_CMD, "pipeline> ")
+        CLI_CMD = "pipeline PIPELINE0 commit\n"
+        self.socket_send_cmd(s, CLI_CMD, "pipeline> ")
+
+        in_pcap = ["pipeline/mov_012/pcap_files/in_1.txt"] * 4
+        out_pcap = ["pipeline/mov_012/pcap_files/out_1.txt"] * 4
+        filters = ["ip"] * 4
+        tx_port = [0, 1, 2, 3]
+        rx_port = [0, 1, 2, 3]
+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters)
+        s.close()
+        self.dut.send_expect("^C", "# ", 20)
+
     def test_table_001(self):
 
         cli_file = "/tmp/pipeline/table_001/table_001.cli"
@@ -5694,6 +5776,23 @@  class TestPipeline(TestCase):
         self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters)
         self.dut.send_expect("^C", "# ", 20)
 
+    def test_selector_003(self):
+
+        cli_file = "/tmp/pipeline/selector_003/selector_003.cli"
+        self.run_dpdk_app(cli_file)
+
+        in_pcap = ["pipeline/selector_003/pcap_files/in_1.txt"]
+        out_pcap_1 = "pipeline/selector_003/pcap_files/out_1.txt"
+        out_pcap_2 = "pipeline/selector_003/pcap_files/out_2.txt"
+        out_pcap_3 = "pipeline/selector_003/pcap_files/out_3.txt"
+        out_pcap_4 = "pipeline/selector_003/pcap_files/out_4.txt"
+        out_pcap = [out_pcap_1, out_pcap_2, out_pcap_3, out_pcap_4]
+        filters = ["tcp"] * 4
+        tx_port = [0]
+        rx_port = [0, 1, 2, 3]
+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters)
+        self.dut.send_expect("^C", "# ", 20)
+
     def test_scapy_pkt_gen(self):
 
         # self.send_scapy_pkts(0)
@@ -6779,6 +6878,253 @@  class TestPipeline(TestCase):
         s.close()
         self.dut.send_expect("^C", "# ", 20)
 
+    def test_ipsec_001(self):
+
+        cli_file = "/tmp/pipeline/ipsec_001/ipsec_001.cli"
+        vdev = "--vdev crypto_aesni_mb0"
+        self.run_dpdk_app(cli_file, vdev=vdev)
+
+        in_pcap = ["pipeline/ipsec_001/pcap_files/in_1.txt"]
+        out_pcap = ["pipeline/ipsec_001/pcap_files/out_1.txt"]
+        filters = ["udp"]
+        tx_port = [0]
+        rx_port = [0]
+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters)
+
+        sleep(self.cli_connect_delay)
+        s = self.connect_cli_server()
+
+        # Adding SA rules for tunnel mode
+        CMD_FILE = "/tmp/pipeline/ipsec_001/cmd_files/ipsec_sa.txt"
+        CLI_CMD = "ipsec IPSEC0 sa add {}\n".format(CMD_FILE)
+        self.socket_send_cmd(s, CLI_CMD, "pipeline> ")
+
+        # Adding table rules
+        CMD_FILE = "/tmp/pipeline/ipsec_001/cmd_files/cmd_1.txt"
+        CLI_CMD = "pipeline PIPELINE0 table policy_table add {}\n".format(CMD_FILE)
+        self.socket_send_cmd(s, CLI_CMD, "pipeline> ")
+        CLI_CMD = "pipeline PIPELINE0 commit\n"
+        self.socket_send_cmd(s, CLI_CMD, "pipeline> ")
+
+        in_pcap = ["pipeline/ipsec_001/pcap_files/in_1.txt"]
+        out_pcap = ["pipeline/ipsec_001/pcap_files/out_2.txt"]
+        filters = ["udp"]
+        tx_port = [0]
+        rx_port = [0]
+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters)
+
+        s.close()
+        self.dut.send_expect("^C", "# ", 20)
+
+    def test_ipsec_002(self):
+
+        cli_file = "/tmp/pipeline/ipsec_002/ipsec_002.cli"
+        vdev = "--vdev crypto_aesni_mb0"
+        self.run_dpdk_app(cli_file, vdev=vdev)
+
+        in_pcap = ["pipeline/ipsec_002/pcap_files/in_1.txt"]
+        out_pcap = ["pipeline/ipsec_002/pcap_files/out_1.txt"]
+        filters = ["tcp"]
+        tx_port = [0]
+        rx_port = [0]
+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters)
+
+        sleep(self.cli_connect_delay)
+        s = self.connect_cli_server()
+
+        # Adding SA rules for transport mode
+        CMD_FILE = "/tmp/pipeline/ipsec_002/cmd_files/ipsec_sa.txt"
+        CLI_CMD = "ipsec IPSEC0 sa add {}\n".format(CMD_FILE)
+        self.socket_send_cmd(s, CLI_CMD, "pipeline> ")
+
+        # Adding table rules
+        CMD_FILE = "/tmp/pipeline/ipsec_002/cmd_files/cmd_1.txt"
+        CLI_CMD = "pipeline PIPELINE0 table policy_table add {}\n".format(CMD_FILE)
+        self.socket_send_cmd(s, CLI_CMD, "pipeline> ")
+        CLI_CMD = "pipeline PIPELINE0 commit\n"
+        self.socket_send_cmd(s, CLI_CMD, "pipeline> ")
+
+        in_pcap = ["pipeline/ipsec_002/pcap_files/in_1.txt"]
+        out_pcap = ["pipeline/ipsec_002/pcap_files/out_2.txt"]
+        filters = ["tcp"]
+        tx_port = [0]
+        rx_port = [0]
+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters)
+
+        s.close()
+        self.dut.send_expect("^C", "# ", 20)
+
+    def test_ipsec_003(self):
+
+        cli_file = "/tmp/pipeline/ipsec_003/ipsec_003.cli"
+        vdev = "--vdev crypto_aesni_mb0"
+        self.run_dpdk_app(cli_file, vdev=vdev)
+
+        in_pcap = ["pipeline/ipsec_003/pcap_files/in_1.txt"]
+        out_pcap = ["pipeline/ipsec_003/pcap_files/out_1.txt"]
+        filters = ["udp"]
+        tx_port = [0]
+        rx_port = [0]
+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters)
+
+        sleep(self.cli_connect_delay)
+        s = self.connect_cli_server()
+
+        # Deleting table rules
+        CMD_FILE = "/tmp/pipeline/ipsec_003/cmd_files/cmd_1.txt"
+        CLI_CMD = "pipeline PIPELINE0 table policy_table delete {}\n".format(CMD_FILE)
+        self.socket_send_cmd(s, CLI_CMD, "pipeline> ")
+        CLI_CMD = "pipeline PIPELINE0 commit\n"
+        self.socket_send_cmd(s, CLI_CMD, "pipeline> ")
+
+        # Deleting SA rules for tunnel mode
+        CLI_CMD = "ipsec IPSEC0 sa delete 0\n"
+        self.socket_send_cmd(s, CLI_CMD, "pipeline> ")
+        CLI_CMD = "ipsec IPSEC0 sa delete 1\n"
+        self.socket_send_cmd(s, CLI_CMD, "pipeline> ")
+
+        in_pcap = ["pipeline/ipsec_003/pcap_files/in_1.txt"]
+        out_pcap = ["pipeline/ipsec_003/pcap_files/out_2.txt"]
+        filters = ["udp"]
+        tx_port = [0]
+        rx_port = [0]
+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters)
+
+        s.close()
+        self.dut.send_expect("^C", "# ", 20)
+
+    def test_ipsec_004(self):
+
+        cli_file = "/tmp/pipeline/ipsec_004/ipsec_004.cli"
+        vdev = "--vdev crypto_aesni_mb0"
+        self.run_dpdk_app(cli_file, vdev=vdev)
+
+        in_pcap = ["pipeline/ipsec_004/pcap_files/in_1.txt"]
+        out_pcap = ["pipeline/ipsec_004/pcap_files/out_1.txt"]
+        filters = ["tcp"]
+        tx_port = [0]
+        rx_port = [0]
+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters)
+
+        sleep(self.cli_connect_delay)
+        s = self.connect_cli_server()
+
+        # Deleting table rules
+        CMD_FILE = "/tmp/pipeline/ipsec_004/cmd_files/cmd_1.txt"
+        CLI_CMD = "pipeline PIPELINE0 table policy_table delete {}\n".format(CMD_FILE)
+        self.socket_send_cmd(s, CLI_CMD, "pipeline> ")
+        CLI_CMD = "pipeline PIPELINE0 commit\n"
+        self.socket_send_cmd(s, CLI_CMD, "pipeline> ")
+
+        # Deleting SA rules for transport mode
+        CLI_CMD = "ipsec IPSEC0 sa delete 0\n"
+        self.socket_send_cmd(s, CLI_CMD, "pipeline> ")
+        CLI_CMD = "ipsec IPSEC0 sa delete 1\n"
+        self.socket_send_cmd(s, CLI_CMD, "pipeline> ")
+
+        in_pcap = ["pipeline/ipsec_004/pcap_files/in_1.txt"]
+        out_pcap = ["pipeline/ipsec_004/pcap_files/out_2.txt"]
+        filters = ["tcp"]
+        tx_port = [0]
+        rx_port = [0]
+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters)
+
+        s.close()
+        self.dut.send_expect("^C", "# ", 20)
+
+    def test_rss_001(self):
+
+        cli_file = "/tmp/pipeline/rss_001/rss_001.cli"
+        self.run_dpdk_app(cli_file)
+
+        sleep(self.cli_connect_delay)
+        s = self.connect_cli_server()
+
+        CLI_CMD = "pipeline PIPELINE0 rss rss0 key 0 0 1 1\n"
+        self.socket_send_cmd(s, CLI_CMD, "pipeline> ")
+
+        in_pcap = ["pipeline/rss_001/pcap_files/in_1.txt"]
+        out_pcap = ["pipeline/rss_001/pcap_files/out_1.txt"]
+        filters = ["udp port 200"]
+        tx_port = [3]
+        rx_port = [0]
+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters)
+
+        CLI_CMD = "pipeline PIPELINE0 rss rss0 key 0 0 1 2\n"
+        self.socket_send_cmd(s, CLI_CMD, "pipeline> ")
+
+        in_pcap = ["pipeline/rss_001/pcap_files/in_1.txt"]
+        out_pcap = ["pipeline/rss_001/pcap_files/out_1.txt"]
+        filters = ["udp port 200"]
+        tx_port = [3]
+        rx_port = [1]
+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters)
+        s.close()
+
+        self.dut.send_expect("^C", "# ", 20)
+
+    def test_rss_002(self):
+
+        cli_file = "/tmp/pipeline/rss_002/rss_002.cli"
+        self.run_dpdk_app(cli_file)
+
+        sleep(self.cli_connect_delay)
+        s = self.connect_cli_server()
+
+        CLI_CMD = "pipeline PIPELINE0 rss rss0 key 0 0 1 1\n"
+        self.socket_send_cmd(s, CLI_CMD, "pipeline> ")
+
+        in_pcap = ["pipeline/rss_002/pcap_files/in_1.txt"]
+        out_pcap = ["pipeline/rss_002/pcap_files/out_1.txt"]
+        filters = ["udp port 200"]
+        tx_port = [3]
+        rx_port = [0]
+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters)
+
+        CLI_CMD = "pipeline PIPELINE0 rss rss0 key 0 0 5 6\n"
+        self.socket_send_cmd(s, CLI_CMD, "pipeline> ")
+
+        in_pcap = ["pipeline/rss_002/pcap_files/in_1.txt"]
+        out_pcap = ["pipeline/rss_002/pcap_files/out_1.txt"]
+        filters = ["udp port 200"]
+        tx_port = [3]
+        rx_port = [2]
+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters)
+        s.close()
+
+        self.dut.send_expect("^C", "# ", 20)
+
+    def test_rss_003(self):
+
+        cli_file = "/tmp/pipeline/rss_003/rss_003.cli"
+        self.run_dpdk_app(cli_file)
+
+        sleep(self.cli_connect_delay)
+        s = self.connect_cli_server()
+
+        CLI_CMD = "pipeline PIPELINE0 rss rss0 key 0 0 1 1\n"
+        self.socket_send_cmd(s, CLI_CMD, "pipeline> ")
+
+        in_pcap = ["pipeline/rss_003/pcap_files/in_1.txt"]
+        out_pcap = ["pipeline/rss_003/pcap_files/out_1.txt"]
+        filters = ["udp port 200"]
+        tx_port = [3]
+        rx_port = [0]
+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters)
+
+        CLI_CMD = "pipeline PIPELINE0 rss rss0 key 0 0 1 2\n"
+        self.socket_send_cmd(s, CLI_CMD, "pipeline> ")
+
+        in_pcap = ["pipeline/rss_003/pcap_files/in_1.txt"]
+        out_pcap = ["pipeline/rss_003/pcap_files/out_1.txt"]
+        filters = ["udp port 200"]
+        tx_port = [3]
+        rx_port = [1]
+        self.send_and_sniff_multiple(tx_port, rx_port, in_pcap, out_pcap, filters)
+        s.close()
+
+        self.dut.send_expect("^C", "# ", 20)
+
     def tear_down(self):
         """
         Run after each test case.