ipsec: remove dedicated IPSec tunnels
[vpp.git] / test / test_ipsec_ah.py
index ec0c558..73577cd 100644 (file)
@@ -88,13 +88,13 @@ class ConfigIpsecAH(TemplateIpsec):
             config_tra_params(p, self.encryption_type)
         for p in params:
             self.config_ah_tun(p)
+            config_tun_params(p, self.encryption_type, self.tun_if)
         for p in params:
             d = DpoProto.DPO_PROTO_IP6 if p.is_ipv6 else DpoProto.DPO_PROTO_IP4
             r = VppIpRoute(self,  p.remote_tun_if_host, p.addr_len,
                            [VppRoutePath(self.tun_if.remote_addr[p.addr_type],
                                          0xffffffff,
-                                         proto=d)],
-                           is_ip6=p.is_ipv6)
+                                         proto=d)])
             r.add_vpp_config()
             self.net_objs.append(r)
         self.logger.info(self.vapi.ppcli("show ipsec all"))
@@ -313,7 +313,10 @@ class TestIpsecAhAll(ConfigIpsecAH,
         super(TestIpsecAhAll, self).tearDown()
 
     def test_integ_algs(self):
-        """SHA1_96, SHA256, SHA394, SHA512 w/ & w/o ESN"""
+        """All Engines SHA[1_96, 256, 384, 512] w/ & w/o ESN"""
+        # foreach VPP crypto engine
+        engines = ["ia32", "ipsecmb", "openssl"]
+
         algos = [{'vpp': VppEnum.vl_api_ipsec_integ_alg_t.
                   IPSEC_API_INTEG_ALG_SHA1_96,
                   'scapy': "HMAC-SHA1-96"},
@@ -331,45 +334,50 @@ class TestIpsecAhAll(ConfigIpsecAH,
                      IPSEC_API_SAD_FLAG_USE_ESN)]
 
         #
-        # loop through each of the algorithms
+        # loop through the VPP engines
         #
-        for algo in algos:
-            # with self.subTest(algo=algo['scapy']):
-            for flag in flags:
-                #
-                # setup up the config paramters
-                #
-                self.ipv4_params = IPsecIPv4Params()
-                self.ipv6_params = IPsecIPv6Params()
-
-                self.params = {self.ipv4_params.addr_type:
-                               self.ipv4_params,
-                               self.ipv6_params.addr_type:
-                               self.ipv6_params}
-
-                for _, p in self.params.items():
-                    p.auth_algo_vpp_id = algo['vpp']
-                    p.auth_algo = algo['scapy']
-                    p.flags = p.flags | flag
-
-                #
-                # configure the SPDs. SAs, etc
-                #
-                self.config_network(self.params.values())
-
-                #
-                # run some traffic.
-                #  An exhautsive 4o6, 6o4 is not necessary for each algo
-                #
-                self.verify_tra_basic6(count=17)
-                self.verify_tra_basic4(count=17)
-                self.verify_tun_66(self.params[socket.AF_INET6], count=17)
-                self.verify_tun_44(self.params[socket.AF_INET], count=17)
-
-                #
-                # remove the SPDs, SAs, etc
-                #
-                self.unconfig_network()
+        for engine in engines:
+            self.vapi.cli("set crypto handler all %s" % engine)
+            #
+            # loop through each of the algorithms
+            #
+            for algo in algos:
+                # with self.subTest(algo=algo['scapy']):
+                for flag in flags:
+                    #
+                    # setup up the config paramters
+                    #
+                    self.ipv4_params = IPsecIPv4Params()
+                    self.ipv6_params = IPsecIPv6Params()
+
+                    self.params = {self.ipv4_params.addr_type:
+                                   self.ipv4_params,
+                                   self.ipv6_params.addr_type:
+                                   self.ipv6_params}
+
+                    for _, p in self.params.items():
+                        p.auth_algo_vpp_id = algo['vpp']
+                        p.auth_algo = algo['scapy']
+                        p.flags = p.flags | flag
+
+                    #
+                    # configure the SPDs. SAs, etc
+                    #
+                    self.config_network(self.params.values())
+
+                    #
+                    # run some traffic.
+                    #  An exhautsive 4o6, 6o4 is not necessary for each algo
+                    #
+                    self.verify_tra_basic6(count=17)
+                    self.verify_tra_basic4(count=17)
+                    self.verify_tun_66(self.params[socket.AF_INET6], count=17)
+                    self.verify_tun_44(self.params[socket.AF_INET], count=17)
+
+                    #
+                    # remove the SPDs, SAs, etc
+                    #
+                    self.unconfig_network()
 
 
 if __name__ == '__main__':