Bug #6333
closedDescribe UE/ePDG-initiated Detach Procedure
90%
Description
Related: 3GPP TS 23.402 section 7.4 "Detach and PDN Disconnection for S2b", and specifically section "7.4.3 UE/ePDG-initiated Detach Procedure and UE-Requested PDN
Disconnection with GTP on S2b".
That section explains (vaguely) that the UE can initiate a procedure to detach from ePDG. Sequence diagram Figure 7.4.3-1 refers to "Detach procedure as in Figure
7.4.1-1, before step (A)", which state: "IKEv2 tunnel release trigger".
lynxis can you clarify what does that exactly mean/involve at strongswan side between UE<->strongswan? Not sure if you already looked at / though about this scenario.
We probably also need to define messages between strongswan <> osmo-epdg to forward this.
Again, not sure if you need a response ePDG->strongswan you can answer the UE, please provide feedback here. According to Figure 7.4.1-1, we need a "6. Non-3GPP specific
resource release procedure".
Finally, once we figure the message type in CEAI, we have to implement in osmo-epdg:
- Tx DeleteSessionReq to PGW
- Rx DeleteSessionResp from PGW
Checklist
- Find out message for "IKEv2 tunnel release trigger" to act in strongswan and forward through CEAI to osmo-epdg
- Define message for GSUP CEAI interface to release a tunnel (EPDGTunnelReleaseReq/Resp?)
- Do GTPv2C DelelteSessionReq/Resp osmo-epdg<>PGW
Updated by lynxis 4 months ago
lynxis can you clarify what does that exactly mean/involve at strongswan side between UE<->strongswan?
[UE] --closes IPsec tunnel-> [strongswan] --GSUP/Purge MS Request--> [osmo-epdg] --S2b/GTPv2/Delete Session Request-> [PGW] [osmo-epdg] --SWx/ServerAssignment Type=User Deregistration--> [HSS] TODO: check S6b
When the network decides to register:
[UE] <--closes IPSec tunnel-- [strongswan] <--GSUP/Cancel Location-- [osmo-epdg] <--SWx/Registration-Termination-Request-- [HSS] [osmo-epdg] --S2b/GTPv2/Delete Session Request-> [PGW] (unsure if GTPv2 should be closed before or after IPSec) TODO: check S6b
Updated by pespin 4 months ago
First work for UE-initiated detach procedure here:
https://gerrit.osmocom.org/c/erlang/osmo-epdg/+/35676 Implement UE-initiated Detach
That one only implements the GSUP CEAI and GTPv2C S2B interfaces. I still need to look at s6b and SWx diameter interfaces.
Updated by pespin 3 months ago
- Checklist item Find out message for "IKEv2 tunnel release trigger" to act in strongswan and forward through CEAI to osmo-epdg set to Done
- Checklist item Define message for GSUP CEAI interface to release a tunnel (EPDGTunnelReleaseReq/Resp?) set to Done
- Checklist item Do GTPv2C DelelteSessionReq/Resp osmo-epdg<>PGW set to Done
- Status changed from In Progress to Feedback
- % Done changed from 0 to 90
After a lot of code improvement and rework in osmo-epdg, I have a proper split between ePDG and AAA nodes (communication between them is now through erlang messages, but the messages are kinda similar to those in the specs, and handled mostly asynchronously). This allowed me, together with the FSMs, to implement the related messages to have UE-initiated detach implemented.
Other previous refactoring patches have already been merged in osmo-epdg.git master, the following I just submitted to gerrit:
https://gerrit.osmocom.org/c/erlang/osmo-epdg/+/35759 AAA-Server: Process S6b, SWx requests async through new aaa_ue_fsm [NEW]
https://gerrit.osmocom.org/c/erlang/osmo-epdg/+/35760 Send SAR to HSS when all sessions are terminated
TTCN3 test passing now showcasing the scenario:
https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/35758 epdg: Test UE-initiated Detach Procedure
Once merged I think we can close this ticket.