L3_Templates: Add templates related to Supplementaryt Services
Change-Id: I919fa542a2e037b3fcf8cd5b0b9d7599b8c09070
diff --git a/library/L3_Templates.ttcn b/library/L3_Templates.ttcn
index 824dbf2..593c990 100644
--- a/library/L3_Templates.ttcn
+++ b/library/L3_Templates.ttcn
@@ -1295,6 +1295,214 @@
}
/***********************************************************************
+ * Supplementary Services
+ ***********************************************************************/
+
+private template (value) Facility_TLV ts_FacTLV(OCTN facility) := {
+ elementIdentifier := '1C'O,
+ lengthIndicator := lengthof(facility),
+ facilityInformation := facility
+}
+private template Facility_TLV tr_FacTLV(template OCTN facility) := {
+ elementIdentifier := '1C'O,
+ lengthIndicator := ?,
+ facilityInformation := facility
+}
+
+private template (value) Facility_LV ts_FacLV(OCTN facility) := {
+ lengthIndicator := lengthof(facility),
+ facilityInformation := facility
+}
+private template Facility_LV tr_FacLV(template OCTN facility) := {
+ lengthIndicator := ?,
+ facilityInformation := facility
+}
+
+template (value) PDU_ML3_MS_NW ts_ML3_MO_SS_REGISTER(
+ uint3_t tid, BIT1 ti_flag,
+ OCTN facility,
+ template (omit) SS_VersionIndicator ss_ver := omit
+) := {
+ discriminator := '1011'B,
+ tiOrSkip := {
+ transactionId := {
+ tio := int2bit(tid, 3),
+ tiFlag := ti_flag,
+ tIExtension := omit
+ }
+ },
+ msgs := {
+ ss := {
+ register := {
+ messageType := '111011'B,
+ nsd := '00'B,
+ facility := ts_FacTLV(facility),
+ ss_version := ss_ver
+ }
+ }
+ }
+}
+template PDU_ML3_MS_NW tr_ML3_MO_SS_REGISTER(
+ template uint3_t tid, template BIT1 ti_flag,
+ template OCTN facility,
+ template SS_VersionIndicator ss_ver := omit
+) := {
+ discriminator := '1011'B,
+ tiOrSkip := {
+ transactionId := {
+ tio := f_tid_or_wc(tid),
+ tiFlag := ti_flag,
+ tIExtension := omit
+ }
+ },
+ msgs := {
+ ss := {
+ register := {
+ messageType := '111011'B,
+ nsd := '00'B,
+ facility := tr_FacTLV(facility),
+ ss_version := ss_ver
+ }
+ }
+ }
+}
+
+template (value) PDU_ML3_NW_MS ts_ML3_MT_SS_REGISTER(
+ uint3_t tid, BIT1 ti_flag,
+ OCTN facility
+) := {
+ discriminator := '1011'B,
+ tiOrSkip := {
+ transactionId := {
+ tio := int2bit(tid, 3),
+ tiFlag := ti_flag,
+ tIExtension := omit
+ }
+ },
+ msgs := {
+ ss := {
+ register := {
+ messageType := '111011'B,
+ nsd := '00'B,
+ facility := ts_FacTLV(facility)
+ }
+ }
+ }
+}
+template PDU_ML3_NW_MS tr_ML3_MT_SS_REGISTER(
+ template uint3_t tid, template BIT1 ti_flag,
+ template OCTN facility
+) := {
+ discriminator := '1011'B,
+ tiOrSkip := {
+ transactionId := {
+ tio := f_tid_or_wc(tid),
+ tiFlag := ti_flag,
+ tIExtension := omit
+ }
+ },
+ msgs := {
+ ss := {
+ register := {
+ messageType := '111011'B,
+ nsd := '00'B,
+ facility := tr_FacTLV(facility)
+ }
+ }
+ }
+}
+
+template (value) PDU_ML3_MS_NW ts_ML3_MO_SS_FACILITY(
+ uint3_t tid, BIT1 ti_flag,
+ OCTN facility
+) := {
+ discriminator := '1011'B,
+ tiOrSkip := {
+ transactionId := {
+ tio := int2bit(tid, 3),
+ tiFlag := ti_flag,
+ tIExtension := omit
+ }
+ },
+ msgs := {
+ ss := {
+ facility := {
+ messageType := '111010'B,
+ nsd := '00'B,
+ facility := ts_FacLV(facility)
+ }
+ }
+ }
+}
+template PDU_ML3_MS_NW tr_ML3_MO_SS_FACILITY(
+ template uint3_t tid, template BIT1 ti_flag,
+ template OCTN facility
+) := {
+ discriminator := '1011'B,
+ tiOrSkip := {
+ transactionId := {
+ tio := f_tid_or_wc(tid),
+ tiFlag := ti_flag,
+ tIExtension := omit
+ }
+ },
+ msgs := {
+ ss := {
+ facility := {
+ messageType := '111010'B,
+ nsd := '00'B,
+ facility := tr_FacLV(facility)
+ }
+ }
+ }
+}
+
+template (value) PDU_ML3_NW_MS ts_ML3_MT_SS_FACILITY(
+ uint3_t tid, BIT1 ti_flag,
+ OCTN facility
+) := {
+ discriminator := '1011'B,
+ tiOrSkip := {
+ transactionId := {
+ tio := int2bit(tid, 3),
+ tiFlag := ti_flag,
+ tIExtension := omit
+ }
+ },
+ msgs := {
+ ss := {
+ facility := {
+ messageType := '111010'B,
+ nsd := '00'B,
+ facility := ts_FacLV(facility)
+ }
+ }
+ }
+}
+template PDU_ML3_NW_MS tr_ML3_MT_SS_FACILITY(
+ template uint3_t tid, template BIT1 ti_flag,
+ template OCTN facility
+) := {
+ discriminator := '1011'B,
+ tiOrSkip := {
+ transactionId := {
+ tio := f_tid_or_wc(tid),
+ tiFlag := ti_flag,
+ tIExtension := omit
+ }
+ },
+ msgs := {
+ ss := {
+ facility := {
+ messageType := '111010'B,
+ nsd := '00'B,
+ facility := tr_FacLV(facility)
+ }
+ }
+ }
+}
+
+/***********************************************************************
* GPRS Mobility Management
***********************************************************************/