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 ();
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* */
/* 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]))
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 */
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 =