gbproxy: Execute TC_load_sharing_dl() for each SGSN in pool

Change-Id: I4ad822d3bbf5eb6181f6811c3b2267a50bb533a4
Related: OS#4951
diff --git a/gbproxy/GBProxy_Tests.ttcn b/gbproxy/GBProxy_Tests.ttcn
index 4b7d246..f0175c2 100644
--- a/gbproxy/GBProxy_Tests.ttcn
+++ b/gbproxy/GBProxy_Tests.ttcn
@@ -1177,16 +1177,15 @@
 		var octetstring payload := f_rnd_octstring(i);
 		var template (value) PDU_BSSGP pdu_tx :=
 			ts_BSSGP_DL_UD(g_pars.tlli, payload, omit, ts_BSSGP_IMSI(g_pars.imsi));
-		SGSN_PTP[0].send(pdu_tx);
+		SGSN_PTP[g_pars.sgsn_idx].send(pdu_tx);
 	}
 	setverdict(pass);
 }
-testcase TC_load_sharing_dl() runs on test_CT_NS
+
+private function f_TC_load_sharing_dl(integer sgsn_idx) runs on test_CT_NS
 {
 	const integer num_ue := 10;
 	var BSSGP_ConnHdlr vc_conn[num_ue];
-	f_init();
-
 	/* all BVC are now fully brought up.  We disconnect BSSGP from NS on the BSS
 	 * side so we get the raw NsUnitdataIndication and hence observe different
 	 * NSVCI */
@@ -1199,7 +1198,8 @@
 
 	/* start parallel components generating DL-UNITDATA from the SGSN side */
 	for (var integer i:= 0; i < num_ue; i := i+1) {
-		vc_conn[i] := f_start_handler(refers(f_TC_dl_ud_unidir), testcasename(), g_pcu, g_sgsn, 5+i);
+		vc_conn[i] := f_start_handler(refers(f_TC_dl_ud_unidir), testcasename(), g_pcu, g_sgsn,
+						5+i, 30.0, sgsn_idx);
 	}
 
 	/* now start counting all the messages that were queued before */
@@ -1227,6 +1227,15 @@
 			setverdict(fail, "Data not shared over all NSVC");
 		}
 	}
+}
+
+testcase TC_load_sharing_dl() runs on test_CT_NS
+{
+	var integer sgsn_idx, nri_idx;
+	f_init();
+	for (sgsn_idx:=0; sgsn_idx < NUM_SGSN; sgsn_idx:=sgsn_idx+1) {
+		f_TC_load_sharing_dl(sgsn_idx);
+	}
 	setverdict(pass);
 }
 private altstep as_NsUdiCount(integer nsvc_idx, inout ro_integer roi) runs on test_CT_NS {