RANAP_Templates: add sending of RAB_FailedList to tx_RANAP_RabAssResp
The templates ts_RANAP_RabAssResp and tr_RANAP_RabAssResp miss the
option to send a RAB_FailedList. This is needed to simulate a RAB
assignment that fails at the HNB
Change-Id: I95c7c51587981d9f478b9d31fcde139f228fa87f
Related: OS#5152
diff --git a/library/ranap/RANAP_Templates.ttcn b/library/ranap/RANAP_Templates.ttcn
index 0aa1fad..6b4699e 100644
--- a/library/ranap/RANAP_Templates.ttcn
+++ b/library/ranap/RANAP_Templates.ttcn
@@ -1331,6 +1331,36 @@
}
} }
+template (value) RAB_FailedList ts_RAB_FL(template (value) RAB_ID rab_id,
+ template (value) Cause cause) := { {
+ {
+ id := id_RAB_FailedItem,
+ criticality := ignore,
+ value_ := {
+ rAB_FailedItem := {
+ rAB_ID := rab_id,
+ cause := cause,
+ iE_Extensions := omit
+ }
+ }
+ }
+} }
+
+template RAB_FailedList tr_RAB_FL(template RAB_ID rab_id,
+ template Cause cause) := { {
+ {
+ id := id_RAB_FailedItem,
+ criticality := ignore,
+ value_ := {
+ rAB_FailedItem := {
+ rAB_ID := rab_id,
+ cause := cause,
+ iE_Extensions := *
+ }
+ }
+ }
+} }
+
template (value) RANAP_PDU
ts_RANAP_RabAssReq(template (value) RAB_SetupOrModifyList rab_sml,
template (omit) RAB_AssignmentRequest.protocolExtensions exts := omit) := {
@@ -1376,58 +1406,130 @@
}
}
+function
+ts_RANAP_RabAssResp(template (omit) RAB_SetupOrModifiedList rab_sml := omit,
+ template (omit) RAB_FailedList rab_fl := omit,
+ template (omit) RAB_AssignmentResponse.protocolExtensions exts := omit) return template RANAP_PDU {
+ var template RANAP_PDU ret;
+ var template RAB_AssignmentResponse.protocolIEs protocolIEs := {};
+ var integer ie_pos := 0;
-template (value) RANAP_PDU
-ts_RANAP_RabAssResp(template (value) RAB_SetupOrModifiedList rab_sml,
- template (omit) RAB_AssignmentResponse.protocolExtensions exts := omit) := {
- outcome := {
+ var template RAB_AssignmentResponse.protocolIEs protocolIEs_rab_sml;
+ var template RAB_AssignmentResponse.protocolIEs protocolIEs_rab_fl;
+
+ /* RAB-SetupOrModifiedList */
+ if (istemplatekind(rab_sml, "value")) {
+ protocolIEs_rab_sml := {
+ {
+ id := id_RAB_SetupOrModifiedList,
+ criticality := ignore,
+ value_ := {
+ rAB_SetupOrModifiedList := rab_sml
+ }
+ }
+ }
+
+ protocolIEs[ie_pos] := protocolIEs_rab_sml[0];
+ ie_pos := ie_pos + 1;
+ }
+
+ /* TODO: RAB-ReleasedList */
+ /* TODO: RAB-QueuedList */
+
+ /* RAB-FailedList */
+ if (istemplatekind(rab_fl, "value")) {
+ protocolIEs_rab_fl := {
+ {
+ id := id_RAB_FailedList,
+ criticality := ignore,
+ value_ := {
+ rAB_FailedList := rab_fl
+ }
+ }
+ }
+
+ protocolIEs[ie_pos] := protocolIEs_rab_fl[0];
+ ie_pos := ie_pos + 1;
+ }
+
+ /* TODO: RAB-ReleaseFailedList */
+
+ ret.outcome := {
procedureCode := id_RAB_Assignment,
criticality := reject,
value_ := {
rAB_AssignmentResponse := {
- protocolIEs := {
- {
- id := id_RAB_SetupOrModifiedList,
- criticality := ignore,
- value_ := {
- rAB_SetupOrModifiedList := rab_sml
- }
- }
- /* RAB-ReleasedList */
- /* RAB-QueuedList */
- /* RAB-FailedList */
- /* RAB-ReleaseFailedList */
- },
+ protocolIEs := protocolIEs,
protocolExtensions := exts
}
}
}
+
+ return ret;
}
-template RANAP_PDU
-tr_RANAP_RabAssResp(template RAB_SetupOrModifiedList rab_sml,
- template RAB_AssignmentResponse.protocolExtensions exts := *) := {
- outcome := {
+
+function
+tr_RANAP_RabAssResp(template RAB_SetupOrModifiedList rab_sml := omit,
+ template RAB_FailedList rab_fl := omit,
+ template RAB_AssignmentResponse.protocolExtensions exts := *) return template RANAP_PDU {
+ var template RANAP_PDU ret;
+ var template RAB_AssignmentResponse.protocolIEs protocolIEs := {};
+ var integer ie_pos := 0;
+
+ var template RAB_AssignmentResponse.protocolIEs protocolIEs_rab_sml;
+ var template RAB_AssignmentResponse.protocolIEs protocolIEs_rab_fl;
+
+ /* RAB-SetupOrModifiedList */
+ if (not istemplatekind(rab_sml, "omit")) {
+ protocolIEs_rab_sml := {
+ {
+ id := id_RAB_SetupOrModifiedList,
+ criticality := ignore,
+ value_ := {
+ rAB_SetupOrModifiedList := rab_sml
+ }
+ }
+ }
+
+ protocolIEs[ie_pos] := protocolIEs_rab_sml[0];
+ ie_pos := ie_pos + 1;
+ }
+
+ /* TODO: RAB-ReleasedList */
+ /* TODO: RAB-QueuedList */
+
+ /* RAB-FailedList */
+ if (not istemplatekind(rab_fl, "omit")) {
+ protocolIEs_rab_fl := {
+ {
+ id := id_RAB_FailedList,
+ criticality := ignore,
+ value_ := {
+ rAB_FailedList := rab_fl
+ }
+ }
+ }
+
+ protocolIEs[ie_pos] := protocolIEs_rab_fl[0];
+ ie_pos := ie_pos + 1;
+ }
+
+ /* TODO: RAB-ReleaseFailedList */
+
+ protocolIEs[ie_pos] := *;
+
+ ret.outcome := {
procedureCode := id_RAB_Assignment,
criticality := reject,
value_ := {
rAB_AssignmentResponse := {
- protocolIEs := {
- {
- id := id_RAB_SetupOrModifiedList,
- criticality := ignore,
- value_ := {
- rAB_SetupOrModifiedList := rab_sml
- }
- }, *
- /* RAB-ReleasedList */
- /* RAB-QueuedList */
- /* RAB-FailedList */
- /* RAB-ReleaseFailedList */
- },
+ protocolIEs := protocolIEs,
protocolExtensions := exts
}
}
}
+
+ return ret;
}
template (value) RAB_ReleaseList ts_RAB_RL(template (value) RAB_ID rab_id,
@@ -1506,7 +1608,6 @@
}
}
-
/*****************************************************************************************************
*
*****************************************************************************************************/