ipsec: split ipsec nodes into ip4/ip6 nodes
[vpp.git] / src / vnet / ipsec / ipsec_if.c
index a7dbcba..2640f25 100644 (file)
@@ -78,7 +78,7 @@ ipsec_if_tx_node_fn (vlib_main_t * vm, vlib_node_runtime_t * node,
   vnet_interface_main_t *vim = &vnm->interface_main;
   u32 *from, *to_next = 0, next_index;
   u32 n_left_from, sw_if_index0, last_sw_if_index = ~0;
-  u32 thread_index = vlib_get_thread_index ();
+  u32 thread_index = vm->thread_index;
   u32 n_bytes = 0, n_packets = 0;
 
   from = vlib_frame_vector_args (from_frame);
@@ -108,7 +108,7 @@ ipsec_if_tx_node_fn (vlib_main_t * vm, vlib_node_runtime_t * node,
          hi0 = vnet_get_sup_hw_interface (vnm, sw_if_index0);
          t0 = pool_elt_at_index (im->tunnel_interfaces, hi0->dev_instance);
          vnet_buffer (b0)->ipsec.sad_index = t0->output_sa_index;
-         next0 = IPSEC_OUTPUT_NEXT_ESP_ENCRYPT;
+         next0 = IPSEC_OUTPUT_NEXT_ESP4_ENCRYPT;
 
          len0 = vlib_buffer_length_in_chain (vm, b0);
 
@@ -318,6 +318,7 @@ ipsec_add_del_tunnel_if_internal (vnet_main_t * vnm,
       sa->use_esn = args->esn;
       sa->use_anti_replay = args->anti_replay;
       sa->integ_alg = args->integ_alg;
+      sa->udp_encap = args->udp_encap;
       if (args->remote_integ_key_len <= sizeof (args->remote_integ_key))
        {
          sa->integ_key_len = args->remote_integ_key_len;
@@ -342,6 +343,7 @@ ipsec_add_del_tunnel_if_internal (vnet_main_t * vnm,
       sa->use_esn = args->esn;
       sa->use_anti_replay = args->anti_replay;
       sa->integ_alg = args->integ_alg;
+      sa->udp_encap = args->udp_encap;
       if (args->local_integ_key_len <= sizeof (args->local_integ_key))
        {
          sa->integ_key_len = args->local_integ_key_len;
@@ -366,11 +368,11 @@ ipsec_add_del_tunnel_if_internal (vnet_main_t * vnm,
 
       hi = vnet_get_hw_interface (vnm, hw_if_index);
 
-      slot = vlib_node_add_named_next_with_slot
-       (vnm->vlib_main, hi->tx_node_index, "esp-encrypt",
-        IPSEC_OUTPUT_NEXT_ESP_ENCRYPT);
+      slot = vlib_node_add_next_with_slot
+       (vnm->vlib_main, hi->tx_node_index, im->esp4_encrypt_node_index,
+        IPSEC_OUTPUT_NEXT_ESP4_ENCRYPT);
 
-      ASSERT (slot == IPSEC_OUTPUT_NEXT_ESP_ENCRYPT);
+      ASSERT (slot == IPSEC_OUTPUT_NEXT_ESP4_ENCRYPT);
 
       t->hw_if_index = hw_if_index;