Harald Welte has submitted this change and it was merged.

Change subject: Revert "stats: use libosmocore rate counter for 
in/out_stream.err_ts_counter"
......................................................................


Revert "stats: use libosmocore rate counter for in/out_stream.err_ts_counter"

This reverts commit 7181cc1f026a0b63a061296aba4e10a9cadaf2c8.
The tests are broken on i686, arm (non 64bit systems).

Change-Id: I15f3c78f8410d709733ed5692ba94ba17559d7e1
---
M include/osmocom/mgcp/mgcp_internal.h
M src/libosmo-mgcp/mgcp_conn.c
M src/libosmo-mgcp/mgcp_network.c
M src/libosmo-mgcp/mgcp_stat.c
M src/libosmo-mgcp/mgcp_vty.c
M tests/mgcp/mgcp_test.c
6 files changed, 15 insertions(+), 63 deletions(-)

Approvals:
  Harald Welte: Looks good to me, approved
  Jenkins Builder: Verified



diff --git a/include/osmocom/mgcp/mgcp_internal.h 
b/include/osmocom/mgcp/mgcp_internal.h
index ff02768..0da2c56 100644
--- a/include/osmocom/mgcp/mgcp_internal.h
+++ b/include/osmocom/mgcp/mgcp_internal.h
@@ -28,7 +28,6 @@
 #include <osmocom/mgcp/mgcp.h>
 #include <osmocom/core/linuxlist.h>
 #include <osmocom/core/counter.h>
-#include <osmocom/core/rate_ctr.h>
 
 #define CI_UNUSED 0
 
@@ -46,7 +45,7 @@
        uint32_t ssrc;
        uint16_t last_seq;
        uint32_t last_timestamp;
-       struct rate_ctr *err_ts_ctr;
+       uint32_t err_ts_counter;
        int32_t last_tsdelta;
        uint32_t last_arrival_time;
 };
@@ -203,8 +202,6 @@
                        uint32_t octets;
                } stats;
        } osmux;
-
-       struct rate_ctr_group *rate_ctr_group;
 };
 
 /*! Connection type, specifies which member of the union "u" in mgcp_conn
diff --git a/src/libosmo-mgcp/mgcp_conn.c b/src/libosmo-mgcp/mgcp_conn.c
index 0055049..998dbc5 100644
--- a/src/libosmo-mgcp/mgcp_conn.c
+++ b/src/libosmo-mgcp/mgcp_conn.c
@@ -26,27 +26,7 @@
 #include <osmocom/mgcp/mgcp_common.h>
 #include <osmocom/mgcp/mgcp_endp.h>
 #include <osmocom/gsm/gsm_utils.h>
-#include <osmocom/core/rate_ctr.h>
 #include <ctype.h>
-
-const static struct rate_ctr_desc rate_ctr_desc[] = {
-       {
-               .name = "in_stream_err_ts_ctr",
-               .description = "inbound rtp-stream timestamp errors",
-       },{
-               .name = "out_stream_err_ts_ctr",
-               .description = "outbound rtp-stream timestamp errors",
-       }
-};
-
-const static struct rate_ctr_group_desc rate_ctr_group_desc = {
-       .group_name_prefix = "conn_rtp",
-       .group_description = "rtp connection statistics",
-       .class_id = 1,
-       .num_ctr = 2,
-       .ctr_desc = rate_ctr_desc
-};
-
 
 /* Allocate a new connection identifier. According to RFC3435, they must
  * be unique only within the scope of the endpoint. (Caller must provide
@@ -107,10 +87,6 @@
 static void mgcp_rtp_conn_init(struct mgcp_conn_rtp *conn_rtp, struct 
mgcp_conn *conn)
 {
        struct mgcp_rtp_end *end = &conn_rtp->end;
-       /* FIXME: Each new rate counter group requires an unique index. At the
-        * moment we generate this index using this counter, but perhaps there
-        * is a more concious way to assign the indexes. */
-       static unsigned int rate_ctr_index = 0;
 
        conn_rtp->type = MGCP_RTP_DEFAULT;
        conn_rtp->osmux.allocated_cid = -1;
@@ -132,15 +108,6 @@
 
        mgcp_rtp_codec_init(&end->codec);
        mgcp_rtp_codec_init(&end->alt_codec);
-
-       conn_rtp->rate_ctr_group =
-           rate_ctr_group_alloc(conn, &rate_ctr_group_desc,
-                                rate_ctr_index);
-       conn_rtp->state.in_stream.err_ts_ctr =
-           &conn_rtp->rate_ctr_group->ctr[0];
-       conn_rtp->state.out_stream.err_ts_ctr =
-           &conn_rtp->rate_ctr_group->ctr[1];
-       rate_ctr_index++;
 }
 
 /* Cleanup rtp connection struct */
@@ -149,7 +116,6 @@
        osmux_disable_conn(conn_rtp);
        osmux_release_cid(conn_rtp);
        mgcp_free_rtp_port(&conn_rtp->end);
-       rate_ctr_group_free(conn_rtp->rate_ctr_group);
 }
 
 /*! allocate a new connection list entry.
diff --git a/src/libosmo-mgcp/mgcp_network.c b/src/libosmo-mgcp/mgcp_network.c
index c56e433..6923b97 100644
--- a/src/libosmo-mgcp/mgcp_network.c
+++ b/src/libosmo-mgcp/mgcp_network.c
@@ -222,7 +222,7 @@
 
        if (seq == sstate->last_seq) {
                if (timestamp != sstate->last_timestamp) {
-                       rate_ctr_inc(sstate->err_ts_ctr);
+                       sstate->err_ts_counter += 1;
                        LOGP(DRTP, LOGL_ERROR,
                             "The %s timestamp delta is != 0 but the sequence "
                             "number %d is the same, "
@@ -272,7 +272,7 @@
            ts_alignment_error(sstate, state->packet_duration, timestamp);
 
        if (timestamp_error) {
-               rate_ctr_inc(sstate->err_ts_ctr);
+               sstate->err_ts_counter += 1;
                LOGP(DRTP, LOGL_NOTICE,
                     "The %s timestamp has an alignment error of %d "
                     "on 0x%x SSRC: %u "
@@ -505,16 +505,13 @@
        mgcp_rtp_annex_count(endp, state, seq, transit, ssrc);
 
        if (!state->initialized) {
-               /* FIXME: Move this initialization to mgcp.conn.c */
                state->initialized = 1;
                state->in_stream.last_seq = seq - 1;
                state->in_stream.ssrc = state->patch.orig_ssrc = ssrc;
                state->in_stream.last_tsdelta = 0;
                state->packet_duration =
                    mgcp_rtp_packet_duration(endp, rtp_end);
-               state->out_stream.last_seq = seq - 1;
-               state->out_stream.ssrc = state->patch.orig_ssrc = ssrc;
-               state->out_stream.last_tsdelta = 0;
+               state->out_stream = state->in_stream;
                state->out_stream.last_timestamp = timestamp;
                state->out_stream.ssrc = ssrc - 1;      /* force output SSRC 
change */
                LOGP(DRTP, LOGL_INFO,
diff --git a/src/libosmo-mgcp/mgcp_stat.c b/src/libosmo-mgcp/mgcp_stat.c
index cc723bb..581130c 100644
--- a/src/libosmo-mgcp/mgcp_stat.c
+++ b/src/libosmo-mgcp/mgcp_stat.c
@@ -87,9 +87,9 @@
        if (conn->conn->endp->cfg->osmux != OSMUX_USAGE_OFF) {
                /* Error Counter */
                nchars = snprintf(str, str_len,
-                                 "\r\nX-Osmo-CP: EC TI=%lu, TO=%lu",
-                                 conn->state.in_stream.err_ts_ctr->current,
-                                 conn->state.out_stream.err_ts_ctr->current);
+                                 "\r\nX-Osmo-CP: EC TI=%u, TO=%u",
+                                 conn->state.in_stream.err_ts_counter,
+                                 conn->state.out_stream.err_ts_counter);
                if (nchars < 0 || nchars >= str_len)
                        goto truncate;
 
diff --git a/src/libosmo-mgcp/mgcp_vty.c b/src/libosmo-mgcp/mgcp_vty.c
index 392a176..14ecd17 100644
--- a/src/libosmo-mgcp/mgcp_vty.c
+++ b/src/libosmo-mgcp/mgcp_vty.c
@@ -160,16 +160,15 @@
        struct mgcp_rtp_codec *codec = &end->codec;
 
        vty_out(vty,
-               "   Timestamp Errs: %lu->%lu%s"
+               "   Timestamp Errs: %d->%d%s"
                "   Dropped Packets: %d%s"
                "   Payload Type: %d Rate: %u Channels: %d %s"
                "   Frame Duration: %u Frame Denominator: %u%s"
                "   FPP: %d Packet Duration: %u%s"
                "   FMTP-Extra: %s Audio-Name: %s Sub-Type: %s%s"
                "   Output-Enabled: %d Force-PTIME: %d%s",
-               state->in_stream.err_ts_ctr->current,
-               state->out_stream.err_ts_ctr->current,
-               VTY_NEWLINE,
+               state->in_stream.err_ts_counter,
+               state->out_stream.err_ts_counter, VTY_NEWLINE,
                end->stats.dropped_packets, VTY_NEWLINE,
                codec->payload_type, codec->rate, codec->channels, VTY_NEWLINE,
                codec->frame_duration_num, codec->frame_duration_den,
diff --git a/tests/mgcp/mgcp_test.c b/tests/mgcp/mgcp_test.c
index 0af3799..f6c421a 100644
--- a/tests/mgcp/mgcp_test.c
+++ b/tests/mgcp/mgcp_test.c
@@ -1133,8 +1133,6 @@
        int last_out_ts_err_cnt = 0;
        struct mgcp_conn_rtp *conn = NULL;
        struct mgcp_conn *_conn = NULL;
-       struct rate_ctr test_ctr_in;
-       struct rate_ctr test_ctr_out;
 
        printf("Testing packet error detection%s%s.\n",
               patch_ssrc ? ", patch SSRC" : "",
@@ -1143,11 +1141,6 @@
        memset(&trunk, 0, sizeof(trunk));
        memset(&endp, 0, sizeof(endp));
        memset(&state, 0, sizeof(state));
-
-       test_ctr_in.current = 0;
-       test_ctr_out.current = 0;
-       state.in_stream.err_ts_ctr = &test_ctr_in;
-       state.out_stream.err_ts_ctr = &test_ctr_out;
 
        endp.type = &ep_typeset.rtp;
 
@@ -1193,18 +1186,18 @@
                       state.in_stream.last_tsdelta, state.in_stream.last_seq);
 
                printf("Out TS change: %d, dTS: %d, Seq change: %d, "
-                      "TS Err change: in +%lu, out +%lu\n",
+                      "TS Err change: in %+d, out %+d\n",
                       state.out_stream.last_timestamp - last_timestamp,
                       state.out_stream.last_tsdelta,
                       state.out_stream.last_seq - last_seqno,
-                      state.in_stream.err_ts_ctr->current - last_in_ts_err_cnt,
-                      state.out_stream.err_ts_ctr->current - 
last_out_ts_err_cnt);
+                      state.in_stream.err_ts_counter - last_in_ts_err_cnt,
+                      state.out_stream.err_ts_counter - last_out_ts_err_cnt);
 
                printf("Stats: Jitter = %u, Transit = %d\n",
                       calc_jitter(&state), state.stats.transit);
 
-               last_in_ts_err_cnt = state.in_stream.err_ts_ctr->current;
-               last_out_ts_err_cnt = state.out_stream.err_ts_ctr->current;
+               last_in_ts_err_cnt = state.in_stream.err_ts_counter;
+               last_out_ts_err_cnt = state.out_stream.err_ts_counter;
                last_timestamp = state.out_stream.last_timestamp;
                last_seqno = state.out_stream.last_seq;
        }

-- 
To view, visit https://gerrit.osmocom.org/7891
To unsubscribe, visit https://gerrit.osmocom.org/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: I15f3c78f8410d709733ed5692ba94ba17559d7e1
Gerrit-PatchSet: 1
Gerrit-Project: osmo-mgw
Gerrit-Branch: master
Gerrit-Owner: lynxis lazus <[email protected]>
Gerrit-Reviewer: Harald Welte <[email protected]>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: dexter <[email protected]>
Gerrit-Reviewer: lynxis lazus <[email protected]>

Reply via email to