BSSMAP_Templates: add tr_BSSMAP_IE_Cause and tr_BSSMAP_SAPInReject
Change-Id: Ibf80419df4d198a1aa6f52087bd9356231de65f5
Related: SYS#5047, OS#4728
diff --git a/library/BSSMAP_Templates.ttcn b/library/BSSMAP_Templates.ttcn
index 2496a1b..694e3e8 100644
--- a/library/BSSMAP_Templates.ttcn
+++ b/library/BSSMAP_Templates.ttcn
@@ -148,6 +148,22 @@
extensionCauseValue := '0'B,
spare1 := omit
}
+template BSSMAP_IE_Cause tr_BSSMAP_IE_Cause(template (present) myBSSMAP_Cause val) := {
+ elementIdentifier := '04'O,
+ lengthIndicator := ?,
+ causeValue := f_tr_causeValue(val),
+ extensionCauseValue := ?,
+ spare1 := *
+}
+private function f_tr_causeValue(template (present) myBSSMAP_Cause val)
+return template (present) BIT7 {
+ if (istemplatekind(val, "?")) {
+ return ?;
+ } else {
+ var integer int_val := enum2int(valueof(val));
+ return int2bit(valueof(int_val), 7);
+ }
+}
template (value) BSSMAP_IE_SpeechVersion ts_BSSMAP_IE_SpeechVersion(SpeechVersion val) := {
elementIdentifier := '40'O,
@@ -1625,6 +1641,34 @@
}
}
+template PDU_BSSAP tr_BSSMAP_SAPInReject(template (present) GsmSapi sapi := ?,
+ template BSSMAP_IE_Cause cause := ?)
+modifies tr_BSSAP_BSSMAP := {
+ pdu := {
+ bssmap := {
+ sAPInReject := {
+ messageType := '25'O,
+ dLCI := {
+ elementIdentifier := '18'O,
+ sapiValue := f_tr_SAPI(sapi),
+ spare := ?,
+ c1 := ?, c2 := ?
+ },
+ cause := cause
+ }
+ }
+ }
+}
+
+private function f_tr_SAPI(template (present) GsmSapi sapi)
+return template (present) BIT3 {
+ if (istemplatekind(sapi, "?")) {
+ return ?;
+ } else {
+ return int2bit(valueof(sapi), 3);
+ }
+}
+
} with { encode "RAW" };