vlib: introduce vlib_get_main_by_index(), vlib_get_n_threads()
[vpp.git] / src / plugins / tracedump / tracedump.c
index 5347f82..7c83ba2 100644 (file)
@@ -102,16 +102,6 @@ vl_api_trace_capture_packets_t_handler (vl_api_trace_capture_packets_t * mp)
       goto done;
     }
 
-  if (filter)
-    {
-      if (vlib_enable_disable_pkt_trace_filter (1) < 0)        /* enable */
-       {
-         /* FIXME: Make a new error like "UNSUPPORTED_NODE_OPERATION"? */
-         rv = VNET_API_ERROR_NO_SUCH_NODE;
-         goto done;
-       }
-    }
-
   if (pre_clear)
     vlib_trace_stop_and_clear ();
 
@@ -234,10 +224,10 @@ vl_api_trace_dump_t_handler (vl_api_trace_dump_t * mp)
   if (vec_len (client_trace_cache) == 0
       && (iterator_thread_id != ~0 || iterator_position != ~0))
     {
-      vlib_worker_thread_barrier_sync (&vlib_global_main);
+      vlib_worker_thread_barrier_sync (vlib_get_first_main ());
 
       /* Make a slot for each worker thread */
-      vec_validate (client_trace_cache, vec_len (vlib_mains) - 1);
+      vec_validate (client_trace_cache, vlib_get_n_threads () - 1);
       i = 0;
 
       /* *INDENT-OFF* */
@@ -248,10 +238,10 @@ vl_api_trace_dump_t_handler (vl_api_trace_dump_t * mp)
         /* Filter as directed */
         trace_apply_filter(this_vlib_main);
 
-        pool_foreach (th, tm->trace_buffer_pool,
-        ({
+        pool_foreach (th, tm->trace_buffer_pool)
+         {
           vec_add1 (client_trace_cache[i], th[0]);
-        }));
+        }
 
         /* Sort them by increasing time. */
         if (vec_len (client_trace_cache[i]))
@@ -260,7 +250,7 @@ vl_api_trace_dump_t_handler (vl_api_trace_dump_t * mp)
         i++;
       }));
       /* *INDENT-ON* */
-      vlib_worker_thread_barrier_release (&vlib_global_main);
+      vlib_worker_thread_barrier_release (vlib_get_first_main ());
     }
 
   /* Save the cache, one way or the other */
@@ -278,7 +268,8 @@ vl_api_trace_dump_t_handler (vl_api_trace_dump_t * mp)
 
          vec_reset_length (s);
 
-         s = format (s, "%U", format_vlib_trace, &vlib_global_main, th[0]);
+         s =
+           format (s, "%U", format_vlib_trace, vlib_get_first_main (), th[0]);
 
          dmp = vl_msg_api_alloc (sizeof (*dmp) + vec_len (s));
          dmp->_vl_msg_id =