fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/37245?usp=email )
Change subject: s1gw: add TC_e_rab_setup ......................................................................
s1gw: add TC_e_rab_setup
Change-Id: I94eb8cac4b5659c0f6f1bb248a80692b8cf84b6f --- M s1gw/S1GW_Tests.ttcn 1 file changed, 66 insertions(+), 0 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/45/37245/1
diff --git a/s1gw/S1GW_Tests.ttcn b/s1gw/S1GW_Tests.ttcn index df988d5..bb8685b 100644 --- a/s1gw/S1GW_Tests.ttcn +++ b/s1gw/S1GW_Tests.ttcn @@ -273,11 +273,68 @@ vc_conn.done; }
+function f_TC_e_rab_setup(ConnHdlrPars pars) runs on ConnHdlr { + var Global_ENB_ID genb_id := valueof(ts_Global_ENB_ID(pars.seed)); + var S1AP_PDU pdu; + timer T; + + f_ConnHdlr_register(genb_id); + f_ConnHdlr_connect(); + f_ConnHdlr_setup(genb_id); + + const integer mme_id := 7; + const integer enb_id := 9; + // var E_RABToBeSetupListBearerSUReq items := valueof(E_RABToBeSetupListBearerSUReq(item)); + var E_RABToBeSetupItemBearerSUReq item; + var template (value) E_RABToBeSetupListBearerSUReq items; + + var E_RABToBeSetupItemBearerSUReq item := { + e_RAB_ID + e_RABlevelQoSParameters + transportLayerAddress + gTP_TEID + nAS_PDU := ''O, + iE_Extensions := omit + }; + items := ts_S1AP_RABToBeSetupListBearerSUReq(item); + + S1AP_ENB.send(t_S1AP_Send(g_s1ap_conn_id, + ts_S1AP_RABSetupReq(mme_id, enb_id, items))); + T.start(0.5); + alt { + [] S1AP_CONN.receive(tr_S1AP_RABSetupReq) -> value pdu { + setverdict(pass); + T.stop; + } + [] S1AP_CONN.receive(S1AP_PDU:?) -> value pdu { + setverdict(fail, "Rx unexpected S1AP PDU: ", pdu); + T.stop; + } + [] T.timeout { + setverdict(fail, "Timeout waiting for S1AP E-RAB SETUP Req"); + } + } + + f_ConnHdlr_disconnect(); + f_ConnHdlr_unregister(genb_id); +} +testcase TC_e_rab_setup() runs on test_CT { + var ConnHdlrPars pars := { seed := 0 }; + var ConnHdlr vc_conn; + + f_init(); + f_init_s1ap_srv(); + + vc_conn := f_ConnHdlr_spawn(refers(f_TC_e_rab_setup), pars); + vc_conn.done; +} + control { execute( TC_setup() ); execute( TC_setup_multi() ); execute( TC_conn_term_by_mme() ); execute( TC_conn_term_mme_unavail() ); + execute( TC_e_rab_setup() ); }
}