Commit Graph

1328 Commits

Author SHA1 Message Date
Pau Espin 5061a3aec0 [MME] Store decoded PAA into session->ue_ip and session_type
This will be used by the Gn interface to obtain the UE IP and provide
it to new SGSN when transmitting SGSN Context Response.
2023-12-19 06:57:35 +09:00
Pau Espin 414f81fcd5 [MME] Store received PGW S5C IP address in mme_sess_t
This information will be required by the Gn interface in MME when
answering an SGSN with an "SGSN Context Response" message during MS cell
reselection EUTRAN->GERAN.
2023-12-19 06:57:18 +09:00
Sukchan Lee 1ba3fd3cf8
[AMF/MME] UEContextReleaseCommand after Interity Protected (#2786) (#2794)
* [AMF/MME] UEContextReleaseCommand in Integrity (#2786)

Modified not to send UEContextReleaseCommand in Integrity Unprotected
NAS message such like Registration or Service request.

* [AMF/MME] UEContextReleaseCommand after Interity Protected (#2786)

Modified not to send UEContextReleaseCommand in Integrity Unprotected
NAS message such like Registration or Service request.
2023-12-13 17:54:37 +09:00
Oliver Smith 66c39f2085
[MME] [AMF] Set Daylight Saving Time (#2766)
Fix DST always being set to 0 ("No adjustment for Daylight
Saving Time").

Related: 3GPP TS 24.008 § 10.5.3.12
2023-12-06 20:24:33 +09:00
Sukchan Lee e42048e8a5
Reset the number of TA, SLICE, and PLMN supported by AMF/MME(#2761) (#2765)
* update it

* update it

* update it

* update it

* update it

* udpate it

* uupdate it
2023-12-03 23:52:29 +09:00
Oliver Smith 5070ddfa3e
[MME] [AMF] Add no_time_zone_information param (#2745)
Allow network operators to omit the time zone in the 4G EMM Information
and 5G Configuration Update. This is useful for better compatibility
with some UEs.

The parameter is optional according to:
* 4G: 3GPP TS 24.301 Table 8.2.13.1
* 5G: 3GPP TS 24.501 Table 8.2.19.1.1
2023-11-27 22:26:12 +09:00
Sukchan Lee ee964f48dd
[AMF/MME] Fixed crash when receiving invalid packet (#2737) (#2755) 2023-11-27 22:16:11 +09:00
Sukchan Lee e92293e0af
[SEPP] Initial Update for 5G Roaming (#2739)
[SEPP] Initial Update for 5G Roaming
2023-11-19 19:34:51 +09:00
Šimon Lukašík 490a3ecb99
A minor typo fix (#2707)
* minor typo fix

* typo fix: faimly -> family
2023-10-28 22:11:58 +09:00
Sukchan Lee b2be7393a0
[AMF] Fixed TAC configuration error (#2700) (#2711) 2023-10-28 21:30:32 +09:00
Sukchan Lee 7da45cde66 [AMF] mac_failed should be initialized (#2679)
amf_ue->mac_failed flag to be cleared during security mode procedure but it was not.
At this point, the only way to cleare the amf_ue->mac_failed flag is by UE Context Release.
But I'd like to connect UEs as fast as possible without UE Context Release.
2023-10-17 22:28:23 +09:00
Sukchan Lee 53fe8f1e6d [MME] SGaAP-MO-CSFB-INDICATION w/ TAI/ECGI (#2664)
Added TAI/ECGI to the SGaAP-MO-CSFB-INDICATION message.
2023-10-11 20:37:12 +09:00
Sukchan Lee 8a3dbd44ae [MME] Protection code for No IMSI (#2613, #2614) 2023-09-16 22:27:21 +09:00
Sukchan Lee a3a683e5a6 [MME] Implement ENBConfigurationUpdate (#2589) 2023-09-16 20:58:58 +09:00
Sukchan Lee d33d67b2af [AMF/MME] Defaults 9 minutes for T3412/T3512 2023-08-13 11:16:06 +09:00
Sukchan Lee e625f9222a [AMF/MME] Follow-up on #2491 2023-08-11 09:44:19 +09:00
Sukchan Lee e7f7c4274e [SMF] Fix crash on double policy deletion (#2489) 2023-08-10 22:14:48 +09:00
Sukchan Lee 93e05f481b S1Setup failure with invalid MCC/MNC (#2491) 2023-08-10 15:40:05 +09:00
Sukchan Lee 9f19210f22 Add trace log for debugging #2287 2023-08-07 22:13:35 +09:00
Sukchan Lee 5764f7267d Fixed security vulnerability for malformed packet 2023-07-26 16:32:46 +09:00
Sukchan Lee b08b2adc6c [AMF/MME] Remove code that doesn't work (#2013)
Based on the standard document below, when the UE is in the IDLE state,
we checked the implicit timer and tried to send a message to the UE,
but it doesn't work properly.

So, first of all, I deleted the related code.

- TS 24.301 Ch 5.3.7
If ISR is not activated, the network behaviour upon expiry of
the mobile reachable timer is network dependent, but typically
the network stops sending paging messages to the UE on the
first expiry, and may take other appropriate actions

- TS 24.501 Ch 5.3.7
The network behaviour upon expiry of the mobile reachable timer is network dependent,
but typically the network stops sending paging messages to the UE on the first expiry,
and may take other appropriate actions.
2023-07-23 14:54:06 +09:00
Sukchan Lee 3d62100071 Added missing memory release (#2441, #2450) 2023-07-20 09:40:01 +09:00
Pau Espin e222557f88 [MME] rework sgsn default route config in mme.yaml
Move the config to the sgsn node instead of having a specific route with
specific format "default: route", since anyway internally it's already
applied to the sgsn object.
2023-07-20 06:29:20 +09:00
Pau Espin 11d10fb009 mme: s1ap: Split rx HandoverRequired handling based on HandoverType
This is a preparation towards adding other handover types in the future.
2023-07-18 10:09:30 +09:00
Emanuele Di Pascale 154bff2764 mme: fix missing memset in mme_fd_init
The 'data' struct used to specify the diameter dispatch options for the
MME callbacks was not being initialized properly, which meant that the
App id could contain garbage. This was preventing the callbacks from
being invoked when receiving ISD/CLR requests.
2023-07-18 09:59:20 +09:00
Sukchan Lee 70ec192d8e Fixed the build error 2023-07-17 10:53:17 +09:00
Pau Espin 5c0c8ec4f2 mme: s1ap: Implement tx of MME DIRECT INFORMATION TRANSFER
Triggered when receiving a GTPv1C RAN Information Relay message on
Gn interface, targeted at one of the eNBs under the MME.
2023-07-15 23:44:57 +09:00
Pau Espin 158bd79bdd mme: s1ap: Implement rx of eNB DIRECT INFORMATION TRANSFER
If destination is a GERAN network, attempt to use the new Gn interface
to forward it to an SGSN if configured to do so.
2023-07-15 23:44:57 +09:00
Pau Espin 84ed735204 mme: Introduce initial Gn iface (GTPv1C) support
This interface allows supporting several inter-RAT mobility features
towards pre-rel8-SGSNs (SGSNs without S3/S4 GTPV2C interface).

Related specs:
- 3GPP TS 23.401:
-- "5.6 Network Assisted Cell Change"
-- "5.15 RAN Information Management (RIM) procedures"
--  "Annex D"
- 3GPP TS 23.060 (general GERAN<->GERAN mobility)
- 3GPP TS 29.060
2023-07-15 23:44:57 +09:00
Pau Espin 715038b6d9 cosmetic: mme: Fix trailing whitespace in several files 2023-07-11 21:52:24 +09:00
Sukchan Lee f969309f11 [CORE] Rollback ogs_pool_init/final (#2339)
ogs_pool_init() shall be used in the initialization routine.
Otherwise, memory will be fragment since this function uses system malloc()

Compared with ogs_pool_init()

ogs_pool_create() could be called while the process is running,
so this function should use ogs_malloc() instead of system malloc()
2023-05-28 22:50:28 +09:00
Sukchan Lee 5c7263a5e5 [AMF/MME] Fixed crashes by M-TMSI (#2307) 2023-05-14 10:37:29 +09:00
Sukchan Lee 4265b2a2bc [MME] try to fix the #2287 issue 2023-05-05 18:06:25 +09:00
Shigeru Ishida 0c3fd10c24 [MME] add facility to select smf(pgwu) by tac and e_cell_id.
[mme.yaml]
# o SMF selection by eNodeB TAC
#   (either single TAC or multiple TACs, DECIMAL representation)
#
#   gtpc:
#     - addr: 127.0.0.4
#       tac: 26000
#     - addr: 127.0.2.4
#       tac: [25000, 27000, 28000]
#
# o SMF selection by e_cell_id(28bit)
#   (either single or multiple e_cell_id, HEX representation)
#
#   gtpc:
#     - addr: 127.0.0.4
#       e_cell_id: abcde01
#     - addr: 127.0.2.4
#       e_cell_id: [12345, a9413, 98765]
2023-05-05 10:23:46 +05:00
Sukchan Lee 01d3db4b6e [MME/SMF] Added Extended-PCO in 4G/LTE (#2261) 2023-04-22 00:06:50 +09:00
Sukchan Lee 642d9e2e18 [PFCP/GTP] SEID/TEID Randomness (#1303) 2023-04-16 12:30:36 +09:00
Sukchan Lee 32019df0f0 Fixed MacOSX compile error 2023-04-04 21:53:39 +09:00
Sukchan Lee d469809192 [AMF/MME] PLMN access control
These mechanisms are described in the GSMA roaming guidelines.
Chapters called Access Control.

For 4g: https://www.gsma.com/newsroom/wp-content/uploads//IR.88-v21.0.pdf
For 5g: https://www.gsma.com/newsroom/wp-content/uploads//NG.113-v6.0.pdf
2023-03-25 09:59:20 +09:00
Gaber Stare 6f593432a4 [AMF metrics] Initial histogram support
Version of histogram support without ogs_metrics_spec_new_ex().
Buckets are now, just like labels, passed to ogs_metrics_spec_new() as a pointer.
2023-03-24 23:03:49 +09:00
Sukchan Lee 84e46a0ff1 [MME] Add protection code for INVALID S1AP (#2184) 2023-03-23 20:50:41 +09:00
Sukchan Lee 424f382265 [AMF/MME] Support TAI Range 2023-03-19 18:31:45 +09:00
Sukchan Lee 2944fa2549 [AMF/MME] for num_of_XXX variable (uint8_t -> int) 2023-03-19 18:31:45 +09:00
Sukchan Lee c3f0c57554 Follow-up on #2100 2023-03-04 23:43:36 +09:00
Bostjan Meglic 10168f1f19 [AMF] Disallow handling service requests unless UE is already registered 2023-03-04 23:43:14 +09:00
Sukchan Lee 82e9016164 [AMF/SMF] Fixed a crash (#2030, #2074, #2085) 2023-02-20 20:49:48 +09:00
Sukchan Lee 74fdb14f7a [MME] KeNB derive from TAU(active flag=1) (#2063)
TS33.401
7 Security procedures between UE and EPS access network elements
7.2 Handling of user-related keys in E-UTRAN
7.2.7 Key handling for the TAU procedure when registered in E-UTRAN

If the "active flag" is set in the TAU request message or
the MME chooses to establish radio bearers when there is pending downlink
UP data or pending downlink signalling, radio bearers will be established
as part of the TAU procedure and a KeNB derivation is necessary.
2023-02-13 06:33:22 -10:00
Sukchan Lee b44fa29a7d [AMF/MME] Delete UERadioCapability (#2040, #1917)
o TS24.301(4G/LTE)
  5.5.1 Attach procedure
  5.5.1.2 Attach procedure for EPS services
  5.5.1.2.4 Attach accepted by the network

If the attach request is accepted by the network,
the MME shall delete the stored UE radio capability information
or the UE radio capability ID, if any.

o TS24.501(5G)
  5.5.2 De-registration procedure
  5.5.2.1 General

When the AMF enters the state 5GMM-DEREGISTERED for 3GPP access,
the AMF shall delete the stored UE radio capability information
or the UE radio capability ID, if any.
2023-02-05 12:03:00 +09:00
Sukchan Lee 728ca41103 [MME] Fixed crash due to Paging routine (#2017) 2023-01-27 16:42:23 +09:00
Sukchan Lee b82a898646 update it 2023-01-26 21:22:24 +09:00
Sukchan Lee 9e6cff7225 Merge branch 'MMENetworkDeregTimers' of https://github.com/jmasterfunk84/open5gs into jmasterfunk84-MMENetworkDeregTimers 2023-01-26 21:15:32 +09:00
Sukchan Lee 85981effc7 [AMF/AMF] Not assert for ogs_asn_copy_ie() (#2018)
Does not raise an assertion even if open5gs cannot handle the ASN in
ogs_asn_copy_ie()
2023-01-25 23:16:59 +09:00
jmasterfunk84 ee2eded848
Merge branch 'main' into MMENetworkDeregTimers 2023-01-24 12:47:33 -06:00
jmasterfunk84 e96b6be245 no Purge Timer, no config, expanded code 2023-01-24 12:35:47 -06:00
Sukchan Lee 11aac6a164 [CORE] Rollback ogs_pkbuf_copy() from (#2012)
In the previous #2012 working, I've added ogs_pkbuf_free() for original
buffer. But, this rasied double free. So, I've rollback it,
2023-01-24 00:17:10 +09:00
Sukchan Lee c6fd4ae6b8 [LOG] remove ogs_expect_or_return()/return_val() 2023-01-24 00:01:36 +09:00
Sukchan Lee ed5cd4d513 [MME] Fixed a crash when no UE context (#2016) 2023-01-23 18:49:12 +09:00
Sukchan Lee 689574a2d9 [AMF/MME] Fixed crash when no NG/S1 context(#2012) 2023-01-23 10:37:22 +09:00
Sukchan Lee a712d865cd [METRICS] Re-order init/final (#1985, #2001) 2023-01-20 21:16:45 +09:00
jmasterfunk84 5c3f10aa0e [MME] Introduce aging timers
* Creating three new timers
* mirroring work done by gstaa on the AMF
* Implicit detach procedures added
* Fix for detach from unknown UE
2023-01-18 20:39:27 -06:00
Sukchan Lee 4933c7ee24 More follow-up on #1911 2023-01-14 10:34:21 +09:00
Sukchan Lee 01a7b3c9b8 Follow-up on #1991 2023-01-14 09:20:52 +09:00
jmasterfunk84 3fd7ecc9a2
[MME] Add Purge-UE Capability (#1991)
* [MME] Add Purge-UE Capability

* Add OGS_GTP_..._PURGE_AND_REMOVE to split CLR case
2023-01-14 09:13:48 +09:00
Sukchan Lee 4510176da2 [MME] Clear UE Context for Attach Reject (#1848)
Attach Reject + PDN Connectivity Reject need to clear UE Context
2022-12-27 21:08:48 +09:00
Sukchan Lee 79d46be086 Introduced Subscription identifier de-concealing
o Generate the private key as below.
   $ openssl genpkey -algorithm X25519 -out /etc/open5gs/hnet/curve25519-1.key
   $ openssl ecparam -name prime256v1 -genkey -conv_form compressed -out /etc/open5gs/hnet/secp256r1-2.key

 o The private and public keys can be viewed with the command.
   The public key is used when creating the SIM.
   $ openssl pkey -in /etc/open5gs/hnet/curve25519-1.key -text
   $ openssl ec -in /etc/open5gs/hnet/secp256r1-2.key -conv_form compressed -text

In ausf/udm.yaml

 hnet:
    o Home network public key identifier(PKI) value : 1
      Protection scheme identifier : ECIES scheme profile A
    - id: 1
      scheme: 1
      key: /etc/open5gs/hnet/curve25519-1.key

    o Home network public key identifier(PKI) value : 2
      Protection scheme identifier : ECIES scheme profile B
    - id: 2
      scheme: 2
      key: /etc/open5gs/hnet/secp256r1-2.key

    o Home network public key identifier(PKI) value : 3
      Protection scheme identifier : ECIES scheme profile A
    - id: 3
      scheme: 1
      key: /etc/open5gs/hnet/curve25519-1.key

    o Home network public key identifier(PKI) value : 4
      Protection scheme identifier : ECIES scheme profile B
    - id: 4
      scheme: 2
      key: /etc/open5gs/hnet/secp256r1-2.key

Related to #1779
2022-12-24 20:22:45 +09:00
Sukchan Lee a4dc990bf1 Added more log in GTP Error (#1920) 2022-12-02 09:10:49 +09:00
Sukchan Lee 944adaabbf [AMF/MME] Added Timer Configuration (#1905) 2022-11-29 23:22:16 +09:00
Sukchan Lee 9170617df1 [AMF/MME] forget UE Radio Capability (#1917)
forgetting the UE Radio Capabilities
when UE is sending NAS "De-Registration Request" with "type = Switch-off
2022-11-27 09:03:44 +09:00
Sukchan Lee 8ce18b3828 [AMF/MME] Refactor SM to prevent crash (#1912) 2022-11-26 21:38:46 +09:00
Sukchan Lee 982ac61894 Prometheus metrics set to default 2022-11-21 22:06:29 +09:00
Bostjan Meglic b084edeee1 [metrics] Fix log output for metrics
Even if the configured log level for the application was set to "error",
the first "info" message of the metrics library was output to the log.
Reorder the initialization of the metrics library.
2022-11-15 23:50:15 +09:00
Sukchan Lee 243bf9850a [NAS] Discard message if Integrity failed (#1848) 2022-10-29 21:31:18 +09:00
Sukchan Lee 5ccb5f0f99 SCP(Model D) is now the default setting. 2022-10-22 11:26:04 +09:00
Sukchan Lee 24e20f2503 Follow-up on #1827 2022-10-13 17:52:02 +09:00
Sukchan Lee 0daef1686a Follow-up on #1827 2022-10-11 17:50:41 +09:00
Sukchan Lee 82863653eb Follow-up on #1828 2022-10-11 17:44:55 +09:00
Sukchan Lee 3955e9ba8d Revert the previous commit on #1797 2022-10-07 14:06:30 +09:00
Sukchan Lee dc6ca962bb Follow-up on #1797 2022-10-06 10:10:31 +09:00
Sukchan Lee 6d27fbb8cc Follow-up on #1797 2022-10-05 14:50:52 +09:00
jmasterfunk84 15680003b5
[MME] Cancel Location while Idle (#1797)
* Cancel Location while Idle Fix

* Forgot about SGSAP on MME Change.

Added "action" to sgsap_send_detach..

* Make handle_clr uniform with other handlers

* Added Robustness for Any Detach Type

* Memory wasn't freed upon CLR for unknown IMSIs

* Moving MME Detach to new PR
2022-10-05 11:06:01 +09:00
Sukchan Lee c537166d37 Follow-on up #1794 2022-10-02 19:41:52 +09:00
jmasterfunk84 1f2a8678ed
[MME] Support for Insert Subscriber Data (#1794)
* [MME] Support for Insert Subscriber Data

* Supported AVPs in IDR will overwrite existing subscription information
* Provide error on partial APN updates
* IDR and ULA use same function to process AVPs
* Move subdatamask values into s6a, so both HSS and MME can use them
* Updates are not actioned at this time.  A Re-attach is required for
  most changes to take effect

* Memory issue on IDR exceptions

* Remove of handling MSIDSN change until DSR is used
2022-10-02 19:36:24 +09:00
Sukchan Lee 7d5fbc6e06 [MME] Added protection code if no PDN-Type (#1756) 2022-09-25 22:41:11 +09:00
Bostjan Meglic 2d4fbf92eb [config,metrics] Move metrics configuration section under respective NF section
Without this change, using metrics with core setup configurations
(configs/vonr.yaml for example) would not be possible. Having one
metrics section for whole config file causes every NF to start metrics
server on same port causing an abort.
2022-09-25 19:17:49 +09:00
Sukchan Lee 721f5e212c [GTP] Changes the print message (#1772) 2022-09-25 19:16:32 +09:00
Bostjan Meglic 87cd34d300 Minor typo fix 2022-09-07 18:01:21 +09:00
Sukchan Lee c716a1294a [CORE] Check if timer is double free in SBI module 2022-09-03 15:59:39 +09:00
Sukchan Lee fcb15b69f7 [MME] Fixed buffer overflow (#1728) 2022-09-02 23:39:59 +09:00
Sukchan Lee 1d17e68c56 [ALL] Removing trailing whitespace and tab 2022-09-02 23:38:39 +09:00
Sukchan Lee 5295c108ad Added Service-based NF discovery
== Known limitation ==
Placing npcf-smpolicycontrol and pcf-policyauthorization
in different NFs is not supported. Both npcf-smpolicycontrol
and pcf-policyauthorization should be placed in the same NF.
2022-09-02 23:04:57 +09:00
Sukchan Lee 9b10d70c77 [NRF] Fixed library load error 2022-08-26 10:57:11 +09:00
Sukchan Lee 83a20b82c7 Follow up on #1714
* Changed sprintf to ogs_snprintf

* Limited to 80 column
2022-08-25 16:35:27 +09:00
jmasterfunk84 49349cdb75
[MME] Dictionary Updates and IDR Support (#1714)
* Add Diameter Dictionary Elements

* Initial IDR Framework

* Resolve Compile Issues

* Moving Closer

* Compile error

* Somewhat Working stuffing Code

* Add Timestamp Changes

* Cleanup some of this code.  mme_s6a_handle_idr in s6a-handler.c removed for now, since it will only come in handy when IDR flag is set to request current location, which would involve breaking out into paging.  I think there's a few other things we can do just within fd-path first.

* further removal of mme_s6a_handle_idr
2022-08-25 15:43:21 +09:00
Sukchan Lee 242b138597 [MME] UE-initiated detach removes S1 only (#1698) 2022-08-20 01:08:20 +09:00
Sukchan Lee 9bb9a4cae9 [MME] Detach removed MME-UE context (#1698) 2022-08-20 00:17:55 +09:00
Sukchan Lee 321c8d4cf9 [SGsAP] Changed message if Paging failed (#1701)
The problem occurred in the following scenario:

1. VLR sent PAGING-REQUEST to the MME
2. MME sent S1-Paging to the UE
3. Paging failed
4. MME responded SERVICE-REQUEST to the VLR
5. VLR sent DOWNLINK-UNITDATA to the MME
6. Even though there is no S1 Context,
   MME try to sent DownlinkNASTransport message to the UE.
7. So, the problem occurred.

I've changed the number 4 PAGING-REJECT instead of SERVICE-REQUEST.
2022-08-19 18:58:55 +09:00
Sukchan Lee 909f407c20 [MME] Fixed GTP transaction crash (#1696) 2022-08-19 17:23:10 +09:00
Sukchan Lee a9694d6474 [MME] Follow-up Cancel Location Handling (#1698) 2022-08-19 16:52:39 +09:00
jmasterfunk84 c98333bbfe
[MME] Cancel Location Handling (#1698)
* CLR while idle is broken after 7031856cd7

Cancel Location Request arriving while UE is idle will not proceed to paging due to this check for S1 connection.  Using new flag "isAnswer" to bypass this check to allow paging to occur when we are not doing a AIA/ULA related procedure.

* No Context Setup is required when sending the detach request.  If the paging was due to wanting to send a Detach Request to the UE, then we fast track to sending the detach request.

* emm-sm.c:
In the case of MME initiated detach while UE is idle, there is no initial conext setup.  We go right from the service request after paging into sending the detach request.  TS23.401

mme-path.c:
Using nas_eps.type in the case of MME Initiated Detach while UE is idle does not work.  nas_eps.type would represent the service request.

mme-s11-handler.c:
After S11 action, no action should be taken.  We want to wait for the detach accept from the UE before proceeding with the S1 release (detach).

* InitialContextSetup should occur for detach.
2022-08-19 16:44:06 +09:00
Sukchan Lee e6a14cb73d Move src/../nf-sm.[ch] to lib/sbi/nf-sm.[ch] 2022-08-12 14:03:53 +09:00
Sukchan Lee 4cb657c804 [MME] Changed CauseNas_detach in DETACH (#1676) 2022-08-06 14:00:54 +09:00