bsc: Use different CIC in concurrent calls from same MSC

The MSC (our TTCN3 emulation) expects to assign unique CIC for each
concurrent call, so that the BSC can properly differentiate and do the
proper connection setup.

Change-Id: Iac09590693bf39ccc90bf2b0645ca672a4787c95
diff --git a/bsc/BSC_Tests.ttcn b/bsc/BSC_Tests.ttcn
index f2844e1..b4d6e02 100644
--- a/bsc/BSC_Tests.ttcn
+++ b/bsc/BSC_Tests.ttcn
@@ -1726,9 +1726,9 @@
 }
 
 /* generate an assignment request for either AoIP or SCCPlite */
-function f_gen_ass_req(boolean osmux_enabled := false, integer bssap_idx := 0, charstring aoip_tla := "1.2.3.4") return PDU_BSSAP {
+function f_gen_ass_req(boolean osmux_enabled := false, uint8_t ass_cid := 0, integer bssap_idx := 0, charstring aoip_tla := "1.2.3.4") return PDU_BSSAP {
 	var PDU_BSSAP ass_cmd;
-	var BSSMAP_IE_Osmo_OsmuxCID osmux_cid := valueof(ts_OsmuxCID(0));
+	var BSSMAP_IE_Osmo_OsmuxCID osmux_cid := valueof(ts_OsmuxCID(ass_cid));
 	if (mp_bssap_cfg[bssap_idx].transport == BSSAP_TRANSPORT_AoIP) {
 		var BSSMAP_IE_AoIP_TransportLayerAddress tla :=
 			valueof(f_ts_BSSMAP_IE_AoIP_TLA(aoip_tla, 2342));
@@ -1738,7 +1738,9 @@
 			ass_cmd := valueof(ts_BSSMAP_AssignmentReq(omit, tla));
 		}
 	} else {
-		var BSSMAP_IE_CircuitIdentityCode cic := valueof(ts_BSSMAP_IE_CIC(0,1));
+		var BIT8 ass_cid_bit := int2bit(ass_cid, 8);
+		var BSSMAP_IE_CircuitIdentityCode cic := valueof(ts_BSSMAP_IE_CIC(bit2int(ass_cid_bit >> 5),
+										  bit2int(ass_cid_bit and4b '00011111'B)));
 		ass_cmd := valueof(ts_BSSMAP_AssignmentReq(cic, omit));
 	}
 	return ass_cmd;
@@ -12194,7 +12196,7 @@
 private const charstring COORD_CMD_ESTABLISHED := "COORD_CMD_ESTABLISHED";
 private function f_TC_mgwpool_call_seq_1(charstring id) runs on MSC_ConnHdlr {
 	var template PDU_BSSAP exp_compl := f_gen_exp_compl();
-	var PDU_BSSAP ass_cmd := f_gen_ass_req();
+	var PDU_BSSAP ass_cmd := f_gen_ass_req(ass_cid := 0);
 	ass_cmd.pdu.bssmap.assignmentRequest.channelType := valueof(ts_BSSMAP_IE_ChannelType);
 	ass_cmd.pdu.bssmap.assignmentRequest.codecList := valueof(ts_BSSMAP_IE_CodecList({ts_CodecFR}));
 
@@ -12207,7 +12209,7 @@
 }
 private function f_TC_mgwpool_call_seq_2(charstring id) runs on MSC_ConnHdlr {
 	var template PDU_BSSAP exp_compl := f_gen_exp_compl();
-	var PDU_BSSAP ass_cmd := f_gen_ass_req();
+	var PDU_BSSAP ass_cmd := f_gen_ass_req(ass_cid := 1);
 	ass_cmd.pdu.bssmap.assignmentRequest.channelType := valueof(ts_BSSMAP_IE_ChannelType);
 	ass_cmd.pdu.bssmap.assignmentRequest.codecList := valueof(ts_BSSMAP_IE_CodecList({ts_CodecFR}));