aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHarald Welte <laforge@gnumonks.org>2010-05-14 20:05:17 +0200
committerHarald Welte <laforge@gnumonks.org>2010-05-14 20:05:17 +0200
commit2832606e5c447a3900596b3cef894489a2fc9471 (patch)
treea2f55b016ca7e938e389f46bb2e63bed801a8408
parent9ef91080255ab6fd78af20369a173ebe1d490480 (diff)
VTY: More interactive help
-rw-r--r--openbsc/src/vty_interface.c20
-rw-r--r--openbsc/src/vty_interface_layer3.c41
2 files changed, 48 insertions, 13 deletions
diff --git a/openbsc/src/vty_interface.c b/openbsc/src/vty_interface.c
index 89dabe3d5..c05847a5c 100644
--- a/openbsc/src/vty_interface.c
+++ b/openbsc/src/vty_interface.c
@@ -1046,7 +1046,9 @@ DEFUN(cfg_net_reject_cause,
DEFUN(cfg_net_encryption,
cfg_net_encryption_cmd,
"encryption a5 (0|1|2)",
- "Enable or disable encryption (A5) for this network\n")
+ "Encryption options\n"
+ "A5 encryption\n" "A5/0: No encryption\n"
+ "A5/1: Encryption\n" "A5/2: Export-grade Encryption\n")
{
gsmnet->a5_encryption= atoi(argv[0]);
@@ -1056,7 +1058,8 @@ DEFUN(cfg_net_encryption,
DEFUN(cfg_net_neci,
cfg_net_neci_cmd,
"neci (0|1)",
- "Set if NECI of cell selection is to be set")
+ "New Establish Cause Indication\n"
+ "Don't set the NECI bit\n" "Set the NECI bit\n")
{
gsmnet->neci = atoi(argv[0]);
return CMD_SUCCESS;
@@ -1689,7 +1692,18 @@ DEFUN(cfg_bts_gprs_ns_timer, cfg_bts_gprs_ns_timer_cmd,
}
#define BSSGP_TIMERS "(blocking-timer|blocking-retries|unblocking-retries|reset-timer|reset-retries|suspend-timer|suspend-retries|resume-timer|resume-retries|capability-update-timer|capability-update-retries)"
-#define BSSGP_TIMERS_HELP ""
+#define BSSGP_TIMERS_HELP \
+ "Tbvc-block timeout\n" \
+ "Tbvc-block retries\n" \
+ "Tbvc-unblock retries\n" \
+ "Tbvcc-reset timeout\n" \
+ "Tbvc-reset retries\n" \
+ "Tbvc-suspend timeout\n" \
+ "Tbvc-suspend retries\n" \
+ "Tbvc-resume timeout\n" \
+ "Tbvc-resume retries\n" \
+ "Tbvc-capa-update timeout\n" \
+ "Tbvc-capa-update retries\n"
DEFUN(cfg_bts_gprs_cell_timer, cfg_bts_gprs_cell_timer_cmd,
"gprs cell timer " BSSGP_TIMERS " <0-255>",
diff --git a/openbsc/src/vty_interface_layer3.c b/openbsc/src/vty_interface_layer3.c
index 5aa24d3c2..b48b4a50b 100644
--- a/openbsc/src/vty_interface_layer3.c
+++ b/openbsc/src/vty_interface_layer3.c
@@ -290,11 +290,17 @@ static struct gsm_subscriber *get_subscr_by_argv(const char *type,
return NULL;
}
#define SUBSCR_TYPES "(extension|imsi|tmsi|id)"
+#define SUBSCR_HELP "Operations on a Subscriber\n" \
+ "Identify subscriber by his extension (phone number)\n" \
+ "Identify subscriber by his IMSI\n" \
+ "Identify subscriber by his TMSI\n" \
+ "Identify subscriber by his database ID\n" \
+ "Identifier for the subscriber\n"
DEFUN(subscriber_send_sms,
subscriber_send_sms_cmd,
"subscriber " SUBSCR_TYPES " EXTEN sms send .LINE",
- "Select subscriber based on extension")
+ SUBSCR_HELP "SMS Operations\n" "Send SMS\n" "Actual SMS Text")
{
struct gsm_subscriber *subscr = get_subscr_by_argv(argv[0], argv[1]);
struct buffer *b;
@@ -316,8 +322,9 @@ DEFUN(subscriber_send_sms,
DEFUN(subscriber_silent_sms,
subscriber_silent_sms_cmd,
- "subscriber " SUBSCR_TYPES " EXTEN silent sms send .LINE",
- "Select subscriber based on extension")
+ "subscriber " SUBSCR_TYPES " EXTEN silent-sms send .LINE",
+ SUBSCR_HELP
+ "Silent SMS Operation\n" "Send Silent SMS\n" "Actual SMS text\n")
{
struct gsm_subscriber *subscr = get_subscr_by_argv(argv[0], argv[1]);
struct buffer *b;
@@ -338,10 +345,18 @@ DEFUN(subscriber_silent_sms,
return rc;
}
+#define CHAN_TYPES "(any|tch/f|tch/any|sdcch)"
+#define CHAN_TYPE_HELP \
+ "Any channel\n" \
+ "TCH/F channel\n" \
+ "Any TCH channel\n" \
+ "SDCCH channel\n"
+
DEFUN(subscriber_silent_call_start,
subscriber_silent_call_start_cmd,
- "subscriber " SUBSCR_TYPES " EXTEN silent call start (any|tch/f|tch/any|sdcch)",
- "Start a silent call to a subscriber")
+ "subscriber " SUBSCR_TYPES " EXTEN silent-call start (any|tch/f|tch/any|sdcch)",
+ SUBSCR_HELP "Silent call operation\n" "Start silent call\n"
+ CHAN_TYPE_HELP)
{
struct gsm_subscriber *subscr = get_subscr_by_argv(argv[0], argv[1]);
int rc, type;
@@ -376,8 +391,9 @@ DEFUN(subscriber_silent_call_start,
DEFUN(subscriber_silent_call_stop,
subscriber_silent_call_stop_cmd,
- "subscriber " SUBSCR_TYPES " EXTEN silent call stop",
- "Stop a silent call to a subscriber")
+ "subscriber " SUBSCR_TYPES " EXTEN silent-call stop",
+ SUBSCR_HELP "Silent call operation\n" "Stop silent call\n"
+ CHAN_TYPE_HELP)
{
struct gsm_subscriber *subscr = get_subscr_by_argv(argv[0], argv[1]);
int rc;
@@ -431,8 +447,9 @@ DEFUN(cfg_subscr_extension,
DEFUN(cfg_subscr_authorized,
cfg_subscr_authorized_cmd,
- "auth <0-1>",
- "Set the authorization status of the subscriber")
+ "auth (0|1)",
+ "Set the authorization status of the subscriber\n"
+ "Not authorized\n" "Authorized\n")
{
int auth = atoi(argv[0]);
struct gsm_subscriber *subscr = vty->index;
@@ -448,11 +465,15 @@ DEFUN(cfg_subscr_authorized,
}
#define A3A8_ALG_TYPES "(none|comp128v1)"
+#define A3A8_ALG_HELP \
+ "Use No A3A8 algorithm\n" \
+ "Use COMP128v1 algorithm\n"
DEFUN(cfg_subscr_a3a8,
cfg_subscr_a3a8_cmd,
"a3a8 " A3A8_ALG_TYPES " [KI]",
- "Set a3a8 parameters for the subscriber")
+ "Set a3a8 parameters for the subscriber\n" A3A8_ALG_HELP
+ "Encryption Key Ki\n")
{
struct gsm_subscriber *subscr = vty->index;
const char *alg_str = argv[0];