This is merely a historical archive of years 2008-2021, before the migration to mailman3.
A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/gerrit-log@lists.osmocom.org/.
laforge gerrit-no-reply at lists.osmocom.orglaforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22242 ) Change subject: Osmocom_Gb_Types: Add templates for various BSSGP PDU types ...................................................................... Osmocom_Gb_Types: Add templates for various BSSGP PDU types Change-Id: I89044bf8e736cc1997dff1a550b3e194f8ac1b9d --- M library/Osmocom_Gb_Types.ttcn 1 file changed, 204 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/42/22242/1 diff --git a/library/Osmocom_Gb_Types.ttcn b/library/Osmocom_Gb_Types.ttcn index 9054785..b82ca32 100644 --- a/library/Osmocom_Gb_Types.ttcn +++ b/library/Osmocom_Gb_Types.ttcn @@ -946,6 +946,24 @@ lengthIndicator := { length1 := 4 }, tMSI_Value := int2oct(tmsi, 4) } + private function f_ts_BSSGP_TMSI(template (omit) GsmTmsi tmsi) return template (omit) TMSI_BSSGP { + if (istemplatekind(tmsi, "omit")) { + return omit; + } else { + return ts_BSSGP_TMSI(valueof(tmsi)); + } + } + private function f_tr_BSSGP_TMSI(template GsmTmsi tmsi) return template TMSI_BSSGP { + if (istemplatekind(tmsi, "omit")) { + return omit; + } else if (istemplatekind(tmsi, "*")) { + return *; + } else if (istemplatekind(tmsi, "?")) { + return ?; + } else { + return tr_BSSGP_TMSI(valueof(tmsi)); + } + } function f_bssgp_length_ind(integer len) return LIN2_2a { var LIN2_2a ret; @@ -1828,6 +1846,28 @@ rac := int2oct(input.rac, 1) } + private function f_ts_BSSGP_RA_ID(template (omit) GSM_Types.RoutingAreaIdentification input) + return template (omit) Routeing_Area { + if (istemplatekind(input, "omit")) { + return omit; + } else { + return ts_BSSGP_RA_ID(valueof(input)); + } + } + + private function f_tr_BSSGP_RA_ID(template GSM_Types.RoutingAreaIdentification input) + return template Routeing_Area { + if (istemplatekind(input, "omit")) { + return omit; + } else if (istemplatekind(input, "*")) { + return *; + } else if (istemplatekind(input, "?")) { + return ?; + } else { + return ts_BSSGP_RA_ID(valueof(input)); + } + } + /* 10.3.6 */ template (value) PDU_BSSGP ts_BSSGP_SUSPEND(GprsTlli tlli, RoutingAreaIdentification ra_id) := { pDU_BSSGP_SUSPEND := { @@ -1944,6 +1984,170 @@ } } + /* 10.3.12 */ + template (value) PDU_BSSGP ts_BSSGP_DUMMY_PAGING_PS(hexstring imsi, + template (omit) RoutingAreaIdentification ra) := { + pDU_BSSGP_DUMMY_PAGING_PS := { + bssgpPduType := '12'O, + iMSI := ts_BSSGP_IMSI(imsi), + routeing_Area := f_ts_BSSGP_RA_ID(ra), + eDRX_Paremeters := omit + } + } + template (present) PDU_BSSGP tr_BSSGP_DUMMY_PAGING_PS(hexstring imsi, + template RoutingAreaIdentification ra) := { + pDU_BSSGP_DUMMY_PAGING_PS := { + bssgpPduType := '12'O, + iMSI := tr_BSSGP_IMSI(imsi), + routeing_Area := f_tr_BSSGP_RA_ID(ra), + eDRX_Paremeters := omit + } + } + + template (value) Time_Until_Next_Paging_Occasion ts_TimeNextPag(uint8_t mins, uint8_t secs) := { + iEI := '93'O, + ext := '1'B, + lengthIndicator := { + length1 := 2 + }, + minutes := mins, + spare := '00'B, + seconds := secs, + spare2 := '00'B + } + template (present) Time_Until_Next_Paging_Occasion tr_TimeNextPag(template (present) uint8_t mins, + template (present) uint8_t secs) := { + iEI := '93'O, + ext := '1'B, + lengthIndicator := { + length1 := 2 + }, + minutes := mins, + spare := ?, + seconds := secs, + spare2 := ? + } + + /* 10.3.13 */ + template (value) PDU_BSSGP ts_BSSGP_DUMMY_PAGING_PS_RESP(hexstring imsi, uint8_t mins, uint8_t secs) := { + pDU_BSSGP_DUMMY_PAGING_PS_RESPONSE := { + bssgpPduType := '13'O, + iMSI := ts_BSSGP_IMSI(imsi), + time_Until_Next_Paging_Occasion := ts_TimeNextPag(mins, secs) + } + } + template (present) PDU_BSSGP tr_BSSGP_DUMMY_PAGING_PS_RESP(hexstring imsi, + template (present) uint8_t mins, + template (present) uint8_t secs) := { + pDU_BSSGP_DUMMY_PAGING_PS_RESPONSE := { + bssgpPduType := '13'O, + iMSI := tr_BSSGP_IMSI(imsi), + time_Until_Next_Paging_Occasion := tr_TimeNextPag(mins, secs) + } + } + + /* 10.3.14 */ + template (value) PDU_BSSGP ts_BSSGP_PAGING_PS_REJ(hexstring imsi, uint8_t mins, uint8_t secs, + template (omit) GsmTmsi tmsi) := { + pDU_BSSGP_PAGING_PS_REJECT := { + bssgpPduType := '11'O, + iMSI := ts_BSSGP_IMSI(imsi), + pTMSI := f_ts_BSSGP_TMSI(tmsi), + time_Until_Next_Paging_Occasion := ts_TimeNextPag(mins, secs) + } + } + template (present) PDU_BSSGP tr_BSSGP_PAGING_PS_REJ(hexstring imsi, + template (present) uint8_t mins, + template (present) uint8_t secs, + template GsmTmsi tmsi) := { + pDU_BSSGP_PAGING_PS_REJECT := { + bssgpPduType := '11'O, + iMSI := tr_BSSGP_IMSI(imsi), + pTMSI := f_tr_BSSGP_TMSI(tmsi), + time_Until_Next_Paging_Occasion := tr_TimeNextPag(mins, secs) + } + } + + /* 10.3.15 */ + template (value) PDU_BSSGP ts_BSSGP_MS_REG_ENQ(hexstring imsi) := { + pDU_BSSGP_MS_REGISTRATION_ENQUIRY := { + bssgpPduType := '14'O, + iMSI := ts_BSSGP_IMSI(imsi), + mME_Query := omit + } + } + template (present) PDU_BSSGP tr_BSSGP_MS_REG_ENQ(hexstring imsi) := { + pDU_BSSGP_MS_REGISTRATION_ENQUIRY := { + bssgpPduType := '14'O, + iMSI := tr_BSSGP_IMSI(imsi), + mME_Query := * + } + } + + /* 11.3.126 */ + template (value) PLMN_Identity ts_BSSGP_PlmnId(template (value) BcdMccMnc mccmnc) := { + iEI := '96'O, + ext := '1'B, + lengthIndicator := { + length1 := 3 + }, + mccDigit1 := mccmnc[0], + mccDigit2 := mccmnc[1], + mccDigit3 := mccmnc[2], + mncDigit3 := mccmnc[5], + mncDigit1 := mccmnc[3], + mncDigit2 := mccmnc[4] + } + template (present) PLMN_Identity tr_BSSGP_PlmnId(template (present) BcdMccMnc mccmnc) := { + iEI := '96'O, + ext := '1'B, + lengthIndicator := { + length1 := 3 + }, + mccDigit1 := mccmnc[0], + mccDigit2 := mccmnc[1], + mccDigit3 := mccmnc[2], + mncDigit3 := mccmnc[5], + mncDigit1 := mccmnc[3], + mncDigit2 := mccmnc[4] + } + private function f_ts_BSSGP_PlmnId(template (omit) BcdMccMnc mccmnc) + return template (omit) PLMN_Identity { + if (istemplatekind(mccmnc, "omit")) { + return omit; + } else { + return ts_BSSGP_PlmnId(mccmnc); + } + } + private function f_tr_BSSGP_PlmnId(template BcdMccMnc mccmnc) + return template PLMN_Identity { + if (istemplatekind(mccmnc, "omit")) { + return omit; + } else if (istemplatekind(mccmnc, "*")) { + return *; + } else if (istemplatekind(mccmnc, "?")) { + return ?; + } else { + return ts_BSSGP_PlmnId(mccmnc); + } + } + + /* 10.3.16 */ + template (value) PDU_BSSGP ts_BSSGP_MS_REW_ENQ_RESP(hexstring imsi, template (omit) BcdMccMnc mccmnc) := { + pDU_BSSGP_MS_REGISTRATION_ENQUIRY_RESPONSE := { + bssgpPduType := '15'O, + iMSI := ts_BSSGP_IMSI(imsi), + pS_Registered_Operator := f_ts_BSSGP_PlmnId(mccmnc) + } + } + template (present) PDU_BSSGP tr_BSSGP_MS_REW_ENQ_RESP(hexstring imsi, template BcdMccMnc mccmnc) := { + pDU_BSSGP_MS_REGISTRATION_ENQUIRY_RESPONSE := { + bssgpPduType := '15'O, + iMSI := tr_BSSGP_IMSI(imsi), + pS_Registered_Operator := f_tr_BSSGP_PlmnId(mccmnc) + } + } + /* 10.4.1 */ template (value) PDU_BSSGP ts_BSSGP_FLUSH_LL(GprsTlli tlli, template (value) BssgpBvci bvci_old, template (omit) BssgpBvci bvci_new := omit, -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22242 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I89044bf8e736cc1997dff1a550b3e194f8ac1b9d Gerrit-Change-Number: 22242 Gerrit-PatchSet: 1 Gerrit-Owner: laforge <laforge at osmocom.org> Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.osmocom.org/pipermail/gerrit-log/attachments/20210116/f3bc842c/attachment.htm>