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
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);
 	}