aboutsummaryrefslogtreecommitdiffstats
path: root/src/vty_interface.c
diff options
context:
space:
mode:
authorHarald Welte <laforge@gnumonks.org>2009-03-28 16:55:11 +0000
committerHarald Welte <laforge@gnumonks.org>2009-03-28 16:55:11 +0000
commitf5025b6baebff72e3f04185cb4ad0e6c910b426b (patch)
treee0e9d800aed6d25e9b589164d7a66c6a56ec5d6e /src/vty_interface.c
parent273feca77fc088797e0e5f8642dfa26d2389830e (diff)
add 'show paging' for BTS to telnet interface
Diffstat (limited to 'src/vty_interface.c')
-rw-r--r--src/vty_interface.c45
1 files changed, 45 insertions, 0 deletions
diff --git a/src/vty_interface.c b/src/vty_interface.c
index fff1af7c5..ee9ee50d1 100644
--- a/src/vty_interface.c
+++ b/src/vty_interface.c
@@ -505,6 +505,50 @@ DEFUN(show_e1ts,
return CMD_SUCCESS;
}
+void paging_dump_vty(struct vty *vty, struct gsm_paging_request *pag)
+{
+ vty_out(vty, "Paging on BTS %u%s", pag->bts->nr, VTY_NEWLINE);
+ subscr_dump_vty(vty, pag->subscr);
+}
+
+void bts_paging_dump_vty(struct vty *vty, struct gsm_bts *bts)
+{
+ struct gsm_paging_request *pag;
+
+ llist_for_each_entry(pag, &bts->paging.pending_requests, entry)
+ paging_dump_vty(vty, pag);
+}
+
+DEFUN(show_paging,
+ show_paging_cmd,
+ "show paging [bts_nr]",
+ SHOW_STR "Display information about pating reuqests of a BTS\n")
+{
+ struct gsm_network *net = gsmnet;
+ struct gsm_bts *bts;
+ int bts_nr;
+
+ if (argc >= 1) {
+ /* use the BTS number that the user has specified */
+ 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 = &net->bts[bts_nr];
+ bts_paging_dump_vty(vty, bts);
+
+ return CMD_SUCCESS;
+ }
+ for (bts_nr = 0; bts_nr < net->num_bts; bts_nr++) {
+ bts = &net->bts[bts_nr];
+ bts_paging_dump_vty(vty, bts);
+ }
+
+ return CMD_SUCCESS;
+}
+
int bsc_vty_init(struct gsm_network *net)
{
gsmnet = net;
@@ -522,6 +566,7 @@ int bsc_vty_init(struct gsm_network *net)
install_element(VIEW_NODE, &show_e1line_cmd);
install_element(VIEW_NODE, &show_e1ts_cmd);
+ install_element(VIEW_NODE, &show_paging_cmd);
#if 0
install_node(&bts_node, dummy_config_write);
install_element(BTS_NODE, &show_bts_cmd);