X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;ds=sidebyside;f=src%2Fvcl%2Fvcl_bapi.c;h=95efe00c8f11c008272b861231312e147666b205;hb=2b81e3cba77e6427b47228318d55e40a859d02d1;hp=457fc18b1c2bfac2b6027c10c4c73ecac487cc7a;hpb=01f3f894fc180060ef8ee1c8b4acb4421d12ebe3;p=vpp.git diff --git a/src/vcl/vcl_bapi.c b/src/vcl/vcl_bapi.c index 457fc18b1c2..95efe00c8f1 100644 --- a/src/vcl/vcl_bapi.c +++ b/src/vcl/vcl_bapi.c @@ -98,6 +98,7 @@ vcl_segment_detach (u64 segment_handle) segment = svm_fifo_segment_get_segment (sm, segment_index); svm_fifo_segment_delete (sm, segment); vcl_segment_table_del (segment_handle); + VDBG (0, "detached segment %u handle %u", segment_index, segment_handle); } static u64 @@ -332,19 +333,18 @@ vl_api_bind_sock_reply_t_handler (vl_api_bind_sock_reply_t * mp) { /* Expecting a similar message on mq. So ignore this */ VDBG (0, "bapi msg vpp handle 0x%llx, sid %u: bind retval: %u!", - getpid (), mp->handle, mp->context, mp->retval); + mp->handle, mp->context, mp->retval); } static void vl_api_unbind_sock_reply_t_handler (vl_api_unbind_sock_reply_t * mp) { if (mp->retval) - clib_warning ("VCL<%d>: ERROR: sid %u: unbind failed: %U", - getpid (), mp->context, format_api_error, - ntohl (mp->retval)); + VDBG (0, "ERROR: sid %u: unbind failed: %U", mp->context, + format_api_error, ntohl (mp->retval)); + + VDBG (1, "sid %u: unbind succeeded!", mp->context); - else - VDBG (1, "VCL<%d>: sid %u: unbind succeeded!", getpid (), mp->context); } static void @@ -366,6 +366,31 @@ vl_api_connect_session_reply_t_handler (vl_api_connect_sock_reply_t * mp) ntohl (mp->retval)); } +static void + vl_api_application_tls_cert_add_reply_t_handler + (vl_api_application_tls_cert_add_reply_t * mp) +{ + if (mp->retval) + { + clib_warning ("VCL<%d>: add cert failed: %U", getpid (), + format_api_error, ntohl (mp->retval)); + return; + } +} + +static void + vl_api_application_tls_key_add_reply_t_handler + (vl_api_application_tls_key_add_reply_t * mp) +{ + if (mp->retval) + { + clib_warning ("VCL<%d>: add key failed: %U", getpid (), + format_api_error, ntohl (mp->retval)); + return; + } + +} + #define foreach_sock_msg \ _(SESSION_ENABLE_DISABLE_REPLY, session_enable_disable_reply) \ _(BIND_SOCK_REPLY, bind_sock_reply) \ @@ -374,6 +399,8 @@ _(CONNECT_SESSION_REPLY, connect_session_reply) \ _(DISCONNECT_SESSION_REPLY, disconnect_session_reply) \ _(APPLICATION_ATTACH_REPLY, application_attach_reply) \ _(APPLICATION_DETACH_REPLY, application_detach_reply) \ +_(APPLICATION_TLS_CERT_ADD_REPLY, application_tls_cert_add_reply) \ +_(APPLICATION_TLS_KEY_ADD_REPLY, application_tls_key_add_reply) \ _(MAP_ANOTHER_SEGMENT, map_another_segment) \ _(UNMAP_SEGMENT, unmap_segment) \ _(APP_CUT_THROUGH_REGISTRATION_ADD, app_cut_through_registration_add) \ @@ -443,6 +470,7 @@ vppcom_app_send_attach (void) bmp->options[APP_OPTIONS_PREALLOC_FIFO_PAIRS] = vcm->cfg.preallocated_fifo_pairs; bmp->options[APP_OPTIONS_EVT_QUEUE_SIZE] = vcm->cfg.event_queue_size; + bmp->options[APP_OPTIONS_TLS_ENGINE] = TLS_ENGINE_OPENSSL; if (nsid_len) { bmp->namespace_id_len = nsid_len; @@ -565,9 +593,8 @@ vppcom_send_bind_sock (vcl_session_t * session) } void -vppcom_send_unbind_sock (u64 vpp_handle) +vppcom_send_unbind_sock (vcl_worker_t * wrk, u64 vpp_handle) { - vcl_worker_t *wrk = vcl_worker_get_current (); vl_api_unbind_sock_t *ump; ump = vl_msg_api_alloc (sizeof (*ump)); @@ -577,22 +604,44 @@ vppcom_send_unbind_sock (u64 vpp_handle) ump->client_index = wrk->my_client_index; ump->wrk_index = wrk->vpp_wrk_index; ump->handle = vpp_handle; + ump->context = wrk->wrk_index; vl_msg_api_send_shmem (wrk->vl_input_queue, (u8 *) & ump); } void -vppcom_send_accept_session_reply (u64 handle, u32 context, int retval) +vppcom_send_application_tls_cert_add (vcl_session_t * session, char *cert, + u32 cert_len) { vcl_worker_t *wrk = vcl_worker_get_current (); - vl_api_accept_session_reply_t *rmp; + vl_api_application_tls_cert_add_t *cert_mp; + + cert_mp = vl_msg_api_alloc (sizeof (*cert_mp) + cert_len); + clib_memset (cert_mp, 0, sizeof (*cert_mp)); + cert_mp->_vl_msg_id = ntohs (VL_API_APPLICATION_TLS_CERT_ADD); + cert_mp->client_index = wrk->my_client_index; + cert_mp->context = session->session_index; + cert_mp->cert_len = clib_host_to_net_u16 (cert_len); + clib_memcpy_fast (cert_mp->cert, cert, cert_len); + vl_msg_api_send_shmem (wrk->vl_input_queue, (u8 *) & cert_mp); + +} + +void +vppcom_send_application_tls_key_add (vcl_session_t * session, char *key, + u32 key_len) +{ + vcl_worker_t *wrk = vcl_worker_get_current (); + vl_api_application_tls_key_add_t *key_mp; + + key_mp = vl_msg_api_alloc (sizeof (*key_mp) + key_len); + clib_memset (key_mp, 0, sizeof (*key_mp)); + key_mp->_vl_msg_id = ntohs (VL_API_APPLICATION_TLS_KEY_ADD); + key_mp->client_index = wrk->my_client_index; + key_mp->context = session->session_index; + key_mp->key_len = clib_host_to_net_u16 (key_len); + clib_memcpy_fast (key_mp->key, key, key_len); + vl_msg_api_send_shmem (wrk->vl_input_queue, (u8 *) & key_mp); - rmp = vl_msg_api_alloc (sizeof (*rmp)); - memset (rmp, 0, sizeof (*rmp)); - rmp->_vl_msg_id = ntohs (VL_API_ACCEPT_SESSION_REPLY); - rmp->retval = htonl (retval); - rmp->context = context; - rmp->handle = handle; - vl_msg_api_send_shmem (wrk->vl_input_queue, (u8 *) & rmp); } u32 @@ -630,7 +679,7 @@ vppcom_connect_to_vpp (char *app_name) return VPPCOM_ECONNREFUSED; } - if (vl_socket_client_init_shm (0)) + if (vl_socket_client_init_shm (0, 1 /* want_pthread */ )) { VERR ("app (%s) init shm failed!", app_name); return VPPCOM_ECONNREFUSED;