IKEv2 to plugin
[vpp.git] / src / vnet / ipsec / ipsec.c
index e88a72e..a512d00 100644 (file)
@@ -22,7 +22,6 @@
 #include <vnet/udp/udp.h>
 
 #include <vnet/ipsec/ipsec.h>
-#include <vnet/ipsec/ikev2.h>
 #include <vnet/ipsec/esp.h>
 #include <vnet/ipsec/ah.h>
 
@@ -181,6 +180,14 @@ ipsec_register_esp_backend (vlib_main_t * vm, ipsec_main_t * im,
   return b - im->esp_backends;
 }
 
+static walk_rc_t
+ipsec_sa_restack (ipsec_sa_t * sa, void *ctx)
+{
+  ipsec_sa_stack (sa);
+
+  return (WALK_CONTINUE);
+}
+
 int
 ipsec_select_ah_backend (ipsec_main_t * im, u32 backend_idx)
 {
@@ -199,6 +206,8 @@ ipsec_select_ah_backend (ipsec_main_t * im, u32 backend_idx)
   im->ah6_decrypt_node_index = b->ah6_decrypt_node_index;
   im->ah6_encrypt_next_index = b->ah6_encrypt_next_index;
   im->ah6_decrypt_next_index = b->ah6_decrypt_next_index;
+
+  ipsec_sa_walk (ipsec_sa_restack, NULL);
   return 0;
 }
 
@@ -220,6 +229,8 @@ ipsec_select_esp_backend (ipsec_main_t * im, u32 backend_idx)
   im->esp6_decrypt_node_index = b->esp6_decrypt_node_index;
   im->esp6_encrypt_next_index = b->esp6_encrypt_next_index;
   im->esp6_decrypt_next_index = b->esp6_decrypt_next_index;
+
+  ipsec_sa_walk (ipsec_sa_restack, NULL);
   return 0;
 }
 
@@ -281,9 +292,6 @@ ipsec_init (vlib_main_t * vm)
 
   ipsec_proto_init ();
 
-  if ((error = ikev2_init (vm)))
-    return error;
-
   return 0;
 }