fixeria has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/38238?usp=email )
(
2 is the latest approved patch-set. No files were changed between the latest approved patch-set and the submitted one. )Change subject: s1gw: TC_e_rab_setup: complete E-RAB release ......................................................................
s1gw: TC_e_rab_setup: complete E-RAB release
The MME originated E-RAB RELEASE procedure includes both:
* [ENB <- MME] E-RAB RELEASE COMMAND, and * [ENB -> MME] E-RAB RELEASE RESPONSE.
The later was overlooked in a99224c9, so add it.
Change-Id: I856248d825b6ecf0635590b7bf02593cfae893d3 Fixes: a99224c9 "s1gw: TC_e_rab_setup: also test E-RAB release" --- M s1gw/S1GW_ConnHdlr.ttcn M s1gw/S1GW_Tests.ttcn 2 files changed, 43 insertions(+), 0 deletions(-)
Approvals: laforge: Looks good to me, approved pespin: Looks good to me, but someone else must approve Jenkins Builder: Verified
diff --git a/s1gw/S1GW_ConnHdlr.ttcn b/s1gw/S1GW_ConnHdlr.ttcn index a3d2aec..4c88252 100644 --- a/s1gw/S1GW_ConnHdlr.ttcn +++ b/s1gw/S1GW_ConnHdlr.ttcn @@ -445,6 +445,40 @@ return pdu; }
+function f_ConnHdlr_tx_erab_release_rsp(in ERabList erabs, + MME_UE_S1AP_ID mme_ue_id := c_MME_UE_ID) +runs on ConnHdlr { + var template (value) E_RABReleaseListBearerRelComp items; + var ENB_UE_S1AP_ID enb_ue_id := g_pars.idx; + + for (var integer i := 0; i < lengthof(erabs); i := i + 1) { + var template (value) E_RABReleaseItemBearerRelComp item; + + item := ts_E_RABReleaseItemBearerRelComp(erabs[i].erab_id); + items[i] := ts_E_RABReleaseListBearerRelComp(item)[0]; + } + + f_ConnHdlr_tx_s1ap_from_enb(ts_S1AP_RABReleaseRsp(mme_ue_id, enb_ue_id, items)); +} + +function f_ConnHdlr_rx_erab_release_rsp(in ERabList erabs, + MME_UE_S1AP_ID mme_ue_id := c_MME_UE_ID) +runs on ConnHdlr return S1AP_PDU { + var template (present) E_RABReleaseListBearerRelComp items; + var ENB_UE_S1AP_ID enb_ue_id := g_pars.idx; + var S1AP_PDU pdu; + + for (var integer i := 0; i < lengthof(erabs); i := i + 1) { + var template (present) E_RABReleaseItemBearerRelComp item; + + item := tr_E_RABReleaseItemBearerRelComp(erabs[i].erab_id); + items[i] := tr_E_RABReleaseListBearerRelComp(item)[0]; + } + + f_ConnHdlr_rx_s1ap_from_enb(pdu, tr_S1AP_RABReleaseRsp(mme_ue_id, enb_ue_id, items)); + return pdu; +} + function f_ConnHdlr_tx_erab_release_ind(in ERabList erabs, S1AP_IEs.Cause cause := c_REL_CMD_CAUSE, MME_UE_S1AP_ID mme_ue_id := c_MME_UE_ID) @@ -663,6 +697,14 @@ f_ConnHdlr_rx_erab_release_cmd(erabs, cause); }
+function f_ConnHdlr_erab_release_rsp(inout ERabList erabs) +runs on ConnHdlr { + log("[eNB -> S1GW] -> MME: E-RAB RELEASE RESPONSE"); + f_ConnHdlr_tx_erab_release_rsp(erabs); + log("eNB -> [S1GW -> MME]: E-RAB RELEASE RESPONSE"); + f_ConnHdlr_rx_erab_release_rsp(erabs); +} + function f_ConnHdlr_erab_release_ind(inout ERabList erabs, S1AP_IEs.Cause cause := c_REL_CMD_CAUSE) runs on ConnHdlr { diff --git a/s1gw/S1GW_Tests.ttcn b/s1gw/S1GW_Tests.ttcn index 8a259d3..9713c1a 100644 --- a/s1gw/S1GW_Tests.ttcn +++ b/s1gw/S1GW_Tests.ttcn @@ -308,6 +308,7 @@ f_ConnHdlr_erab_setup_req(g_pars.erabs); f_ConnHdlr_erab_setup_rsp(g_pars.erabs); f_ConnHdlr_erab_release_cmd(g_pars.erabs); + f_ConnHdlr_erab_release_rsp(g_pars.erabs);
f_ConnHdlr_s1ap_disconnect(); f_ConnHdlr_s1ap_unregister(g_pars.genb_id);