WIP FLUSH_LL

Change-Id: Iea2d6ec81d2627f6e41d6c360210f52f7e21d07c
This commit is contained in:
Daniel Willmann 2020-11-19 17:39:27 +01:00
parent 20eb49266f
commit 5879792a41
2 changed files with 86 additions and 0 deletions

View File

@ -861,6 +861,31 @@ testcase TC_resume() runs on test_CT
f_cleanup();
}
private function f_TC_flush_ll(charstring id) runs on BSSGP_ConnHdlr {
var BssgpBvci bvci := g_pars.pcu[0].cfg.bvc[0].bvci;
var integer i;
for (i := 0; i < 10; i := i+1) {
/* TODO: Test ACK, correctly set old and new bvci and nsei
* Actually move the tlli to a different BVC and check that the tlli is now moved to the new BVC (e.g. through paging) */
var template (value) PDU_BSSGP pdu_tx := ts_BSSGP_FLUSH_LL(g_pars.tlli, bvci, omit, omit);
/* we cannot use pdu_tx as there are some subtle differences in the length field :/ */
var template (present) PDU_BSSGP pdu_rx := tr_BSSGP_FLUSH_LL(g_pars.tlli, bvci, omit, omit);
f_sgsn2pcu(pdu_tx, pdu_rx);
}
setverdict(pass);
}
testcase TC_flush_ll() runs on test_CT
{
var BSSGP_ConnHdlr vc_conn;
f_init();
vc_conn := f_start_handler(refers(f_TC_flush_ll), testcasename(), g_pcu, g_sgsn, 6);
vc_conn.done;
/* TODO: start multiple handlers (UEs) on various cells on same and other NSEs */
f_cleanup();
}
control {
execute( TC_BVC_bringup() );
@ -871,6 +896,7 @@ control {
execute( TC_radio_status() );
execute( TC_suspend() );
execute( TC_resume() );
execute( TC_flush_ll() );
}

View File

@ -777,6 +777,24 @@ octetstring sdu) := {
unstructured_value := f_oct_or_wc(bvci, 2)
}
template (value) NSEI_BSSGP ts_BSSGP_NSEI(template (value) Nsei nsei) := {
iEI:= '3E'O,
ext := '1'B,
lengthIndicator := {
length1 := 2
},
nSEI := f_oct_or_wc(nsei, 2)
}
template NSEI_BSSGP tr_BSSGP_NSEI(template Nsei nsei) := {
iEI:= '3E'O,
ext := '1'B,
lengthIndicator := {
length1 := 2
},
nSEI := f_oct_or_wc(nsei, 2)
}
template (value) TLLI_BSSGP ts_BSSGP_TLLI(template (value) GprsTlli tlli) := {
iEI := '1F'O,
ext := '1'B,
@ -1683,6 +1701,48 @@ octetstring sdu) := {
}
}
/* 10.4.1 */
template (value) PDU_BSSGP ts_BSSGP_FLUSH_LL(GprsTlli tlli, template (value) BssgpBvci bvci_old,
template (omit) BssgpBvci bvci_new,
template (omit) Nsei nsei) := {
pDU_BSSGP_FLUSH_LL := {
bssgpPduType := '2B'O,
tLLI := ts_BSSGP_TLLI(tlli),
bVCI_old := t_BSSGP_BVCI(bvci_old),
bVCI_new := omit,
nSEI := omit
}
}
template PDU_BSSGP tr_BSSGP_FLUSH_LL(template GprsTlli tlli, template BssgpBvci bvci_old,
template (omit) BssgpBvci bvci_new,
template (omit) Nsei nsei) := {
pDU_BSSGP_FLUSH_LL := {
bssgpPduType := '2B'O,
tLLI := tr_BSSGP_TLLI(tlli),
bVCI_old := t_BSSGP_BVCI(bvci_old),
bVCI_new := t_BSSGP_BVCI(bvci_new),
nSEI := ?
}
}
/* 10.4.2 */
/* template (value) PDU_BSSGP ts_BSSGP_FLUSH_LL_ACK(GprsTlli tlli, RoutingAreaIdentification ra_id)
:= {
pDU_BSSGP_FLUSH_LL_ACK := {
bssgpPduType := '0F'O,
tLLI := ts_BSSGP_TLLI(tlli),
routeing_Area := ts_BSSGP_RA_ID(ra_id)
}
}
template PDU_BSSGP tr_BSSGP_FLUSH_LL_ACK(template GprsTlli tlli,
RoutingAreaIdentification ra_id) := {
pDU_BSSGP_FLUSH_LL_ACK := {
bssgpPduType := '0F'O,
tLLI := tr_BSSGP_TLLI(tlli),
routeing_Area := ts_BSSGP_RA_ID(ra_id)
}
}
*/
/* 10.2.3 */
template (value) PDU_BSSGP ts_BSSGP_RA_CAP(GprsTlli tlli,
template (omit) MSRadioAccessCapabilityV_BSSGP racap := omit) := {