mirror of
https://gitea.osmocom.org/cellular-infrastructure/osmo-mgw.git
synced 2025-11-03 05:23:43 +00:00
nat: Introduce a show statistics-by-lac LAC
Currently show show statistics only work by given the internal configuration number, add a version that is working by LAC of the BSC.
This commit is contained in:
@@ -169,6 +169,26 @@ DEFUN(show_bsc_cfg, show_bsc_cfg_cmd, "show bsc config",
|
|||||||
return CMD_SUCCESS;
|
return CMD_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void dump_stat_total(struct vty *vty, struct bsc_nat *nat)
|
||||||
|
{
|
||||||
|
vty_out(vty, "NAT statistics%s", VTY_NEWLINE);
|
||||||
|
vty_out(vty, " SCCP Connections %lu total, %lu calls%s",
|
||||||
|
counter_get(nat->stats.sccp.conn),
|
||||||
|
counter_get(nat->stats.sccp.calls), VTY_NEWLINE);
|
||||||
|
vty_out(vty, " MSC Connections %lu%s",
|
||||||
|
counter_get(nat->stats.msc.reconn), VTY_NEWLINE);
|
||||||
|
vty_out(vty, " BSC Connections %lu total, %lu auth failed.%s",
|
||||||
|
counter_get(nat->stats.bsc.reconn),
|
||||||
|
counter_get(nat->stats.bsc.auth_fail), VTY_NEWLINE);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void dump_stat_bsc(struct vty *vty, struct bsc_config *conf)
|
||||||
|
{
|
||||||
|
vty_out(vty, " BSC lac: %d nr: %d%s",
|
||||||
|
conf->lac, conf->nr, VTY_NEWLINE);
|
||||||
|
vty_out_rate_ctr_group(vty, " ", conf->stats.ctrg);
|
||||||
|
}
|
||||||
|
|
||||||
DEFUN(show_stats,
|
DEFUN(show_stats,
|
||||||
show_stats_cmd,
|
show_stats_cmd,
|
||||||
"show statistics [NR]",
|
"show statistics [NR]",
|
||||||
@@ -181,23 +201,32 @@ DEFUN(show_stats,
|
|||||||
if (argc == 1)
|
if (argc == 1)
|
||||||
nr = atoi(argv[0]);
|
nr = atoi(argv[0]);
|
||||||
|
|
||||||
vty_out(vty, "NAT statistics%s", VTY_NEWLINE);
|
dump_stat_total(vty, _nat);
|
||||||
vty_out(vty, " SCCP Connections %lu total, %lu calls%s",
|
|
||||||
counter_get(_nat->stats.sccp.conn),
|
|
||||||
counter_get(_nat->stats.sccp.calls), VTY_NEWLINE);
|
|
||||||
vty_out(vty, " MSC Connections %lu%s",
|
|
||||||
counter_get(_nat->stats.msc.reconn), VTY_NEWLINE);
|
|
||||||
vty_out(vty, " BSC Connections %lu total, %lu auth failed.%s",
|
|
||||||
counter_get(_nat->stats.bsc.reconn),
|
|
||||||
counter_get(_nat->stats.bsc.auth_fail), VTY_NEWLINE);
|
|
||||||
|
|
||||||
llist_for_each_entry(conf, &_nat->bsc_configs, entry) {
|
llist_for_each_entry(conf, &_nat->bsc_configs, entry) {
|
||||||
if (argc == 1 && nr != conf->nr)
|
if (argc == 1 && nr != conf->nr)
|
||||||
continue;
|
continue;
|
||||||
|
dump_stat_bsc(vty, conf);
|
||||||
|
}
|
||||||
|
|
||||||
vty_out(vty, " BSC lac: %d nr: %d%s",
|
return CMD_SUCCESS;
|
||||||
conf->lac, conf->nr, VTY_NEWLINE);
|
}
|
||||||
vty_out_rate_ctr_group(vty, " ", conf->stats.ctrg);
|
|
||||||
|
DEFUN(show_stats_lac,
|
||||||
|
show_stats_lac_cmd,
|
||||||
|
"show statistics-by-lac <0-65535>",
|
||||||
|
SHOW_STR "Display network statistics by lac\n"
|
||||||
|
"The lac of the BSC\n")
|
||||||
|
{
|
||||||
|
int lac;
|
||||||
|
struct bsc_config *conf;
|
||||||
|
|
||||||
|
lac = atoi(argv[0]);
|
||||||
|
|
||||||
|
dump_stat_total(vty, _nat);
|
||||||
|
llist_for_each_entry(conf, &_nat->bsc_configs, entry) {
|
||||||
|
if (conf->lac != lac)
|
||||||
|
continue;
|
||||||
|
dump_stat_bsc(vty, conf);
|
||||||
}
|
}
|
||||||
|
|
||||||
return CMD_SUCCESS;
|
return CMD_SUCCESS;
|
||||||
@@ -511,6 +540,7 @@ int bsc_nat_vty_init(struct bsc_nat *nat)
|
|||||||
install_element_ve(&show_bsc_cmd);
|
install_element_ve(&show_bsc_cmd);
|
||||||
install_element_ve(&show_bsc_cfg_cmd);
|
install_element_ve(&show_bsc_cfg_cmd);
|
||||||
install_element_ve(&show_stats_cmd);
|
install_element_ve(&show_stats_cmd);
|
||||||
|
install_element_ve(&show_stats_lac_cmd);
|
||||||
install_element_ve(&close_bsc_cmd);
|
install_element_ve(&close_bsc_cmd);
|
||||||
install_element_ve(&show_msc_cmd);
|
install_element_ve(&show_msc_cmd);
|
||||||
install_element_ve(&test_regex_cmd);
|
install_element_ve(&test_regex_cmd);
|
||||||
|
|||||||
Reference in New Issue
Block a user