gbproxy: Test for RA Capability procedure
Change-Id: If7e5a5cab1e445e0b4ef0466990e352143c31245
This commit is contained in:
parent
78d8db98b7
commit
6dc2ac471b
|
@ -640,10 +640,45 @@ testcase TC_dl_unitdata() runs on test_CT
|
|||
f_cleanup();
|
||||
}
|
||||
|
||||
private function f_TC_ra_capability(charstring id) runs on BSSGP_ConnHdlr {
|
||||
var integer i;
|
||||
|
||||
for (i := 0; i < 10; i := i+1) {
|
||||
var template (value) PDU_BSSGP pdu_tx := ts_BSSGP_RA_CAP(g_pars.tlli, { ts_RaCapRec_BSSGP });
|
||||
/* we cannot use pdu_tx as there are some subtle differences in the length field :/ */
|
||||
var template (present) PDU_BSSGP pdu_rx := tr_BSSGP_RA_CAP(g_pars.tlli, { tr_RaCapRec_BSSGP })
|
||||
|
||||
SGSN[0].send(pdu_tx);
|
||||
alt {
|
||||
[] PCU[0].receive(pdu_rx);
|
||||
[] PCU[0].receive {
|
||||
setverdict(fail, "SGSN Received unexpected");
|
||||
mtc.stop;
|
||||
}
|
||||
}
|
||||
}
|
||||
setverdict(pass);
|
||||
}
|
||||
testcase TC_ra_capability() runs on test_CT
|
||||
{
|
||||
var BSSGP_ConnHdlr vc_conn;
|
||||
f_init();
|
||||
|
||||
vc_conn := f_start_handler(refers(f_TC_ra_capability), testcasename(), g_pcu, g_sgsn, 3);
|
||||
vc_conn.done;
|
||||
/* TODO: start multiple handlers (UEs) on various cells on same and other NSEs */
|
||||
|
||||
f_cleanup();
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
control {
|
||||
execute( TC_BVC_bringup() );
|
||||
execute( TC_ul_unitdata() );
|
||||
execute( TC_dl_unitdata() );
|
||||
execute( TC_ra_capability() );
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -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 := (
|
||||
|
|
Loading…
Reference in New Issue