From ec37bb29563c92bf405b732019db4ed3b2cc9477 Mon Sep 17 00:00:00 2001 From: Holger Hans Peter Freyther Date: Tue, 5 Feb 2013 09:39:09 +0100 Subject: bsc: Add a VTY command to show the paging group for a BSC/IMSI --- openbsc/src/libbsc/bsc_vty.c | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) (limited to 'openbsc/src') diff --git a/openbsc/src/libbsc/bsc_vty.c b/openbsc/src/libbsc/bsc_vty.c index 5a9976be6..b03498168 100644 --- a/openbsc/src/libbsc/bsc_vty.c +++ b/openbsc/src/libbsc/bsc_vty.c @@ -27,6 +27,8 @@ #include #include +#include + #include #include @@ -51,6 +53,8 @@ #include #include +#include + #include "../../bscconfig.h" @@ -1150,6 +1154,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) @@ -3095,6 +3129,7 @@ int bsc_vty_init(const struct log_info *cat) install_element_ve(&logging_fltr_imsi_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); -- cgit v1.2.3