diff options
author | arehbein <arehbein@sysmocom.de> | 2023-03-05 22:37:38 +0100 |
---|---|---|
committer | arehbein <arehbein@sysmocom.de> | 2023-11-19 16:28:31 +0100 |
commit | 1df2167748256c6d61a4f3f06898f85db1d1c6c5 (patch) | |
tree | 10d65495963fba30ed1fa142e4f698513746fa8d /src/osmo-bsc/bsc_vty.c | |
parent | dea8aa8e6181f0ce0b793aa7b124ba4869227c4a (diff) |
Introduce per-BTS timers, RLC timer commands
- Add per-BTS timer groups ('rlc' only for now, others to follow)
- Add vty commands & tests for those timers
Related: OS#5335
Change-Id: I2c24110d8c977d6cc74c3c8e77bcc709ad9d2675
Diffstat (limited to 'src/osmo-bsc/bsc_vty.c')
-rw-r--r-- | src/osmo-bsc/bsc_vty.c | 49 |
1 files changed, 45 insertions, 4 deletions
diff --git a/src/osmo-bsc/bsc_vty.c b/src/osmo-bsc/bsc_vty.c index 02f708e2e..669e94276 100644 --- a/src/osmo-bsc/bsc_vty.c +++ b/src/osmo-bsc/bsc_vty.c @@ -232,9 +232,12 @@ DEFUN(bsc_show_net, bsc_show_net_cmd, "show network", return CMD_SUCCESS; } + +#define BTS_STR "Display information about a BTS\n" +#define BTS_NUM_STR "BTS number\n" + DEFUN(show_bts, show_bts_cmd, "show bts [<0-255>]", - SHOW_STR "Display information about a BTS\n" - "BTS number\n") + SHOW_STR BTS_STR BTS_NUM_STR) { struct gsm_network *net = gsmnet_from_vty(vty); int bts_nr; @@ -258,8 +261,7 @@ DEFUN(show_bts, show_bts_cmd, "show bts [<0-255>]", } DEFUN(show_bts_fail_rep, show_bts_fail_rep_cmd, "show bts <0-255> fail-rep [reset]", - SHOW_STR "Display information about a BTS\n" - "BTS number\n" "OML failure reports\n" + SHOW_STR BTS_STR BTS_NUM_STR "OML failure reports\n" "Clear the list of failure reports after showing them\n") { struct gsm_network *net = gsmnet_from_vty(vty); @@ -318,6 +320,44 @@ DEFUN(show_bts_fail_rep, show_bts_fail_rep_cmd, "show bts <0-255> fail-rep [rese return CMD_SUCCESS; } +/* TODO: Add other options for group argument bssgp, ns '[(rlc|bssgp|ns)]' when adding additional timer groups. + * (Assume that with two args, the first is always the group. The second is always the timer) */ +DEFUN(show_bts_rlc_timer, show_bts_rlc_timer_cmd, + "show bts <0-255> gprs timer [" BTS_VTY_RLC_STR "] " OSMO_TDEF_VTY_ARG_T_OPTIONAL, + SHOW_STR + BTS_STR + BTS_NUM_STR + "GPRS Packet Network\n" + BTS_SHOW_TIMER_STR + "RLC (Radio Link Control)\n" + OSMO_TDEF_VTY_DOC_T) +{ + struct gsm_network *net = gsmnet_from_vty(vty); + int rc = CMD_WARNING, bts_nr = atoi(argv[0]); + enum gsm_gprs_bts_tdef_groups group = -1; + const char *tdef_group = argc >= 2 ? argv[1] : NULL; + const char *T_arg = argc >= 3 ? argv[2] : NULL; + struct osmo_tdef_group *g; + struct gsm_bts *bts = gsm_bts_num(net, bts_nr); + if (!bts) { + vty_out(vty, "%% can't find BTS '%d'%s", bts_nr, VTY_NEWLINE); + return CMD_WARNING; + } + if (bts->gprs.mode == BTS_GPRS_NONE) { + vty_out(vty, "%% GPRS is not enabled on BTS %u%s", bts->nr, VTY_NEWLINE); + return CMD_WARNING; + } + osmo_tdef_groups_for_each(g, bts->timer_groups) { + ++group; + if (tdef_group && strcmp(tdef_group, g->name)) + continue; + if (bts_write_group_timers(vty, "", bts_nr, group, T_arg, false) == CMD_WARNING) + rc = CMD_SUCCESS; + } + + return rc; +} + DEFUN(show_rejected_bts, show_rejected_bts_cmd, "show rejected-bts", SHOW_STR "Display recently rejected BTS devices\n") { @@ -3605,6 +3645,7 @@ int bsc_vty_init(struct gsm_network *network) install_element_ve(&bsc_show_net_cmd); install_element_ve(&show_bts_cmd); + install_element_ve(&show_bts_rlc_timer_cmd); install_element_ve(&show_bts_fail_rep_cmd); install_element_ve(&show_rejected_bts_cmd); install_element_ve(&show_trx_cmd); |