aboutsummaryrefslogtreecommitdiffstats
path: root/library
diff options
context:
space:
mode:
authorPau Espin Pedrol <pespin@sysmocom.de>2020-01-23 17:51:04 +0100
committerPau Espin Pedrol <pespin@sysmocom.de>2020-03-18 15:53:17 +0100
commit2422d1fa829d156ed7ea9343e2cdf0109034029d (patch)
tree717b698de481f7fdb776a3e3676fb3b8807f8ee2 /library
parente7cabe6f548e1f1bfc46219c5c534cb3dc6eaece (diff)
pcu: Introduce TC_mt_ping_pong_with_dl_racap
Allows checking how pcu parses MS RA Capabilities coming from SGSN. Change-Id: Iedd8ab278547471b72252743d93a0f9e11d7e787
Diffstat (limited to 'library')
-rw-r--r--library/Osmocom_Gb_Types.ttcn73
1 files changed, 71 insertions, 2 deletions
diff --git a/library/Osmocom_Gb_Types.ttcn b/library/Osmocom_Gb_Types.ttcn
index 3149e772..518ca800 100644
--- a/library/Osmocom_Gb_Types.ttcn
+++ b/library/Osmocom_Gb_Types.ttcn
@@ -1091,6 +1091,58 @@ octetstring sdu) := {
}
}
+ private function f_presece_bit_MultislotCap_GPRS_BSSGP(template (omit) MultislotCap_GPRS_BSSGP mscap_gprs) return BIT1 {
+ if (istemplatekind(mscap_gprs, "omit")) {
+ return '0'B;
+ }
+ return '1'B;
+ }
+ private function f_presece_bit_MultislotCap_EGPRS_BSSGP(template (omit) MultislotCap_EGPRS_BSSGP mscap_egprs) return BIT1 {
+ if (istemplatekind(mscap_egprs, "omit")) {
+ return '0'B;
+ }
+ return '1'B;
+ }
+ template (value) MSRACapabilityValuesRecord_BSSGP ts_RaCapRec_BSSGP(BIT4 att := '0001'B /* E-GSM */, template (omit) MultislotCap_GPRS_BSSGP mscap_gprs := omit, template (omit) MultislotCap_EGPRS_BSSGP mscap_egprs := omit) := {
+ mSRACapabilityValues := {
+ mSRACapabilityValuesExclude1111 := {
+ accessTechnType := att, /* E-GSM */
+ accessCapabilities := {
+ 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 := '1'B,
+ multislotcap := {
+ presenceBitHscsd := '0'B,
+ hscsdmultislotclass := omit,
+ presenceBitGprs := f_presece_bit_MultislotCap_GPRS_BSSGP(mscap_gprs),
+ gprsmultislot := mscap_gprs,
+ presenceBitSms := '0'B,
+ multislotCap_SMS := omit,
+ multislotCapAdditionsAfterRel97 := {
+ presenceBitEcsdmulti := '0'B,
+ ecsdmultislotclass := omit,
+ presenceBitEgprsmulti := f_presece_bit_MultislotCap_EGPRS_BSSGP(mscap_egprs),
+ multislotCap_EGPRS := mscap_egprs,
+ presenceBitDtmGprsmulti := '0'B,
+ multislotCapdtmgprsmultislotsubclass := omit
+ }
+ },
+ accessCapAdditionsAfterRel97 := omit
+ },
+ spare_bits := omit
+ }
+ }
+ },
+ presenceBitMSRACap := '0'B
+ };
+
template QoS_Profile_V t_defaultQos := {
peak_Bit_Rate := int2oct(80, 2),
precedence := '000'B,
@@ -1133,13 +1185,30 @@ octetstring sdu) := {
cnSpecificDRXCycleLength := '0000'B
}
- template PDU_BSSGP ts_BSSGP_DL_UD(GprsTlli tlli, octetstring pdu) := {
+ function ts_BSSGP_IE_MSRAcap_omit(template (omit) MSRadioAccessCapabilityV_BSSGP racap) return template (omit) MS_Radio_Access_Capability {
+ var template (omit) MS_Radio_Access_Capability ret;
+ if (istemplatekind(racap, "omit")) {
+ return omit;
+ } else {
+ ret := {
+ iEI := '00'O,
+ ext := '1'B,
+ lengthIndicator := {
+ length1 := 1
+ },
+ mSRadioAccessCapabilityV_BSSGP := racap
+ }
+ return ret;
+ }
+ }
+
+ template PDU_BSSGP ts_BSSGP_DL_UD(GprsTlli tlli, octetstring pdu, template (omit) MSRadioAccessCapabilityV_BSSGP racap := omit) := {
pDU_BSSGP_DL_UNITDATA := {
bssgpPduType := '00'O,
tLLI_current := tlli,
qoS_Profile := t_defaultQos,
pDU_Lifetime := t_DefaultLifetime(65535),
- mS_Radio_Access_Capability := omit,
+ mS_Radio_Access_Capability := ts_BSSGP_IE_MSRAcap_omit(racap),
priority := omit,
dRX_Parameters := omit,
iMSI := omit,