Add LAPDm test case about SABM contention
This commit is contained in:
parent
dca7e45ce8
commit
599faa1d18
|
@ -44,7 +44,7 @@ module L1CTL_Test {
|
||||||
lapdm := frame
|
lapdm := frame
|
||||||
}
|
}
|
||||||
/* template for a valid SABM frame */
|
/* template for a valid SABM frame */
|
||||||
template LapdmFrame LAPDm_B_SABM(template GsmSapi sapi, template octetstring payload) := {
|
template LapdmFrame LAPDm_B_SABM(template GsmSapi sapi, octetstring payload) := {
|
||||||
b := {
|
b := {
|
||||||
addr := tr_LapdmAddr(sapi, false),
|
addr := tr_LapdmAddr(sapi, false),
|
||||||
ctrl := t_LapdmCtrlSABM(true),
|
ctrl := t_LapdmCtrlSABM(true),
|
||||||
|
@ -56,7 +56,19 @@ module L1CTL_Test {
|
||||||
}
|
}
|
||||||
|
|
||||||
/* template for a valid UA frame */
|
/* template for a valid UA frame */
|
||||||
template LapdmFrame LAPDm_B_UA(template GsmSapi sapi, template octetstring payload) := {
|
template LapdmFrame tr_LAPDm_B_UA(template GsmSapi sapi, template octetstring payload) := {
|
||||||
|
b := {
|
||||||
|
addr := tr_LapdmAddr(sapi, false),
|
||||||
|
ctrl := t_LapdmCtrlUA(true),
|
||||||
|
len := ?,
|
||||||
|
m := false,
|
||||||
|
el := 1,
|
||||||
|
payload := payload
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* template for a valid UA frame */
|
||||||
|
template LapdmFrame LAPDm_B_UA(template GsmSapi sapi, octetstring payload) := {
|
||||||
b := {
|
b := {
|
||||||
addr := tr_LapdmAddr(sapi, false),
|
addr := tr_LapdmAddr(sapi, false),
|
||||||
ctrl := t_LapdmCtrlUA(true),
|
ctrl := t_LapdmCtrlUA(true),
|
||||||
|
@ -68,7 +80,7 @@ module L1CTL_Test {
|
||||||
}
|
}
|
||||||
|
|
||||||
/* template for a valid UI frame */
|
/* template for a valid UI frame */
|
||||||
template LapdmFrame LAPDm_B_UI(template GsmSapi sapi, template octetstring payload) := {
|
template LapdmFrame LAPDm_B_UI(template GsmSapi sapi, octetstring payload) := {
|
||||||
b := {
|
b := {
|
||||||
addr := tr_LapdmAddr(sapi, true),
|
addr := tr_LapdmAddr(sapi, true),
|
||||||
ctrl := t_LapdmCtrlUI(false),
|
ctrl := t_LapdmCtrlUI(false),
|
||||||
|
@ -130,6 +142,33 @@ module L1CTL_Test {
|
||||||
setverdict(pass);
|
setverdict(pass);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
testcase TC_sabm_contention() runs on dummy_CT {
|
||||||
|
var LAPDm_ph_data phd;
|
||||||
|
const octetstring payload := '0102030405'O;
|
||||||
|
const GsmSapi sapi := 0;
|
||||||
|
const boolean use_sacch := false;
|
||||||
|
timer T := 5.0;
|
||||||
|
|
||||||
|
f_init();
|
||||||
|
|
||||||
|
f_establish_dcch();
|
||||||
|
/* first frame is our real SABM */
|
||||||
|
LAPDM.send(t_PH_DATA(sapi, use_sacch, LAPDm_B_SABM(sapi, payload)));
|
||||||
|
/* second frame is a SABM with different payload, which BTS has to ignore according to 8.4.1.4 */
|
||||||
|
LAPDM.send(t_PH_DATA(sapi, use_sacch, LAPDm_B_SABM(sapi, 'ABCDEF'O)));
|
||||||
|
log("====> expecting ", t_PH_DATA(sapi, use_sacch, LAPDm_B_UA(sapi, payload)));
|
||||||
|
T.start
|
||||||
|
alt {
|
||||||
|
[] LAPDM.receive(t_PH_DATA(?, use_sacch, LAPDm_B_UA(sapi, payload))) { setverdict(pass); repeat; }
|
||||||
|
[] LAPDM.receive(t_PH_DATA(?, use_sacch, tr_LAPDm_B_UA(sapi, ?))) {
|
||||||
|
setverdict(fail, "Second SABM was responded to during contention resolution");
|
||||||
|
}
|
||||||
|
[] LAPDM.receive { repeat };
|
||||||
|
[] T.timeout { }
|
||||||
|
}
|
||||||
|
f_release_dcch();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
testcase TC_foo() runs on dummy_CT {
|
testcase TC_foo() runs on dummy_CT {
|
||||||
/*
|
/*
|
||||||
|
@ -155,10 +194,9 @@ module L1CTL_Test {
|
||||||
control {
|
control {
|
||||||
execute(TC_foo());
|
execute(TC_foo());
|
||||||
execute(TC_sabm_ua_dcch_sapi0());
|
execute(TC_sabm_ua_dcch_sapi0());
|
||||||
/*
|
|
||||||
execute(TC_sabm_ua_dcch_sapi0_nopayload());
|
execute(TC_sabm_ua_dcch_sapi0_nopayload());
|
||||||
execute(TC_sabm_ua_dcch_sapi3());
|
execute(TC_sabm_ua_dcch_sapi3());
|
||||||
execute(TC_sabm_ua_dcch_sapi4());
|
execute(TC_sabm_ua_dcch_sapi4());
|
||||||
*/
|
execute(TC_sabm_contention());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue