<div dir="auto">Hi, <span style="font-family:sans-serif">xuyanjie,</span><div dir="auto"><font face="sans-serif">Few minor coments:</font></div><div dir="auto"><font face="sans-serif"><br></font></div><div dir="auto"><font face="sans-serif">  </font>should has -> should have:</div><div dir="auto"><br></div><div dir="auto"><div class="gmail_quote" dir="auto"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
+        # Generally, testbed should has 4 ports NIC, like,<br>
+        # 03:00.0 03:00.1 03:00.2 03:00.3<br>
+        # This test case will<br>
+        # - physical link is 03:00.0 <-> 03:00.1 and 03:00.2 <-> 03:00.3<br>
+        # - bind 03:00.0 and 03:00.2 to ipsec-secgw app<br>
+        # - send test packet from 03:00.3<br>
+        # - receive packet which forwarded by ipsec-secgw from 03:00.0<br></blockquote></div></div><div dir="auto"><br></div><div dir="auto">Should be dts ports.cfg</div><div dir="auto">See: <a href="http://git.dpdk.org/tools/dts/tree/conf/ports.cfg">http://git.dpdk.org/tools/dts/tree/conf/ports.cfg</a></div><div dir="auto"><br></div><div dir="auto"><div class="gmail_quote" dir="auto"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
+        # - configure port and peer in dts port.cfg<br>
+        self.tx_port = self.tester.get_local_port(self.dut_ports[1])<br>
+        self.rx_port = self.tester.get_local_port(self.dut_ports[0])<br>
+<br>
+        self.tx_interface = self.tester.get_interface(self.tx_port)<br>
+        self.rx_interface = self.tester.get_interface(self.rx_port)<br>
+<br>
+        <a href="http://self.logger.info" rel="noreferrer noreferrer" target="_blank">self.logger.info</a>("tx interface = " + self.tx_interface)<br>
+        <a href="http://self.logger.info" rel="noreferrer noreferrer" target="_blank">self.logger.info</a>("rx interface = " + self.rx_interface)<br>
+<br>
+        self._app_path = "./examples/ipsec-secgw/build/ipsec-secgw"<br>
+        if not cc.is_build_skip(self):<br>
+            cc.build_dpdk_with_cryptodev(self)<br>
+        cc.bind_qat_device(self)<br>
+<br>
+        self._default_ipsec_gw_opts = {<br>
+            "config": None,<br>
+            "P": "",<br>
+            "p": "0x3",<br>
+            "f": "local_conf/ipsec_test.cfg",<br>
+            "u": "0x1"<br>
+        }<br>
+<br>
+        self._pcap_idx = 0<br>
+        self.pcap_filename = ''<br>
+<br>
+    def set_up(self):<br>
+        pass<br>
+<br>
+    def tear_down(self):<br>
+        self.dut.kill_all()<br>
+<br>
+    def tear_down_all(self):<br>
+        cc.clear_dpdk_config(self)<br>
+, "FAIL")<br>
+<br></blockquote></div></div><div dir="auto">...</div><div dir="auto">...</div><div dir="auto"><div class="gmail_quote" dir="auto"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"></blockquote></div></div><div dir="auto"><br></div><div dir="auto"><div class="gmail_quote" dir="auto"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
+    def test_tun_qat_aes_gcm_ipv4(self):<br>
+        if cc.is_test_skip(self):<br>
+            return<br>
+<br>
+        result = True<br>
+<br>
+        <a href="http://self.logger.info" rel="noreferrer noreferrer" target="_blank">self.logger.info</a>("Test tun_qat_aes_gcm_ipv4")<br>
+        self.pcap_filename = "test_tun_qat_aes_gcm_ipv4"<br>
+        ipsec_gw_opt_str = self._get_ipsec_gw_opt_str()<br>
+        self.logger.debug(ipsec_gw_opt_str)<br>
+<br>
+        result = self._execute_ipsec_gw_test(ipsec_gw_opt_str)<br>
+        self.verify(result, "FAIL")<br>
+<br>
+    def test_tun_qat_aes_128_ctr_ipv4(self):<br>
+        if cc.is_test_skip(self):<br>
+            return<br>
+<br>
+        result = True<br>
+<br>
+        <a href="http://self.logger.info" rel="noreferrer noreferrer" target="_blank">self.logger.info</a>("Test tun_qat_aes_128_ctr_ipv4")<br>
+        self.pcap_filename = "test_tun_qat_aes_128_ctr_ipv4"<br>
+        ipsec_gw_opt_str = self._get_ipsec_gw_opt_str()<br>
+        self.logger.debug(ipsec_gw_opt_str)<br>
+<br>
+        result = self._execute_ipsec_gw_test(ipsec_gw_opt_str)<br>
+        self.verify(result, "FAIL")<br>
+<br>
+    def test_tun_qat_aes_128_ctr_ipv6(self):<br>
+        if cc.is_test_skip(self):<br>
+            return<br>
+<br>
+        result = True<br>
+<br>
+        <a href="http://self.logger.info" rel="noreferrer noreferrer" target="_blank">self.logger.info</a>("Test tun_qat_aes_128_ctr_ipv6")<br>
+        self.pcap_filename = "test_tun_qat_aes_128_ctr_ipv6"<br>
+        ipsec_gw_opt_str = self._get_ipsec_gw_opt_str()<br>
+        self.logger.debug(ipsec_gw_opt_str)<br>
+<br>
+        result = self._execute_ipsec_gw_test(ipsec_gw_opt_str)<br>
+        self.verify(result, "FAIL")<br>
+<br>
+    def test_qat_aes_128_ctr_ipv4_transport(self):<br>
+        if cc.is_test_skip(self):<br>
+            return<br>
+<br>
+        result = True<br>
+<br></blockquote></div></div><div dir="auto"><br></div><div dir="auto">Should be: <span style="font-family:sans-serif"> </span></div><div dir="auto"><span style="font-family:sans-serif">              </span><a href="http://self.logger.info/" style="font-family:sans-serif">self.logger.info</a><span style="font-family:sans-serif">("Test trs_qat_aes_128_ctr_ipv4_transport")</span></div><div dir="auto"><br></div><div dir="auto"><div class="gmail_quote" dir="auto"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
+        <a href="http://self.logger.info" rel="noreferrer noreferrer" target="_blank">self.logger.info</a>("Test trs_qat_aes_128_ctr_ipv4")<br>
+        self.pcap_filename = "test_trs_qat_aes_128_ctr_ipv4"<br>
+        ipsec_gw_opt_str = self._get_ipsec_gw_opt_str()<br>
+        self.logger.debug(ipsec_gw_opt_str)<br>
+<br></blockquote></div></div><div dir="auto"><br></div><div dir="auto">Regards,</div><div dir="auto">Rami Rosen</div><div dir="auto"><br></div></div>