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>
fixeria has posted comments on this change by fixeria. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/38307?usp=email )
Change subject: library/pfcp: make Cause IE configurable in all templates
......................................................................
Patch Set 1: Code-Review+2
--
To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/38307?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: I76e52d3450cca87f5fead0f834fa58ce4902ddd8
Gerrit-Change-Number: 38307
Gerrit-PatchSet: 1
Gerrit-Owner: fixeria <vyanitskiy(a)sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: fixeria <vyanitskiy(a)sysmocom.de>
Gerrit-Reviewer: pespin <pespin(a)sysmocom.de>
Gerrit-Comment-Date: Fri, 27 Sep 2024 11:44:05 +0000
Gerrit-HasComments: No
Gerrit-Has-Labels: Yes
Attention is currently required from: jolly, neels.
fixeria has posted comments on this change by jolly. ( https://gerrit.osmocom.org/c/osmo-msc/+/38305?usp=email )
Change subject: Create transaction for all call indepenant SS messages
......................................................................
Patch Set 1:
(1 comment)
Commit Message:
https://gerrit.osmocom.org/c/osmo-msc/+/38305/comment/4020c417_9d288750?usp… :
PS1, Line 14: This patch ensures that a transaction is created even if the message
: is not a REGISTER message
I am fine with this approach in general, however it does not solve the problem globally. We have another early return code path when `trans_alloc()` returns `NULL`, for instance, and the connection would be kept alive for 5 seconds in that case.
I know it's unlikely that `trans_alloc()` (actually the internal `malloc()` call) returns `NULL` on modern Linux systems, but it's just to illustrate that you're fixing only a very specific scenario here.
IMO, a more generic approach would be to call `msc_a_release_cn()` as was suggested by Neels in https://osmocom.org/issues/6426#note-5.
--
To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/38305?usp=email
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings?usp=email
Gerrit-MessageType: comment
Gerrit-Project: osmo-msc
Gerrit-Branch: master
Gerrit-Change-Id: Ic6765e5d480735e67d97f0f560da24653b26d487
Gerrit-Change-Number: 38305
Gerrit-PatchSet: 1
Gerrit-Owner: jolly <andreas(a)eversberg.eu>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: fixeria <vyanitskiy(a)sysmocom.de>
Gerrit-Reviewer: neels <nhofmeyr(a)sysmocom.de>
Gerrit-Attention: jolly <andreas(a)eversberg.eu>
Gerrit-Attention: neels <nhofmeyr(a)sysmocom.de>
Gerrit-Comment-Date: Fri, 27 Sep 2024 11:43:30 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No