X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=src%2Fvnet%2Ftcp%2Fbuiltin_proxy.c;h=779e9b689e04366ec77beacdf73ef47ae4ccd27d;hb=7999e83a41ebad8a3f02cfcb2809cdb3aae919ba;hp=d8cfb11d31522043ef26720853eaaa89397fef55;hpb=52851e6aa9304054fd1059c8dd284abf8e532bf2;p=vpp.git diff --git a/src/vnet/tcp/builtin_proxy.c b/src/vnet/tcp/builtin_proxy.c index d8cfb11d315..779e9b689e0 100644 --- a/src/vnet/tcp/builtin_proxy.c +++ b/src/vnet/tcp/builtin_proxy.c @@ -32,7 +32,7 @@ delete_proxy_session (stream_session_t * s, int is_active_open) uword *p; u64 handle; - handle = stream_session_handle (s); + handle = session_handle (s); clib_spinlock_lock_if_init (&bpm->sessions_lock); if (is_active_open) @@ -50,8 +50,7 @@ delete_proxy_session (stream_session_t * s, int is_active_open) { ps = pool_elt_at_index (bpm->sessions, p[0]); if (ps->vpp_server_handle != ~0) - server_session = stream_session_get_from_handle - (ps->vpp_server_handle); + server_session = session_get_from_handle (ps->vpp_server_handle); else server_session = 0; } @@ -71,7 +70,7 @@ delete_proxy_session (stream_session_t * s, int is_active_open) { ps = pool_elt_at_index (bpm->sessions, p[0]); if (ps->vpp_server_handle != ~0) - active_open_session = stream_session_get_from_handle + active_open_session = session_get_from_handle (ps->vpp_server_handle); else active_open_session = 0; @@ -89,19 +88,19 @@ delete_proxy_session (stream_session_t * s, int is_active_open) if (active_open_session) { - a->handle = stream_session_handle (active_open_session); + a->handle = session_handle (active_open_session); a->app_index = bpm->active_open_app_index; hash_unset (bpm->proxy_session_by_active_open_handle, - stream_session_handle (active_open_session)); + session_handle (active_open_session)); vnet_disconnect_session (a); } if (server_session) { - a->handle = stream_session_handle (server_session); + a->handle = session_handle (server_session); a->app_index = bpm->server_app_index; hash_unset (bpm->proxy_session_by_server_handle, - stream_session_handle (server_session)); + session_handle (server_session)); vnet_disconnect_session (a); } } @@ -172,8 +171,7 @@ server_rx_callback (stream_session_t * s) ASSERT (s->thread_index == thread_index); clib_spinlock_lock_if_init (&bpm->sessions_lock); - p = - hash_get (bpm->proxy_session_by_server_handle, stream_session_handle (s)); + p = hash_get (bpm->proxy_session_by_server_handle, session_handle (s)); if (PREDICT_TRUE (p != 0)) { @@ -219,7 +217,7 @@ server_rx_callback (stream_session_t * s) memset (ps, 0, sizeof (*ps)); ps->server_rx_fifo = rx_fifo; ps->server_tx_fifo = tx_fifo; - ps->vpp_server_handle = stream_session_handle (s); + ps->vpp_server_handle = session_handle (s); proxy_index = ps - bpm->sessions; @@ -269,7 +267,7 @@ active_open_connected_callback (u32 app_index, u32 opaque, clib_spinlock_lock_if_init (&bpm->sessions_lock); ps = pool_elt_at_index (bpm->sessions, opaque); - ps->vpp_active_open_handle = stream_session_handle (s); + ps->vpp_active_open_handle = session_handle (s); s->server_tx_fifo = ps->server_rx_fifo; s->server_rx_fifo = ps->server_tx_fifo; @@ -402,7 +400,7 @@ server_attach () a->options[APP_OPTIONS_PREALLOC_FIFO_PAIRS] = bpm->prealloc_fifos ? bpm->prealloc_fifos : 1; - a->options[APP_OPTIONS_FLAGS] = APP_OPTIONS_FLAGS_BUILTIN_APP; + a->options[APP_OPTIONS_FLAGS] = APP_OPTIONS_FLAGS_IS_BUILTIN; a->segment_name = segment_name; a->segment_name_length = ARRAY_LEN (segment_name); @@ -445,7 +443,7 @@ active_open_attach (void) options[APP_OPTIONS_PREALLOC_FIFO_PAIRS] = bpm->prealloc_fifos ? bpm->prealloc_fifos : 1; - options[APP_OPTIONS_FLAGS] = APP_OPTIONS_FLAGS_BUILTIN_APP + options[APP_OPTIONS_FLAGS] = APP_OPTIONS_FLAGS_IS_BUILTIN | APP_OPTIONS_FLAGS_IS_PROXY; a->options = options; @@ -523,7 +521,7 @@ proxy_server_create_command_fn (vlib_main_t * vm, unformat_input_t * input, { builtin_proxy_main_t *bpm = &builtin_proxy_main; int rv; - u32 tmp; + u64 tmp; bpm->fifo_size = 64 << 10; bpm->rcv_buffer_size = 1024; @@ -542,12 +540,14 @@ proxy_server_create_command_fn (vlib_main_t * vm, unformat_input_t * input, else if (unformat (input, "private-segment-count %d", &bpm->private_segment_count)) ; - else if (unformat (input, "private-segment-size %dm", &tmp)) - bpm->private_segment_size = tmp << 20; - else if (unformat (input, "private-segment-size %dg", &tmp)) - bpm->private_segment_size = tmp << 30; - else if (unformat (input, "private-segment-size %d", &tmp)) - bpm->private_segment_size = tmp; + else if (unformat (input, "private-segment-size %U", + unformat_memory_size, &tmp)) + { + if (tmp >= 0x100000000ULL) + return clib_error_return + (0, "private segment size %lld (%llu) too large", tmp, tmp); + bpm->private_segment_size = tmp; + } else return clib_error_return (0, "unknown input `%U'", format_unformat_error, input);