summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/plugins/dpdk/CMakeLists.txt3
-rw-r--r--src/plugins/dpdk/ipsec/crypto_node.c17
-rw-r--r--src/plugins/dpdk/ipsec/esp_decrypt.c13
-rw-r--r--src/plugins/dpdk/ipsec/esp_encrypt.c4
4 files changed, 24 insertions, 13 deletions
diff --git a/src/plugins/dpdk/CMakeLists.txt b/src/plugins/dpdk/CMakeLists.txt
index f6ccb0358d4..45605baada0 100644
--- a/src/plugins/dpdk/CMakeLists.txt
+++ b/src/plugins/dpdk/CMakeLists.txt
@@ -137,6 +137,9 @@ if(DPDK_INCLUDE_DIR AND DPDK_LIB)
buffer.c
device/device.c
device/node.c
+ ipsec/crypto_node.c
+ ipsec/esp_decrypt.c
+ ipsec/esp_encrypt.c
API_FILES
api/dpdk.api
diff --git a/src/plugins/dpdk/ipsec/crypto_node.c b/src/plugins/dpdk/ipsec/crypto_node.c
index 6c92e8fc5ba..5fbaaf3316a 100644
--- a/src/plugins/dpdk/ipsec/crypto_node.c
+++ b/src/plugins/dpdk/ipsec/crypto_node.c
@@ -44,7 +44,7 @@ static char *dpdk_crypto_input_error_strings[] = {
#undef _
};
-vlib_node_registration_t dpdk_crypto_input_node;
+extern vlib_node_registration_t dpdk_crypto_input_node;
typedef struct
{
@@ -174,9 +174,9 @@ dpdk_crypto_dequeue (vlib_main_t * vm, vlib_node_runtime_t * node,
return total_n_deq;
}
-static uword
-dpdk_crypto_input_fn (vlib_main_t * vm, vlib_node_runtime_t * node,
- vlib_frame_t * frame)
+static_always_inline uword
+dpdk_crypto_input_inline (vlib_main_t * vm, vlib_node_runtime_t * node,
+ vlib_frame_t * frame)
{
u32 thread_index = vlib_get_thread_index ();
dpdk_crypto_main_t *dcm = &dpdk_crypto_main;
@@ -228,10 +228,16 @@ dpdk_crypto_input_fn (vlib_main_t * vm, vlib_node_runtime_t * node,
return n_deq;
}
+VLIB_NODE_FN (dpdk_crypto_input_node) (vlib_main_t * vm,
+ vlib_node_runtime_t * node,
+ vlib_frame_t * from_frame)
+{
+ return dpdk_crypto_input_inline (vm, node, from_frame);
+}
+
/* *INDENT-OFF* */
VLIB_REGISTER_NODE (dpdk_crypto_input_node) =
{
- .function = dpdk_crypto_input_fn,
.name = "dpdk-crypto-input",
.format_trace = format_dpdk_crypto_input_trace,
.type = VLIB_NODE_TYPE_INPUT,
@@ -248,7 +254,6 @@ VLIB_REGISTER_NODE (dpdk_crypto_input_node) =
};
/* *INDENT-ON* */
-VLIB_NODE_FUNCTION_MULTIARCH (dpdk_crypto_input_node, dpdk_crypto_input_fn)
/*
* fd.io coding-style-patch-verification: ON
*
diff --git a/src/plugins/dpdk/ipsec/esp_decrypt.c b/src/plugins/dpdk/ipsec/esp_decrypt.c
index f0fa506debb..1ed35188e18 100644
--- a/src/plugins/dpdk/ipsec/esp_decrypt.c
+++ b/src/plugins/dpdk/ipsec/esp_decrypt.c
@@ -62,8 +62,8 @@ static char * esp_decrypt_error_strings[] = {
#undef _
};
-vlib_node_registration_t dpdk_esp4_decrypt_node;
-vlib_node_registration_t dpdk_esp6_decrypt_node;
+extern vlib_node_registration_t dpdk_esp4_decrypt_node;
+extern vlib_node_registration_t dpdk_esp6_decrypt_node;
typedef struct {
ipsec_crypto_alg_t crypto_alg;
@@ -451,8 +451,8 @@ static char * esp_decrypt_post_error_strings[] = {
#undef _
};
-vlib_node_registration_t dpdk_esp4_decrypt_post_node;
-vlib_node_registration_t dpdk_esp6_decrypt_post_node;
+extern vlib_node_registration_t dpdk_esp4_decrypt_post_node;
+extern vlib_node_registration_t dpdk_esp6_decrypt_post_node;
static u8 * format_esp_decrypt_post_trace (u8 * s, va_list * args)
{
@@ -695,7 +695,9 @@ VLIB_REGISTER_NODE (dpdk_esp4_decrypt_post_node) = {
VLIB_NODE_FN(dpdk_esp6_decrypt_post_node) (vlib_main_t * vm,
vlib_node_runtime_t * node,
vlib_frame_t * from_frame)
-{return dpdk_esp_decrypt_post_inline(vm, node, from_frame, 0/*is_ip6*/);}
+{
+ return dpdk_esp_decrypt_post_inline(vm, node, from_frame, 0/*is_ip6*/);
+}
/* *INDENT-OFF* */
VLIB_REGISTER_NODE (dpdk_esp6_decrypt_post_node) = {
@@ -715,3 +717,4 @@ VLIB_REGISTER_NODE (dpdk_esp6_decrypt_post_node) = {
},
};
/* *INDENT-ON* */
+
diff --git a/src/plugins/dpdk/ipsec/esp_encrypt.c b/src/plugins/dpdk/ipsec/esp_encrypt.c
index 2259b1b7b81..2a8d6104915 100644
--- a/src/plugins/dpdk/ipsec/esp_encrypt.c
+++ b/src/plugins/dpdk/ipsec/esp_encrypt.c
@@ -63,8 +63,8 @@ static char *esp_encrypt_error_strings[] = {
#undef _
};
-vlib_node_registration_t dpdk_esp4_encrypt_node;
-vlib_node_registration_t dpdk_esp6_encrypt_node;
+extern vlib_node_registration_t dpdk_esp4_encrypt_node;
+extern vlib_node_registration_t dpdk_esp6_encrypt_node;
typedef struct
{