vom: Add support for redirect contracts in gbp
[vpp.git] / src / vlib / error.c
index 3681182..691e639 100644 (file)
@@ -114,7 +114,7 @@ static uword
 misc_drop_buffers (vlib_main_t * vm,
                   vlib_node_runtime_t * node, vlib_frame_t * frame)
 {
-  return vlib_error_drop_buffers (vm, node, vlib_frame_args (frame),
+  return vlib_error_drop_buffers (vm, node, vlib_frame_vector_args (frame),
                                  /* buffer stride */ 1,
                                  frame->n_vectors,
                                  /* next */ 0,
@@ -140,9 +140,10 @@ VLIB_REGISTER_NODE (misc_drop_buffers_node,static) = {
 };
 /* *INDENT-ON* */
 
-void vlib_stats_register_error_index (u8 *, u64) __attribute__ ((weak));
+void vlib_stats_register_error_index (u8 *, u64 *, u64)
+  __attribute__ ((weak));
 void
-vlib_stats_register_error_index (u8 * notused, u64 notused2)
+vlib_stats_register_error_index (u8 * notused, u64 * notused2, u64 notused3)
 {
 };
 
@@ -198,8 +199,8 @@ vlib_register_errors (vlib_main_t * vm,
                 em->counters_last_clear + n->error_heap_index,
                 n_errors * sizeof (em->counters[0]));
   else
-    memset (em->counters + n->error_heap_index,
-           0, n_errors * sizeof (em->counters[0]));
+    clib_memset (em->counters + n->error_heap_index,
+                0, n_errors * sizeof (em->counters[0]));
 
   /* Register counter indices in the stat segment directory */
   {
@@ -208,9 +209,10 @@ vlib_register_errors (vlib_main_t * vm,
 
     for (i = 0; i < n_errors; i++)
       {
-       error_name = format (0, "/err/%s%c", error_strings[i], 0);
+       error_name = format (0, "/err/%v/%s%c", n->name, error_strings[i], 0);
        /* Note: error_name consumed by the following call */
-       vlib_stats_register_error_index (error_name, n->error_heap_index + i);
+       vlib_stats_register_error_index (error_name, em->counters,
+                                        n->error_heap_index + i);
       }
   }
 
@@ -221,7 +223,7 @@ vlib_register_errors (vlib_main_t * vm,
     elog_event_type_t t;
     uword i;
 
-    memset (&t, 0, sizeof (t));
+    clib_memset (&t, 0, sizeof (t));
     for (i = 0; i < n_errors; i++)
       {
        t.format = (char *) format (0, "%v %s: %%d",