osmo-epdg: Implement s6b interface (Diameter) AAA <> PGW
Create a S6B diameter module to connect (or listen) to PGW (open5gs-smfd).
S6b is defined in 3GPP TS 29.273 section 9
126.96.36.199 Authorization Procedures when using PMIPv6 or GTPv2:
- Authorization Request (AAR) PGW->AAA
- Authorization Answer (AAA) PGW<-AAA
188.8.131.52 PDN GW Initiated Session Termination Procedures:
- S6b Session Termination Request PGW->AAA
- S6b Session Termination Answer PGW<-AAA
184.108.40.206 3GPP AAA Initiated Session Termination Procedures:
- S6b Abort Session Request PGW<-AAA
- S6b Abort Session Answer PGW->AAA
- S6b Session Termination Request PGW<-AAA
- S6b Session Termination Answer PGW->AAA
220.127.116.11 Service Authorization Information Update Procedures
- S6b Re-authorization request PGW->AAA
- S6b Re-authorization response PGW<-AAA
- Assignee set to pespin
AFAIU the S6b interface is the one showing up in the diagram below, where we first need to Rx AAR and Tx AAA from the erlang AAA Server:
lynxis my idea here is to do something like existing SWx module in osmo-epdg (copy-paste and then modify it). Did you have another idea in mind? Do you foresee some problems?
The AAA / AAAR is also explained in the clause "C.1 Update PDN GW Address" of 3GPP TS 23.402 section 7.2.4 "Initial Attach with GTP on S2b":
C.1) Step C.1 is the same as Step C of clause 7.2.1, with the following addition: - when informing the 3GPP AAA Server of the PDN GW identity, the selected PDN GW also indicates the selected S2b protocol variant (here GTP); this allows the option for the 3GPP AAA Server or 3GPP AAA Proxy not to return to the PDN GW PMIP specific parameters (e.g. static QoS Profile, Trace Information, APN-AMBR) if GTP is used over S2b; the PDN GW shall ignore those parameters if received from the 3GPP AAA Server or 3GPP AAA Proxy. - The PDN GW forwards to the PCRF in the IP-CAN Session Establishment procedure following information extracted from User Location Information it may have received from the ePDG: - The UE local IP address and optionally UDP or TCP source port number (if NAT is detected). - WLAN location information in conjunction with the Age of this information.
"Step C of clause 7.2.1":
5) The selected PDN GW informs the 3GPP AAA Server of the PDN GW identity. The 3GPP AAA Server then informs the HSS of the PDN GW identity and APN associated with the UE's PDN Connection. The message includes information that identifies the PLMN in which the PDN GW is located. This information is registered in the HSS as described in clause 12. The PDN GW shall only use the APN-AMBR and Default Bearer QoS received from the 3GPP AAA server in this step if these parameters have not been received in step 4.
- % Done changed from 0 to 20
I have written the .dia spec files in osmo-epdg.git and generated the erl files (also had to write those for RFC 5777 which is quite long...).
I have those in my osmo-epdg.git branch "pespin/master".
I also have AAR/AAA message validation done in osmo-ttcn3-hacks.git branch "pespin/epdg".
- Status changed from New to In Progress
- % Done changed from 20 to 50
Initial support for S6b interface with AAR+AAA submitted here:
https://gerrit.osmocom.org/c/erlang/osmo-epdg/+/34857 diameter: Add spec definitions for S6b (TS 28.273 and dep RFC 5777)
https://gerrit.osmocom.org/c/erlang/osmo-epdg/+/34858 Initial S6b support
https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/34860 DIAMETER_Templates: Add S6b AAR and AAA message templates
https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/34861 epdg: Emulate PGW tx AAR and rx AAA in S6b interface
https://gerrit.osmocom.org/c/docker-playground/+/34862 ttcn3-epdg: Configure S6b interface