aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHolger Hans Peter Freyther <zecke@selfish.org>2013-02-05 09:39:09 +0100
committerHolger Hans Peter Freyther <zecke@selfish.org>2013-02-05 21:14:12 +0100
commit59e913ebea83f3a8cea41b2e02505f68426e723d (patch)
tree382139c7fb0acf9bdfce3fd49cc54b7db2dd6657
parent3347a6e9182017b5be2a5a28ad0a16b5ebff1ccf (diff)
bsc: Add a VTY command to show the paging group for a BSC/IMSI
-rw-r--r--openbsc/src/libbsc/bsc_vty.c35
1 files changed, 35 insertions, 0 deletions
diff --git a/openbsc/src/libbsc/bsc_vty.c b/openbsc/src/libbsc/bsc_vty.c
index 037d39c2b..07987dac2 100644
--- a/openbsc/src/libbsc/bsc_vty.c
+++ b/openbsc/src/libbsc/bsc_vty.c
@@ -26,6 +26,8 @@
#include <osmocom/vty/logging.h>
#include <osmocom/vty/telnet_interface.h>
+#include <osmocom/gsm/gsm0502.h>
+
#include <arpa/inet.h>
#include <osmocom/core/linuxlist.h>
@@ -50,6 +52,8 @@
#include <openbsc/osmo_msc_data.h>
#include <openbsc/osmo_bsc_rf.h>
+#include <inttypes.h>
+
#include "../../bscconfig.h"
@@ -1152,6 +1156,36 @@ DEFUN(show_paging,
return CMD_SUCCESS;
}
+DEFUN(show_paging_group,
+ show_paging_group_cmd,
+ "show paging-group <0-255> IMSI",
+ SHOW_STR "Display the paging group\n"
+ "BTS Number\n" "IMSI\n")
+{
+ struct gsm_network *net = gsmnet_from_vty(vty);
+ struct gsm_bts *bts;
+ unsigned int page_group;
+ int bts_nr = atoi(argv[0]);
+
+ if (bts_nr >= net->num_bts) {
+ vty_out(vty, "%% can't find BTS %s%s", argv[0], VTY_NEWLINE);
+ return CMD_WARNING;
+ }
+
+ bts = gsm_bts_num(net, bts_nr);
+ if (!bts) {
+ vty_out(vty, "%% can't find BTS %s%s", argv[0], VTY_NEWLINE);
+ return CMD_WARNING;
+ }
+
+ page_group = gsm0502_calc_paging_group(&bts->si_common.chan_desc,
+ str_to_imsi(argv[1]));
+ vty_out(vty, "%%Paging group for IMSI %" PRIu64 " on BTS #%d is %u%s",
+ str_to_imsi(argv[1]), bts->nr,
+ page_group, VTY_NEWLINE);
+ return CMD_SUCCESS;
+}
+
DEFUN(cfg_net,
cfg_net_cmd,
"network", NETWORK_STR)
@@ -2737,6 +2771,7 @@ int bsc_vty_init(const struct log_info *cat)
install_element_ve(&show_e1ts_cmd);
install_element_ve(&show_paging_cmd);
+ install_element_ve(&show_paging_group_cmd);
logging_vty_add_cmds(cat);
install_element(CFG_LOG_NODE, &logging_fltr_imsi_cmd);