diff options
author | Holger Hans Peter Freyther <zecke@selfish.org> | 2013-02-05 09:39:09 +0100 |
---|---|---|
committer | Holger Hans Peter Freyther <zecke@selfish.org> | 2013-02-05 21:14:12 +0100 |
commit | 59e913ebea83f3a8cea41b2e02505f68426e723d (patch) | |
tree | 382139c7fb0acf9bdfce3fd49cc54b7db2dd6657 | |
parent | 3347a6e9182017b5be2a5a28ad0a16b5ebff1ccf (diff) |
bsc: Add a VTY command to show the paging group for a BSC/IMSI
-rw-r--r-- | openbsc/src/libbsc/bsc_vty.c | 35 |
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); |