summaryrefslogtreecommitdiffstats
path: root/library
diff options
context:
space:
mode:
authorHarald Welte <laforge@osmocom.org>2020-11-16 09:16:17 +0100
committerDaniel Willmann <dwillmann@sysmocom.de>2020-11-16 20:32:20 +0100
commit6dc2ac471b14849fe9e4d41b6bce4f18c443f72d (patch)
tree7bbf8814d7f1fda27d4ac38b84beeb68b8847667 /library
parent78d8db98b76a7d32df4952d6e4d607799075ee75 (diff)
gbproxy: Test for RA Capability procedure
Diffstat (limited to 'library')
-rw-r--r--library/Osmocom_Gb_Types.ttcn141
1 files changed, 140 insertions, 1 deletions
diff --git a/library/Osmocom_Gb_Types.ttcn b/library/Osmocom_Gb_Types.ttcn
index 8271ced..82fdb07 100644
--- a/library/Osmocom_Gb_Types.ttcn
+++ b/library/Osmocom_Gb_Types.ttcn
@@ -929,6 +929,43 @@ octetstring sdu) := {
return ret;
}
+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 (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 PDU_BSSGP ts_BVC_RESET(BssgpCause cause, BssgpBvci bvci,
template BssgpCellId cell_id) := {
pDU_BSSGP_BVC_RESET := {
@@ -1204,6 +1241,48 @@ octetstring sdu) := {
},
presenceBitMSRACap := '0'B
};
+ template (present) MSRACapabilityValuesRecord_BSSGP
+ tr_RaCapRec_BSSGP(template (present) BIT4 att := '0001'B /* E-GSM */, template MultislotCap_GPRS_BSSGP mscap_gprs := *,
+ template MultislotCap_EGPRS_BSSGP mscap_egprs := *) := {
+ mSRACapabilityValues := {
+ mSRACapabilityValuesExclude1111 := {
+ accessTechnType := att, /* E-GSM */
+ accessCapabilities := {
+ lengthIndicator := ?, /* overwritten */
+ accessCapabilities := {
+ rfPowerCapability := '001'B, /* FIXME */
+ presenceBitA5 := ?,
+ a5bits := *,
+ esind := '1'B,
+ psbit := '0'B,
+ vgcs := '0'B,
+ vbs := '0'B,
+ presenceBitMultislot := '1'B,
+ multislotcap := {
+ presenceBitHscsd := '0'B,
+ hscsdmultislotclass := omit,
+ presenceBitGprs := ?,
+ gprsmultislot := mscap_gprs,
+ presenceBitSms := '0'B,
+ multislotCap_SMS := omit,
+ multislotCapAdditionsAfterRel97 := {
+ presenceBitEcsdmulti := '0'B,
+ ecsdmultislotclass := *,
+ presenceBitEgprsmulti := ?,
+ multislotCap_EGPRS := mscap_egprs,
+ presenceBitDtmGprsmulti := ?,
+ multislotCapdtmgprsmultislotsubclass := *
+ }
+ },
+ accessCapAdditionsAfterRel97 := *
+ },
+ spare_bits := *
+ }
+ }
+ },
+ presenceBitMSRACap := '0'B
+ };
+
template QoS_Profile_V t_defaultQos := {
peak_Bit_Rate := int2oct(80, 2),
@@ -1253,7 +1332,7 @@ octetstring sdu) := {
return omit;
} else {
ret := {
- iEI := '00'O,
+ iEI := '13'O,
ext := '1'B,
lengthIndicator := {
length1 := 1
@@ -1264,6 +1343,21 @@ octetstring sdu) := {
}
}
+ function tr_BSSGP_IE_MSRAcap(template MSRadioAccessCapabilityV_BSSGP racap) return template MS_Radio_Access_Capability {
+ var template MS_Radio_Access_Capability ret;
+ if (istemplatekind(racap, "omit")) {
+ return omit;
+ } else {
+ ret := {
+ iEI := '13'O,
+ ext := ?,
+ lengthIndicator := ?,
+ mSRadioAccessCapabilityV_BSSGP := racap
+ }
+ return ret;
+ }
+ }
+
template PDU_BSSGP ts_BSSGP_DL_UD(GprsTlli tlli, octetstring pdu,
template (omit) MSRadioAccessCapabilityV_BSSGP racap := omit,
template (omit) IMSI_BSSGP imsi := omit) := {
@@ -1589,6 +1683,51 @@ octetstring sdu) := {
}
}
+/* 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)
+ }
+}
+
+
+/* 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.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)
+ }
+}
+
+
+
+
/* PDU permitted on PTP BVC only (TS 48.018 Section 5.4.1) */
template (present) PDU_BSSGP tr_BSSGP_PERMITTED_PTP_ONLY := (