[MERGED] osmo-ttcn3-hacks[master]: L3_Templates: Add various GMM related templates

Harald Welte gerrit-no-reply at lists.osmocom.org
Fri Feb 16 19:09:12 UTC 2018


Harald Welte has submitted this change and it was merged.

Change subject: L3_Templates: Add various GMM related templates
......................................................................


L3_Templates: Add various GMM related templates

... needed for upcoming SGSN testing

Change-Id: I2026c5db3d709566dc3764515d3711b361d82a06
---
M library/L3_Templates.ttcn
1 file changed, 317 insertions(+), 1 deletion(-)

Approvals:
  Harald Welte: Looks good to me, approved
  Jenkins Builder: Verified



diff --git a/library/L3_Templates.ttcn b/library/L3_Templates.ttcn
index b506865..a3db409 100644
--- a/library/L3_Templates.ttcn
+++ b/library/L3_Templates.ttcn
@@ -10,12 +10,13 @@
  */
 
 import from General_Types all;
+import from Osmocom_Types all;
 import from MobileL3_Types all;
 import from MobileL3_CommonIE_Types all;
 import from MobileL3_MM_Types all;
 import from MobileL3_RRM_Types all;
 import from MobileL3_CC_Types all;
-//import from MobileL3_GMM_SM_Types all;
+import from MobileL3_GMM_SM_Types all;
 //import from MobileL3_SMS_Types all;
 
 
@@ -61,6 +62,13 @@
 			}
 		}
 	}
+}
+
+/* send template fro Mobile Identity (TMSI) */
+template MobileIdentityTLV ts_MI_TMSI_TLV(OCT4 tmsi) := {
+	elementIdentifier := '0000000'B, /* overwritten */
+	spare1 := '0'B,
+	mobileIdentityLV := ts_MI_TMSI_LV(tmsi)
 }
 
 private function f_enc_IMSI_L3(hexstring digits) return IMSI_L3 {
@@ -1155,6 +1163,314 @@
 	}
 }
 
+/***********************************************************************
+ * GPRS Mobility Management
+ ***********************************************************************/
+
+template (value) MSNetworkCapabilityV ts_GMM_MsNetCapV := {
+	gea1bit := '1'B,
+	smCapabilitiesviaDedicatedChannels := '1'B,
+	smCapabilitiesviaGPRSChannels := '0'B,
+	ucs2Support := '1'B,
+	ssScreeningIndicator := '01'B,
+	solSACapability := omit,
+	revisionLevelIndicatior := omit,
+	pFCFeatureMode := omit,
+	extendedGEAbits := omit,
+	lcsVAcapability := omit,
+	pSInterRATHOtoUTRANIuModeCapability := omit,
+	pSInterRATHOtoEUTRANS1ModeCapability := omit,
+	eMMCombinedProceduresCapability := omit,
+	iSRSupport := omit,
+	sRVCCtoGERANUTRANCapability := omit,
+	ePCCapability := omit,
+	nFCapability := omit,
+	gERANNertworkSharingCapability := omit,
+	spare_octets := omit
+};
+
+template (value) MSNetworkCapabilityLV ts_GMM_MsNetCapLV := {
+	lengthIndicator := 0, /* overwritten */
+	msNetworkCapabilityV := ts_GMM_MsNetCapV
+};
+
+type enumerated GprsAttachType {
+	GPRS_ATT_T_GPRS,
+	GPRS_ATT_T_GPRS_IMSI_COMBINED
+};
+
+function ts_GMM_AttachType(boolean combined := false, boolean follow_on_pending := false)
+return AttachTypeV {
+	var AttachTypeV att;
+	if (combined) {
+		att.attachType := '011'B;
+	} else {
+		att.attachType := '001'B;
+	}
+	att.for_l3 := bool2bit(combined);
+	return att;
+}
+
+type enumerated GprsUpdateType {
+	GPRS_UPD_T_RA	('000'B),
+	GPRS_UPD_T_RA_LA_COMBINED ('001'B),
+	GPRS_UPD_T_RA_LA_COMBINED_IMSI_ATT ('010'B),
+	GPRS_UPD_T_PERIODIC ('011'B)
+};
+
+/* 10.5.5.18 Update Type */
+template UpdateTypeV ts_GMM_UpdateType(GprsUpdateType upd_t, boolean combined := false,
+				       boolean follow_on_pending := false) := {
+	valueField := int2bit(enum2int(upd_t), 3),
+	for_l3 := bool2bit(combined)
+}
+
+template (value) DRXParameterV ts_DrxParameterV := {
+	splitPGCycleCode := '00'O, /* no DRX */
+	nonDRXTimer := '000'B, /* no non-DRX mode */
+	splitOnCCCH := '0'B, /* not supported */
+	cnSpecificDRXCycleLength := '0000'B /* SI value used */
+};
+
+template (value) AccessCapabilitiesStruct ts_AccesssCap := {
+	lengthIndicator := 0, /* overwritten */
+	accessCapabilities := {
+		rfPowerCapability := '001'B, /* FIXME */
+		presenceBitA5 := '0'B,
+		a5bits := omit,
+		esind := '1'B,
+		psbit := '0'B,
+		vgcs := '0'B,
+		vbs := '0'B,
+		presenceBitMultislot := '0'B,
+		multislotcap := omit,
+		accessCapAdditionsAfterRel97 := omit
+	},
+	spare_bits := omit
+}
+
+template (value) MSRACapabilityValuesRecord ts_RaCapRec(BIT4 att) := {
+	mSRACapabilityValues := {
+		mSRACapabilityValuesExclude1111 := {
+			accessTechnType := '0001'B, /* E-GSM */
+			accessCapabilities := ts_AccesssCap
+		}
+	},
+	presenceBitMSRACap := '0'B
+};
+
+template (value) MSRadioAccessCapabilityLV ts_MS_RaCapa := {
+	lengthIndicator := 0, /* overwritten */
+	msRadioAccessCapabilityV := {
+		ts_RaCapRec('0001'B) /* E-GSM */
+	}
+}
+
+template (value) PDU_L3_MS_SGSN
+	ts_GMM_ATTACH_REQ(MobileIdentityLV mi_lv, RoutingAreaIdentificationV old_ra,
+			  boolean combined := false, boolean follow_on_pending := false,
+			  template (omit) MobileStationClassmark2_TLV cm2_tlv,
+			  template (omit) MobileStationClassmark3_TLV cm3_tlv
+		) := {
+	discriminator := '0000'B, /* overwritten */
+	tiOrSkip := {
+		skipIndicator := '0000'B
+	},
+	msgs := {
+		gprs_mm := {
+			attachRequest := {
+				messageType := '00000000'B, /* overwritten */
+				msNetworkCapability := ts_GMM_MsNetCapLV,
+				attachType := valueof(ts_GMM_AttachType(combined, follow_on_pending)),
+				gprsCKSN := { '111'B, '0'B },
+				drxParam := ts_DrxParameterV,
+				mobileIdentity := mi_lv,
+				oldRoutingAreaID := old_ra,
+				msRACap := ts_MS_RaCapa,
+				ptmsiSignature := omit, /* TODO */
+				reqGPRStimer := omit,
+				tmsiStatus := omit,
+				pC_LCSCapability := omit,
+				mobileStationClassmark2 := cm2_tlv,
+				mobileStationClassmark3 := cm3_tlv,
+				supportedCodecs := omit,
+				uENetworkCapability := omit,
+				additionalMobileIdentity := omit,
+				routingAreaIdentification2 := omit,
+				voiceDomainandUEsUsageSetting := omit,
+				deviceProperties := omit,
+				p_TMSI_Type := omit,
+				mS_NetworkFeatureSupport := omit,
+				oldLocationAreaIdentification := omit,
+				additionalUpdateType := omit,
+				tMSIBasedNRIcontainer := omit,
+				t3324 := omit,
+				t3312_ExtendedValue := omit,
+				extendedDRXParameters := omit
+			}
+		}
+	}
+}
+
+
+template (value) PDU_L3_MS_SGSN ts_GMM_ATTACH_COMPL := {
+	discriminator := '0000'B, /* overwritten */
+	tiOrSkip := {
+		skipIndicator := '0000'B
+	},
+	msgs := {
+		gprs_mm := {
+			attachComplete := {
+				messageType := '00000000'B, /* overwritten */
+				interRATHandoverInformation := omit,
+				eUTRANinterRATHandoverInformation := omit
+			}
+		}
+	}
+}
+
+template (value) PDU_L3_MS_SGSN
+	ts_GMM_RAU_REQ(MobileIdentityLV mi_lv, GprsUpdateType upd_type,
+			  RoutingAreaIdentificationV old_ra,
+			  boolean follow_on_pending := false,
+			  template (omit) MobileStationClassmark2_TLV cm2_tlv,
+			  template (omit) MobileStationClassmark3_TLV cm3_tlv
+		) := {
+	discriminator := '0000'B, /* overwritten */
+	tiOrSkip := {
+		skipIndicator := '0000'B
+	},
+	msgs := {
+		gprs_mm := {
+			routingAreaUpdateRequest := {
+				messageType := '00000000'B, /* overwritten */
+				updateType := ts_GMM_UpdateType(upd_type, follow_on_pending),
+				gprsCKSN := { '111'B, '0'B },
+				oldRoutingAreaId := old_ra,
+				msRACap := ts_MS_RaCapa,
+				oldPTMSISignature := omit, /* TODO */
+				readyTimerValue := omit,
+				drxParameter := omit,
+				tmsiStatus := omit,
+				ptmsi := omit,
+				mSNetworkCapability := omit,
+				pdpContextStatus := omit, /* TODO */
+				pC_LCSCapability := omit,
+				uENetworkCapability := omit,
+				additionalMobileIdentity := omit,
+				oldRoutingAreaIdentification2 := omit,
+				mobileStationClassmark2 := cm2_tlv,
+				mobileStationClassmark3 := cm3_tlv,
+				supportedCodecs := omit,
+				voiceDomainUEUsageSetting := omit,
+				p_TMSI_Type := omit,
+				deviceProperties := omit,
+				mS_NetworkFeatureSupport := omit,
+				oldLocationAreaIdentification := omit,
+				additionalUpdateType := omit,
+				tMSIBasedNRIcontainer := omit,
+				t3324 := omit,
+				t3312_ExtendedValue := omit,
+				extendedDRXParameters := omit
+			}
+		}
+	}
+}
+
+template (value) PDU_L3_MS_SGSN ts_GMM_RAU_COMPL := {
+	discriminator := '0000'B, /* overwritten */
+	tiOrSkip := {
+		skipIndicator := '0000'B
+	},
+	msgs := {
+		gprs_mm := {
+			routingAreaUpdateComplete := {
+				messageType := '00000000'B, /* overwritten */
+				receiveNPDUNumbers := omit,
+				interRATHandoverInformation := omit,
+				eUTRANinterRATHandoverInformation := omit
+			}
+		}
+	}
+}
+
+template (value) PDU_L3_MS_SGSN ts_GMM_PTMSI_REALL_COMPL := {
+	discriminator := '0000'B, /* overwritten */
+	tiOrSkip := {
+		skipIndicator := '0000'B
+	},
+	msgs := {
+		gprs_mm := {
+			p_TMSIReallocationComplete := {
+				messageType := '00000000'B /* overwritten */
+			}
+		}
+	}
+}
+
+template (value) PDU_L3_MS_SGSN ts_GMM_AUTH_CIPH_COMPL(ACReferenceNumberV ref, OCT4 res) := {
+	discriminator := '0000'B, /* overwritten */
+	tiOrSkip := {
+		skipIndicator := '0000'B
+	},
+	msgs := {
+		gprs_mm := {
+			authenticationAndCipheringResponse := {
+				messageType := '00000000'B, /* overwritten */
+				acReferenceNumber := ref,
+				spare := '0000'B,
+				authenticationParResp := {
+					elementIdentifier := '22'O,
+					valueField := res
+				},
+				imeisv := omit,
+				authenticationRespParExt := omit
+			}
+		}
+	}
+}
+
+template (value) PDU_L3_MS_SGSN ts_GMM_ID_RESP(MobileIdentityLV mi_lv) := {
+	discriminator := '0000'B, /* overwritten */
+	tiOrSkip := {
+		skipIndicator := '0000'B
+	},
+	msgs := {
+		gprs_mm := {
+			identityResponse := {
+				messageType := '00000000'B, /* overwritten */
+				mobileIdentity := mi_lv
+			}
+		}
+	}
+}
+
+const BIT3 c_GMM_DTT_MO_GPRS := '001'B;
+const BIT3 c_GMM_DTT_MO_IMSI := '010'B;
+const BIT3 c_GMM_DTT_MO_GPRS_IMSI_COMBINED := '011'B;
+
+template (value) DetachTypeV ts_GMM_DetType(BIT3 dtt) := {
+	detachType := dtt,
+	powerOffFlag := '0'B
+}
+
+template (value) PDU_L3_MS_SGSN ts_GMM_DET_REQ_MO(BIT3 dtt := c_GMM_DTT_MO_GPRS) := {
+	discriminator := '0000'B, /* overwritten */
+	tiOrSkip := {
+		skipIndicator := '0000'B
+	},
+	msgs := {
+		gprs_mm := {
+			detachRequest_MS_SGSN := {
+				messageType := '00000000'B, /* overwritten */
+				detachType := valueof(ts_GMM_DetType(dtt)),
+				spare := '0000'B,
+				ptmsi := omit, /* TODO */
+				ptmsiSignature := omit /* TODO */
+			}
+		}
+	}
+}
 
 
 }

-- 
To view, visit https://gerrit.osmocom.org/6528
To unsubscribe, visit https://gerrit.osmocom.org/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: I2026c5db3d709566dc3764515d3711b361d82a06
Gerrit-PatchSet: 4
Gerrit-Project: osmo-ttcn3-hacks
Gerrit-Branch: master
Gerrit-Owner: Harald Welte <laforge at gnumonks.org>
Gerrit-Reviewer: Harald Welte <laforge at gnumonks.org>
Gerrit-Reviewer: Jenkins Builder


More information about the gerrit-log mailing list