hnbgw: Add test to check for duplicate hnb registrations
Change-Id: Ib20d07ffabb91dfa82c212aaa363cafc7496bba8 Related: OS#6084
This commit is contained in:
parent
6d2d8885c8
commit
c79679a2de
|
@ -208,7 +208,7 @@ function f_create_ranap_exp(octetstring l3_enc) runs on ConnHdlr {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
const integer NUM_HNB := 1;
|
const integer NUM_HNB := 2;
|
||||||
|
|
||||||
type record HnbConfig {
|
type record HnbConfig {
|
||||||
LocationAreaIdentification lai,
|
LocationAreaIdentification lai,
|
||||||
|
@ -320,13 +320,6 @@ function f_init_hnodeb(charstring id, integer hnb_idx, RuaOps rua_ops) runs on t
|
||||||
/* global initialization function */
|
/* global initialization function */
|
||||||
function f_init(charstring id := "HNBGW", float guard_timeout := 30.0) runs on test_CT {
|
function f_init(charstring id := "HNBGW", float guard_timeout := 30.0) runs on test_CT {
|
||||||
|
|
||||||
g_hnb_cfg[0] := {
|
|
||||||
lai := {
|
|
||||||
mcc_mnc := '00101'H,
|
|
||||||
lac := 2342
|
|
||||||
},
|
|
||||||
sac := 55
|
|
||||||
}
|
|
||||||
T_guard.start(guard_timeout);
|
T_guard.start(guard_timeout);
|
||||||
activate(as_Tguard());
|
activate(as_Tguard());
|
||||||
|
|
||||||
|
@ -336,6 +329,13 @@ function f_init(charstring id := "HNBGW", float guard_timeout := 30.0) runs on t
|
||||||
unitdata_cb := refers(IuhRanapUnitdataCallback)
|
unitdata_cb := refers(IuhRanapUnitdataCallback)
|
||||||
};
|
};
|
||||||
for (var integer i := 0; i < NUM_HNB; i := i+1) {
|
for (var integer i := 0; i < NUM_HNB; i := i+1) {
|
||||||
|
g_hnb_cfg[i] := {
|
||||||
|
lai := {
|
||||||
|
mcc_mnc := '00101'H,
|
||||||
|
lac := 2342 + i
|
||||||
|
},
|
||||||
|
sac := 55
|
||||||
|
};
|
||||||
f_init_hnodeb(testcasename(), i, rua_ops);
|
f_init_hnodeb(testcasename(), i, rua_ops);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -374,7 +374,7 @@ friend function f_shutdown_helper() runs on test_CT {
|
||||||
/* helper function to start all of the simulated hNodeBs */
|
/* helper function to start all of the simulated hNodeBs */
|
||||||
function f_start_hnbs() runs on test_CT {
|
function f_start_hnbs() runs on test_CT {
|
||||||
for (var integer i:= 0; i < NUM_HNB; i := i+1) {
|
for (var integer i:= 0; i < NUM_HNB; i := i+1) {
|
||||||
f_hnbap_register(i);
|
f_hnbap_register(i, i);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -634,13 +634,13 @@ friend function f_build_rab_ass_resp(TestHdlrParams pars) return RANAP_PDU {
|
||||||
***********************************************************************/
|
***********************************************************************/
|
||||||
|
|
||||||
|
|
||||||
function f_hnbap_register(integer hnb_idx := 0) runs on test_CT
|
function f_hnbap_register(integer hnb_idx := 0, integer cell_id := 0, boolean expect_reject := false) runs on test_CT
|
||||||
{
|
{
|
||||||
timer T := 2.0;
|
timer T := 2.0;
|
||||||
|
|
||||||
HNBAP[hnb_idx].send(tr_HNBAP_HNBRegisterRequest(char2oct("TTCN3 HNodeB"),
|
HNBAP[hnb_idx].send(tr_HNBAP_HNBRegisterRequest(char2oct("TTCN3 HNodeB"),
|
||||||
'00F110'O,
|
'00F110'O,
|
||||||
int2bit(1 + hnb_idx, 28),
|
int2bit(1 + cell_id, 28),
|
||||||
int2oct(2, 2),
|
int2oct(2, 2),
|
||||||
int2oct(3, 1),
|
int2oct(3, 1),
|
||||||
int2oct(4, 2)));
|
int2oct(4, 2)));
|
||||||
|
@ -648,13 +648,24 @@ function f_hnbap_register(integer hnb_idx := 0) runs on test_CT
|
||||||
T.start;
|
T.start;
|
||||||
alt {
|
alt {
|
||||||
[] HNBAP[hnb_idx].receive(tr_HNBAP_HNBRegisterAccept(?)) {
|
[] HNBAP[hnb_idx].receive(tr_HNBAP_HNBRegisterAccept(?)) {
|
||||||
setverdict(pass);
|
if (expect_reject) {
|
||||||
|
setverdict(fail, "Rx HNB Register Accept while expecting reject");
|
||||||
|
} else {
|
||||||
|
setverdict(pass);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
[] HNBAP[hnb_idx].receive(tr_HNBAP_HNBRegisterReject(?)) {
|
||||||
|
if (expect_reject) {
|
||||||
|
setverdict(pass);
|
||||||
|
} else {
|
||||||
|
setverdict(fail, "Rx HNB Register Reject while expecting accept");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
[] HNBAP[hnb_idx].receive(IUHEM_Event:?) {
|
[] HNBAP[hnb_idx].receive(IUHEM_Event:?) {
|
||||||
repeat;
|
repeat;
|
||||||
}
|
}
|
||||||
[] T.timeout {
|
[] T.timeout {
|
||||||
setverdict(fail, "Timeout waiting for HNB Register Accept");
|
setverdict(fail, "Timeout waiting for HNB Register response");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -665,6 +676,14 @@ testcase TC_hnb_register() runs on test_CT {
|
||||||
f_shutdown_helper();
|
f_shutdown_helper();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
testcase TC_hnb_register_duplicate() runs on test_CT {
|
||||||
|
f_init();
|
||||||
|
f_hnbap_register(0);
|
||||||
|
f_hnbap_register(1, 0, expect_reject := true);
|
||||||
|
f_verify_talloc_count(HNBGWVTY, {"struct hnb_context"}, expect_count := 1);
|
||||||
|
f_shutdown_helper();
|
||||||
|
}
|
||||||
|
|
||||||
/***********************************************************************
|
/***********************************************************************
|
||||||
* RUA / RANAP Testing
|
* RUA / RANAP Testing
|
||||||
***********************************************************************/
|
***********************************************************************/
|
||||||
|
@ -1322,6 +1341,7 @@ testcase TC_ps_rab_assignment() runs on test_CT {
|
||||||
|
|
||||||
control {
|
control {
|
||||||
execute(TC_hnb_register());
|
execute(TC_hnb_register());
|
||||||
|
execute(TC_hnb_register_duplicate());
|
||||||
execute(TC_ranap_cs_initial_ue());
|
execute(TC_ranap_cs_initial_ue());
|
||||||
execute(TC_ranap_ps_initial_ue());
|
execute(TC_ranap_ps_initial_ue());
|
||||||
execute(TC_ranap_cs_initial_ue_empty_cr());
|
execute(TC_ranap_cs_initial_ue_empty_cr());
|
||||||
|
|
Loading…
Reference in New Issue