Code Review
/
vpp.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
review
|
tree
raw
|
inline
| side by side
api: multiple connections per process
[vpp.git]
/
src
/
vlibmemory
/
vlib_api.c
diff --git
a/src/vlibmemory/vlib_api.c
b/src/vlibmemory/vlib_api.c
index
e1a6bd1
..
297ac37
100644
(file)
--- a/
src/vlibmemory/vlib_api.c
+++ b/
src/vlibmemory/vlib_api.c
@@
-74,7
+74,7
@@
vl_api_get_first_msg_id_t_handler (vl_api_get_first_msg_id_t * mp)
vl_api_get_first_msg_id_reply_t *rmp;
vl_api_registration_t *regp;
uword *p;
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;
vl_api_msg_range_t *rp;
u8 name[64];
u16 first_msg_id = ~0;
@@
-108,7
+108,7
@@
out:
void
vl_api_api_versions_t_handler (vl_api_api_versions_t * mp)
{
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);
vl_api_api_versions_reply_t *rmp;
vl_api_registration_t *reg;
u32 nmsg = vec_len (am->api_version_list);
@@
-185,7
+185,7
@@
static void
send_one_plugin_msg_ids_msg (u8 * name, u16 first_msg_id, u16 last_msg_id)
{
vl_api_trace_plugin_msg_ids_t *mp;
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_shmem_hdr_t *shmem_hdr = am->shmem_hdr;
svm_queue_t *q;
@@
-207,7
+207,7
@@
void
vl_api_save_msg_table (void)
{
u8 *serialized_message_table;
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;
u8 *chroot_file;
int fd, rv;
@@
-257,7
+257,7
@@
vl_api_clnt_process (vlib_main_t * vm, vlib_node_runtime_t * node,
vl_shmem_hdr_t *shm;
svm_queue_t *q;
clib_error_t *e;
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;
f64 dead_client_scan_time;
f64 sleep_time, start_time;
f64 vector_rate;
@@
-319,7
+319,7
@@
vl_api_clnt_process (vlib_main_t * vm, vlib_node_runtime_t * node,
* of the application to process the request, the client will
* sit and wait for Godot...
*/
* of the application to process the request, the client will
* sit and wait for Godot...
*/
- vector_rate =
vlib_last_vector_length_per_node
(vm);
+ vector_rate =
(f64) vlib_last_vectors_per_main_loop
(vm);
start_time = vlib_time_now (vm);
while (1)
{
start_time = vlib_time_now (vm);
while (1)
{
@@
-385,9
+385,16
@@
vl_api_clnt_process (vlib_main_t * vm, vlib_node_runtime_t * node,
case SOCKET_READ_EVENT:
for (i = 0; i < vec_len (event_data); i++)
{
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]);
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);
+ 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);
}
vec_free (a->data);
pool_put (socket_main.process_args, a);
}
@@
-617,7
+624,7
@@
vl_api_force_rpc_call_main_thread (void *fp, u8 * data, u32 data_length)
static void
vl_api_trace_plugin_msg_ids_t_handler (vl_api_trace_plugin_msg_ids_t * mp)
{
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;
vl_api_msg_range_t *rp;
uword *p;
@@
-670,7
+677,7
@@
extern void *rpc_call_main_thread_cb_fn;
static clib_error_t *
rpc_api_hookup (vlib_main_t * vm)
{
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, \
#define _(N,n) \
vl_msg_api_set_handlers(VL_API_##N, #n, \
vl_api_##n##_t_handler, \