bsc: replace octet string with decmatch when matching RR RELEASE
The 'decmatch' keyword allows us to match the decoded version of some octetstring, which is very useful in the situations where we have the L3 message only as octetstring but want to check if it matches some L3 template. Change-Id: I0a91e067f7e8062bf991fef8b0d4d8da740bfafc
This commit is contained in:
parent
cc32ed9096
commit
924b6ea17b
|
@ -62,7 +62,6 @@ const float T3101_MAX := 12.0;
|
|||
const integer NUM_TCHH_PER_BTS := 2;
|
||||
const integer NUM_TCHF_PER_BTS := 4;
|
||||
const integer NUM_SDCCH_PER_BTS := 4;
|
||||
template octetstring t_l3_rr_chan_rel := '060D??*'O;
|
||||
|
||||
|
||||
/* per-BTS state which we keep */
|
||||
|
@ -872,7 +871,7 @@ function f_expect_chan_rel(integer bts_nr, RslChannelNr rsl_chan_nr,
|
|||
got_deact_sacch := true;
|
||||
repeat;
|
||||
}
|
||||
[] IPA_RSL[bts_nr].receive(tr_ASP_RSL_UD(IPAC_PROTO_RSL_TRX0, tr_RSL_DATA_REQ(rsl_chan_nr, ?, t_l3_rr_chan_rel))) {
|
||||
[] IPA_RSL[bts_nr].receive(tr_ASP_RSL_UD(IPAC_PROTO_RSL_TRX0, tr_RSL_DATA_REQ(rsl_chan_nr, ?, decmatch tr_RRM_RR_RELEASE))) {
|
||||
got_rr_chan_rel := true;
|
||||
repeat;
|
||||
}
|
||||
|
@ -2816,7 +2815,7 @@ private function f_tc_ho_out_fail_no_ho_detect(charstring id) runs on MSC_ConnHd
|
|||
[] RSL.receive(tr_RSL_DEACT_SACCH(g_chan_nr)) {
|
||||
log("Got Deact SACCH");
|
||||
}
|
||||
[] RSL.receive(tr_RSL_DATA_REQ(g_chan_nr, ?, t_l3_rr_chan_rel)) {
|
||||
[] RSL.receive(tr_RSL_DATA_REQ(g_chan_nr, ?, decmatch tr_RRM_RR_RELEASE)) {
|
||||
log("Got RR Release");
|
||||
}
|
||||
[] RSL.receive(tr_RSL_MsgTypeD(RSL_MT_RF_CHAN_REL)) {
|
||||
|
|
|
@ -702,7 +702,7 @@ testcase TC_lcls_connect_clear() runs on lcls_test_CT {
|
|||
var myBSSMAP_Cause cause_val := GSM0808_CAUSE_CALL_CONTROL;
|
||||
CONN_A.send(ts_BSSMAP_ClearCommand(enum2int(cause_val)));
|
||||
interleave {
|
||||
[] CONN_A.receive(tr_RSL_DATA_REQ(?, tr_RslLinkID_DCCH(0), t_l3_rr_chan_rel));
|
||||
[] CONN_A.receive(tr_RSL_DATA_REQ(?, tr_RslLinkID_DCCH(0), decmatch tr_RRM_RR_RELEASE));
|
||||
[] CONN_A.receive(tr_RSL_DEACT_SACCH(?));
|
||||
[] CONN_A.receive(tr_RSL_RF_CHAN_REL(?)) -> value rsl {
|
||||
var RSL_IE_Body ieb;
|
||||
|
|
|
@ -660,6 +660,37 @@ template PDU_ML3_MS_NW tr_RRM_RR_STATUS(template OCT1 cause := ?) := {
|
|||
}
|
||||
}
|
||||
|
||||
template PDU_ML3_NW_MS tr_RRM_RR_RELEASE(template OCT1 cause := ?) := {
|
||||
discriminator := '0110'B,
|
||||
tiOrSkip := {
|
||||
skipIndicator := '0000'B
|
||||
},
|
||||
msgs := {
|
||||
rrm := {
|
||||
channelRelease := {
|
||||
messageType := '00001101'B,
|
||||
rRCause := {
|
||||
valuePart := cause
|
||||
},
|
||||
bARange := *,
|
||||
groupChannelDescription := *,
|
||||
groupCipherKeyNumber := *,
|
||||
gPRSResumption := *,
|
||||
bAListPref := *,
|
||||
uTRANFrequencyList := *,
|
||||
cellChannelDescr := *,
|
||||
cellSelectionIndicator := *,
|
||||
enhanced_DTM_CS_Release_Indication := *,
|
||||
vGCS_Ciphering_Parameters := *,
|
||||
group_Channel_Description_2 := *,
|
||||
talkerIdentity := *,
|
||||
talkerPriorityStatus := *,
|
||||
vGCS_AMR_Configuration := *,
|
||||
individual_Priorities := *
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
template PDU_ML3_MS_NW ts_ML3_MO := {
|
||||
|
|
Loading…
Reference in New Issue