fixeria has submitted this change. ( 
https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/38278?usp=email )

Change subject: s1gw: separate f_ConnHdlr_session_{establish,modify}()
......................................................................

s1gw: separate f_ConnHdlr_session_{establish,modify}()

Change-Id: I95dc3be975a8f51f7535b96d1580ef70b85fa2e0
---
M s1gw/S1GW_ConnHdlr.ttcn
1 file changed, 38 insertions(+), 28 deletions(-)

Approvals:
  pespin: Looks good to me, but someone else must approve
  laforge: Looks good to me, but someone else must approve
  Jenkins Builder: Verified
  fixeria: Looks good to me, approved




diff --git a/s1gw/S1GW_ConnHdlr.ttcn b/s1gw/S1GW_ConnHdlr.ttcn
index 4c88252..97df4c0 100644
--- a/s1gw/S1GW_ConnHdlr.ttcn
+++ b/s1gw/S1GW_ConnHdlr.ttcn
@@ -624,6 +624,42 @@
        PFCP.send(resp);
 }

+function f_ConnHdlr_session_establish(inout ERabList erabs)
+runs on ConnHdlr {
+       for (var integer i := 0; i < lengthof(erabs); i := i + 1) {
+               log("UPF <- S1GW: PFCP Session Establishment Request for E-RAB 
ID ", erabs[i].erab_id);
+               var PDU_PFCP pdu := 
f_ConnHdlr_rx_session_establish_req(erabs[i]);
+               /* store peer's SEID, so that it can be used in outgoing PDUs 
later */
+               erabs[i].pfcp_rem_seid := 
pdu.message_body.pfcp_session_establishment_request.CP_F_SEID.seid;
+               /* ask PFCPEM to route PDUs with the local SEID to us */
+               f_PFCPEM_subscribe_seid(erabs[i].pfcp_loc_seid);
+               log("UPF -> S1GW: PFCP Session Establishment Response for E-RAB 
ID ", erabs[i].erab_id);
+               f_ConnHdlr_tx_session_establish_resp(erabs[i], pdu);
+       }
+}
+
+function f_ConnHdlr_session_modify(in ERabList erabs)
+runs on ConnHdlr {
+       for (var integer i := 0; i < lengthof(erabs); i := i + 1) {
+               log("UPF <- S1GW: PFCP Session Modification Request for E-RAB 
ID ", erabs[i].erab_id);
+               var PDU_PFCP pdu := f_ConnHdlr_rx_session_modify_req(erabs[i]);
+               log("UPF -> S1GW: PFCP Session Modification Response for E-RAB 
ID ", erabs[i].erab_id);
+               f_ConnHdlr_tx_session_modify_resp(erabs[i], pdu);
+       }
+}
+
+function f_ConnHdlr_session_delete(in ERabList erabs)
+runs on ConnHdlr {
+       for (var integer i := 0; i < lengthof(erabs); i := i + 1) {
+               log("UPF <- S1GW: PFCP Session Deletion Request for E-RAB ID ", 
erabs[i].erab_id);
+               var PDU_PFCP pdu := f_ConnHdlr_rx_session_delete_req(erabs[i]);
+               log("UPF -> S1GW: PFCP Session Deletion Response for E-RAB ID 
", erabs[i].erab_id);
+               f_ConnHdlr_tx_session_delete_resp(erabs[i], pdu);
+               /* ask PFCPEM to *not* route PDUs with this SEID to us */
+               f_PFCPEM_unsubscribe_seid(erabs[i].pfcp_loc_seid);
+       }
+}
+
 function f_ConnHdlr_erab_setup_req(inout ERabList erabs)
 runs on ConnHdlr {
        const OCT8 c_SEID0 := '0000000000000000'O;
@@ -640,16 +676,7 @@

        log("eNB <- [S1GW <- MME]: E-RAB SETUP REQUEST");
        f_ConnHdlr_tx_erab_setup_req(erabs);
-       for (var integer i := 0; i < lengthof(erabs); i := i + 1) {
-               log("UPF <- S1GW: PFCP Session Establishment Request for E-RAB 
ID ", erabs[i].erab_id);
-               var PDU_PFCP pdu := 
f_ConnHdlr_rx_session_establish_req(erabs[i]);
-               /* store peer's SEID, so that it can be used in outgoing PDUs 
later */
-               erabs[i].pfcp_rem_seid := 
pdu.message_body.pfcp_session_establishment_request.CP_F_SEID.seid;
-               /* ask PFCPEM to route PDUs with the local SEID to us */
-               f_PFCPEM_subscribe_seid(erabs[i].pfcp_loc_seid);
-               log("UPF -> S1GW: PFCP Session Establishment Response for E-RAB 
ID ", erabs[i].erab_id);
-               f_ConnHdlr_tx_session_establish_resp(erabs[i], pdu);
-       }
+       f_ConnHdlr_session_establish(erabs);

        /* We're done establishing PFCP sessions, so at this point we no longer 
expect to
         * receive Session Establishment Request PDUs with SEID=0.  Unregister 
and unlock
@@ -665,28 +692,11 @@
 runs on ConnHdlr {
        log("[eNB -> S1GW] -> MME: E-RAB SETUP RESPONSE");
        f_ConnHdlr_tx_erab_setup_rsp(erabs);
-       for (var integer i := 0; i < lengthof(erabs); i := i + 1) {
-               log("UPF <- S1GW: PFCP Session Modification Request for E-RAB 
ID ", erabs[i].erab_id);
-               var PDU_PFCP pdu := f_ConnHdlr_rx_session_modify_req(erabs[i]);
-               log("UPF -> S1GW: PFCP Session Modification Response for E-RAB 
ID ", erabs[i].erab_id);
-               f_ConnHdlr_tx_session_modify_resp(erabs[i], pdu);
-       }
+       f_ConnHdlr_session_modify(erabs);
        log("eNB -> [S1GW -> MME]: E-RAB SETUP RESPONSE");
        f_ConnHdlr_rx_erab_setup_rsp(erabs);
 }

-private function f_ConnHdlr_session_delete(inout ERabList erabs)
-runs on ConnHdlr {
-       for (var integer i := 0; i < lengthof(erabs); i := i + 1) {
-               log("UPF <- S1GW: PFCP Session Deletion Request for E-RAB ID ", 
erabs[i].erab_id);
-               var PDU_PFCP pdu := f_ConnHdlr_rx_session_delete_req(erabs[i]);
-               log("UPF -> S1GW: PFCP Session Deletion Response for E-RAB ID 
", erabs[i].erab_id);
-               f_ConnHdlr_tx_session_delete_resp(erabs[i], pdu);
-               /* ask PFCPEM to *not* route PDUs with this SEID to us */
-               f_PFCPEM_unsubscribe_seid(erabs[i].pfcp_loc_seid);
-       }
-}
-
 function f_ConnHdlr_erab_release_cmd(inout ERabList erabs,
                                     S1AP_IEs.Cause cause := c_REL_CMD_CAUSE)
 runs on ConnHdlr {

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

Gerrit-MessageType: merged
Gerrit-Project: osmo-ttcn3-hacks
Gerrit-Branch: master
Gerrit-Change-Id: I95dc3be975a8f51f7535b96d1580ef70b85fa2e0
Gerrit-Change-Number: 38278
Gerrit-PatchSet: 2
Gerrit-Owner: fixeria <[email protected]>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: fixeria <[email protected]>
Gerrit-Reviewer: laforge <[email protected]>
Gerrit-Reviewer: pespin <[email protected]>

Reply via email to