diff options
author | Pau Espin Pedrol <pespin@sysmocom.de> | 2020-01-23 17:51:04 +0100 |
---|---|---|
committer | Pau Espin Pedrol <pespin@sysmocom.de> | 2020-03-18 15:53:17 +0100 |
commit | 2422d1fa829d156ed7ea9343e2cdf0109034029d (patch) | |
tree | 717b698de481f7fdb776a3e3676fb3b8807f8ee2 /library | |
parent | e7cabe6f548e1f1bfc46219c5c534cb3dc6eaece (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.ttcn | 73 |
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, |