X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=src%2Fvpp%2Fapp%2Fversion.c;h=58ac9bad2a207ac67992402d9e41d70c04e39a5c;hb=9779197f02b9ab5f4a1afc1292ec8e95d0740855;hp=60844c985f72681093c8a7b7e29b832bc08ab7dd;hpb=7cd468a3d7dee7d6c92f69a0bb7061ae208ec727;p=vpp.git diff --git a/src/vpp/app/version.c b/src/vpp/app/version.c index 60844c985f7..58ac9bad2a2 100644 --- a/src/vpp/app/version.c +++ b/src/vpp/app/version.c @@ -16,16 +16,23 @@ #include #include -#if DPDK > 0 -#include -#include -#include -#endif /* DPDK */ +/** \file + Display image version information +*/ -static char *vpe_version_string = +/*? %%clicmd:group_label Image Version Information %% ?*/ + +/* + * Version variables are static to ensure that they're visible in core + * dumps, i.e., not in the rodata segment + */ + +/** The image version string */ +char *vpe_version_string = "vpp v" VPP_BUILD_VER " built by " VPP_BUILD_USER " on " VPP_BUILD_HOST " at " VPP_BUILD_DATE; +/** The name of the compiler */ static char *vpe_compiler = #if defined(__INTEL_COMPILER) #define __(x) #x @@ -41,12 +48,30 @@ static char *vpe_compiler = "unknown compiler"; #endif +/** \brief Display image version info, a debug CLI command function + */ static clib_error_t * show_vpe_version_command_fn (vlib_main_t * vm, unformat_input_t * input, vlib_cli_command_t * cmd) { - if (unformat (input, "verbose")) + int i; + int verbose = 0; + int cmdline = 0; + int indent = 2; + char **argv = (char **) vm->argv; + + while (unformat_check_input (input) != UNFORMAT_END_OF_INPUT) + { + if (unformat (input, "verbose %=", &verbose, 1)) + ; + else if (unformat (input, "cmdline %=", &cmdline, 1)) + ; + else + break; + } + + if (verbose) { #define _(a,b,c) vlib_cli_output (vm, "%-25s " b, a ":", c); _("Version", "%s", "v" VPP_BUILD_VER); @@ -56,37 +81,81 @@ show_vpe_version_command_fn (vlib_main_t * vm, _("Compile location", "%s", VPP_BUILD_TOPDIR); _("Compiler", "%s", vpe_compiler); _("Current PID", "%d", getpid ()); -#if DPDK > 0 - _("DPDK Version", "%s", rte_version ()); - _("DPDK EAL init args", "%s", dpdk_config_main.eal_init_args_str); -#endif #undef _ } - else + if (cmdline) + { + vlib_cli_output (vm, "%-25s", "Command line arguments:"); + + for (i = 0; argv[i]; i++) + { + if (strstr (argv[i], "{")) + indent += 2; + vlib_cli_output (vm, "%U%s", format_white_space, indent, argv[i]); + if (strstr (argv[i], "}")) + indent -= 2; + } + } + if ((verbose + cmdline) == 0) vlib_cli_output (vm, "%s", vpe_version_string); return 0; } +/*? + * This commmand displays image version and command line arguments + * + * @cliexpar + * How to display the image version string: + * @cliexstart{show version} + * vpp v18.07-rc0~509-gb9124828 built by vppuser on vppbuild at date + * @cliexend + * + * @cliexpar + * How to display verbose image version information: + * @cliexstart{show version verbose} + * Version: v18.07-rc0~509-gb9124828 + * Compiled by: vppuser + * Compile host: vppbuild + * Compile date: Fri Jul 13 09:05:37 EDT 2018 + * Compile location: /scratch/vpp-showversion + * Compiler: GCC 7.3.0 + * Current PID: 5334 + * @cliexend + * + * @cliexpar + * How to display the vpp command line arguments: + * @cliexstart{show version cmdline} + * vpp# show version cmdline + * Command line arguments: + * /scratch/vpp-showversion/build-root/install-vpp_debug-native/vpp/bin/vpp + * unix + * interactive + * @cliexend +?*/ + /* *INDENT-OFF* */ VLIB_CLI_COMMAND (show_vpe_version_command, static) = { .path = "show version", - .short_help = "show version information", + .short_help = "show version [verbose] [cmdline]", .function = show_vpe_version_command_fn, }; /* *INDENT-ON* */ +/** Return the image build directory name */ char * vpe_api_get_build_directory (void) { return VPP_BUILD_TOPDIR; } +/** Return the image version string */ char * vpe_api_get_version (void) { return VPP_BUILD_VER; } +/** return the build date */ char * vpe_api_get_build_date (void) {