I've no idea why, but it seems the GTPu is the EBI, but the GTP-C is always 0.
This way it works with open5gs.
Change-Id: I053fe5661a38ce6fa7995964a0346129b56c823e
The AVP Frame-IP-Address type information isn't included in diameter_3gpp_ts29_273_swx except
when direct inherits. It seems there is still an issue with multiple levels of inherits.
Move the Framed-* into a seperate file to workaround collisions of other AVPs defined by SWX.
Change-Id: I002b1346f68401f4095cfcd57d74fed7de772e4c
If the FSM was recreated, during the first step it may have a different
PID. Update it so that we send the answer back to the proper PID.
Change-Id: I5e4f0ff4292c364f47d61ba629df50e8e3d35017
Instead, keep the implementation in the UE FSM module itself, and take
advantage of the fact that the PID is registered and can be derived from
the IMSI.
Change-Id: I0e62f3715da61d2d8cfabaf89557aeb1cd95f89a
It may be that due to a bug the previous session was kept alive and the
related epdg_ue_fsm has actually already terminated.
In any case, there's no use in keeping the session at this initial
transaction after having created it, so simply delete it if it fails.
Change-Id: Iebbab786e9647a026b2937115004747cd1883da0
ePDG handles Imsi as binary, but since all diameter uses strings, better
keep it as a string everywhere inside AAA-Server.
This fixes matching and finding sessions by Imsi.
Change-Id: Iba07ca02d9ca2bd6227d92b1d9c727107f37d9cd
Previous logic was wrong, since the accumulator function was not really
matching properly as the parameter was shadowed and didn't include the
value from the outer function.
The lookup is fixed here by passing the input lookup key (eg Imsi) as part
of the default/initial value of the fold() function.
Change-Id: I3a4a473b45fa54e857c2092d8d2b1e68ff9535e1
This will allow keeping per-UE session state, and for instance send a
SAR(USER_DEREGISTRATION) towards HSS when all sessions from all
interfaces (s6b, SWm) are terminated.
Change-Id: I78ebda4679d0a2f3ecede94598e74b20c2ff8836
Properly document our LU Request message matching the 2nd DER in usual
3GPP architecture, which should contain the Auth RES from the MS and be
forwarded up to the AAA-Server.
In our architecture, the auth is handled earlier, in strongswan (part of
ePDG node), hence why our LU Request contains no Auth RES info, and it's
only signalled by strongswan to osmo-epdg to signal the auth completed
successfuly.
Make the handling of LU Req and events triggered by it asynchronous and
clean up a bit some related code paths and states.
Change-Id: I480c110deeb04abf1ff19147a70e10be9cbafae8
This allows more easily matching and following the code against the
procedures the specs define.
Also, ensure proper separation of data and proper order of procedures
when later on we may split the AAA Server to be an external process.
Change-Id: Ieb925445fb0cf45a58439fd0c4cd9e4d779a0a79
The Swx interface is part of the internal AAA server node implemented in
osmo-epdg. Hence, change the prefix of the module/file name so that it
becomes clear it's part of the AAA and keep it separated from ePDG node
code.
Change-Id: Ie6a056bb8616fcda262f285241d38ba26e47f184
osmo-epdg actually contains 2 nodes inside: ePDG and AAA server. The fsm
is for the ePDG node, and ideally we want to keep both nodes as separate
as possible so that we can later on split them or use an external AAA
server.
Change-Id: If0852f4aedd0fb0cb9bf6cfcf77f00acd4a3fcbf
This commit is a first step towards implementing the full procedure. It
implements handling at the GSUP CEAI interface and operating on the
attached PGW to delete the session. No work towards the HSS from AAA
server now from PGW to the AAA is done yet.
Change-Id: I2e922f76c2fa601c5f61fa23d6df5fb62c3e133d
This allows accounting for problems in the FSM from the calling code,
and act accordingly, eg. rejecting a message.
Change-Id: I235d3c8fb3a863d288b5433c39e0da65f747936b
osmo_gsup dep was pointing to a temporary branch of mine which is no
longer existing, because the fix required was applied in
osmo-ttcn3-hacks.git.
Change-Id: I523acb49e4604e8a62d41d07d53d512158b28670
This allows easily identifying and differntiating the config parameters
from other diameter interfaces present such as s6b.
Change-Id: I63fe4c7acc7460575a921b254adf066134c0527f
osmo-epdg is a GSUP server, so if conn goes down it won't reconnect.
That's the duty of the client.
Change-Id: Ib5a8f1eb6d873f85d526222f76768d2b81f08d90
Erlang diameter compiler doesn't track includes of includes
resulting in missing AVPs. It was missing MIP-Home-Agent-Address.
Change-Id: I986154f057f84e131845f6aff79e3ec81aea6a81
Sessions are now stored/kept upon CreateSession time until deleted
through DeleteBearerReq.
Related: OS#6046
Change-Id: I1e5af1ead17385d2e494f4c90ffe6455aee850da
So far only the Rx of AAR msg and Tx of AAA is supported.
This allows already going forward during the session creation, where PGW
sends AAR to the AAA server and expects AAA message.
Related: OS#6229
Change-Id: Ia2b138317cb291a95882853f5403949c5e6a5a1b
S6b interface HSS<->PGW is defined in TS 28.273 section 9.
TS 28.273 depends on some types defined in RFC 5777, which was missing
so far.
Some enumareated types in RFC 5777 whose enums fields are declared in
yet other dependent RFCs are left with a dummy value, as TODO for the
future if they are ever needed.
Related: OS#6229
Change-Id: I8075dd54a5fec386feecdf797d710a2524413acc
Initial GTPv2C infrastructure to send GTPv2C CreateSession Request upon
receival of GSUP EPDG_Tunnel Request, and answer with EPDG_Tunnel
Resp/err when creating the session fails.
Related: OS#6046
Change-Id: I6f00b7fce2d5fcdc484bfd45629b9141f16bc579