fixeria has uploaded this change for review. ( 
https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/38310?usp=email )


Change subject: s1gw: add TC_e_rab_setup_failure
......................................................................

s1gw: add TC_e_rab_setup_failure

Change-Id: I97102292678e732265dcae04d60f7a708a5246dc
Related: osmo-s1gw.git I242e84fb09b00f4794b6e1aa770f348a0e60aea4
---
M s1gw/S1GW_Tests.ttcn
M s1gw/expected-results.xml
2 files changed, 54 insertions(+), 1 deletion(-)



  git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks 
refs/changes/10/38310/1

diff --git a/s1gw/S1GW_Tests.ttcn b/s1gw/S1GW_Tests.ttcn
index baede7d..6f4562b 100644
--- a/s1gw/S1GW_Tests.ttcn
+++ b/s1gw/S1GW_Tests.ttcn
@@ -367,6 +367,57 @@
        vc_conn.done;
 }

+/* Test E-RAB SETUP procedure being aborted by the S1GW due to
+ * PFCP Session Establishment failure (cause=REQUEST_REJECTED). */
+function f_TC_e_rab_setup_failure(charstring id) runs on ConnHdlr {
+       var OCT4 addr := f_inet_addr(g_pars.pfcp_loc_addr);
+       var ERab erab := g_pars.erabs[0];
+
+       f_ConnHdlr_s1ap_register(g_pars.genb_id);
+       f_ConnHdlr_s1ap_connect(mp_enb_bind_ip, mp_s1gw_enb_ip);
+       f_ConnHdlr_s1ap_setup(g_pars.genb_id);
+
+       /* see comments in f_ConnHdlr_erab_setup_req() */
+       f_PFCPEM_subscribe_seid('0000000000000000'O);
+       f_PFCPEM_subscribe_seid(erab.pfcp_loc_seid);
+
+       log("eNB <- [S1GW <- MME]: E-RAB SETUP REQUEST");
+       f_ConnHdlr_tx_erab_setup_req({erab});
+       log("UPF <- S1GW: PFCP Session Establishment Request");
+       var PDU_PFCP req := f_ConnHdlr_rx_session_establish_req(erab);
+       /* store peer's SEID, so that it can be used in outgoing PDUs later */
+       erab.pfcp_rem_seid := 
req.message_body.pfcp_session_establishment_request.CP_F_SEID.seid;
+
+       log("UPF -> S1GW: PFCP Session Establishment Response (failure)");
+       var template (value) PDU_PFCP resp;
+       resp := ts_PFCP_Session_Est_Resp(seq_nr := req.sequence_number,
+                                        node_id := ts_PFCP_Node_ID_ipv4(addr),
+                                        seid := erab.pfcp_rem_seid,
+                                        f_seid := ts_PFCP_F_SEID_ipv4(addr, 
erab.pfcp_loc_seid),
+                                        created_pdr := {},
+                                        cause := 
ts_PFCP_Cause(REQUEST_REJECTED));
+       PFCP.send(resp);
+
+       /* see comments in f_ConnHdlr_erab_setup_req() */
+       f_PFCPEM_unsubscribe_seid('0000000000000000'O);
+       f_PFCPEM_unsubscribe_seid(erab.pfcp_loc_seid);
+
+       var S1AP_PDU s1ap_pdu; /* XXX: expect E-RAB SETUP RESPONSE here */
+       f_ConnHdlr_rx_s1ap_from_enb(s1ap_pdu);
+
+       f_ConnHdlr_s1ap_disconnect();
+       f_ConnHdlr_s1ap_unregister(g_pars.genb_id);
+}
+testcase TC_e_rab_setup_failure() runs on test_CT {
+       var ConnHdlrPars pars := valueof(t_ConnHdlrPars);
+       var ConnHdlr vc_conn;
+
+       f_init();
+
+       vc_conn := f_ConnHdlr_spawn(refers(f_TC_e_rab_setup_failure), pars);
+       vc_conn.done;
+}
+
 /* Test INITIAL CONTEXT SETUP procedure (successful case) */
 function f_TC_initial_ctx_setup(charstring id) runs on ConnHdlr {
        f_ConnHdlr_s1ap_register(g_pars.genb_id);
@@ -484,6 +535,7 @@
        execute( TC_e_rab_setup_multi() );
        execute( TC_e_rab_setup3_multi() );
        execute( TC_e_rab_release_ind() );
+       execute( TC_e_rab_setup_failure() );
        execute( TC_initial_ctx_setup() );
        execute( TC_initial_ctx_setup3() );
        execute( TC_initial_ctx_setup_multi() );
diff --git a/s1gw/expected-results.xml b/s1gw/expected-results.xml
index 3ddbb23..c6995c9 100644
--- a/s1gw/expected-results.xml
+++ b/s1gw/expected-results.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<testsuite name='S1GW_Tests' tests='15' failures='0' errors='0' skipped='0' 
inconc='0' time='MASKED'>
+<testsuite name='S1GW_Tests' tests='16' failures='0' errors='0' skipped='0' 
inconc='0' time='MASKED'>
   <testcase classname='S1GW_Tests' name='TC_setup' time='MASKED'/>
   <testcase classname='S1GW_Tests' name='TC_setup_multi' time='MASKED'/>
   <testcase classname='S1GW_Tests' name='TC_conn_term_by_mme' time='MASKED'/>
@@ -9,6 +9,7 @@
   <testcase classname='S1GW_Tests' name='TC_e_rab_setup_multi' time='MASKED'/>
   <testcase classname='S1GW_Tests' name='TC_e_rab_setup3_multi' time='MASKED'/>
   <testcase classname='S1GW_Tests' name='TC_e_rab_release_ind' time='MASKED'/>
+  <testcase classname='S1GW_Tests' name='TC_e_rab_setup_failure' 
time='MASKED'/>
   <testcase classname='S1GW_Tests' name='TC_initial_ctx_setup' time='MASKED'/>
   <testcase classname='S1GW_Tests' name='TC_initial_ctx_setup3' time='MASKED'/>
   <testcase classname='S1GW_Tests' name='TC_initial_ctx_setup_multi' 
time='MASKED'/>

--
To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/38310?usp=email
To unsubscribe, or for help writing mail filters, visit 
https://gerrit.osmocom.org/settings?usp=email

Gerrit-MessageType: newchange
Gerrit-Project: osmo-ttcn3-hacks
Gerrit-Branch: master
Gerrit-Change-Id: I97102292678e732265dcae04d60f7a708a5246dc
Gerrit-Change-Number: 38310
Gerrit-PatchSet: 1
Gerrit-Owner: fixeria <[email protected]>

Reply via email to