ipsec: infra for selecting backends
[vpp.git] / src / vnet / ipsec / esp_encrypt.c
index 9c775ef..101c5ef 100644 (file)
@@ -145,7 +145,7 @@ esp_encrypt_inline (vlib_main_t * vm,
        vlib_node_increment_counter (vm, esp4_encrypt_node.index,
                                     ESP_ENCRYPT_ERROR_NO_BUFFER,
                                     n_left_from);
-      clib_warning ("no enough empty buffers. discarding frame");
+      clib_warning ("not enough empty buffers. discarding frame");
       goto free_buffers_and_exit;
     }
 
@@ -316,7 +316,7 @@ esp_encrypt_inline (vlib_main_t * vm,
                                           vlib_buffer_get_current (i_b0) -
                                           sizeof (ethernet_header_t));
                  oeh0 = (ethernet_header_t *) o_b0->data;
-                 clib_memcpy (oeh0, ieh0, sizeof (ethernet_header_t));
+                 clib_memcpy_fast (oeh0, ieh0, sizeof (ethernet_header_t));
                  next0 = ESP_ENCRYPT_NEXT_INTERFACE_OUTPUT;
                  vnet_buffer (o_b0)->sw_if_index[VLIB_TX] =
                    vnet_buffer (i_b0)->sw_if_index[VLIB_TX];
@@ -359,10 +359,10 @@ esp_encrypt_inline (vlib_main_t * vm,
                    ipsec_proto_main_crypto_algs[sa0->crypto_alg].iv_size];
              RAND_bytes (iv, sizeof (iv));
 
-             clib_memcpy ((u8 *) vlib_buffer_get_current (o_b0) +
-                          ip_udp_hdr_size + sizeof (esp_header_t), iv,
-                          em->ipsec_proto_main_crypto_algs[sa0->
-                                                           crypto_alg].iv_size);
+             clib_memcpy_fast ((u8 *) vlib_buffer_get_current (o_b0) +
+                               ip_udp_hdr_size + sizeof (esp_header_t), iv,
+                               em->ipsec_proto_main_crypto_algs[sa0->
+                                                                crypto_alg].iv_size);
 
              esp_encrypt_cbc (vm, sa0->crypto_alg,
                               (u8 *) vlib_buffer_get_current (i_b0),
@@ -444,16 +444,15 @@ free_buffers_and_exit:
   return from_frame->n_vectors;
 }
 
-static uword
-esp4_encrypt_node_fn (vlib_main_t * vm,
-                     vlib_node_runtime_t * node, vlib_frame_t * from_frame)
+VLIB_NODE_FN (esp4_encrypt_node) (vlib_main_t * vm,
+                                 vlib_node_runtime_t * node,
+                                 vlib_frame_t * from_frame)
 {
   return esp_encrypt_inline (vm, node, from_frame, 0 /* is_ip6 */ );
 }
 
 /* *INDENT-OFF* */
 VLIB_REGISTER_NODE (esp4_encrypt_node) = {
-  .function = esp4_encrypt_node_fn,
   .name = "esp4-encrypt",
   .vector_size = sizeof (u32),
   .format_trace = format_esp_encrypt_trace,
@@ -471,18 +470,15 @@ VLIB_REGISTER_NODE (esp4_encrypt_node) = {
 };
 /* *INDENT-ON* */
 
-VLIB_NODE_FUNCTION_MULTIARCH (esp4_encrypt_node, esp4_encrypt_node_fn);
-
-static uword
-esp6_encrypt_node_fn (vlib_main_t * vm,
-                     vlib_node_runtime_t * node, vlib_frame_t * from_frame)
+VLIB_NODE_FN (esp6_encrypt_node) (vlib_main_t * vm,
+                                 vlib_node_runtime_t * node,
+                                 vlib_frame_t * from_frame)
 {
   return esp_encrypt_inline (vm, node, from_frame, 1 /* is_ip6 */ );
 }
 
 /* *INDENT-OFF* */
 VLIB_REGISTER_NODE (esp6_encrypt_node) = {
-  .function = esp6_encrypt_node_fn,
   .name = "esp6-encrypt",
   .vector_size = sizeof (u32),
   .format_trace = format_esp_encrypt_trace,
@@ -500,7 +496,6 @@ VLIB_REGISTER_NODE (esp6_encrypt_node) = {
 };
 /* *INDENT-ON* */
 
-VLIB_NODE_FUNCTION_MULTIARCH (esp6_encrypt_node, esp6_encrypt_node_fn);
 /*
  * fd.io coding-style-patch-verification: ON
  *