aboutsummaryrefslogtreecommitdiffstats
path: root/src/vnet/session/application.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/vnet/session/application.c')
-rw-r--r--src/vnet/session/application.c18
1 files changed, 17 insertions, 1 deletions
diff --git a/src/vnet/session/application.c b/src/vnet/session/application.c
index 5c52adb853f..eacc1adf941 100644
--- a/src/vnet/session/application.c
+++ b/src/vnet/session/application.c
@@ -18,6 +18,7 @@
#include <vnet/session/application_namespace.h>
#include <vnet/session/application_local.h>
#include <vnet/session/session.h>
+#include <vnet/session/segment_manager.h>
static app_main_t app_main;
@@ -1084,6 +1085,7 @@ application_alloc_worker_and_init (application_t * app, app_worker_t ** wrk)
return rv;
}
sm->first_is_protected = 1;
+ sm->flags |= SEG_MANAGER_F_CONNECTS;
/*
* Setup app worker
@@ -1848,6 +1850,9 @@ format_application (u8 * s, va_list * args)
const u8 *app_ns_name, *app_name;
app_worker_map_t *wrk_map;
app_worker_t *app_wrk;
+ segment_manager_t *sm;
+ u64 handle;
+ u32 sm_index;
if (app == 0)
{
@@ -1876,6 +1881,17 @@ format_application (u8 * s, va_list * args)
pool_foreach (wrk_map, app->worker_maps) {
app_wrk = app_worker_get (wrk_map->wrk_index);
s = format (s, "%U", format_app_worker, app_wrk);
+ if (verbose > 1)
+ {
+ sm = segment_manager_get (app_wrk->connects_seg_manager);
+ s = format (s, "segment manager\n %U", format_segment_manager, sm,
+ 1 /* verbose */);
+ hash_foreach (handle, sm_index, app_wrk->listeners_table, ({
+ sm = segment_manager_get (sm_index);
+ s = format (s, " %U\n", format_segment_manager, sm,
+ 1 /* verbose */);
+ }));
+ }
}
return s;
@@ -2034,7 +2050,7 @@ show_app_command_fn (vlib_main_t * vm, unformat_input_t * input,
if (!app)
return clib_error_return (0, "No app with index %u", app_index);
- vlib_cli_output (vm, "%U", format_application, app, /* verbose */ 1);
+ vlib_cli_output (vm, "%U", format_application, app, ++verbose);
return 0;
}