mirror of
https://gitea.osmocom.org/cellular-infrastructure/osmo-mgw.git
synced 2025-11-03 05:23:43 +00:00
[mgcp] Count incoming RTP packets from the BTS and remote
This commit is contained in:
@@ -57,6 +57,10 @@ struct mgcp_endpoint {
|
|||||||
|
|
||||||
/* backpointer */
|
/* backpointer */
|
||||||
struct mgcp_config *cfg;
|
struct mgcp_config *cfg;
|
||||||
|
|
||||||
|
/* statistics */
|
||||||
|
unsigned int in_bts;
|
||||||
|
unsigned int in_remote;
|
||||||
};
|
};
|
||||||
|
|
||||||
#define ENDPOINT_NUMBER(endp) abs(endp - endp->cfg->endpoints)
|
#define ENDPOINT_NUMBER(endp) abs(endp - endp->cfg->endpoints)
|
||||||
|
|||||||
@@ -162,6 +162,12 @@ static int rtp_data_cb(struct bsc_fd *fd, unsigned int what)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* do this before the loop handling */
|
||||||
|
if (dest == DEST_NETWORK)
|
||||||
|
++endp->in_bts;
|
||||||
|
else
|
||||||
|
++endp->in_remote;
|
||||||
|
|
||||||
/* dispatch */
|
/* dispatch */
|
||||||
if (cfg->audio_loop)
|
if (cfg->audio_loop)
|
||||||
dest = !dest;
|
dest = !dest;
|
||||||
|
|||||||
@@ -728,6 +728,7 @@ void mgcp_free_endp(struct mgcp_endpoint *endp)
|
|||||||
|
|
||||||
endp->net_rtp = endp->net_rtcp = endp->bts_rtp = endp->bts_rtcp = 0;
|
endp->net_rtp = endp->net_rtcp = endp->bts_rtp = endp->bts_rtcp = 0;
|
||||||
endp->net_payload_type = endp->bts_payload_type = -1;
|
endp->net_payload_type = endp->bts_payload_type = -1;
|
||||||
|
endp->in_bts = endp->in_remote = 0;
|
||||||
memset(&endp->remote, 0, sizeof(endp->remote));
|
memset(&endp->remote, 0, sizeof(endp->remote));
|
||||||
memset(&endp->bts, 0, sizeof(endp->bts));
|
memset(&endp->bts, 0, sizeof(endp->bts));
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -77,11 +77,12 @@ DEFUN(show_mcgp, show_mgcp_cmd, "show mgcp",
|
|||||||
vty_out(vty, "MGCP is up and running with %u endpoints:%s", g_cfg->number_endpoints - 1, VTY_NEWLINE);
|
vty_out(vty, "MGCP is up and running with %u endpoints:%s", g_cfg->number_endpoints - 1, VTY_NEWLINE);
|
||||||
for (i = 1; i < g_cfg->number_endpoints; ++i) {
|
for (i = 1; i < g_cfg->number_endpoints; ++i) {
|
||||||
struct mgcp_endpoint *endp = &g_cfg->endpoints[i];
|
struct mgcp_endpoint *endp = &g_cfg->endpoints[i];
|
||||||
vty_out(vty, " Endpoint 0x%.2x: CI: %d net: %u/%u bts: %u/%u on %s%s",
|
vty_out(vty, " Endpoint 0x%.2x: CI: %d net: %u/%u bts: %u/%u on %s traffic in :%u/%u%s",
|
||||||
i, endp->ci,
|
i, endp->ci,
|
||||||
ntohs(endp->net_rtp), ntohs(endp->net_rtcp),
|
ntohs(endp->net_rtp), ntohs(endp->net_rtcp),
|
||||||
ntohs(endp->bts_rtp), ntohs(endp->bts_rtcp),
|
ntohs(endp->bts_rtp), ntohs(endp->bts_rtcp),
|
||||||
inet_ntoa(endp->bts), VTY_NEWLINE);
|
inet_ntoa(endp->bts), endp->in_bts, endp->in_remote,
|
||||||
|
VTY_NEWLINE);
|
||||||
}
|
}
|
||||||
|
|
||||||
return CMD_SUCCESS;
|
return CMD_SUCCESS;
|
||||||
|
|||||||
Reference in New Issue
Block a user