/* * SPDX-License-Identifier: MIT * * Copyright IBM Corp. */ #ifndef OPTICSMON_CLI_H #define OPTICSMON_CLI_H #include "lib/util_fmt.h" #include "lib/util_opt.h" #define OPT_DUMP 128 #define OPT_FORMAT 129 #define OPT_SMART_DUMP 130 static struct util_opt opt_vec[] = { UTIL_OPT_SECTION("OPERATION OPTIONS"), { .option = { "monitor", no_argument, NULL, 'm' }, .desc = "Run continuously and report on link state changes " "collecting optics health data when a change is detected", }, { .option = { "send-report", no_argument, NULL, 'r' }, .desc = "Report the optics health data to the Support Element", }, { .option = { "quiet", no_argument, NULL, 'q' }, .desc = "Be quiet and don't print optics health summary", }, { .option = { "module-info", no_argument, NULL, OPT_DUMP }, .desc = "Include a base64 encoded binary dump of the module's " "SFF-8636/8472/8024 standard data for each netdev. " "This matches 'ethtool --module-info raw on'", .flags = UTIL_OPT_FLAG_NOSHORT, }, { .option = { "smart-log-raw", no_argument, NULL, OPT_SMART_DUMP }, .desc = "Include a base64 encoded binary dump of the " "SMART log data for each NVMe. " "This matches 'nvme smart-log --raw-binary '", .flags = UTIL_OPT_FLAG_NOSHORT, }, UTIL_OPT_SECTION("OPTIONS WITH ARGUMENTS"), { .option = { "interval", required_argument, NULL, 'i' }, .argument = "seconds", .desc = "Interval in seconds at which to collect monitoring data " "in the absence of link state changes. A value larger than " "24 hours (86400 seconds) is clamped down to 24 hours.", }, UTIL_OPT_SECTION("OUTPUT FORMAT OPTIONS"), { .option = { "format", required_argument, NULL, OPT_FORMAT }, .argument = "FORMAT", .flags = UTIL_OPT_FLAG_NOSHORT, .desc = "Output format (" FMT_TYPE_NAMES ")", }, UTIL_OPT_SECTION("GENERAL OPTIONS"), UTIL_OPT_HELP, UTIL_OPT_VERSION, UTIL_OPT_END }; #endif