diff options
-rw-r--r-- | src/vnet/CMakeLists.txt | 5 | ||||
-rw-r--r-- | src/vnet/udp/udp.c | 2 | ||||
-rw-r--r-- | src/vnet/udp/udp.h | 2 | ||||
-rw-r--r-- | src/vnet/udp/udp_encap_node.c | 16 | ||||
-rw-r--r-- | src/vnet/udp/udp_local.c | 27 |
5 files changed, 25 insertions, 27 deletions
diff --git a/src/vnet/CMakeLists.txt b/src/vnet/CMakeLists.txt index f308f7232c2..c38c01cbd7a 100644 --- a/src/vnet/CMakeLists.txt +++ b/src/vnet/CMakeLists.txt @@ -599,6 +599,11 @@ list(APPEND VNET_SOURCES udp/udp_api.c ) +list(APPEND VNET_MULTIARCH_SOURCES + udp/udp_local.c + udp/udp_encap_node.c +) + list(APPEND VNET_HEADERS udp/udp_error.def udp/udp.h diff --git a/src/vnet/udp/udp.c b/src/vnet/udp/udp.c index 694cffa6f5f..727efa4505e 100644 --- a/src/vnet/udp/udp.c +++ b/src/vnet/udp/udp.c @@ -22,6 +22,8 @@ #include <vnet/dpo/load_balance.h> #include <vnet/fib/ip4_fib.h> +udp_main_t udp_main; + udp_connection_t * udp_connection_alloc (u32 thread_index) { diff --git a/src/vnet/udp/udp.h b/src/vnet/udp/udp.h index 19db4f81777..6d75b2842f0 100644 --- a/src/vnet/udp/udp.h +++ b/src/vnet/udp/udp.h @@ -148,6 +148,8 @@ typedef struct extern udp_main_t udp_main; extern vlib_node_registration_t udp4_input_node; extern vlib_node_registration_t udp6_input_node; +extern vlib_node_registration_t udp4_local_node; +extern vlib_node_registration_t udp6_local_node; always_inline udp_connection_t * udp_connection_get (u32 conn_index, u32 thread_index) diff --git a/src/vnet/udp/udp_encap_node.c b/src/vnet/udp/udp_encap_node.c index abf19faa590..af0afb1ab57 100644 --- a/src/vnet/udp/udp_encap_node.c +++ b/src/vnet/udp/udp_encap_node.c @@ -247,23 +247,22 @@ udp_encap_inline (vlib_main_t * vm, return frame->n_vectors; } -static uword -udp4_encap (vlib_main_t * vm, - vlib_node_runtime_t * node, vlib_frame_t * frame) +VLIB_NODE_FN (udp4_encap_node) (vlib_main_t * vm, + vlib_node_runtime_t * node, + vlib_frame_t * frame) { return udp_encap_inline (vm, node, frame, 0); } -static uword -udp6_encap (vlib_main_t * vm, - vlib_node_runtime_t * node, vlib_frame_t * frame) +VLIB_NODE_FN (udp6_encap_node) (vlib_main_t * vm, + vlib_node_runtime_t * node, + vlib_frame_t * frame) { return udp_encap_inline (vm, node, frame, 1); } /* *INDENT-OFF* */ VLIB_REGISTER_NODE (udp4_encap_node) = { - .function = udp4_encap, .name = "udp4-encap", .vector_size = sizeof (u32), @@ -271,10 +270,8 @@ VLIB_REGISTER_NODE (udp4_encap_node) = { .n_next_nodes = 0, }; -VLIB_NODE_FUNCTION_MULTIARCH (udp4_encap_node, udp4_encap); VLIB_REGISTER_NODE (udp6_encap_node) = { - .function = udp6_encap, .name = "udp6-encap", .vector_size = sizeof (u32), @@ -282,7 +279,6 @@ VLIB_REGISTER_NODE (udp6_encap_node) = { .n_next_nodes = 0, }; -VLIB_NODE_FUNCTION_MULTIARCH (udp6_encap_node, udp6_encap); /* *INDENT-ON* */ diff --git a/src/vnet/udp/udp_local.c b/src/vnet/udp/udp_local.c index a16ba22cf27..441a6e86577 100644 --- a/src/vnet/udp/udp_local.c +++ b/src/vnet/udp/udp_local.c @@ -21,8 +21,6 @@ #include <vnet/udp/udp_packet.h> #include <vppinfra/sparse_vec.h> -udp_main_t udp_main; - #define foreach_udp_local_next \ _ (PUNT4, "ip4-punt") \ _ (PUNT6, "ip6-punt") \ @@ -49,6 +47,7 @@ typedef struct u8 bound; } udp_local_rx_trace_t; +#ifndef CLIB_MARCH_VARIANT u8 * format_udp_rx_trace (u8 * s, va_list * args) { @@ -62,9 +61,7 @@ format_udp_rx_trace (u8 * s, va_list * args) t->bound ? "" : " (no listener)"); return s; } - -vlib_node_registration_t udp4_local_node; -vlib_node_registration_t udp6_local_node; +#endif /* CLIB_MARCH_VARIANT */ always_inline uword udp46_local_inline (vlib_main_t * vm, @@ -404,23 +401,22 @@ static char *udp_error_strings[] = { #undef udp_error }; -static uword -udp4_local (vlib_main_t * vm, - vlib_node_runtime_t * node, vlib_frame_t * from_frame) +VLIB_NODE_FN (udp4_local_node) (vlib_main_t * vm, + vlib_node_runtime_t * node, + vlib_frame_t * from_frame) { return udp46_local_inline (vm, node, from_frame, 1 /* is_ip4 */ ); } -static uword -udp6_local (vlib_main_t * vm, - vlib_node_runtime_t * node, vlib_frame_t * from_frame) +VLIB_NODE_FN (udp6_local_node) (vlib_main_t * vm, + vlib_node_runtime_t * node, + vlib_frame_t * from_frame) { return udp46_local_inline (vm, node, from_frame, 0 /* is_ip4 */ ); } /* *INDENT-OFF* */ VLIB_REGISTER_NODE (udp4_local_node) = { - .function = udp4_local, .name = "ip4-udp-lookup", /* Takes a vector of packets. */ .vector_size = sizeof (u32), @@ -441,11 +437,8 @@ VLIB_REGISTER_NODE (udp4_local_node) = { }; /* *INDENT-ON* */ -VLIB_NODE_FUNCTION_MULTIARCH (udp4_local_node, udp4_local); - /* *INDENT-OFF* */ VLIB_REGISTER_NODE (udp6_local_node) = { - .function = udp6_local, .name = "ip6-udp-lookup", /* Takes a vector of packets. */ .vector_size = sizeof (u32), @@ -466,8 +459,7 @@ VLIB_REGISTER_NODE (udp6_local_node) = { }; /* *INDENT-ON* */ -VLIB_NODE_FUNCTION_MULTIARCH (udp6_local_node, udp6_local); - +#ifndef CLIB_MARCH_VARIANT static void add_dst_port (udp_main_t * um, udp_dst_port_t dst_port, char *dst_port_name, u8 is_ip4) @@ -666,6 +658,7 @@ udp_local_init (vlib_main_t * vm) } VLIB_INIT_FUNCTION (udp_local_init); +#endif /* CLIB_MARCH_VARIANT */ /* * fd.io coding-style-patch-verification: ON |