ipsec: IPSec protection for multi-point tunnel interfaces
[vpp.git] / src / vnet / ipsec / ipsec_spd.c
index 7e17bb9..ef41c22 100644 (file)
@@ -14,6 +14,7 @@
  */
 
 #include <vnet/ipsec/ipsec.h>
+#include <vnet/ipsec/ipsec_io.h>
 
 int
 ipsec_add_del_spd (vlib_main_t * vm, u32 spd_id, int is_add)
@@ -42,12 +43,10 @@ ipsec_add_del_spd (vlib_main_t * vm, u32 spd_id, int is_add)
       }));
       /* *INDENT-ON* */
       hash_unset (im->spd_index_by_spd_id, spd_id);
-      pool_free (spd->policies);
-      vec_free (spd->ipv4_outbound_policies);
-      vec_free (spd->ipv6_outbound_policies);
-      vec_free (spd->ipv4_inbound_protect_policy_indices);
-      vec_free (spd->ipv4_inbound_policy_discard_and_bypass_indices);
-      pool_put (im->spds, spd);
+#define _(s,v) vec_free(spd->policies[IPSEC_SPD_POLICY_##s]);
+      foreach_ipsec_spd_policy_type
+#undef _
+       pool_put (im->spds, spd);
     }
   else                         /* create new SPD */
     {
@@ -89,9 +88,6 @@ ipsec_set_interface_spd (vlib_main_t * vm, u32 sw_if_index, u32 spd_id,
       hash_unset (im->spd_index_by_sw_if_index, sw_if_index);
     }
 
-  clib_warning ("sw_if_index %u spd_id %u spd_index %u",
-               sw_if_index, spd_id, spd_index);
-
   /* enable IPsec on TX */
   vnet_feature_enable_disable ("ip4-output", "ipsec4-output-feature",
                               sw_if_index, is_add, 0, 0);