Osmocom_Gb_Types: Fix tons of template restriction warnings
Change-Id: I3da153ce5e83b231501e74b958fcac9f10c00849
diff --git a/library/Osmocom_Gb_Types.ttcn b/library/Osmocom_Gb_Types.ttcn
index 82f2aca..687a073 100644
--- a/library/Osmocom_Gb_Types.ttcn
+++ b/library/Osmocom_Gb_Types.ttcn
@@ -816,7 +816,7 @@
BSSGP_CAUSE_NOT_ALL_REQUESTED_PFC_CREATED ('3c'H)
} with { variant "FIELDLENGTH(8)" };
- private function t_FLUSH_ACTION(template OCT1 act)
+ private function tr_FLUSH_ACTION(template OCT1 act)
return template Flush_Action {
var template Flush_Action r;
if (istemplatekind(act, "omit")) {
@@ -835,7 +835,16 @@
return r;
}
}
- private function t_NO_OCT_AFF(template integer oct_aff)
+ template (value) Flush_Action ts_FLUSH_ACTION(template (value) OCT1 act) := {
+ iEI := '0C'O,
+ ext := '1'B,
+ lengthIndicator := {
+ length1 := 1
+ },
+ actionValue := act
+ }
+
+ private function tr_NO_OCT_AFF(template integer oct_aff)
return template Number_of_octets_affected {
var template Number_of_octets_affected r;
if (istemplatekind(oct_aff, "omit")) {
@@ -854,8 +863,16 @@
return r;
}
}
+ template (value) Number_of_octets_affected ts_NO_OCT_AFF(template (value) integer oct_aff) := {
+ iEI := '25'O,
+ ext := '1'B,
+ lengthIndicator := {
+ length1 := 3
+ },
+ number_of_octets_transfered_or_deleted := int2oct(valueof(oct_aff), 3)
+ }
- private function t_LLC_FRAMES_DISCARDED(template integer frames_discarded)
+ private function tr_LLC_FRAMES_DISCARDED(template integer frames_discarded)
return template LLC_Frames_Discarded {
var template LLC_Frames_Discarded r;
if (istemplatekind(frames_discarded, "omit")) {
@@ -874,8 +891,17 @@
return r;
}
}
+ template (value) LLC_Frames_Discarded ts_LLC_FRAMES_DISCARDED(template (value) integer frames_discarded) := {
+ iEI := '0F'O,
+ ext := '1'B,
+ lengthIndicator := {
+ length1 := 1
+ },
+ number_of_frames_discarded := int2hex(valueof(frames_discarded), 2)
+ }
- private function t_BSSGP_BVCI(template BssgpBvci bvci)
+
+ private function tr_BSSGP_BVCI(template BssgpBvci bvci)
return template BVCI {
var template BVCI r;
if (istemplatekind(bvci, "omit")) {
@@ -894,7 +920,24 @@
return r;
}
}
- private function t_BSSGP_NSEI(template Nsei nsei)
+ template (value) BVCI ts_BSSGP_BVCI(template (value) BssgpBvci bvci) := {
+ iEI := '04'O,
+ ext := '1'B,
+ lengthIndicator := {
+ length1 := 2
+ },
+ unstructured_value := int2oct(valueof(bvci), 2)
+ }
+ private function f_ts_BSSGP_BVCI(template (omit) BssgpBvci bvci)
+ return template (omit) BVCI {
+ if (istemplatekind(bvci, "omit")) {
+ return omit;
+ } else {
+ return ts_BSSGP_BVCI(valueof(bvci));
+ }
+ }
+
+ private function t_BSSGP_NSEI(template Nsei nsei)
return template NSEI_BSSGP {
var template NSEI_BSSGP r;
if (istemplatekind(nsei, "omit")) {
@@ -913,6 +956,22 @@
return r;
}
}
+ template (value) NSEI_BSSGP ts_BSSGP_NSEI(template (value) Nsei nsei) := {
+ iEI:= '3E'O,
+ ext := '1'B,
+ lengthIndicator := {
+ length1 := 2
+ },
+ nSEI := int2oct(valueof(nsei), 2)
+ }
+ private function f_ts_BSSGP_NSEI(template (omit) Nsei nsei)
+ return template (omit) NSEI_BSSGP {
+ if (istemplatekind(nsei, "omit")) {
+ return omit;
+ } else {
+ return ts_BSSGP_NSEI(valueof(nsei));
+ }
+ }
template (value) TLLI_BSSGP ts_BSSGP_TLLI(template (value) GprsTlli tlli) := {
iEI := '1F'O,
@@ -922,7 +981,7 @@
},
tLLI_Value := tlli
}
- template TLLI_BSSGP tr_BSSGP_TLLI(template GprsTlli tlli) := {
+ template (present) TLLI_BSSGP tr_BSSGP_TLLI(template (present) GprsTlli tlli) := {
iEI := '1F'O,
ext := '1'B,
lengthIndicator := {
@@ -964,7 +1023,7 @@
suspend_Reference_Number_value := susp_ref
}
- template IMSI_BSSGP tr_BSSGP_IMSI(template hexstring imsi) := {
+ template (present) IMSI_BSSGP tr_BSSGP_IMSI(template (present) hexstring imsi) := {
iEI := '0D'O,
ext := '1'B,
lengthIndicator := ?,
@@ -973,7 +1032,7 @@
digits := imsi
}
- template IMSI_BSSGP ts_BSSGP_IMSI(hexstring imsi) := {
+ template (value) IMSI_BSSGP ts_BSSGP_IMSI(hexstring imsi) := {
iEI := '0D'O,
ext := '1'B,
lengthIndicator := { length1 := 0 /* overwritten */ },
@@ -1066,7 +1125,7 @@
}
return ret;
}
- function t_BSSGP_CAUSE(template BssgpCause cause) return template Cause_BSSGP {
+ function tr_BSSGP_CAUSE(template BssgpCause cause) return template Cause_BSSGP {
var template Cause_BSSGP ret;
ret.iEI := '07'O;
ret.ext := '1'B;
@@ -1079,7 +1138,7 @@
return ret;
}
- function t_BSSGP_IE_CellId(template BssgpCellId cid) return template Cell_Identifier {
+ function tr_BSSGP_IE_CellId(template BssgpCellId cid) return template Cell_Identifier {
var template Cell_Identifier ret := {
iEI := '08'O,
ext := '1'B,
@@ -1122,6 +1181,27 @@
}
return ret;
}
+ template (value) Cell_Identifier ts_BSSGP_IE_CellId(template (value) BssgpCellId cid) := {
+ iEI := '08'O,
+ ext := '1'B,
+ lengthIndicator := { length1 := 8 },
+ mccDigit1 := cid.ra_id.lai.mcc_mnc[0],
+ mccDigit2 := cid.ra_id.lai.mcc_mnc[1],
+ mccDigit3 := cid.ra_id.lai.mcc_mnc[2],
+ mncDigit3 := cid.ra_id.lai.mcc_mnc[3],
+ mncDigit1 := cid.ra_id.lai.mcc_mnc[4],
+ mncDigit2 := cid.ra_id.lai.mcc_mnc[5],
+ lac := int2oct(valueof(cid.ra_id.lai.lac), 2),
+ rac := int2oct(valueof(cid.ra_id.rac), 1),
+ cI_value := int2oct(valueof(cid.cell_id), 2)
+ }
+ function f_ts_BSSGP_IE_CellId(template (omit) BssgpCellId cid) return template (omit) Cell_Identifier {
+ if (istemplatekind(cid, "omit")) {
+ return omit;
+ } else {
+ return ts_BSSGP_IE_CellId(valueof(cid));
+ }
+ }
template (value) Tag ts_BSSGP_IE_Tag(OCT1 tag) := {
iEI := '1E'O,
@@ -1161,12 +1241,12 @@
/* 10.4.12 */
template PDU_BSSGP ts_BVC_RESET(BssgpCause cause, BssgpBvci bvci,
- template BssgpCellId cell_id) := {
+ template (omit) BssgpCellId cell_id) := {
pDU_BSSGP_BVC_RESET := {
bssgpPduType := '22'O,
- bVCI := t_BSSGP_BVCI(bvci),
+ bVCI := ts_BSSGP_BVCI(bvci),
cause := ts_BSSGP_CAUSE(cause),
- cell_Identifier := t_BSSGP_IE_CellId(cell_id),
+ cell_Identifier := f_ts_BSSGP_IE_CellId(cell_id),
feature_bitmap := omit,
extended_Feature_Bitmap := omit
}
@@ -1175,20 +1255,20 @@
template BssgpCellId cell_id) := {
pDU_BSSGP_BVC_RESET := {
bssgpPduType := '22'O,
- bVCI := t_BSSGP_BVCI(bvci),
- cause := t_BSSGP_CAUSE(cause),
- cell_Identifier := t_BSSGP_IE_CellId(cell_id),
+ bVCI := tr_BSSGP_BVCI(bvci),
+ cause := tr_BSSGP_CAUSE(cause),
+ cell_Identifier := tr_BSSGP_IE_CellId(cell_id),
feature_bitmap := *,
extended_Feature_Bitmap := *
}
}
/* 10.4.13 */
- template PDU_BSSGP ts_BVC_RESET_ACK(BssgpBvci bvci, template BssgpCellId cell_id) := {
+ template PDU_BSSGP ts_BVC_RESET_ACK(BssgpBvci bvci, template (omit) BssgpCellId cell_id) := {
pDU_BSSGP_BVC_RESET_ACK := {
bssgpPduType := '23'O,
- bVCI := t_BSSGP_BVCI(bvci),
- cell_Identifier := t_BSSGP_IE_CellId(cell_id),
+ bVCI := ts_BSSGP_BVCI(bvci),
+ cell_Identifier := f_ts_BSSGP_IE_CellId(cell_id),
feature_bitmap := omit,
extended_Feature_Bitmap := omit
}
@@ -1196,8 +1276,8 @@
template PDU_BSSGP tr_BVC_RESET_ACK(template BssgpBvci bvci, template BssgpCellId cell_id) := {
pDU_BSSGP_BVC_RESET_ACK := {
bssgpPduType := '23'O,
- bVCI := t_BSSGP_BVCI(bvci),
- cell_Identifier := t_BSSGP_IE_CellId(cell_id),
+ bVCI := tr_BSSGP_BVCI(bvci),
+ cell_Identifier := tr_BSSGP_IE_CellId(cell_id),
feature_bitmap := *,
extended_Feature_Bitmap := *
}
@@ -1205,40 +1285,67 @@
/* 10.4.10 */
- template PDU_BSSGP t_BVC_UNBLOCK(template BssgpBvci bvci) := {
+ template (present) PDU_BSSGP tr_BVC_UNBLOCK(template (present) BssgpBvci bvci) := {
pDU_BSSGP_BVC_UNBLOCK := {
bssgpPduType := '24'O,
- bVCI := t_BSSGP_BVCI(bvci)
+ bVCI := tr_BSSGP_BVCI(bvci)
+ }
+ }
+ template (value) PDU_BSSGP ts_BVC_UNBLOCK(template (value) BssgpBvci bvci) := {
+ pDU_BSSGP_BVC_UNBLOCK := {
+ bssgpPduType := '24'O,
+ bVCI := ts_BSSGP_BVCI(bvci)
}
}
/* 10.4.11 */
- template PDU_BSSGP t_BVC_UNBLOCK_ACK(template BssgpBvci bvci) := {
+ template (present) PDU_BSSGP tr_BVC_UNBLOCK_ACK(template (present) BssgpBvci bvci) := {
pDU_BSSGP_BVC_UNBLOCK_ACK := {
bssgpPduType := '25'O,
- bVCI := t_BSSGP_BVCI(bvci)
+ bVCI := tr_BSSGP_BVCI(bvci)
+ }
+ }
+ template (value) PDU_BSSGP ts_BVC_UNBLOCK_ACK(template (value) BssgpBvci bvci) := {
+ pDU_BSSGP_BVC_UNBLOCK_ACK := {
+ bssgpPduType := '25'O,
+ bVCI := ts_BSSGP_BVCI(bvci)
}
}
/* 10.4.8 */
- template PDU_BSSGP t_BVC_BLOCK(template BssgpBvci bvci, template BssgpCause cause) := {
+ template (present) PDU_BSSGP tr_BVC_BLOCK(template (present) BssgpBvci bvci,
+ template (present) BssgpCause cause) := {
pDU_BSSGP_BVC_BLOCK := {
bssgpPduType := '20'O,
- bVCI := t_BSSGP_BVCI(bvci),
- cause := t_BSSGP_CAUSE(cause)
+ bVCI := tr_BSSGP_BVCI(bvci),
+ cause := tr_BSSGP_CAUSE(cause)
+ }
+ }
+ template (value) PDU_BSSGP ts_BVC_BLOCK(template (value) BssgpBvci bvci,
+ template (value) BssgpCause cause) := {
+ pDU_BSSGP_BVC_BLOCK := {
+ bssgpPduType := '20'O,
+ bVCI := ts_BSSGP_BVCI(bvci),
+ cause := ts_BSSGP_CAUSE(cause)
}
}
/* 10.4.9 */
- template PDU_BSSGP t_BVC_BLOCK_ACK(template BssgpBvci bvci) := {
+ template (present) PDU_BSSGP tr_BVC_BLOCK_ACK(template (present) BssgpBvci bvci) := {
pDU_BSSGP_BVC_BLOCK_ACK := {
bssgpPduType := '21'O,
- bVCI := t_BSSGP_BVCI(bvci)
+ bVCI := tr_BSSGP_BVCI(bvci)
+ }
+ }
+ template (value) PDU_BSSGP ts_BVC_BLOCK_ACK(template (value) BssgpBvci bvci) := {
+ pDU_BSSGP_BVC_BLOCK_ACK := {
+ bssgpPduType := '21'O,
+ bVCI := ts_BSSGP_BVCI(bvci)
}
}
/* 10.4.4 */
- template PDU_BSSGP t_BVC_FC_BVC(uint16_t bmax, uint16_t bucket_leak_rate,
+ template (value) PDU_BSSGP ts_BVC_FC_BVC(uint16_t bmax, uint16_t bucket_leak_rate,
uint16_t bmax_default_ms, uint16_t r_default_ms, OCT1 tag) := {
pDU_BSSGP_FLOW_CONTROL_BVC := {
bssgpPduType := '26'O,
@@ -1256,7 +1363,7 @@
lengthIndicator := {
length1 := 2
},
- bmax := f_oct_or_wc(bmax, 2)
+ bmax := int2oct(bmax, 2)
},
bucket_Leak_Rate := {
iEI := '03'O,
@@ -1264,7 +1371,7 @@
lengthIndicator := {
length1 := 2
},
- r_Value := f_oct_or_wc(bucket_leak_rate, 2)
+ r_Value := int2oct(bucket_leak_rate, 2)
},
bmax_default_MS := {
iEI := '01'O,
@@ -1272,7 +1379,7 @@
lengthIndicator := {
length1 := 2
},
- bmax := f_oct_or_wc(bmax_default_ms, 2)
+ bmax := int2oct(bmax_default_ms, 2)
},
r_default_MS := {
iEI := '1C'O,
@@ -1280,7 +1387,7 @@
lengthIndicator := {
length1 := 2
},
- r_default_MS_value := f_oct_or_wc(r_default_ms, 2)
+ r_default_MS_value := int2oct(r_default_ms, 2)
},
bucket_Full_Ratio := omit,
bVC_Measurement := omit,
@@ -1341,7 +1448,20 @@
}
/* 10.4.5 */
- template PDU_BSSGP t_BVC_FC_BVC_ACK(template OCT1 tag) := {
+ template (present) PDU_BSSGP tr_BVC_FC_BVC_ACK(template (present) OCT1 tag) := {
+ pDU_BSSGP_FLOW_CONTROL_BVC_ACK := {
+ bssgpPduType := '27'O,
+ tag := {
+ iEI := '1E'O,
+ ext := '1'B,
+ lengthIndicator := {
+ length1 := 1
+ },
+ unstructured_Value := tag
+ }
+ }
+ }
+ template (value) PDU_BSSGP ts_BVC_FC_BVC_ACK(template (value) OCT1 tag) := {
pDU_BSSGP_FLOW_CONTROL_BVC_ACK := {
bssgpPduType := '27'O,
tag := {
@@ -1395,7 +1515,7 @@
template (present) OCT1 tag := ?) := {
pDU_BSSGP_FLOW_CONTROL_MS := {
bssgpPduType := '28'O,
- tLLI := ts_BSSGP_TLLI(tlli),
+ tLLI := tr_BSSGP_TLLI(tlli),
tag := {
iEI := '1E'O,
ext := '1'B,
@@ -1460,12 +1580,13 @@
}
/* 10.4.14 */
- template PDU_BSSGP ts_BSSGP_STATUS(template (omit) BssgpBvci bvci, template BssgpCause cause,
- PDU_BSSGP pdu) := {
+ template (value) PDU_BSSGP ts_BSSGP_STATUS(template (omit) BssgpBvci bvci,
+ template (value) BssgpCause cause,
+ PDU_BSSGP pdu) := {
pDU_BSSGP_STATUS := {
bssgpPduType := '41'O,
- cause := t_BSSGP_CAUSE(cause),
- bVCI := t_BSSGP_BVCI(bvci),
+ cause := ts_BSSGP_CAUSE(cause),
+ bVCI := f_ts_BSSGP_BVCI(bvci),
pDU_in_Error := {
iEI := '15'O,
ext := '1'B,
@@ -1480,8 +1601,8 @@
template octetstring pdu := ?) := {
pDU_BSSGP_STATUS := {
bssgpPduType := '41'O,
- cause := t_BSSGP_CAUSE(cause),
- bVCI := t_BSSGP_BVCI(bvci),
+ cause := tr_BSSGP_CAUSE(cause),
+ bVCI := tr_BSSGP_BVCI(bvci),
pDU_in_Error := {
iEI := '15'O,
ext := '1'B,
@@ -1596,7 +1717,7 @@
peakBitRateGranularity := '00'B
}
- template QoS_Profile ts_QoS_TLV(template QoS_Profile_V qos) := {
+ template (value) QoS_Profile ts_QoS_TLV(template (value) QoS_Profile_V qos) := {
iEI := '18'O,
ext := '1'B,
lengthIndicator := { length1 := 3 },
@@ -1608,13 +1729,13 @@
peakBitRateGranularity := qos.peakBitRateGranularity
}
- template PDU_Lifetime t_DefaultLifetime(uint16_t delay := 65535) := {
+ template (value) PDU_Lifetime t_DefaultLifetime(uint16_t delay := 65535) := {
iEI := '16'O,
ext := '1'B,
lengthIndicator := {
length1 := 2
},
- delay_Value := f_oct_or_wc(delay, 2)
+ delay_Value := int2oct(delay, 2)
}
template DRX_Parameters t_defaultDRXparam := {
@@ -1662,7 +1783,7 @@
}
/* 10.2.1 */
- template PDU_BSSGP ts_BSSGP_DL_UD(GprsTlli tlli, octetstring pdu,
+ template (value) PDU_BSSGP ts_BSSGP_DL_UD(GprsTlli tlli, octetstring pdu,
template (omit) MSRadioAccessCapabilityV_BSSGP racap := omit,
template (omit) IMSI_BSSGP imsi := omit) := {
pDU_BSSGP_DL_UNITDATA := {
@@ -1693,8 +1814,8 @@
initialLLC_PDU := omit
}
}
- template PDU_BSSGP tr_BSSGP_DL_UD(template (present) GprsTlli tlli, template (present) octetstring pdu,
- template IMSI_BSSGP imsi := omit) := {
+ template (present) PDU_BSSGP tr_BSSGP_DL_UD(template (present) GprsTlli tlli, template (present) octetstring pdu,
+ template (omit) IMSI_BSSGP imsi := omit) := {
pDU_BSSGP_DL_UNITDATA := {
bssgpPduType := '00'O,
tLLI_current := tlli,
@@ -1725,12 +1846,12 @@
}
/* 10.2.2 */
- template PDU_BSSGP ts_BSSGP_UL_UD(GprsTlli tlli, BssgpCellId cell_id, octetstring payload) := {
+ template (value) PDU_BSSGP ts_BSSGP_UL_UD(GprsTlli tlli, BssgpCellId cell_id, octetstring payload) := {
pDU_BSSGP_UL_UNITDATA := {
bssgpPduType := '01'O,
tLLI := tlli,
qoS_Profile := t_defaultQos,
- cell_Identifier := t_BSSGP_IE_CellId(cell_id),
+ cell_Identifier := ts_BSSGP_IE_CellId(cell_id),
pFI := omit,
lSA_Identifier_List := omit,
redirect_Attempt_Flag := omit,
@@ -1749,7 +1870,7 @@
bssgpPduType := '01'O,
tLLI := tlli,
qoS_Profile := ?,
- cell_Identifier := t_BSSGP_IE_CellId(cell_id),
+ cell_Identifier := tr_BSSGP_IE_CellId(cell_id),
pFI := *,
lSA_Identifier_List := *,
redirect_Attempt_Flag := *,
@@ -1770,7 +1891,7 @@
iMSI := ?,
dRX_Parameters := ?,
paging_Field4 := {
- bVCI := t_BSSGP_BVCI(bvci)
+ bVCI := ts_BSSGP_BVCI(bvci)
},
tLLI := *,
channel_needed := *,
@@ -1779,13 +1900,13 @@
global_CN_Id := *
}
}
- template PDU_BSSGP ts_BSSGP_CS_PAGING_IMSI(BssgpBvci bvci, hexstring imsi) := {
+ template (value) PDU_BSSGP ts_BSSGP_CS_PAGING_IMSI(BssgpBvci bvci, hexstring imsi) := {
pDU_BSSGP_PAGING_CS := {
bssgpPduType := '07'O,
iMSI := ts_BSSGP_IMSI(imsi),
dRX_Parameters := t_defaultDRXparam,
paging_Field4 := {
- bVCI := t_BSSGP_BVCI(bvci)
+ bVCI := ts_BSSGP_BVCI(bvci)
},
tLLI := omit,
channel_needed := omit,
@@ -1794,13 +1915,13 @@
global_CN_Id := omit
}
}
- template PDU_BSSGP ts_BSSGP_CS_PAGING_PTMSI(BssgpBvci bvci, hexstring imsi, GsmTmsi tmsi) := {
+ template (value) PDU_BSSGP ts_BSSGP_CS_PAGING_PTMSI(BssgpBvci bvci, hexstring imsi, GsmTmsi tmsi) := {
pDU_BSSGP_PAGING_CS := {
bssgpPduType := '07'O,
iMSI := ts_BSSGP_IMSI(imsi),
dRX_Parameters := t_defaultDRXparam,
paging_Field4 := {
- bVCI := t_BSSGP_BVCI(bvci)
+ bVCI := ts_BSSGP_BVCI(bvci)
},
tLLI := omit,
channel_needed := omit,
@@ -1817,7 +1938,7 @@
iMSI := ?,
dRX_Parameters := *,
paging_Field4 := {
- bVCI := t_BSSGP_BVCI(bvci)
+ bVCI := tr_BSSGP_BVCI(bvci)
},
pFI := *,
aBQP := *,
@@ -1826,13 +1947,13 @@
eDRX_Paremeters := *
}
}
- template PDU_BSSGP ts_BSSGP_PS_PAGING_IMSI(BssgpBvci bvci, hexstring imsi) := {
+ template (value) PDU_BSSGP ts_BSSGP_PS_PAGING_IMSI(BssgpBvci bvci, hexstring imsi) := {
pDU_BSSGP_PAGING_PS := {
bssgpPduType := '06'O,
iMSI := ts_BSSGP_IMSI(imsi),
dRX_Parameters := omit,
paging_Field4 := {
- bVCI := t_BSSGP_BVCI(bvci)
+ bVCI := ts_BSSGP_BVCI(bvci)
},
pFI := omit,
aBQP := omit,
@@ -1841,13 +1962,13 @@
eDRX_Paremeters := omit
}
}
- template PDU_BSSGP ts_BSSGP_PS_PAGING_PTMSI(BssgpBvci bvci, hexstring imsi, GsmTmsi tmsi) := {
+ template (value) PDU_BSSGP ts_BSSGP_PS_PAGING_PTMSI(BssgpBvci bvci, hexstring imsi, GsmTmsi tmsi) := {
pDU_BSSGP_PAGING_PS := {
bssgpPduType := '06'O,
iMSI := ts_BSSGP_IMSI(imsi),
dRX_Parameters := omit,
paging_Field4 := {
- bVCI := t_BSSGP_BVCI(bvci)
+ bVCI := ts_BSSGP_BVCI(bvci)
},
pFI := omit,
aBQP := omit,
@@ -1877,7 +1998,7 @@
}
template (value) Paging_Field4 ts_BssgpP4Bvci(BssgpBvci bvci) := {
- bVCI := t_BSSGP_BVCI(bvci)
+ bVCI := ts_BSSGP_BVCI(bvci)
}
template (value) Location_Area ts_BSSGP_LA_ID(GSM_Types.LocationAreaIdentification input) := {
@@ -1941,7 +2062,7 @@
routeing_Area := ts_BSSGP_RA_ID(ra_id)
}
}
- template PDU_BSSGP tr_BSSGP_SUSPEND(template GprsTlli tlli, RoutingAreaIdentification ra_id) := {
+ template PDU_BSSGP tr_BSSGP_SUSPEND(template (present) GprsTlli tlli, RoutingAreaIdentification ra_id) := {
pDU_BSSGP_SUSPEND := {
bssgpPduType := '0B'O,
tLLI := tr_BSSGP_TLLI(tlli),
@@ -1985,7 +2106,7 @@
bssgpPduType := '0D'O,
tLLI := tr_BSSGP_TLLI(tlli),
routeing_Area := ts_BSSGP_RA_ID(ra_id),
- cause := t_BSSGP_CAUSE(cause)
+ cause := tr_BSSGP_CAUSE(cause)
}
}
@@ -2000,7 +2121,7 @@
suspend_Reference_Number := ts_BSSGP_SUSP_REF(susp_ref)
}
}
- template PDU_BSSGP tr_BSSGP_RESUME(template GprsTlli tlli, RoutingAreaIdentification ra_id,
+ template PDU_BSSGP tr_BSSGP_RESUME(template (present) GprsTlli tlli, RoutingAreaIdentification ra_id,
template OCT1 susp_ref) := {
pDU_BSSGP_RESUME := {
bssgpPduType := '0E'O,
@@ -2019,7 +2140,7 @@
routeing_Area := ts_BSSGP_RA_ID(ra_id)
}
}
- template PDU_BSSGP tr_BSSGP_RESUME_ACK(template GprsTlli tlli,
+ template PDU_BSSGP tr_BSSGP_RESUME_ACK(template (present) GprsTlli tlli,
RoutingAreaIdentification ra_id) := {
pDU_BSSGP_RESUME_ACK := {
bssgpPduType := '0F'O,
@@ -2038,14 +2159,14 @@
cause := ts_BSSGP_CAUSE(cause)
}
}
- template PDU_BSSGP tr_BSSGP_RESUME_NACK(template GprsTlli tlli,
+ template PDU_BSSGP tr_BSSGP_RESUME_NACK(template (present) GprsTlli tlli,
RoutingAreaIdentification ra_id,
template BssgpCause cause) := {
pDU_BSSGP_RESUME_NACK := {
bssgpPduType := '10'O,
tLLI := tr_BSSGP_TLLI(tlli),
routeing_Area := ts_BSSGP_RA_ID(ra_id),
- cause := t_BSSGP_CAUSE(cause)
+ cause := tr_BSSGP_CAUSE(cause)
}
}
@@ -2181,7 +2302,7 @@
if (istemplatekind(mccmnc, "omit")) {
return omit;
} else {
- return ts_BSSGP_PlmnId(mccmnc);
+ return ts_BSSGP_PlmnId(valueof(mccmnc));
}
}
private function f_tr_BSSGP_PlmnId(template BcdMccMnc mccmnc)
@@ -2193,7 +2314,7 @@
} else if (istemplatekind(mccmnc, "?")) {
return ?;
} else {
- return ts_BSSGP_PlmnId(mccmnc);
+ return ts_BSSGP_PlmnId(valueof(mccmnc));
}
}
@@ -2220,20 +2341,20 @@
pDU_BSSGP_FLUSH_LL := {
bssgpPduType := '2A'O,
tLLI := ts_BSSGP_TLLI(tlli),
- bVCI_old := t_BSSGP_BVCI(bvci_old),
- bVCI_new := t_BSSGP_BVCI(bvci_new),
- nSEI := t_BSSGP_NSEI(nsei)
+ bVCI_old := ts_BSSGP_BVCI(bvci_old),
+ bVCI_new := f_ts_BSSGP_BVCI(bvci_new),
+ nSEI := f_ts_BSSGP_NSEI(nsei)
}
}
- template PDU_BSSGP tr_BSSGP_FLUSH_LL(template GprsTlli tlli, template BssgpBvci bvci_old,
+ template PDU_BSSGP tr_BSSGP_FLUSH_LL(template (present) GprsTlli tlli, template BssgpBvci bvci_old,
template (omit) BssgpBvci bvci_new := omit,
template (omit) Nsei nsei := omit) := {
pDU_BSSGP_FLUSH_LL := {
bssgpPduType := '2A'O,
tLLI := tr_BSSGP_TLLI(tlli),
- bVCI_old := t_BSSGP_BVCI(bvci_old),
- bVCI_new := t_BSSGP_BVCI(bvci_new),
- nSEI := t_BSSGP_NSEI(nsei)
+ bVCI_old := tr_BSSGP_BVCI(bvci_old),
+ bVCI_new := f_ts_BSSGP_BVCI(bvci_new),
+ nSEI := f_ts_BSSGP_NSEI(nsei)
}
}
@@ -2245,23 +2366,23 @@
pDU_BSSGP_FLUSH_LL_ACK := {
bssgpPduType := '2B'O,
tLLI := ts_BSSGP_TLLI(tlli),
- flush_Action := t_FLUSH_ACTION(act),
- bVCI_new := t_BSSGP_BVCI(bvci_new),
- number_of_octets_affected := t_NO_OCT_AFF(oct_affected),
- nSEI := t_BSSGP_NSEI(nsei)
+ flush_Action := ts_FLUSH_ACTION(act),
+ bVCI_new := f_ts_BSSGP_BVCI(bvci_new),
+ number_of_octets_affected := ts_NO_OCT_AFF(oct_affected),
+ nSEI := f_ts_BSSGP_NSEI(nsei)
}
}
- template PDU_BSSGP tr_BSSGP_FLUSH_LL_ACK(template GprsTlli tlli, template OCT1 act,
+ template PDU_BSSGP tr_BSSGP_FLUSH_LL_ACK(template (present) GprsTlli tlli, template OCT1 act,
template integer oct_affected,
template (omit) BssgpBvci bvci_new := omit,
template (omit) Nsei nsei := omit) := {
pDU_BSSGP_FLUSH_LL_ACK := {
bssgpPduType := '2B'O,
- tLLI := ts_BSSGP_TLLI(tlli),
- flush_Action := t_FLUSH_ACTION(act),
- bVCI_new := t_BSSGP_BVCI(bvci_new),
- number_of_octets_affected := t_NO_OCT_AFF(oct_affected),
- nSEI := t_BSSGP_NSEI(nsei)
+ tLLI := tr_BSSGP_TLLI(tlli),
+ flush_Action := tr_FLUSH_ACTION(act),
+ bVCI_new := f_ts_BSSGP_BVCI(bvci_new),
+ number_of_octets_affected := tr_NO_OCT_AFF(oct_affected),
+ nSEI := f_ts_BSSGP_NSEI(nsei)
}
}
@@ -2272,21 +2393,21 @@
pDU_BSSGP_LLC_DISCARDED := {
bssgpPduType := '2C'O,
tLLI := ts_BSSGP_TLLI(tlli),
- lLC_Frames_Discarded := t_LLC_FRAMES_DISCARDED(frames_discarded),
- bVCI := t_BSSGP_BVCI(bvci),
- number_of_octets_deleted := t_NO_OCT_AFF(oct_deleted),
+ lLC_Frames_Discarded := ts_LLC_FRAMES_DISCARDED(frames_discarded),
+ bVCI := ts_BSSGP_BVCI(bvci),
+ number_of_octets_deleted := ts_NO_OCT_AFF(oct_deleted),
pFI := omit
}
}
- template PDU_BSSGP tr_BSSGP_LLC_DISCARDED(template GprsTlli tlli, template integer frames_discarded,
+ template PDU_BSSGP tr_BSSGP_LLC_DISCARDED(template (present) GprsTlli tlli, template integer frames_discarded,
template BssgpBvci bvci,
template integer oct_deleted) := {
pDU_BSSGP_LLC_DISCARDED := {
bssgpPduType := '2C'O,
- tLLI := ts_BSSGP_TLLI(tlli),
- lLC_Frames_Discarded := t_LLC_FRAMES_DISCARDED(frames_discarded),
- bVCI := t_BSSGP_BVCI(bvci),
- number_of_octets_deleted := t_NO_OCT_AFF(oct_deleted),
+ tLLI := tr_BSSGP_TLLI(tlli),
+ lLC_Frames_Discarded := tr_LLC_FRAMES_DISCARDED(frames_discarded),
+ bVCI := tr_BSSGP_BVCI(bvci),
+ number_of_octets_deleted := tr_NO_OCT_AFF(oct_deleted),
pFI := *
}
}
@@ -2304,7 +2425,7 @@
template MSRadioAccessCapabilityV_BSSGP racap) := {
pDU_BSSGP_RA_CAPABILITY := {
bssgpPduType := '02'O,
- tLLI := ts_BSSGP_TLLI(tlli),
+ tLLI := tr_BSSGP_TLLI(tlli),
mS_Radio_Access_Capability := tr_BSSGP_IE_MSRAcap(racap)
}
}
@@ -2319,10 +2440,10 @@
}
}
template (present) PDU_BSSGP tr_BSSGP_RA_CAP_UPD(template (present) GprsTlli tlli,
- template OCT1 tag) := {
+ template (present) OCT1 tag) := {
pDU_BSSGP_RA_CAPABILITY_UPDATE := {
bssgpPduType := '08'O,
- tLLI := ts_BSSGP_TLLI(tlli),
+ tLLI := tr_BSSGP_TLLI(tlli),
tag := tr_BSSGP_IE_Tag(tag)
}
}
@@ -2342,11 +2463,11 @@
}
}
template (present) PDU_BSSGP
- tr_BSSGP_RA_CAP_UPD_ACK(template (present) GprsTlli tlli, template OCT1 tag, template (present) OCT1 cause,
+ tr_BSSGP_RA_CAP_UPD_ACK(template (present) GprsTlli tlli, template (present) OCT1 tag, template (present) OCT1 cause,
template MSRadioAccessCapabilityV_BSSGP racap := omit) := {
pDU_BSSGP_RA_CAPABILITY_UPDATE_ACK := {
bssgpPduType := '09'O,
- tLLI := ts_BSSGP_TLLI(tlli),
+ tLLI := tr_BSSGP_TLLI(tlli),
tag := tr_BSSGP_IE_Tag(tag),
iMSI := omit,
rA_Cap_UPDATE_CAUSE := tr_BSSGP_IE_RACU_Cause(cause),
@@ -2375,7 +2496,7 @@
return ret;
}
function tr_BSSGP_RADIO_CAUSE(template BssgpRadioCause cause) return template (present) Radio_Cause {
- var template Radio_Cause ret;
+ var template (present) Radio_Cause ret;
ret.iEI := '19'O;
ret.ext := '1'B;
ret.lengthIndicator := { length1 := 1 };
@@ -2832,7 +2953,7 @@
lengthIndicator := {
length1 := 0 /* overwritten */
},
- reporting_Cell_Identifier := t_Cell_Identifier_V(cid)
+ reporting_Cell_Identifier := ts_Cell_Identifier_V(cid)
}
template RAN_Information_Request_Application_Container_NACC
tr_RAN_Information_Request_Application_Container_NACC(template BssgpCellId cid := ?) := {
@@ -2841,7 +2962,7 @@
lengthIndicator := {
length1 := ?
},
- reporting_Cell_Identifier := t_Cell_Identifier_V(cid)
+ reporting_Cell_Identifier := tr_Cell_Identifier_V(cid)
}
/* 3GPP TS 48.018 11.3.63.1.2 */
@@ -2852,7 +2973,7 @@
lengthIndicator := {
length1 := 0 /* overwritten */
},
- reporting_Cell_Identifier := t_Cell_Identifier_V(cid)
+ reporting_Cell_Identifier := ts_Cell_Identifier_V(cid)
}
/* 3GPP TS 48.018 11.3.63.1.3 */
@@ -2863,7 +2984,7 @@
lengthIndicator := {
length1 := 0 /* overwritten */
},
- reporting_Cell_Identifier := t_Cell_Identifier_V(cid)
+ reporting_Cell_Identifier := ts_Cell_Identifier_V(cid)
}
/* 3GPP TS 48.018 11.3.63.2.1 */
@@ -2874,7 +2995,7 @@
lengthIndicator := {
length1 := 0 /* overwritten */
},
- reporting_Cell_Identifier := t_Cell_Identifier_V(cid),
+ reporting_Cell_Identifier := ts_Cell_Identifier_V(cid),
typeBit := bool2bit(psi_type),
number_of_SI_PSI := int2bit(si_psi_num, 7),
sI_PSI := si_psi
@@ -2886,7 +3007,7 @@
ret.iEI := '4E'O;
ret.ext := '1'B;
ret.lengthIndicator := { length1 := ? };
- ret.reporting_Cell_Identifier := t_Cell_Identifier_V(cid);
+ ret.reporting_Cell_Identifier := tr_Cell_Identifier_V(cid);
if (istemplatekind(psi_type, "*")) {
ret.typeBit := *;
} else if (istemplatekind(psi_type, "?")) {
@@ -2913,7 +3034,7 @@
lengthIndicator := {
length1 := 0 /* overwritten */
},
- reporting_Cell_Identifier := t_Cell_Identifier_V(cid),
+ reporting_Cell_Identifier := ts_Cell_Identifier_V(cid),
sI3 := si3
}
@@ -2925,7 +3046,7 @@
lengthIndicator := {
length1 := 0 /* overwritten */
},
- reporting_Cell_Identifier := t_Cell_Identifier_V(cid),
+ reporting_Cell_Identifier := ts_Cell_Identifier_V(cid),
mBMS_data_channel_report := data_ch_report
}
@@ -3244,7 +3365,7 @@
}
template RIM_Routing_Address t_RIM_Routing_Address_cid(template BssgpCellId cid := ?) := {
- cell_Identifier := t_Cell_Identifier_V(cid)
+ cell_Identifier := tr_Cell_Identifier_V(cid)
}
template RIM_Routing_Address t_RIM_Routing_Address_rncid(template BssgpCellId cid := ?, template integer rnc_id := ?) := {
globalRNCID := t_GlobalRNC_ID_BSSGP(cid, rnc_id)
@@ -3256,7 +3377,7 @@
eHRPD_SectorID := sector
}
- function t_Cell_Identifier_V(template BssgpCellId cid) return template Cell_Identifier_V {
+ function tr_Cell_Identifier_V(template BssgpCellId cid) return template Cell_Identifier_V {
var template Cell_Identifier_V ret := {
mccDigit1 := ?,
mccDigit2 := ?,
@@ -3296,6 +3417,17 @@
}
return ret;
}
+ template (value) Cell_Identifier_V ts_Cell_Identifier_V(template (value) BssgpCellId cid) := {
+ mccDigit1 := cid.ra_id.lai.mcc_mnc[0],
+ mccDigit2 := cid.ra_id.lai.mcc_mnc[1],
+ mccDigit3 := cid.ra_id.lai.mcc_mnc[2],
+ mncDigit3 := cid.ra_id.lai.mcc_mnc[3],
+ mncDigit1 := cid.ra_id.lai.mcc_mnc[4],
+ mncDigit2 := cid.ra_id.lai.mcc_mnc[5],
+ lac := int2oct(valueof(cid.ra_id.lai.lac), 2),
+ rac := int2oct(valueof(cid.ra_id.rac), 1),
+ cI_value := int2oct(valueof(cid.cell_id), 2)
+ }
function t_GlobalRNC_ID_BSSGP(template BssgpCellId cid, template integer rnc_id) return template GlobalRNC_ID_BSSGP {
var template GlobalRNC_ID_BSSGP ret := {