Project

General

Profile

Actions

Bug #6091

open

osmo-epdg: Implement CEAI interface (GSUP) ePDG <> strongswan

Added by lynxis 10 months ago. Updated about 1 month ago.

Status:
Feedback
Priority:
High
Assignee:
Target version:
-
Start date:
07/10/2023
Due date:
% Done:

70%


Description

Write all relevant parts to have a gsup server module which the strongswan can connect to it.


Checklist

  • Update GSUP documentation (osmo-gsm-manuals/common/chapters/gsup.adoc)
  • Pass APN IE strongswan->ePDG in SendAuthInfoReq/LocationUpdateReq/EPDGTunnelReq
  • Pass allocated EU IP address (HSS->PGW->)ePDG->strgonswan in EPDGTunnelResp
Actions #1

Updated by lynxis 9 months ago

  • % Done changed from 0 to 70

Send Auth Information and Location Update are now implemented by epdg.
I've tested it using a python osmo-gsup implementation.

Actions #2

Updated by lynxis 9 months ago

strongswan (UE) -> strongswan (epdg) -> osmo-epdg (epdg & AAA) -> HSS works for Authentication.

The strongswan (epdg) component is now doing both Send Auth Info and Location Update Request which the epdg responds. The authentication data is collected from the HSS via SWx.

Actions #3

Updated by lynxis 5 months ago

  • Status changed from New to Stalled
Actions #4

Updated by pespin 3 months ago

I think this ticket can be renamed to make sure it relates to osmo-epdg, or simply close it since it's a bit ambiguous.

Actions #5

Updated by pespin 3 months ago

  • Subject changed from gsup: write a gsup server to interface with strongswan to osmo-epdg: Implement CEAI interface (GSUP) ePDG <> strongswan
Actions #6

Updated by pespin 3 months ago

  • Checklist item Update GSUP documentation (osmo-gsm-manuals/common/chapters/gsup.adoc) added
  • Checklist item Pass APN IE strongswan->ePDG in SendAuthInfoReq/LocationUpdateReq/EPDGTunnelReq added
  • Checklist item Pass allocated EU IP address (HSS->PGW->)ePDG->strgonswan in EPDGTunnelResp added
Actions #7

Updated by pespin 3 months ago

Regarding passing allocated UE IP Address over CEAI (GSUP) ePDG -> strongswan in EPDGTunnel Response, imho what would make sense is to send the existing grouped IE OSMO_GSUP_PDP_CONTEXT_INFO_IE (struct osmo_gsup_pdp_info).

This IE seems to be the GSUP counterpart of
  • APN-Configuration Diameter AVP (S6b, 3GPP TS 29.272 7.3.35) (" The Served-Party-IP-Address AVP may be present 0, 1 or 2 times. The AVP shall contain the IPv4 address, IPv6 address and/or the IPv6 prefix of the user, if static IP address allocation is used. ")
  • APN-Configuration is also available in SWx interface ePDG->HSS in 3GPP TS 29.273, through Non-3GPP-User-Data AVP
  • also APN-Configuration in MAP (" servedPartyIP-IPv4-Address [2] PDP-Address OPTIONAL ")

However, the GSUP OSMO_GSUP_PDP_CONTEXT_INFO_IE IE is actually missing fields to provide configured IP addresses for the subscriber (like the Served-Party-IP-Address AVP in Diameter/MAP).

So IMHO we need to add a new "struct osmo_gsup_eua eua2" in "struct osmo_gsup_pdp_info", since it should also be available in regular GSUP messages where the HLR may want to tell the subscriber static address.
Then, we can reuse this OSMO_GSUP_PDP_CONTEXT_INFO_IE in "GSUP EPDGTunnel Response" message.

This would mean breaking ABI of "struct osmo_gsup_pdp_info" and as a consequence "struct osmo_gsup_message" too, but I don't see any other good way of what seems to be a shortcoming from the past?
On the GSUP protocol in the air it's fine, since for the old messages the new "EUA" IEs can be considered optional maybe.

Actions #8

Updated by lynxis 3 months ago

I agree in breaking the ABI of libosmo-gsup.
Let's add IPv4/IPv6 to OSMO_GSUP_PDP_CONTEXT_INFO_IE

FYI: https://gerrit.osmocom.org/c/libosmocore/+/35237

Please go for the struct osmo_gsup_eua as it seems better than the simple IPv4/IPv6 approach I did in 35237.

Actions #9

Updated by pespin 3 months ago

lynxis ack, I agree that the proposal with 2 separate IEs you presented there is not good, I just wrote the same before seeing your comment here.

We should either go for:
  • 0..2 TLV OSMO_GSUP_PDP_ADDRESS_IE, each containing 1 address whose type depends based on size. (this would mean GSUP is a proto which can contain multiple same IE per message)
  • 0..1 TLV OSMO_GSUP_EUA_IE, each containing 0..2 addresses, like in GTPv1C (TS29.060 7.7.27 End User Address), where you end up with 1 buffer containing either (ipv4|ipv6|ipv4+ipv6).
Actions #10

Updated by pespin 3 months ago

lynxis assuming I'm taking over and redoing your patch based on your last statements. Let me know if you end up working on it before me.

Actions #11

Updated by lynxis 3 months ago

The AVP shall contain the IPv4 address, IPv6 address and/or the IPv6 prefix of the user

This reads you have 3 types. IPv4 address, IPv6 address and a IPv6 prefix (including netmask)?

Actions #12

Updated by pespin 3 months ago

lynxis wrote in #note-11:

The AVP shall contain the IPv4 address, IPv6 address and/or the IPv6 prefix of the user

This reads you have 3 types. IPv4 address, IPv6 address and a IPv6 prefix (including netmask)?

Not really. If you check the sentence following that one in the spec it says:

For the IPv6 prefix, the lower 64 bits of the address shall be set to zero.

So still 128 bits being encoded.

Actions #13

Updated by pespin 3 months ago

  • Status changed from Stalled to In Progress
  • Assignee changed from lynxis to pespin

The GSUP changes to be able to pass an IP address in PDP_INFO:
https://gerrit.osmocom.org/c/libosmocore/+/35625 gsm_04_08_gprs.h: Introduce packed struct gsm48_pdp_address
https://gerrit.osmocom.org/c/libosmocore/+/35624 gsup: Fail decoding if len of PDP Type IE is less than 2 bytes
https://gerrit.osmocom.org/c/libosmocore/+/35626 gsup: Deprecate field pdp_type in favour of pdp_type_nr and pdp_type_org
https://gerrit.osmocom.org/c/libosmocore/+/35627 gsup: Convert PDP-Type IE to PDP-Address IE

https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/35628 gsup: Convert PDP-Type IE to PDP-Address IE

https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/35629 GSUP: Convert PDP-Type IE to PDP-Address IE

Actions #14

Updated by laforge 3 months ago

  • Priority changed from Normal to High
Actions #15

Updated by lynxis 2 months ago

  • Checklist item Pass allocated EU IP address (HSS->PGW->)ePDG->strgonswan in EPDGTunnelResp set to Done
Actions #16

Updated by lynxis 2 months ago

  • Checklist item Pass allocated EU IP address (HSS->PGW->)ePDG->strgonswan in EPDGTunnelResp set to Not done
Actions #17

Updated by pespin about 2 months ago

  • Checklist item Pass allocated EU IP address (HSS->PGW->)ePDG->strgonswan in EPDGTunnelResp set to Done
Actions #18

Updated by pespin about 2 months ago

  • Status changed from In Progress to Feedback
  • Assignee changed from pespin to lynxis

Assigning to lynxis to get feedback from him on whether he plans to add any more feature in GSUP CEAI interface regarding strongswan needs.

I can work on updating the gsup.adoc in osmo-gsm-manuals.

Actions #19

Updated by pespin about 1 month ago

  • Checklist item Update GSUP documentation (osmo-gsm-manuals/common/chapters/gsup.adoc) set to Done
Actions #20

Updated by pespin about 1 month ago

https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/36276 gsup: Document ePDG Tunnel Req/Res/Err

Actions

Also available in: Atom PDF

Add picture from clipboard (Maximum size: 48.8 MB)