From e25c9bf62e374bebcb89399470b7817c7f446b1b Mon Sep 17 00:00:00 2001 From: Florin Coras Date: Mon, 6 Aug 2018 12:19:29 -0700 Subject: api: compute msg table for private registrations Change-Id: Ibaa236c09c2eeea72ee8a8cc603d407217b4af23 Signed-off-by: Florin Coras --- src/vlibmemory/memory_api.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'src/vlibmemory') diff --git a/src/vlibmemory/memory_api.c b/src/vlibmemory/memory_api.c index 1da77c5b29b..1f5da4c786e 100644 --- a/src/vlibmemory/memory_api.c +++ b/src/vlibmemory/memory_api.c @@ -157,6 +157,7 @@ vl_api_memclnt_create_t_handler (vl_api_memclnt_create_t * mp) int rv = 0; void *oldheap; api_main_t *am = &api_main; + u8 *msg_table; /* * This is tortured. Maintain a vlib-address-space private @@ -209,6 +210,11 @@ vl_api_memclnt_create_t_handler (vl_api_memclnt_create_t * mp) am->serialized_message_table_in_shmem = vl_api_serialize_message_table (am, 0); + if (am->vlib_rp != am->vlib_primary_rp) + msg_table = vl_api_serialize_message_table (am, 0); + else + msg_table = am->serialized_message_table_in_shmem; + pthread_mutex_unlock (&svm->mutex); svm_pop_heap (oldheap); @@ -220,8 +226,7 @@ vl_api_memclnt_create_t_handler (vl_api_memclnt_create_t * mp) am->shmem_hdr->application_restarts); rp->context = mp->context; rp->response = ntohl (rv); - rp->message_table = - pointer_to_uword (am->serialized_message_table_in_shmem); + rp->message_table = pointer_to_uword (msg_table); vl_msg_api_send_shmem (q, (u8 *) & rp); } -- cgit 1.2.3-korg