Add templates for BSSGP Radio Status procedure
Change-Id: I6d49eb4907c4568d88da5d6fd7962e388a3607fb
Related: SYS#5210
diff --git a/library/Osmocom_Gb_Types.ttcn b/library/Osmocom_Gb_Types.ttcn
index 3ba3fca..8d48cb1 100644
--- a/library/Osmocom_Gb_Types.ttcn
+++ b/library/Osmocom_Gb_Types.ttcn
@@ -1746,8 +1746,62 @@
}
}
+type enumerated BssgpRadioCause {
+ BSSGP_RADIO_CAUSE_CONTACT_LOST ('00'H),
+ BSSGP_RADIO_CAUSE_LINK_QUAL_INSUFF ('01'H),
+ BSSGP_RADIO_CAUSE_CELL_RESEL_ORDERED ('02'H),
+ BSSGP_RADIO_CAUSE_CELL_RESEL_PREPARE ('03'H),
+ BSSGP_RADIO_CAUSE_CELL_RESEL_FAILURE ('04'H)
+} with { variant "FIELDLENGTH(8)" };
+function ts_BSSGP_RADIO_CAUSE(template (omit) BssgpRadioCause cause) return template (omit) Radio_Cause {
+ var template (omit) Radio_Cause ret;
+ if (istemplatekind(cause, "omit")) {
+ ret := omit;
+ } else {
+ ret.iEI := '19'O;
+ ret.ext := '1'B;
+ ret.lengthIndicator := { length1 := 1 };
+ ret.radio_Cause_Value := int2oct(enum2int(valueof(cause)), 1);
+ }
+ return ret;
+}
+function tr_BSSGP_RADIO_CAUSE(template BssgpRadioCause cause) return template (present) Radio_Cause {
+ var template Radio_Cause ret;
+ ret.iEI := '19'O;
+ ret.ext := '1'B;
+ ret.lengthIndicator := { length1 := 1 };
+ if (isvalue(cause)) {
+ ret.radio_Cause_Value := int2oct(enum2int(valueof(cause)), 1);
+ } else {
+ ret.radio_Cause_Value := ?
+ }
+ return ret;
+}
+
+/* 10.3.5 */
+template (value) PDU_BSSGP
+ts_BSSGP_RADIO_STATUS(GprsTlli tlli, template (value) BssgpRadioCause cause) := {
+ pDU_BSSGP_RADIO_STATUS := {
+ bssgpPduType := '0a'O,
+ tLLI := ts_BSSGP_TLLI(tlli),
+ tMSI := omit,
+ iMSI := omit,
+ radio_Cause := ts_BSSGP_RADIO_CAUSE(cause)
+ }
+}
+template (present) PDU_BSSGP
+tr_BSSGP_RADIO_STATUS(template (present) GprsTlli tlli, template (present) BssgpRadioCause cause) := {
+ pDU_BSSGP_RADIO_STATUS := {
+ bssgpPduType := '0a'O,
+ tLLI := ts_BSSGP_TLLI(tlli),
+ tMSI := omit,
+ iMSI := omit,
+ radio_Cause := tr_BSSGP_RADIO_CAUSE(cause)
+ }
+}
+
/* PDU permitted on PTP BVC only (TS 48.018 Section 5.4.1) */