struct frrmod_runtime *plug = frrmod_list;
vty_out (vty, "%-12s %-25s %s%s%s",
- "Plugin Name", "Version", "Description",
+ "Module Name", "Version", "Description",
VTY_NEWLINE, VTY_NEWLINE);
while (plug)
{
return CMD_SUCCESS;
}
-/* Memory */
-DEFUN (vtysh_show_memory,
- vtysh_show_memory_cmd,
- "show memory",
- SHOW_STR
- "Memory statistics\n")
+static int
+show_per_daemon (const char *line, const char *headline)
{
unsigned int i;
int ret = CMD_SUCCESS;
- char line[] = "show memory\n";
-
+
for (i = 0; i < array_size(vtysh_client); i++)
if ( vtysh_client[i].fd >= 0 )
{
- fprintf (stdout, "Memory statistics for %s:\n",
+ fprintf (stdout, headline,
vtysh_client[i].name);
ret = vtysh_client_execute (&vtysh_client[i], line, stdout);
fprintf (stdout,"\n");
}
-
+
return ret;
}
+/* Memory */
+DEFUN (vtysh_show_memory,
+ vtysh_show_memory_cmd,
+ "show memory",
+ SHOW_STR
+ "Memory statistics\n")
+{
+ return show_per_daemon ("show memory\n", "Memory statistics for %s:\n");
+}
+
+DEFUN (vtysh_show_modules,
+ vtysh_show_modules_cmd,
+ "show modules",
+ SHOW_STR
+ "Loaded modules\n")
+{
+ return show_per_daemon ("show modules\n", "Module information for %s:\n");
+}
+
/* Logging commands. */
DEFUN (vtysh_show_logging,
vtysh_show_logging_cmd,
#endif
install_element (VIEW_NODE, &vtysh_show_memory_cmd);
+ install_element (VIEW_NODE, &vtysh_show_modules_cmd);
install_element (VIEW_NODE, &vtysh_show_work_queues_cmd);
install_element (VIEW_NODE, &vtysh_show_work_queues_daemon_cmd);