crypto: make crypto-dispatch node working in adaptive mode
[vpp.git] / src / vnet / crypto / cli.c
index f677893..4851217 100644 (file)
@@ -67,7 +67,7 @@ format_vnet_crypto_engine_candidates (u8 * s, va_list * args)
     {
       vec_foreach (e, cm->engines)
        {
-         if (e->enqueue_handlers[id] && e->dequeue_handlers[id])
+         if (e->enqueue_handlers[id] && e->dequeue_handler)
            {
              s = format (s, "%U", format_vnet_crypto_engine, e - cm->engines);
              if (ei == e - cm->engines)
@@ -310,6 +310,42 @@ VLIB_CLI_COMMAND (show_crypto_async_handlers_command, static) =
 /* *INDENT-ON* */
 
 
+static clib_error_t *
+show_crypto_async_status_command_fn (vlib_main_t * vm,
+                                    unformat_input_t * input,
+                                    vlib_cli_command_t * cmd)
+{
+  vnet_crypto_main_t *cm = &crypto_main;
+  vlib_thread_main_t *tm = vlib_get_thread_main ();
+  unformat_input_t _line_input, *line_input = &_line_input;
+  int i;
+
+  if (unformat_user (input, unformat_line_input, line_input))
+    unformat_free (line_input);
+
+  for (i = 0; i < tm->n_vlib_mains; i++)
+    {
+      vlib_node_state_t state = vlib_node_get_state (
+       vlib_get_main_by_index (i), cm->crypto_node_index);
+      if (state == VLIB_NODE_STATE_POLLING)
+       vlib_cli_output (vm, "threadId: %-6d POLLING", i);
+      if (state == VLIB_NODE_STATE_INTERRUPT)
+       vlib_cli_output (vm, "threadId: %-6d INTERRUPT", i);
+      if (state == VLIB_NODE_STATE_DISABLED)
+       vlib_cli_output (vm, "threadId: %-6d DISABLED", i);
+    }
+  return 0;
+}
+
+/* *INDENT-OFF* */
+VLIB_CLI_COMMAND (show_crypto_async_status_command, static) =
+{
+  .path = "show crypto async status",
+  .short_help = "show crypto async status",
+  .function = show_crypto_async_status_command_fn,
+};
+/* *INDENT-ON* */
+
 static clib_error_t *
 set_crypto_async_handler_command_fn (vlib_main_t * vm,
                                     unformat_input_t * input,