Change in osmo-ttcn3-hacks[master]: Osmocom_Gb_Types: Fix indentation

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/.

daniel gerrit-no-reply at lists.osmocom.org
Fri Nov 20 15:09:00 UTC 2020


daniel has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21264 )

Change subject: Osmocom_Gb_Types: Fix indentation
......................................................................

Osmocom_Gb_Types: Fix indentation

Change-Id: I4ca156b53dfe9daa190d52a7de46be56cf74099a
---
M library/Osmocom_Gb_Types.ttcn
1 file changed, 360 insertions(+), 362 deletions(-)

Approvals:
  daniel: Looks good to me, approved
  pespin: Looks good to me, but someone else must approve
  Jenkins Builder: Verified



diff --git a/library/Osmocom_Gb_Types.ttcn b/library/Osmocom_Gb_Types.ttcn
index 8d48cb1..2c82437 100644
--- a/library/Osmocom_Gb_Types.ttcn
+++ b/library/Osmocom_Gb_Types.ttcn
@@ -929,41 +929,41 @@
 		return ret;
 	}
 
-template (value) Tag ts_BSSGP_IE_Tag(OCT1 tag) := {
-	iEI := '1E'O,
-	ext := '1'B,
-	lengthIndicator := {
-		length1 := 1
-	},
-	unstructured_Value := tag
-}
+	template (value) Tag ts_BSSGP_IE_Tag(OCT1 tag) := {
+		iEI := '1E'O,
+		ext := '1'B,
+		lengthIndicator := {
+			length1 := 1
+		},
+		unstructured_Value := tag
+	}
 
-template (present) Tag tr_BSSGP_IE_Tag(template (present) OCT1 tag) := {
-	iEI := '1E'O,
-	ext := '1'B,
-	lengthIndicator := {
-		length1 := 1
-	},
-	unstructured_Value := tag
-}
+	template (present) Tag tr_BSSGP_IE_Tag(template (present) OCT1 tag) := {
+		iEI := '1E'O,
+		ext := '1'B,
+		lengthIndicator := {
+			length1 := 1
+		},
+		unstructured_Value := tag
+	}
 
-template (value) RA_Cap_UPD_CAUSE ts_BSSGP_IE_RACU_Cause(template (value) OCT1 cause) := {
-	iEI := '1A'O,
-	ext := '1'B,
-	lengthIndicator := {
-		length1 := 1
-	},
-	rA_CAP_UPD_Cause_value := cause
-}
+	template (value) RA_Cap_UPD_CAUSE ts_BSSGP_IE_RACU_Cause(template (value) OCT1 cause) := {
+		iEI := '1A'O,
+		ext := '1'B,
+		lengthIndicator := {
+			length1 := 1
+		},
+		rA_CAP_UPD_Cause_value := cause
+	}
 
-template (present) RA_Cap_UPD_CAUSE tr_BSSGP_IE_RACU_Cause(template (present) OCT1 cause) := {
-	iEI := '1A'O,
-	ext := '1'B,
-	lengthIndicator := {
-		length1 := 1
-	},
-	rA_CAP_UPD_Cause_value := cause
-}
+	template (present) RA_Cap_UPD_CAUSE tr_BSSGP_IE_RACU_Cause(template (present) OCT1 cause) := {
+		iEI := '1A'O,
+		ext := '1'B,
+		lengthIndicator := {
+			length1 := 1
+		},
+		rA_CAP_UPD_Cause_value := cause
+	}
 
 
 	template PDU_BSSGP ts_BVC_RESET(BssgpCause cause, BssgpBvci bvci,
@@ -1683,362 +1683,360 @@
 		}
 	}
 
-/* 10.2.3 */
-template (value) PDU_BSSGP ts_BSSGP_RA_CAP(GprsTlli tlli,
-					   template (omit) MSRadioAccessCapabilityV_BSSGP racap := omit) := {
-	pDU_BSSGP_RA_CAPABILITY := {
-		bssgpPduType := '02'O,
-		tLLI := ts_BSSGP_TLLI(tlli),
-		mS_Radio_Access_Capability := ts_BSSGP_IE_MSRAcap_omit(racap)
+	/* 10.2.3 */
+	template (value) PDU_BSSGP ts_BSSGP_RA_CAP(GprsTlli tlli,
+						   template (omit) MSRadioAccessCapabilityV_BSSGP racap := omit) := {
+		pDU_BSSGP_RA_CAPABILITY := {
+			bssgpPduType := '02'O,
+			tLLI := ts_BSSGP_TLLI(tlli),
+			mS_Radio_Access_Capability := ts_BSSGP_IE_MSRAcap_omit(racap)
+		}
 	}
-}
-template (present) PDU_BSSGP tr_BSSGP_RA_CAP(template (present) GprsTlli tlli,
-					     template MSRadioAccessCapabilityV_BSSGP racap) := {
-	pDU_BSSGP_RA_CAPABILITY := {
-		bssgpPduType := '02'O,
-		tLLI := ts_BSSGP_TLLI(tlli),
-		mS_Radio_Access_Capability := tr_BSSGP_IE_MSRAcap(racap)
+	template (present) PDU_BSSGP tr_BSSGP_RA_CAP(template (present) GprsTlli tlli,
+						     template MSRadioAccessCapabilityV_BSSGP racap) := {
+		pDU_BSSGP_RA_CAPABILITY := {
+			bssgpPduType := '02'O,
+			tLLI := ts_BSSGP_TLLI(tlli),
+			mS_Radio_Access_Capability := tr_BSSGP_IE_MSRAcap(racap)
+		}
 	}
-}
 
 
-/* 10.3.3 */
-template (value) PDU_BSSGP ts_BSSGP_RA_CAP_UPD(GprsTlli tlli, OCT1 tag) := {
-	pDU_BSSGP_RA_CAPABILITY_UPDATE := {
-		bssgpPduType := '08'O,
-		tLLI := ts_BSSGP_TLLI(tlli),
-		tag := ts_BSSGP_IE_Tag(tag)
+	/* 10.3.3 */
+	template (value) PDU_BSSGP ts_BSSGP_RA_CAP_UPD(GprsTlli tlli, OCT1 tag) := {
+		pDU_BSSGP_RA_CAPABILITY_UPDATE := {
+			bssgpPduType := '08'O,
+			tLLI := ts_BSSGP_TLLI(tlli),
+			tag := ts_BSSGP_IE_Tag(tag)
+		}
 	}
-}
-template (present) PDU_BSSGP tr_BSSGP_RA_CAP_UPD(template (present) GprsTlli tlli,
-					     template OCT1 tag) := {
-	pDU_BSSGP_RA_CAPABILITY_UPDATE := {
-		bssgpPduType := '08'O,
-		tLLI := ts_BSSGP_TLLI(tlli),
-		tag := tr_BSSGP_IE_Tag(tag)
+	template (present) PDU_BSSGP tr_BSSGP_RA_CAP_UPD(template (present) GprsTlli tlli,
+						     template OCT1 tag) := {
+		pDU_BSSGP_RA_CAPABILITY_UPDATE := {
+			bssgpPduType := '08'O,
+			tLLI := ts_BSSGP_TLLI(tlli),
+			tag := tr_BSSGP_IE_Tag(tag)
+		}
 	}
-}
 
 
-/* 10.3.4 */
-template (value) PDU_BSSGP
-ts_BSSGP_RA_CAP_UPD_ACK(GprsTlli tlli, OCT1 tag, template (value) OCT1 cause,
-		        template (omit) MSRadioAccessCapabilityV_BSSGP racap := omit) := {
-	pDU_BSSGP_RA_CAPABILITY_UPDATE_ACK := {
-		bssgpPduType := '09'O,
-		tLLI := ts_BSSGP_TLLI(tlli),
-		tag := ts_BSSGP_IE_Tag(tag),
-		iMSI := omit,
-		rA_Cap_UPDATE_CAUSE := ts_BSSGP_IE_RACU_Cause(cause),
-		mS_Radio_Access_Capability := ts_BSSGP_IE_MSRAcap_omit(racap)
+	/* 10.3.4 */
+	template (value) PDU_BSSGP
+	ts_BSSGP_RA_CAP_UPD_ACK(GprsTlli tlli, OCT1 tag, template (value) OCT1 cause,
+			        template (omit) MSRadioAccessCapabilityV_BSSGP racap := omit) := {
+		pDU_BSSGP_RA_CAPABILITY_UPDATE_ACK := {
+			bssgpPduType := '09'O,
+			tLLI := ts_BSSGP_TLLI(tlli),
+			tag := ts_BSSGP_IE_Tag(tag),
+			iMSI := omit,
+			rA_Cap_UPDATE_CAUSE := ts_BSSGP_IE_RACU_Cause(cause),
+			mS_Radio_Access_Capability := ts_BSSGP_IE_MSRAcap_omit(racap)
+		}
 	}
-}
-template (present) PDU_BSSGP
-tr_BSSGP_RA_CAP_UPD_ACK(template (present) GprsTlli tlli, template 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),
-		tag := tr_BSSGP_IE_Tag(tag),
-		iMSI := omit,
-		rA_Cap_UPDATE_CAUSE := tr_BSSGP_IE_RACU_Cause(cause),
-		mS_Radio_Access_Capability := tr_BSSGP_IE_MSRAcap(racap)
+	template (present) PDU_BSSGP
+	tr_BSSGP_RA_CAP_UPD_ACK(template (present) GprsTlli tlli, template 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),
+			tag := tr_BSSGP_IE_Tag(tag),
+			iMSI := omit,
+			rA_Cap_UPDATE_CAUSE := tr_BSSGP_IE_RACU_Cause(cause),
+			mS_Radio_Access_Capability := tr_BSSGP_IE_MSRAcap(racap)
+		}
 	}
-}
 
-type enumerated BssgpRadioCause {
-	BSSGP_RADIO_CAUSE_CONTACT_LOST		('00'H),
-	BSSGP_RADIO_CAUSE_LINK_QUAL_INSUFF	('01'H),
-	BSSGP_RADIO_CAUSE_CELL_RESEL_ORDERED	('02'H),
-	BSSGP_RADIO_CAUSE_CELL_RESEL_PREPARE	('03'H),
-	BSSGP_RADIO_CAUSE_CELL_RESEL_FAILURE 	('04'H)
-} with { variant "FIELDLENGTH(8)" };
+	type enumerated BssgpRadioCause {
+		BSSGP_RADIO_CAUSE_CONTACT_LOST		('00'H),
+		BSSGP_RADIO_CAUSE_LINK_QUAL_INSUFF	('01'H),
+		BSSGP_RADIO_CAUSE_CELL_RESEL_ORDERED	('02'H),
+		BSSGP_RADIO_CAUSE_CELL_RESEL_PREPARE	('03'H),
+		BSSGP_RADIO_CAUSE_CELL_RESEL_FAILURE 	('04'H)
+	} with { variant "FIELDLENGTH(8)" };
 
 
-function ts_BSSGP_RADIO_CAUSE(template (omit) BssgpRadioCause cause) return template (omit) Radio_Cause {
-	var template (omit) Radio_Cause ret;
-	if (istemplatekind(cause, "omit")) {
-		ret := omit;
-	} else {
+	function ts_BSSGP_RADIO_CAUSE(template (omit) BssgpRadioCause cause) return template (omit) Radio_Cause {
+		var template (omit) Radio_Cause ret;
+		if (istemplatekind(cause, "omit")) {
+			ret := omit;
+		} else {
+			ret.iEI := '19'O;
+			ret.ext := '1'B;
+			ret.lengthIndicator := { length1 := 1 };
+			ret.radio_Cause_Value := int2oct(enum2int(valueof(cause)), 1);
+		}
+		return ret;
+	}
+	function tr_BSSGP_RADIO_CAUSE(template BssgpRadioCause cause) return template (present) Radio_Cause {
+		var template Radio_Cause ret;
 		ret.iEI := '19'O;
 		ret.ext := '1'B;
 		ret.lengthIndicator := { length1 := 1 };
-		ret.radio_Cause_Value := int2oct(enum2int(valueof(cause)), 1);
+		if (isvalue(cause)) {
+			ret.radio_Cause_Value := int2oct(enum2int(valueof(cause)), 1);
+		} else {
+			ret.radio_Cause_Value := ?
+		}
+		return ret;
 	}
-	return ret;
-}
-function tr_BSSGP_RADIO_CAUSE(template BssgpRadioCause cause) return template (present) Radio_Cause {
-	var template Radio_Cause ret;
-	ret.iEI := '19'O;
-	ret.ext := '1'B;
-	ret.lengthIndicator := { length1 := 1 };
-	if (isvalue(cause)) {
-		ret.radio_Cause_Value := int2oct(enum2int(valueof(cause)), 1);
-	} else {
-		ret.radio_Cause_Value := ?
-	}
-	return ret;
-}
 
-/* 10.3.5 */
-template (value) PDU_BSSGP
-ts_BSSGP_RADIO_STATUS(GprsTlli tlli, template (value) BssgpRadioCause cause) := {
-	pDU_BSSGP_RADIO_STATUS := {
-		bssgpPduType := '0a'O,
-		tLLI := ts_BSSGP_TLLI(tlli),
-		tMSI := omit,
-		iMSI := omit,
-		radio_Cause := ts_BSSGP_RADIO_CAUSE(cause)
-	}
-}
-template (present) PDU_BSSGP
-tr_BSSGP_RADIO_STATUS(template (present) GprsTlli tlli, template (present) BssgpRadioCause cause) := {
-	pDU_BSSGP_RADIO_STATUS := {
-		bssgpPduType := '0a'O,
-		tLLI := ts_BSSGP_TLLI(tlli),
-		tMSI := omit,
-		iMSI := omit,
-		radio_Cause := tr_BSSGP_RADIO_CAUSE(cause)
-	}
-}
-
-
-
-/* PDU permitted on PTP BVC only (TS 48.018 Section 5.4.1) */
-template (present) PDU_BSSGP tr_BSSGP_PERMITTED_PTP_ONLY := (
-	{pDU_BSSGP_DL_UNITDATA := ?},
-	{pDU_BSSGP_UL_UNITDATA := ?},
-	{pDU_BSSGP_RA_CAPABILITY := ?},
-	{pDU_BSSGP_RA_CAPABILITY_UPDATE := ?},
-	{pDU_BSSGP_RA_CAPABILITY_UPDATE_ACK := ?},
-	{pDU_BSSGP_RADIO_STATUS := ?},
-	{pDU_BSSGP_FLOW_CONTROL_BVC := ?},
-	{pDU_BSSGP_FLOW_CONTROL_BVC_ACK := ?},
-	{pDU_BSSGP_FLOW_CONTROL_MS := ?},
-	{pDU_BSSGP_FLOW_CONTROL_MS_ACK := ?},
-	{pDU_BSSGP_FLOW_CONTROL_PFC := ?},
-	{pDU_BSSGP_FLOW_CONTROL_PFC_ACK := ?},
-	{pDU_BSSGP_DOWNLOAD_BSS_PFC := ?},
-	{pDU_BSSGP_CREATE_BSS_PFC := ?},
-	{pDU_BSSGP_CREATE_BSS_PFC_ACK := ?},
-	{pDU_BSSGP_CREATE_BSS_PFC_NACK := ?},
-	{pDU_BSSGP_MODIFY_BSS_PFC := ?},
-	{pDU_BSSGP_MODIFY_BSS_PFC_ACK := ?},
-	{pDU_BSSGP_DELETE_BSS_PFC := ?},
-	{pDU_BSSGP_DELETE_BSS_PFC_ACK := ?},
-	{pDU_BSSGP_DELETE_BSS_PFC_REQ := ?},
-	{pDU_BSSGP_PS_HANDOVER_REQUIRED := ?},
-	{pDU_BSSGP_PS_HANDOVER_REQUIRED_ACK := ?},
-	{pDU_BSSGP_PS_HANDOVER_REQUIRED_NACK := ?},
-	{pDU_BSSGP_PS_HANDOVER_REQUEST := ?},
-	{pDU_BSSGP_PS_HANDOVER_REQUEST_ACK := ?},
-	{pDU_BSSGP_PS_HANDOVER_REQUEST_NACK := ?},
-	{pDU_BSSGP_PS_HANDOVER_COMPLETE := ?},
-	{pDU_BSSGP_PS_HANDOVER_COMPLETE_ACK := ?},
-	{pDU_BSSGP_PS_HANDOVER_CANCEL := ?}
-);
-
-template (present) PDU_BSSGP tr_BSSGP_PERMITTED_PTP := (
-	tr_BSSGP_PERMITTED_PTP_ONLY,
-	{pDU_BSSGP_PAGING_PS := ?},
-	{pDU_BSSGP_PAGING_CS := ?},
-	{pDU_BSSGP_STATUS := ?}
-);
-
-/* PDU permitted on Signaling BVC only (TS 48.018 Section 5.4.1) */
-template (present) PDU_BSSGP tr_BSSGP_PERMITTED_SIGN_ONLY := (
-	{pDU_BSSGP_SUSPEND := ?},
-	{pDU_BSSGP_SUSPEND_ACK := ?},
-	{pDU_BSSGP_SUSPEND_NACK := ?},
-	{pDU_BSSGP_RESUME := ?},
-	{pDU_BSSGP_RESUME_ACK := ?},
-	{pDU_BSSGP_RESUME_NACK := ?},
-	{pDU_BSSGP_FLUSH_LL := ?},
-	{pDU_BSSGP_FLUSH_LL_ACK := ?},
-	{pDU_BSSGP_LLC_DISCARDED := ?},
-	{pDU_BSSGP_BVC_BLOCK := ?},
-	{pDU_BSSGP_BVC_BLOCK_ACK := ?},
-	{pDU_BSSGP_BVC_UNBLOCK := ?},
-	{pDU_BSSGP_BVC_UNBLOCK_ACK := ?},
-	{pDU_BSSGP_BVC_RESET := ?},
-	{pDU_BSSGP_BVC_RESET_ACK := ?},
-	{pDU_BSSGP_SGSN_INVOKE_TRACE := ?},
-	{pDU_BSSGP_PERFORM_LOCATION_REQUEST := ?},
-	{pDU_BSSGP_PERFORM_LOCATION_RESPONSE := ?},
-	{pDU_BSSGP_PERFORM_LOCATION_ABORT := ?},
-	{pDU_BSSGP_POSITION_COMMAND := ?},
-	{pDU_BSSGP_POSITION_RESPONSE := ?},
-	{pDU_BSSGP_RAN_INFORMATION := ?},
-	{pDU_BSSGP_RAN_INFORMATION_REQUEST := ?},
-	{pDU_BSSGP_RAN_INFORMATION_ACK := ?},
-	{pDU_BSSGP_RAN_INFORMATION_ERROR := ?},
-	{pDU_BSSGP_RAN_INFORMATION_APPLICATION_ERROR := ?},
-	{pDU_BSSGP_MBMS_SESSION_START_REQUEST := ?},
-	{pDU_BSSGP_MBMS_SESSION_START_RESPONSE := ?},
-	{pDU_BSSGP_MBMS_SESSION_STOP_REQUEST := ?},
-	{pDU_BSSGP_MBMS_STOP_RESPONSE := ?},
-	{pDU_BSSGP_SESSION_UPDATE_REQUEST := ?},
-	{pDU_BSSGP_SESSION_UPDATE_RESPONSE := ?}
-);
-
-template (present) PDU_BSSGP tr_BSSGP_PERMITTED_SIGN := (
-	tr_BSSGP_PERMITTED_SIGN_ONLY,
-	{pDU_BSSGP_PAGING_PS := ?},
-	{pDU_BSSGP_PAGING_CS := ?},
-	{pDU_BSSGP_SUSPEND := ?},
-	{pDU_BSSGP_STATUS := ?}
-);
-
-/* PDU permitted on PTM BVC only (TS 48.018 Section 5.4.1) */
-template (present) PDU_BSSGP tr_BSSGP_PERMITTED_PTM_ONLY := (
-	{pDU_BSSGP_DL_MBMS_UNITDATA := ?},
-	{pDU_BSSGP_UL_MBMS_UNITDATA := ?}
-);
-
-template (present) PDU_BSSGP tr_BSSGP_PERMITTED_PTM := (
-	tr_BSSGP_PERMITTED_PTM_ONLY,
-	{pDU_BSSGP_STATUS := ?}
-);
-
-
-/* Template for any PTP BVCI IE */
-template (present) BVCI tr_BSSGP_IE_PtpBvci := {
-	iEI := '04'O,
-	ext := '1'B,
-	lengthIndicator := {
-		length1 := 2
-	},
-	unstructured_value := complement ('0000'O, '0001'O)
-}
-
-/* message on signaling PTP but containing a ptp BVC */
-/*
-template PDU_BSSGP tr_BSSGP_SIG_FOR_PTP(template Bvci bvci) := (
-	{pDU_BSSGP_FLUSH_LL:{?,?,tr_BSSGP_IE_PtpBvci, *, *}},
-	{pDU_BSSGP_FLUSH_LL_ACK:{?,?,?,tr_BSSGP_IE_PtpBvci, ?, *}},
-	{pDU_BSSGP_LLC_DISCARDED:{?,?,?,tr_BSSGP_IE_PtpBvci, ?, *}},
-	{pDU_BSSGP_BVC_BLOCK:{?,tr_BSSGP_IE_PtpBvci, ?}},
-	{pDU_BSSGP_BVC_BLOCK_ACK:{?,tr_BSSGP_IE_PtpBvci}},
-	{pDU_BSSGP_BVC_UNBLOCK:{?,tr_BSSGP_IE_PtpBvci}},
-	{pDU_BSSGP_BVC_UNBLOCK_ACK:{?,tr_BSSGP_IE_PtpBvci}},
-	{pDU_BSSGP_BVC_RESET:{?,tr_BSSGP_IE_PtpBvci,?,*,*,*}},
-	{pDU_BSSGP_BVC_RESET_ACK:{?,tr_BSSGP_IE_PtpBvci,*,*,*}},
-	{pDU_BSSGP_STATUS:{?,?,tr_BSSGP_IE_PtpBvci,*}},
-	{pDU_BSSGP_PERFORM_LOCATION_REQUEST:{?,?,?,*,tr_BSSGP_IE_PtpBvci,?,?,?,*,*,*,*,*,*,*,*,*}},
-	{pDU_BSSGP_PERFORM_LOCATION_RESPONSE:{?,?,tr_BSSGP_IE_PtpBvci,*,*,*,*,*,*}},
-	{pDU_BSSGP_PERFORM_LOCATION_ABORT:{?,?,tr_BSSGP_IE_PtpBvci,?}},
-	{pDU_BSSGP_POSITION_COMMAND:{
-);
-*/
-
-/* extract the BVCI IE of given PDU + return it */
-function f_BSSGP_BVCI_IE_get(PDU_BSSGP pdu) return template (omit) BVCI {
-	select (pdu) {
-	case (PDU_BSSGP:{pDU_BSSGP_FLUSH_LL:=?}) {
-		return pdu.pDU_BSSGP_FLUSH_LL.bVCI_old;
-		}
-	case (PDU_BSSGP:{pDU_BSSGP_FLUSH_LL_ACK:=?}) {
-		return pdu.pDU_BSSGP_FLUSH_LL_ACK.bVCI_new;
-		}
-	case (PDU_BSSGP:{pDU_BSSGP_LLC_DISCARDED:=?}) {
-		return pdu.pDU_BSSGP_LLC_DISCARDED.bVCI;
-		}
-	case (PDU_BSSGP:{pDU_BSSGP_BVC_BLOCK:=?}) {
-		return pdu.pDU_BSSGP_BVC_BLOCK.bVCI;
-		}
-	case (PDU_BSSGP:{pDU_BSSGP_BVC_BLOCK_ACK:=?}) {
-		return pdu.pDU_BSSGP_BVC_BLOCK_ACK.bVCI;
-		}
-	case (PDU_BSSGP:{pDU_BSSGP_BVC_UNBLOCK:=?}) {
-		return pdu.pDU_BSSGP_BVC_UNBLOCK.bVCI;
-		}
-	case (PDU_BSSGP:{pDU_BSSGP_BVC_UNBLOCK_ACK:=?}) {
-		return pdu.pDU_BSSGP_BVC_UNBLOCK_ACK.bVCI;
-		}
-	case (PDU_BSSGP:{pDU_BSSGP_BVC_RESET:=?}) {
-		return pdu.pDU_BSSGP_BVC_RESET.bVCI;
-		}
-	case (PDU_BSSGP:{pDU_BSSGP_BVC_RESET_ACK:=?}) {
-		return pdu.pDU_BSSGP_BVC_RESET_ACK.bVCI;
-		}
-	case (PDU_BSSGP:{pDU_BSSGP_STATUS:=?}) {
-		return pdu.pDU_BSSGP_STATUS.bVCI;
-		}
-	case (PDU_BSSGP:{pDU_BSSGP_PERFORM_LOCATION_REQUEST:=?}) {
-		return pdu.pDU_BSSGP_PERFORM_LOCATION_REQUEST.bVCI;
-		}
-	case (PDU_BSSGP:{pDU_BSSGP_PERFORM_LOCATION_RESPONSE:=?}) {
-		return pdu.pDU_BSSGP_PERFORM_LOCATION_RESPONSE.bVCI;
-		}
-	case (PDU_BSSGP:{pDU_BSSGP_PERFORM_LOCATION_ABORT:=?}) {
-		return pdu.pDU_BSSGP_PERFORM_LOCATION_ABORT.bVCI;
-		}
-	case (PDU_BSSGP:{pDU_BSSGP_POSITION_COMMAND:=?}) {
-		return pdu.pDU_BSSGP_POSITION_COMMAND.bVCI;
-		}
-	case (PDU_BSSGP:{pDU_BSSGP_POSITION_RESPONSE:=?}) {
-		return pdu.pDU_BSSGP_POSITION_RESPONSE.bVCI;
-		}
-	case (PDU_BSSGP:{pDU_BSSGP_PAGING_PS:={?,?,*,{bVCI:=?},*,*,?,*,*}}) {
-		return pdu.pDU_BSSGP_PAGING_PS.paging_Field4.bVCI;
-		}
-	case (PDU_BSSGP:{pDU_BSSGP_PAGING_CS:={?,?,?,{bVCI:=?},*,*,*,*,*}}) {
-		return pdu.pDU_BSSGP_PAGING_CS.paging_Field4.bVCI;
-		}
-	case else {
-		return omit;
+	/* 10.3.5 */
+	template (value) PDU_BSSGP
+	ts_BSSGP_RADIO_STATUS(GprsTlli tlli, template (value) BssgpRadioCause cause) := {
+		pDU_BSSGP_RADIO_STATUS := {
+			bssgpPduType := '0a'O,
+			tLLI := ts_BSSGP_TLLI(tlli),
+			tMSI := omit,
+			iMSI := omit,
+			radio_Cause := ts_BSSGP_RADIO_CAUSE(cause)
 		}
 	}
-}
-
-/* extract the BVCI IE of given PDU + convert it to integer value */
-function f_BSSGP_BVCI_get(PDU_BSSGP pdu) return template (omit) BssgpBvci {
-	var template (omit) BVCI bvci_raw := f_BSSGP_BVCI_IE_get(pdu);
-	if (istemplatekind(bvci_raw, "omit")) {
-		return omit;
+	template (present) PDU_BSSGP
+	tr_BSSGP_RADIO_STATUS(template (present) GprsTlli tlli, template (present) BssgpRadioCause cause) := {
+		pDU_BSSGP_RADIO_STATUS := {
+			bssgpPduType := '0a'O,
+			tLLI := ts_BSSGP_TLLI(tlli),
+			tMSI := omit,
+			iMSI := omit,
+			radio_Cause := tr_BSSGP_RADIO_CAUSE(cause)
+		}
 	}
-	return oct2int(valueof(bvci_raw.unstructured_value));
-}
 
-/* 3GPP TS 23.003 2.6 */
-type enumerated TlliType {
-	TLLI_LOCAL,
-	TLLI_FOREIGN,
-	TLLI_RANDOM,
-	TLLI_AUXILIARY,
-	TLLI_RESERVED,
-	TLLI_G_RNTI,
-	TLLI_RAND_G_RNTI
-}
 
-/* 3GPP TS 23.003 2.6 */
-function f_gprs_tlli_type(OCT4 tlli) return TlliType {
-	var bitstring tllib := oct2bit(tlli);
-	if (substr(tllib, 0, 2) == '11'B) {
-		return TLLI_LOCAL;
-	} else if (substr(tllib, 0, 2) == '10'B) {
-		return TLLI_FOREIGN;
-	} else if (substr(tllib, 0, 5) == '01111'B) {
-		return TLLI_RANDOM;
-	} else if (substr(tllib, 0, 4) == '0110'B) {
-		return TLLI_RESERVED;
-	} else if (substr(tllib, 0, 3) == '010'B) {
-		return TLLI_RESERVED;
-	} else if (substr(tllib, 0, 4) == '0000'B) {
-		return TLLI_G_RNTI;
-	} else if (substr(tllib, 0, 4) == '0001'B) {
-		return TLLI_RAND_G_RNTI;
-	} else {
-		setverdict(fail, "Unknonw TLLI Type ", tllib);
-		mtc.stop;
+
+	/* PDU permitted on PTP BVC only (TS 48.018 Section 5.4.1) */
+	template (present) PDU_BSSGP tr_BSSGP_PERMITTED_PTP_ONLY := (
+		{pDU_BSSGP_DL_UNITDATA := ?},
+		{pDU_BSSGP_UL_UNITDATA := ?},
+		{pDU_BSSGP_RA_CAPABILITY := ?},
+		{pDU_BSSGP_RA_CAPABILITY_UPDATE := ?},
+		{pDU_BSSGP_RA_CAPABILITY_UPDATE_ACK := ?},
+		{pDU_BSSGP_RADIO_STATUS := ?},
+		{pDU_BSSGP_FLOW_CONTROL_BVC := ?},
+		{pDU_BSSGP_FLOW_CONTROL_BVC_ACK := ?},
+		{pDU_BSSGP_FLOW_CONTROL_MS := ?},
+		{pDU_BSSGP_FLOW_CONTROL_MS_ACK := ?},
+		{pDU_BSSGP_FLOW_CONTROL_PFC := ?},
+		{pDU_BSSGP_FLOW_CONTROL_PFC_ACK := ?},
+		{pDU_BSSGP_DOWNLOAD_BSS_PFC := ?},
+		{pDU_BSSGP_CREATE_BSS_PFC := ?},
+		{pDU_BSSGP_CREATE_BSS_PFC_ACK := ?},
+		{pDU_BSSGP_CREATE_BSS_PFC_NACK := ?},
+		{pDU_BSSGP_MODIFY_BSS_PFC := ?},
+		{pDU_BSSGP_MODIFY_BSS_PFC_ACK := ?},
+		{pDU_BSSGP_DELETE_BSS_PFC := ?},
+		{pDU_BSSGP_DELETE_BSS_PFC_ACK := ?},
+		{pDU_BSSGP_DELETE_BSS_PFC_REQ := ?},
+		{pDU_BSSGP_PS_HANDOVER_REQUIRED := ?},
+		{pDU_BSSGP_PS_HANDOVER_REQUIRED_ACK := ?},
+		{pDU_BSSGP_PS_HANDOVER_REQUIRED_NACK := ?},
+		{pDU_BSSGP_PS_HANDOVER_REQUEST := ?},
+		{pDU_BSSGP_PS_HANDOVER_REQUEST_ACK := ?},
+		{pDU_BSSGP_PS_HANDOVER_REQUEST_NACK := ?},
+		{pDU_BSSGP_PS_HANDOVER_COMPLETE := ?},
+		{pDU_BSSGP_PS_HANDOVER_COMPLETE_ACK := ?},
+		{pDU_BSSGP_PS_HANDOVER_CANCEL := ?}
+	);
+
+	template (present) PDU_BSSGP tr_BSSGP_PERMITTED_PTP := (
+		tr_BSSGP_PERMITTED_PTP_ONLY,
+		{pDU_BSSGP_PAGING_PS := ?},
+		{pDU_BSSGP_PAGING_CS := ?},
+		{pDU_BSSGP_STATUS := ?}
+	);
+
+	/* PDU permitted on Signaling BVC only (TS 48.018 Section 5.4.1) */
+	template (present) PDU_BSSGP tr_BSSGP_PERMITTED_SIGN_ONLY := (
+		{pDU_BSSGP_SUSPEND := ?},
+		{pDU_BSSGP_SUSPEND_ACK := ?},
+		{pDU_BSSGP_SUSPEND_NACK := ?},
+		{pDU_BSSGP_RESUME := ?},
+		{pDU_BSSGP_RESUME_ACK := ?},
+		{pDU_BSSGP_RESUME_NACK := ?},
+		{pDU_BSSGP_FLUSH_LL := ?},
+		{pDU_BSSGP_FLUSH_LL_ACK := ?},
+		{pDU_BSSGP_LLC_DISCARDED := ?},
+		{pDU_BSSGP_BVC_BLOCK := ?},
+		{pDU_BSSGP_BVC_BLOCK_ACK := ?},
+		{pDU_BSSGP_BVC_UNBLOCK := ?},
+		{pDU_BSSGP_BVC_UNBLOCK_ACK := ?},
+		{pDU_BSSGP_BVC_RESET := ?},
+		{pDU_BSSGP_BVC_RESET_ACK := ?},
+		{pDU_BSSGP_SGSN_INVOKE_TRACE := ?},
+		{pDU_BSSGP_PERFORM_LOCATION_REQUEST := ?},
+		{pDU_BSSGP_PERFORM_LOCATION_RESPONSE := ?},
+		{pDU_BSSGP_PERFORM_LOCATION_ABORT := ?},
+		{pDU_BSSGP_POSITION_COMMAND := ?},
+		{pDU_BSSGP_POSITION_RESPONSE := ?},
+		{pDU_BSSGP_RAN_INFORMATION := ?},
+		{pDU_BSSGP_RAN_INFORMATION_REQUEST := ?},
+		{pDU_BSSGP_RAN_INFORMATION_ACK := ?},
+		{pDU_BSSGP_RAN_INFORMATION_ERROR := ?},
+		{pDU_BSSGP_RAN_INFORMATION_APPLICATION_ERROR := ?},
+		{pDU_BSSGP_MBMS_SESSION_START_REQUEST := ?},
+		{pDU_BSSGP_MBMS_SESSION_START_RESPONSE := ?},
+		{pDU_BSSGP_MBMS_SESSION_STOP_REQUEST := ?},
+		{pDU_BSSGP_MBMS_STOP_RESPONSE := ?},
+		{pDU_BSSGP_SESSION_UPDATE_REQUEST := ?},
+		{pDU_BSSGP_SESSION_UPDATE_RESPONSE := ?}
+	);
+
+	template (present) PDU_BSSGP tr_BSSGP_PERMITTED_SIGN := (
+		tr_BSSGP_PERMITTED_SIGN_ONLY,
+		{pDU_BSSGP_PAGING_PS := ?},
+		{pDU_BSSGP_PAGING_CS := ?},
+		{pDU_BSSGP_SUSPEND := ?},
+		{pDU_BSSGP_STATUS := ?}
+	);
+
+	/* PDU permitted on PTM BVC only (TS 48.018 Section 5.4.1) */
+	template (present) PDU_BSSGP tr_BSSGP_PERMITTED_PTM_ONLY := (
+		{pDU_BSSGP_DL_MBMS_UNITDATA := ?},
+		{pDU_BSSGP_UL_MBMS_UNITDATA := ?}
+	);
+
+	template (present) PDU_BSSGP tr_BSSGP_PERMITTED_PTM := (
+		tr_BSSGP_PERMITTED_PTM_ONLY,
+		{pDU_BSSGP_STATUS := ?}
+	);
+
+
+	/* Template for any PTP BVCI IE */
+	template (present) BVCI tr_BSSGP_IE_PtpBvci := {
+		iEI := '04'O,
+		ext := '1'B,
+		lengthIndicator := {
+			length1 := 2
+		},
+		unstructured_value := complement ('0000'O, '0001'O)
 	}
-}
 
-function f_gprs_tlli_random() return OCT4 {
-	var OCT4 tlli := f_rnd_octstring(4);
-	return tlli or4b 'c0000000'O;
-}
+	/* message on signaling PTP but containing a ptp BVC */
+	/*
+	template PDU_BSSGP tr_BSSGP_SIG_FOR_PTP(template Bvci bvci) := (
+		{pDU_BSSGP_FLUSH_LL:{?,?,tr_BSSGP_IE_PtpBvci, *, *}},
+		{pDU_BSSGP_FLUSH_LL_ACK:{?,?,?,tr_BSSGP_IE_PtpBvci, ?, *}},
+		{pDU_BSSGP_LLC_DISCARDED:{?,?,?,tr_BSSGP_IE_PtpBvci, ?, *}},
+		{pDU_BSSGP_BVC_BLOCK:{?,tr_BSSGP_IE_PtpBvci, ?}},
+		{pDU_BSSGP_BVC_BLOCK_ACK:{?,tr_BSSGP_IE_PtpBvci}},
+		{pDU_BSSGP_BVC_UNBLOCK:{?,tr_BSSGP_IE_PtpBvci}},
+		{pDU_BSSGP_BVC_UNBLOCK_ACK:{?,tr_BSSGP_IE_PtpBvci}},
+		{pDU_BSSGP_BVC_RESET:{?,tr_BSSGP_IE_PtpBvci,?,*,*,*}},
+		{pDU_BSSGP_BVC_RESET_ACK:{?,tr_BSSGP_IE_PtpBvci,*,*,*}},
+		{pDU_BSSGP_STATUS:{?,?,tr_BSSGP_IE_PtpBvci,*}},
+		{pDU_BSSGP_PERFORM_LOCATION_REQUEST:{?,?,?,*,tr_BSSGP_IE_PtpBvci,?,?,?,*,*,*,*,*,*,*,*,*}},
+		{pDU_BSSGP_PERFORM_LOCATION_RESPONSE:{?,?,tr_BSSGP_IE_PtpBvci,*,*,*,*,*,*}},
+		{pDU_BSSGP_PERFORM_LOCATION_ABORT:{?,?,tr_BSSGP_IE_PtpBvci,?}},
+		{pDU_BSSGP_POSITION_COMMAND:{
+	);
+	*/
 
+	/* extract the BVCI IE of given PDU + return it */
+	function f_BSSGP_BVCI_IE_get(PDU_BSSGP pdu) return template (omit) BVCI {
+		select (pdu) {
+		case (PDU_BSSGP:{pDU_BSSGP_FLUSH_LL:=?}) {
+			return pdu.pDU_BSSGP_FLUSH_LL.bVCI_old;
+			}
+		case (PDU_BSSGP:{pDU_BSSGP_FLUSH_LL_ACK:=?}) {
+			return pdu.pDU_BSSGP_FLUSH_LL_ACK.bVCI_new;
+			}
+		case (PDU_BSSGP:{pDU_BSSGP_LLC_DISCARDED:=?}) {
+			return pdu.pDU_BSSGP_LLC_DISCARDED.bVCI;
+			}
+		case (PDU_BSSGP:{pDU_BSSGP_BVC_BLOCK:=?}) {
+			return pdu.pDU_BSSGP_BVC_BLOCK.bVCI;
+			}
+		case (PDU_BSSGP:{pDU_BSSGP_BVC_BLOCK_ACK:=?}) {
+			return pdu.pDU_BSSGP_BVC_BLOCK_ACK.bVCI;
+			}
+		case (PDU_BSSGP:{pDU_BSSGP_BVC_UNBLOCK:=?}) {
+			return pdu.pDU_BSSGP_BVC_UNBLOCK.bVCI;
+			}
+		case (PDU_BSSGP:{pDU_BSSGP_BVC_UNBLOCK_ACK:=?}) {
+			return pdu.pDU_BSSGP_BVC_UNBLOCK_ACK.bVCI;
+			}
+		case (PDU_BSSGP:{pDU_BSSGP_BVC_RESET:=?}) {
+			return pdu.pDU_BSSGP_BVC_RESET.bVCI;
+			}
+		case (PDU_BSSGP:{pDU_BSSGP_BVC_RESET_ACK:=?}) {
+			return pdu.pDU_BSSGP_BVC_RESET_ACK.bVCI;
+			}
+		case (PDU_BSSGP:{pDU_BSSGP_STATUS:=?}) {
+			return pdu.pDU_BSSGP_STATUS.bVCI;
+			}
+		case (PDU_BSSGP:{pDU_BSSGP_PERFORM_LOCATION_REQUEST:=?}) {
+			return pdu.pDU_BSSGP_PERFORM_LOCATION_REQUEST.bVCI;
+			}
+		case (PDU_BSSGP:{pDU_BSSGP_PERFORM_LOCATION_RESPONSE:=?}) {
+			return pdu.pDU_BSSGP_PERFORM_LOCATION_RESPONSE.bVCI;
+			}
+		case (PDU_BSSGP:{pDU_BSSGP_PERFORM_LOCATION_ABORT:=?}) {
+			return pdu.pDU_BSSGP_PERFORM_LOCATION_ABORT.bVCI;
+			}
+		case (PDU_BSSGP:{pDU_BSSGP_POSITION_COMMAND:=?}) {
+			return pdu.pDU_BSSGP_POSITION_COMMAND.bVCI;
+			}
+		case (PDU_BSSGP:{pDU_BSSGP_POSITION_RESPONSE:=?}) {
+			return pdu.pDU_BSSGP_POSITION_RESPONSE.bVCI;
+			}
+		case (PDU_BSSGP:{pDU_BSSGP_PAGING_PS:={?,?,*,{bVCI:=?},*,*,?,*,*}}) {
+			return pdu.pDU_BSSGP_PAGING_PS.paging_Field4.bVCI;
+			}
+		case (PDU_BSSGP:{pDU_BSSGP_PAGING_CS:={?,?,?,{bVCI:=?},*,*,*,*,*}}) {
+			return pdu.pDU_BSSGP_PAGING_CS.paging_Field4.bVCI;
+			}
+		case else {
+			return omit;
+			}
+		}
+	}
 
+	/* extract the BVCI IE of given PDU + convert it to integer value */
+	function f_BSSGP_BVCI_get(PDU_BSSGP pdu) return template (omit) BssgpBvci {
+		var template (omit) BVCI bvci_raw := f_BSSGP_BVCI_IE_get(pdu);
+		if (istemplatekind(bvci_raw, "omit")) {
+			return omit;
+		}
+		return oct2int(valueof(bvci_raw.unstructured_value));
+	}
+
+	/* 3GPP TS 23.003 2.6 */
+	type enumerated TlliType {
+		TLLI_LOCAL,
+		TLLI_FOREIGN,
+		TLLI_RANDOM,
+		TLLI_AUXILIARY,
+		TLLI_RESERVED,
+		TLLI_G_RNTI,
+		TLLI_RAND_G_RNTI
+	}
+
+	/* 3GPP TS 23.003 2.6 */
+	function f_gprs_tlli_type(OCT4 tlli) return TlliType {
+		var bitstring tllib := oct2bit(tlli);
+		if (substr(tllib, 0, 2) == '11'B) {
+			return TLLI_LOCAL;
+		} else if (substr(tllib, 0, 2) == '10'B) {
+			return TLLI_FOREIGN;
+		} else if (substr(tllib, 0, 5) == '01111'B) {
+			return TLLI_RANDOM;
+		} else if (substr(tllib, 0, 4) == '0110'B) {
+			return TLLI_RESERVED;
+		} else if (substr(tllib, 0, 3) == '010'B) {
+			return TLLI_RESERVED;
+		} else if (substr(tllib, 0, 4) == '0000'B) {
+			return TLLI_G_RNTI;
+		} else if (substr(tllib, 0, 4) == '0001'B) {
+			return TLLI_RAND_G_RNTI;
+		} else {
+			setverdict(fail, "Unknonw TLLI Type ", tllib);
+			mtc.stop;
+		}
+	}
+
+	function f_gprs_tlli_random() return OCT4 {
+		var OCT4 tlli := f_rnd_octstring(4);
+		return tlli or4b 'c0000000'O;
+	}
 
 } with { encode "RAW" };

-- 
To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21264
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: I4ca156b53dfe9daa190d52a7de46be56cf74099a
Gerrit-Change-Number: 21264
Gerrit-PatchSet: 2
Gerrit-Owner: daniel <dwillmann at sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: daniel <dwillmann at sysmocom.de>
Gerrit-Reviewer: pespin <pespin at sysmocom.de>
Gerrit-MessageType: merged
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osmocom.org/pipermail/gerrit-log/attachments/20201120/ae84e191/attachment.htm>


More information about the gerrit-log mailing list