X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=src%2Fvcl%2Fvcl_bapi.c;h=ea8f2ce5651c3d6b7b1b700ba1ded4badf4d97a6;hb=refs%2Fchanges%2F16%2F15916%2F4;hp=0c46d8220fd40d59e8ba4748504f9cb84fca30a0;hpb=ab2f6dbf9f7b7164a9810f4c80c8abf8463e42ad;p=vpp.git diff --git a/src/vcl/vcl_bapi.c b/src/vcl/vcl_bapi.c index 0c46d8220fd..ea8f2ce5651 100644 --- a/src/vcl/vcl_bapi.c +++ b/src/vcl/vcl_bapi.c @@ -155,6 +155,9 @@ vl_api_app_worker_add_del_reply_t_handler (vl_api_app_worker_add_del_reply_t * getpid (), mp->context, wrk_index); goto failed; } + if (!mp->is_add) + return; + wrk = vcl_worker_get (wrk_index); wrk->app_event_queue = uword_to_pointer (mp->app_event_queue_address, svm_msg_q_t *); @@ -312,7 +315,7 @@ vl_api_disconnect_session_reply_t_handler (vl_api_disconnect_session_reply_t * } static void -vl_api_connect_sock_reply_t_handler (vl_api_connect_sock_reply_t * mp) +vl_api_connect_session_reply_t_handler (vl_api_connect_sock_reply_t * mp) { if (mp->retval) clib_warning ("VCL<%d>: ERROR: sid %u: connect failed: %U", @@ -324,7 +327,7 @@ vl_api_connect_sock_reply_t_handler (vl_api_connect_sock_reply_t * mp) _(SESSION_ENABLE_DISABLE_REPLY, session_enable_disable_reply) \ _(BIND_SOCK_REPLY, bind_sock_reply) \ _(UNBIND_SOCK_REPLY, unbind_sock_reply) \ -_(CONNECT_SOCK_REPLY, connect_sock_reply) \ +_(CONNECT_SESSION_REPLY, connect_session_reply) \ _(DISCONNECT_SESSION_REPLY, disconnect_session_reply) \ _(APPLICATION_ATTACH_REPLY, application_attach_reply) \ _(APPLICATION_DETACH_REPLY, application_detach_reply) \ @@ -398,7 +401,7 @@ vppcom_app_send_attach (void) if (nsid_len) { bmp->namespace_id_len = nsid_len; - clib_memcpy (bmp->namespace_id, vcm->cfg.namespace_id, nsid_len); + clib_memcpy_fast (bmp->namespace_id, vcm->cfg.namespace_id, nsid_len); bmp->options[APP_OPTIONS_NAMESPACE_SECRET] = vcm->cfg.namespace_secret; } vl_msg_api_send_shmem (vcm->vl_input_queue, (u8 *) & bmp); @@ -429,6 +432,7 @@ vcl_send_app_worker_add_del (u8 is_add) mp->_vl_msg_id = ntohs (VL_API_APP_WORKER_ADD_DEL); mp->client_index = vcm->my_client_index; + mp->app_api_index = clib_host_to_net_u32 (vcm->my_client_index); mp->context = wrk_index; mp->is_add = is_add; if (!is_add) @@ -449,10 +453,10 @@ vppcom_send_connect_sock (vcl_session_t * session) cmp->context = session->session_index; cmp->wrk_index = vcl_get_worker_index (); cmp->is_ip4 = session->transport.is_ip4; - clib_memcpy (cmp->ip, &session->transport.rmt_ip, sizeof (cmp->ip)); + clib_memcpy_fast (cmp->ip, &session->transport.rmt_ip, sizeof (cmp->ip)); cmp->port = session->transport.rmt_port; cmp->proto = session->session_type; - clib_memcpy (cmp->options, session->options, sizeof (cmp->options)); + clib_memcpy_fast (cmp->options, session->options, sizeof (cmp->options)); vl_msg_api_send_shmem (vcm->vl_input_queue, (u8 *) & cmp); } @@ -486,10 +490,10 @@ vppcom_send_bind_sock (vcl_session_t * session) bmp->context = session->session_index; bmp->wrk_index = vcl_get_worker_index (); bmp->is_ip4 = session->transport.is_ip4; - clib_memcpy (bmp->ip, &session->transport.lcl_ip, sizeof (bmp->ip)); + clib_memcpy_fast (bmp->ip, &session->transport.lcl_ip, sizeof (bmp->ip)); bmp->port = session->transport.lcl_port; bmp->proto = session->session_type; - clib_memcpy (bmp->options, session->options, sizeof (bmp->options)); + clib_memcpy_fast (bmp->options, session->options, sizeof (bmp->options)); vl_msg_api_send_shmem (vcm->vl_input_queue, (u8 *) & bmp); }