vxlan: convert vxlan to a plugin
[vpp.git] / src / plugins / nsh / nsh_pop.c
index 682a92d..8de319e 100644 (file)
@@ -18,8 +18,7 @@
 #include <vnet/vnet.h>
 #include <vnet/plugin/plugin.h>
 #include <nsh/nsh.h>
-#include <vnet/gre/gre.h>
-#include <vnet/vxlan/vxlan.h>
+#include <vnet/gre/packet.h>
 #include <vnet/vxlan-gpe/vxlan_gpe.h>
 #include <vnet/l2/l2_classify.h>
 
@@ -30,20 +29,8 @@ extern nsh_option_map_t * nsh_md2_lookup_option (u16 class, u8 type);
 
 extern u8 * format_nsh_header (u8 * s, va_list * args);
 extern u8 * format_nsh_node_map_trace (u8 * s, va_list * args);
-
-/* format from network order */
-u8 * format_nsh_pop_header (u8 * s, va_list * args)
-{
-  return format_nsh_header(s, args);
-}
-
-
-
-u8 * format_nsh_pop_node_map_trace (u8 * s, va_list * args)
-{
-  return format_nsh_node_map_trace(s, args);
-}
-
+extern u8 * format_nsh_pop_header (u8 * s, va_list * args);
+extern u8 * format_nsh_pop_node_map_trace (u8 * s, va_list * args);
 
 static uword
 nsh_pop_inline (vlib_main_t * vm,
@@ -122,11 +109,6 @@ nsh_pop_inline (vlib_main_t * vm,
 
          /* Entry should point to a mapping ...*/
          map0 = pool_elt_at_index(nm->nsh_mappings, entry0[0]);
-         if (PREDICT_FALSE(map0 == 0))
-           {
-             error0 = NSH_NODE_ERROR_NO_MAPPING;
-             goto trace0;
-           }
 
          /* set up things for next node to transmit ie which node to handle it and where */
          next0 = map0->next_node;
@@ -175,11 +157,6 @@ nsh_pop_inline (vlib_main_t * vm,
 
          /* Entry should point to a mapping ...*/
          map1 = pool_elt_at_index(nm->nsh_mappings, entry1[0]);
-         if (PREDICT_FALSE(map1 == 0))
-           {
-             error1 = NSH_NODE_ERROR_NO_MAPPING;
-             goto trace1;
-           }
 
          /* set up things for next node to transmit ie which node to handle it and where */
          next1 = map1->next_node;
@@ -261,11 +238,6 @@ nsh_pop_inline (vlib_main_t * vm,
          /* Entry should point to a mapping ...*/
          map0 = pool_elt_at_index(nm->nsh_mappings, entry0[0]);
 
-         if (PREDICT_FALSE(map0 == 0))
-           {
-             error0 = NSH_NODE_ERROR_NO_MAPPING;
-             goto trace00;
-           }
 
          /* set up things for next node to transmit ie which node to handle it and where */
          next0 = map0->next_node;
@@ -326,8 +298,7 @@ nsh_pop_inline (vlib_main_t * vm,
  * @return from_frame->n_vectors
  *
  */
-static uword
-nsh_pop (vlib_main_t * vm, vlib_node_runtime_t * node,
+VLIB_NODE_FN (nsh_pop_node) (vlib_main_t * vm, vlib_node_runtime_t * node,
                   vlib_frame_t * from_frame)
 {
   return nsh_pop_inline (vm, node, from_frame);
@@ -341,7 +312,6 @@ static char * nsh_pop_node_error_strings[] = {
 
 /* register nsh-input node */
 VLIB_REGISTER_NODE (nsh_pop_node) = {
-  .function = nsh_pop,
   .name = "nsh-pop",
   .vector_size = sizeof (u32),
   .format_trace = format_nsh_pop_node_map_trace,
@@ -360,6 +330,3 @@ VLIB_REGISTER_NODE (nsh_pop_node) = {
   },
 };
 
-VLIB_NODE_FUNCTION_MULTIARCH (nsh_pop_node, nsh_pop);
-
-