X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=src%2Fvnet%2Fsession%2Fapplication.c;h=1d7b3ad112554a08bd1539be51f3764fe397dc09;hb=776f3d85ebd4edfb70b0f748890f1efd98d8474c;hp=260ae5882096e5550b3bc2393c04386f1ea17923;hpb=400ded36422689c1783e220a1846447bc0058234;p=vpp.git diff --git a/src/vnet/session/application.c b/src/vnet/session/application.c index 260ae588209..1d7b3ad1125 100644 --- a/src/vnet/session/application.c +++ b/src/vnet/session/application.c @@ -25,7 +25,7 @@ app_listener_alloc (application_t * app) { app_listener_t *app_listener; pool_get (app->listeners, app_listener); - memset (app_listener, 0, sizeof (*app_listener)); + clib_memset (app_listener, 0, sizeof (*app_listener)); app_listener->al_index = app_listener - app->listeners; return app_listener; } @@ -42,7 +42,7 @@ app_listener_free (application_t * app, app_listener_t * app_listener) clib_bitmap_free (app_listener->workers); pool_put (app->listeners, app_listener); if (CLIB_DEBUG) - memset (app_listener, 0xfa, sizeof (*app_listener)); + clib_memset (app_listener, 0xfa, sizeof (*app_listener)); } static app_listener_t * @@ -50,7 +50,7 @@ app_local_listener_alloc (application_t * app) { app_listener_t *app_listener; pool_get (app->local_listeners, app_listener); - memset (app_listener, 0, sizeof (*app_listener)); + clib_memset (app_listener, 0, sizeof (*app_listener)); app_listener->al_index = app_listener - app->local_listeners; return app_listener; } @@ -67,7 +67,7 @@ app_local_listener_free (application_t * app, app_listener_t * app_listener) clib_bitmap_free (app_listener->workers); pool_put (app->local_listeners, app_listener); if (CLIB_DEBUG) - memset (app_listener, 0xfa, sizeof (*app_listener)); + clib_memset (app_listener, 0xfa, sizeof (*app_listener)); } static app_worker_map_t * @@ -75,7 +75,7 @@ app_worker_map_alloc (application_t * app) { app_worker_map_t *map; pool_get (app->worker_maps, map); - memset (map, 0, sizeof (*map)); + clib_memset (map, 0, sizeof (*map)); return map; } @@ -234,7 +234,7 @@ application_alloc (void) { application_t *app; pool_get (app_main.app_pool, app); - memset (app, 0, sizeof (*app)); + clib_memset (app, 0, sizeof (*app)); app->app_index = app - app_main.app_pool; return app; } @@ -484,7 +484,7 @@ app_worker_alloc (application_t * app) { app_worker_t *app_wrk; pool_get (app_main.workers, app_wrk); - memset (app_wrk, 0, sizeof (*app_wrk)); + clib_memset (app_wrk, 0, sizeof (*app_wrk)); app_wrk->wrk_index = app_wrk - app_main.workers; app_wrk->app_index = app->app_index; app_wrk->wrk_map_index = ~0; @@ -572,7 +572,7 @@ app_worker_free (app_worker_t * app_wrk) pool_put (app_main.workers, app_wrk); if (CLIB_DEBUG) - memset (app_wrk, 0xfe, sizeof (*app_wrk)); + clib_memset (app_wrk, 0xfe, sizeof (*app_wrk)); } int @@ -715,7 +715,7 @@ app_worker_stop_listen (app_worker_t * app_wrk, session_handle_t handle) */ int application_start_listen (application_t * app, - session_endpoint_extended_t * sep_ext, + session_endpoint_cfg_t * sep_ext, session_handle_t * res) { app_listener_t *app_listener; @@ -872,10 +872,10 @@ app_worker_get_connect_segment_manager (app_worker_t * app) segment_manager_t * app_worker_get_listen_segment_manager (app_worker_t * app, - stream_session_t * s) + stream_session_t * listener) { uword *smp; - smp = hash_get (app->listeners_table, listen_session_get_handle (s)); + smp = hash_get (app->listeners_table, listen_session_get_handle (listener)); ASSERT (smp != 0); return segment_manager_get (*smp); } @@ -1055,7 +1055,7 @@ application_start_stop_proxy_fib_proto (application_t * app, u8 fib_proto, { app_namespace_t *app_ns = app_namespace_get (app->ns_index); u8 is_ip4 = (fib_proto == FIB_PROTOCOL_IP4); - session_endpoint_extended_t sep = SESSION_ENDPOINT_EXT_NULL; + session_endpoint_cfg_t sep = SESSION_ENDPOINT_CFG_NULL; transport_connection_t *tc; app_worker_t *app_wrk; stream_session_t *s; @@ -1347,7 +1347,7 @@ application_local_session_alloc (app_worker_t * app_wrk) { local_session_t *s; pool_get (app_wrk->local_sessions, s); - memset (s, 0, sizeof (*s)); + clib_memset (s, 0, sizeof (*s)); s->app_wrk_index = app_wrk->wrk_index; s->session_index = s - app_wrk->local_sessions; s->session_type = session_type_from_proto_and_ip (TRANSPORT_PROTO_NONE, 0); @@ -1359,7 +1359,7 @@ application_local_session_free (app_worker_t * app, local_session_t * s) { pool_put (app->local_sessions, s); if (CLIB_DEBUG) - memset (s, 0xfc, sizeof (*s)); + clib_memset (s, 0xfc, sizeof (*s)); } local_session_t * @@ -1387,7 +1387,7 @@ application_local_listen_session_alloc (application_t * app) { local_session_t *ll; pool_get (app->local_listen_sessions, ll); - memset (ll, 0, sizeof (*ll)); + clib_memset (ll, 0, sizeof (*ll)); return ll; } @@ -1403,12 +1403,12 @@ application_local_listen_session_free (application_t * app, { pool_put (app->local_listen_sessions, ll); if (CLIB_DEBUG) - memset (ll, 0xfb, sizeof (*ll)); + clib_memset (ll, 0xfb, sizeof (*ll)); } int application_start_local_listen (application_t * app, - session_endpoint_extended_t * sep_ext, + session_endpoint_cfg_t * sep_ext, session_handle_t * handle) { app_listener_t *app_listener; @@ -1626,10 +1626,8 @@ application_local_session_connect (app_worker_t * client_wrk, segment_manager_segment_reader_unlock (sm); goto failed; } - ls->server_rx_fifo->master_session_index = ls->session_index; - ls->server_tx_fifo->master_session_index = ls->session_index; - ls->server_rx_fifo->master_thread_index = ~0; - ls->server_tx_fifo->master_thread_index = ~0; + ls->server_rx_fifo->ct_session_index = ls->session_index; + ls->server_tx_fifo->ct_session_index = ls->session_index; ls->svm_segment_index = seg_index; ls->listener_index = ll->session_index; ls->client_wrk_index = client_wrk->wrk_index; @@ -1721,21 +1719,28 @@ application_local_session_cleanup (app_worker_t * client_wrk, local_session_t * ls) { svm_fifo_segment_private_t *seg; + stream_session_t *listener; segment_manager_t *sm; uword client_key; u8 has_transport; - has_transport = session_has_transport ((stream_session_t *) ls); - client_key = application_client_local_connect_key (ls); + /* Retrieve listener transport type as it is the one that decides where + * the fifos are allocated */ + has_transport = application_local_session_listener_has_transport (ls); if (!has_transport) sm = application_get_local_segment_manager_w_session (server_wrk, ls); else - sm = app_worker_get_listen_segment_manager (server_wrk, - (stream_session_t *) ls); + { + listener = listen_session_get (ls->listener_index); + sm = app_worker_get_listen_segment_manager (server_wrk, listener); + } seg = segment_manager_get_segment (sm, ls->svm_segment_index); if (client_wrk) - hash_unset (client_wrk->local_connects, client_key); + { + client_key = application_client_local_connect_key (ls); + hash_unset (client_wrk->local_connects, client_key); + } if (!has_transport) {