BSSMAP_Templates: Enable use for AoIP, not just E1-CIC
Change-Id: I421ade4ae1c0c19c9c2b1172cdcf8d6c4cd55205
diff --git a/bsc-nat/MSC_ConnectionHandler.ttcn b/bsc-nat/MSC_ConnectionHandler.ttcn
index 6a9a57f..3fc11e9 100644
--- a/bsc-nat/MSC_ConnectionHandler.ttcn
+++ b/bsc-nat/MSC_ConnectionHandler.ttcn
@@ -86,9 +86,9 @@
[g_state == MSC_STATE_NONE] BSSAP.receive(tr_BSSMAP_ComplL3) -> value bssap {
/* respond with ASSIGNMENT CMD */
g_state := MSC_STATE_WAIT_ASS_COMPL;
- BSSAP.send(ts_BSSMAP_AssignmentReq(0, e1_timeslot));
+ BSSAP.send(ts_BSSMAP_AssignmentReq(ts_BSSMAP_IE_CIC(0, e1_timeslot)));
}
- [g_state == MSC_STATE_WAIT_ASS_COMPL] BSSAP.receive(tr_BSSMAP_AssignmentComplete) {
+ [g_state == MSC_STATE_WAIT_ASS_COMPL] BSSAP.receive(tr_BSSMAP_AssignmentComplete(?,*)) {
/* FIXME: Send MGCP CRCX */
g_state := MSC_STATE_WAIT_CRCX_ACK;
var MgcpTransId trans_id := f_mgcp_alloc_tid();
diff --git a/bsc/BSC_Tests.ttcn b/bsc/BSC_Tests.ttcn
index faf1a6e..090ed0c 100644
--- a/bsc/BSC_Tests.ttcn
+++ b/bsc/BSC_Tests.ttcn
@@ -392,7 +392,7 @@
dt := f_est_dchan('23'O, 23, '00000000'O);
/* send assignment without AoIP IEs */
- BSSAP.send(ts_BSSAP_DATA_req(dt.sccp_conn_id, ts_BSSMAP_AssignmentReq(0, 1)));
+ BSSAP.send(ts_BSSAP_DATA_req(dt.sccp_conn_id, ts_BSSMAP_AssignmentReq(ts_BSSMAP_IE_CIC(0, 1))));
alt {
[] BSSAP.receive(tr_BSSAP_DATA_ind(dt.sccp_conn_id, tr_BSSMAP_AssignmentComplete)) {
setverdict(fail, "AoIP BSC cannot accept ASSIGNMENT without AoIP Transport IE");
diff --git a/bsc/MSC_ConnectionHandler.ttcn b/bsc/MSC_ConnectionHandler.ttcn
index 6a9a57f..8fa71fb 100644
--- a/bsc/MSC_ConnectionHandler.ttcn
+++ b/bsc/MSC_ConnectionHandler.ttcn
@@ -86,9 +86,11 @@
[g_state == MSC_STATE_NONE] BSSAP.receive(tr_BSSMAP_ComplL3) -> value bssap {
/* respond with ASSIGNMENT CMD */
g_state := MSC_STATE_WAIT_ASS_COMPL;
- BSSAP.send(ts_BSSMAP_AssignmentReq(0, e1_timeslot));
+ var BSSMAP_IE_AoIP_TransportLayerAddress tla;
+ tla := valueof(ts_BSSMAP_IE_AoIP_TLA({ipv4:='01020304'O}, 12345));
+ BSSAP.send(ts_BSSMAP_AssignmentReq(omit, tla));
}
- [g_state == MSC_STATE_WAIT_ASS_COMPL] BSSAP.receive(tr_BSSMAP_AssignmentComplete) {
+ [g_state == MSC_STATE_WAIT_ASS_COMPL] BSSAP.receive(tr_BSSMAP_AssignmentComplete(*,?)) {
/* FIXME: Send MGCP CRCX */
g_state := MSC_STATE_WAIT_CRCX_ACK;
var MgcpTransId trans_id := f_mgcp_alloc_tid();
diff --git a/library/BSSMAP_Templates.ttcn b/library/BSSMAP_Templates.ttcn
index 6e7813f..0d2db3d 100644
--- a/library/BSSMAP_Templates.ttcn
+++ b/library/BSSMAP_Templates.ttcn
@@ -256,7 +256,17 @@
cicLow := bit2oct((substr(int2bit(span, 11), 8, 3) << 5) & int2bit(ts, 5))
}
-template (value) PDU_BSSAP ts_BSSMAP_AssignmentReq(uint11_t span, uint5_t ts)
+template (value) BSSMAP_IE_AoIP_TransportLayerAddress ts_BSSMAP_IE_AoIP_TLA(BSSMAP_FIELD_IPAddress addr,
+ uint16_t udp_port) := {
+ elementIdentifier := '7C'O,
+ lengthIndicator := 0, /* overwritten */
+ ipAddress := addr,
+ uDPPortValue := udp_port
+}
+
+template PDU_BSSAP
+ts_BSSMAP_AssignmentReq(template BSSMAP_IE_CircuitIdentityCode cic := omit,
+ template BSSMAP_IE_AoIP_TransportLayerAddress aoip := omit)
modifies ts_BSSAP_BSSMAP := {
pdu := {
bssmap := {
@@ -265,7 +275,7 @@
channelType := ts_BSSMAP_IE_ChannelType,
layer3HeaderInfo := omit,
priority := omit,
- circuitIdentityCode := ts_BSSMAP_IE_CIC(span, ts),
+ circuitIdentityCode := cic,
downLinkDTX_Flag := omit,
interferenceBandToBeUsed := omit,
classmarkInformationType2 := omit,
@@ -276,7 +286,7 @@
serviceHandover := omit,
encryptionInformation := omit,
talkerPriority := omit,
- aoIPTransportLayer := omit,
+ aoIPTransportLayer := aoip,
codecList := omit,
callIdentifier := omit,
kC128 := omit,
@@ -321,7 +331,9 @@
}
}
-template (value) PDU_BSSAP ts_BSSMAP_AssignmentComplete(BSSMAP_IE_CircuitIdentityCode cic)
+template PDU_BSSAP
+ts_BSSMAP_AssignmentComplete(template BSSMAP_IE_CircuitIdentityCode cic := omit,
+ template BSSMAP_IE_AoIP_TransportLayerAddress aoip := omit)
modifies ts_BSSAP_BSSMAP := {
pdu := {
bssmap := {
@@ -336,7 +348,7 @@
speechVersion := omit,
lSAIdentifier := omit,
talkerPriority := omit,
- aoIPTransportLayer := omit,
+ aoIPTransportLayer := aoip,
speechCodec := omit,
codecList := omit,
lCLS_BSS_Status := omit
@@ -345,13 +357,15 @@
}
}
-template PDU_BSSAP tr_BSSMAP_AssignmentComplete modifies tr_BSSAP_BSSMAP := {
+template PDU_BSSAP tr_BSSMAP_AssignmentComplete(template BSSMAP_IE_CircuitIdentityCode cic := *,
+ template BSSMAP_IE_AoIP_TransportLayerAddress aoip := *)
+modifies tr_BSSAP_BSSMAP := {
pdu := {
bssmap := {
assignmentComplete := {
messageType := '02'O, /* overwritten */
rR_Cause := *,
- circuitIdentityCode := ?,
+ circuitIdentityCode := cic,
cellIdentifier := *,
chosenChannel := *,
chosenEncryptionAlgorithm := *,
@@ -359,7 +373,7 @@
speechVersion := *,
lSAIdentifier := *,
talkerPriority := *,
- aoIPTransportLayer := *,
+ aoIPTransportLayer := aoip,
speechCodec := *,
codecList := *,
lCLS_BSS_Status := *