X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=src%2Fplugins%2Fhs_apps%2Fsapi%2Fvpp_echo.c;h=03a3577103e1c689ebc91e901bf6ed3d90bfd7bd;hb=b2c31b685fd2cf28436ca32bc93e23eb24c74878;hp=560c6a85f3d9cbbbd61c708a31d05439e865871c;hpb=1aaa891864321f2ded4259c709089f3edd6f2667;p=vpp.git diff --git a/src/plugins/hs_apps/sapi/vpp_echo.c b/src/plugins/hs_apps/sapi/vpp_echo.c index 560c6a85f3d..03a3577103e 100644 --- a/src/plugins/hs_apps/sapi/vpp_echo.c +++ b/src/plugins/hs_apps/sapi/vpp_echo.c @@ -151,6 +151,10 @@ print_global_json_stats (echo_main_t * em) end_evt_missing ? "True" : "False"); fformat (stdout, " \"rx_data\": %lld,\n", em->stats.rx_total); fformat (stdout, " \"tx_data\": %lld,\n", em->stats.tx_total); + fformat (stdout, " \"rx_bits_per_second\": %.1f,\n", + em->stats.rx_total * 8 / deltat); + fformat (stdout, " \"tx_bits_per_second\": %.1f,\n", + em->stats.tx_total * 8 / deltat); fformat (stdout, " \"closing\": {\n"); fformat (stdout, " \"reset\": { \"q\": %d, \"s\": %d },\n", em->stats.reset_count.q, em->stats.reset_count.s); @@ -158,15 +162,15 @@ print_global_json_stats (echo_main_t * em) em->stats.close_count.q, em->stats.close_count.s); fformat (stdout, " \"send evt\": { \"q\": %d, \"s\": %d },\n", em->stats.active_count.q, em->stats.active_count.s); - fformat (stdout, " \"clean\": { \"q\": %d, \"s\": %d }\n", + fformat (stdout, " \"clean\": { \"q\": %d, \"s\": %d },\n", em->stats.clean_count.q, em->stats.clean_count.s); - fformat (stdout, " \"accepted\": { \"q\": %d, \"s\": %d }\n", + fformat (stdout, " \"accepted\": { \"q\": %d, \"s\": %d },\n", em->stats.accepted_count.q, em->stats.accepted_count.s); fformat (stdout, " \"connected\": { \"q\": %d, \"s\": %d }\n", em->stats.connected_count.q, em->stats.connected_count.s); - fformat (stdout, " }\n"); + fformat (stdout, " },\n"); fformat (stdout, " \"results\": {\n"); - fformat (stdout, " \"has_failed\": \"%d\"\n", em->has_failed); + fformat (stdout, " \"has_failed\": \"%d\",\n", em->has_failed); fformat (stdout, " \"fail_descr\": \"%v\"\n", em->fail_descr); fformat (stdout, " }\n"); fformat (stdout, "}\n"); @@ -259,11 +263,11 @@ echo_free_sessions (echo_main_t * em) u32 *session_indexes = 0, *session_index; /* *INDENT-OFF* */ - pool_foreach (s, em->sessions, - ({ + pool_foreach (s, em->sessions) + { if (s->session_state == ECHO_SESSION_STATE_CLOSED) - vec_add1 (session_indexes, s->session_index);} - )); + vec_add1 (session_indexes, s->session_index); + } /* *INDENT-ON* */ vec_foreach (session_index, session_indexes) { @@ -785,6 +789,12 @@ del_segment_handler (session_app_del_segment_msg_t * mp) ECHO_LOG (2, "Unmaped segment 0x%lx", mp->segment_handle); } +static void +cleanup_handler (session_cleanup_msg_t * mp) +{ + ECHO_LOG (1, "Cleanup confirmed for 0x%lx", mp->handle); +} + static void handle_mq_event (session_event_t * e) { @@ -810,6 +820,9 @@ handle_mq_event (session_event_t * e) case SESSION_CTRL_EVT_APP_DEL_SEGMENT: del_segment_handler ((session_app_del_segment_msg_t *) e->data); break; + case SESSION_CTRL_EVT_CLEANUP: + cleanup_handler ((session_cleanup_msg_t *) e->data); + break; case SESSION_IO_EVT_RX: break; default: @@ -1039,7 +1052,7 @@ print_usage_and_exit (void) " nthreads N Use N busy loop threads for data [in addition to main & msg queue]\n" " TX=1337[K|M|G]|RX Send 1337 [K|M|G]bytes, use TX=RX to reflect the data\n" " RX=1337[K|M|G] Expect 1337 [K|M|G]bytes\n" "\n"); - for (i = 0; i < TRANSPORT_N_PROTO; i++) + for (i = 0; i < vec_len (em->available_proto_cb_vft); i++) { echo_proto_cb_vft_t *vft = em->available_proto_cb_vft[i]; if (vft && vft->print_usage_cb) @@ -1056,7 +1069,7 @@ echo_process_each_proto_opts (unformat_input_t * a) { echo_main_t *em = &echo_main; int i, rv; - for (i = 0; i < TRANSPORT_N_PROTO; i++) + for (i = 0; i < vec_len (em->available_proto_cb_vft); i++) { echo_proto_cb_vft_t *vft = em->available_proto_cb_vft[i]; if (vft && vft->process_opts_cb) @@ -1070,7 +1083,7 @@ static void echo_set_each_proto_defaults_before_opts (echo_main_t * em) { int i; - for (i = 0; i < TRANSPORT_N_PROTO; i++) + for (i = 0; i < vec_len (em->available_proto_cb_vft); i++) { echo_proto_cb_vft_t *vft = em->available_proto_cb_vft[i]; if (vft && vft->set_defaults_before_opts_cb) @@ -1432,6 +1445,7 @@ exit_on_error: else print_global_stats (em); vec_free (em->fail_descr); + vec_free (em->available_proto_cb_vft); exit (em->has_failed); }