gbproxy: Introduce TC_overload

When the SGSN is sending an OVERLOAD message, we expect that to
propagate down to every BSS on the other side.

Change-Id: Ic61fabd9c633bcb3f256fe7aa5834e66cc66a4fb
diff --git a/gbproxy/GBProxy_Tests.ttcn b/gbproxy/GBProxy_Tests.ttcn
index 938dcc1..b708fa0 100644
--- a/gbproxy/GBProxy_Tests.ttcn
+++ b/gbproxy/GBProxy_Tests.ttcn
@@ -1905,6 +1905,35 @@
 	f_cleanup();
 }
 
+/* Send an OVERLOAD from SGSN side and expect it to show up on each PCU (SIG BVC) */
+testcase TC_overload() runs on GlobalTest_CT
+{
+	f_init();
+	f_global_init();
+
+	var template (value) PDU_BSSGP pdu_tx := ts_OVERLOAD('1'B);
+	var template (present) PDU_BSSGP exp_rx := tr_OVERLOAD('1'B);
+
+	var ro_default defaults := {};
+	for (var integer i := 0; i < lengthof(g_pcu); i := i+1) {
+		activate(as_bssgp_g_pcu_count(i, exp_rx, g_roi));
+	}
+	G_SGSN[0].send(pdu_tx);
+	f_sleep(2.0);
+	for (var integer i := 0; i < lengthof(defaults); i := i+1) {
+		deactivate(defaults[i]);
+	}
+
+	for (var integer i := 0; i < lengthof(g_pcu); i := i+1) {
+		if (not ro_integer_contains(g_roi, i)) {
+			setverdict(fail, "Failed to receive OVERLOAD on PCU index ", i);
+		}
+	}
+	setverdict(pass);
+
+	f_cleanup();
+}
+
 private function f_block_ptp_bvc_from_pcu(integer pcu_idx, integer bvc_idx) runs on test_CT
 {
 	var BSSGP_BVC_CT bvc_ct := g_pcu[pcu_idx].vc_BSSGP_BVC[bvc_idx];
@@ -2138,6 +2167,7 @@
 	execute( TC_resume() );
 	execute( TC_trace() );
 	execute( TC_llc_discarded() );
+	execute( TC_overload() );
 	execute( TC_bvc_block_ptp() );
 	execute( TC_bvc_unblock_ptp() );
 	execute( TC_bvc_reset_ptp_from_bss() );