aboutsummaryrefslogtreecommitdiffstats
path: root/src/osmo-bsc/bsc_vty.c
diff options
context:
space:
mode:
authorarehbein <arehbein@sysmocom.de>2023-03-05 22:37:38 +0100
committerarehbein <arehbein@sysmocom.de>2023-11-19 16:28:31 +0100
commit1df2167748256c6d61a4f3f06898f85db1d1c6c5 (patch)
tree10d65495963fba30ed1fa142e4f698513746fa8d /src/osmo-bsc/bsc_vty.c
parentdea8aa8e6181f0ce0b793aa7b124ba4869227c4a (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.c49
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);