FIB: encode the label stack in the FIB path during table dump
[vpp.git] / src / vnet / ipsec / ipsec.c
index 8ebc579..a88164b 100644 (file)
@@ -73,18 +73,18 @@ ipsec_set_interface_spd (vlib_main_t * vm, u32 sw_if_index, u32 spd_id,
                sw_if_index, spd_id, spd_index);
 
   /* enable IPsec on TX */
-  vnet_feature_enable_disable ("ip4-output", "ipsec4-output", sw_if_index,
-                              is_add, 0, 0);
-  vnet_feature_enable_disable ("ip6-output", "ipsec6-output", sw_if_index,
-                              is_add, 0, 0);
+  vnet_feature_enable_disable ("ip4-output", "ipsec4-output-feature",
+                              sw_if_index, is_add, 0, 0);
+  vnet_feature_enable_disable ("ip6-output", "ipsec6-output-feature",
+                              sw_if_index, is_add, 0, 0);
 
   config.spd_index = spd_index;
 
   /* enable IPsec on RX */
-  vnet_feature_enable_disable ("ip4-unicast", "ipsec4-input", sw_if_index,
-                              is_add, &config, sizeof (config));
-  vnet_feature_enable_disable ("ip6-unicast", "ipsec6-input", sw_if_index,
-                              is_add, &config, sizeof (config));
+  vnet_feature_enable_disable ("ip4-unicast", "ipsec4-input-feature",
+                              sw_if_index, is_add, &config, sizeof (config));
+  vnet_feature_enable_disable ("ip6-unicast", "ipsec6-input-feature",
+                              sw_if_index, is_add, &config, sizeof (config));
 
   return 0;
 }
@@ -195,14 +195,12 @@ ipsec_add_del_policy (vlib_main_t * vm, ipsec_policy_t * policy, int is_add)
          if (policy->is_ipv6)
            {
              vec_add1 (spd->ipv6_outbound_policies, policy_index);
-             clib_memcpy (vp, policy, sizeof (ipsec_policy_t));
              vec_sort_with_function (spd->ipv6_outbound_policies,
                                      ipsec_spd_entry_sort);
            }
          else
            {
              vec_add1 (spd->ipv4_outbound_policies, policy_index);
-             clib_memcpy (vp, policy, sizeof (ipsec_policy_t));
              vec_sort_with_function (spd->ipv4_outbound_policies,
                                      ipsec_spd_entry_sort);
            }
@@ -215,7 +213,6 @@ ipsec_add_del_policy (vlib_main_t * vm, ipsec_policy_t * policy, int is_add)
                {
                  vec_add1 (spd->ipv6_inbound_protect_policy_indices,
                            policy_index);
-                 clib_memcpy (vp, policy, sizeof (ipsec_policy_t));
                  vec_sort_with_function
                    (spd->ipv6_inbound_protect_policy_indices,
                     ipsec_spd_entry_sort);
@@ -225,7 +222,6 @@ ipsec_add_del_policy (vlib_main_t * vm, ipsec_policy_t * policy, int is_add)
                  vec_add1
                    (spd->ipv6_inbound_policy_discard_and_bypass_indices,
                     policy_index);
-                 clib_memcpy (vp, policy, sizeof (ipsec_policy_t));
                  vec_sort_with_function
                    (spd->ipv6_inbound_policy_discard_and_bypass_indices,
                     ipsec_spd_entry_sort);
@@ -237,7 +233,6 @@ ipsec_add_del_policy (vlib_main_t * vm, ipsec_policy_t * policy, int is_add)
                {
                  vec_add1 (spd->ipv4_inbound_protect_policy_indices,
                            policy_index);
-                 clib_memcpy (vp, policy, sizeof (ipsec_policy_t));
                  vec_sort_with_function
                    (spd->ipv4_inbound_protect_policy_indices,
                     ipsec_spd_entry_sort);
@@ -247,7 +242,6 @@ ipsec_add_del_policy (vlib_main_t * vm, ipsec_policy_t * policy, int is_add)
                  vec_add1
                    (spd->ipv4_inbound_policy_discard_and_bypass_indices,
                     policy_index);
-                 clib_memcpy (vp, policy, sizeof (ipsec_policy_t));
                  vec_sort_with_function
                    (spd->ipv4_inbound_policy_discard_and_bypass_indices,
                     ipsec_spd_entry_sort);
@@ -617,13 +611,13 @@ ipsec_register_ah_backend (vlib_main_t * vm, ipsec_main_t * im,
   pool_get (im->ah_backends, b);
   b->name = format (NULL, "%s", name);
 
-  ipsec_add_node (vm, ah4_encrypt_node_name, "ipsec4-output",
+  ipsec_add_node (vm, ah4_encrypt_node_name, "ipsec4-output-feature",
                  &b->ah4_encrypt_node_index, &b->ah4_encrypt_next_index);
-  ipsec_add_node (vm, ah4_decrypt_node_name, "ipsec4-input",
+  ipsec_add_node (vm, ah4_decrypt_node_name, "ipsec4-input-feature",
                  &b->ah4_decrypt_node_index, &b->ah4_decrypt_next_index);
-  ipsec_add_node (vm, ah6_encrypt_node_name, "ipsec6-output",
+  ipsec_add_node (vm, ah6_encrypt_node_name, "ipsec6-output-feature",
                  &b->ah6_encrypt_node_index, &b->ah6_encrypt_next_index);
-  ipsec_add_node (vm, ah6_decrypt_node_name, "ipsec6-input",
+  ipsec_add_node (vm, ah6_decrypt_node_name, "ipsec6-input-feature",
                  &b->ah6_decrypt_node_index, &b->ah6_decrypt_next_index);
 
   b->check_support_cb = ah_check_support_cb;
@@ -645,13 +639,13 @@ ipsec_register_esp_backend (vlib_main_t * vm, ipsec_main_t * im,
   pool_get (im->esp_backends, b);
   b->name = format (NULL, "%s", name);
 
-  ipsec_add_node (vm, esp4_encrypt_node_name, "ipsec4-output",
+  ipsec_add_node (vm, esp4_encrypt_node_name, "ipsec4-output-feature",
                  &b->esp4_encrypt_node_index, &b->esp4_encrypt_next_index);
-  ipsec_add_node (vm, esp4_decrypt_node_name, "ipsec4-input",
+  ipsec_add_node (vm, esp4_decrypt_node_name, "ipsec4-input-feature",
                  &b->esp4_decrypt_node_index, &b->esp4_decrypt_next_index);
-  ipsec_add_node (vm, esp6_encrypt_node_name, "ipsec6-output",
+  ipsec_add_node (vm, esp6_encrypt_node_name, "ipsec6-output-feature",
                  &b->esp6_encrypt_node_index, &b->esp6_encrypt_next_index);
-  ipsec_add_node (vm, esp6_decrypt_node_name, "ipsec6-input",
+  ipsec_add_node (vm, esp6_decrypt_node_name, "ipsec6-input-feature",
                  &b->esp6_decrypt_node_index, &b->esp6_decrypt_next_index);
 
   b->check_support_cb = esp_check_support_cb;