dexter has uploaded this change for review. ( https://gerrit.osmocom.org/10150


Change subject: MGCP_Test: check payload type of received RTP packets
......................................................................

MGCP_Test: check payload type of received RTP packets

When an RTP packet is received, the payload type is not checked,
so we will not detect if the MGW emits packets with a wrong payload
type for some reason.

- Introduce a statistics counter that counts packets with wrong PT
- Update testcases so that they check for the statistics for wrong
  PT count.

Change-Id: I83d4b04656a16ced624024245a2fcb7a0ad48a8a
Related: OS#3384
---
M library/RTP_Emulation.ttcn
M mgw/MGCP_Test.ttcn
2 files changed, 36 insertions(+), 0 deletions(-)



  git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks 
refs/changes/50/10150/1

diff --git a/library/RTP_Emulation.ttcn b/library/RTP_Emulation.ttcn
index 71cd8db..2a358a9 100644
--- a/library/RTP_Emulation.ttcn
+++ b/library/RTP_Emulation.ttcn
@@ -116,6 +116,8 @@
        integer num_pkts_rx_err_seq,
        /* number of packets received wrong timestamp */
        integer num_pkts_rx_err_ts,
+       /* number of packets received wrong payload type */
+       integer num_pkts_rx_err_pt,
        /* number of packets received during Rx disable */
        integer num_pkts_rx_err_disabled
 }
@@ -127,6 +129,7 @@
        bytes_payload_rx := 0,
        num_pkts_rx_err_seq := 0,
        num_pkts_rx_err_ts := 0,
+       num_pkts_rx_err_pt := 0,
        num_pkts_rx_err_disabled := 0
 }

@@ -399,7 +402,11 @@
                /* process received RTCP/RTP if receiver enabled */
                [g_rx_enabled] RTP.receive(tr_rtp) -> value rx_rtp {
                        //log("RX RTP: ", rx_rtp);
+
                        /* increment counters */
+                       if (rx_rtp.msg.rtp.payload_type != 
g_cfg.tx_payload_type) {
+                               g_stats_rtp.num_pkts_rx_err_pt := 
g_stats_rtp.num_pkts_rx_err_pt+1;
+                       }
                        g_stats_rtp.num_pkts_rx := g_stats_rtp.num_pkts_rx+1;
                        g_stats_rtp.bytes_payload_rx := 
g_stats_rtp.bytes_payload_rx +
                                                                
lengthof(rx_rtp.msg.rtp.data);
diff --git a/mgw/MGCP_Test.ttcn b/mgw/MGCP_Test.ttcn
index 82ed608..264ac28 100644
--- a/mgw/MGCP_Test.ttcn
+++ b/mgw/MGCP_Test.ttcn
@@ -970,6 +970,9 @@
                if (stats.num_pkts_rx_err_ts != 0) {
                        setverdict(fail);
                }
+               if (stats.num_pkts_rx_err_pt != 0) {
+                       setverdict(fail);
+               }
                if (stats.num_pkts_rx_err_disabled != 0) {
                        setverdict(fail);
                }
@@ -1008,6 +1011,9 @@
                if (stats.num_pkts_rx_err_ts != 0) {
                        setverdict(fail);
                }
+               if (stats.num_pkts_rx_err_pt != 0) {
+                       setverdict(fail);
+               }
                if (stats.num_pkts_rx_err_disabled != 0) {
                        setverdict(fail);
                }
@@ -1062,6 +1068,11 @@
                        mtc.stop;
                }

+               if (stats[0].num_pkts_rx_err_pt > 0 or 
stats[1].num_pkts_rx_err_pt > 0) {
+                       setverdict(fail, "RTP packets with wrong payload type 
received");
+                       mtc.stop;
+               }
+
                setverdict(pass);
        }

@@ -1163,12 +1174,20 @@
                        setverdict(fail, "number of packets not within normal 
parameters");
                        mtc.stop;
                }
+               if (stats[0].num_pkts_rx_err_pt > 0) {
+                       setverdict(fail, "RTP packets with wrong payload type 
received");
+                       mtc.stop;
+               }

                temp := stats[1].num_pkts_tx - num_pkts_tx[1] - 
stats[0].num_pkts_rx;
                if (temp > 3 or temp < -3) {
                        setverdict(fail, "number of packets not within normal 
parameters");
                        mtc.stop;
                }
+               if (stats[0].num_pkts_rx_err_pt > 0) {
+                       setverdict(fail, "RTP packets with wrong payload type 
received");
+                       mtc.stop;
+               }

                /* Tear down */
                f_flow_delete(RTPEM[0]);
@@ -1221,6 +1240,11 @@
                        mtc.stop;
                }

+               if (stats[0].num_pkts_rx_err_pt > 0 or 
stats[1].num_pkts_rx_err_pt > 0) {
+                       setverdict(fail, "RTP packets with wrong payload type 
received");
+                       mtc.stop;
+               }
+
                setverdict(pass);
        }

@@ -1284,6 +1308,11 @@
                        mtc.stop;
                }

+               if (stats[0].num_pkts_rx_err_pt > 0 or 
stats[1].num_pkts_rx_err_pt > 0) {
+                       setverdict(fail, "RTP packets with wrong payload type 
received");
+                       mtc.stop;
+               }
+
                setverdict(pass);
        }


--
To view, visit https://gerrit.osmocom.org/10150
To unsubscribe, or for help writing mail filters, visit 
https://gerrit.osmocom.org/settings

Gerrit-Project: osmo-ttcn3-hacks
Gerrit-Branch: master
Gerrit-MessageType: newchange
Gerrit-Change-Id: I83d4b04656a16ced624024245a2fcb7a0ad48a8a
Gerrit-Change-Number: 10150
Gerrit-PatchSet: 1
Gerrit-Owner: dexter <pma...@sysmocom.de>

Reply via email to