Change in osmo-ttcn3-hacks[master]: Osmocom_Gb_Types: Add templates for various BSSGP PDU types

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.org
Sat Jan 16 22:07:42 UTC 2021


laforge has submitted this change. ( 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

Related: OS#4951
Change-Id: I89044bf8e736cc1997dff1a550b3e194f8ac1b9d
---
M library/Osmocom_Gb_Types.ttcn
1 file changed, 204 insertions(+), 0 deletions(-)

Approvals:
  Jenkins Builder: Verified
  laforge: Looks good to me, approved



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: 3
Gerrit-Owner: laforge <laforge at osmocom.org>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: daniel <dwillmann at sysmocom.de>
Gerrit-Reviewer: laforge <laforge at osmocom.org>
Gerrit-Reviewer: lynxis lazus <lynxis at fe80.eu>
Gerrit-MessageType: merged
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osmocom.org/pipermail/gerrit-log/attachments/20210116/d88bb049/attachment.htm>


More information about the gerrit-log mailing list