Attention is currently required from: fixeria, laforge.
pespin has posted comments on this change by fixeria. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/38280?usp=email )
Change subject: s1gw: add TC_initial_ctx_setup_failure
......................................................................
Patch Set 2: Code-Review+1
(1 comment)
File s1gw/S1GW_Tests.ttcn:
https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/38280/comment/f7dc1eb0_db20… :
PS1, Line 434: /* TODO: Ideally, the IUT should terminate PFCP session(s) immediately. */
> TBH, I am not sure how the S1GW should behave in this case. […]
From my understanding in 3GPP TS 36.413, "INITIAL CONTEXT SETUP FAILURE" means the eRABs were never created because the request failed, hence they should all be considered as not created.
So yes, upon receiving that we should tear down related UPF sessions.
--
To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/38280?usp=email
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings?usp=email
Gerrit-MessageType: comment
Gerrit-Project: osmo-ttcn3-hacks
Gerrit-Branch: master
Gerrit-Change-Id: I969ea6813c9b805d116a974c70ab5f6e6e721e48
Gerrit-Change-Number: 38280
Gerrit-PatchSet: 2
Gerrit-Owner: fixeria <vyanitskiy(a)sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: laforge <laforge(a)osmocom.org>
Gerrit-Reviewer: pespin <pespin(a)sysmocom.de>
Gerrit-Attention: laforge <laforge(a)osmocom.org>
Gerrit-Attention: fixeria <vyanitskiy(a)sysmocom.de>
Gerrit-Comment-Date: Fri, 27 Sep 2024 11:58:27 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: Yes
Comment-In-Reply-To: fixeria <vyanitskiy(a)sysmocom.de>
Comment-In-Reply-To: pespin <pespin(a)sysmocom.de>
Attention is currently required from: pespin.
fixeria has posted comments on this change by fixeria. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/38280?usp=email )
Change subject: s1gw: add TC_initial_ctx_setup_failure
......................................................................
Patch Set 2:
(1 comment)
File s1gw/S1GW_Tests.ttcn:
https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/38280/comment/29a2c521_2af6… :
PS1, Line 434: /* TODO: Ideally, the IUT should terminate PFCP session(s) immediately. */
> IIUC you plan to add this in next steps?
TBH, I am not sure how the S1GW should behave in this case. It's not clear whether the `INITIAL CONTEXT SETUP FAILURE` from eNB indicates that all E-RABs requested in the `INITIAL CONTEXT SETUP REQUEST` are rejected implicitly, or does the eNB then send `E-RAB RELEASE INDICATION` explicitly? If the former, then it's a non-trivial task that would require us to maintain some additional FSMs.
--
To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/38280?usp=email
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings?usp=email
Gerrit-MessageType: comment
Gerrit-Project: osmo-ttcn3-hacks
Gerrit-Branch: master
Gerrit-Change-Id: I969ea6813c9b805d116a974c70ab5f6e6e721e48
Gerrit-Change-Number: 38280
Gerrit-PatchSet: 2
Gerrit-Owner: fixeria <vyanitskiy(a)sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: pespin <pespin(a)sysmocom.de>
Gerrit-Attention: pespin <pespin(a)sysmocom.de>
Gerrit-Comment-Date: Fri, 27 Sep 2024 11:50:10 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
Comment-In-Reply-To: pespin <pespin(a)sysmocom.de>
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 <vyanitskiy(a)sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: fixeria <vyanitskiy(a)sysmocom.de>
Gerrit-Reviewer: laforge <laforge(a)osmocom.org>
Gerrit-Reviewer: pespin <pespin(a)sysmocom.de>