vl_api_get_first_msg_id_reply_t *rmp;
vl_api_registration_t *regp;
uword *p;
- api_main_t *am = &api_main;
+ api_main_t *am = vlibapi_get_main ();
vl_api_msg_range_t *rp;
u8 name[64];
u16 first_msg_id = ~0;
void
vl_api_api_versions_t_handler (vl_api_api_versions_t * mp)
{
- api_main_t *am = &api_main;
+ api_main_t *am = vlibapi_get_main ();
vl_api_api_versions_reply_t *rmp;
vl_api_registration_t *reg;
u32 nmsg = vec_len (am->api_version_list);
send_one_plugin_msg_ids_msg (u8 * name, u16 first_msg_id, u16 last_msg_id)
{
vl_api_trace_plugin_msg_ids_t *mp;
- api_main_t *am = &api_main;
+ api_main_t *am = vlibapi_get_main ();
vl_shmem_hdr_t *shmem_hdr = am->shmem_hdr;
svm_queue_t *q;
vl_api_save_msg_table (void)
{
u8 *serialized_message_table;
- api_main_t *am = &api_main;
+ api_main_t *am = vlibapi_get_main ();
u8 *chroot_file;
int fd, rv;
vec_free (serialized_message_table);
}
+clib_error_t *vat_builtin_main_init (vlib_main_t * vm) __attribute__ ((weak));
+clib_error_t *
+vat_builtin_main_init (vlib_main_t * vm)
+{
+ return 0;
+}
+
static uword
vl_api_clnt_process (vlib_main_t * vm, vlib_node_runtime_t * node,
vlib_frame_t * f)
vl_shmem_hdr_t *shm;
svm_queue_t *q;
clib_error_t *e;
- api_main_t *am = &api_main;
+ api_main_t *am = vlibapi_get_main ();
f64 dead_client_scan_time;
f64 sleep_time, start_time;
f64 vector_rate;
if (e)
clib_error_report (e);
+ e = vat_builtin_main_init (vm);
+ if (e)
+ clib_error_report (e);
+
sleep_time = 10.0;
dead_client_scan_time = vlib_time_now (vm) + 10.0;
case SOCKET_READ_EVENT:
for (i = 0; i < vec_len (event_data); i++)
{
+ vl_api_registration_t *regp;
+
a = pool_elt_at_index (socket_main.process_args, event_data[i]);
- vl_socket_process_api_msg (a->clib_file, a->regp,
- (i8 *) a->data);
- a = pool_elt_at_index (socket_main.process_args, event_data[i]);
+ regp = vl_socket_get_registration (a->reg_index);
+ if (regp)
+ {
+ vl_socket_process_api_msg (regp, (i8 *) a->data);
+ a = pool_elt_at_index (socket_main.process_args,
+ event_data[i]);
+ }
vec_free (a->data);
pool_put (socket_main.process_args, a);
}
.type = VLIB_NODE_TYPE_PROCESS,
.name = "api-rx-from-ring",
.state = VLIB_NODE_STATE_DISABLED,
+ .process_log2_n_stack_bytes = 18,
};
/* *INDENT-ON* */
void
vl_api_send_pending_rpc_requests (vlib_main_t * vm)
{
- vlib_main_t *vm_global = &vlib_global_main;
+ vlib_main_t *vm_global = vlib_get_first_main ();
ASSERT (vm != vm_global);
u8 force_rpc)
{
vl_api_rpc_call_t *mp;
- vlib_main_t *vm_global = &vlib_global_main;
+ vlib_main_t *vm_global = vlib_get_first_main ();
vlib_main_t *vm = vlib_get_main ();
/* Main thread and not a forced RPC: call the function directly */
static void
vl_api_trace_plugin_msg_ids_t_handler (vl_api_trace_plugin_msg_ids_t * mp)
{
- api_main_t *am = &api_main;
+ api_main_t *am = vlibapi_get_main ();
vl_api_msg_range_t *rp;
uword *p;
static clib_error_t *
rpc_api_hookup (vlib_main_t * vm)
{
- api_main_t *am = &api_main;
+ api_main_t *am = vlibapi_get_main ();
#define _(N,n) \
vl_msg_api_set_handlers(VL_API_##N, #n, \
vl_api_##n##_t_handler, \