stats: replace packet statistic counters with libosmocore rate counters
In struct mgcp_rtp_end one finds unsigned int counters. Those should
be replaced with libosmocore rate counters
- replace packets_rx, octets_rx, packets_tx, octets_tx and
dropped_packets with libosmocore rate counters.
Change-Id: I47c5c9006df5044e59ddebb895e62adb849d72d5
Related: OS#2517
diff --git a/src/libosmo-mgcp/mgcp_stat.c b/src/libosmo-mgcp/mgcp_stat.c
index cc723bb..4072ac0 100644
--- a/src/libosmo-mgcp/mgcp_stat.c
+++ b/src/libosmo-mgcp/mgcp_stat.c
@@ -27,10 +27,11 @@
#include <limits.h>
/* Helper function for mgcp_format_stats_rtp() to calculate packet loss */
-void calc_loss(struct mgcp_rtp_state *state,
- struct mgcp_rtp_end *end, uint32_t *expected,
- int *loss)
+void calc_loss(struct mgcp_conn_rtp *conn, uint32_t *expected, int *loss)
{
+ struct mgcp_rtp_state *state = &conn->state;
+ struct rate_ctr *packets_rx = &conn->rate_ctr_group->ctr[RTP_PACKETS_RX_CTR];
+
*expected = state->stats.cycles + state->stats.max_seq;
*expected = *expected - state->stats.base_seq + 1;
@@ -44,8 +45,8 @@
* Make sure the sign is correct and use the biggest
* positive/negative number that fits.
*/
- *loss = *expected - end->stats.packets_rx;
- if (*expected < end->stats.packets_rx) {
+ *loss = *expected - packets_rx->current;
+ if (*expected < packets_rx->current) {
if (*loss > 0)
*loss = INT_MIN;
} else {
@@ -70,13 +71,18 @@
int ploss;
int nchars;
- calc_loss(&conn->state, &conn->end, &expected, &ploss);
+ struct rate_ctr *packets_rx = &conn->rate_ctr_group->ctr[RTP_PACKETS_RX_CTR];
+ struct rate_ctr *octets_rx = &conn->rate_ctr_group->ctr[RTP_OCTETS_RX_CTR];
+ struct rate_ctr *packets_tx = &conn->rate_ctr_group->ctr[RTP_PACKETS_TX_CTR];
+ struct rate_ctr *octets_tx = &conn->rate_ctr_group->ctr[RTP_OCTETS_TX_CTR];
+
+ calc_loss(conn, &expected, &ploss);
jitter = calc_jitter(&conn->state);
nchars = snprintf(str, str_len,
- "\r\nP: PS=%u, OS=%u, PR=%u, OR=%u, PL=%d, JI=%u",
- conn->end.stats.packets_tx, conn->end.stats.octets_tx,
- conn->end.stats.packets_rx, conn->end.stats.octets_rx,
+ "\r\nP: PS=%lu, OS=%lu, PR=%lu, OR=%lu, PL=%d, JI=%u",
+ packets_tx->current, octets_tx->current,
+ packets_rx->current, octets_rx->current,
ploss, jitter);
if (nchars < 0 || nchars >= str_len)
goto truncate;