nat: Count the number of dropped SCCP and MGCP calls as well.

Count the number of dropped calls and lost SCCP connections
due the loss of a connection to the BSC...
This commit is contained in:
Holger Hans Peter Freyther 2010-06-17 18:29:42 +08:00
parent b2c38ebb1f
commit 8330c1c386
4 changed files with 18 additions and 0 deletions

View File

@ -150,6 +150,8 @@ enum bsc_cfg_ctr {
BCFG_CTR_SCCP_CONN,
BCFG_CTR_SCCP_CALLS,
BCFG_CTR_NET_RECONN,
BCFG_CTR_DROPPED_SCCP,
BCFG_CTR_DROPPED_CALLS,
};
/**

View File

@ -546,13 +546,21 @@ int bsc_mgcp_nat_init(struct bsc_nat *nat)
void bsc_mgcp_clear_endpoints_for(struct bsc_connection *bsc)
{
struct rate_ctr *ctr = NULL;
int i;
if (bsc->cfg)
ctr = &bsc->cfg->stats.ctrg->ctr[BCFG_CTR_DROPPED_CALLS];
for (i = 1; i < bsc->nat->mgcp_cfg->number_endpoints; ++i) {
struct bsc_endpoint *bsc_endp = &bsc->nat->bsc_endpoints[i];
if (bsc_endp->bsc != bsc)
continue;
if (ctr)
rate_ctr_inc(ctr);
bsc_mgcp_free_endpoint(bsc->nat, i);
mgcp_free_endp(&bsc->nat->mgcp_cfg->endpoints[i]);
}

View File

@ -588,17 +588,23 @@ static int ipaccess_msc_write_cb(struct bsc_fd *bfd, struct msgb *msg)
void bsc_close_connection(struct bsc_connection *connection)
{
struct sccp_connections *sccp_patch, *tmp;
struct rate_ctr *ctr = NULL;
/* stop the timeout timer */
bsc_del_timer(&connection->id_timeout);
bsc_del_timer(&connection->ping_timeout);
bsc_del_timer(&connection->pong_timeout);
if (connection->cfg)
ctr = &connection->cfg->stats.ctrg->ctr[BCFG_CTR_DROPPED_SCCP];
/* remove all SCCP connections */
llist_for_each_entry_safe(sccp_patch, tmp, &nat->sccp_connections, list_entry) {
if (sccp_patch->bsc != connection)
continue;
if (ctr)
rate_ctr_inc(ctr);
if (sccp_patch->has_remote_ref)
nat_send_rlsd(sccp_patch);
sccp_connection_destroy(sccp_patch);

View File

@ -43,6 +43,8 @@ static const struct rate_ctr_desc bsc_cfg_ctr_description[] = {
[BCFG_CTR_SCCP_CONN] = { "sccp.conn", "SCCP Connections" },
[BCFG_CTR_SCCP_CALLS] = { "sccp.calls", "SCCP Assignment Commands"},
[BCFG_CTR_NET_RECONN] = { "net.reconnects", "Network reconnects"},
[BCFG_CTR_DROPPED_SCCP] = { "dropped.sccp", "Dropped SCCP connections."},
[BCFG_CTR_DROPPED_CALLS] = { "dropped.calls", "Dropped active calls."},
};
static const struct rate_ctr_group_desc bsc_cfg_ctrg_desc = {