Punt: socket register for exception dispatched/punted packets based on reason
[vpp.git] / src / vlib / punt.c
index 5f83707..7c2daf2 100644 (file)
@@ -366,6 +366,15 @@ vlib_punt_unregister (vlib_punt_hdl_t client,
   return (0);
 }
 
+int
+vlib_punt_reason_validate (vlib_punt_reason_t reason)
+{
+  if (reason < punt_reason_last)
+    return (0);
+
+  return (-1);
+}
+
 int
 vlib_punt_reason_alloc (vlib_punt_hdl_t client,
                        const char *reason_name, vlib_punt_reason_t * reason)
@@ -392,6 +401,17 @@ vlib_punt_reason_alloc (vlib_punt_hdl_t client,
   return (0);
 }
 
+void
+punt_reason_walk (punt_reason_walk_cb_t cb, void *ctx)
+{
+  punt_reason_data_t *pd;
+
+  vec_foreach (pd, punt_reason_data)
+  {
+    cb (pd->pd_reason, pd->pd_name, ctx);
+  }
+}
+
 /* Parse node name -> node index. */
 uword
 unformat_punt_client (unformat_input_t * input, va_list * args)