diff options
Diffstat (limited to 'src/vnet/session')
-rw-r--r-- | src/vnet/session/application.c | 13 | ||||
-rw-r--r-- | src/vnet/session/application_interface.h | 18 | ||||
-rw-r--r-- | src/vnet/session/segment_manager.c | 21 | ||||
-rw-r--r-- | src/vnet/session/segment_manager.h | 1 | ||||
-rwxr-xr-x | src/vnet/session/session_api.c | 6 | ||||
-rw-r--r-- | src/vnet/session/session_test.c | 8 |
6 files changed, 28 insertions, 39 deletions
diff --git a/src/vnet/session/application.c b/src/vnet/session/application.c index 3e6ac98b27f..f6151b6b487 100644 --- a/src/vnet/session/application.c +++ b/src/vnet/session/application.c @@ -237,8 +237,8 @@ application_init (application_t * app, u32 api_client_index, u64 * options, u32 default_rx_fifo_size = 16 << 10, default_tx_fifo_size = 16 << 10; int rv; - app_evt_queue_size = options[APP_EVT_QUEUE_SIZE] > 0 ? - options[APP_EVT_QUEUE_SIZE] : default_app_evt_queue_size; + app_evt_queue_size = options[APP_OPTIONS_EVT_QUEUE_SIZE] > 0 ? + options[APP_OPTIONS_EVT_QUEUE_SIZE] : default_app_evt_queue_size; /* * Setup segment manager @@ -247,11 +247,11 @@ application_init (application_t * app, u32 api_client_index, u64 * options, sm->app_index = app->index; props = segment_manager_properties_alloc (); app->sm_properties = segment_manager_properties_index (props); - props->add_segment_size = options[SESSION_OPTIONS_ADD_SEGMENT_SIZE]; - props->rx_fifo_size = options[SESSION_OPTIONS_RX_FIFO_SIZE]; + props->add_segment_size = options[APP_OPTIONS_ADD_SEGMENT_SIZE]; + props->rx_fifo_size = options[APP_OPTIONS_RX_FIFO_SIZE]; props->rx_fifo_size = props->rx_fifo_size ? props->rx_fifo_size : default_rx_fifo_size; - props->tx_fifo_size = options[SESSION_OPTIONS_TX_FIFO_SIZE]; + props->tx_fifo_size = options[APP_OPTIONS_TX_FIFO_SIZE]; props->tx_fifo_size = props->tx_fifo_size ? props->tx_fifo_size : default_tx_fifo_size; props->add_segment = props->add_segment_size != 0; @@ -259,9 +259,8 @@ application_init (application_t * app, u32 api_client_index, u64 * options, props->use_private_segment = options[APP_OPTIONS_FLAGS] & APP_OPTIONS_FLAGS_IS_BUILTIN; props->private_segment_count = options[APP_OPTIONS_PRIVATE_SEGMENT_COUNT]; - props->private_segment_size = options[APP_OPTIONS_PRIVATE_SEGMENT_SIZE]; - first_seg_size = options[SESSION_OPTIONS_SEGMENT_SIZE]; + first_seg_size = options[APP_OPTIONS_SEGMENT_SIZE]; if ((rv = segment_manager_init (sm, app->sm_properties, first_seg_size))) return rv; sm->first_is_protected = 1; diff --git a/src/vnet/session/application_interface.h b/src/vnet/session/application_interface.h index 686b4181a7c..68973a9f938 100644 --- a/src/vnet/session/application_interface.h +++ b/src/vnet/session/application_interface.h @@ -101,21 +101,19 @@ typedef struct _vnet_disconnect_args_t /* Application attach options */ typedef enum { - APP_EVT_QUEUE_SIZE, APP_OPTIONS_FLAGS, - APP_OPTIONS_PREALLOC_FIFO_PAIRS, + APP_OPTIONS_EVT_QUEUE_SIZE, + APP_OPTIONS_SEGMENT_SIZE, + APP_OPTIONS_ADD_SEGMENT_SIZE, APP_OPTIONS_PRIVATE_SEGMENT_COUNT, - APP_OPTIONS_PRIVATE_SEGMENT_SIZE, + APP_OPTIONS_RX_FIFO_SIZE, + APP_OPTIONS_TX_FIFO_SIZE, + APP_OPTIONS_PREALLOC_FIFO_PAIRS, APP_OPTIONS_NAMESPACE, APP_OPTIONS_NAMESPACE_SECRET, APP_OPTIONS_PROXY_TRANSPORT, - SESSION_OPTIONS_SEGMENT_SIZE, - SESSION_OPTIONS_ADD_SEGMENT_SIZE, - SESSION_OPTIONS_RX_FIFO_SIZE, - SESSION_OPTIONS_TX_FIFO_SIZE, - SESSION_OPTIONS_PREALLOCATED_FIFO_PAIRS, - SESSION_OPTIONS_ACCEPT_COOKIE, - SESSION_OPTIONS_N_OPTIONS + APP_OPTIONS_ACCEPT_COOKIE, + APP_OPTIONS_N_OPTIONS } app_attach_options_index_t; #define foreach_app_options_flags \ diff --git a/src/vnet/session/segment_manager.c b/src/vnet/session/segment_manager.c index e448023ddd0..9e6a1b55cbb 100644 --- a/src/vnet/session/segment_manager.c +++ b/src/vnet/session/segment_manager.c @@ -116,16 +116,11 @@ session_manager_add_segment_i (segment_manager_t * sm, u32 segment_size, u64 approx_total_size; ca->segment_name = "process-private-segment"; - ca->segment_size = ~0; + ca->segment_size = segment_size; ca->rx_fifo_size = props->rx_fifo_size; ca->tx_fifo_size = props->tx_fifo_size; ca->preallocated_fifo_pairs = props->preallocated_fifo_pairs; ca->private_segment_count = props->private_segment_count; - ca->private_segment_size = props->private_segment_size; - - /* Default to a small private segment */ - if (ca->private_segment_size == 0) - ca->private_segment_size = 128 << 20; /* Calculate space requirements */ rx_rounded_data_size = (1 << (max_log2 (ca->rx_fifo_size))); @@ -136,9 +131,8 @@ session_manager_add_segment_i (segment_manager_t * sm, u32 segment_size, approx_total_size = (u64) ca->preallocated_fifo_pairs * (rx_fifo_size + tx_fifo_size); - approx_segment_count = - (approx_total_size + - (ca->private_segment_size - 1)) / (u64) ca->private_segment_size; + approx_segment_count = (approx_total_size + (ca->segment_size - 1)) + / (u64) ca->segment_size; /* The user asked us to figure it out... */ if (ca->private_segment_count == 0) @@ -148,9 +142,8 @@ session_manager_add_segment_i (segment_manager_t * sm, u32 segment_size, /* Follow directions, but issue a warning */ else if (approx_segment_count != ca->private_segment_count) { - clib_warning - ("Honoring segment count %u, but calculated count was %u", - ca->private_segment_count, approx_segment_count); + clib_warning ("Honoring segment count %u, calculated count was %u", + ca->private_segment_count, approx_segment_count); } if (svm_fifo_segment_create_process_private (ca)) @@ -624,7 +617,7 @@ segment_manager_show_fn (vlib_main_t * vm, unformat_input_t * input, segments = svm_fifo_segment_segments_pool (); vlib_cli_output (vm, "%d svm fifo segments allocated", pool_elts (segments)); - vlib_cli_output (vm, "%-20s%=12s%=16s%=16s%=16s", "Name", + vlib_cli_output (vm, "%-25s%15s%16s%16s%16s", "Name", "HeapSize (M)", "ActiveFifos", "FreeFifos", "Address"); /* *INDENT-OFF* */ @@ -647,7 +640,7 @@ segment_manager_show_fn (vlib_main_t * vm, unformat_input_t * input, } active_fifos = svm_fifo_segment_num_fifos (seg); free_fifos = svm_fifo_segment_num_free_fifos (seg, ~0 /* size */); - vlib_cli_output (vm, "%-20v%=16llu%=16u%=16u%16llx", + vlib_cli_output (vm, "%-25v%15llu%16u%16u%16llx", name, size >> 20ULL, active_fifos, free_fifos, address); if (verbose) diff --git a/src/vnet/session/segment_manager.h b/src/vnet/session/segment_manager.h index f6494616a9f..9d2d141e7b4 100644 --- a/src/vnet/session/segment_manager.h +++ b/src/vnet/session/segment_manager.h @@ -42,7 +42,6 @@ typedef struct _segment_manager_properties /** Use one or more private mheaps, instead of the global heap */ u32 private_segment_count; - u32 private_segment_size; } segment_manager_properties_t; typedef struct _segment_manager diff --git a/src/vnet/session/session_api.c b/src/vnet/session/session_api.c index 57f55eb0db8..1fd84ab7c43 100755 --- a/src/vnet/session/session_api.c +++ b/src/vnet/session/session_api.c @@ -253,8 +253,8 @@ redirect_connect_callback (u32 server_api_client_index, void *mp_arg) } props = segment_manager_properties_get (app->sm_properties); - mp->options[SESSION_OPTIONS_RX_FIFO_SIZE] = props->rx_fifo_size; - mp->options[SESSION_OPTIONS_TX_FIFO_SIZE] = props->tx_fifo_size; + mp->options[APP_OPTIONS_RX_FIFO_SIZE] = props->rx_fifo_size; + mp->options[APP_OPTIONS_TX_FIFO_SIZE] = props->tx_fifo_size; /* * Bounce message handlers MUST NOT block the data-plane. @@ -321,7 +321,7 @@ vl_api_application_attach_t_handler (vl_api_application_attach_t * mp) goto done; } - STATIC_ASSERT (sizeof (u64) * SESSION_OPTIONS_N_OPTIONS <= + STATIC_ASSERT (sizeof (u64) * APP_OPTIONS_N_OPTIONS <= sizeof (mp->options), "Out of options, fix api message definition"); diff --git a/src/vnet/session/session_test.c b/src/vnet/session/session_test.c index 1303e8b9fdf..64657c11da0 100644 --- a/src/vnet/session/session_test.c +++ b/src/vnet/session/session_test.c @@ -102,7 +102,7 @@ static int session_test_basic (vlib_main_t * vm, unformat_input_t * input) { session_endpoint_t server_sep = SESSION_ENDPOINT_NULL; - u64 options[SESSION_OPTIONS_N_OPTIONS], bind4_handle, bind6_handle; + u64 options[APP_OPTIONS_N_OPTIONS], bind4_handle, bind6_handle; u8 segment_name[128]; clib_error_t *error = 0; u32 server_index; @@ -167,7 +167,7 @@ session_test_basic (vlib_main_t * vm, unformat_input_t * input) static int session_test_namespace (vlib_main_t * vm, unformat_input_t * input) { - u64 options[SESSION_OPTIONS_N_OPTIONS], dummy_secret = 1234; + u64 options[APP_OPTIONS_N_OPTIONS], dummy_secret = 1234; u32 server_index, server_st_index, server_local_st_index; u32 dummy_port = 1234, local_listener, client_index; u32 dummy_api_context = 4321, dummy_client_api_index = 1234; @@ -774,7 +774,7 @@ static int session_test_rules (vlib_main_t * vm, unformat_input_t * input) { session_endpoint_t server_sep = SESSION_ENDPOINT_NULL; - u64 options[SESSION_OPTIONS_N_OPTIONS]; + u64 options[APP_OPTIONS_N_OPTIONS]; u16 lcl_port = 1234, rmt_port = 4321; u32 server_index, server_index2, app_index; u32 dummy_server_api_index = ~0; @@ -1335,7 +1335,7 @@ session_test_rules (vlib_main_t * vm, unformat_input_t * input) static int session_test_proxy (vlib_main_t * vm, unformat_input_t * input) { - u64 options[SESSION_OPTIONS_N_OPTIONS]; + u64 options[APP_OPTIONS_N_OPTIONS]; char *show_listeners = "sh session listeners tcp verbose"; char *show_local_listeners = "sh app ns table default"; unformat_input_t tmp_input; |