ikev2: add support for custom ipsec-over-udp port
[vpp.git] / src / vnet / l2tp / encap.c
index dcdfde4..8863ddf 100644 (file)
@@ -57,23 +57,21 @@ typedef struct
   vnet_main_t *vnet_main;
 } l2tp_encap_runtime_t;
 
-vlib_node_registration_t l2t_encap_node;
+extern vlib_node_registration_t l2t_encap_node;
 
 #define NSTAGES 3
 
 static inline void
-stage0 (vlib_main_t * vm, vlib_node_runtime_t * node, u32 buffer_index)
+stage0 (vlib_main_t * vm, vlib_node_runtime_t * node, vlib_buffer_t * b)
 {
-  vlib_buffer_t *b = vlib_get_buffer (vm, buffer_index);
   vlib_prefetch_buffer_header (b, STORE);
   CLIB_PREFETCH (b->data, 2 * CLIB_CACHE_LINE_BYTES, STORE);
 }
 
 static inline void
-stage1 (vlib_main_t * vm, vlib_node_runtime_t * node, u32 bi)
+stage1 (vlib_main_t * vm, vlib_node_runtime_t * node, vlib_buffer_t * b)
 {
   l2tp_encap_runtime_t *rt = (void *) node->runtime_data;
-  vlib_buffer_t *b = vlib_get_buffer (vm, bi);
   vnet_hw_interface_t *hi;
 
   u32 sw_if_index = vnet_buffer (b)->sw_if_index[VLIB_TX];
@@ -94,9 +92,8 @@ stage1 (vlib_main_t * vm, vlib_node_runtime_t * node, u32 bi)
 }
 
 static inline u32
-last_stage (vlib_main_t * vm, vlib_node_runtime_t * node, u32 bi)
+last_stage (vlib_main_t * vm, vlib_node_runtime_t * node, vlib_buffer_t * b)
 {
-  vlib_buffer_t *b = vlib_get_buffer (vm, bi);
   l2t_main_t *lm = &l2t_main;
   vlib_node_t *n = vlib_get_node (vm, l2t_encap_node.index);
   u32 node_counter_base_index = n->error_heap_index;
@@ -187,9 +184,9 @@ done:
 
 #include <vnet/pipeline.h>
 
-uword
-l2t_encap_node_fn (vlib_main_t * vm,
-                  vlib_node_runtime_t * node, vlib_frame_t * frame)
+VLIB_NODE_FN (l2t_encap_node) (vlib_main_t * vm,
+                              vlib_node_runtime_t * node,
+                              vlib_frame_t * frame)
 {
   return dispatch_pipeline (vm, node, frame);
 }
@@ -197,7 +194,6 @@ l2t_encap_node_fn (vlib_main_t * vm,
 
 /* *INDENT-OFF* */
 VLIB_REGISTER_NODE (l2t_encap_node) = {
-  .function = l2t_encap_node_fn,
   .name = "l2tp-encap",
   .vector_size = sizeof (u32),
   .format_trace = format_l2t_trace,
@@ -217,7 +213,7 @@ VLIB_REGISTER_NODE (l2t_encap_node) = {
 };
 /* *INDENT-ON* */
 
-VLIB_NODE_FUNCTION_MULTIARCH (l2t_encap_node, l2t_encap_node_fn);
+#ifndef CLIB_MARCH_VARIANT
 void
 l2tp_encap_init (vlib_main_t * vm)
 {
@@ -228,6 +224,7 @@ l2tp_encap_init (vlib_main_t * vm)
   rt->cached_sw_if_index = (u32) ~ 0;
   rt->cached_session_index = (u32) ~ 0;
 }
+#endif /* CLIB_MARCH_VARIANT */
 
 /*
  * fd.io coding-style-patch-verification: ON