Compare commits

...

320 Commits

Author SHA1 Message Date
Sukchan Lee
a4fe2f2a44 Release v2.5.9 2023-03-06 22:11:42 +09:00
Sukchan Lee
5d388d7423 [PFCP/GTP] Fixed security bug (#2127,#2128,#2129) 2023-03-05 08:51:08 +09:00
Sukchan Lee
8b3ae96212 [AMF] Disallow handling service requests unless UE is already registered
(#2100)
2023-03-05 08:45:40 +09:00
Bostjan Meglic
eff191a265 [AMF] Disallow handling service requests unless UE is already registered 2023-03-05 08:40:52 +09:00
Sukchan Lee
be25059381 [SBI] Crash occurs when ENUM in the MAP (#2103) 2023-03-01 18:08:20 +09:00
Sukchan Lee
2387ca8c5a [SBI] Fixed openapitools MAP generation (#2103)
MAP was generated incorrectly because {{#items}}..{{#items}} was
missing.

Because of this, If scpInfo has scpPort, NRF crashes.
2023-02-26 10:37:40 +09:00
Sukchan Lee
8fd54fb35f [SBI] (#2069) Fix possible crash when handling PatchItems in NFProfile PATCH req 2023-02-14 23:12:25 -10:00
Sukchan Lee
ea6afaba89 [MME] Follow-up on #2063 2023-02-13 06:43:19 -10:00
Sukchan Lee
254d961a4e [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:35:51 -10:00
Sukchan Lee
8cb8a49f02 [AMF] Delete UERadioCapability (#2040, #1917)
23.501 (5G NAS stage 2)
5.4.4.1:
"When the AMF receives Registration Request with the Registration type set
to Initial Registration or when it receives the first Registration Request
after E-UTRA/EPC Attach with Registration type set to Mobility Registration
Update, the AMF deletes the UE radio capability."
2023-02-07 22:58:36 +09:00
Sukchan Lee
32d6d359ee [TEST] Reduce paging wait time 2023-02-05 12:18:39 +09:00
Sukchan Lee
a834eef6cd [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:05:27 +09:00
Sukchan Lee
2ae17cd2a6 [SBI] HTTP/2 user-agent header (#2048)
Open5GS now checks User-AGENT only in SCP.
2023-02-05 09:52:01 +09:00
Sukchan Lee
05452c8731 [SBI/NF] Follow-up on #2045 2023-02-04 21:42:43 +09:00
Bostjan Meglic
d8957130c1 [NF] Fix double-free crash when NF is under heavy load
<nf>/init.c:<nf>_main() :
ogs_pollset_poll() receives the time of the expiration of next timer as
an argument. If this timeout is in very near future (1 millisecond),
and if there are multiple events that need to be processed by
ogs_pollset_poll(), these could take more than 1 millisecond for
processing, resulting in the timer already passed the expiration.

In case that another NF is under heavy load and responds to an SBI
request with some delay of a few seconds, it can happen that
ogs_pollset_poll() adds SBI responses to the event list for further
processing, then ogs_timer_mgr_expire() is called which will add an
additional event for timer expiration. When all events are processed
one-by-one, the SBI xact would get deleted twice in a row, resulting in
a crash.

0  __GI_abort () at ./stdlib/abort.c:107
1  0x00007f9de91693b1 in ?? () from /lib/x86_64-linux-gnu/libtalloc.so.2
2  0x00007f9de9a21745 in ogs_talloc_free (ptr=0x7f9d906c2c70, location=0x7f9de960bf41 "../lib/sbi/message.c:2423") at ../lib/core/ogs-memory.c:107
3  0x00007f9de95dbf31 in ogs_sbi_discovery_option_free (discovery_option=0x7f9d9090e670) at ../lib/sbi/message.c:2423
4  0x00007f9de95f7c47 in ogs_sbi_xact_remove (xact=0x7f9db630b630) at ../lib/sbi/context.c:1702
5  0x000055a482784846 in amf_state_operational (s=0x7f9d9488bbb0, e=0x7f9d90aecf20) at ../src/amf/amf-sm.c:604
6  0x00007f9de9a33cf0 in ogs_fsm_dispatch (fsm=0x7f9d9488bbb0, event=0x7f9d90aecf20) at ../lib/core/ogs-fsm.c:127
7  0x000055a48275b32e in amf_main (data=0x0) at ../src/amf/init.c:149
8  0x00007f9de9a249eb in thread_worker (arg=0x55a483d41d90) at ../lib/core/ogs-thread.c:67
9  0x00007f9de8fd2b43 in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:442
10 0x00007f9de9063bb4 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:100
2023-02-04 21:42:35 +09:00
Sukchan Lee
87e5620401 [CORE] Add defense code to ogs_pkbuf_copy (#2032)
Added a defense code to prevent NF crash when ogs_pkbuf_copy() size is 0.
2023-01-29 16:51:32 +09:00
Sukchan Lee
5c10632a1b [NRF] Fixed a crash during NRF discovery (#2034)
Other NF instances are obtained through NRF
or created directly through configuration files.

Other NFs created by the config file should not be passed
through NRF discovery or anything like that.

Since self-created NF Instances do not have an ID,
they are implemented to exclude them from NRF Discovery.
2023-01-29 11:26:36 +09:00
Sukchan Lee
e3bba81d5f Added Service-MAP to Requester-Features (#2027)
ALWAYS Added Service-MAP to Requester-Features in Discovery Option
2023-01-29 09:18:36 +09:00
Sukchan Lee
99783bda92 [AMF] Added debug message in SM (#2021) 2023-01-28 12:11:48 +09:00
Sukchan Lee
9c245ce6c9 [AMF] Fixed crashes from malformed 5GS-ID (#2020) 2023-01-26 20:50:25 +09:00
Sukchan Lee
c1a04bed45 [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-26 00:14:00 +09:00
Sukchan Lee
2a6d3d26cf [CORE] OGS_MAX_SDU_LEN->OGS_HUGE_LEN Stack (#2008)
Changed all OGS_MAX_SDU_LEN in the stack to OGS_HUGE_LEN.
2023-01-25 22:49:37 +09:00
Sukchan Lee
2f525f054f [SBI] Fixed crash if no BW Unit(Xbps) (#2000) 2023-01-24 21:58:28 +09:00
Sukchan Lee
1d57db6df7 [CORE] Increase SDU buffer to 32k (#2008) 2023-01-24 21:48:24 +09:00
Sukchan Lee
8bc2f66128 [MME] Fixed a crash when no UE context (#2016) 2023-01-23 18:44:43 +09:00
Sukchan Lee
476fc64f6d Update document for v2.5.8 2023-01-23 11:07:47 +09:00
Sukchan Lee
882f13ae11 remove old document 2023-01-23 11:07:34 +09:00
Sukchan Lee
f2645bf01f Release v2.5.8 2023-01-23 11:00:47 +09:00
Sukchan Lee
fa74863ee1 [PROTO] Increase SDU buffer 8k->16k (#2008) 2023-01-21 16:19:31 +09:00
Sukchan Lee
7df3ebb363 [AMF] Fixed MEMORY LEAK (#1925) 2023-01-21 16:16:17 +09:00
Sukchan Lee
31470c3ea3 [UPF] Fixed bug when 2 PDRs with same TEID (#2003) 2023-01-20 10:04:02 +09:00
Sukchan Lee
4d85d0965f Update document for 2.5.7 2023-01-14 12:04:56 +09:00
Sukchan Lee
5f9ca55645 Release v2.5.7 2023-01-14 12:03:52 +09:00
ridzafauzi
9e9ba42c78 changed error tagged log to info tagged log for handling 5g guti information during Configuration Update procedure 2023-01-11 23:12:59 +09:00
Sukchan Lee
d35a707ee2 [PCRF] More fixes for crashes (#1981) 2023-01-10 16:15:20 +09:00
Sukchan Lee
8a722de16c [PCRF] Fixed a crash (#1981)
An assertion was fired when switching between video and audio.
2023-01-07 15:23:25 +09:00
Sukchan Lee
9013dd6fd9 [MME] Clear UE Context for Attach Reject (#1848)
Attach Reject + PDN Connectivity Reject need to clear UE Context
2022-12-27 21:08:29 +09:00
Sukchan Lee
e3b261eb8b [SBI] Case-Insensitive inside MIME message (#1939) 2022-12-05 21:32:00 +09:00
Lester
750478bfd4 free replybuf after sent replay message 2022-12-05 14:52:08 +09:00
Miguel Borges de Freitas
172cec51e7 amf: fix regression for smf selection 2022-12-04 15:24:09 +09:00
Sukchan Lee
a601a7a775 [AMF] Fixed a crash while NGReset (#1928) 2022-12-04 15:24:09 +09:00
Sukchan Lee
694a48a6ca [AMF] Wrongly sending PDU Session Release (#1925) 2022-12-04 15:24:09 +09:00
Sukchan Lee
2319375ea7 [UPF] Fixed an infinte loop when ext_len is 0 2022-12-02 08:00:36 +09:00
Sukchan Lee
c5bf02313f [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:05:32 +09:00
Sukchan Lee
c5b1b18dd7 Continue to fix alpine stack overflow (#1911) 2022-11-27 00:13:05 +09:00
Sukchan Lee
6bf406b454 Fixed alpine stack overflow (#1911) 2022-11-27 00:05:14 +09:00
Sukchan Lee
80cda9b03f [AMF/MME] Refactor SM to prevent crash (#1912) 2022-11-26 21:40:23 +09:00
Sukchan Lee
c4235ef489 Fixed MacOSX Test code 2022-11-26 18:50:27 +09:00
Sukchan Lee
968236af20 Fixed test code for MacOSX Ventura 2022-11-26 18:50:27 +09:00
Lester
8ea6e2415f get amf_ue from sess
amf_ue will be null and cause a coredump when type is OGS_SBI_OBJ_SESS_TYPE.
2022-11-26 18:34:06 +09:00
Sukchan Lee
3531166d38 Rollback ogs-app timer 2022-11-18 23:27:20 +09:00
Sukchan Lee
25f8c9a03e Update document for v2.5.6 2022-11-18 23:03:53 +09:00
Sukchan Lee
148ea44562 Release v2.5.6 2022-11-18 22:45:25 +09:00
Sukchan Lee
d5b34322f3 Fixed crash after 48 hours of running (#1893) 2022-11-18 21:30:33 +09:00
Sukchan Lee
517bb6ad85 Follow-up on #1886 2022-11-10 15:14:01 +09:00
lost_res
3730db615e Update 01-quickstart.md
Change S1AP bind address for external eNB.
2022-11-10 15:11:12 +09:00
Yarin Sergey
935f50bb24 Build WebUI from local source
Use local copy of source code to build WebUI,
instead of downloading the code from Github.
2022-11-08 23:02:46 +09:00
Bostjan Meglic
ba8a7ce1af [AMF] Add implicit_unsubscribe field to SDMSubscription 2022-11-08 15:57:21 +09:00
Sukchan Lee
4106207150 Rollback WebUI (#1882) 2022-11-07 22:57:33 +09:00
Yarin Sergey
4091484215 Build webui from local source
Use local copy of source code to build webui,
instead of downloading the code from Github.
2022-11-07 22:47:59 +09:00
Sukchan Lee
ddf09f270a [SMF] Fixed PTI when PDU Session Reject 2022-11-07 16:51:51 +09:00
Sukchan Lee
95459f8376 [WebUI] Change installation script (#1824) 2022-11-06 20:11:24 +09:00
Sukchan Lee
77c92eb37b Release v2.5.5 2022-11-04 20:39:19 +09:00
Sukchan Lee
0d4cd88379 Fixed the WebUI installation 2022-11-04 17:55:32 +09:00
Sukchan Lee
0a9f2e5c40 Fix the WebUI installation bug 2022-11-04 17:52:23 +09:00
Sukchan Lee
1cc6736fa8 Squashed commit of the following:
commit 5070c19a5469269d036bf243ebdb2740aefc7b8d
Author: Sukchan Lee <acetcom@gmail.com>
Date:   Fri Nov 4 15:46:35 2022 +0900

    updte it

commit e49107f46152ff6dce5658b48cfb2c31df61724a
Author: Sukchan Lee <acetcom@gmail.com>
Date:   Fri Nov 4 11:03:37 2022 +0900

    update it

commit a55b977e044b1d74ccc8a19f1dbf8194c3cd7daa
Author: Sukchan Lee <acetcom@gmail.com>
Date:   Fri Nov 4 10:50:41 2022 +0900

    update it

commit 0ff0930d99bfeb91134271dae0941b4c454d1a3d
Author: Sukchan Lee <acetcom@gmail.com>
Date:   Fri Nov 4 10:09:35 2022 +0900

    update it

commit 8cb5038b66d4a605446c6fc200b77f645f7ad328
Author: Sukchan Lee <acetcom@gmail.com>
Date:   Fri Nov 4 09:39:08 2022 +0900

    update it

commit 0a6829dfb6470f3d9b786363d49387fdc688e33b
Author: Sukchan Lee <acetcom@gmail.com>
Date:   Fri Nov 4 09:06:22 2022 +0900

    update it

commit ea85035300d9a42cc5f8f7ee300d28cd055f0f1c
Author: Sukchan Lee <acetcom@gmail.com>
Date:   Thu Nov 3 21:36:17 2022 +0900

    update it

commit e86ba621de332d3f712569cf0580fc8a5321adbd
Author: Sukchan Lee <acetcom@gmail.com>
Date:   Thu Nov 3 17:39:27 2022 +0900

    update it

commit 2c05df84eabeba7c277c622e5d810768b2895961
Author: Sukchan Lee <acetcom@gmail.com>
Date:   Thu Nov 3 16:20:47 2022 +0900

    update it

commit 43c88aed3f2001fdbc28ce0f11cc21dfcdc5906f
Author: Sukchan Lee <acetcom@gmail.com>
Date:   Wed Nov 2 22:17:37 2022 +0900

    update it

commit b374db4e02e7dd153944f5a6fdc2a50c434dfa09
Author: Sukchan Lee <acetcom@gmail.com>
Date:   Wed Nov 2 22:05:53 2022 +0900

    update it
2022-11-04 17:39:29 +09:00
Sukchan Lee
fa35b06963 Follow-up on #1876 2022-11-04 14:58:47 +09:00
Bostjan Meglic
00a86c5a73 [SBI] Do not send empty arrays when registering to NRF
OpenAPI dictates that certain arrays should have at least one item,
otherwise they should not be present.
This includes lists for IPv4/v6 addresses, TAI/TAC lists, ...

Add a check if there is at least 1 item, before creating an array.
Also move variable declarations to inner blocks, to prevent some
accidental usage out of wanted scope.
2022-11-04 14:58:33 +09:00
Sukchan Lee
406e3f07dc Release v2.5.4 2022-11-01 21:22:09 +09:00
EugeneBogush
5fd4fe9379 added open5gs-scp 2022-11-01 21:04:00 +09:00
Sukchan Lee
e9db0b0889 Release v2.5.3 2022-10-31 07:26:52 +09:00
EugeneBogush
2a2d5c5cfa fix for scp daemon (#1872)
* fix

* fix2

* fix
2022-10-31 07:14:53 +09:00
Sukchan Lee
9a7b75eb3b Release v2.5.2 2022-10-30 14:24:37 +09:00
Sukchan Lee
15e3c1f166 Fix to avoid port (7777) conflicts on Mac OS X 2022-10-30 13:58:28 +09:00
Sukchan Lee
cca53fb8e8 SCP had a serioud memory problem and fixed it 2022-10-30 13:35:25 +09:00
Sukchan Lee
243bf9850a [NAS] Discard message if Integrity failed (#1848) 2022-10-29 21:31:18 +09:00
Sukchan Lee
78359374ab Document update for v2.5.1 2022-10-29 12:47:04 +09:00
Sukchan Lee
3e22805941 Release v2.5.1 2022-10-29 12:41:27 +09:00
Sukchan Lee
0df2cba257 Support SMF Security Indication IE (#1851) 2022-10-29 12:26:09 +09:00
Sukchan Lee
f1c0b6d239 Fixed a bug WebUI for production build (#1824) 2022-10-28 14:44:06 +09:00
mitmitmitm
b9f6432e54 [AMF] Support REREGISTRATION_REQUIRED in dereg notify 2022-10-26 14:40:41 +09:00
Sukchan Lee
ead6f8e973 Update document for v2.5.0 2022-10-25 23:30:08 +09:00
Sukchan Lee
5ef88fcd01 Release v2.5.0 2022-10-25 22:49:28 +09:00
Sukchan Lee
67dd7d8633 Added missing files(SCP for systemd) 2022-10-25 22:35:58 +09:00
Sukchan Lee
844ec8a810 Release v2.5.0 2022-10-25 21:29:12 +09:00
Sukchan Lee
e3ba32c85d Fixed the bug of SGW-C session deletion (#1825) 2022-10-25 21:22:14 +09:00
Sukchan Lee
b151642fa1 SCP is added in Debian package 2022-10-25 21:20:09 +09:00
Sukchan Lee
e81265f015 Fixed the WebUI to Support MongoDB 6.0(#1824) 2022-10-25 21:15:44 +09:00
Sukchan Lee
ec4acd4eca remove warning in MacOSX (#1797) 2022-10-25 21:14:53 +09:00
Sukchan Lee
5ccb5f0f99 SCP(Model D) is now the default setting. 2022-10-22 11:26:04 +09:00
Sukchan Lee
7a14f2c505 Update README.md 2022-10-18 22:34:38 +09:00
Sukchan Lee
24e20f2503 Follow-up on #1827 2022-10-13 17:52:02 +09:00
jmasterfunk84
8fb85db310 [DBI] Disable Change Streams with mongo Version
Support for change stream is only available in mongoc >=1.9.0
- Disabled related functions in dbi.
Support for bson to json used in debug statement only in libbson >=1.7.0
- Simple debug message in lower versions
2022-10-13 17:33:35 +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
Bostjan Meglic
395707831a [AMF] Reject registration requests when pool for UE contexts is empty
AMF does not crash anymore when a new UE registration request arrives,
and there is no available space left in UE context pool. Now it just
rejects the request with an error.
2022-10-11 17:35:50 +09:00
Bostjan Meglic
b019dce982 [AMF] Increase size of TMSI pool
Each UE context has 'current' and 'next' TMSI values. AMF first
allocates the 'next' value, before confirming it and releasing the
'previous'. This means that we potentially need pool size of 2x the
amount of maximum configured UE.

Without this change, AMF would crash in case that there are 'x'
configured maximum amount of UE, and there are already 'x' registered
UE.

[gmm] INFO: Registration request (../src/amf/gmm-sm.c:135)
[gmm] INFO: [suci-0-001-01-1234-0-1-1000000000]    SUCI (../src/amf/gmm-handler.c:149)
[gmm] DEBUG:     OLD TSC[UE:0,AMF:0] KSI[UE:7,AMF:0] (../src/amf/gmm-handler.c:179)
[gmm] DEBUG:     NEW TSC[UE:0,AMF:0] KSI[UE:7,AMF:0] (../src/amf/gmm-handler.c:186)
[amf] FATAL: amf_m_tmsi_alloc: Assertion `m_tmsi' failed. (../src/amf/context.c:2160)
[core] FATAL: backtrace() returned 13 addresses (../lib/core/ogs-abort.c:37)
2022-10-11 17:35:38 +09:00
Sukchan Lee
704fe72d11 Updated SBI module
- Introduced NF_INSTANCE_ID/NF_INSTANCE_TYPE
- Skip SCP in configuration validation
2022-10-08 11:48:12 +09:00
Sukchan Lee
3955e9ba8d Revert the previous commit on #1797 2022-10-07 14:06:30 +09:00
Sukchan Lee
d1ed8aa61d [SMF] Update PFCP report error situation (#1819) 2022-10-07 10:41:53 +09:00
Bostjan Meglic
a99a76d916 [AMF,UDM] Add support to subscribe to SDM changes
AMF subscribes to UDM for each registered UE.

At the moment, UDM does not send callback to AMF when any of the UE's
properties in the database changes.
At the moment, AMF does properly parse the ModificationNotification, but
does not do anything useful.
2022-10-06 21:20:10 +09:00
safaorhann
e9aaceee98 fix dropped_dl_traffic_threshold ie. 2022-10-06 10:40:08 +09:00
Sukchan Lee
dc6ca962bb Follow-up on #1797 2022-10-06 10:10:31 +09:00
Spencer Sevilla
be2af54682 ogs_info swaps CP and UP SEIDs 2022-10-05 17:41:42 +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
7c8722d9d4 [SBI] Client Request timeout
TS29.500
Ch 6.11 Detection and handling of late arriving requests

In Open5GS, this part was hard-corded.

HTTP2 Client sends a request and waits for 10 seconds.
If no response is received from the HTTP2 Server,
HTTP2 Client performs the exception handling.

In this commit, HTTP2 client sends Header with setting Max-Rsp-Time to 10 seconds.
However, HTTP2 server has not yet been implemented to process this value.
The server is still processing using hard-corded values (10 seconds).
2022-10-03 11:43:34 +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
35ae3317b7 Added Release Notes for v2.4.11 2022-10-01 14:18:09 +09:00
Sukchan Lee
eace5007b2 Release v2.4.11 2022-10-01 13:54:42 +09:00
Sukchan Lee
71a1516b03 [Security] Fixed a crash for port scanning (#1767) 2022-10-01 13:28:41 +09:00
Sukchan Lee
1acb7f72b4 [UPF] test code for unspecified address (#1776) 2022-10-01 13:23:15 +09:00
Sukchan Lee
773c7df3e6 [5GC] Fixed session deletion in a BSF (#1725) 2022-10-01 13:11:13 +09:00
Bostjan Meglic
f71022ad4a [AMF] Fix for switching state when sending Deregistration Request fails
Provide pointer to state machine, instead of pointer to timer structure.
Bug was noticed when switching compiler optimization to -O2.
2022-10-01 13:08:38 +09:00
Sukchan Lee
4b26dd2a5c Follow-on up #1793 2022-10-01 13:07:54 +09:00
Dibas Das
f72a1edc6e Fix UL and DL URR Usage Report 2022-10-01 13:07:04 +09:00
Sukchan Lee
1d153d8b78 Commercial Term by NeoPlane - https://neoplane.io/ 2022-09-26 14:53:38 +09:00
Sukchan Lee
0c6258d108 Merge branch 'main' of https://github.com/open5gs/open5gs into main 2022-09-26 14:29:52 +09:00
Sukchan Lee
8b10dc1edc Changes new GA4 in Google Analytics 2022-09-26 14:29:19 +09:00
Sukchan Lee
7d5fbc6e06 [MME] Added protection code if no PDN-Type (#1756) 2022-09-25 22:41:11 +09:00
Sukchan Lee
e08b8f04e8 [DOC] iptable setting for security (#1768) 2022-09-25 21:12:32 +09:00
Sukchan Lee
87bc82b245 Follow-on up #1754 2022-09-25 19:23:09 +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
Spencer Sevilla
e704ac108e add addr/port to pfcp assoc/de-assoc logs (#40)
pfcp association log adds addr/port
2022-09-25 18:58:53 +09:00
Sukchan Lee
fdc84406e0 [SGWC] Fixed a crash (#1765)
Session context could be deleted before a response message is not
received from SMF
2022-09-25 18:55:04 +09:00
Sukchan Lee
31fcedc12e Follow-up on #1770 2022-09-25 16:42:46 +09:00
Spencer Sevilla
0759c2da5a [core] fix timer overflow on 32bit systems (#16)
must cast ts.tv_sec to 64bits before we multiply it to prevent 32bit math and overflow
2022-09-25 16:41:50 +09:00
Sukchan Lee
724fa56843 Fixed HTTP2 crashes for random JSON data (#1769) 2022-09-25 15:06:37 +09:00
Sukchan Lee
c2f6a020a7 [TLV] Added more debug information (#1767) 2022-09-25 09:17:23 +09:00
Sukchan Lee
3ad74923c1 Update document 2022-09-24 21:58:18 +09:00
Sukchan Lee
a0d643e17f Follow-up on #1758 2022-09-23 21:25:58 +09:00
jmasterfunk84
7f5476b111 [HSS] Enable Change Streams (#1758)
* [HSS] Enable Change Streams
* Enable Events and Timers in HSS
* Integrate change streams in dbi
* mongodb should be configured with replica sets enabled to use feature
* Change streams are optional in HSS
* Timer will poll change stream for changes in the database
* As changes are detected, event is created to perform the correct
  action

* Changes made as suggested
2022-09-23 21:24:50 +09:00
Sukchan Lee
2b8db5d488 Follow-up on #1757 2022-09-23 20:42:04 +09:00
Gaber Stare
d3d4e5ce60 [AMF] Add amfInfoList to NFProfile
The actual configured GUAMIs and TAIs are used to form NF profile.
Comparing to SMF the "info" section is not introduced into amf.yaml!
Each amf_id (region, set) produces a separate Info in the InfoList.
Guami list consists of all GUAMIs of particular Info.
taiList consists of all TAIs for all PLMNs of particular Info.

Examle:

amf.yaml:
    guami:
      - plmn_id:
          mcc: 999
          mnc: 70
        amf_id:
          region: 2
          set: 2
          pointer: 4
      - plmn_id:
          mcc: 001
          mnc: 01
        amf_id:
          region: 2
          set: 1
      - plmn_id:
          mcc: 001
          mnc: 02
        amf_id:
          region: 2
          set: 2
    tai:
      - plmn_id:
          mcc: 001
          mnc: 01
        tac: [1, 2, 3]
    tai:
      - plmn_id:
          mcc: 002
          mnc: 02
        tac: 4
      - plmn_id:
          mcc: 001
          mnc: 02
        tac: 10
    tai:
      - plmn_id:
          mcc: 004
          mnc: 04
        tac: [6, 7]
      - plmn_id:
          mcc: 005
          mnc: 05
        tac: 8
      - plmn_id:
          mcc: 999
          mnc: 70
        tac: [9, 10]

"amfInfoList":  {
        "1":    {
                "amfSetId":     "002",
                "amfRegionId":  "02",
                "guamiList":    [{
                                "plmnId":       {
                                        "mcc":  "999",
                                        "mnc":  "70"
                                },
                                "amfId":        "020084"
                        }, {
                                "plmnId":       {
                                        "mcc":  "001",
                                        "mnc":  "02"
                                },
                                "amfId":        "020080"
                        }],
                "taiList":      [{
                                "plmnId":       {
                                        "mcc":  "001",
                                        "mnc":  "02"
                                },
                                "tac":  "00000a"
                        }, {
                                "plmnId":       {
                                        "mcc":  "999",
                                        "mnc":  "70"
                                },
                                "tac":  "000009"
                        }, {
                                "plmnId":       {
                                        "mcc":  "999",
                                        "mnc":  "70"
                                },
                                "tac":  "00000a"
                        }]
        },
        "2":    {
                "amfSetId":     "001",
                "amfRegionId":  "02",
                "guamiList":    [{
                                "plmnId":       {
                                        "mcc":  "001",
                                        "mnc":  "01"
                                },
                                "amfId":        "020040"
                        }],
                "taiList":      [{
                                "plmnId":       {
                                        "mcc":  "001",
                                        "mnc":  "01"
                                },
                                "tac":  "000001"
                        }, {
                                "plmnId":       {
                                        "mcc":  "001",
                                        "mnc":  "01"
                                },
                                "tac":  "000002"
                        }, {
                                "plmnId":       {
                                        "mcc":  "001",
                                        "mnc":  "01"
                                },
                                "tac":  "000003"
                        }]
        }
}
2022-09-23 20:37:47 +09:00
Sukchan Lee
ce7d631064 [GTP/PFCP] TLV length more acceptable (#1780)
Acceptable even if the TLV length is smaller than expected
2022-09-23 13:13:34 +09:00
Sukchan Lee
65d959a032 Updated favicon.ico in Document 2022-09-22 23:16:51 +09:00
Sukchan Lee
2762d6fd2d Sponsors logo updated to be dark-mode friendly 2022-09-20 11:15:19 +09:00
Sukchan Lee
d63360a22d [DOC] Fixed alphabet order 2022-09-16 10:19:27 +09:00
neg2led
608df3b5a8 Add tested Ericsson gNodeBs and eNodeBs 2022-09-16 10:12:44 +09:00
Sukchan Lee
8228e446ae Added commercial 5G 2022-09-16 09:09:59 +09:00
Bostjan Meglic
0f5d968149 [SMF] Wait for both N1&N2 release signals before releasing session
When UE would send a request to release PDU session, AMF would
eventually send "PDU Session Resource Release Command" downlink to both
UE (N1) and gNB (N2). Each UE and gNB would then reply with "PDU Session
Resource Release Response" indicating they released their own resources.

Usually the first one to respond would be gNB. SMF made an assumption
that this would always be the case. And it would wait for signal that UE
resources were freed, before releasing session resources. But
occasionally the situation is that UE responds first, and SMF releases
resources prematurely.

This situation does not normally occur. But under high stress (100's of
UE PDU releases at the same time) this happens occasionally.
According to the standard, this situation is perfectly normal.

3GPP TS 23.502 Rel. 16
4.3.4.2 UE or network requested PDU Session Release for Non-Roaming and
Roaming with Local Breakout
...
Steps 8-10 may happen before steps 6-7.
...
2022-09-13 21:39:21 +09:00
Sukchan Lee
5520cb65a5 Follow-up on #1744 2022-09-13 17:03:18 +09:00
jmasterfunk84
775520d7a8 Introduce Cancel Location and Insert Subscriber Data features to HSS. (#1744)
* Introduce Cancel Location and Insert Subscriber Data features to HSS.
* HSS database will keep track of last known MME and Update Time
* Purged UE flag is established in HSS for future PUR handling
* HSS Thread will connect to database and watch change stream
  mongoDB must be configured with a Replica Set to use this
* HSS will send IDR if subscription data changes
* HSS will send CLR to old MME if MME host or realm changes
* Function created to allow ULA and IDR to generate Subscription-Data AVP
* MME Hostname and Realm shown in WebUI

* Resolve freeDiameter errors

During a ULR, if database does not contain a last known MME, a CLR is being sent to a Null destination.  This will ensure that a destination is available in the database before sending the CLR.

* Removed change streams.  Added PUR handling.

* newline needed at end of file.

* Removed temp variable.

* * Change WebUI to 2x2 display
* Including UE Purged indicator
* Using pointers in ogs_subscription_data_t
* better memory mangement with pointers
* Tweak to Destination used by hss_s6a_send_idr to use last known MME

* Check for null mme_host and mme_realms

Do this before trying to compare the strings.
2022-09-13 16:48:20 +09:00
Sukchan Lee
53d75e74cb Added Release Notes for v2.4.10 2022-09-09 10:32:40 +09:00
Sukchan Lee
a0b7865a43 Release v2.4.10 2022-09-09 09:40:50 +09:00
Sukchan Lee
1f165c1c33 Follow-up on #1747 2022-09-08 23:17:04 +09:00
Bostjan Meglic
31a3788021 [AMF] Handle APN/DNN names as case-insensitive
In case that APN name sent from UE does not case-match with the one
configured in the database, AMF would reject the registration with the
message:

[gmm] WARNING: [imsi-xxx] DNN Not Supported OR Not Subscribed in the
Slice (../src/amf/gmm-handler.c:1051)
2022-09-08 23:13:47 +09:00
Sukchan Lee
f54bccacf5 Support service-based NF subscription 2022-09-08 22:12:01 +09:00
Bostjan Meglic
87cd34d300 Minor typo fix 2022-09-07 18:01:21 +09:00
jmasterfunk84
eb55e4ee3a Also format for pcc_rule. UE and SMF look okay as medium_data as first section. 2022-09-07 17:58:32 +09:00
jmasterfunk84
36254e5df4 When using longer APN name, it is obscured due to short field. 2022-09-07 17:58:32 +09:00
Bostjan Meglic
51669d73a0 [AMF] Accept Deregistration Notification from UDM only for registered UE (#1737)
Add additional check when receiving Deregistration Notification from
UDM. UE should already be in registered state before accepting the
request and deregistering the UE.

Also add additional check that PCF association policy exists before
sending a delete request to PCF.
2022-09-06 19:47:42 +09:00
EugeneBogush
e55d4d8300 removing extra lines
I did not find the purpose of their use
2022-09-05 23:35:18 +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
acc36a344f [PCF] Check NF service configuration
* npcf-smpolicycontrol - enabled or disabled
* npcf-policyauthorization - enabled or disabled

Only one of npcf-smpolicycontrol and npcf-policyauthorization cannot be enabled. (../src/pcf/sbi-path.c:151)

They can be enabled or disabled together.
2022-09-03 13:07:00 +09:00
Bostjan Meglic
9c84570a48 [SBI] Send NF discovery query with service-names delimited with comma
OpenAPI specification for sending NF discovery query with
"service-names" parameter is defined as folowing:

- name: service-names
  ...
  style: form
  explode: false

According to OpenAPI specification, this means array items
should be delimited with a comma character (example: /users?id=3,4,5).
2022-09-03 10:43:59 +09:00
Sukchan Lee
d87d61e851 Follow-up on #1729 2022-09-03 09:20:48 +09:00
mitmitmitm
af1f8d4f4a [SMF] Handle upCnxState=ACTIVATING by replying with 200 instead of 204
According to TS 29.502 5.2.2.3.2.2., we should reply with a 200 response
including the upCnxState attribute.
2022-09-03 09:08:27 +09:00
Sukchan Lee
c28faf00ea Added simple test program
./tests/registration/registration simple-test
./tests/vonr/vonr simple-test
./tests/attach/attach simple-test
./tests/volte/volte simple-test
2022-09-03 07:28:48 +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
Alexander Couzens
b175394839 [SMF] fixup send 3GPP-Charging-Characteristics on Gx if received on S5/8c
- Gy instead of Gx AVP was used.
- Use correct avp position and avp variables.

Fixes: 657eef9169 ("[SMF] send 3GPP-Charging-Characteristics on Gx if received on S5/8c")
2022-08-31 06:38:08 +09:00
Sukchan Lee
c7830a78e6 [Conf] Changed MTU size from 1500 to 1400 2022-08-28 23:10:36 +09:00
Sukchan Lee
eab29fad9a Follow up on #1715
* Changed <TAB> to <SPACE>*4

* Changed snprintf to ogs_snprintf
2022-08-27 18:43:34 +09:00
Alexander Couzens
657eef9169 [SMF] send 3GPP-Charging-Characteristics on Gx if received on S5/8c
The 3GPP-Charging-Characteristics is an operator specific AVP
(optional). The 3GPP-Charging-Characteristics can be filled by the HSS
and forwarded by the MME towards the SMF.
2022-08-27 18:36:54 +09:00
Alexander Couzens
41e4460769 diameter: Gx: add AVP 3GPP-Charging-Characteristics
The 3GPP-Charging-Characteristics is an operator specific AVP
(optional). The 3GPP-Charging-Characteristics can be filled by the HSS
and pass through to the Gx interface.

See ETSI 29.212 5.4.0.1 for further details.
2022-08-27 18:36:54 +09:00
Sukchan Lee
9f98d421a0 [SBI] Added config for service-names discovery 2022-08-27 10:49:07 +09:00
Sukchan Lee
f020732ce9 [SBI] Support service-names in discovery option 2022-08-27 00:12:22 +09:00
Bostjan Meglic
e79e35dd74 [metrics] Fix double-free on application exit (#1717) 2022-08-26 18:15:32 +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
Bostjan Meglic
def99aff7f [SMF] Fix abort on app exit when no Diameter configuration
In case that SMF was configured to run without Diameter, it would crash
on application exit due to uninitialized variables/pointers.

ERROR  pid:unnamed in fd_sess_handler_destroy@sessions.c:324: ERROR: Invalid parameter '(handler && ( ((*handler) != ((void *)0)) && ( ((struct session_handler *)(*handler))->eyec == 0x53554AD1) ))', 22
[smf] FATAL: smf_gx_final: Assertion `ret == 0' failed. (../src/smf/gx-path.c:1353)
2022-08-24 01:39:24 +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
444e182288 [PFCP] security vulnerability continued in d99491a 2022-08-16 20:32:42 +09:00
Sukchan Lee
dbf6971dcf [DOCS] Updated if subscribers changed [#1694] 2022-08-14 15:36:41 +09:00
Sukchan Lee
c835556623 Fixed Defects reported by Coverity Scan 2022-08-13 23:49:55 +09:00
Sukchan Lee
dbb52592d8 Removed duplicated document link 2022-08-13 17:45:39 +09:00
Sukchan Lee
291b63f41a Update docs @s5uishida 2022-08-13 10:17:38 +09:00
Sukchan Lee
f78f042d75 Update docs @nickvsnetworking and @@s5uishida 2022-08-13 09:44:23 +09:00
herlesupreeth
7162684486 [SMF]: Update stored PCO IE requested over Gn in SMF context
As per 3GPP TS 29.060 version 15.3.0, section 7.3.3, 7.3.4, 7.3.5 and 7.3.6

Only if PCO IE is included in Update/Delete PDP Context Request then it
must be present in Update/Delete PDP Context Response.

In order to reflect on whether the request contained PCO IE or not
the SMF context containing the GTP request needs to be updated
i.e. update if present else clear the contents
2022-08-13 09:30:28 +09:00
herlesupreeth
16ea972937 [SMF]: Update stored PCO IE requested in GTPv2 over S5c in SMF context
As per 3GPP TS 29.274 version 10.5.0, section 7.2.9 and 7.2.10,
Only if PCO IE is included in Delete Session Request then it
must be present in Delete Session Response.

In order to reflect on whether the request contained PCO IE or not
the SMF context containing the GTP request needs to be updated
i.e. update if present else clear the contents
2022-08-13 09:30:28 +09:00
Sukchan Lee
603a746f49 Lower Linux version cannot change HTTP2 max stream
CURLMOPT_MAX_CONCURRENT_STREAMS can be supported as of curl 7.67.0
2022-08-12 17:11:23 +09:00
Sukchan Lee
d99491aca5 [PFCP] Fixed security protection
Check the length to prevent buffer overflow attacks.
2022-08-12 15:38:40 +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
ec9fe7b31d [SBI] CLIENT max concurrent streams to 16384 2022-08-10 12:31:50 +09:00
Sukchan Lee
db37bc8944 [SBI] Increased the max stream number 2022-08-10 11:03:10 +09:00
Sukchan Lee
4cb657c804 [MME] Changed CauseNas_detach in DETACH (#1676) 2022-08-06 14:00:54 +09:00
Sukchan Lee
da20b2d035 [GTP] gtp_peer override the pool size of GTP node 2022-08-06 13:54:05 +09:00
Sukchan Lee
700c71ef4c Changed configuration name from gnb to peer
And restored gtp_peer configuration
2022-08-05 16:56:36 +09:00
Sukchan Lee
f772bf3a62 [PFCP] Revert Changes 5e18b2b and d21e9aa
To protect malicious or buggy, we need to check that session context is NULL.
2022-08-04 09:55:17 +09:00
Sukchan Lee
cca3027e90 [NRF] Fixed the nfInstanceUri (#1683) 2022-08-03 17:32:15 +09:00
Sukchan Lee
e88c43e8df [Diameter] Fixed Coding convention (#1680) 2022-08-03 14:34:21 +09:00
jmasterfunk84
415e5276ba [MME+HSS] AVP Occurring Too Many Times
Do not Set Origin-Hosts with fd_msg_rescode_set before potential use of ogs_diam_message_experimental_rescode_set.  This results in multiple Origin-Host/Realm AVPs.
2022-08-03 14:32:57 +09:00
Sukchan Lee
d21e9aa5e0 [PFCP] Revert Changes 5e18b2b 2022-08-03 14:13:35 +09:00
Sukchan Lee
7231dafbf1 [SBI] Fixed nf_instance memory leak
- Rollback commit ed3444eef5
- Do not modify reference count when REGISTER/DEREGISTER notified from NRF
2022-08-02 09:44:13 +09:00
Sukchan Lee
7031856cd7 [MME] Changed S1AP_Cause in S1AP Release (#1676)
S1AP_CauseNas_detach -> S1AP_CauseNas_normal_release
2022-07-31 12:38:11 +09:00
Sukchan Lee
5524dc5e29 Refact paging module (#1676) 2022-07-30 14:44:34 +09:00
jmasterfunk84
47cbaca149 [MME] Introduce support for S6a Cancel Location Request
- Added diameter dictionary definitions for Cancel Location
- Cancel Location will completely remove UE from MME, allow for a fresh IMSI attach to occur on next attempt.
- T3422 is used for detach request.
- Added new handling for s6a events in mme-sm, as not all s6a messages are at attach now.  Maybe there's something in a state machine I should've been using here instead of a new flag?

- Testing was completed with UE in idle and connected.  With CLR flags indicating re-attach required and without.  Also sending CLR after UE detach.  And then sending again when mme_ue is empty.
2022-07-30 14:37:43 +09:00
Sukchan Lee
ff5023e95b Release v2.4.9 2022-07-25 21:50:06 +09:00
Sukchan Lee
9b762158a6 Refine code of discovery option param (#1671) 2022-07-24 19:47:04 +09:00
Sukchan Lee
4e8492e878 Oops! Warning removed! 2022-07-24 15:15:06 +09:00
Sukchan Lee
a5010a61ef Support Discovery Optional Parameter (#1671)
To support target-nf-instance-id in the discovery,
Discovery optional parameter is implemeted
2022-07-24 15:10:09 +09:00
jmasterfunk84
eb03704015 Moving handling of assigning sub level cc into the pdn to s11. 2022-07-24 12:29:01 +09:00
jmasterfunk84
68140efce4 [MME] Handle Charging Characteristics
Found no support for HSS provided charging characteristics.  Following TS32.251 A.4:
- Use PDN level CC, if one wasn't provided then use subscription level CC
- Don't send CC in S11 if it wasn't included
2022-07-24 12:29:01 +09:00
jmasterfunk84
d2ef555ce4 Set default Network-Access-Mode to 0
For HSS's which do not include the NAM, the MME should not treat this as a fatal error.  MME should just assume PACKET_AND_CIRCUIT (0), as was decided in a previous PR.
2022-07-23 00:26:55 +09:00
Bostjan Meglic
7e6568d800 [SMF] Send PDU Session Establish Accept to serving AMF
In case there are multiple AMF registered to NRF, SMF would pick only
the first AMF from the list.
In the case of sending PDU Session Establishment Accept from SMF to
AMF, this would mean a high chance of failure since the AMF might
be different than the original requester, and would not know about a
particular UE.

Modify SMF to use ServingNfId field from original request
SmContextCreateData from AMF to determine to which AMF should it send
PDU Session Establishment Accept message.
2022-07-22 12:24:26 +09:00
Bostjan Meglic
9a958d7af8 [SBI] Add function to request NF Instance from NRF by providing it's Instance Id 2022-07-22 12:24:26 +09:00
Bostjan Meglic
83b28b5649 [tests] Fix running unit tests inside docker environment
The issue was introduced with the commit, which builds Open5GS from
local sources instead of downloading them each time from Github.

Fixes: d2cbcf711 ("[build] Use local sources to build applications (#1583)")
2022-07-21 21:07:35 +09:00
Sukchan Lee
eb50d64271 Add more protection code for (#1652) 2022-07-21 17:13:32 +09:00
Sukchan Lee
9aa5559c5f Refactor for the UERANSIM 500 test (#1652) 2022-07-21 12:41:19 +09:00
Sukchan Lee
f35afa2ff7 Add missing pkbuf_free() (#1652) 2022-07-21 01:00:44 +09:00
Sukchan Lee
776103698d Oops! Redundant code is removed (#1652) 2022-07-21 00:35:08 +09:00
Sukchan Lee
2b41a215d7 Fixed the crash in UERANSIM 500 test (#1652) 2022-07-21 00:02:31 +09:00
Sukchan Lee
da1905b36c fixed the memory leak in test program 2022-07-20 12:08:17 +09:00
Sukchan Lee
fb95f1ff71 Fixed ASSERT when context has already been removed 2022-07-19 19:42:24 +09:00
Sukchan Lee
668cc59f94 [AMF] Fixed 5GMM cause in Reject message (#1660)
When a UE that requests slices tries to connect and there are no slices configured, the reject message is:

5GMM cause = 0x7 (5GS Services not allowed)

however it should be:

5GMM cause = 0x3e (No network slices available)

All 5GMM cause value in reject message is reviewed in this commit
2022-07-19 12:42:02 +09:00
Sukchan Lee
3885cb20d9 [asn1c] rework aper from mouse07410/asn1c#94
Merge @pespin the following work
- mouse07410/asn1c#93
- mouse07410/asn1c#100
2022-07-16 14:30:00 +09:00
Sukchan Lee
5e18b2bd13 [SCP] Support of Indirect Communication 2022-07-16 13:27:18 +09:00
Sukchan Lee
1518a4f334 [CORE] Increased memory pool for poll (#1652) 2022-07-13 16:54:55 +09:00
Sukchan Lee
80ee4c8aa8 [SBI] incrased session pool of server (#1652) 2022-07-12 17:31:36 +09:00
Bostjan Meglic
aa3cded11a [AMF] Handle namf-callback DeregNotify message from UDM
UDM may send a Deregistration Notification to AMF, to deregister
specific UE from the network - Network-Initiated Deregistration.
Deregistration procedure includes sending Deregistration Request to UE,
starting a timer T3522, releasing PDU sessions from SMF, releasing PCF
policies from PCF, and waiting for Deregistration Accept from UE.

Not yet implemented is:
- to prevent deregistration of UE in case it has any emergency sessions,
- page UE when UE is in IDLE mode.
2022-07-11 22:53:21 +09:00
Bostjan Meglic
0633774972 [SBI] Add support for DeregistrationData in SBI messages 2022-07-11 22:53:21 +09:00
Bostjan Meglic
d1a2971990 [NAS] modify library to include both directions of deregistration requests
Definitions in NAS library now include both directions of deregistration
requests/accepts - from UE and from network.
2022-07-11 22:53:21 +09:00
Bostjan Meglic
babc30940a [AMF] Do not send Deregistration Event to UDM when UE deregisters
According to TS 23.502, 4.2.2.2.2, AMF sends Registration event to UDM
in the following cases:
- If the AMF has changed since the last Registration procedure, or
- if the UE provides a SUPI which doesn't refer to a valid context in
the AMF,
- or if the UE registers to the same AMF it has already registered
to a non- 3GPP access (i.e. the UE is registered over a non-3GPP access
and initiates this Registration procedure to add a 3GPP access).

In case that UE re-registers to the network with a GUTI, it bypasses
authentication check to the AUSF. In this case, AMF does not send
Registration event to UDM.
Consequently, when UE deregisters again, AMF would send a Deregistration
Event to a UDM, which does not have a context for it.

3GPP standard does not say when AMF sends Deregistration Event to UDM,
only that it is optional.

These (De-)Registration events are for (de-)registering AMF to the UDM
for serving the UE. And not for (de-)registering UE itself for purpose
of tracking when UE is registered on the network.

This partially reverts commit 7be7029ac4
2022-07-11 22:44:07 +09:00
Sukchan Lee
fce0eb4800 [SBI] fixed wrong request-nf-type (#1650) 2022-07-08 21:36:52 +09:00
Oliver Smith
fe11ee161c d/open5gs-upf.postinst: don't restart service in chroot
Don't attempt to restart systemd-networkd if systemd is not running
(e.g. installing open5gs inside a chroot).

Fix for:
  System has not been booted with systemd as init system (PID 1). Can't operate.
  Failed to connect to bus: Host is down
  dpkg: error processing package open5gs-upf:amd64 (--configure):
   installed open5gs-upf:amd64 package post-installation script subprocess returned error exit status 1
2022-07-05 10:22:36 +09:00
Sukchan Lee
eabe8dfec5 [PFCP] Added UE IP address in the EPC (#1642) 2022-07-04 17:37:00 +09:00
Networkmama
29525b21a4 [SMF] copy UE ip address to uplink PDR rules.
This helps UPF to add ACL based on src ip

Signed-off-by: Networkmama <networkmama12@gmail.com>
2022-07-04 17:34:40 +09:00
Sukchan Lee
af4021bff4 [PFCP] Fixed a endianness Apply Action (#1640) 2022-07-04 17:30:19 +09:00
Sukchan Lee
318fc25535 [CORE] Added memory check (#1638) 2022-07-01 21:49:31 +09:00
Bostjan Meglic
6adf541346 [CORE] Fix detection of a failed memory allocation 2022-07-01 21:38:47 +09:00
Bostjan Meglic
ab11220dcc [ALL] Fix differences in function parameter names between definition and declaration 2022-07-01 21:38:47 +09:00
Bostjan Meglic
114f783d06 [MISC] Add support for static code analysis
Static code analysis can be executed with following commands:
  meson build
  ninja -C build analyze-cppcheck
  ninja -C build analyze-clang-tidy

These commands are available only if additional tools are installed:
  - cppcheck
  - clang-tidy
  - clang-tools is optional if you want to paralelize the clang-tidy

In case of cppcheck analysis, a file called build/cppchecklog.log is
created with the analysis results.

In case of clang-tidy analysis, some checks are disabled. See file
.clang-tidy, and reenable them if you see fit.
Also it does not scan all the files in the project, since some of them
are imported from other sources. It does not scan any sources under:
  - subprojects/
  - lib/asn1c/
  - lib/ipfw/
2022-07-01 21:38:47 +09:00
Sukchan Lee
50be661cf9 Fixed a crash when slice/session overflow (#1637) 2022-06-30 13:33:16 +09:00
Sukchan Lee
ad159d1755 [GTP] Refine error code path without assertion
Refer to #1635, #1620, #1606, #1594
2022-06-30 10:53:19 +09:00
Sukchan Lee
b1d982a1ee [PFCP] Refine error code path without assertion
Refer to #1635, #1620
2022-06-30 10:35:03 +09:00
Sukchan Lee
0be5e765c8 Revert "[SGWC] pfcp: Retrieve sess when SEID=0 (#1620)"
This reverts commit 9700563023.
2022-06-30 09:11:38 +09:00
Sukchan Lee
6332f10593 Revert "[GTP] context when TEID=0 (#1620, #1606, #1594)"
This reverts commit 0d61f7a7f9.
2022-06-30 09:11:31 +09:00
Sukchan Lee
051c19b7c8 Changes MAX TLV MORE to 16
OGS_MAX_NUM_OF_PDR is 16, but OGS_TLV_MAX_MORE is 8.
To match the size of two macros, increased OGS_TLV_MAX_MORE to 16.
2022-06-29 14:35:01 +09:00
Pau Espin Pedrol
b5956e5596 [UPF] N4: Remove unnecessary assert (#1634) 2022-06-29 11:10:43 +09:00
Sukchan Lee
52d5c61794 [GTP] avoid abort for ogs_gtp_node_new() (#1633) 2022-06-29 11:07:44 +09:00
Pau Espin Pedrol
c5a545039f [GTP] Avoid abort if ogs_gtp_node_new() returns NULL (#1633)
* [GTP] Avoid abort if ogs_gtp_node_new() returns NULL

* [SGWC] Avoid abort if ogs_gtp_node_add_by_addr() returns NULL
2022-06-29 10:28:18 +09:00
Sukchan Lee
2dd577f88c [SCTP] Add protection code jumbo frame (#1632) 2022-06-28 16:58:15 +09:00
Sukchan Lee
0d61f7a7f9 [GTP] context when TEID=0 (#1620, #1606, #1594) 2022-06-28 15:32:14 +09:00
Sukchan Lee
9700563023 [SGWC] pfcp: Retrieve sess when SEID=0 (#1620) 2022-06-28 13:20:46 +09:00
Pau Espin Pedrol
5eaf66262a [SMF] pfcp: Retrieve sess when response with SEID=0 is received (#1620)
3GPP TS 29.244 7.2.2.4.2 documents that the peer will set SEID=0 in the
response when we request something for a session not existing at the peer.
If that's the case, we still want to locate the local session which
originated the request, so let's store the local SEID in the xact when
submitting the message, so that we can retrieve the related SEID and
find the session if we receive SEID=0.
2022-06-28 11:19:57 +09:00
Pau Espin Pedrol
a3593c6890 [SMF] Gn: QoS Profile and PCO IE improvements (#1631) 2022-06-27 21:51:14 +09:00
Sukchan Lee
8fe2e506c0 [PFCP] Added Network Instance to CP-UP FAR (#1630) 2022-06-25 07:56:28 +09:00
Sukchan Lee
df68b231b8 [PFCP] Added DNN/APN in FAR (#1629, #1630) 2022-06-24 20:30:40 +09:00
Sukchan Lee
f4eddf91b5 Set v4/v6 flags in local F-TEID (#1625) 2022-06-24 15:16:54 +09:00
Networkmama
99fd6c449a [SMF] Set v4/6 flag in F-TEID IE request type (#1625)
Signed-off-by: Networkmama <networkmama12@gmail.com>
2022-06-24 15:11:16 +09:00
Pau Espin Pedrol
7762da6992 [SMF] pfcp-sm: Fix ogs_fsm_dispatch() on NULL sess (#1628)
It was spotted that if DeleteSessionReq sent by SMF is answered by UPF
with cause="Session context not found", then it contains SEID=0 (this is
correct as per specs). Hence, since SEID=0 session is not looked up, so
sess=NULL.

A follow up commit improves the situation by looking up the SEID in the
originating request message in that case.
2022-06-23 23:38:52 +09:00
Pau Espin Pedrol
bfe214aafa [UPF] Avoid crash if no default subnet configured (#1624)
In that case, ogs_pfcp_ue_ip_alloc() will fail with  the error message
"CHECK CONFIGURATION: Cannot find subnet [...]" and the assert will make
upf crash.
That's not desirable, let's keep it running and simply reject the
request. The error log is big enoguh to find out.
2022-06-23 22:04:01 +09:00
Pau Espin Pedrol
96d689a402 [SGWC,SMF] Add specific config opt max.gtp_peer to set gtp_node mempool size (#1623)
This is needed specially for SMFs handling a pool of SGWs.
2022-06-23 22:03:48 +09:00
Pau Espin Pedrol
3501cb0a5b [SMF] track and fix scenario where gtp node mempool becomes full (#1622)
* [SMF] Avoid abort() if gtp_node mempool becomes full

Related: https://github.com/open5gs/open5gs/issues/1621

* [SMF] metrics: Add new ctr tracking gtp_node allocation failures

This metrics is useful to track whether at some point the mempool went
full, so that config needs to be updated to increase the mempool size.
2022-06-23 22:03:34 +09:00
Sukchan Lee
b58ebda556 Change Default MCC/MNC 901/70 -> 999/70 (#1331) 2022-06-23 21:37:47 +09:00
Pau Espin Pedrol
20d3dc0167 [CORE] fsm: Add asserts to validate ogs_fsm_t is not null (#1619) 2022-06-23 20:48:06 +09:00
Bostjan Meglic
c9598fb9c6 [SBI] Fix memory leak for nghttp2 session (#1618)
Delete nghttp2 session to prevent memory leaks.
The issue was detected using valgrind.
2022-06-23 20:43:36 +09:00
Pau Espin Pedrol
13421119c3 [SMF] Gy: Send Multiple-Services-Indicator AVP only during Initial CCR (#1616)
Gy (3GPP TS 32.299 ) refers to AVP in DCCA (RFC4006).

RFC4006 5.1.2:
"[...] by including the Multiple-Services-Indicator AVP in the first
interrogation."

Nokia's infocenter documentation also states it's sent during Initial CCR
only: "(CCR-I only)".
2022-06-21 23:56:56 +09:00
Sukchan Lee
50cfb5f3ac Initialize pgw_s5u_teid (#1559) 2022-06-20 22:36:51 +09:00
Bostjan Meglic
d2cbcf7118 [build] Use local sources to build applications (#1583)
"build" Docker image previously downloaded latest version of Open5GS
from github, and built the project from that.
Use local source files for building instead.
2022-06-19 18:18:09 +09:00
Sukchan Lee
0f93ec23ab [MME/AMF] Fixed network name encoding (#1614) 2022-06-19 18:16:11 +09:00
Sukchan Lee
c528e0d5bc [SBI] Change NfInstance.Id to Optional 2022-06-18 23:56:12 +09:00
JagannathS
0313910ac6 Added show commands in the dbctl (#1613) 2022-06-17 06:27:24 +09:00
Bostjan Meglic
361c3b7387 [SBI] Fix invalid read beyond allocated memory (#1610)
Valgrind memcheck tool reports an error, of invalid read beyond the
allocated memory.

Function "write_cb()" already allocates (realloc) +1 byte and
null-terminates the data. But the length "conn->size" does not contain
this extra null-terminated byte.
When a copy of the received data is made in "check_multi_info()", it
does not include the null character, resulting in potentially a
non-null terminated string.
Later on when parsing the data, "strlen()" will read beyond the
allocated memory to search for the null character, resulting in an
invalid read.

==1994== Invalid read of size 1
==1994==    at 0x484ED24: strlen (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so)
==1994==    by 0x4D3F401: cJSON_ParseWithOpts (cJSON.c:1109)
==1994==    by 0x4D3F65C: cJSON_Parse (cJSON.c:1197)
==1994==    by 0x4C927DE: parse_json (message.c:913)
==1994==    by 0x4C972D8: parse_content (message.c:1790)
==1994==    by 0x4C90096: ogs_sbi_parse_response (message.c:589)
==1994==    by 0x136431: amf_state_operational (amf-sm.c:248)
...
==1994==  Address 0x668371d is 0 bytes after a block of size 253 alloc'd
==1994==    at 0x4848899: malloc (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so)
==1994==    by 0x5107D7F: ??? (in /usr/lib/x86_64-linux-gnu/libtalloc.so.2.3.3)
==1994==    by 0x510814B: _talloc_memdup (in /usr/lib/x86_64-linux-gnu/libtalloc.so.2.3.3)
==1994==    by 0x4871568: ogs_talloc_memdup (ogs-strings.c:184)
==1994==    by 0x4CA7755: check_multi_info (client.c:475)
...
2022-06-15 22:32:23 +09:00
jmasterfunk84
59a457fa40 Update mme-sm.c (#1609) 2022-06-15 06:13:49 +09:00
Pau Espin Pedrol
038d383584 [CORE] Compare port in ogs_sockaddr_is_equal() (#1608) 2022-06-15 06:13:15 +09:00
Bostjan Meglic
7be7029ac4 Send deregistration event from AMF to UDM (#1599)
* [SBI] Fix converting PatchItem to JSON

* [UDR] Add support for endpoint for patching subscription data

Add support for PATCH HTTP method for the following endpoint:
/subscription-data/{ueId}/context-data/amf-3gpp-access

Currently does not change any data in the database.

* [UDM] Add support for endpoint for patching subscription data

Add support for the following endpoint, HTTP PATCH method:
/nudm-uecm/v1/{ueId}/registrations/amf-3gpp-access

The endpoint is used when UE deregisters from the core, and AMF
sends a subscription modification request with "purgeFlag" set.

* [UDM] Add check for same GUAMI when patching subscription data

* [AMF] Send deregistration event to UDM

When UE sends deregistration request, AMF needs to send a
Nudm_UECM_Deregistration request to UDM.
The order of requests is now the following:
- send PDU session release to SMF
- send deregistration event to UDM
- send AM policy control release to PCF
2022-06-14 23:44:02 +09:00
Pau Espin Pedrol
720b4d3c4c [SMF] Gn: Drop already implemented TODO (#1604) 2022-06-13 23:58:39 +09:00
Pau Espin Pedrol
4d9112870c configs: use proper default IP address for metrics server (#1603)
* configs: use proper default IP address for metrics server

Let's use the IP address assigned to each process by default when
configuring the HTTP Prometheus server. Otherwise having several
processes listening on 0.0.0.0 cause collisions.

* configs: mme.yaml: Fix trailing whitespace
2022-06-13 23:13:58 +09:00
Safa Orhan
58a9d31fd8 Apply action ie (#1601) 2022-06-13 19:51:40 +09:00
Safa Orhan
0a3746c24d PR open5gs#1581 (#1600) 2022-06-13 19:44:36 +09:00
Sukchan Lee
1daac541cf Oops! removed one time in the document 2022-06-12 17:18:03 +09:00
Sukchan Lee
9087a480a8 Update document for v2.4.8 2022-06-12 17:06:36 +09:00
Sukchan Lee
9d43646816 Release v2.4.8 2022-06-12 16:29:24 +09:00
Sukchan Lee
240c10888d [GTP] Fixed bugs if gNB changed (#1515, #1586) 2022-06-12 15:54:27 +09:00
Sukchan Lee
9c3b7dfe4b Added RRCEstablishmentCause to Test-Msg Param 2022-06-12 14:32:53 +09:00
Sukchan Lee
2aa40ca8c8 [PFCP] Added Data Status IE (#1582) 2022-06-12 09:02:59 +09:00
Sukchan Lee
12353178fb Upgrade PFCP to v16.9.1 (#1581) 2022-06-11 23:51:00 +09:00
Sukchan Lee
b98c2c13f6 [SUCI] Handling exceptions for invalid RI (#1570)
If Routing Indicator is wrong, we forcely set to '0'.
2022-06-10 23:19:00 +09:00
Sukchan Lee
9d94b33c7b meson: Rollback libmicrohttpd >= 0.9.40
Ubuntu 18.04 (bionic) should continue to be supported until April 2023.
So I modified mhd_server to support older versions of libmicrohttpd.
2022-06-10 21:35:37 +09:00
Sukchan Lee
6c5a8a135a Reorder smf_gtp_node objects free (#1593)
smf_gtp_node_pool were properly freed.

However, the seqence was wrong, so we got a warning message.

To solve this problem, I've moved smf_gtp_node_alloc/free
from gtp_path.[ch] to context.[ch]
2022-06-10 21:08:15 +09:00
Pau Espin Pedrol
b116630fe8 meson: Depend explicitly on libmicrohttpd >=0.9.61 (#1595)
Recent commit re-enabling SBI HTTP/1.1 support
(10bdf39505cf525b95886c140b3c2e82e7427d29) started using libmicrohttpd's
API MHD_create_response_from_buffer_with_free_callback(), which is only
available starting from v0.9.61.
As a result, compilation in xUbuntu 18.04 started failing with errors
about the function not being found, since it ships with libmicrohttpd
v0.9.59.
Depending on 0.9.61 is fine since it's quite old (november 2018) and all
major current distros should for sure have an >= one. Let's simply bump
the version check so that it fails in an informative manner.
2022-06-10 20:53:55 +09:00
Pau Espin Pedrol
28089e2b59 [SMF] Fix smf_gtp_node objects not freed during shutdown (#1593) 2022-06-10 00:06:13 +09:00
Sukchan Lee
b1e7477904 [CORE] Improve logging error in PFCP (#1591) 2022-06-09 23:36:33 +09:00
Pau Espin Pedrol
5238771295 [CORE] Improve logging error in ogs_gtp_sendto() (#1591) 2022-06-09 23:32:11 +09:00
Carlos Giraldo
cfe21c61da Structure AMF and MME metrics code similar to SMF (#1590)
* AMF metrics initial support

* MME metrics initial support

* set amf/mme metrics.[c|h] similar to smf
2022-06-09 21:39:03 +09:00
Sukchan Lee
0b97954208 Re-added to handle an exceptional case (#1589) 2022-06-09 21:35:59 +09:00
Bostjan Meglic
5084f6a71d [AMF] Add support for SUCI protection schemes A and B (#1589)
For null protection scheme the SUCI needs to be BCD encoded. Whereas for
protection scheme profiles A and B the SUCI needs to be converted from
hexadecimal to ASCII.

This still needs the support for protection schemes A and B in UDM to
work.
2022-06-09 21:27:58 +09:00
Carlos Giraldo
109949d335 MME initial metrics support (#1587) 2022-06-09 06:23:51 +09:00
Pau Espin Pedrol
9e25482d99 [SMF] Gn: Fixes handling/transmitting APN-AMBR IE (#1588) 2022-06-09 06:22:56 +09:00
Carlos Giraldo
816575dc8d AMF metrics initial support (#1585) 2022-06-08 17:54:46 +09:00
Pau Espin Pedrol
28e40a0f1b Initial metrics support based on Prometheus (#1571)
* Initial metrics support based on Prometheus

This commit introduces initial support for metrics in open5gs.

The metrics code is added as libogsmetrics (lib/metrics/), with a well
defined opaque API to manage different types of metrics, allowing for
different implementations for different technologies to scrap the
metrics (placed as lib/metrics/<impl>/. The implementation is right now
selected at build time, in order to be able to opt-out the related dependencies
for users not interested in the features. 2 implementations are already
provided in this commit to start with:
* void: Default implementation. Empty stubs, acts as a NOOP.
* prometheus: open5gs processes become Prometheus servers, offering
  states through an http server to the Prometheus scrappers. Relies on
  libprom (prometheus-client-ci [1] project) to track the metrics and format
  them during export, and libmicrohttpd to make the export possible through
  HTTP.

[1] https://github.com/digitalocean/prometheus-client-c

The prometheus-client-c is not well maintained nowadays in upstream, and
furthermore it uses a quite peculiar mixture of build systems (autolib
on the main dir, cmake for libprom in a subdir). This makes it difficult
to have it widely available in distros, and difficult to find it if it
is installed in the system. Hence, the best is to include it as a
meson subproject like we already do for freeDiameter. An open5gs fork is
requried in order to have an extra patch adding a top-level
CMakeList.txt in order to be able to includ eit from open5gs's meson
build. Furthermore, this allows adding bugfixes to the subproject if any
are found in the future.

* [SMF] Initial metrics support

* [SMF] Add metrics at gtp_node level

* docs: Add tutorial documenting metrics with Prometheus
2022-06-08 05:51:02 +09:00
Pau Espin Pedrol
a9badd5520 GTP, SMF: More dec/enc improvements in QoS Profile IE MBR and GBRE fields (#1584) 2022-06-07 22:13:53 +09:00
Sukchan Lee
18cca7f5e4 Re-enabling HTTP/1.1 (#1570) 2022-06-06 22:20:52 +09:00
Sukchan Lee
828fa23d16 Increase Apply Action size to 2 bytes (#1581) 2022-06-06 21:12:18 +09:00
mitmitmitm
a6abe1fffb [NRF] Don't abort if there are too many registered NF instances (#1579)
Reply with an error instead.
2022-06-06 20:54:59 +09:00
Pau Espin Pedrol
7dd5d27a71 [GTPv1] Several QoS Profile IE enc/dec fixes and improvements (#1575) 2022-06-03 06:56:28 +09:00
Pau Espin Pedrol
e32139009b [SMF] Gn: Avoid building QoS Profile IE twice in UpdatePdpContextResp (#1574) 2022-06-03 01:02:14 +09:00
Pau Espin Pedrol
502a886e43 [CORE] ogs-sockaddr: Fix trailing whitespace (#1573) 2022-06-02 20:20:16 +09:00
Pau Espin Pedrol
d99382d5bc [CORE] Improve log error messages in ogs_ipsubnet() (#1572) 2022-06-02 20:19:55 +09:00
Sukchan Lee
8b3fa5ff9f Follow-up the contribution #1566, #1567 2022-05-31 21:44:53 +09:00
Pau Espin Pedrol
e1e8018919 [SMF] Avoid crash if Create{Session,PdpContext}Resp fails to be sent (#1566)
* [SMF] Gn: Drop unreachable return line

* [SMF] Avoid crash if Create{Session,PdpContext}Resp fails to be sent

Crash spotted in a running open5gs-smfd process, triggered by:
ERROR: ogs_gtp_sendto() failed (1:Operation not permitted) (../lib/gtp/path.c:119)
ERROR: ogs_gtp_xact_commit: Expectation `rv == OGS_OK' failed. (../lib/gtp/xact.c:730)
ERROR: smf_gtp2_send_create_session_response: Expectation `rv == OGS_OK' failed. (../src/smf/gtp-path.c:451)
FATAL: smf_gsm_state_wait_pfcp_establishment: Assertion `OGS_OK == smf_gtp2_send_create_session_response( sess, gtp_xact)' failed. (../src/smf/gsm-sm.c:676)

* [SMF] Avoid crash if Delete{Sesson,PdpContext}Resp fails to be sent

Let's simply continuing with release of the session, there's not much we
can do about it. Peer will eventually realize the conn is no longer
there.
2022-05-31 21:27:42 +09:00
Pau Espin Pedrol
c2bda0b576 [GTP] Several fixes and improvements around ogs_gtp_xact_find_by_xid (#1567)
* [GTP] Add missing msg types to ogs_gtp_xact_get_stage()

* [GTP] Avoid returning wrong xact by xif if none found

* [GTP] Avoid crash if ogs_gtp_xact_get_stage() fails

* [GTP] Rename s/ogs_gtp_xact_get_stage/ogs_gtp2_xact_get_stage/
2022-05-31 21:24:00 +09:00
Sukchan Lee
b6f2146594 [SGWC] Update remote PGW GTPv2-C address (#1560)
In Create Sesion Response, we updated remote PGW GTPv2-C address.
2022-05-28 17:06:36 +09:00
Miguel
78b1dc77ff Update open5gs-dbctl (#1562)
I added four additional commands which are useful in case not using the GUI (add UE using a specific APN, add UE using a specific slice and APN, modify a slice adding an APN, modify an UE adding a new slice + APN)
2022-05-28 11:10:03 +09:00
endika
de0ba3f9dc fix tipo in amf logs (#1558) 2022-05-26 20:12:30 +09:00
Pau Espin Pedrol
c18e9f32cb [PGW] Gy+PFCP improvements (#1555)
* [SMF] Gy,PFCP: Improve {Time,Volume} {Threshold,Quota} handling

* [UPF] Implement URR Usage Report for ValidityTime/TimeQuota/TimeThreshold

* [UPF] Implement Usage report trigger for Volume Quota/Threshold

* [SMF] Set Gy Reporting-Reason based on PFCP Report Trigger
2022-05-24 22:54:30 +09:00
Bostjan Meglic
2c2ce143a3 Fix minor typos (#1554)
* Fix minor typo in log output

* Remove unused struct members
2022-05-24 21:01:54 +09:00
Sukchan Lee
933f0b04c7 [TEST] Added IPv6 in GTPU (#1515) 2022-05-23 23:51:02 +09:00
Sukchan Lee
7d496e182b Update document for v2.4.7 2022-05-21 19:48:56 +09:00
2650 changed files with 416139 additions and 64308 deletions

69
.clang-tidy Normal file
View File

@@ -0,0 +1,69 @@
---
Checks: '*,
-altera-id-dependent-backward-branch,
-altera-struct-pack-align,
-altera-unroll-loops,
-android-cloexec-*,
-bugprone-branch-clone,
-bugprone-easily-swappable-parameters,
-bugprone-macro-parentheses,
-bugprone-reserved-identifier,
-bugprone-sizeof-expression,
-cert-dcl37-c,
-cert-dcl51-cpp,
-cert-err33-c,
-cert-err34-c,
-clang-analyzer-optin.performance.Padding,
-clang-analyzer-security.insecureAPI.bcmp,
-clang-analyzer-security.insecureAPI.bcopy,
-clang-analyzer-security.insecureAPI.bzero,
-clang-diagnostic-error,
-clang-diagnostic-typedef-redefinition,
-clang-diagnostic-unknown-warning-option,
-concurrency-mt-unsafe,
-cppcoreguidelines-avoid-magic-numbers,
-cppcoreguidelines-avoid-non-const-global-variables,
-cppcoreguidelines-init-variables,
-google-readability-braces-around-statements,
-google-readability-casting,
-google-readability-function-size,
-google-readability-todo,
-hicpp-braces-around-statements,
-hicpp-function-size,
-hicpp-multiway-paths-covered,
-llvm-else-after-return,
-llvm-header-guard,
-llvm-include-order,
-llvmlibc-restrict-system-libc-headers,
-misc-no-recursion,
-misc-unused-parameters,
-performance-no-int-to-ptr,
-readability-avoid-const-params-in-decls,
-readability-braces-around-statements,
-readability-duplicate-include,
-readability-else-after-return,
-readability-function-cognitive-complexity,
-readability-function-size,
-readability-identifier-length,
-readability-isolate-declaration,
-readability-magic-numbers,
-readability-non-const-parameter,
-readability-redundant-control-flow,
-readability-redundant-declaration,
-readability-suspicious-call-argument,
-bugprone-implicit-widening-of-multiplication-result,
-bugprone-narrowing-conversions,
-cert-exp42-c,
-cert-flp37-c,
-clang-analyzer-core.NullDereference,
-clang-analyzer-deadcode.DeadStores,
-clang-analyzer-security.insecureAPI.strcpy,
-cppcoreguidelines-interfaces-global-init,
-cppcoreguidelines-narrowing-conversions,
-hicpp-signed-bitwise,
'
WarningsAsErrors: false
HeaderFilterRegex: '(.*\.h)'

10
.dockerignore Normal file
View File

@@ -0,0 +1,10 @@
**/*.md
**/docker-compose*.yml
**/docker-compose*.yaml
**/Dockerfile*
.git
.dockerignore
.cache
.gitignore
.github
build

View File

@@ -6,11 +6,11 @@ jobs:
name: Build and Test on MacOS Latest
runs-on: macos-latest
steps:
- name: Install MongoDB with Package Manager
run: |
brew tap mongodb/brew
brew install mongodb-community
brew services start mongodb-community
# - name: Install MongoDB with Package Manager
# run: |
# brew tap mongodb/brew
# brew install mongodb-community
# brew services start mongodb-community
- name: Create the TUN device with the interface name `ogstun`.
run: |
sudo ifconfig lo0 alias 127.0.0.2 netmask 255.255.255.255
@@ -33,12 +33,13 @@ jobs:
sudo ifconfig lo0 alias 127.0.0.18 netmask 255.255.255.255
sudo ifconfig lo0 alias 127.0.0.19 netmask 255.255.255.255
sudo ifconfig lo0 alias 127.0.0.20 netmask 255.255.255.255
sudo ifconfig lo0 alias 127.0.1.10 netmask 255.255.255.255
- name: Install the dependencies for building the source code.
run: brew install mongo-c-driver libidn libmicrohttpd nghttp2 bison libusrsctp libtins talloc meson
- name: Check out repository code
uses: actions/checkout@main
- name: Setup Meson Build
run: PATH="/usr/local/opt/bison/bin:$PATH" meson setup build
run: PATH="/usr/local/opt/bison/bin:$PATH" PKG_CONFIG_PATH="/usr/local/opt/openssl/lib/pkgconfig:$PKG_CONFIG_PATH" meson setup build
env:
CC: gcc
- name : Build Open5GS

1
.gitignore vendored
View File

@@ -1,6 +1,7 @@
# This directory is fetched during first build and is present in this directory
subprojects/freeDiameter
subprojects/libtins
subprojects/prometheus-client-c
subprojects/usrsctp
webui/.next

View File

@@ -1,88 +1,18 @@
<h1 align="center">Open5GS</h1>
<p align="center"><a href="https://open5gs.org" target="_blank" rel="noopener noreferrer"><img width="100" src="https://open5gs.org/assets/img/open5gs-logo-only.png" alt="Open5GS logo"></a></p>
## Getting Started
Please follow the [documentation](https://open5gs.org/open5gs/docs/) at [open5gs.org](https://open5gs.org/)!
## Sponsors
If you find Open5GS useful for work, please consider supporting this Open Source project by [Becoming a sponsor](https://github.com/sponsors/acetcom). To manage the funding transactions transparently, you can donate through [OpenCollective](https://opencollective.com/open5gs).
<h3 align="center">Platinum Sponsors</h3>
<table align="center">
<tbody>
<tr>
<td align="center" valign="middle">
<a href="https://teletresearch.com/" target="_blank">
<img width="400px" src="https://open5gs.org/assets/img/Telet-logo-v2.png">
<p align="center">
<a target="_blank" href="https://open5gs.org/#sponsors">
<img alt="sponsors" src="https://open5gs.org/assets/img/sponsors.svg">
</a>
</td>
</tr>
</tbody>
</table>
<h3 align="center">Gold Sponsors</h3>
<table align="center">
<tbody>
<tr>
<td align="center" valign="middle">
<a href="http://wavemobile.com/" target="_blank">
<img width="222px" src="https://open5gs.org/assets/img/Wavemobile-Logo-Mark-RGB.png">
</a>
</td>
</tr>
</tbody>
</table>
<h3 align="center">Silver Sponsors</h3>
<table align="center">
<tbody>
<tr>
<td align="center" valign="middle" width="222px">
<a href="https://nextepc.com/" target="_blank">
<img src="https://open5gs.org/assets/img/nextepc_logo.jpg">
</a>
</td>
<td align="center" valign="middle" width="222px">
<a href="https://www.wearetriple.com/" target="_blank">
<img src="https://open5gs.org/assets/img/triple_logo.png">
</a>
</td>
<td align="center" valign="middle" width="222px">
<a href="https://sdr.eee.strath.ac.uk/" target="_blank">
<img src="https://open5gs.org/assets/img/strath.png">
</a>
</td>
</tr>
<tr>
<td align="center" valign="middle" width="222px">
<a href="https://skylarkwireless.com/" target="_blank">
<img src="https://open5gs.org/assets/img/SkylarkWireless-420x78-Web2-R.png">
</a>
</td>
<td align="center" valign="middle" width="222px">
<a href="https://sysmocom.de/" target="_blank">
<img src="https://open5gs.org/assets/img/sysmocom-logo-only.png">
</a>
</td>
<td align="center" valign="middle" width="222px">
<a href="https://www.p1sec.com/" target="_blank">
<img src="https://open5gs.org/assets/img/2021-logo-P1.svg">
</a>
</td>
</tr>
<tr>
<td align="center" valign="middle" width="222px">
<a href="https://www.ng-voice.com/" target="_blank">
<img src="https://open5gs.org/assets/img/ng-voice-logo_color.png">
</a>
</td>
<td align="center" valign="middle" width="222px">
<a href="http://www.bristol.ac.uk/engineering/research/smart/" target="_blank">
<img src="https://open5gs.org/assets/img/smart-internet-lab.png">
</a>
</td>
</tr>
</tbody>
</table>
## Documentation
If you don't understand something about Open5GS, the [https://open5gs.org/open5gs/docs/](https://open5gs.org/open5gs/docs/) is a great place to look for answers.
</p>
## Community
@@ -97,4 +27,4 @@ If you're contributing through a pull request to Open5GS project on GitHub, plea
## License
- Open5GS Open Source files are made available under the terms of the GNU Affero General Public License ([GNU AGPL v3.0](https://www.gnu.org/licenses/agpl-3.0.html)).
- [Commercial licenses](https://open5gs.org/open5gs/support/) are also available from [NextEPC, Inc.](https://nextepc.com)
- [Commercial licenses](https://open5gs.org/open5gs/support/) are also available from [NeoPlane](https://neoplane.io/)

View File

@@ -4,6 +4,7 @@ logger:
parameter:
# no_nrf: true
# no_scp: true
# no_amf: true
# no_smf: true
# no_upf: true
@@ -18,6 +19,7 @@ parameter:
# no_sgwu: true
# no_pcrf: true
# no_hss: true
# use_mongodb_change_stream: true
mme:
freeDiameter:
@@ -194,6 +196,11 @@ nrf:
- ::1
port: 7777
scp:
sbi:
- addr: 127.0.1.10
port: 7777
ausf:
sbi:
- addr: 127.0.0.11
@@ -214,7 +221,7 @@ nssf:
- addr: 127.0.0.14
port: 7777
nsi:
- addr: ::1
- addr: 127.0.0.10
port: 7777
s_nssai:
sst: 1

View File

@@ -4,6 +4,7 @@ logger:
parameter:
# no_nrf: true
# no_scp: true
# no_amf: true
# no_smf: true
# no_upf: true
@@ -18,6 +19,7 @@ parameter:
# no_sgwu: true
# no_pcrf: true
# no_hss: true
# use_mongodb_change_stream: true
mme:
freeDiameter:
@@ -47,12 +49,12 @@ mme:
map:
tai:
plmn_id:
mcc: 901
mcc: 999
mnc: 70
tac: 7
lai:
plmn_id:
mcc: 901
mcc: 999
mnc: 70
lac: 2342
map:
@@ -68,7 +70,7 @@ mme:
lac: 51544
gummei:
- plmn_id:
mcc: 901
mcc: 999
mnc: 70
mme_gid: 2
mme_code: 1
@@ -79,7 +81,7 @@ mme:
mme_code: 1
tai:
plmn_id:
mcc: 901
mcc: 999
mnc: 70
tac: 7
tai:
@@ -146,19 +148,19 @@ amf:
- addr: 127.0.0.5
guami:
- plmn_id:
mcc: 901
mcc: 999
mnc: 70
amf_id:
region: 2
set: 1
tai:
- plmn_id:
mcc: 901
mcc: 999
mnc: 70
tac: 1
plmn_support:
- plmn_id:
mcc: 901
mcc: 999
mnc: 70
s_nssai:
- sst: 1
@@ -248,7 +250,7 @@ nssf:
- addr: 127.0.0.14
port: 7777
nsi:
- addr: ::1
- addr: 127.0.0.10
port: 7777
s_nssai:
sst: 1

View File

@@ -7,7 +7,7 @@
create 640 open5gs open5gs
postrotate
for i in nrfd pcrfd hssd ausfd udmd udrd upfd sgwcd sgwud smfd mmed amfd; do
for i in nrfd scpd pcrfd hssd ausfd udmd udrd upfd sgwcd sgwud smfd mmed amfd; do
systemctl reload open5gs-$i
done
endscript

View File

@@ -2,6 +2,7 @@
#
# logfilename [owner:group] mode count size when flags [/pid_file] [sig_num]
@localstatedir@/log/open5gs/nrf.log 644 14 * $D0 GZ @localstatedir@/run/open5gs-nrfd/pid`
@localstatedir@/log/open5gs/scp.log 644 14 * $D0 GZ @localstatedir@/run/open5gs-scpd/pid`
@localstatedir@/log/open5gs/pcrf.log 644 14 * $D0 GZ @localstatedir@/run/open5gs-pcrfd/pid`
@localstatedir@/log/open5gs/hss.log 644 14 * $D0 GZ @localstatedir@/run/open5gs-hssd/pid`
@localstatedir@/log/open5gs/ausf.log 644 14 * $D0 GZ @localstatedir@/run/open5gs-ausfd/pid`

View File

@@ -4,6 +4,7 @@ logger:
parameter:
# no_nrf: true
# no_scp: true
# no_amf: true
# no_smf: true
# no_upf: true
@@ -18,6 +19,7 @@ parameter:
# no_sgwu: true
# no_pcrf: true
# no_hss: true
# use_mongodb_change_stream: true
mme:
freeDiameter:
@@ -44,13 +46,13 @@ mme:
- addr: 127.0.0.2
gummei:
plmn_id:
mcc: 901
mcc: 999
mnc: 70
mme_gid: 2
mme_code: 1
tai:
plmn_id:
mcc: 901
mcc: 999
mnc: 70
tac: 1
security:
@@ -114,19 +116,19 @@ amf:
- addr: 127.0.0.5
guami:
- plmn_id:
mcc: 901
mcc: 999
mnc: 70
amf_id:
region: 2
set: 1
tai:
- plmn_id:
mcc: 901
mcc: 999
mnc: 70
tac: 1
plmn_support:
- plmn_id:
mcc: 901
mcc: 999
mnc: 70
s_nssai:
- sst: 1
@@ -218,7 +220,7 @@ nssf:
- addr: 127.0.0.14
port: 7777
nsi:
- addr: ::1
- addr: 127.0.0.10
port: 7777
s_nssai:
sst: 1

View File

@@ -20,6 +20,7 @@
#
logger:
file: @localstatedir@/log/open5gs/amf.log
#
# amf:
#
@@ -35,7 +36,7 @@ logger:
# - ::0
# port: 7777
#
# o SBI Server(https://<all address avaiable>:443)
# o SBI Server(https://<all address available>:443)
# sbi:
# - tls:
# key: amf.key
@@ -85,9 +86,65 @@ logger:
# l_onoff: true
# l_linger: 10
#
# <NF Service>
#
# o NF Service Name(Default : all NF services available)
# service_name:
#
# o NF Service Name(Only some NF services are available)
# service_name:
# - namf-comm
#
# <NF Discovery Query Parameter>
#
# o (Default) If you do not set Query Parameter as shown below,
#
# sbi:
# - addr: 127.0.0.5
# port: 7777
#
# - 'service-names' is included.
#
# sbi:
# - addr: 127.0.0.5
# port: 7777
# discovery:
# option:
# no_service_names: false
#
# o To remove 'service-names' from URI query parameters in NS Discovery
# no_service_names: true
#
# * For Indirect Communication with Delegated Discovery,
# 'service-names' is always included in the URI query parameter.
# * That is, 'no_service_names' has no effect.
#
# <For Indirect Communication with Delegated Discovery>
#
# o (Default) If you do not set Delegated Discovery as shown below,
#
# sbi:
# - addr: 127.0.0.5
# port: 7777
#
# - Use SCP if SCP avaiable. Otherwise NRF is used.
# => App fails if both NRF and SCP are unavailable.
#
# sbi:
# - addr: 127.0.0.5
# port: 7777
# discovery:
# delegated: auto
#
# o To use SCP always => App fails if no SCP available.
# delegated: yes
#
# o Don't use SCP server => App fails if no NRF available.
# delegated: no
#
# <NGAP Server>>
#
# o NGAP Server(all address avaiable)
# o NGAP Server(all address available)
# ngap:
#
# o NGAP Server(0.0.0.0:38412)
@@ -104,7 +161,7 @@ logger:
# - addr: 127.0.0.5
# port: 38413
#
# o NGAP Server(address avaiable in `eth0` interface)
# o NGAP Server(address available in `eth0` interface)
# ngap:
# dev: eth0
#
@@ -145,12 +202,19 @@ logger:
# sinit_max_attempts : 4
# sinit_max_init_timeo : 8000
#
# <Metrics Server>
#
# o Metrics Server(http://<any address>:9090)
# metrics:
# addr: 0.0.0.0
# port: 9090
#
# <GUAMI>
#
# o Multiple GUAMI
# guami:
# - plmn_id:
# mcc: 901
# mcc: 999
# mnc: 70
# amf_id:
# region: 2
@@ -199,13 +263,13 @@ logger:
# o Multiple PLMN Support
# plmn_support:
# - plmn_id:
# mcc: 901
# mcc: 999
# mnc: 70
# s_nssai:
# - sst: 1
# sd: 010000
# - plmn_id:
# mcc: 901
# mcc: 999
# mnc: 70
# s_nssai:
# - sst: 1
@@ -218,7 +282,7 @@ logger:
#
# <AMF Name>
#
# amf_name: amf1.open5gs.amf.5gc.mnc70.mcc901.3gppnetwork.org
# amf_name: amf1.open5gs.amf.5gc.mnc70.mcc999.3gppnetwork.org
#
# <Relative Capacity> - Default(255)
#
@@ -230,21 +294,24 @@ amf:
port: 7777
ngap:
- addr: 127.0.0.5
metrics:
addr: 127.0.0.5
port: 9090
guami:
- plmn_id:
mcc: 901
mcc: 999
mnc: 70
amf_id:
region: 2
set: 1
tai:
- plmn_id:
mcc: 901
mcc: 999
mnc: 70
tac: 1
plmn_support:
- plmn_id:
mcc: 901
mcc: 999
mnc: 70
s_nssai:
- sst: 1
@@ -255,6 +322,50 @@ amf:
full: Open5GS
amf_name: open5gs-amf0
#
# scp:
#
# <SBI Client>>
#
# o SBI Client(http://127.0.1.10:7777)
# sbi:
# addr: 127.0.1.10
# port: 7777
#
# o SBI Client(https://127.0.1.10:443, http://scp.open5gs.org:80)
# sbi:
# - addr: 127.0.1.10
# tls:
# key: scp.key
# pem: scp.pem
# - name: scp.open5gs.org
#
# o SBI Client(http://[fd69:f21d:873c:fb::1]:80)
# If prefer_ipv4 is true, http://127.0.1.10:80 is selected.
#
# sbi:
# addr:
# - 127.0.1.10
# - fd69:f21d:873c:fb::1
#
# o SBI Option (Default)
# - tcp_nodelay : true
# - so_linger.l_onoff : false
#
# sbi:
# addr: 127.0.1.10
# option:
# tcp_nodelay: false
# so_linger:
# l_onoff: true
# l_linger: 10
#
#
scp:
sbi:
- addr: 127.0.1.10
port: 7777
#
# nrf:
#
@@ -293,12 +404,12 @@ amf:
# l_onoff: true
# l_linger: 10
#
nrf:
sbi:
- addr:
- 127.0.0.10
- ::1
port: 7777
#nrf:
# sbi:
# - addr:
# - 127.0.0.10
# - ::1
# port: 7777
#
# parameter:
@@ -317,10 +428,10 @@ parameter:
#
# max:
#
# o Maximum Number of UE per AMF/MME
# o Maximum Number of UE
# ue: 1024
# o Maximum Number of gNB/eNB per AMF/MME
# gnb: 64
# o Maximum Number of Peer(S1AP/NGAP, DIAMETER, GTP, PFCP or SBI)
# peer: 64
#
max:

View File

@@ -20,6 +20,7 @@
#
logger:
file: @localstatedir@/log/open5gs/ausf.log
#
# ausf:
#
@@ -35,7 +36,7 @@ logger:
# - ::0
# port: 7777
#
# o SBI Server(https://<all address avaiable>:443)
# o SBI Server(https://<all address available>:443)
# sbi:
# - tls:
# key: ausf.key
@@ -85,11 +86,111 @@ logger:
# l_onoff: true
# l_linger: 10
#
# <NF Service>
#
# o NF Service Name(Default : all NF services available)
# service_name:
#
# o NF Service Name(Only some NF services are available)
# service_name:
# - nausf-auth
#
# <NF Discovery Query Parameter>
#
# o (Default) If you do not set Query Parameter as shown below,
#
# sbi:
# - addr: 127.0.0.11
# port: 7777
#
# - 'service-names' is included.
#
# sbi:
# - addr: 127.0.0.11
# port: 7777
# discovery:
# option:
# no_service_names: false
#
# o To remove 'service-names' from URI query parameters in NS Discovery
# no_service_names: true
#
# * For Indirect Communication with Delegated Discovery,
# 'service-names' is always included in the URI query parameter.
# * That is, 'no_service_names' has no effect.
#
# <For Indirect Communication with Delegated Discovery>
#
# o (Default) If you do not set Delegated Discovery as shown below,
#
# sbi:
# - addr: 127.0.0.11
# port: 7777
#
# - Use SCP if SCP avaiable. Otherwise NRF is used.
# => App fails if both NRF and SCP are unavailable.
#
# sbi:
# - addr: 127.0.0.11
# port: 7777
# discovery:
# delegated: auto
#
# o To use SCP always => App fails if no SCP available.
# delegated: yes
#
# o Don't use SCP server => App fails if no NRF available.
# delegated: no
#
ausf:
sbi:
- addr: 127.0.0.11
port: 7777
#
# scp:
#
# <SBI Client>>
#
# o SBI Client(http://127.0.1.10:7777)
# sbi:
# addr: 127.0.1.10
# port: 7777
#
# o SBI Client(https://127.0.1.10:443, http://scp.open5gs.org:80)
# sbi:
# - addr: 127.0.1.10
# tls:
# key: scp.key
# pem: scp.pem
# - name: scp.open5gs.org
#
# o SBI Client(http://[fd69:f21d:873c:fb::1]:80)
# If prefer_ipv4 is true, http://127.0.1.10:80 is selected.
#
# sbi:
# addr:
# - 127.0.1.10
# - fd69:f21d:873c:fb::1
#
# o SBI Option (Default)
# - tcp_nodelay : true
# - so_linger.l_onoff : false
#
# sbi:
# addr: 127.0.1.10
# option:
# tcp_nodelay: false
# so_linger:
# l_onoff: true
# l_linger: 10
#
#
scp:
sbi:
- addr: 127.0.1.10
port: 7777
#
# nrf:
#
@@ -128,12 +229,12 @@ ausf:
# l_onoff: true
# l_linger: 10
#
nrf:
sbi:
- addr:
- 127.0.0.10
- ::1
port: 7777
#nrf:
# sbi:
# - addr:
# - 127.0.0.10
# - ::1
# port: 7777
#
# parameter:
@@ -152,10 +253,10 @@ parameter:
#
# max:
#
# o Maximum Number of UE per AMF/MME
# o Maximum Number of UE
# ue: 1024
# o Maximum Number of gNB/eNB per AMF/MME
# gnb: 64
# o Maximum Number of Peer(S1AP/NGAP, DIAMETER, GTP, PFCP or SBI)
# peer: 64
#
max:

View File

@@ -22,6 +22,7 @@ db_uri: mongodb://localhost/open5gs
#
logger:
file: @localstatedir@/log/open5gs/bsf.log
#
# bsf:
#
@@ -37,7 +38,7 @@ logger:
# - ::0
# port: 7777
#
# o SBI Server(https://<all address avaiable>:443)
# o SBI Server(https://<all address available>:443)
# sbi:
# - tls:
# key: bsf.key
@@ -87,11 +88,111 @@ logger:
# l_onoff: true
# l_linger: 10
#
# <NF Service>
#
# o NF Service Name(Default : all NF services available)
# service_name:
#
# o NF Service Name(Only some NF services are available)
# service_name:
# - nbsf-management
#
# <NF Discovery Query Parameter>
#
# o (Default) If you do not set Query Parameter as shown below,
#
# sbi:
# - addr: 127.0.0.15
# port: 7777
#
# - 'service-names' is included.
#
# sbi:
# - addr: 127.0.0.15
# port: 7777
# discovery:
# option:
# no_service_names: false
#
# o To remove 'service-names' from URI query parameters in NS Discovery
# no_service_names: true
#
# * For Indirect Communication with Delegated Discovery,
# 'service-names' is always included in the URI query parameter.
# * That is, 'no_service_names' has no effect.
#
# <For Indirect Communication with Delegated Discovery>
#
# o (Default) If you do not set Delegated Discovery as shown below,
#
# sbi:
# - addr: 127.0.0.15
# port: 7777
#
# - Use SCP if SCP avaiable. Otherwise NRF is used.
# => App fails if both NRF and SCP are unavailable.
#
# sbi:
# - addr: 127.0.0.15
# port: 7777
# discovery:
# delegated: auto
#
# o To use SCP always => App fails if no SCP available.
# delegated: yes
#
# o Don't use SCP server => App fails if no NRF available.
# delegated: no
#
bsf:
sbi:
- addr: 127.0.0.15
port: 7777
#
# scp:
#
# <SBI Client>>
#
# o SBI Client(http://127.0.1.10:7777)
# sbi:
# addr: 127.0.1.10
# port: 7777
#
# o SBI Client(https://127.0.1.10:443, http://scp.open5gs.org:80)
# sbi:
# - addr: 127.0.1.10
# tls:
# key: scp.key
# pem: scp.pem
# - name: scp.open5gs.org
#
# o SBI Client(http://[fd69:f21d:873c:fb::1]:80)
# If prefer_ipv4 is true, http://127.0.1.10:80 is selected.
#
# sbi:
# addr:
# - 127.0.1.10
# - fd69:f21d:873c:fb::1
#
# o SBI Option (Default)
# - tcp_nodelay : true
# - so_linger.l_onoff : false
#
# sbi:
# addr: 127.0.1.10
# option:
# tcp_nodelay: false
# so_linger:
# l_onoff: true
# l_linger: 10
#
#
scp:
sbi:
- addr: 127.0.1.10
port: 7777
#
# nrf:
#
@@ -130,12 +231,12 @@ bsf:
# l_onoff: true
# l_linger: 10
#
nrf:
sbi:
- addr:
- 127.0.0.10
- ::1
port: 7777
#nrf:
# sbi:
# - addr:
# - 127.0.0.10
# - ::1
# port: 7777
#
# parameter:
@@ -154,10 +255,10 @@ parameter:
#
# max:
#
# o Maximum Number of UE per AMF/MME
# o Maximum Number of UE
# ue: 1024
# o Maximum Number of gNB/eNB per AMF/MME
# gnb: 64
# o Maximum Number of Peer(S1AP/NGAP, DIAMETER, GTP, PFCP or SBI)
# peer: 64
#
max:

View File

@@ -41,13 +41,14 @@ hss:
# prefer_ipv4: true
#
parameter:
# use_mongodb_change_stream: true
#
# max:
#
# o Maximum Number of UE per AMF/MME
# o Maximum Number of UE
# ue: 1024
# o Maximum Number of gNB/eNB per AMF/MME
# gnb: 64
# o Maximum Number of Peer(S1AP/NGAP, DIAMETER, GTP, PFCP or SBI)
# peer: 64
#
max:

View File

@@ -29,6 +29,7 @@ open5gs_conf = '''
hss.yaml
pcrf.yaml
nrf.yaml
scp.yaml
ausf.yaml
udm.yaml
udr.yaml

View File

@@ -26,7 +26,7 @@ logger:
#
# <S1AP Server>>
#
# o S1AP Server(all address avaiable)
# o S1AP Server(all address available)
# s1ap:
#
# o S1AP Server(0.0.0.0:36412)
@@ -43,7 +43,7 @@ logger:
# - addr: 127.0.0.2
# port: 36413
#
# o S1AP Server(address avaiable in `eth0` interface)
# o S1AP Server(address available in `eth0` interface)
# s1ap:
# dev: eth0
#
@@ -86,7 +86,7 @@ logger:
#
# <GTP-C Server>>
#
# o GTP-C Server(all address avaiable)
# o GTP-C Server(all address available)
# gtpc:
#
# o GTP-C Server(127.0.0.2:2123, [::1]:2123)
@@ -175,6 +175,12 @@ logger:
# mnc: 02
# lac: 43693
#
# <Metrics Server>
#
# o Metrics Server(http://<any address>:9090)
# metrics:
# addr: 0.0.0.0
# port: 9090
#
# <GUMMEI>
#
@@ -248,15 +254,18 @@ mme:
- addr: 127.0.0.2
gtpc:
- addr: 127.0.0.2
gummei:
metrics:
addr: 127.0.0.2
port: 9090
gummei:
plmn_id:
mcc: 901
mcc: 999
mnc: 70
mme_gid: 2
mme_code: 1
tai:
plmn_id:
mcc: 901
mcc: 999
mnc: 70
tac: 1
security:
@@ -391,10 +400,10 @@ parameter:
#
# max:
#
# o Maximum Number of UE per AMF/MME
# o Maximum Number of UE
# ue: 1024
# o Maximum Number of gNB/eNB per AMF/MME
# gnb: 64
# o Maximum Number of Peer(S1AP/NGAP, DIAMETER, GTP, PFCP or SBI)
# peer: 64
#
max:

View File

@@ -1,5 +1,3 @@
db_uri: mongodb://localhost/open5gs
#
# logger:
#
@@ -38,7 +36,7 @@ logger:
# - ::0
# port: 7777
#
# o SBI Server(https://<all address avaiable>:443)
# o SBI Server(https://<all address available>:443)
# sbi:
# tls:
# key: nrf.key
@@ -77,6 +75,16 @@ logger:
# l_onoff: true
# l_linger: 10
#
# <NF Service>
#
# o NF Service Name(Default : all NF services available)
# service_name:
#
# o NF Service Name(Only some NF services are available)
# service_name:
# - nnrf-nfm
# - nnrf-disc
#
nrf:
sbi:
addr:
@@ -84,6 +92,50 @@ nrf:
- ::1
port: 7777
#
# scp:
#
# <SBI Client>>
#
# o SBI Client(http://127.0.1.10:7777)
# sbi:
# addr: 127.0.1.10
# port: 7777
#
# o SBI Client(https://127.0.1.10:443, http://scp.open5gs.org:80)
# sbi:
# - addr: 127.0.1.10
# tls:
# key: scp.key
# pem: scp.pem
# - name: scp.open5gs.org
#
# o SBI Client(http://[fd69:f21d:873c:fb::1]:80)
# If prefer_ipv4 is true, http://127.0.1.10:80 is selected.
#
# sbi:
# addr:
# - 127.0.1.10
# - fd69:f21d:873c:fb::1
#
# o SBI Option (Default)
# - tcp_nodelay : true
# - so_linger.l_onoff : false
#
# sbi:
# addr: 127.0.1.10
# option:
# tcp_nodelay: false
# so_linger:
# l_onoff: true
# l_linger: 10
#
#
scp:
sbi:
- addr: 127.0.1.10
port: 7777
#
# parameter:
#
@@ -101,10 +153,10 @@ parameter:
#
# max:
#
# o Maximum Number of UE per AMF/MME
# o Maximum Number of UE
# ue: 1024
# o Maximum Number of gNB/eNB per AMF/MME
# gnb: 64
# o Maximum Number of Peer(S1AP/NGAP, DIAMETER, GTP, PFCP or SBI)
# peer: 64
#
max:

View File

@@ -20,6 +20,7 @@
#
logger:
file: @localstatedir@/log/open5gs/nssf.log
#
# nssf:
#
@@ -35,7 +36,7 @@ logger:
# - ::0
# port: 7777
#
# o SBI Server(https://<all address avaiable>:443)
# o SBI Server(https://<all address available>:443)
# sbi:
# - tls:
# key: nssf.key
@@ -85,7 +86,7 @@ logger:
# l_onoff: true
# l_linger: 10
#
# <List of avaiable Network Slice Instance(NSI)>
# <List of available Network Slice Instance(NSI)>
#
# o One NSI
# - NRF[http://::1:7777/nnrf-nfm/v1/nf-instances]
@@ -134,16 +135,117 @@ logger:
# so_linger:
# l_onoff: true
# l_linger: 10
#
# <NF Service>
#
# o NF Service Name(Default : all NF services available)
# service_name:
#
# o NF Service Name(Only some NF services are available)
# service_name:
# - nnssf-nsselection
#
# <NF Discovery Query Parameter>
#
# o (Default) If you do not set Query Parameter as shown below,
#
# sbi:
# - addr: 127.0.0.14
# port: 7777
#
# - 'service-names' is included.
#
# sbi:
# - addr: 127.0.0.14
# port: 7777
# discovery:
# option:
# no_service_names: false
#
# o To remove 'service-names' from URI query parameters in NS Discovery
# no_service_names: true
#
# * For Indirect Communication with Delegated Discovery,
# 'service-names' is always included in the URI query parameter.
# * That is, 'no_service_names' has no effect.
#
# <For Indirect Communication with Delegated Discovery>
#
# o (Default) If you do not set Delegated Discovery as shown below,
#
# sbi:
# - addr: 127.0.0.14
# port: 7777
#
# - Use SCP if SCP avaiable. Otherwise NRF is used.
# => App fails if both NRF and SCP are unavailable.
#
# sbi:
# - addr: 127.0.0.14
# port: 7777
# discovery:
# delegated: auto
#
# o To use SCP always => App fails if no SCP available.
# delegated: yes
#
# o Don't use SCP server => App fails if no NRF available.
# delegated: no
#
nssf:
sbi:
- addr: 127.0.0.14
port: 7777
nsi:
- addr: ::1
- addr: 127.0.0.10
port: 7777
s_nssai:
sst: 1
#
# scp:
#
# <SBI Client>>
#
# o SBI Client(http://127.0.1.10:7777)
# sbi:
# addr: 127.0.1.10
# port: 7777
#
# o SBI Client(https://127.0.1.10:443, http://scp.open5gs.org:80)
# sbi:
# - addr: 127.0.1.10
# tls:
# key: scp.key
# pem: scp.pem
# - name: scp.open5gs.org
#
# o SBI Client(http://[fd69:f21d:873c:fb::1]:80)
# If prefer_ipv4 is true, http://127.0.1.10:80 is selected.
#
# sbi:
# addr:
# - 127.0.1.10
# - fd69:f21d:873c:fb::1
#
# o SBI Option (Default)
# - tcp_nodelay : true
# - so_linger.l_onoff : false
#
# sbi:
# addr: 127.0.1.10
# option:
# tcp_nodelay: false
# so_linger:
# l_onoff: true
# l_linger: 10
#
#
scp:
sbi:
- addr: 127.0.1.10
port: 7777
#
# nrf:
#
@@ -170,12 +272,12 @@ nssf:
# - 127.0.0.10
# - fd69:f21d:873c:fa::1
#
nrf:
sbi:
- addr:
- 127.0.0.10
- ::1
port: 7777
#nrf:
# sbi:
# - addr:
# - 127.0.0.10
# - ::1
# port: 7777
#
# parameter:
@@ -194,10 +296,10 @@ parameter:
#
# max:
#
# o Maximum Number of UE per AMF/MME
# o Maximum Number of UE
# ue: 1024
# o Maximum Number of gNB/eNB per AMF/MME
# gnb: 64
# o Maximum Number of Peer(S1AP/NGAP, DIAMETER, GTP, PFCP or SBI)
# peer: 64
#
max:

View File

@@ -22,6 +22,7 @@ db_uri: mongodb://localhost/open5gs
#
logger:
file: @localstatedir@/log/open5gs/pcf.log
#
# pcf:
#
@@ -37,7 +38,7 @@ logger:
# - ::0
# port: 7777
#
# o SBI Server(https://<all address avaiable>:443)
# o SBI Server(https://<all address available>:443)
# sbi:
# - tls:
# key: pcf.key
@@ -87,11 +88,118 @@ logger:
# l_onoff: true
# l_linger: 10
#
# <NF Service>
#
# o NF Service Name(Default : all NF services available)
# service_name:
#
# o NF Service Name(Only some NF services are available)
# service_name:
# - npcf-am-policy-control
# - npcf-smpolicycontrol
# - npcf-policyauthorization
#
# == NOTE ==
# 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.
#
# <NF Discovery Query Parameter>
#
# o (Default) If you do not set Query Parameter as shown below,
#
# sbi:
# - addr: 127.0.0.13
# port: 7777
#
# - 'service-names' is included.
#
# sbi:
# - addr: 127.0.0.13
# port: 7777
# discovery:
# option:
# no_service_names: false
#
# o To remove 'service-names' from URI query parameters in NS Discovery
# no_service_names: true
#
# * For Indirect Communication with Delegated Discovery,
# 'service-names' is always included in the URI query parameter.
# * That is, 'no_service_names' has no effect.
#
# <For Indirect Communication with Delegated Discovery>
#
# o (Default) If you do not set Delegated Discovery as shown below,
#
# sbi:
# - addr: 127.0.0.13
# port: 7777
#
# - Use SCP if SCP avaiable. Otherwise NRF is used.
# => App fails if both NRF and SCP are unavailable.
#
# sbi:
# - addr: 127.0.0.13
# port: 7777
# discovery:
# delegated: auto
#
# o To use SCP always => App fails if no SCP available.
# delegated: yes
#
# o Don't use SCP server => App fails if no NRF available.
# delegated: no
#
pcf:
sbi:
- addr: 127.0.0.13
port: 7777
#
# scp:
#
# <SBI Client>>
#
# o SBI Client(http://127.0.1.10:7777)
# sbi:
# addr: 127.0.1.10
# port: 7777
#
# o SBI Client(https://127.0.1.10:443, http://scp.open5gs.org:80)
# sbi:
# - addr: 127.0.1.10
# tls:
# key: scp.key
# pem: scp.pem
# - name: scp.open5gs.org
#
# o SBI Client(http://[fd69:f21d:873c:fb::1]:80)
# If prefer_ipv4 is true, http://127.0.1.10:80 is selected.
#
# sbi:
# addr:
# - 127.0.1.10
# - fd69:f21d:873c:fb::1
#
# o SBI Option (Default)
# - tcp_nodelay : true
# - so_linger.l_onoff : false
#
# sbi:
# addr: 127.0.1.10
# option:
# tcp_nodelay: false
# so_linger:
# l_onoff: true
# l_linger: 10
#
#
scp:
sbi:
- addr: 127.0.1.10
port: 7777
#
# nrf:
#
@@ -130,12 +238,12 @@ pcf:
# l_onoff: true
# l_linger: 10
#
nrf:
sbi:
- addr:
- 127.0.0.10
- ::1
port: 7777
#nrf:
# sbi:
# - addr:
# - 127.0.0.10
# - ::1
# port: 7777
#
# parameter:
@@ -154,10 +262,10 @@ parameter:
#
# max:
#
# o Maximum Number of UE per AMF/MME
# o Maximum Number of UE
# ue: 1024
# o Maximum Number of gNB/eNB per AMF/MME
# gnb: 64
# o Maximum Number of Peer(S1AP/NGAP, DIAMETER, GTP, PFCP or SBI)
# peer: 64
#
max:

View File

@@ -42,9 +42,9 @@ parameter:
#
# max:
#
# o Maximum Number of UE per AMF/MME
# o Maximum Number of UE
# ue: 1024
# o Maximum Number of gNB/eNB per AMF/MME
# gnb: 64
# o Maximum Number of Peer(S1AP/NGAP, DIAMETER, GTP, PFCP or SBI)
# peer: 64
#
max:

246
configs/open5gs/scp.yaml.in Normal file
View File

@@ -0,0 +1,246 @@
db_uri: mongodb://localhost/open5gs
#
# logger:
#
# o Set OGS_LOG_INFO to all domain level
# - If `level` is omitted, the default level is OGS_LOG_INFO)
# - If `domain` is omitted, the all domain level is set from 'level'
# (Nothing is needed)
#
# o Set OGS_LOG_ERROR to all domain level
# - `level` can be set with none, fatal, error, warn, info, debug, trace
# level: error
#
# o Set OGS_LOG_DEBUG to mme/emm domain level
# level: debug
# domain: mme,emm
#
# o Set OGS_LOG_TRACE to all domain level
# level: trace
# domain: core,sbi,scp,event,tlv,mem,sock
#
logger:
file: @localstatedir@/log/open5gs/scp.log
#
# scp:
#
# <SBI Server>
#
# o SBI Server(http://<all address available>:80)
# sbi:
#
# o SBI Server(http://<any address>:80)
# sbi:
# - addr:
# - 0.0.0.0
# - ::0
# port: 7777
#
# o SBI Server(https://<all address available>:443)
# sbi:
# - tls:
# key: scp.key
# pem: scp.pem
#
# o SBI Server(https://127.0.1.10:443, http://[::1]:80)
# sbi:
# - addr: 127.0.1.10
# tls:
# key: scp.key
# pem: scp.pem
# - addr: ::1
#
# o SBI Server(http://scp.open5gs.org:80)
# sbi:
# - name: scp.open5gs.org
#
# o SBI Server(http://127.0.1.10:7777)
# sbi:
# - addr: 127.0.1.10
# port: 7777
#
# o SBI Server(http://<eth0 IP address>:80)
# sbi:
# - dev: eth0
#
# o Provide custom SBI address to be advertised to NRF
# sbi:
# - dev: eth0
# advertise: open5gs-scp.svc.local
#
# sbi:
# - addr: localhost
# advertise:
# - 127.0.0.99
# - ::1
#
# o SBI Option (Default)
# - tcp_nodelay : true
# - so_linger.l_onoff : false
#
# sbi:
# addr: 127.0.1.10
# option:
# tcp_nodelay: false
# so_linger:
# l_onoff: true
# l_linger: 10
#
# <For Indirect Communication with Delegated Discovery>
#
# o (Default) If you do not set Delegated Discovery as shown below,
#
# sbi:
# - addr: 127.0.1.10
# port: 7777
#
# - Use SCP if SCP avaiable. Otherwise NRF is used.
# => App fails if both NRF and SCP are unavailable.
#
# sbi:
# - addr: 127.0.1.10
# port: 7777
# discovery:
# delegated: auto
#
# o To use SCP always => App fails if no SCP available.
# delegated: yes
#
# o Don't use SCP server => App fails if no NRF available.
# delegated: no
#
scp:
sbi:
- addr: 127.0.1.10
port: 7777
#
# next_scp:
#
# <Next hop SCP>
#
# o SBI Client(http://127.0.1.11:7777)
# sbi:
# addr: 127.0.1.11
# port: 7777
#
# o SBI Client(https://127.0.1.11:443, http://next-scp.open5gs.org:80)
# sbi:
# - addr: 127.0.1.11
# tls:
# key: next-scp.key
# pem: next-scp.pem
# - name: next-scp.open5gs.org
#
# o SBI Client(http://[fd69:f21d:873c:fb::1]:80)
# If prefer_ipv4 is true, http://127.0.1.11:80 is selected.
#
# sbi:
# addr:
# - 127.0.1.11
# - fd69:f21d:873c:fb::1
#
# o SBI Option (Default)
# - tcp_nodelay : true
# - so_linger.l_onoff : false
#
# sbi:
# addr: 127.0.1.11
# option:
# tcp_nodelay: false
# so_linger:
# l_onoff: true
# l_linger: 10
#
#
# nrf:
#
# <SBI Client>>
#
# o SBI Client(http://127.0.0.10:7777)
# sbi:
# addr: 127.0.0.10
# port: 7777
#
# o SBI Client(https://127.0.0.10:443, http://nrf.open5gs.org:80)
# sbi:
# - addr: 127.0.0.10
# tls:
# key: nrf.key
# pem: nrf.pem
# - name: nrf.open5gs.org
#
# o SBI Client(http://[fd69:f21d:873c:fa::1]:80)
# If prefer_ipv4 is true, http://127.0.0.10:80 is selected.
#
# sbi:
# addr:
# - 127.0.0.10
# - fd69:f21d:873c:fa::1
#
# o SBI Option (Default)
# - tcp_nodelay : true
# - so_linger.l_onoff : false
#
# sbi:
# addr: 127.0.0.10
# option:
# tcp_nodelay: false
# so_linger:
# l_onoff: true
# l_linger: 10
#
nrf:
sbi:
- addr:
- 127.0.0.10
- ::1
port: 7777
#
# parameter:
#
# o Disable use of IPv4 addresses (only IPv6)
# no_ipv4: true
#
# o Disable use of IPv6 addresses (only IPv4)
# no_ipv6: true
#
# o Prefer IPv4 instead of IPv6 for estabishing new GTP connections.
# prefer_ipv4: true
#
parameter:
#
# max:
#
# o Maximum Number of UE
# ue: 1024
# o Maximum Number of Peer(S1AP/NGAP, DIAMETER, GTP, PFCP or SBI)
# peer: 64
#
max:
#
# time:
#
# o NF Instance Heartbeat (Default : 0)
# NFs will not send heart-beat timer in NFProfile
# NRF will send heart-beat timer in NFProfile
#
# o NF Instance Heartbeat (20 seconds)
# NFs will send heart-beat timer (20 seconds) in NFProfile
# NRF can change heart-beat timer in NFProfile
#
# nf_instance:
# heartbeat: 20
#
# o Message Wait Duration (Default : 10,000 ms = 10 seconds)
#
# o Message Wait Duration (3000 ms)
# message:
# duration: 3000
time:

View File

@@ -142,10 +142,12 @@ parameter:
#
# max:
#
# o Maximum Number of UE per AMF/MME
# o Maximum Number of UE
# ue: 1024
# o Maximum Number of gNB/eNB per AMF/MME
# gnb: 64
# o Maximum Number of Peer(S1AP/NGAP, DIAMETER, GTP, PFCP or SBI)
# peer: 64
# o Maximum Number of GTP peer nodes per SGWC/SMF
# gtp_peer: 64
#
max:

View File

@@ -131,10 +131,10 @@ parameter:
#
# max:
#
# o Maximum Number of UE per AMF/MME
# o Maximum Number of UE
# ue: 1024
# o Maximum Number of gNB/eNB per AMF/MME
# gnb: 64
# o Maximum Number of Peer(S1AP/NGAP, DIAMETER, GTP, PFCP or SBI)
# peer: 64
#
max:

View File

@@ -16,10 +16,11 @@
#
# o Set OGS_LOG_TRACE to all domain level
# level: trace
# domain: core,pfcp,fd,pfcp,gtp,smf,event,tlv,mem,sock
# domain: core,fd,pfcp,gtp,smf,event,tlv,mem,sock
#
logger:
file: @localstatedir@/log/open5gs/smf.log
#
# smf:
#
@@ -35,7 +36,7 @@ logger:
# - ::0
# port: 7777
#
# o SBI Server(https://<all address avaiable>:443)
# o SBI Server(https://<all address available>:443)
# sbi:
# - tls:
# key: smf.key
@@ -85,6 +86,63 @@ logger:
# l_onoff: true
# l_linger: 10
#
# <NF Service>
#
# o NF Service Name(Default : all NF services available)
# service_name:
#
# o NF Service Name(Only some NF services are available)
# service_name:
# - nsmf-pdusession
#
# <NF Discovery Query Parameter>
#
# o (Default) If you do not set Query Parameter as shown below,
#
# sbi:
# - addr: 127.0.0.4
# port: 7777
#
# - 'service-names' is included.
#
# sbi:
# - addr: 127.0.0.4
# port: 7777
# discovery:
# option:
# no_service_names: false
#
# o To remove 'service-names' from URI query parameters in NS Discovery
# no_service_names: true
#
# * For Indirect Communication with Delegated Discovery,
# 'service-names' is always included in the URI query parameter.
# * That is, 'no_service_names' has no effect.
#
# <For Indirect Communication with Delegated Discovery>
#
# o (Default) If you do not set Delegated Discovery as shown below,
#
# sbi:
# - addr: 127.0.0.4
# port: 7777
#
# - Use SCP if SCP avaiable. Otherwise NRF is used.
# => App fails if both NRF and SCP are unavailable.
#
# sbi:
# - addr: 127.0.0.4
# port: 7777
# discovery:
# delegated: auto
#
# o To use SCP always => App fails if no SCP available.
# delegated: yes
#
# o Don't use SCP server => App fails if no NRF available.
# delegated: no
#
#
# <PFCP Server>
#
# o PFCP Server(127.0.0.4:8805, ::1:8805)
@@ -145,6 +203,13 @@ logger:
# option:
# so_bindtodevice: vrf-blue
#
# <Metrics Server>
#
# o Metrics Server(http://<any address>:9090)
# metrics:
# addr: 0.0.0.0
# port: 9090
#
# <Subnet for UE Pool>
#
# o IPv4 Pool
@@ -269,7 +334,7 @@ logger:
# - internet
# - ims
#
# o S-NSSAI[SST:1] and DNN[internet] and TAI[PLMN-ID:90170 TAC:1]
# o S-NSSAI[SST:1] and DNN[internet] and TAI[PLMN-ID:99970 TAC:1]
# info:
# - s_nssai:
# - sst: 1
@@ -277,14 +342,14 @@ logger:
# - internet
# tai:
# - plmn_id:
# mcc: 901
# mcc: 999
# mnc: 70
# tac: 1
#
# o If any of conditions below are met:
# - S-NSSAI[SST:1] and DNN[internet] and TAI[PLMN-ID:90170 TAC:1-9]
# - S-NSSAI[SST:1] and DNN[internet] and TAI[PLMN-ID:99970 TAC:1-9]
# - S-NSSAI[SST:2 SD:000080] and DNN[internet or ims]
# - S-NSSAI[SST:4] and DNN[internet] and TAI[PLMN-ID:90170 TAC:10-20,30-40]
# - S-NSSAI[SST:4] and DNN[internet] and TAI[PLMN-ID:99970 TAC:10-20,30-40]
#
# info:
# - s_nssai:
@@ -293,7 +358,7 @@ logger:
# - internet
# tai:
# - plmn_id:
# mcc: 901
# mcc: 999
# mnc: 70
# range:
# - 1-9
@@ -309,7 +374,7 @@ logger:
# - internet
# tai:
# - plmn_id:
# mcc: 901
# mcc: 999
# mnc: 70
# range:
# - 10-20
@@ -339,27 +404,27 @@ logger:
# - internet
# tai:
# - plmn_id:
# mcc: 901
# mcc: 999
# mnc: 70
# tac: [1, 2, 3]
# - plmn_id:
# mcc: 901
# mcc: 999
# mnc: 70
# tac: 4
# - plmn_id:
# mcc: 901
# mcc: 999
# mnc: 70
# tac:
# - 5
# - 6
# - plmn_id:
# mcc: 901
# mcc: 999
# mnc: 70
# range:
# - 100-200
# - 300-400
# - plmn_id:
# mcc: 901
# mcc: 999
# mnc: 70
# range:
# - 500-600
@@ -371,11 +436,24 @@ logger:
# - internet
# tai:
# - plmn_id:
# mcc: 901
# mcc: 999
# mnc: 70
# tac: 99
#
# <Security Indication - 5G Core only>
#
# According to 3GPP TS38.413 Section 9.3.1.27,
# Security Indication IE may be instructed to 5G gNB.
#
# If you set the security_indication in smf.yaml,
# this information is delivered using PDU Session Resource Request Transfer IE
#
# security_indication:
# integrity_protection_indication: required|preferred|not-needed
# confidentiality_protection_indication: required|preferred|not-needed
# maximum_integrity_protected_data_rate_uplink: bitrate64kbs|maximum-UE-rate
# maximum_integrity_protected_data_rate_downlink: bitrate64kbs|maximum-UE-rate
#
smf:
sbi:
- addr: 127.0.0.4
@@ -389,6 +467,9 @@ smf:
gtpu:
- addr: 127.0.0.4
- addr: ::1
metrics:
addr: 127.0.0.4
port: 9090
subnet:
- addr: 10.45.0.1/16
- addr: 2001:db8:cafe::1/48
@@ -402,6 +483,50 @@ smf:
enabled: auto
freeDiameter: @sysconfdir@/freeDiameter/smf.conf
#
# scp:
#
# <SBI Client>>
#
# o SBI Client(http://127.0.1.10:7777)
# sbi:
# addr: 127.0.1.10
# port: 7777
#
# o SBI Client(https://127.0.1.10:443, http://scp.open5gs.org:80)
# sbi:
# - addr: 127.0.1.10
# tls:
# key: scp.key
# pem: scp.pem
# - name: scp.open5gs.org
#
# o SBI Client(http://[fd69:f21d:873c:fb::1]:80)
# If prefer_ipv4 is true, http://127.0.1.10:80 is selected.
#
# sbi:
# addr:
# - 127.0.1.10
# - fd69:f21d:873c:fb::1
#
# o SBI Option (Default)
# - tcp_nodelay : true
# - so_linger.l_onoff : false
#
# sbi:
# addr: 127.0.1.10
# option:
# tcp_nodelay: false
# so_linger:
# l_onoff: true
# l_linger: 10
#
#
scp:
sbi:
- addr: 127.0.1.10
port: 7777
#
# nrf:
#
@@ -440,12 +565,12 @@ smf:
# l_onoff: true
# l_linger: 10
#
nrf:
sbi:
- addr:
- 127.0.0.10
- ::1
port: 7777
#nrf:
# sbi:
# - addr:
# - 127.0.0.10
# - ::1
# port: 7777
#
# upf:
@@ -527,10 +652,12 @@ parameter:
#
# max:
#
# o Maximum Number of UE per AMF/MME
# o Maximum Number of UE
# ue: 1024
# o Maximum Number of gNB/eNB per AMF/MME
# gnb: 64
# o Maximum Number of Peer(S1AP/NGAP, DIAMETER, GTP, PFCP or SBI)
# peer: 64
# o Maximum Number of GTP peer nodes per SGWC/SMF
# gtp_peer: 64
#
max:

View File

@@ -20,6 +20,7 @@
#
logger:
file: @localstatedir@/log/open5gs/udm.log
#
# udm:
#
@@ -35,7 +36,7 @@ logger:
# - ::0
# port: 7777
#
# o SBI Server(https://<all address avaiable>:443)
# o SBI Server(https://<all address available>:443)
# sbi:
# - tls:
# key: udm.key
@@ -85,11 +86,113 @@ logger:
# l_onoff: true
# l_linger: 10
#
# <NF Service>
#
# o NF Service Name(Default : all NF services available)
# service_name:
#
# o NF Service Name(Only some NF services are available)
# service_name:
# - nudm-sdm
# - nudm-uecm
# - nudm-ueau
#
# <NF Discovery Query Parameter>
#
# o (Default) If you do not set Query Parameter as shown below,
#
# sbi:
# - addr: 127.0.0.12
# port: 7777
#
# - 'service-names' is included.
#
# sbi:
# - addr: 127.0.0.12
# port: 7777
# discovery:
# option:
# no_service_names: false
#
# o To remove 'service-names' from URI query parameters in NS Discovery
# no_service_names: true
#
# * For Indirect Communication with Delegated Discovery,
# 'service-names' is always included in the URI query parameter.
# * That is, 'no_service_names' has no effect.
#
# <For Indirect Communication with Delegated Discovery>
#
# o (Default) If you do not set Delegated Discovery as shown below,
#
# sbi:
# - addr: 127.0.0.12
# port: 7777
#
# - Use SCP if SCP avaiable. Otherwise NRF is used.
# => App fails if both NRF and SCP are unavailable.
#
# sbi:
# - addr: 127.0.0.12
# port: 7777
# discovery:
# delegated: auto
#
# o To use SCP always => App fails if no SCP available.
# delegated: yes
#
# o Don't use SCP server => App fails if no NRF available.
# delegated: no
#
udm:
sbi:
- addr: 127.0.0.12
port: 7777
#
# scp:
#
# <SBI Client>>
#
# o SBI Client(http://127.0.1.10:7777)
# sbi:
# addr: 127.0.1.10
# port: 7777
#
# o SBI Client(https://127.0.1.10:443, http://scp.open5gs.org:80)
# sbi:
# - addr: 127.0.1.10
# tls:
# key: scp.key
# pem: scp.pem
# - name: scp.open5gs.org
#
# o SBI Client(http://[fd69:f21d:873c:fb::1]:80)
# If prefer_ipv4 is true, http://127.0.1.10:80 is selected.
#
# sbi:
# addr:
# - 127.0.1.10
# - fd69:f21d:873c:fb::1
#
# o SBI Option (Default)
# - tcp_nodelay : true
# - so_linger.l_onoff : false
#
# sbi:
# addr: 127.0.1.10
# option:
# tcp_nodelay: false
# so_linger:
# l_onoff: true
# l_linger: 10
#
#
scp:
sbi:
- addr: 127.0.1.10
port: 7777
#
# nrf:
#
@@ -128,12 +231,12 @@ udm:
# l_onoff: true
# l_linger: 10
#
nrf:
sbi:
- addr:
- 127.0.0.10
- ::1
port: 7777
#nrf:
# sbi:
# - addr:
# - 127.0.0.10
# - ::1
# port: 7777
#
# parameter:
@@ -152,10 +255,10 @@ parameter:
#
# max:
#
# o Maximum Number of UE per AMF/MME
# o Maximum Number of UE
# ue: 1024
# o Maximum Number of gNB/eNB per AMF/MME
# gnb: 64
# o Maximum Number of Peer(S1AP/NGAP, DIAMETER, GTP, PFCP or SBI)
# peer: 64
#
max:

View File

@@ -22,6 +22,7 @@ db_uri: mongodb://localhost/open5gs
#
logger:
file: @localstatedir@/log/open5gs/udr.log
#
# udr:
#
@@ -37,7 +38,7 @@ logger:
# - ::0
# port: 7777
#
# o SBI Server(https://<all address avaiable>:443)
# o SBI Server(https://<all address available>:443)
# sbi:
# - tls:
# key: udr.key
@@ -87,11 +88,111 @@ logger:
# l_onoff: true
# l_linger: 10
#
# <NF Service>
#
# o NF Service Name(Default : all NF services available)
# service_name:
#
# o NF Service Name(Only some NF services are available)
# service_name:
# - nudr-dr
#
# <NF Discovery Query Parameter>
#
# o (Default) If you do not set Query Parameter as shown below,
#
# sbi:
# - addr: 127.0.0.20
# port: 7777
#
# - 'service-names' is included.
#
# sbi:
# - addr: 127.0.0.20
# port: 7777
# discovery:
# option:
# no_service_names: false
#
# o To remove 'service-names' from URI query parameters in NS Discovery
# no_service_names: true
#
# * For Indirect Communication with Delegated Discovery,
# 'service-names' is always included in the URI query parameter.
# * That is, 'no_service_names' has no effect.
#
# <For Indirect Communication with Delegated Discovery>
#
# o (Default) If you do not set Delegated Discovery as shown below,
#
# sbi:
# - addr: 127.0.0.20
# port: 7777
#
# - Use SCP if SCP avaiable. Otherwise NRF is used.
# => App fails if both NRF and SCP are unavailable.
#
# sbi:
# - addr: 127.0.0.20
# port: 7777
# discovery:
# delegated: auto
#
# o To use SCP always => App fails if no SCP available.
# delegated: yes
#
# o Don't use SCP server => App fails if no NRF available.
# delegated: no
#
udr:
sbi:
- addr: 127.0.0.20
port: 7777
#
# scp:
#
# <SBI Client>>
#
# o SBI Client(http://127.0.1.10:7777)
# sbi:
# addr: 127.0.1.10
# port: 7777
#
# o SBI Client(https://127.0.1.10:443, http://scp.open5gs.org:80)
# sbi:
# - addr: 127.0.1.10
# tls:
# key: scp.key
# pem: scp.pem
# - name: scp.open5gs.org
#
# o SBI Client(http://[fd69:f21d:873c:fb::1]:80)
# If prefer_ipv4 is true, http://127.0.1.10:80 is selected.
#
# sbi:
# addr:
# - 127.0.1.10
# - fd69:f21d:873c:fb::1
#
# o SBI Option (Default)
# - tcp_nodelay : true
# - so_linger.l_onoff : false
#
# sbi:
# addr: 127.0.1.10
# option:
# tcp_nodelay: false
# so_linger:
# l_onoff: true
# l_linger: 10
#
#
scp:
sbi:
- addr: 127.0.1.10
port: 7777
#
# nrf:
#
@@ -130,12 +231,12 @@ udr:
# l_onoff: true
# l_linger: 10
#
nrf:
sbi:
- addr:
- 127.0.0.10
- ::1
port: 7777
#nrf:
# sbi:
# - addr:
# - 127.0.0.10
# - ::1
# port: 7777
#
# parameter:
@@ -154,10 +255,10 @@ parameter:
#
# max:
#
# o Maximum Number of UE per AMF/MME
# o Maximum Number of UE
# ue: 1024
# o Maximum Number of gNB/eNB per AMF/MME
# gnb: 64
# o Maximum Number of Peer(S1AP/NGAP, DIAMETER, GTP, PFCP or SBI)
# peer: 64
#
max:

View File

@@ -205,10 +205,10 @@ parameter:
#
# max:
#
# o Maximum Number of UE per AMF/MME
# o Maximum Number of UE
# ue: 1024
# o Maximum Number of gNB/eNB per AMF/MME
# gnb: 64
# o Maximum Number of Peer(S1AP/NGAP, DIAMETER, GTP, PFCP or SBI)
# peer: 64
#
max:

View File

@@ -4,6 +4,7 @@ logger:
parameter:
# no_nrf: true
# no_scp: true
# no_amf: true
# no_smf: true
# no_upf: true
@@ -18,6 +19,7 @@ parameter:
# no_sgwu: true
# no_pcrf: true
# no_hss: true
# use_mongodb_change_stream: true
mme:
freeDiameter:
@@ -44,13 +46,13 @@ mme:
- addr: 127.0.0.2
gummei:
plmn_id:
mcc: 901
mcc: 999
mnc: 70
mme_gid: 2
mme_code: 1
tai:
plmn_id:
mcc: 901
mcc: 999
mnc: 70
tac: 1
security:
@@ -104,6 +106,31 @@ smf:
connect:
- identity: pcrf.localdomain
addr: 127.0.0.9
#
# <For Indirect Communication with Delegated Discovery>
#
# o (Default) If you do not set Delegated Discovery as shown below,
#
# sbi:
# - addr: 127.0.0.5
# port: 7777
#
# - Use SCP if SCP avaiable. Otherwise NRF is used.
# => App fails if both NRF and SCP are unavailable.
#
# sbi:
# - addr: 127.0.0.5
# port: 7777
# discovery:
# delegated: auto
#
# o To use SCP always => App fails if no SCP available.
# delegated: yes
#
# o Don't use SCP server => App fails if no NRF available.
# delegated: no
#
amf:
sbi:
- addr: 127.0.0.5
@@ -112,19 +139,19 @@ amf:
- addr: 127.0.0.5
guami:
- plmn_id:
mcc: 901
mcc: 999
mnc: 70
amf_id:
region: 2
set: 1
tai:
- plmn_id:
mcc: 901
mcc: 999
mnc: 70
tac: 1
plmn_support:
- plmn_id:
mcc: 901
mcc: 999
mnc: 70
s_nssai:
- sst: 1
@@ -194,6 +221,50 @@ nrf:
- ::1
port: 7777
#
# scp:
#
# <SBI Client>>
#
# o SBI Client(http://127.0.1.10:7777)
# sbi:
# addr: 127.0.1.10
# port: 7777
#
# o SBI Client(https://127.0.1.10:443, http://scp.open5gs.org:80)
# sbi:
# - addr: 127.0.1.10
# tls:
# key: scp.key
# pem: scp.pem
# - name: scp.open5gs.org
#
# o SBI Client(http://[fd69:f21d:873c:fb::1]:80)
# If prefer_ipv4 is true, http://127.0.1.10:80 is selected.
#
# sbi:
# addr:
# - 127.0.1.10
# - fd69:f21d:873c:fb::1
#
# o SBI Option (Default)
# - tcp_nodelay : true
# - so_linger.l_onoff : false
#
# sbi:
# addr: 127.0.1.10
# option:
# tcp_nodelay: false
# so_linger:
# l_onoff: true
# l_linger: 10
#
#
scp:
sbi:
- addr: 127.0.1.10
port: 7777
ausf:
sbi:
- addr: 127.0.0.11
@@ -214,7 +285,7 @@ nssf:
- addr: 127.0.0.14
port: 7777
nsi:
- addr: ::1
- addr: 127.0.0.10
port: 7777
s_nssai:
sst: 1

View File

@@ -4,6 +4,7 @@ logger:
parameter:
# no_nrf: true
no_scp: true
# no_amf: true
# no_smf: true
# no_upf: true
@@ -18,6 +19,7 @@ parameter:
# no_sgwu: true
# no_pcrf: true
# no_hss: true
# use_mongodb_change_stream: true
mme:
freeDiameter:
@@ -44,13 +46,13 @@ mme:
- addr: 127.0.0.2
gummei:
plmn_id:
mcc: 901
mcc: 999
mnc: 70
mme_gid: 2
mme_code: 1
tai:
plmn_id:
mcc: 901
mcc: 999
mnc: 70
tac: 1
security:
@@ -112,19 +114,19 @@ amf:
- addr: 127.0.0.5
guami:
- plmn_id:
mcc: 901
mcc: 999
mnc: 70
amf_id:
region: 202
set: 1016
tai:
- plmn_id:
mcc: 901
mcc: 999
mnc: 70
tac: 1
plmn_support:
- plmn_id:
mcc: 901
mcc: 999
mnc: 70
s_nssai:
- sst: 1

View File

@@ -4,6 +4,7 @@ logger:
parameter:
# no_nrf: true
# no_scp: true
# no_amf: true
# no_smf: true
# no_upf: true
@@ -18,6 +19,7 @@ parameter:
# no_sgwu: true
# no_pcrf: true
# no_hss: true
# use_mongodb_change_stream: true
mme:
freeDiameter:
@@ -44,13 +46,13 @@ mme:
- addr: 127.0.0.2
gummei:
plmn_id:
mcc: 901
mcc: 999
mnc: 70
mme_gid: 2
mme_code: 1
tai:
plmn_id:
mcc: 901
mcc: 999
mnc: 70
tac: 7
security:
@@ -112,19 +114,19 @@ amf:
- addr: 127.0.0.5
guami:
- plmn_id:
mcc: 901
mcc: 999
mnc: 70
amf_id:
region: 2
set: 1
tai:
- plmn_id:
mcc: 901
mcc: 999
mnc: 70
tac: 1
plmn_support:
- plmn_id:
mcc: 901
mcc: 999
mnc: 70
s_nssai:
- sst: 1
@@ -214,7 +216,7 @@ nssf:
- addr: 127.0.0.14
port: 7777
nsi:
- addr: ::1
- addr: 127.0.0.10
port: 7777
s_nssai:
sst: 1

View File

@@ -6,4 +6,5 @@ Address=10.45.0.1/16
Address=2001:db8:cafe::1/48
[Link]
MTUBytes=1400
RequiredForOnline=false

View File

@@ -25,6 +25,7 @@ systemd_conf_in = '''
open5gs-hssd.service
open5gs-pcrfd.service
open5gs-nrfd.service
open5gs-scpd.service
open5gs-ausfd.service
open5gs-udmd.service
open5gs-pcfd.service

View File

@@ -0,0 +1,18 @@
[Unit]
Description=Open5GS NRF Daemon
Wants=mongodb.service mongod.service
[Service]
Type=simple
User=open5gs
Group=open5gs
Restart=always
ExecStart=@bindir@/open5gs-scpd -c @sysconfdir@/open5gs/scp.yaml
RestartSec=2
RestartPreventExitStatus=1
ExecReload=/bin/kill -HUP $MAINPID
[Install]
WantedBy=multi-user.target

View File

@@ -4,6 +4,7 @@ logger:
parameter:
# no_nrf: true
# no_scp: true
# no_amf: true
# no_smf: true
# no_upf: true
@@ -18,6 +19,7 @@ parameter:
# no_sgwu: true
# no_pcrf: true
# no_hss: true
# use_mongodb_change_stream: true
mme:
freeDiameter:
@@ -44,13 +46,13 @@ mme:
- addr: 127.0.0.2
gummei:
plmn_id:
mcc: 901
mcc: 999
mnc: 70
mme_gid: 2
mme_code: 1
tai:
plmn_id:
mcc: 901
mcc: 999
mnc: 70
tac: 1
security:
@@ -115,19 +117,19 @@ amf:
- addr: 127.0.0.5
guami:
- plmn_id:
mcc: 901
mcc: 999
mnc: 70
amf_id:
region: 2
set: 1
tai:
- plmn_id:
mcc: 901
mcc: 999
mnc: 70
tac: 1
plmn_support:
- plmn_id:
mcc: 901
mcc: 999
mnc: 70
s_nssai:
- sst: 1
@@ -221,7 +223,7 @@ nssf:
- addr: 127.0.0.14
port: 7777
nsi:
- addr: ::1
- addr: 127.0.0.10
port: 7777
s_nssai:
sst: 1

View File

@@ -4,6 +4,7 @@ logger:
parameter:
# no_nrf: true
# no_scp: true
# no_amf: true
# no_smf: true
# no_upf: true
@@ -18,6 +19,7 @@ parameter:
# no_sgwu: true
# no_pcrf: true
# no_hss: true
# use_mongodb_change_stream: true
mme:
freeDiameter:
@@ -44,13 +46,13 @@ mme:
- addr: 127.0.0.2
gummei:
plmn_id:
mcc: 901
mcc: 999
mnc: 70
mme_gid: 2
mme_code: 1
tai:
plmn_id:
mcc: 901
mcc: 999
mnc: 70
tac: 1
security:
@@ -115,19 +117,19 @@ amf:
- addr: 127.0.0.5
guami:
- plmn_id:
mcc: 901
mcc: 999
mnc: 70
amf_id:
region: 2
set: 1
tai:
- plmn_id:
mcc: 901
mcc: 999
mnc: 70
tac: 1
plmn_support:
- plmn_id:
mcc: 901
mcc: 999
mnc: 70
s_nssai:
- sst: 1
@@ -199,6 +201,11 @@ nrf:
- ::1
port: 7777
scp:
sbi:
- addr: 127.0.1.10
port: 7777
ausf:
sbi:
- addr: 127.0.0.11
@@ -219,7 +226,7 @@ nssf:
- addr: 127.0.0.14
port: 7777
nsi:
- addr: ::1
- addr: 127.0.0.10
port: 7777
s_nssai:
sst: 1

198
debian/changelog vendored
View File

@@ -1,3 +1,201 @@
open5gs (2.5.9) unstable; urgency=medium
* Bug Fixed
-- Sukchan Lee <acetcom@gmail.com> Mon, 06 Mar 2023 21:43:02 +0900
open5gs (2.5.8) unstable; urgency=medium
* Bug Fixed
-- Sukchan Lee <acetcom@gmail.com> Mon, 23 Jan 2023 10:58:46 +0900
open5gs (2.5.8~kinetic) kinetic; urgency=medium
* Bug Fixed
-- Sukchan Lee <acetcom@gmail.com> Mon, 23 Jan 2023 10:57:23 +0900
open5gs (2.5.8~jammy) jammy; urgency=medium
* Bug Fixed
-- Sukchan Lee <acetcom@gmail.com> Mon, 23 Jan 2023 10:55:19 +0900
open5gs (2.5.8~bionic) bionic; urgency=medium
* Bug Fixed
-- Sukchan Lee <acetcom@gmail.com> Mon, 23 Jan 2023 10:53:56 +0900
open5gs (2.5.8~focal) focal; urgency=medium
* Bug Fixed
-- Sukchan Lee <acetcom@gmail.com> Mon, 23 Jan 2023 10:52:22 +0900
open5gs (2.5.7) unstable; urgency=medium
* Bug Fixed
-- Sukchan Lee <acetcom@gmail.com> Sat, 14 Jan 2023 11:18:40 +0900
open5gs (2.5.7~kinetic) kinetic; urgency=medium
* Bug Fixed
-- Sukchan Lee <acetcom@gmail.com> Sat, 14 Jan 2023 11:17:17 +0900
open5gs (2.5.7~jammy) jammy; urgency=medium
* Bug Fixed
-- Sukchan Lee <acetcom@gmail.com> Sat, 14 Jan 2023 11:15:53 +0900
open5gs (2.5.7~bionic) bionic; urgency=medium
* Bug Fixed
-- Sukchan Lee <acetcom@gmail.com> Sat, 14 Jan 2023 11:14:32 +0900
open5gs (2.5.7~focal) focal; urgency=medium
* Bug Fixed
-- Sukchan Lee <acetcom@gmail.com> Sat, 14 Jan 2023 11:12:57 +0900
open5gs (2.5.6) unstable; urgency=medium
* New NF - SCP(Service Communication Proxy)
-- Sukchan Lee <acetcom@gmail.com> Fri, 18 Nov 2022 23:24:32 +0900
open5gs (2.5.6~jammy5) jammy; urgency=medium
* New NF - SCP(Service Communication Proxy)
-- Sukchan Lee <acetcom@gmail.com> Fri, 18 Nov 2022 23:23:07 +0900
open5gs (2.5.6~kinetic3) kinetic; urgency=medium
* New NF - SCP(Service Communication Proxy)
-- Sukchan Lee <acetcom@gmail.com> Fri, 18 Nov 2022 23:21:16 +0900
open5gs (2.5.6~bionic3) bionic; urgency=medium
* New NF - SCP(Service Communication Proxy)
-- Sukchan Lee <acetcom@gmail.com> Fri, 18 Nov 2022 23:18:33 +0900
open5gs (2.5.6~focal3) focal; urgency=medium
* New NF - SCP(Service Communication Proxy)
-- Sukchan Lee <acetcom@gmail.com> Fri, 18 Nov 2022 23:17:05 +0900
open5gs (2.4.11) unstable; urgency=medium
* Bug Fixed
-- Sukchan Lee <acetcom@gmail.com> Sat, 01 Oct 2022 13:51:50 +0900
open5gs (2.4.11~jammy) jammy; urgency=medium
* Bug Fixed
-- Sukchan Lee <acetcom@gmail.com> Sat, 01 Oct 2022 13:50:11 +0900
open5gs (2.4.11~focal) focal; urgency=medium
* Bug Fixed
-- Sukchan Lee <acetcom@gmail.com> Sat, 01 Oct 2022 13:48:49 +0900
open5gs (2.4.11~bionic) bionic; urgency=medium
* Bug Fixed
-- Sukchan Lee <acetcom@gmail.com> Sat, 01 Oct 2022 13:47:02 +0900
open5gs (2.4.10) unstable; urgency=medium
* Bug Fixed
-- Sukchan Lee <acetcom@gmail.com> Fri, 09 Sep 2022 09:36:48 +0900
open5gs (2.4.10~jammy) jammy; urgency=medium
* Bug Fixed
-- Sukchan Lee <acetcom@gmail.com> Fri, 09 Sep 2022 09:35:23 +0900
open5gs (2.4.10~focal) focal; urgency=medium
* Bug Fixed
-- Sukchan Lee <acetcom@gmail.com> Fri, 09 Sep 2022 09:34:00 +0900
open5gs (2.4.10~bionic) bionic; urgency=medium
* Bug Fixed
-- Sukchan Lee <acetcom@gmail.com> Fri, 09 Sep 2022 09:30:16 +0900
open5gs (2.4.9) unstable; urgency=medium
* Bug Fixed
-- Sukchan Lee <acetcom@gmail.com> Mon, 25 Jul 2022 20:49:38 +0900
open5gs (2.4.9~jammy) jammy; urgency=medium
* Bug Fixed
-- Sukchan Lee <acetcom@gmail.com> Mon, 25 Jul 2022 20:48:36 +0900
open5gs (2.4.9~focal) focal; urgency=medium
* Bug Fixed
-- Sukchan Lee <acetcom@gmail.com> Mon, 25 Jul 2022 20:47:16 +0900
open5gs (2.4.9~bionic) bionic; urgency=medium
* Bug Fixed
-- Sukchan Lee <acetcom@gmail.com> Mon, 25 Jul 2022 20:45:33 +0900
open5gs (2.4.8) unstable; urgency=medium
* Bug Fixed
-- Sukchan Lee <acetcom@gmail.com> Sun, 12 Jun 2022 16:28:51 +0900
open5gs (2.4.8~jammy) jammy; urgency=medium
* Bug Fixed
-- Sukchan Lee <acetcom@gmail.com> Sun, 12 Jun 2022 16:27:13 +0900
open5gs (2.4.8~focal) focal; urgency=medium
* Bug Fixed
-- Sukchan Lee <acetcom@gmail.com> Sun, 12 Jun 2022 16:23:05 +0900
open5gs (2.4.8~bionic) bionic; urgency=medium
* Bug Fixed
-- Sukchan Lee <acetcom@gmail.com> Sun, 12 Jun 2022 16:22:04 +0900
open5gs (2.4.8~impish) impish; urgency=medium
* Bug Fixed
-- Sukchan Lee <acetcom@gmail.com> Sun, 12 Jun 2022 16:19:27 +0900
open5gs (2.4.7) unstable; urgency=medium
* Bug Fixed

13
debian/control vendored
View File

@@ -165,6 +165,18 @@ Description: NRF (Network Repository Function)
.
This package provides the NRF (Network Repository Function)
Package: open5gs-scp
Architecture: any
Multi-Arch: same
Depends: ${shlibs:Depends},
${misc:Depends},
open5gs-common (= ${binary:Version})
Description: SCP (Network Repository Function)
Open5GS is a C-language implementation of 5G Core and EPC
Packet Core, i.e. the core network of an NR/LTE network (Release-16)
.
This package provides the SCP (Service Communication Proxy)
Package: open5gs-ausf
Architecture: any
Multi-Arch: same
@@ -251,6 +263,7 @@ Depends: ${misc:Depends},
open5gs-hss (= ${binary:Version}),
open5gs-pcrf (= ${binary:Version}),
open5gs-nrf (= ${binary:Version}),
open5gs-scp (= ${binary:Version}),
open5gs-ausf (= ${binary:Version}),
open5gs-udm (= ${binary:Version}),
open5gs-pcf (= ${binary:Version}),

View File

@@ -3,4 +3,3 @@ usr/lib/*/libfd*.so*
usr/lib/*/freeDiameter/*.fdx
configs/freeDiameter/cacert.pem /etc/freeDiameter
configs/logrotate/open5gs /etc/logrotate.d
misc/db/open5gs-dbctl /usr/bin

View File

@@ -20,17 +20,17 @@ set -e
case "$1" in
configure)
# create a open5gs group and user
if ! getent passwd open5gs >/dev/null; then
adduser --system --disabled-password --disabled-login \
--home /var/run/open5gs --no-create-home \
--quiet --group open5gs
fi
for dir in /var/log/open5gs; do
if ! dpkg-statoverride --list "$dir" >/dev/null 2>&1; then
dpkg-statoverride --update --add open5gs open5gs 0755 "$dir"
fi
done
# create a open5gs group and user
if ! getent passwd open5gs >/dev/null; then
adduser --system --disabled-password --disabled-login \
--home /var/run/open5gs --no-create-home \
--quiet --group open5gs
fi
for dir in /var/log/open5gs; do
if ! dpkg-statoverride --list "$dir" >/dev/null 2>&1; then
dpkg-statoverride --update --add open5gs open5gs 0755 "$dir"
fi
done
;;
abort-upgrade|abort-remove|abort-deconfigure)

3
debian/open5gs-scp.install vendored Normal file
View File

@@ -0,0 +1,3 @@
usr/bin/open5gs-scpd
configs/open5gs/scp.yaml etc/open5gs
configs/systemd/open5gs-scpd.service lib/systemd/system

View File

@@ -20,18 +20,20 @@ set -e
case "$1" in
configure)
if test "x`sysctl -n net.ipv6.conf.all.disable_ipv6`" = x1; then
echo "net.ipv6.conf.all.disable_ipv6=0" > /etc/sysctl.d/30-open5gs.conf
sysctl -p /etc/sysctl.d/30-open5gs.conf
fi
if test "x`systemctl is-enabled systemd-networkd`" = xdisabled; then
systemctl enable systemd-networkd
fi
deb-systemd-invoke restart systemd-networkd
if test -f /etc/sysctl.d/30-open5gs.conf && grep "ogstun" /proc/net/dev > /dev/null; then
echo "net.ipv6.conf.ogstun.disable_ipv6=0" > /etc/sysctl.d/30-open5gs.conf
sysctl -p /etc/sysctl.d/30-open5gs.conf
fi
if test "x`sysctl -n net.ipv6.conf.all.disable_ipv6`" = x1; then
echo "net.ipv6.conf.all.disable_ipv6=0" > /etc/sysctl.d/30-open5gs.conf
sysctl -p /etc/sysctl.d/30-open5gs.conf
fi
if test "x`systemctl is-enabled systemd-networkd`" = xdisabled; then
systemctl enable systemd-networkd
fi
if test -d "/run/systemd"; then
deb-systemd-invoke restart systemd-networkd
fi
if test -f /etc/sysctl.d/30-open5gs.conf && grep "ogstun" /proc/net/dev > /dev/null; then
echo "net.ipv6.conf.ogstun.disable_ipv6=0" > /etc/sysctl.d/30-open5gs.conf
sysctl -p /etc/sysctl.d/30-open5gs.conf
fi
;;
abort-upgrade|abort-remove|abort-deconfigure)

View File

@@ -24,7 +24,7 @@ case "$1" in
if grep "ogstun" /proc/net/dev > /dev/null; then
ip tuntap del name ogstun mode tun
fi
rm -f /etc/sysctl.d/30-open5gs.conf
rm -f /etc/sysctl.d/30-open5gs.conf
;;
remove|upgrade|failed-upgrade|abort-install|abort-upgrade|disappear)

View File

@@ -1,52 +1,32 @@
Docker running example
===========================================
* Build Image
* Development
`$ docker-compose build`
`$ docker compose run dev`
* Development
* Run WebUI
`$ docker-compose run dev`
* Runtime
```
$ docker-compose \
-f docker-compose.yml -f docker-compose.run.yml run run
```
`$ docker-compose up webui`
* Test
```
$ docker-compose \
-f docker-compose.yml -f docker-compose.test.yml run test
```
* Test(ubuntu:artful)
```
$ TAG=eoan docker-compose build
$ TAG=eoan docker-compose \
-f docker-compose.yml -f docker-compose.test.yml run test
```
`$ docker compose run test`
* Test(ubuntu:focal)
`$ TAG=focal docker compose run test`
* Development(fedora:latest)
```
$ DIST=fedora docker-compose build
$ DIST=fedora docker-compose run dev
```
* Runtime(debian:jessie)
```
$ DIST=debian TAG=stretch docker-compose build
$ DIST=debian TAG=stretch docker-compose
-f docker-compose.yml -f docker-compose.run.yml run run
```
`$ DIST=fedora docker compose run dev`
* All Test with All Environment
`$ ./check.sh`
* Run WebUI
`$ docker-compose up -d`
* Runtime
`$ docker compose run run`
For OpenSUSE Build Service Release
===========================================
@@ -100,8 +80,18 @@ export DEBEMAIL='acetcom@gmail.com'
* Version Change
```
$ vi meson.build
$ ./misc/git-version-gen . > .tarball-version 2>/dev/null
$ cat ./meson.build
$ cat ./webui/package.json
$ cat ./webui/package-lock.json
$ cat ./docs/assets/webui/install
```
* New NF
```
$ cat debian/control
$ cat configs/systemd/open5gs-scpd.service.in
$ cat configs/logrotate/open5gs.in
$ cat configs/newsyslog/open5gs.conf.in
```
* Upload OpenBuildService

View File

@@ -5,15 +5,11 @@ FROM ${username}/${dist}-${tag}-open5gs-base
MAINTAINER Sukchan Lee <acetcom@gmail.com>
WORKDIR /root
COPY setup.sh /root
WORKDIR /open5gs
COPY docker/build/setup.sh /root
COPY ./ /open5gs
ARG USER=open5gs
ARG REPO=open5gs
ARG BRANCH=main
RUN git clone https://github.com/$USER/$REPO
ADD https://api.github.com/repos/$USER/$REPO/git/refs/heads/$BRANCH /root/open5gs-ver.json
ADD https://github.com/ufoscout/docker-compose-wait/releases/download/2.9.0/wait /wait
RUN chmod +x /wait
RUN cd $REPO && \
git fetch && git checkout -f -B $BRANCH origin/$BRANCH && \
meson build && ninja -C build install
RUN meson build && ninja -C build install

View File

@@ -1,15 +1,9 @@
#!/bin/sh
docker-compose build
docker-compose -f docker-compose.yml -f docker-compose.test.yml run --rm test
TAG=bionic docker-compose build
TAG=bionic docker-compose -f docker-compose.yml -f docker-compose.test.yml run --rm test
DIST=fedora TAG=32 docker-compose build
DIST=fedora TAG=32 docker-compose -f docker-compose.yml -f docker-compose.test.yml run --rm test
DIST=debian docker-compose build
DIST=debian docker-compose -f docker-compose.yml -f docker-compose.test.yml run --rm test
docker compose run --rm test
TAG=focal docker compose run --rm test
DIST=fedora docker compose run --rm test
DIST=debian docker compose run --rm test
#DIST=alpine docker compose run --rm test
docker rm $(docker ps -qa --no-trunc --filter "status=exited")

View File

@@ -1,22 +0,0 @@
version: '3'
services:
run:
network_mode: "host"
image: ${USER}/${DIST-ubuntu}-${TAG-latest}-open5gs-build
depends_on:
- mongodb
- build
cap_add:
- NET_ADMIN
devices:
- "/dev/net/tun:/dev/net/tun"
sysctls:
- net.ipv6.conf.all.disable_ipv6=0
volumes:
- config:/etc/open5gs
hostname: open5gs-run
command: /bin/bash -c "/root/setup.sh; /usr/bin/open5gs-pcrfd -D; /usr/bin/open5gs-pgwd -D; /usr/bin/open5gs-sgwd -D; /usr/bin/open5gs-hssd -D; /usr/bin/open5gs-mmed"
volumes:
config: {}

View File

@@ -1,18 +0,0 @@
version: '3'
services:
test:
image: ${USER}/${DIST-ubuntu}-${TAG-latest}-open5gs-build
depends_on:
- mongodb
- build
environment:
DB_URI: mongodb://mongodb/open5gs
cap_add:
- NET_ADMIN
devices:
- "/dev/net/tun:/dev/net/tun"
sysctls:
- net.ipv6.conf.all.disable_ipv6=0
hostname: open5gs-test
command: /bin/bash -c "/root/setup.sh; cd open5gs/build && meson test -v"

View File

@@ -6,21 +6,24 @@ services:
container_name: open5gs-mongodb
ports:
- "27017:27017"
restart: unless-stopped
volumes:
- mongodb:/data/db
- ../docs/assets/webui/mongo-init.js:/docker-entrypoint-initdb.d/mongo-init.js:ro
webui:
build: webui
build:
context: ../
dockerfile: docker/webui/Dockerfile
image: ${USER}/open5gs-webui
container_name: open5gs-webui
depends_on:
- mongodb
ports:
- "3000:3000"
depends_on:
- mongodb
environment:
DB_URI: mongodb://mongodb/open5gs
- DB_URI=mongodb://mongodb/open5gs
- WAIT_HOSTS=mongodb:27017
base:
build:
@@ -33,7 +36,8 @@ services:
build:
build:
context: ./build
context: ../
dockerfile: docker/build/Dockerfile
args:
dist: ${DIST-ubuntu}
tag: ${TAG-latest}
@@ -43,6 +47,40 @@ services:
- base
command: /bin/bash -c "echo 'build' services"
run:
# network_mode: "host"
image: ${USER}/${DIST-ubuntu}-${TAG-latest}-open5gs-build
depends_on:
- mongodb
- build
cap_add:
- NET_ADMIN
devices:
- "/dev/net/tun:/dev/net/tun"
sysctls:
- net.ipv6.conf.all.disable_ipv6=0
volumes:
- config:/etc/open5gs
hostname: open5gs-run
# command: /bin/bash -c "/root/setup.sh; /usr/bin/open5gs-pcrfd -D; /usr/bin/open5gs-pgwd -D; /usr/bin/open5gs-sgwd -D; /usr/bin/open5gs-hssd -D; /usr/bin/open5gs-mmed"
test:
image: ${USER}/${DIST-ubuntu}-${TAG-latest}-open5gs-build
depends_on:
- mongodb
- build
environment:
- DB_URI=mongodb://mongodb/open5gs
- WAIT_HOSTS=mongodb:27017
cap_add:
- NET_ADMIN
devices:
- "/dev/net/tun:/dev/net/tun"
sysctls:
- net.ipv6.conf.all.disable_ipv6=0
hostname: open5gs-test
command: /bin/bash -c "/root/setup.sh; cd /open5gs/build && /wait && meson test -v"
dev:
build:
context: ./${DIST-ubuntu}/${TAG-latest}/dev
@@ -82,3 +120,4 @@ services:
volumes:
mongodb: {}
home: {}
config: {}

View File

@@ -1,21 +1,16 @@
FROM node:carbon
FROM node:19
MAINTAINER Sukchan Lee <acetcom@gmail.com>
ARG PACKAGE=open5gs
ARG VERSION=2.2.6
RUN set -e; \
cd /usr/src; \
rm -rf ./$PACKAGE; \
curl -SLO "https://github.com/open5gs/$PACKAGE/archive/v$VERSION.tar.gz"; \
tar -xvf v$VERSION.tar.gz; \
mv ./$PACKAGE-$VERSION/ ./$PACKAGE;
COPY webui /usr/src/open5gs/webui
WORKDIR /usr/src/open5gs/webui
RUN npm install && \
RUN npm clean-install && \
npm run build
CMD npm run start
ADD https://github.com/ufoscout/docker-compose-wait/releases/download/2.9.0/wait /wait
RUN chmod +x /wait
CMD /wait && npm run start
EXPOSE 3000

View File

@@ -22,7 +22,7 @@ baseurl: "/open5gs" # the subpath of your site, e.g. /blog
url: "https://open5gs.org" # the base hostname & protocol for your site, e.g. http://example.com
author: "Sukchan Lee"
github_username: open5gs
google_analytics: UA-139225646-2
google_analytics: G-12MQZTB3JH
# Build settings
markdown: kramdown

View File

@@ -44,18 +44,19 @@ All of these Open5GS components have config files. Each config file contains the
#### 5G SA Core
The Open5GS 5G SA Core contains the following functions:
* NRF - NF Repository Function
* SCP - Service Communication Proxy
* AMF - Access and Mobility Management Function
* SMF - Session Management Function
* UPF - User Plane Function
* AUSF - Authentication Server Function
* NRF - NF Repository Function
* UDM - Unified Data Management
* UDR - Unified Data Repository
* PCF - Policy and Charging Function
* NSSF - Network Slice Selection Function
* BSF - Binding Support Function
The 5G SA core works in a different way to the 4G core - it uses a **Service Based Architecture** (SBI). **Control plane** functions are configured to register with the NRF, and the NRF then helps them discover the other core functions. Running through the other functions: The AMF handles connection and mobility management; a subset of what the 4G MME is tasked with. gNBs (5G basestations) connect to the AMF. The UDM, AUSF and UDR carry out similar operations as the 4G HSS, generating SIM authentication vectors and holding the subscriber profile. Session management is all handled by the SMF (previously the responsibility of the 4G MME/ SGWC/ PGWC). The NSSF provides a way to select the network slice. Finally there is the PCF, used for charging and enforcing subscriber policies.
The 5G SA core works in a different way to the 4G core - it uses a **Service Based Architecture** (SBI). **Control plane** functions are configured to register with the NRF, and the NRF then helps them discover the other core functions. Running through the other functions: The AMF handles connection and mobility management; a subset of what the 4G MME is tasked with. gNBs (5G basestations) connect to the AMF. The UDM, AUSF and UDR carry out similar operations as the 4G HSS, generating SIM authentication vectors and holding the subscriber profile. Session management is all handled by the SMF (previously the responsibility of the 4G MME/ SGWC/ PGWC). The NSSF provides a way to select the network slice, and PCF is used for charging and enforcing subscriber policies. Finally there is the SCP that enable indirect communication.
The 5G SA core **user plane** is much simpler, as it only contains a single function. The UPF carries user data packets between the gNB and the external WAN. It connects back to the SMF too.
@@ -70,14 +71,36 @@ With the exception of the SMF and UPF, all config files for the 5G SA core funct
**Note:** Nighly builds are offered by [Osmocom](https://osmocom.org) on [OBS](https://build.opensuse.org/package/show/network:osmocom:nightly/open5gs). Scroll down to use a nightly build package.
{: .notice--warning}
#### Getting MongoDB
---
Import the public key used by the package management system.
```bash
$ sudo apt update
$ sudo apt install wget gnupg
$ wget -qO - https://www.mongodb.org/static/pgp/server-6.0.asc | sudo apt-key add -
```
Create the list file /etc/apt/sources.list.d/mongodb-org-6.0.list for your version of Ubuntu.
```bash
$ echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/6.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-6.0.list
```
Install the MongoDB packages.
```bash
$ sudo apt update
$ sudo apt-get install -y mongodb-org
$ sudo systemctl start mongod (if '/usr/bin/mongod' is not running)
$ sudo systemctl enable mongod (ensure to automatically start it on system boot)
```
#### Ubuntu
*Ubuntu* makes it easy to install Open5GS as shown below.
```bash
$ sudo apt update
$ sudo apt install software-properties-common
$ sudo add-apt-repository ppa:open5gs/latest
$ sudo apt update
$ sudo apt install open5gs
@@ -90,13 +113,9 @@ The Open5GS packages for Debian are available on [OBS](https://build.opensuse.or
```bash
$ sudo apt update
$ sudo apt install wget gnupg
$ wget -qO - https://www.mongodb.org/static/pgp/server-4.2.asc | sudo apt-key add -
$ echo "deb http://repo.mongodb.org/apt/debian buster/mongodb-org/4.2 main" | sudo tee /etc/apt/sources.list.d/mongodb-org.list
$ wget -qO - https://download.opensuse.org/repositories/home:/acetcom:/open5gs:/latest/Debian_10/Release.key | sudo apt-key add -
$ sudo sh -c "echo 'deb http://download.opensuse.org/repositories/home:/acetcom:/open5gs:/latest/Debian_10/ ./' > /etc/apt/sources.list.d/open5gs.list"
$ sudo apt update
$ sudo apt install mongodb-org
$ sudo apt install open5gs
```
@@ -115,16 +134,6 @@ https://download.opensuse.org/repositories/home:/acetcom:/open5gs:/latest/xUbunt
https://download.opensuse.org/repositories/home:/acetcom:/open5gs:/latest/xUbuntu_22.04/
```
#### openSUSE
[Martin Hauke](https://build.opensuse.org/user/show/mnhauke) packaged Open5GS for *openSUSE* on [OBS](https://build.opensuse.org/package/show/home:mnhauke:open5gs/open5gs).
```bash
$ sudo zypper addrepo -f obs://home:mnhauke:open5gs home:mnhauke:open5gs
$ sudo zypper install mongodb-server mongodb-shell
$ sudo zypper install open5gs
```
#### Nightly Builds
Nightly bulit package are provided by [Osmocom](https://osmocom.org) on [OBS](https://build.opensuse.org/package/show/network:osmocom:nightly/open5gs). On *Ubuntu 20.04* you can install it like this:
@@ -153,6 +162,15 @@ https://download.opensuse.org/repositories/network:/osmocom:/nightly/xUbuntu_21.
https://download.opensuse.org/repositories/network:/osmocom:/nightly/xUbuntu_22.04/
```
#### openSUSE
[Martin Hauke](https://build.opensuse.org/user/show/mnhauke) packaged Open5GS for *openSUSE* on [OBS](https://build.opensuse.org/package/show/home:mnhauke:open5gs/open5gs).
```bash
$ sudo zypper addrepo -f obs://home:mnhauke:open5gs home:mnhauke:open5gs
$ sudo zypper install mongodb-server mongodb-shell
$ sudo zypper install open5gs
```
## 3. Install the WebUI of Open5GS
---
@@ -167,7 +185,7 @@ The WebUI allows you to interactively edit subscriber data. While it is not esse
```bash
$ sudo apt update
$ sudo apt install curl
$ curl -fsSL https://deb.nodesource.com/setup_14.x | sudo -E bash -
$ curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -
$ sudo apt install nodejs
```
@@ -220,6 +238,7 @@ HSS-frDi = 127.0.0.8 :3868 for S6a, Cx
PCRF-frDi = 127.0.0.9 :3868 for Gx
NRF-sbi = 127.0.0.10:7777 for 5G SBI
SCP-sbi = 127.0.1.10:7777 for 5G SBI
AUSF-sbi = 127.0.0.11:7777 for 5G SBI
UDM-sbi = 127.0.0.12:7777 for 5G SBI
PCF-sbi = 127.0.0.13:7777 for 5G SBI
@@ -239,45 +258,49 @@ Modify [/etc/open5gs/mme.yaml](https://github.com/{{ site.github_username }}/ope
```diff
$ diff -u /etc/open5gs/mme.yaml.old /etc/open5gs/mme.yaml
mme:
freeDiameter: /etc/freeDiameter/mme.conf
--- mme.yaml 2020-09-05 20:52:28.648235143 -0400
+++ mme.yaml.new 2020-09-05 20:56:05.434484208 -0400
@@ -253,20 +253,20 @@ mme:
s1ap:
- addr: 127.0.0.2
+ addr: 10.10.0.2 # for external eNB - a local address that can be reached by the eNB
- - addr: 127.0.0.2
+ - addr: 10.10.0.2
gtpc:
- addr: 127.0.0.2
metrics:
addr: 127.0.0.2
port: 9090
gummei:
plmn_id:
- mcc: 901
- mcc: 999
- mnc: 70
+ mcc: 001 # set your PLMN-MCC
+ mnc: 01 # set your PLMN-MNC
+ mcc: 001
+ mnc: 01
mme_gid: 2
mme_code: 1
tai:
plmn_id:
- mcc: 901
- mcc: 999
- mnc: 70
- tac: 1
+ mcc: 001 # set your PLMN-MCC
+ mnc: 01 # set your PLMN-MNC
+ tac: 2 # should match the TAC used by your eNB
+ mcc: 001
+ mnc: 01
tac: 1
security:
integrity_order : [ EIA2, EIA1, EIA0 ]
```
Modify [/etc/open5gs/sgwu.yaml](https://github.com/{{ site.github_username }}/open5gs/blob/main/configs/open5gs/sgwu.yaml.in) to set the GTP-U IP address.
```diff
$ diff -u /etc/open5gs/sgwu.yaml.old /etc/open5gs/sgwu.yaml
--- sgwu.yaml 2020-09-05 20:50:39.393022566 -0400
+++ sgwu.yaml.new 2020-09-05 20:51:06.667838823 -0400
@@ -98,7 +98,7 @@ logger:
#
sgwu:
gtpu:
- addr: 127.0.0.6
+ addr: 10.11.0.6 # for external eNB - a local address that can be reached by the eNB
pfcp:
addr: 127.0.0.6
- - addr: 127.0.0.6
+ - addr: 10.11.0.6
gtpu:
- addr: 127.0.0.6
```
After changing config files, please restart Open5GS daemons.
@@ -298,57 +321,58 @@ Modify [/etc/open5gs/amf.yaml](https://github.com/{{ site.github_username }}/ope
```diff
$ diff -u /etc/open5gs/amf.yaml.old /etc/open5gs/amf.yaml
amf:
sbi:
- addr: 127.0.0.5
port: 7777
--- amf.yaml 2020-09-05 20:52:28.652234967 -0400
+++ amf.yaml.new 2020-09-05 20:55:07.453114885 -0400
@@ -293,26 +293,26 @@ amf:
- addr: 127.0.0.5
port: 7777
ngap:
- - addr: 127.0.0.5
+ - addr: 10.10.0.5 # for external gNB - a local address that can be reached by the gNB
+ - addr: 10.10.0.5
metrics:
addr: 127.0.0.5
port: 9090
guami:
- plmn_id:
- mcc: 901
- mcc: 999
- mnc: 70
+ mcc: 001 # set your PLMN-MCC
+ mnc: 01 # set your PLMN-MNC
+ mcc: 001
+ mnc: 01
amf_id:
region: 2
set: 1
tai:
- plmn_id:
- mcc: 901
- mcc: 999
- mnc: 70
- tac: 1
+ mcc: 001 # set your PLMN-MCC
+ mnc: 01 # set your PLMN-MNC
+ tac: 2 # should match the TAC used by your gNB
+ mcc: 001
+ mnc: 01
tac: 1
plmn_support:
- plmn_id:
- mcc: 901
- mcc: 999
- mnc: 70
+ mcc: 001 # set your PLMN-MCC
+ mnc: 01 # set your PLMN-MNC
+ mcc: 001
+ mnc: 01
s_nssai:
- sst: 1
security:
```
Modify [/etc/open5gs/upf.yaml](https://github.com/{{ site.github_username }}/open5gs/blob/main/configs/open5gs/upf.yaml.in) to set the GTP-U address.
```diff
$ diff -u /etc/open5gs/upf.yaml.old /etc/open5gs/upf.yaml
upf:
--- upf.yaml 2020-09-05 20:52:28.652234967 -0400
+++ upf.yaml.new 2020-09-05 20:52:55.279052142 -0400
@@ -168,7 +168,7 @@ upf:
pfcp:
- addr: 127.0.0.7
gtpu:
- - addr: 127.0.0.7
+ - addr: 10.11.0.7 # for external gNB - a local address that can be reached by the gNB
+ - addr: 10.11.0.7
subnet:
- addr: 10.45.0.1/16
- addr: 2001:db8:cafe::1/48
```
After changing config files, please restart Open5GS daemons.
@@ -379,8 +403,8 @@ To add subscriber information, you can do WebUI operations in the following orde
Enter the subscriber details of your SIM cards using this tool, to save the subscriber profile in the HSS and UDR MongoDB database backend. If you are using test SIMs, the details are normally printed on the card.
**Tip:** Subscribers added with this tool immediately register in the Open5GS HSS/ UDR without the need to restart any daemon.
{: .notice--info}
**Note:** Subscribers added with this tool immediately register in the Open5GS HSS/UDR without the need to restart any daemon. However, if you use the WebUI to change subscriber profile, you must restart the Open5GS AMF/MME daemon for the changes to take effect.
{: .notice--warning}
#### Adding a route for the UE to have WAN connectivity {#UEInternet}
@@ -430,6 +454,21 @@ $ sudo iptables -t nat -A POSTROUTING -s 10.45.0.0/16 ! -o ogstun -j MASQUERADE
$ sudo ip6tables -t nat -A POSTROUTING -s 2001:db8:cafe::/48 ! -o ogstun -j MASQUERADE
```
Optionally, you may consider the settings below for security purposes.
```bash
### Prevent UE's from connecting to the host on which UPF is running
$ sudo iptables -I INPUT -s 10.45.0.0/16 -j DROP
$ sudo ip6tables -I INPUT -s 2001:db8:cafe::/48 -j DROP
### If your core network runs over multiple hosts, you probably want to block
### UE originating traffic from accessing other network functions.
### Replace x.x.x.x/y with the VNFs IP/subnet
$ sudo iptables -I FORWARD -s 10.45.0.0/16 -d x.x.x.x/y -j DROP
```
**Note:** The above assumes you do not have any existing rules in the filter and nat tables. If a program such as docker has already set up rules, you may need to add the Open5GS related rules differently.
{: .notice--danger}
## 5. Turn on your eNB/gNB and UE
---
@@ -467,6 +506,7 @@ $ sudo systemctl stop open5gs-upfd
$ sudo systemctl stop open5gs-hssd
$ sudo systemctl stop open5gs-pcrfd
$ sudo systemctl stop open5gs-nrfd
$ sudo systemctl stop open5gs-scpd
$ sudo systemctl stop open5gs-ausfd
$ sudo systemctl stop open5gs-udmd
$ sudo systemctl stop open5gs-pcfd
@@ -486,6 +526,7 @@ $ sudo systemctl restart open5gs-upfd
$ sudo systemctl restart open5gs-hssd
$ sudo systemctl restart open5gs-pcrfd
$ sudo systemctl restart open5gs-nrfd
$ sudo systemctl restart open5gs-scpd
$ sudo systemctl restart open5gs-ausfd
$ sudo systemctl restart open5gs-udmd
$ sudo systemctl restart open5gs-pcfd
@@ -524,4 +565,3 @@ The WebUI of Open5GS can be removed as follows:
```bash
curl -fsSL {{ site.url }}{{ site.baseurl }}/assets/webui/uninstall | sudo -E bash -
```

View File

@@ -13,15 +13,29 @@ This post explains how to compile and install the source code on **Debian/Ubuntu
### Getting MongoDB
---
Install MongoDB with package manager. It is used as database for NRF/PCF/UDR and PCRF/HSS.
Import the public key used by the package management system.
```bash
$ sudo apt update
$ sudo apt install mongodb
$ sudo systemctl start mongodb (if '/usr/bin/mongod' is not running)
$ sudo systemctl enable mongodb (ensure to automatically start it on system boot)
$ wget -qO - https://www.mongodb.org/static/pgp/server-6.0.asc | sudo apt-key add -
```
Create the list file /etc/apt/sources.list.d/mongodb-org-6.0.list for your version of Ubuntu.
```bash
$ echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/6.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-6.0.list
```
Install the MongoDB packages.
```bash
$ sudo apt update
$ sudo apt-get install -y mongodb-org
$ sudo systemctl start mongod (if '/usr/bin/mongod' is not running)
$ sudo systemctl enable mongod (ensure to automatically start it on system boot)
```
**Tip:** MongoDB is used as database for NRF/PCF/UDR and PCRF/HSS.
{: .notice--info}
### Setting up TUN device (not persistent after rebooting)
---
@@ -97,17 +111,20 @@ Modify [install/etc/open5gs/amf.yaml](https://github.com/{{ site.github_username
```diff
$ diff -u /etc/open5gs/amf.yaml.old /etc/open5gs/amf.yaml
--- amf.yaml 2020-09-05 20:52:28.652234967 -0400
+++ amf.yaml.new 2020-09-05 20:55:07.453114885 -0400
@@ -165,23 +165,23 @@
--- amf.yaml 2020-09-05 20:52:28.652234967 -0400
+++ amf.yaml.new 2020-09-05 20:55:07.453114885 -0400
@@ -293,26 +293,26 @@ amf:
- addr: 127.0.0.5
port: 7777
ngap:
- - addr: 127.0.0.5
+ - addr: 10.10.0.5
metrics:
addr: 127.0.0.5
port: 9090
guami:
- plmn_id:
- mcc: 901
- mcc: 999
- mnc: 70
+ mcc: 001
+ mnc: 01
@@ -116,15 +133,14 @@ $ diff -u /etc/open5gs/amf.yaml.old /etc/open5gs/amf.yaml
set: 1
tai:
- plmn_id:
- mcc: 901
- mcc: 999
- mnc: 70
- tac: 1
+ mcc: 001
+ mnc: 01
+ tac: 2
tac: 1
plmn_support:
- plmn_id:
- mcc: 901
- mcc: 999
- mnc: 70
+ mcc: 001
+ mnc: 01
@@ -136,15 +152,13 @@ $ diff -u /etc/open5gs/amf.yaml.old /etc/open5gs/amf.yaml
Modify [install/etc/open5gs/upf.yaml](https://github.com/{{ site.github_username }}/open5gs/blob/main/configs/open5gs/upf.yaml.in) to set the GTP-U and PFCP IP address.
```diff
$ diff -u /etc/open5gs/upf.yaml.old /etc/open5gs/upf.yaml
--- upf.yaml 2020-09-05 20:52:28.652234967 -0400
+++ upf.yaml.new 2020-09-05 20:52:55.279052142 -0400
@@ -137,9 +137,7 @@
--- upf.yaml 2020-09-05 20:52:28.652234967 -0400
+++ upf.yaml.new 2020-09-05 20:52:55.279052142 -0400
@@ -168,7 +168,7 @@ upf:
pfcp:
- addr: 127.0.0.7
gtpu:
- - addr:
- - 127.0.0.7
- - ::1
- - addr: 127.0.0.7
+ - addr: 10.11.0.7
subnet:
- addr: 10.45.0.1/16
@@ -156,19 +170,20 @@ Modify [install/etc/open5gs/mme.yaml](https://github.com/{{ site.github_username
```diff
$ diff -u /etc/open5gs/mme.yaml.old /etc/open5gs/mme.yaml
--- mme.yaml 2020-09-05 20:52:28.648235143 -0400
+++ mme.yaml.new 2020-09-05 20:56:05.434484208 -0400
@@ -204,20 +204,20 @@
mme:
freeDiameter: /home/acetcom/Documents/git/open5gs/install/etc/freeDiameter/mme.conf
--- mme.yaml 2020-09-05 20:52:28.648235143 -0400
+++ mme.yaml.new 2020-09-05 20:56:05.434484208 -0400
@@ -253,20 +253,20 @@ mme:
s1ap:
- addr: 127.0.0.2
+ addr: 10.10.0.2
- - addr: 127.0.0.2
+ - addr: 10.10.0.2
gtpc:
- addr: 127.0.0.2
metrics:
addr: 127.0.0.2
port: 9090
gummei:
plmn_id:
- mcc: 901
- mcc: 999
- mnc: 70
+ mcc: 001
+ mnc: 01
@@ -176,31 +191,28 @@ $ diff -u /etc/open5gs/mme.yaml.old /etc/open5gs/mme.yaml
mme_code: 1
tai:
plmn_id:
- mcc: 901
- mcc: 999
- mnc: 70
- tac: 1
+ mcc: 001
+ mnc: 01
+ tac: 2
tac: 1
security:
integrity_order : [ EIA1, EIA2, EIA0 ]
ciphering_order : [ EEA0, EEA1, EEA2 ]
integrity_order : [ EIA2, EIA1, EIA0 ]
```
Modify [install/etc/open5gs/sgwu.yaml](https://github.com/{{ site.github_username }}/open5gs/blob/main/configs/open5gs/sgwu.yaml.in) to set the GTP-U IP address.
```diff
$ diff -u /etc/open5gs/sgwu.yaml.old /etc/open5gs/sgwu.yaml
--- sgwu.yaml 2020-09-05 20:50:39.393022566 -0400
+++ sgwu.yaml.new 2020-09-05 20:51:06.667838823 -0400
@@ -51,7 +51,7 @@
--- sgwu.yaml 2020-09-05 20:50:39.393022566 -0400
+++ sgwu.yaml.new 2020-09-05 20:51:06.667838823 -0400
@@ -98,7 +98,7 @@ logger:
#
sgwu:
gtpu:
- addr: 127.0.0.6
+ addr: 10.11.0.6
pfcp:
addr: 127.0.0.6
- - addr: 127.0.0.6
+ - addr: 10.11.0.6
gtpu:
- addr: 127.0.0.6
```
If you modify the config files while Open5GS daemons are running, please restart them
@@ -210,140 +222,164 @@ If you modify the config files while Open5GS daemons are running, please restart
---
```bash
$ ./install/bin/open5gs-mmed
Open5GS daemon v2.1.0
$ ./install/bin/open5gs-nrfd
Open5GS daemon v2.4.11-100-gbea24d7
08/21 22:53:47.328: [app] INFO: Configuration: '/home/acetcom/Documents/git/open5gs/install/etc/open5gs/mme.yaml' (../src/main.c:54)
08/21 22:53:47.328: [app] INFO: File Logging: '/home/acetcom/Documents/git/open5gs/install/var/log/open5gs/mme.log' (../src/main.c:57)
08/21 22:53:47.365: [app] INFO: MME initialize...done (../src/mme/app-init.c:33)
08/21 22:53:47.365: [gtp] INFO: gtp_server() [127.0.0.2]:2123 (../lib/gtp/path.c:32)
08/21 22:53:47.365: [gtp] INFO: gtp_connect() [127.0.0.3]:2123 (../lib/gtp/path.c:59)
08/21 22:53:47.366: [mme] INFO: s1ap_server() [127.0.0.2]:36412 (../src/mme/s1ap-sctp.c:57)
10/22 10:43:43.669: [app] INFO: Configuration: '/home/acetcom/Documents/git/open5gs/install/etc/open5gs/nrf.yaml' (../lib/app/ogs-init.c:126)
10/22 10:43:43.669: [app] INFO: File Logging: '/home/acetcom/Documents/git/open5gs/install/var/log/open5gs/nrf.log' (../lib/app/ogs-init.c:129)
10/22 10:43:43.670: [sbi] INFO: nghttp2_server() [127.0.0.10]:7777 (../lib/sbi/nghttp2-server.c:150)
10/22 10:43:43.670: [sbi] INFO: nghttp2_server() [::1]:7777 (../lib/sbi/nghttp2-server.c:150)
10/22 10:43:43.671: [app] INFO: NRF initialize...done (../src/nrf/app.c:31)
$ ./install/bin/open5gs-sgwcd
Open5GS daemon v2.1.0
$ ./install/bin/open5gs-scpd
Open5GS daemon v2.4.11-100-gbea24d7
08/21 22:54:43.059: [app] INFO: Configuration: '/home/acetcom/Documents/git/open5gs/install/etc/open5gs/sgwc.yaml' (../src/main.c:54)
08/21 22:54:43.059: [app] INFO: File Logging: '/home/acetcom/Documents/git/open5gs/install/var/log/open5gs/sgwc.log' (../src/main.c:57)
08/21 22:54:43.065: [app] INFO: SGW-C initialize...done (../src/sgwc/app.c:31)
08/21 22:54:43.066: [gtp] INFO: gtp_server() [127.0.0.3]:2123 (../lib/gtp/path.c:32)
08/21 22:54:43.066: [pfcp] INFO: pfcp_server() [127.0.0.3]:8805 (../lib/pfcp/path.c:32)
08/21 22:54:43.066: [pfcp] INFO: ogs_pfcp_connect() [127.0.0.6]:8805 (../lib/pfcp/path.c:60)
$ ./install/bin/open5gs-smfd
Open5GS daemon v2.1.0
08/21 22:54:56.000: [app] INFO: Configuration: '/home/acetcom/Documents/git/open5gs/install/etc/open5gs/smf.yaml' (../src/main.c:54)
08/21 22:54:56.000: [app] INFO: File Logging: '/home/acetcom/Documents/git/open5gs/install/var/log/open5gs/smf.log' (../src/main.c:57)
08/21 22:54:56.050: [gtp] INFO: gtp_server() [127.0.0.4]:2123 (../lib/gtp/path.c:32)
08/21 22:54:56.050: [app] INFO: SMF initialize...done (../src/smf/app.c:31)
08/21 22:54:56.050: [gtp] INFO: gtp_server() [::1]:2123 (../lib/gtp/path.c:32)
08/21 22:54:56.050: [pfcp] INFO: pfcp_server() [127.0.0.4]:8805 (../lib/pfcp/path.c:32)
08/21 22:54:56.050: [pfcp] INFO: pfcp_server() [::1]:8805 (../lib/pfcp/path.c:32)
08/21 22:54:56.050: [pfcp] INFO: ogs_pfcp_connect() [127.0.0.7]:8805 (../lib/pfcp/path.c:60)
08/21 22:54:56.051: [sbi] INFO: sbi_server() [127.0.0.4]:7777 (../lib/sbi/server.c:298)
10/22 10:43:45.709: [app] INFO: Configuration: '/home/acetcom/Documents/git/open5gs/install/etc/open5gs/scp.yaml' (../lib/app/ogs-init.c:126)
10/22 10:43:45.709: [app] INFO: File Logging: '/home/acetcom/Documents/git/open5gs/install/var/log/open5gs/scp.log' (../lib/app/ogs-init.c:129)
10/22 10:43:45.711: [sbi] INFO: nghttp2_server() [127.0.1.10]:7777 (../lib/sbi/nghttp2-server.c:150)
10/22 10:43:45.712: [app] INFO: SCP initialize...done (../src/scp/app.c:31)
$ ./install/bin/open5gs-amfd
Open5GS daemon v2.1.0
Open5GS daemon v2.4.11-100-gbea24d7
08/21 22:55:14.015: [app] INFO: Configuration: '/home/acetcom/Documents/git/open5gs/install/etc/open5gs/amf.yaml' (../src/main.c:54)
08/21 22:55:14.015: [app] INFO: File Logging: '/home/acetcom/Documents/git/open5gs/install/var/log/open5gs/amf.log' (../src/main.c:57)
08/21 22:55:14.039: [app] INFO: AMF initialize...done (../src/amf/app.c:33)
08/21 22:55:14.040: [sbi] INFO: sbi_server() [127.0.0.5]:7777 (../lib/sbi/server.c:298)
08/21 22:55:14.040: [amf] INFO: ngap_server() [127.0.0.5]:38412 (../src/amf/ngap-sctp.c:56)
10/22 10:44:01.416: [app] INFO: Configuration: '/home/acetcom/Documents/git/open5gs/install/etc/open5gs/amf.yaml' (../lib/app/ogs-init.c:126)
10/22 10:44:01.416: [app] INFO: File Logging: '/home/acetcom/Documents/git/open5gs/install/var/log/open5gs/amf.log' (../lib/app/ogs-init.c:129)
10/22 10:44:01.419: [sbi] INFO: NF Service [namf-comm] (../lib/sbi/context.c:1401)
10/22 10:44:01.420: [sbi] INFO: nghttp2_server() [127.0.0.5]:7777 (../lib/sbi/nghttp2-server.c:150)
10/22 10:44:01.420: [amf] INFO: ngap_server() [127.0.0.5]:38412 (../src/amf/ngap-sctp.c:61)
10/22 10:44:01.420: [sctp] INFO: AMF initialize...done (../src/amf/app.c:33)
$ ./install/bin/open5gs-sgwud
Open5GS daemon v2.1.0
$ ./install/bin/open5gs-smfd
Open5GS daemon v2.4.11-100-gbea24d7
08/21 22:54:10.357: [app] INFO: Configuration: '/home/acetcom/Documents/git/open5gs/install/etc/open5gs/sgwu.yaml' (../src/main.c:54)
08/21 22:54:10.357: [app] INFO: File Logging: '/home/acetcom/Documents/git/open5gs/install/var/log/open5gs/sgwu.log' (../src/main.c:57)
08/21 22:54:10.360: [pfcp] INFO: pfcp_server() [127.0.0.6]:8805 (../lib/pfcp/path.c:32)
08/21 22:54:10.360: [app] INFO: SGW-U initialize...done (../src/sgwu/app.c:31)
08/21 22:54:10.361: [gtp] INFO: gtp_server() [127.0.0.6]:2152 (../lib/gtp/path.c:32)
10/22 10:44:03.217: [app] INFO: Configuration: '/home/acetcom/Documents/git/open5gs/install/etc/open5gs/smf.yaml' (../lib/app/ogs-init.c:126)
10/22 10:44:03.217: [app] INFO: File Logging: '/home/acetcom/Documents/git/open5gs/install/var/log/open5gs/smf.log' (../lib/app/ogs-init.c:129)
10/22 10:44:03.269: [gtp] INFO: gtp_server() [127.0.0.4]:2123 (../lib/gtp/path.c:30)
10/22 10:44:03.269: [gtp] INFO: gtp_server() [::1]:2123 (../lib/gtp/path.c:30)
10/22 10:44:03.269: [gtp] INFO: gtp_server() [127.0.0.4]:2152 (../lib/gtp/path.c:30)
10/22 10:44:03.269: [gtp] INFO: gtp_server() [::1]:2152 (../lib/gtp/path.c:30)
10/22 10:44:03.269: [pfcp] INFO: pfcp_server() [127.0.0.4]:8805 (../lib/pfcp/path.c:30)
10/22 10:44:03.269: [pfcp] INFO: pfcp_server() [::1]:8805 (../lib/pfcp/path.c:30)
10/22 10:44:03.269: [pfcp] INFO: ogs_pfcp_connect() [127.0.0.7]:8805 (../lib/pfcp/path.c:61)
10/22 10:44:03.269: [sbi] INFO: NF Service [nsmf-pdusession] (../lib/sbi/context.c:1401)
10/22 10:44:03.270: [sbi] INFO: nghttp2_server() [127.0.0.4]:7777 (../lib/sbi/nghttp2-server.c:150)
10/22 10:44:03.270: [app] INFO: SMF initialize...done (../src/smf/app.c:31)
$ ./install/bin/open5gs-upfd
Open5GS daemon v2.1.0
Open5GS daemon v2.4.11-100-gbea24d7
08/21 22:54:21.596: [app] INFO: Configuration: '/home/acetcom/Documents/git/open5gs/install/etc/open5gs/upf.yaml' (../src/main.c:54)
08/21 22:54:21.596: [app] INFO: File Logging: '/home/acetcom/Documents/git/open5gs/install/var/log/open5gs/upf.log' (../src/main.c:57)
08/21 22:54:21.601: [pfcp] INFO: pfcp_server() [127.0.0.7]:8805 (../lib/pfcp/path.c:32)
08/21 22:54:21.601: [app] INFO: UPF initialize...done (../src/upf/app.c:31)
08/21 22:54:21.601: [gtp] INFO: gtp_server() [127.0.0.7]:2152 (../lib/gtp/path.c:32)
08/21 22:54:21.601: [gtp] INFO: gtp_server() [::1]:2152 (../lib/gtp/path.c:32)
10/22 10:44:06.884: [app] INFO: Configuration: '/home/acetcom/Documents/git/open5gs/install/etc/open5gs/upf.yaml' (../lib/app/ogs-init.c:126)
10/22 10:44:06.884: [app] INFO: File Logging: '/home/acetcom/Documents/git/open5gs/install/var/log/open5gs/upf.log' (../lib/app/ogs-init.c:129)
10/22 10:44:06.892: [pfcp] INFO: pfcp_server() [127.0.0.7]:8805 (../lib/pfcp/path.c:30)
10/22 10:44:06.892: [gtp] INFO: gtp_server() [127.0.0.7]:2152 (../lib/gtp/path.c:30)
10/22 10:44:06.892: [app] INFO: UPF initialize...done (../src/upf/app.c:31)
$ ./install/bin/open5gs-hssd
Open5GS daemon v2.1.0
$./install/bin/open5gs-ausfd
Open5GS daemon v2.4.11-100-gbea24d7
08/21 22:57:17.450: [app] INFO: Configuration: '/home/acetcom/Documents/git/open5gs/install/etc/open5gs/hss.yaml' (../src/main.c:54)
08/21 22:57:17.450: [app] INFO: File Logging: '/home/acetcom/Documents/git/open5gs/install/var/log/open5gs/hss.log' (../src/main.c:57)
08/21 22:57:17.451: [dbi] INFO: MongoDB URI: 'mongodb://localhost/open5gs' (../lib/dbi/ogs-mongoc.c:99)
08/21 22:57:17.519: [app] INFO: HSS initialize...done (../src/hss/app-init.c:31)
$ ./install/bin/open5gs-pcrfd
Open5GS daemon v2.1.0
08/21 22:57:45.894: [app] INFO: Configuration: '/home/acetcom/Documents/git/open5gs/install/etc/open5gs/pcrf.yaml' (../src/main.c:54)
08/21 22:57:45.894: [app] INFO: File Logging: '/home/acetcom/Documents/git/open5gs/install/var/log/open5gs/pcrf.log' (../src/main.c:57)
08/21 22:57:45.896: [dbi] INFO: MongoDB URI: 'mongodb://localhost/open5gs' (../lib/dbi/ogs-mongoc.c:99)
08/21 22:57:45.997: [app] INFO: PCRF initialize...done (../src/pcrf/app-init.c:31)
$ ./install/bin/open5gs-nrfd
Open5GS daemon v2.1.0
08/21 22:56:35.472: [app] INFO: Configuration: '/home/acetcom/Documents/git/open5gs/install/etc/open5gs/nrf.yaml' (../src/main.c:54)
08/21 22:56:35.472: [app] INFO: File Logging: '/home/acetcom/Documents/git/open5gs/install/var/log/open5gs/nrf.log' (../src/main.c:57)
08/21 22:56:35.472: [app] INFO: NRF initialize...done (../src/nrf/app.c:31)
08/21 22:56:35.473: [sbi] INFO: sbi_server() [127.0.0.10]:7777 (../lib/sbi/server.c:298)
08/21 22:56:35.473: [sbi] INFO: sbi_server() [::1]:7777 (../lib/sbi/server.c:298
$ ./install/bin/open5gs-ausfd
Open5GS daemon v2.1.0
08/21 22:55:41.899: [app] INFO: Configuration: '/home/acetcom/Documents/git/open5gs/install/etc/open5gs/ausf.yaml' (../src/main.c:54)
08/21 22:55:41.899: [app] INFO: File Logging: '/home/acetcom/Documents/git/open5gs/install/var/log/open5gs/ausf.log' (../src/main.c:57)
08/21 22:55:41.900: [app] INFO: AUSF initialize...done (../src/ausf/app.c:31)
08/21 22:55:41.900: [sbi] INFO: sbi_server() [127.0.0.11]:7777 (../lib/sbi/server.c:298)
10/22 10:44:08.747: [app] INFO: Configuration: '/home/acetcom/Documents/git/open5gs/install/etc/open5gs/ausf.yaml' (../lib/app/ogs-init.c:126)
10/22 10:44:08.747: [app] INFO: File Logging: '/home/acetcom/Documents/git/open5gs/install/var/log/open5gs/ausf.log' (../lib/app/ogs-init.c:129)
10/22 10:44:08.748: [sbi] INFO: NF Service [nausf-auth] (../lib/sbi/context.c:1401)
10/22 10:44:08.749: [sbi] INFO: nghttp2_server() [127.0.0.11]:7777 (../lib/sbi/nghttp2-server.c:150)
10/22 10:44:08.749: [app] INFO: AUSF initialize...done (../src/ausf/app.c:31)
$ ./install/bin/open5gs-udmd
Open5GS daemon v2.1.0
Open5GS daemon v2.4.11-100-gbea24d7
08/21 22:56:02.154: [app] INFO: Configuration: '/home/acetcom/Documents/git/open5gs/install/etc/open5gs/udm.yaml' (../src/main.c:54)
08/21 22:56:02.154: [app] INFO: File Logging: '/home/acetcom/Documents/git/open5gs/install/var/log/open5gs/udm.log' (../src/main.c:57)
08/21 22:56:02.155: [app] INFO: UDM initialize...done (../src/udm/app.c:31)
08/21 22:56:02.155: [sbi] INFO: sbi_server() [127.0.0.12]:7777 (../lib/sbi/server.c:298)
10/22 10:44:10.724: [app] INFO: Configuration: '/home/acetcom/Documents/git/open5gs/install/etc/open5gs/udm.yaml' (../lib/app/ogs-init.c:126)
10/22 10:44:10.724: [app] INFO: File Logging: '/home/acetcom/Documents/git/open5gs/install/var/log/open5gs/udm.log' (../lib/app/ogs-init.c:129)
10/22 10:44:10.726: [sbi] INFO: NF Service [nudm-ueau] (../lib/sbi/context.c:1401)
10/22 10:44:10.726: [sbi] INFO: NF Service [nudm-uecm] (../lib/sbi/context.c:1401)
10/22 10:44:10.726: [sbi] INFO: NF Service [nudm-sdm] (../lib/sbi/context.c:1401)
10/22 10:44:10.727: [sbi] INFO: nghttp2_server() [127.0.0.12]:7777 (../lib/sbi/nghttp2-server.c:150)
10/22 10:44:10.727: [app] INFO: UDM initialize...done (../src/udm/app.c:31)
$ ./install/bin/open5gs-pcfd
Open5GS daemon v2.1.0
$./install/bin/open5gs-pcfd
Open5GS daemon v2.4.11-100-gbea24d7
08/21 22:56:02.154: [app] INFO: Configuration: '/home/acetcom/Documents/git/open5gs/install/etc/open5gs/pcf.yaml' (../src/main.c:54)
08/21 22:56:02.154: [app] INFO: File Logging: '/home/acetcom/Documents/git/open5gs/install/var/log/open5gs/pcf.log' (../src/main.c:57)
08/21 22:56:02.155: [app] INFO: PCF initialize...done (../src/pcf/app.c:31)
08/21 22:56:02.155: [sbi] INFO: sbi_server() [127.0.0.12]:7777 (../lib/sbi/server.c:298)
10/22 10:44:14.265: [app] INFO: Configuration: '/home/acetcom/Documents/git/open5gs/install/etc/open5gs/pcf.yaml' (../lib/app/ogs-init.c:126)
10/22 10:44:14.265: [app] INFO: File Logging: '/home/acetcom/Documents/git/open5gs/install/var/log/open5gs/pcf.log' (../lib/app/ogs-init.c:129)
10/22 10:44:14.269: [dbi] INFO: MongoDB URI: 'mongodb://localhost/open5gs' (../lib/dbi/ogs-mongoc.c:130)
10/22 10:44:14.269: [sbi] INFO: NF Service [npcf-am-policy-control] (../lib/sbi/context.c:1401)
10/22 10:44:14.269: [sbi] INFO: NF Service [npcf-smpolicycontrol] (../lib/sbi/context.c:1401)
10/22 10:44:14.269: [sbi] INFO: NF Service [npcf-policyauthorization] (../lib/sbi/context.c:1401)
10/22 10:44:14.269: [sbi] INFO: nghttp2_server() [127.0.0.13]:7777 (../lib/sbi/nghttp2-server.c:150)
10/22 10:44:14.269: [app] INFO: PCF initialize...done (../src/pcf/app.c:31)
$ ./install/bin/open5gs-nssfd
Open5GS daemon v2.1.0
Open5GS daemon v2.4.11-100-gbea24d7
08/21 22:56:02.154: [app] INFO: Configuration: '/home/acetcom/Documents/git/open5gs/install/etc/open5gs/nssfd.yaml' (../src/main.c:54)
08/21 22:56:02.154: [app] INFO: File Logging: '/home/acetcom/Documents/git/open5gs/install/var/log/open5gs/nssfd.log' (../src/main.c:57)
08/21 22:56:02.155: [app] INFO: NSSF initialize...done (../src/nssfd/app.c:31)
08/21 22:56:02.155: [sbi] INFO: sbi_server() [127.0.0.12]:7777 (../lib/sbi/server.c:298)
10/22 10:44:16.250: [app] INFO: Configuration: '/home/acetcom/Documents/git/open5gs/install/etc/open5gs/nssf.yaml' (../lib/app/ogs-init.c:126)
10/22 10:44:16.250: [app] INFO: File Logging: '/home/acetcom/Documents/git/open5gs/install/var/log/open5gs/nssf.log' (../lib/app/ogs-init.c:129)
10/22 10:44:16.252: [sbi] INFO: NF Service [nnssf-nsselection] (../lib/sbi/context.c:1401)
10/22 10:44:16.252: [sbi] INFO: nghttp2_server() [127.0.0.14]:7777 (../lib/sbi/nghttp2-server.c:150)
10/22 10:44:16.252: [app] INFO: NSSF initialize...done (../src/nssf/app.c:31)
$ ./install/bin/open5gs-bsfd
Open5GS daemon v2.1.0
Open5GS daemon v2.4.11-100-gbea24d7
08/21 22:56:02.154: [app] INFO: Configuration: '/home/acetcom/Documents/git/open5gs/install/etc/open5gs/bsf.yaml' (../src/main.c:54)
08/21 22:56:02.154: [app] INFO: File Logging: '/home/acetcom/Documents/git/open5gs/install/var/log/open5gs/bsf.log' (../src/main.c:57)
08/21 22:56:02.155: [app] INFO: BSF initialize...done (../src/bsf/app.c:31)
08/21 22:56:02.155: [sbi] INFO: sbi_server() [127.0.0.12]:7777 (../lib/sbi/server.c:298)
10/22 10:44:18.836: [app] INFO: Configuration: '/home/acetcom/Documents/git/open5gs/install/etc/open5gs/bsf.yaml' (../lib/app/ogs-init.c:126)
10/22 10:44:18.836: [app] INFO: File Logging: '/home/acetcom/Documents/git/open5gs/install/var/log/open5gs/bsf.log' (../lib/app/ogs-init.c:129)
10/22 10:44:18.837: [sbi] INFO: NF Service [nbsf-management] (../lib/sbi/context.c:1401)
10/22 10:44:18.837: [sbi] INFO: nghttp2_server() [127.0.0.15]:7777 (../lib/sbi/nghttp2-server.c:150)
10/22 10:44:18.837: [app] INFO: BSF initialize...done (../src/bsf/app.c:31)
$ ./install/bin/open5gs-udrd
Open5GS daemon v2.1.0
Open5GS daemon v2.4.11-100-gbea24d7
08/21 22:56:15.810: [app] INFO: Configuration: '/home/acetcom/Documents/git/open5gs/install/etc/open5gs/udr.yaml' (../src/main.c:54)
08/21 22:56:15.810: [app] INFO: File Logging: '/home/acetcom/Documents/git/open5gs/install/var/log/open5gs/udr.log' (../src/main.c:57)
08/21 22:56:15.813: [dbi] INFO: MongoDB URI: 'mongodb://localhost/open5gs' (../lib/dbi/ogs-mongoc.c:99)
08/21 22:56:15.813: [app] INFO: UDR initialize...done (../src/udr/app.c:31)
08/21 22:56:15.813: [sbi] INFO: sbi_server() [127.0.0.13]:7777 (../lib/sbi/server.c:298)
10/22 10:44:24.018: [app] INFO: Configuration: '/home/acetcom/Documents/git/open5gs/install/etc/open5gs/udr.yaml' (../lib/app/ogs-init.c:126)
10/22 10:44:24.018: [app] INFO: File Logging: '/home/acetcom/Documents/git/open5gs/install/var/log/open5gs/udr.log' (../lib/app/ogs-init.c:129)
10/22 10:44:24.021: [dbi] INFO: MongoDB URI: 'mongodb://localhost/open5gs' (../lib/dbi/ogs-mongoc.c:130)
10/22 10:44:24.021: [sbi] INFO: NF Service [nudr-dr] (../lib/sbi/context.c:1401)
10/22 10:44:24.021: [sbi] INFO: nghttp2_server() [127.0.0.20]:7777 (../lib/sbi/nghttp2-server.c:150)
10/22 10:44:24.021: [app] INFO: UDR initialize...done (../src/udr/app.c:31)
$ ./install/bin/open5gs-mmed
Open5GS daemon v2.4.11-100-gbea24d7
10/22 10:44:26.011: [app] INFO: Configuration: '/home/acetcom/Documents/git/open5gs/install/etc/open5gs/mme.yaml' (../lib/app/ogs-init.c:126)
10/22 10:44:26.011: [app] INFO: File Logging: '/home/acetcom/Documents/git/open5gs/install/var/log/open5gs/mme.log' (../lib/app/ogs-init.c:129)
10/22 10:44:26.062: [gtp] INFO: gtp_server() [127.0.0.2]:2123 (../lib/gtp/path.c:30)
10/22 10:44:26.063: [gtp] INFO: gtp_connect() [127.0.0.3]:2123 (../lib/gtp/path.c:60)
10/22 10:44:26.063: [mme] INFO: s1ap_server() [127.0.0.2]:36412 (../src/mme/s1ap-sctp.c:62)
10/22 10:44:26.063: [sctp] INFO: MME initialize...done (../src/mme/app-init.c:33)
$ ./install/bin/open5gs-sgwcd
Open5GS daemon v2.4.11-100-gbea24d7
10/22 10:44:29.050: [app] INFO: Configuration: '/home/acetcom/Documents/git/open5gs/install/etc/open5gs/sgwc.yaml' (../lib/app/ogs-init.c:126)
10/22 10:44:29.050: [app] INFO: File Logging: '/home/acetcom/Documents/git/open5gs/install/var/log/open5gs/sgwc.log' (../lib/app/ogs-init.c:129)
10/22 10:44:29.058: [gtp] INFO: gtp_server() [127.0.0.3]:2123 (../lib/gtp/path.c:30)
10/22 10:44:29.058: [pfcp] INFO: pfcp_server() [127.0.0.3]:8805 (../lib/pfcp/path.c:30)
10/22 10:44:29.058: [pfcp] INFO: ogs_pfcp_connect() [127.0.0.6]:8805 (../lib/pfcp/path.c:61)
10/22 10:44:29.058: [app] INFO: SGW-C initialize...done (../src/sgwc/app.c:31)
$ ./install/bin/open5gs-sgwud
Open5GS daemon v2.4.11-100-gbea24d7
10/22 10:44:36.178: [app] INFO: Configuration: '/home/acetcom/Documents/git/open5gs/install/etc/open5gs/sgwu.yaml' (../lib/app/ogs-init.c:126)
10/22 10:44:36.178: [app] INFO: File Logging: '/home/acetcom/Documents/git/open5gs/install/var/log/open5gs/sgwu.log' (../lib/app/ogs-init.c:129)
10/22 10:44:36.185: [pfcp] INFO: pfcp_server() [127.0.0.6]:8805 (../lib/pfcp/path.c:30)
10/22 10:44:36.185: [gtp] INFO: gtp_server() [127.0.0.6]:2152 (../lib/gtp/path.c:30)
10/22 10:44:36.185: [app] INFO: SGW-U initialize...done (../src/sgwu/app.c:31)
$ ./install/bin/open5gs-hssd
Open5GS daemon v2.4.11-100-gbea24d7
10/22 10:49:22.963: [app] INFO: Configuration: '/home/acetcom/Documents/git/open5gs/install/etc/open5gs/hss.yaml' (../lib/app/ogs-init.c:126)
10/22 10:49:22.963: [app] INFO: File Logging: '/home/acetcom/Documents/git/open5gs/install/var/log/open5gs/hss.log' (../lib/app/ogs-init.c:129)
10/22 10:49:22.965: [dbi] INFO: MongoDB URI: 'mongodb://localhost/open5gs' (../lib/dbi/ogs-mongoc.c:130)
10/22 10:49:22.996: [app] INFO: HSS initialize...done (../src/hss/app-init.c:31)
10/22 10:49:22.997: [diam] INFO: CONNECTED TO 'mme.localdomain' (SCTP,soc#15): (../lib/diameter/common/logger.c:108)
$ ./install/bin/open5gs-pcrfd
Open5GS daemon v2.4.11-100-gbea24d7
10/22 10:49:26.089: [app] INFO: Configuration: '/home/acetcom/Documents/git/open5gs/install/etc/open5gs/pcrf.yaml' (../lib/app/ogs-init.c:126)
10/22 10:49:26.089: [app] INFO: File Logging: '/home/acetcom/Documents/git/open5gs/install/var/log/open5gs/pcrf.log' (../lib/app/ogs-init.c:129)
10/22 10:49:26.091: [dbi] INFO: MongoDB URI: 'mongodb://localhost/open5gs' (../lib/dbi/ogs-mongoc.c:130)
10/22 10:49:26.124: [app] INFO: PCRF initialize...done (../src/pcrf/app-init.c:31)
10/22 10:49:26.125: [diam] INFO: CONNECTED TO 'smf.localdomain' (SCTP,soc#15): (../lib/diameter/common/logger.c:108)
```
Several command line options are provided.
@@ -382,7 +418,7 @@ $ ./build/tests/app/app ## Both 5G Core and EPC with ./build/configs/sample.yaml
```bash
$ sudo apt install curl
$ curl -fsSL https://deb.nodesource.com/setup_14.x | sudo -E bash -
$ curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -
$ sudo apt install nodejs
```
@@ -390,7 +426,7 @@ Install the dependencies to run WebUI
```bash
$ cd webui
$ npm ci --no-optional
$ npm ci
```
The WebUI runs as an [npm](https://www.npmjs.com/) script.
@@ -425,7 +461,7 @@ To add subscriber information, you can do WebUI operations in the following orde
3. Fill the IMSI, security context(K, OPc, AMF), and APN of the subscriber.
4. Click `SAVE` Button
**Tip:** This addition immediately affects Open5GS without restarting any daemon.
**Note:** Subscribers added with this tool immediately register in the Open5GS HSS/UDR without the need to restart any daemon. However, if you use the WebUI to change subscriber profile, you must restart the Open5GS AMF/MME daemon for the changes to take effect.
{: .notice--warning}
### IP routing + NAT for UE internet connectivity
@@ -468,6 +504,19 @@ $ sudo iptables -t nat -A POSTROUTING -s 10.45.0.0/16 ! -o ogstun -j MASQUERADE
$ sudo ip6tables -t nat -A POSTROUTING -s 2001:db8:cafe::/48 ! -o ogstun -j MASQUERADE
```
Optionally, you may consider the settings below for security purposes.
```bash
### Prevent UE's from connecting to the host on which UPF is running
$ sudo iptables -I INPUT -s 10.45.0.0/16 -j DROP
$ sudo ip6tables -I INPUT -s 2001:db8:cafe::/48 -j DROP
### If your core network runs over multiple hosts, you probably want to block
### UE originating traffic from accessing other network functions.
### Replace x.x.x.x/y with the VNFs IP/subnet
$ sudo iptables -I FORWARD -s 10.45.0.0/16 -d x.x.x.x/y -j DROP
```
**Note:** The above assumes you do not have any existing rules in the filter and nat tables. If a program such as docker has already set up rules, you may need to add the Open5GS related rules differently.
{: .notice--danger}
@@ -534,32 +583,37 @@ You can use the command line option[`-d`] to record more logs.
```bash
$ ./tests/app/app -d
Open5GS daemon v1.3.0-213-gd190548+
Open5GS daemon v2.4.11-100-gbea24d7
08/21 23:01:54.246: [app] INFO: Configuration: '/home/acetcom/Documents/git/open5gs/build/configs/sample.yaml' (../src/main.c:54)
08/21 23:01:54.246: [thread] DEBUG: [0x7f8de4d25018] worker signal (../lib/core/ogs-thread.c:66)
08/21 23:01:54.246: [thread] DEBUG: [0x7f8de4d25018] thread started (../lib/core/ogs-thread.c:101)
Open5GS daemon v1.3.0-213-gd190548+
08/21 23:01:54.254: [app] INFO: Configuration: '/home/acetcom/Documents/git/open5gs/build/configs/sample.yaml' (../src/main.c:54)
08/21 23:01:54.254: [thread] DEBUG: [0x7ff8d13be818] worker signal (../lib/core/ogs-thread.c:66)
08/21 23:01:54.254: [nrf] DEBUG: nrf_state_initial(): INIT (../src/nrf/nrf-sm.c:25)
08/21 23:01:54.254: [nrf] DEBUG: nrf_state_operational(): ENTRY (../src/nrf/nrf-sm.c:50)
08/21 23:01:54.254: [thread] DEBUG: [0x7ff8d13be818] thread started (../lib/core/ogs-thread.c:101)
08/21 23:01:54.254: [app] INFO: NRF initialize...done (../src/nrf/app.c:31)
08/21 23:01:54.255: [sbi] INFO: sbi_server() [127.0.0.10]:7777 (../lib/sbi/server.c:298)
08/21 23:01:54.255: [sbi] INFO: sbi_server() [::1]:7777 (../lib/sbi/server.c:298)
08/21 23:01:54.296: [thread] DEBUG: [0x7f8de4d25098] worker signal (../lib/core/ogs-thread.c:66)
08/21 23:01:54.296: [thread] DEBUG: [0x7f8de4d25098] thread started (../lib/core/ogs-thread.c:101)
Open5GS daemon v1.3.0-213-gd190548+
08/21 23:01:54.315: [app] INFO: Configuration: '/home/acetcom/Documents/git/open5gs/build/configs/sample.yaml' (../src/main.c:54)
08/21 23:01:54.319: [dbi] INFO: MongoDB URI: 'mongodb://localhost/open5gs' (../lib/dbi/ogs-mongoc.c:99)
08/21 23:01:54.332: [app] INFO: PCRF initialize...done (../src/pcrf/app-init.c:31)
08/21 23:01:54.347: [thread] DEBUG: [0x7f8de4d25118] worker signal (../lib/core/ogs-thread.c:66)
08/21 23:01:54.347: [thread] DEBUG: [0x7f8de4d25118] thread started (../lib/core/ogs-thread.c:101)
Open5GS daemon v1.3.0-213-gd190548+
10/22 10:59:03.813: [app] INFO: Configuration: '/home/acetcom/Documents/git/open5gs/build/configs/sample.yaml' (../lib/app/ogs-init.c:126)
10/22 10:59:03.813: [thread] DEBUG: [0x55fab86aff40] worker signal (../lib/core/ogs-thread.c:66)
10/22 10:59:03.813: [thread] DEBUG: [0x55fab86aff40] thread started (../lib/core/ogs-thread.c:101)
Open5GS daemon v2.4.11-100-gbea24d7
10/22 10:59:03.818: [app] INFO: Configuration: '/home/acetcom/Documents/git/open5gs/build/configs/sample.yaml' (../lib/app/ogs-init.c:126)
10/22 10:59:03.819: [sock] DEBUG: addr:127.0.0.10, port:7777 (../lib/core/ogs-sockaddr.c:140)
10/22 10:59:03.819: [sock] DEBUG: addr:::1, port:7777 (../lib/core/ogs-sockaddr.c:140)
10/22 10:59:03.819: [sock] DEBUG: addr:127.0.1.10, port:7777 (../lib/core/ogs-sockaddr.c:140)
10/22 10:59:03.819: [sock] DEBUG: socket create(2:1:6) (../lib/core/ogs-socket.c:92)
10/22 10:59:03.819: [sock] DEBUG: Turn on TCP_NODELAY (../lib/core/ogs-sockopt.c:139)
10/22 10:59:03.819: [sock] DEBUG: Turn on SO_REUSEADDR (../lib/core/ogs-sockopt.c:120)
10/22 10:59:03.819: [sock] DEBUG: socket bind 127.0.0.10:7777 (../lib/core/ogs-socket.c:117)
10/22 10:59:03.819: [sock] DEBUG: tcp_server() [127.0.0.10]:7777 (../lib/core/ogs-tcp.c:60)
10/22 10:59:03.819: [sbi] INFO: nghttp2_server() [127.0.0.10]:7777 (../lib/sbi/nghttp2-server.c:150)
10/22 10:59:03.819: [sock] DEBUG: socket create(10:1:6) (../lib/core/ogs-socket.c:92)
10/22 10:59:03.819: [sock] DEBUG: Turn on TCP_NODELAY (../lib/core/ogs-sockopt.c:139)
10/22 10:59:03.819: [sock] DEBUG: Turn on SO_REUSEADDR (../lib/core/ogs-sockopt.c:120)
10/22 10:59:03.819: [sock] DEBUG: socket bind ::1:7777 (../lib/core/ogs-socket.c:117)
10/22 10:59:03.819: [sock] DEBUG: tcp_server() [::1]:7777 (../lib/core/ogs-tcp.c:60)
10/22 10:59:03.819: [sbi] INFO: nghttp2_server() [::1]:7777 (../lib/sbi/nghttp2-server.c:150)
10/22 10:59:03.819: [thread] DEBUG: [0x5601b141e520] worker signal (../lib/core/ogs-thread.c:66)
10/22 10:59:03.819: [nrf] DEBUG: nrf_state_initial(): INIT (../src/nrf/nrf-sm.c:25)
10/22 10:59:03.819: [nrf] DEBUG: nrf_state_operational(): ENTRY (../src/nrf/nrf-sm.c:50)
10/22 10:59:03.819: [thread] DEBUG: [0x5601b141e520] thread started (../lib/core/ogs-thread.c:101)
10/22 10:59:03.819: [app] INFO: NRF initialize...done (../src/nrf/app.c:31)
10/22 10:59:03.864: [thread] DEBUG: [0x55fab86d2100] worker signal (../lib/core/ogs-thread.c:66)
10/22 10:59:03.864: [thread] DEBUG: [0x55fab86d2100] thread started (../lib/core/ogs-thread.c:101)
Open5GS daemon v2.4.11-100-gbea24d7
...
```

View File

@@ -1,372 +0,0 @@
---
title: Open5GS Splitting Network Functions
head_inline: "<style> .blue { color: blue; } </style>"
---
In a production network, NFs are usually not on the same machine as the default example that comes with Open5GS.
Open5GS is designed to comply with standards, so in theory you can connect core network functions from Open5GS or other vendors to form a functioning network. However, this is only possible if it complies with 3GPP.
To demonstrate this, we will cover how to isolate each network function and connect each network function to another. For some interfaces, you can specify multiple interfaces to connect to multiple interfaces.
In this example, we are connecting the Open5GS NF together, but instead of the Open5GS network function, you can easily connect them like other vendors' NFs.
## 1. Configuring Open5GS (Without other vendors' NFs)
_Cloud Authentication and Session Management Server_
```
MongoDB = 127.0.0.1 (subscriber data) - http://localhost:3000
MME-s1ap = 10.10.0.2 :36412 (authVPN) for S1-MME
MME-gtpc = 127.0.0.2 :2123 for S11
MME-frDi = 127.0.0.2 :3868 for S6a auth
SGWC-gtpc = 127.0.0.3 :2123 for S11
SGWC-pfcp = 10.10.0.3 :8805 (authVPN) for Sxa
SMF-gtpc = 127.0.0.4 :2123 for S5/8c, N11
SMF-pfcp = 10.10.0.4 :8805 (authVPN) for N4
SMF-frDi = 127.0.0.4 :3868 for Gx auth
SMF-sbi = 127.0.0.4 :7777 for 5G SBI (N7,N10,N11)
AMF-ngap = 10.10.0.5 :38412 (authVPN) for N2
AMF-sbi = 127.0.0.5 :7777 for 5G SBI (N8,N12,N11)
HSS-frDi = 127.0.0.8 :3868 for S6a auth
PCRF-frDi = 127.0.0.9 :3868 for Gx auth
NRF-sbi = 127.0.0.10:7777 for 5G SBI
AUSF-sbi = 127.0.0.11:7777 for 5G SBI
UDM-sbi = 127.0.0.12:7777 for 5G SBI
PCF-sbi = 127.0.0.13:7777 for 5G SBI
NSSF-sbi = 127.0.0.14:7777 for 5G SBI
BSF-sbi = 127.0.0.15:7777 for 5G SBI
UDR-sbi = 127.0.0.20:7777 for 5G SBI
```
_Cloud Userplane Server (to host IMS etc)_
```
SGWU-pfcp = 10.10.0.6 :8805 (authVPN) for Sxa
SGWU-gtpu = 10.11.0.6 :2152 (userplaneVPN) for S1-U, S5/8u
UPF-pfcp = 10.10.0.7 :8805 (authVPN) for N4
UPF-gtpu = 10.11.0.7 :2152 (userplaneVPN) for S5/8u, N3
```
You can refer to the network settings at
[{{ site.url }}{{ site.baseurl }}/assets/Open5GS-Diagram.pdf]({{ site.url }}{{ site.baseurl }}/assets/Open5GS-Diagram.pdf) provided by [@kbarlee](https://github.com/kbarlee) in issue [#528](https://github.com/{{ site.github_username }}/open5gs/issues/528)
{: .notice--danger}
Modify [install/etc/open5gs/mme.yaml](https://github.com/{{ site.github_username }}/open5gs/blob/main/configs/open5gs/mme.yaml.in) to set the S1AP IP address, PLMN ID, and TAC.
```diff
$ diff -u /etc/open5gs/mme.yaml.old /etc/open5gs/mme.yaml
--- mme.yaml.old 2020-08-22 11:36:40.512418765 -0400
+++ mme.yaml 2020-08-22 11:36:27.081466682 -0400
@@ -204,20 +204,20 @@
mme:
freeDiameter: /home/acetcom/Documents/git/open5gs/install/etc/freeDiameter/mme.conf
s1ap:
- addr: 127.0.0.2
+ addr: 10.10.0.2
gtpc:
addr: 127.0.0.2
gummei:
plmn_id:
- mcc: 001
- mnc: 01
+ mcc: 901
+ mnc: 70
mme_gid: 2
mme_code: 1
tai:
plmn_id:
- mcc: 001
- mnc: 01
- tac: 7
+ mcc: 901
+ mnc: 70
+ tac: 1
security:
integrity_order : [ EIA1, EIA2, EIA0 ]
ciphering_order : [ EEA0, EEA1, EEA2 ]
```
Modify [install/etc/open5gs/sgwc.yaml](https://github.com/{{ site.github_username }}/open5gs/blob/main/configs/open5gs/sgwc.yaml.in) to set the PFCP IP address.
```diff
$ diff -u /etc/open5gs/sgwc.yaml.old /etc/open5gs/sgwc.yaml
@@ -49,7 +49,7 @@
gtpc:
addr: 127.0.0.3
pfcp:
- addr: 127.0.0.3
+ addr: 10.10.0.3
#
# sgwu:
@@ -100,7 +100,7 @@
#
sgwu:
pfcp:
- addr: 127.0.0.6
+ addr: 10.10.0.6
#
# parameter:
```
Modify [install/etc/open5gs/smf.yaml](https://github.com/{{ site.github_username }}/open5gs/blob/main/configs/open5gs/smf.yaml.in) to set the PFCP IP address.
```diff
$ diff -u /etc/open5gs/smf.yaml.old /etc/open5gs/smf.yaml
--- smf.yaml.old 2020-08-22 11:37:39.990816411 -0400
+++ smf.yaml 2020-08-22 11:38:18.647999952 -0400
@@ -187,8 +187,7 @@
- addr: 127.0.0.4
- addr: ::1
pfcp:
- - addr: 127.0.0.4
- - addr: ::1
+ - addr: 10.10.0.4
subnet:
- addr: 10.45.0.1/16
- addr: 2001:db8:cafe::1/48
@@ -282,7 +281,7 @@
#
upf:
pfcp:
- - addr: 127.0.0.7
+ - addr: 10.10.0.7
#
# parameter:
```
Modify [install/etc/open5gs/amf.yaml](https://github.com/{{ site.github_username }}/open5gs/blob/main/configs/open5gs/amf.yaml.in) to set the NGAP IP address, PLMN ID, TAC and NSSAI.
```diff
diff -u /etc/open5gs/amf.yaml.old /etc/open5gs/amf.yaml
--- amf.yaml.old 2020-06-21 23:34:14.643114779 -0400
+++ amf.yaml 2020-06-21 23:34:28.718482095 -0400
@@ -67,25 +67,25 @@
- addr: 127.0.0.5
port: 7777
ngap:
- - addr: 127.0.0.5
+ - addr: 10.10.0.5
guami:
- plmn_id:
- mcc: 001
- mnc: 01
+ mcc: 901
+ mnc: 70
amf_id:
region: 2
set: 1
tai:
- plmn_id:
- mcc: 001
- mnc: 01
- tac: 7
+ mcc: 901
+ mnc: 70
+ tac: 1
plmn_support:
- plmn_id:
- mcc: 001
- mnc: 01
+ mcc: 901
+ mnc: 70
s_nssai:
- sst: 1
- - sd: 2
security:
integrity_order : [ NIA1, NIA2, NIA0 ]
ciphering_order : [ NEA0, NEA1, NEA2 ]
```
Modify [install/etc/open5gs/sgwu.yaml](https://github.com/{{ site.github_username }}/open5gs/blob/main/configs/open5gs/sgwu.yaml.in) to set the GTP-U and PFCP IP address.
```diff
$ diff -u /etc/open5gs/sgwu.yaml.old /etc/open5gs/sgwu.yaml
--- sgwu.yaml.old 2020-08-22 11:41:09.214670723 -0400
+++ sgwu.yaml 2020-08-22 11:41:27.433937124 -0400
@@ -51,9 +51,9 @@
#
sgwu:
gtpu:
- addr: 127.0.0.6
+ addr: 10.11.0.6
pfcp:
- addr: 127.0.0.6
+ addr: 10.10.0.6
#
# sgwc:
```
Modify [install/etc/open5gs/upf.yaml](https://github.com/{{ site.github_username }}/open5gs/blob/main/configs/open5gs/upf.yaml.in) to set the GTP-U and PFCP IP address.
```diff
$ diff -u /etc/open5gs/upf.yaml.old /etc/open5gs/upf.yaml
--- upf.yaml.old 2020-08-22 11:42:57.781750067 -0400
+++ upf.yaml 2020-08-22 11:43:13.268901616 -0400
@@ -59,11 +59,9 @@
#
upf:
pfcp:
- - addr: 127.0.0.7
+ - addr: 10.10.0.7
gtpu:
- - addr:
- - 127.0.0.7
- - ::1
+ - addr: 10.11.0.7
subnet:
- addr: 10.45.0.1/16
- addr: 2001:db8:cafe::1/48
```
After changing conf files, please restart Open5GS daemons.
```bash
$ sudo systemctl restart open5gs-mmed.service
$ sudo systemctl restart open5gs-sgwcd.service
$ sudo systemctl restart open5gs-smfd.service
$ sudo systemctl restart open5gs-amfd.service
$ sudo systemctl restart open5gs-upfd.service
$ sudo systemctl restart open5gs-sgwud.service
```
## 2. External SMF
In it's simplest form the SMF has 4 interfaces:
* S5 - Connection to home network SGW-C (GTP-C)
* Gx - Connection to PCRF (Diameter)
* SBI - Service-based interface(HTTP2)
* Sgi - Connection to external network (Generally the Internet via standard TCP/IP)
#### S5 Interface Configuration
Edit ```/etc/open5gs/smf.yaml``` and change the address to IP of the server running the SMF for the listener on GTP-C interfaces.
```
smf:
freeDiameter: /etc/freeDiameter/smf.conf
gtpc:
addr:
- 10.0.1.121
```
#### Gx Interface Configuration
Edit ```/etc/freeDiameter/smf.conf```
Update ```ListenOn``` address to IP of the server running the SMF:
``` ListenOn = "10.0.1.121"; ```
Update ConnectPeer to connect to the PCRF on it's IP.
```ConnectPeer = "pcrf.localdomain" { ConnectTo = "10.0.1.123"; No_TLS; };```
#### Restart Services
Restart Open5GS SMF Daemon:
``` $ sudo systemctl restart open5gs-smfd.service ```
## 3. External SGW-C
In it's simplest form the SGW-C has 2 interfaces:
* S11 - Connection to MME (GTP-C)
* S5 - Connection to the home network SMF (GTP-C)
#### S5 Interface Configuration
Edit ```/etc/open5gs/sgwc.yaml``` and change the address to IP of the server running the SGW-C for the listener on GTP-C interface.
```
sgwc:
gtpc:
addr:
- 10.0.1.122
```
Restart Open5GS SGW-C Daemon:
``` $ sudo systemctl restart open5gs-sgwcd.service ```
## 4. External PCRF
In it's simplest from the PCRF has 1 network interface:
* Gx - Connection to SMF (Diameter)
#### Gx Interface Configuration
Edit ```/etc/freeDiameter/pcrf.conf```
Update ```ListenOn``` address to IP of the server running the HSS on it's IP:
``` ListenOn = "10.0.1.123"; ```
Update ConnectPeer to connect to the MME.
```ConnectPeer = "smf.localdomain" { ConnectTo = "10.0.1.121"; No_TLS; };```
#### MongoDB Interface Configuration
Edit the ```db_uri:``` to point at the Open5GS: ```db_uri: mongodb://10.0.1.118/open5gs```
Restart Open5GS PCRF Daemon:
``` $ sudo systemctl restart open5gs-pcrfd.service ```
## 5. External HSS
In it's simplest form the HSS has 1 network interface:
* S6a - Connection to MME (Diameter)
#### S6a Interface Configuration
Edit ```/etc/freeDiameter/hss.conf```
Update ```ListenOn``` address to IP of the server running the HSS on it's IP:
``` ListenOn = "10.0.1.118"; ```
Update ConnectPeer to connect to the MME.
```ConnectPeer = "mme.localdomain" { ConnectTo = "10.0.1.124"; No_TLS; };```
Restart Open5GS HSS Daemon:
``` $ sudo systemctl restart open5gs-hssd.service ```
#### MongoDB Interface Configuration (Open5GS specific)
If you are using Open5GS's HSS you may need to enable MongoDB access from the PCRF. This is done by editing ''/etc/mongodb.conf'' and changing the bind IP to:
``` bind_ip = 0.0.0.0 ```
Restart MongoDB for changes to take effect.
``` $ /etc/init.d/mongodb restart ```
## 6. External MME
In it's simplest form the MME has 3 interfaces:
* S1AP - Connections from eNodeBs
* S6a - Connection to HSS (Diameter)
* S11 - Connection to SGW-C (GTP-C)
#### S11 Interface Configuration
Edit ```/etc/open5gs/mme.yaml``` and filling the IP address of the SGW-C and SMF servers.
```
sgwc:
gtpc:
addr: 10.0.1.122
smf:
gtpc:
addr:
- 10.0.1.121
```
#### S6a Interface Configuration
Edit ```/etc/freeDiameter/mme.conf```
Update ```ListenOn``` address to IP of the server running the MME:
``` ListenOn = "10.0.1.124"; ```
Update ConnectPeer to connect to the PCRF on it's IP.
```ConnectPeer = "hss.localdomain" { ConnectTo = "10.0.1.118"; No_TLS; };```
#### Restart Services
Restart Open5GS MME Daemon:
``` $ sudo systemctl restart open5gs-mmed.service ```

View File

@@ -12,11 +12,16 @@ If you have tested radio hardware from a vendor not listed with Open5GS, please
* Airspan 5G OpenRange vCU + Airspan 5G OpenRange vDU + Airspan 5G OpenRANGE06 AirVelocity 2700 RU
* Airspan AirSpeed 2900
* Airspan AirStrand 2200
* CableFree Small Cell Outdoor radios (5G n77, n78 and other bands)
* CableFree Small Cell Indoor radios (5G n77, n78 and other bands)
* CableFree Macro (BBU+RRH) radios (4G and 5G, various bands)
* Ericsson Baseband 6630 (21.Q3 Software) + Radio 2217, Radio 2219 (4G and 5G, various bands)
* Ericsson StreetMacro 6701 (21.Q3 Software) (5G mmWave, n261) (Baseband 6318 and AIR 1281 packaged together)
* Huawei BTS5900
* LIONS RANathon O-CU and O-DU + RANathon RS8601 Indoor O-RU + RANathon XG8600 Fronthaul Gateway
* NOKIA AEQE (SW: 5G20A)
* NOKIA AEQD (SW: 5G20A)
* NOKIA AEQP (SW: 5G21A)
* Huawei BTS5900
### Commercial 4G
---
@@ -34,7 +39,8 @@ If you have tested radio hardware from a vendor not listed with Open5GS, please
* Baicells Nova 436Q
* Baicells Nova 227 (EBS & CBRS)
* Baicells Nova 233
* Ericsson BaseBand 6630 (21Q1 Software)
* Ericsson Baseband 6630 (21Q1 Software)
* Ericsson RBS 6402 (18.Q1 software, B2 B25 B4 B7 B252 B255)
* Ericsson RBS 6601 + DUL 20 01 + RUS 01 B8
* Gemtek WLTGFC-101 (S/W version 2.1.1746.1116)
* Huawei BTS3900 (S/W version V100R011C10SPC230)
@@ -42,14 +48,16 @@ If you have tested radio hardware from a vendor not listed with Open5GS, please
* Nokia FW2PC BC28 Flexi Zone G2 Outdoor Micro FDD LTE 700 MHz High Power
* Nokia FWH1 B38 Flexi Zone Outdoor Micro TD LTE 2600 MHz
* Nokia FRGY Flexi BTS BBU with Nokia FRCG RRU Band 5 850Mhz FDD 40W. Version 16.1A to 19.0
* Nokia FW2FA Flexi Zone Mini-Macro Outdoor BTS, 2x20w Band 39
* Nokia FWGR Flexi Zone Mini-Macro Outdoor BTS, 2x20w Band 1
* Ruckus Q710 and Q910
### 4G/5G Software Stacks + SDRs
---
* [Amarisoft](https://www.amarisoft.com/) + LimeSDR, USRP, Amarisoft PCI Express Card
* [srsLTE / srsENB](https://github.com/srsLTE/srsLTE) + LimeSDR, USRP, BladeRF x40 (BladeRF Not stable)
* Open Air Interface 5G ([NR_SA_F1AP_5GRECORDS branch](https://gitlab.eurecom.fr/oai/openairinterface5g/-/tree/NR_SA_F1AP_5GRECORDS)) + USRP B210
* [srsLTE / srsENB](https://github.com/srsLTE/srsLTE) + LimeSDR, USRP, BladeRF x40 (BladeRF Not stable)
### Misc Radio Hardware
---

View File

@@ -328,9 +328,10 @@ $ cd build
$ ninja install
$ cd ../
$ ls install/bin
open5gs-amfd open5gs-hssd open5gs-nrfd open5gs-sgwcd open5gs-smfd open5gs-udrd
open5gs-ausfd open5gs-mmed open5gs-pcrfd open5gs-sgwud open5gs-udmd open5gs-pcfd
open5gs-upfd open5gs-nssfd open5gs-bsfd
open5gs-amfd open5gs-mmed open5gs-pcrfd open5gs-smfd
open5gs-ausfd open5gs-nrfd open5gs-scpd open5gs-udmd
open5gs-bsfd open5gs-nssfd open5gs-sgwcd open5gs-udrd
open5gs-hssd open5gs-pcfd open5gs-sgwud open5gs-upfd
```
## Building WebUI of Open5GS
@@ -347,7 +348,7 @@ Install the dependencies to run WebUI
```bash
$ cd ~/open5gs
$ cd webui
$ npm ci --no-optional
$ npm ci
```
The WebUI runs as an [npm](https://www.npmjs.com/) script.

View File

@@ -127,7 +127,7 @@ Install the dependencies to run WebUI
```bash
$ cd webui
$ npm ci --no-optional
$ npm ci
```
The WebUI runs as an [npm](https://www.npmjs.com/) script.

View File

@@ -69,6 +69,7 @@ $ sudo ifconfig lo0 alias 127.0.0.17 netmask 255.255.255.255
$ sudo ifconfig lo0 alias 127.0.0.18 netmask 255.255.255.255
$ sudo ifconfig lo0 alias 127.0.0.19 netmask 255.255.255.255
$ sudo ifconfig lo0 alias 127.0.0.20 netmask 255.255.255.255
$ sudo ifconfig lo0 alias 127.0.1.10 netmask 255.255.255.255
```
Enable IP forwarding & Masquerading
@@ -163,7 +164,7 @@ Install the dependencies to run WebUI
```bash
$ cd webui
$ npm ci --no-optional
$ npm ci
```
The WebUI runs as an [npm](https://www.npmjs.com/) script.

View File

@@ -69,6 +69,7 @@ $ sudo ifconfig lo0 alias 127.0.0.17 netmask 255.255.255.255
$ sudo ifconfig lo0 alias 127.0.0.18 netmask 255.255.255.255
$ sudo ifconfig lo0 alias 127.0.0.19 netmask 255.255.255.255
$ sudo ifconfig lo0 alias 127.0.0.20 netmask 255.255.255.255
$ sudo ifconfig lo0 alias 127.0.1.10 netmask 255.255.255.255
```
Enable IP forwarding & Masquerading
@@ -161,7 +162,7 @@ Install the dependencies to run WebUI
```bash
$ cd webui
$ npm ci --no-optional
$ npm ci
```
The WebUI runs as an [npm](https://www.npmjs.com/) script.

View File

@@ -89,6 +89,7 @@ $ sudo ifconfig lo0 alias 127.0.0.17 netmask 255.255.255.255
$ sudo ifconfig lo0 alias 127.0.0.18 netmask 255.255.255.255
$ sudo ifconfig lo0 alias 127.0.0.19 netmask 255.255.255.255
$ sudo ifconfig lo0 alias 127.0.0.20 netmask 255.255.255.255
$ sudo ifconfig lo0 alias 127.0.1.10 netmask 255.255.255.255
```
Enable IP forwarding
@@ -206,7 +207,7 @@ Install the dependencies to run WebUI
```bash
$ cd webui
$ npm ci --no-optional
$ npm ci
```
The WebUI runs as an [npm](https://www.npmjs.com/) script.

View File

@@ -105,7 +105,7 @@ Install the dependencies to run WebUI
```bash
$ cd webui
$ npm ci --no-optional
$ npm ci
```
The WebUI runs as an [npm](https://www.npmjs.com/) script.

View File

@@ -21,6 +21,7 @@ open5gs 26934 0.0 0.0 707472 12732 ? Ssl 12:13 0:00 /usr/bin/open5g
open5gs 27244 0.2 0.0 2861424 13584 ? Ssl 12:13 0:00 /usr/bin/open5gs-hssd -c /etc/open5gs/hss.yaml
open5gs 27366 0.0 0.0 2890772 14380 ? Ssl 12:13 0:00 /usr/bin/open5gs-pcrfd -c /etc/open5gs/pcrf.yaml
open5gs 27485 0.0 0.0 243816 15064 ? Ssl 12:13 0:00 /usr/bin/open5gs-nrfd -c /etc/open5gs/nrf.yaml
open5gs 27485 0.0 0.0 243916 13064 ? Ssl 12:13 0:00 /usr/bin/open5gs-scpd -c /etc/open5gs/scp.yaml
open5gs 27543 0.0 0.0 222416 9672 ? Ssl 12:13 0:00 /usr/bin/open5gs-ausfd -c /etc/open5gs/ausf.yaml
open5gs 27600 0.0 0.0 222328 9668 ? Ssl 12:13 0:00 /usr/bin/open5gs-udmd -c /etc/open5gs/udm.yaml
open5gs 27600 0.0 0.0 222329 9669 ? Ssl 12:13 0:00 /usr/bin/open5gs-pcfd -c /etc/open5gs/pcf.yaml
@@ -29,7 +30,7 @@ open5gs 27600 0.0 0.0 222329 9669 ? Ssl 12:13 0:00 /usr/bin/open5g
open5gs 27697 0.0 0.0 243976 13716 ? Ssl 12:13 0:00 /usr/bin/open5gs-udrd -c /etc/open5gs/udr.yaml
```
You should see each of the above services, MME, SGW-C, SMF, AMF, SGW-U, UPF, HSS, PCRF, NRF, AUSF, UDM, PCF, NSSF, BSF & UDR are all running.
You should see each of the above services, MME, SGW-C, SMF, AMF, SGW-U, UPF, HSS, PCRF, NRF, SCP, AUSF, UDM, PCF, NSSF, BSF & UDR are all running.
If your instance doesn't show this make sure you're started each service:
```bash
@@ -42,6 +43,7 @@ $ systemctl start open5gs-upfd.service
$ systemctl start open5gs-hssd.service
$ systemctl start open5gs-pcrfd.service
$ systemctl start open5gs-nrfd.service
$ systemctl start open5gs-scpd.service
$ systemctl start open5gs-ausfd.service
$ systemctl start open5gs-udmd.service
$ systemctl start open5gs-pcfd.service
@@ -55,14 +57,15 @@ $ systemctl start open5gs-udrd.service
If a service isn't running check the log for that service - logs for each service live in */var/log/open5gs/* where each service logs to it's own file - MME logs in mme.log, AMF logs in amf.log, and so on.
```bash
$ cat /var/log/open5gs/mme.log
Open5GS daemon v1.0.0
$ cat a.log
Open5GS daemon v2.4.11-100-gbea24d7
[app] INFO: Configuration: '/etc/open5gs/mme.yaml' (../src/main.c:54)
[app] INFO: File Logging: '/var/log/open5gs/mme.log' (../src/main.c:57)
[mme] ERROR: No sgwc.gtpc in '/etc/open5gs/mme.yaml' (../src/mme/mme-context.c:192)
[app] ERROR: Failed to intialize MME (../src/mme/app-init.c:30)
[app] FATAL: Open5GS initialization failed. Aborted (../src/main.c:222)
10/22 11:05:40.032: [app] INFO: Configuration: '/home/acetcom/Documents/git/open5gs/install/etc/open5gs/mme.yaml' (../lib/app/ogs-init.c:126)
10/22 11:05:40.032: [app] INFO: File Logging: 'a.log' (../lib/app/ogs-init.c:129)
10/22 11:05:40.094: [gtp] INFO: gtp_server() [127.0.0.2]:2123 (../lib/gtp/path.c:30)
10/22 11:05:40.094: [gtp] INFO: gtp_connect() [127.0.0.3]:2123 (../lib/gtp/path.c:60)
10/22 11:05:40.094: [mme] INFO: s1ap_server() [127.0.0.2]:36412 (../src/mme/s1ap-sctp.c:62)
10/22 11:05:40.094: [sctp] INFO: MME initialize...done (../src/mme/app-init.c:33)
```
Or, you can use `journalctl` like below to view live log.
@@ -176,16 +179,16 @@ You can modify the configuration file to record more logs.
```diff
$ diff -u /etc/open5gs/amf.yaml.old /etc/open5gs/amf.yaml
--- amf.yaml.old 2020-08-22 12:26:56.132213488 -0400
+++ amf.yaml 2020-08-22 12:27:04.135901201 -0400
--- amf.yaml.old 2020-08-22 12:26:56.132213488 -0400
+++ amf.yaml 2020-08-22 12:27:04.135901201 -0400
@@ -20,6 +20,7 @@
#
logger:
file: /home/acetcom/Documents/git/open5gs/install/var/log/open5gs/amf.log
file: @localstatedir@/log/open5gs/amf.log
+ level: debug
#
# amf:
#
```
After changing conf files, please restart Open5GS daemons.

View File

@@ -92,114 +92,114 @@ home/open5gs/install/lib/x86_64-linux-gnu/libfdcore.so.7(+0x67c3c) [0x7f3b715f9c
At this time, you need to check the DB schema is in the form below by using the command the below.
```
$ mongo
$ mongosh
> use open5gs
> db.subscribers.find().pretty()
{
"_id" : ObjectId("60969fe79459f8b40d8d3f68"),
"imsi" : "901700000000001",
"__v" : 0,
"access_restriction_data" : 32,
"ambr" : {
"uplink" : {
"value" : 1,
"unit" : 3
},
"downlink" : {
"value" : 1,
"unit" : 3
}
},
"network_access_mode" : 2,
"security" : {
"k" : "465b5ce8b199b49faa5f0a2ee238a6bc",
"amf" : "8000",
"op" : null,
"opc" : "e8ed289deba952e4283b54e88e6183ca",
"sqn" : NumberLong(97)
},
"slice" : [
{
"sst" : 1,
"default_indicator" : true,
"_id" : ObjectId("60969fe7de8743b3c7b1a973"),
"session" : [
{
"name" : "internet",
"type" : 3,
"_id" : ObjectId("60969fe7de8743b3c7b1a974"),
"pcc_rule" : [ ],
"ambr" : {
"uplink" : {
"value" : 1,
"unit" : 3
},
"downlink" : {
"value" : 1,
"unit" : 3
}
},
"qos" : {
"index" : 9,
"arp" : {
"priority_level" : 8,
"pre_emption_capability" : 1,
"pre_emption_vulnerability" : 1
}
}
}
]
}
],
"subscribed_rau_tau_timer" : 12,
"subscriber_status" : 0
"_id" : ObjectId("60969fe79459f8b40d8d3f68"),
"imsi" : "999700000000001",
"__v" : 0,
"access_restriction_data" : 32,
"ambr" : {
"uplink" : {
"value" : 1,
"unit" : 3
},
"downlink" : {
"value" : 1,
"unit" : 3
}
},
"network_access_mode" : 2,
"security" : {
"k" : "465b5ce8b199b49faa5f0a2ee238a6bc",
"amf" : "8000",
"op" : null,
"opc" : "e8ed289deba952e4283b54e88e6183ca",
"sqn" : NumberLong(97)
},
"slice" : [
{
"sst" : 1,
"default_indicator" : true,
"_id" : ObjectId("60969fe7de8743b3c7b1a973"),
"session" : [
{
"name" : "internet",
"type" : 3,
"_id" : ObjectId("60969fe7de8743b3c7b1a974"),
"pcc_rule" : [ ],
"ambr" : {
"uplink" : {
"value" : 1,
"unit" : 3
},
"downlink" : {
"value" : 1,
"unit" : 3
}
},
"qos" : {
"index" : 9,
"arp" : {
"priority_level" : 8,
"pre_emption_capability" : 1,
"pre_emption_vulnerability" : 1
}
}
}
]
}
],
"subscribed_rau_tau_timer" : 12,
"subscriber_status" : 0
}
```
If you see below, you are using the old format DB schema.
```
$ mongo
$ mongosh
> use open5gs
> db.subscribers.find().pretty()
{
"_id" : ObjectId("609715fda08851a0744e6ae7"),
"imsi" : "901700000021309",
"__v" : 0,
"access_restriction_data" : 32,
"ambr" : {
"downlink" : NumberLong(1024000),
"uplink" : NumberLong(1024000)
},
"network_access_mode" : 2,
"pdn" : [
{
"apn" : "internet",
"_id" : ObjectId("609715fd455bcd38c884ce85"),
"pcc_rule" : [ ],
"ambr" : {
"downlink" : NumberLong(1024000),
"uplink" : NumberLong(1024000)
},
"qos" : {
"qci" : 9,
"arp" : {
"priority_level" : 8,
"pre_emption_vulnerability" : 1,
"pre_emption_capability" : 0
}
},
"type" : 0
}
],
"security" : {
"k" : "70D49A71DD1A2B806A25ABE0EF749F1E",
"amf" : "8000",
"op" : null,
"opc" : "6F1BF53D624B3A43AF6592854E2444C7"
},
"subscribed_rau_tau_timer" : 12,
"subscriber_status" : 0
"_id" : ObjectId("609715fda08851a0744e6ae7"),
"imsi" : "999700000021309",
"__v" : 0,
"access_restriction_data" : 32,
"ambr" : {
"downlink" : NumberLong(1024000),
"uplink" : NumberLong(1024000)
},
"network_access_mode" : 2,
"pdn" : [
{
"apn" : "internet",
"_id" : ObjectId("609715fd455bcd38c884ce85"),
"pcc_rule" : [ ],
"ambr" : {
"downlink" : NumberLong(1024000),
"uplink" : NumberLong(1024000)
},
"qos" : {
"qci" : 9,
"arp" : {
"priority_level" : 8,
"pre_emption_vulnerability" : 1,
"pre_emption_capability" : 0
}
},
"type" : 0
}
],
"security" : {
"k" : "70D49A71DD1A2B806A25ABE0EF749F1E",
"amf" : "8000",
"op" : null,
"opc" : "6F1BF53D624B3A43AF6592854E2444C7"
},
"subscribed_rau_tau_timer" : 12,
"subscriber_status" : 0
}
```
@@ -207,7 +207,7 @@ If you are using old format DB schema, please perform the following step.
1. First of all, it is recommended to use the following command to remove all existing subscription DB.
```
$ mongo
$ mongosh
> use open5gs
switched to db open5gs
> db.subscribers.drop()
@@ -221,17 +221,17 @@ $ curl -fsSL https://open5gs.org/open5gs/assets/webui/install | sudo -E bash -
4. Log in to the new WebUI and add new subscriber information using your web browser.
5. Make sure it is a new DB schema as below:
```
$ mongo
$ mongosh
> use open5gs
> db.subscribers.find().pretty()
{
...
"slice" : [
{
"sst" : 1,
"default_indicator" : true,
"_id" : ObjectId("60969fe7de8743b3c7b1a973"),
"session" : [
"slice" : [
{
"sst" : 1,
"default_indicator" : true,
"_id" : ObjectId("60969fe7de8743b3c7b1a973"),
"session" : [
...
}
```
@@ -256,7 +256,7 @@ This is a test program bug and has not yet been resolved.
To restart the test program, first remove all subscriber information using MongoDB Client
```
$ mongo
$ mongosh
> use open5gs
switched to db open5gs
> db.subscribers.find() ### Check the test subscriber
@@ -276,6 +276,7 @@ $ sudo pkill -9 open5gs-upfd
$ sudo pkill -9 open5gs-hssd
$ sudo pkill -9 open5gs-pcrfd
$ sudo pkill -9 open5gs-nrfd
$ sudo pkill -9 open5gs-scpd
$ sudo pkill -9 open5gs-ausfd
$ sudo pkill -9 open5gs-udmd
$ sudo pkill -9 open5gs-pcfd
@@ -312,12 +313,12 @@ $ diff --git a/configs/open5gs/amf.yaml.in b/configs/open5gs/amf.yaml.in
index 7e939e81..dfe4456d 100644
--- a/configs/open5gs/amf.yaml.in
+++ b/configs/open5gs/amf.yaml.in
@@ -199,6 +199,12 @@ amf:
@@ -315,6 +315,12 @@ amf:
mnc: 70
s_nssai:
- sst: 1
+ - plmn_id:
+ mcc: 901
+ mcc: 999
+ mnc: 70
+ s_nssai:
+ - sst: 1
@@ -332,9 +333,9 @@ $ diff --git a/configs/open5gs/smf.yaml.in b/configs/open5gs/smf.yaml.in
index d45aa60f..701ee533 100644
--- a/configs/open5gs/smf.yaml.in
+++ b/configs/open5gs/smf.yaml.in
@@ -317,6 +317,11 @@ logger:
#
@@ -442,6 +442,11 @@ logger:
#
smf:
+ info:
+ - s_nssai:
@@ -351,7 +352,7 @@ $ diff --git a/configs/open5gs/smf.yaml.in b/configs/open5gs/smf.yaml.in
index d45aa60f..949da220 100644
--- a/configs/open5gs/smf.yaml.in
+++ b/configs/open5gs/smf.yaml.in
@@ -317,6 +317,12 @@ logger:
@@ -442,6 +442,12 @@ logger:
#
smf:
@@ -370,7 +371,7 @@ $ diff --git a/configs/open5gs/nssf.yaml.in b/configs/open5gs/nssf.yaml.in
index ecd4f7e2..04d9c4ba 100644
--- a/configs/open5gs/nssf.yaml.in
+++ b/configs/open5gs/nssf.yaml.in
@@ -119,6 +119,11 @@ nssf:
@@ -201,6 +201,12 @@ nssf:
port: 7777
s_nssai:
sst: 1
@@ -379,9 +380,10 @@ index ecd4f7e2..04d9c4ba 100644
+ s_nssai:
+ sst: 1
+ sd: 000080
+
#
# nrf:
# scp:
```
Then add a slice to MongoDB's subscriber info.
@@ -409,6 +411,7 @@ And the process below is only used in 5G, so there is no need to run it.
```bash
$ open5gs-nrfd
$ open5gs-scpd
$ open5gs-amfd
$ open5gs-ausfd
$ open5gs-udmd
@@ -476,8 +479,8 @@ The Open5GS package contains a systemd-networkd configuration file for `ogstun`.
```diff
$ diff -u /etc/systemd/network/99-open5gs.network /etc/systemd/network/99-open5gs.network.new
--- /etc/systemd/network/99-open5gs.network 2020-09-17 09:29:09.137392040 -0400
+++ /etc/systemd/network/99-open5gs.network.new 2020-09-17 09:29:03.375719620 -0400
--- /etc/systemd/network/99-open5gs.network 2020-09-17 09:29:09.137392040 -0400
+++ /etc/systemd/network/99-open5gs.network.new 2020-09-17 09:29:03.375719620 -0400
@@ -2,5 +2,5 @@
Name=ogstun
@@ -501,11 +504,11 @@ Now, you need to modify the configuration file of Open5GS to adjust the UE IP Po
```diff
$ diff -u smf.yaml smf.yaml.new
--- smf.yaml 2020-09-17 09:31:16.547882093 -0400
+++ smf.yaml.new 2020-09-17 09:32:18.267726844 -0400
@@ -190,7 +190,7 @@
- addr: 127.0.0.4
- addr: ::1
--- smf.yaml 2020-09-17 09:31:16.547882093 -0400
+++ smf.yaml.new 2020-09-17 09:32:18.267726844 -0400
@@ -458,7 +458,7 @@ smf:
addr: 127.0.0.4
port: 9090
subnet:
- - addr: 10.45.0.1/16
+ - addr: 10.46.0.1/16
@@ -516,9 +519,9 @@ $ diff -u smf.yaml smf.yaml.new
```diff
$ diff -u upf.yaml upf.yaml.new
--- upf.yaml 2020-09-17 09:31:16.547882093 -0400
+++ upf.yaml.new 2020-09-17 09:32:25.199619989 -0400
@@ -139,7 +139,7 @@
--- upf.yaml 2020-09-17 09:31:16.547882093 -0400
+++ upf.yaml.new 2020-09-17 09:32:25.199619989 -0400
@@ -170,7 +170,7 @@ upf:
gtpu:
- addr: 127.0.0.7
subnet:
@@ -596,7 +599,7 @@ Please make sure that MongoDB server daemon is running.
Then, remove all subscriber information using MongoDB Client
```
$ mongo
$ mongosh
> use open5gs
switched to db open5gs
> db.subscribers.find() ### Check the test subscriber
@@ -616,6 +619,7 @@ $ sudo pkill -9 open5gs-upfd
$ sudo pkill -9 open5gs-hssd
$ sudo pkill -9 open5gs-pcrfd
$ sudo pkill -9 open5gs-nrfd
$ sudo pkill -9 open5gs-scpd
$ sudo pkill -9 open5gs-ausfd
$ sudo pkill -9 open5gs-udmd
$ sudo pkill -9 open5gs-pcfd
@@ -766,8 +770,8 @@ Create **newtables** file as below.
```diff
$ diff -u oldtables newtables
--- oldtables 2019-06-01 23:43:50.354974226 +0900
+++ newtables 2019-06-01 23:44:16.110931684 +0900
--- oldtables 2019-06-01 23:43:50.354974226 +0900
+++ newtables 2019-06-01 23:44:16.110931684 +0900
@@ -8,6 +8,7 @@
-A PREROUTING -m addrtype --dst-type LOCAL -j DOCKER
-A OUTPUT ! -d 127.0.0.0/8 -m addrtype --dst-type LOCAL -j DOCKER
@@ -998,7 +1002,7 @@ attach_test : -Line 134: Condition is false, but expected true
Remove all subscriber information using MongoDB Client
```
$ mongo
$ mongosh
> db.subscribers.find() ### Check the test subscriber
> db.subscribers.drop() ### Remove all subscriber
> db.subscribers.find() ### Check that all subscribers are empty
@@ -1077,6 +1081,7 @@ Currently, the number of UE is limited to `128*128`.
* HSS : 127.0.0.8
* PCRF : 127.0.0.9
* NRF : 127.0.0.10
* SCP : 127.0.1.10
* AUSF : 127.0.0.11
* UDM : 127.0.0.12
* PCF : 127.0.0.13
@@ -1089,12 +1094,12 @@ Currently, the number of UE is limited to `128*128`.
```
* AMF_ID
PLMN ID - MNC: 901, MCC: 70
PLMN ID - MNC: 999, MCC: 70
Region : 2
Set : 1
* TAI
PLMN ID - MNC: 901, MCC: 70
PLMN ID - MNC: 999, MCC: 70
TAC : 1
* S_NSSASI
@@ -1105,12 +1110,12 @@ Currently, the number of UE is limited to `128*128`.
```
* GUMMEI
PLMN ID - MNC: 901, MCC: 70
PLMN ID - MNC: 999, MCC: 70
MME Group : 2
MME Code : 1
* TAI
PLMN ID - MNC: 901, MCC: 70
PLMN ID - MNC: 999, MCC: 70
TAC : 1
```
@@ -1273,10 +1278,10 @@ $ echo $(cd $(dirname ./install/lib/x86_64-linux-gnu/) && pwd -P)/$(basename ./i
$ export LD_LIBRARY_PATH=/home/acetcom/Documents/git/open5gs/install/lib/x86_64-linux-gnu
$ ldd ./install/bin/open5gs-amfd
...
libogsapp.so.1 => /home/acetcom/Documents/git/open5gs/install/lib/x86_64-linux-gnu/libogsapp.so.1 (0x00007f161ab51000)
libogscore.so.1 => /home/acetcom/Documents/git/open5gs/install/lib/x86_64-linux-gnu/libogscore.so.1 (0x00007f161a922000)
libogssctp.so.1 => /home/acetcom/Documents/git/open5gs/install/lib/x86_64-linux-gnu/libogssctp.so.1 (0x00007f161a71d000)
libogss1ap.so.1 => /home/acetcom/Documents/git/open5gs/install/lib/x86_64-linux-gnu/libogss1ap.so.1 (0x00007f161a519000)
libogsapp.so.1 => /home/acetcom/Documents/git/open5gs/install/lib/x86_64-linux-gnu/libogsapp.so.1 (0x00007f161ab51000)
libogscore.so.1 => /home/acetcom/Documents/git/open5gs/install/lib/x86_64-linux-gnu/libogscore.so.1 (0x00007f161a922000)
libogssctp.so.1 => /home/acetcom/Documents/git/open5gs/install/lib/x86_64-linux-gnu/libogssctp.so.1 (0x00007f161a71d000)
libogss1ap.so.1 => /home/acetcom/Documents/git/open5gs/install/lib/x86_64-linux-gnu/libogss1ap.so.1 (0x00007f161a519000)
...
```

View File

@@ -156,9 +156,20 @@ $ make test
#### 3. Open5GS
Install the MongoDB packages.
```bash
```
The Open5GS package is available on the recent versions of *Ubuntu*.
```bash
# Install the MongoDB Packages
$ wget -qO - https://www.mongodb.org/static/pgp/server-6.0.asc | sudo apt-key add -
$ echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/6.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-6.0.list
$ sudo apt update
$ sudo apt install mongodb-org
# Getting the authentication key
$ sudo apt install wget
$ wget https://download.opensuse.org/repositories/home:/acetcom:/open5gs:/latest/xUbuntu_20.04/Release.key
@@ -173,7 +184,7 @@ $ sudo apt install open5gs
The following shows how to install the Web UI of Open5GS.
```bash
$ curl -fsSL https://deb.nodesource.com/setup_14.x | sudo -E bash -
$ curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -
$ sudo apt install nodejs
$ curl -fsSL https://open5gs.org/open5gs/assets/webui/install | sudo -E bash -
```
@@ -190,14 +201,14 @@ Title : sysmocom SIM Card Details / AM93\PICK\00859
IMSI ICCID ACC PIN1 PUK1 PIN2 PUK2 Ki OPC ADM1 KIC1 KID1 KIK1
...
901700000017408 8988211000000174089 0100 3623 84724035 8774 57473966 B1233463AB9BC2AD2DB1830EB6417E7B 625150E2A943E3353DD23554101CAFD4 47190711 C865CAA0A54542333929B29B116F4375 7D7F65DCD99003C0A0D5D31CA3E5253E 5B27983AF628FC3FCB36B89300012944
999700000017408 8988211000000174089 0100 3623 84724035 8774 57473966 B1233463AB9BC2AD2DB1830EB6417E7B 625150E2A943E3353DD23554101CAFD4 47190711 C865CAA0A54542333929B29B116F4375 7D7F65DCD99003C0A0D5D31CA3E5253E 5B27983AF628FC3FCB36B89300012944
```
Here's my subscriber information from above.
```
MCC/MNC : 901/70
IMSI : 901700000017408
MCC/MNC : 999/70
IMSI : 999700000017408
K : B1233463AB9BC2AD2DB1830EB6417E7B
OPc : 625150E2A943E3353DD23554101CAFD4
```
@@ -222,23 +233,27 @@ Then proceed as follows:
3. Fill the IMSI, security context(K, OPc, AMF), and APN of the subscriber.
4. Click `SAVE` Button
**Note:** Subscribers added with this tool immediately register in the Open5GS HSS/UDR without the need to restart any daemon. However, if you use the WebUI to change subscriber profile, you must restart the Open5GS AMF/MME daemon for the changes to take effect.
{: .notice--warning}
Modify [install/etc/open5gs/mme.yaml](https://github.com/{{ site.github_username }}/open5gs/blob/main/configs/open5gs/mme.yaml.in) to set the S1AP IP address, PLMN ID, and TAC.
```diff
$ diff -u /etc/open5gs/mme.yaml.old /etc/open5gs/mme.yaml
--- mme.yaml.old 2020-08-22 12:07:32.755250028 -0400
+++ mme.yaml 2020-08-22 12:08:17.309320211 -0400
@@ -208,20 +208,20 @@
mme:
freeDiameter: /home/acetcom/Documents/git/open5gs/install/etc/freeDiameter/mme.conf
--- mme.yaml 2020-09-05 20:52:28.648235143 -0400
+++ mme.yaml.new 2020-09-05 20:56:05.434484208 -0400
@@ -253,20 +253,20 @@ mme:
s1ap:
- addr: 127.0.0.2
+ addr: 127.0.1.2
- - addr: 127.0.0.2
+ - addr: 10.10.0.2
gtpc:
- addr: 127.0.0.2
metrics:
addr: 127.0.0.2
port: 9090
gummei:
plmn_id:
- mcc: 901
- mcc: 999
- mnc: 70
+ mcc: 310
+ mnc: 789
@@ -246,30 +261,28 @@ $ diff -u /etc/open5gs/mme.yaml.old /etc/open5gs/mme.yaml
mme_code: 1
tai:
plmn_id:
- mcc: 901
- mcc: 999
- mnc: 70
- tac: 1
+ mcc: 310
+ mnc: 789
+ tac: 2
tac: 1
security:
integrity_order : [ EIA1, EIA2, EIA0 ]
ciphering_order : [ EEA0, EEA1, EEA2 ]
integrity_order : [ EIA2, EIA1, EIA0 ]
```
Modify [install/etc/open5gs/sgwu.yaml](https://github.com/{{ site.github_username }}/open5gs/blob/main/configs/open5gs/sgwu.yaml.in) to set the GTP-U IP address.
```diff
$ diff -u /etc/open5gs/sgwu.yaml.old /etc/open5gs/sgwu.yaml
--- sgwu.yaml.old 2020-08-22 12:08:44.782880778 -0400
+++ sgwu.yaml 2020-08-22 12:06:49.809299514 -0400
@@ -82,7 +82,7 @@
--- sgwu.yaml 2020-09-05 20:50:39.393022566 -0400
+++ sgwu.yaml.new 2020-09-05 20:51:06.667838823 -0400
@@ -98,7 +98,7 @@ logger:
#
sgwu:
gtpu:
- addr: 10.11.0.6
+ addr: 127.0.0.6
pfcp:
addr: 127.0.0.6
- - addr: 10.11.0.6
+ - addr: 127.0.0.6
gtpu:
- addr: 127.0.0.6
```
@@ -335,8 +348,8 @@ You should check your phone frequency. If your phone does not support Band-3, yo
```diff
$ diff -u enb.conf.example enb.conf
-- enb.conf.example 2022-01-19 20:30:13.612993155 +0900
+++ enb.conf 2022-01-19 21:04:15.674419300 +0900
-- enb.conf.example 2022-01-19 20:30:13.612993155 +0900
+++ enb.conf 2022-01-19 21:04:15.674419300 +0900
@@ -20,9 +20,9 @@
#####################################################################
[enb]
@@ -372,8 +385,8 @@ $ diff -u enb.conf.example enb.conf
```diff
$ diff -u rr.conf.example rr.conf
-- rr.conf.example 2022-01-19 20:30:13.620992794 +0900
+++ rr.conf 2022-01-19 21:05:21.959044145 +0900
-- rr.conf.example 2022-01-19 20:30:13.620992794 +0900
+++ rr.conf 2022-01-19 21:05:21.959044145 +0900
@@ -55,10 +55,10 @@
{
// rf_port = 0;
@@ -406,8 +419,8 @@ Device Argument : Clock source from external GPS-DO
If you are not using GPS-DO, you can just comment out `device_args` as shown below.
```diff
$ diff -u enb.conf enb.conf.no_gps_do
--- enb.conf 2022-01-19 21:08:32.941527373 +0900
+++ enb.conf.no_gps_do 2022-01-19 21:10:18.612581261 +0900
--- enb.conf 2022-01-19 21:08:32.941527373 +0900
+++ enb.conf.no_gps_do 2022-01-19 21:10:18.612581261 +0900
@@ -81,7 +81,7 @@
# Example for ZMQ-based operation with TCP transport for I/Q samples

View File

@@ -307,9 +307,9 @@ Username: test
Password: testpasswd
Server: ims.mnc001.mcc001.3gppnetwork.org (Created DNS Domain Name or IP to which IMS components are bound to, visible interface IP address)
Optional Settings:
Authentication username: test
Outbound proxy address: 172.24.15.30 (Floating IP of VM in case of OpenStack or else no need to fill in case of physical machine)
Transport type: UDP
Authentication username: test
Outbound proxy address: 172.24.15.30 (Floating IP of VM in case of OpenStack or else no need to fill in case of physical machine)
Transport type: UDP
```
In Phone 2:
@@ -319,9 +319,9 @@ Username: test2
Password: testpasswd
Server: ims.mnc001.mcc001.3gppnetwork.org (Created DNS Domain Name or IP to which IMS components are bound to, visible interface IP address)
Optional Settings:
Authentication username: test2
Outbound proxy address: 172.24.15.30 (Floating IP of VM in case of OpenStack or else no need to fill in case of physical machine)
Transport type: UDP
Authentication username: test2
Outbound proxy address: 172.24.15.30 (Floating IP of VM in case of OpenStack or else no need to fill in case of physical machine)
Transport type: UDP
```
- Set "Receive incoming calls" option to enabled state in both phones
@@ -566,8 +566,8 @@ options {
// the all-0's placeholder.
//forwarders {
// Put here the IP address of other DNS server which could be used if name cannot be resolved with DNS server running in this machine (Optional)
//10.4.128.2;
// Put here the IP address of other DNS server which could be used if name cannot be resolved with DNS server running in this machine (Optional)
//10.4.128.2;
//};
//========================================================================
@@ -1068,8 +1068,8 @@ In the below example. epc-ims is the hostname of the machine
```
root@epc-ims:~# cat /etc/hosts
127.0.0.1 localhost
127.0.0.1 epc-ims
127.0.0.1 localhost
127.0.0.1 epc-ims
```
#### 20. Add IMS subscription use in FoHSS as follows from the Web GUI
@@ -1078,7 +1078,7 @@ Assuming IMSI of the user as 001010123456791 and MSISDN is 0198765432100
```
Login to the HSS web console.
Navigate to the User Identities page
Navigate to the User Identities page
Create the IMSU
Click IMS Subscription / Create
Enter:

View File

@@ -0,0 +1,134 @@
---
title: Metrics with Prometheus
---
#### 0. Introduction
This tutorial explains how to export open5gs metrics to Prometheus, which can in
turn be used to visualize or export them to other systems such as Grafana or
StatsD.
When this method is used, any open5gs program exporting metrics becomes a
Prometheus server, which is basically an HTTP server serving Prometheus data to
the Prometheus scrapper.
Note: Only open5gs-smfd supports exporting metrics so far, though other may
hopefully follow soon.
#### 1. Enable Prometheus support during build
Open5GS programs use a generic internal API available in libogsmetrics. This
library implements the API based on configuration passed during open5gs build
time. By default, the library will be built using the `void` implementation,
which is basically a NO-OP implementation.
In order to use the Prometheus, the `prometheus` metrics implementation needs to
be selected at build time:
```
meson configure -Dmetrics_impl=prometheus build
```
This will enable building the implementation under lib/metrics/prometheus/,
which uses:
* prometheus-client-c project (libprom): To generate the Prometheus expected
output format of the metrics
* libmicrohttpd: To server the content generated by libprom as an HTTP server
The `prometheus-client-c` project is not currently well maintained, and uses a
weird mixture of build systems, which makes it difficult to make it available in
most Linux distributions. As a result, a fork of the project is available under
Open5GS GitHub namespace, with an extra patch applied making it possible to
include it as a subproject, which will be fetched and built automatically when
building the prometheus libmetrics implementation.
#### 2. Configuring for runtime
By default the created Prometheus HTTP server will be listening on `0.0.0.0`
port `9090`.
This can be configured under the following config file options:
```
#
# metrics:
#
# <Metrics Server>
#
# o Metrics Server(http://<any address>:9090)
# metrics:
# addr: 0.0.0.0
# port: 9090
#
metrics:
addr: 0.0.0.0
port: 9090
```
Note: You may want to change the default IP address or port if you are running
the Prometheus scrapper in the same host, since it will also spawn its own
Prometheus server also in port 9090, which will collide.
#### 3. Manual visualization
Simply open the web browser at the following URL (changing IP address and port
as configured in previous section):
```
http://127.0.0.1:9090/metrics
```
Note: URL `metrics/` (with a slash at the end) will not work.
You should see some output similar to this one below:
```
# HELP ues_active Active User Equipments
# TYPE ues_active gauge
ues_active 2
# HELP process_max_fds Maximum number of open file descriptors.
# TYPE process_max_fds gauge
process_max_fds 1024
# HELP process_virtual_memory_max_bytes Maximum amount of virtual memory available in bytes.
# TYPE process_virtual_memory_max_bytes gauge
process_virtual_memory_max_bytes -1
# HELP process_cpu_seconds_total Total user and system CPU time spent in seconds.
# TYPE process_cpu_seconds_total gauge
process_cpu_seconds_total 0
# HELP process_virtual_memory_bytes Virtual memory size in bytes.
# TYPE process_virtual_memory_bytes gauge
process_virtual_memory_bytes 3156643840
# HELP process_start_time_seconds Start time of the process since unix epoch in seconds.
# TYPE process_start_time_seconds gauge
process_start_time_seconds 402433
# HELP process_open_fds Number of open file descriptors.
# TYPE process_open_fds gauge
process_open_fds 23
```
#### 3. Integration with Prometheus scrapper
Sample Prometheus scrapper configuration (`~/prometheus.yml`):
```
global:
scrape_interval: 10s
scrape_configs:
- job_name: open5gs-smfd
static_configs:
- targets: ["192.168.1.140:9091"]
```
Where `192.168.1.140:9091` is the IP address and port where `open5gs-smfd` is
serving its metrics, as configured in above sections.
The Prometheus scrapper can be easily started from a docker container:
```
docker run -p 9090:9090 -v /prometheus.yml:/etc/prometheus/prometheus.yml prom/prometheus
```
Then open your browser to be able to visualize the data: `http://localhost:9090/graph`

View File

@@ -1,10 +1,12 @@
<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
{% if jekyll.environment == "production" %}
<script async src="https://www.googletagmanager.com/gtag/js?id={{ site.google_analytics }}"></script>
<script>
window.dataLayer = window.dataLayer || [];
ga('create', '{{ site.google_analytics }}', 'auto');
ga('send', 'pageview');
</script>
function gtag() {
dataLayer.push(arguments);
}
gtag('js', new Date());
gtag('config', '{{ site.google_analytics }}');
</script>
{% endif %}

View File

@@ -7,7 +7,7 @@
<link rel="stylesheet" href="{{ "/assets/css/main.css" | relative_url }}">
<link rel="canonical" href="{{ page.url | replace:'index.html','' | absolute_url }}">
<link rel="alternate" type="application/rss+xml" title="{{ site.title | escape }}" href="{{ "/feed.xml" | relative_url }}">
<link rel="shortcut icon" href="{{ "/assets/favicon.ico" | relative_url }}">
<link rel="shortcut icon" href="{{ "https://open5gs.org/assets/img/favicon.ico" | relative_url }}">
{% if page.head_inline %}
{{ page.head_inline }}

View File

@@ -13,6 +13,12 @@ head_inline: "<style> ul { padding-bottom: 1em; } </style>"
- [Your First LTE](tutorial/01-your-first-lte)
- [VoLTE Setup with Kamailio IMS and Open5GS](tutorial/02-VoLTE-setup)
- [Dockerized VoLTE Setup](tutorial/03-VoLTE-dockerized)
- [Metrics with Prometheus](tutorial/04-metrics-prometheus)
- Inside Source Code
- [Detailed Architecture of Open5GS](https://chowdera.com/2022/151/202205312246348316.html)
- [UPF Code Explanation](https://medium.com/@aditya.koranga/open5gs-upf-code-explanation-with-flow-c-79c50f253dd1)
- [SMF Code Explanation](https://medium.com/@aditya.koranga/open5gs-smf-code-explanation-with-flow-charts-a3b3cd38c991)
- Troubleshooting
- [Simple Issues](troubleshoot/01-simple-issues)
@@ -26,24 +32,29 @@ head_inline: "<style> ul { padding-bottom: 1em; } </style>"
- [MacOSX(Intel)](platform/06-macosx-intel)
- [FreeBSD](platform/07-freebsd)
- [Alpine](platform/08-alpine)
- Hardware Specific Notes
- [eNodeBs/gNodeBs tested on Open5GS](hardware/01-genodebs)
- @infinitydon
- [Open5GS on Amazon Elastic Kubernetes Service](https://aws.amazon.com/blogs/opensource/open-source-mobile-core-network-implementation-on-amazon-elastic-kubernetes-service/)
- [Kubernetes Open5GS Deployment](https://dev.to/infinitydon/virtual-4g-simulation-using-kubernetes-and-gns3-3b7k?fbclid=IwAR1p99h13a-mCfejanbBQe0H0-jp5grXkn5mWf1WrTHf47UtegB2-UHGGZQ)
- @nickvsnetworking
- [My first 5G Core : Open5GS and UERANSIM](http://nickvsnetworking.com/my-first-5g-core-open5gs-and-ueransim/)
- [Backing up and restoring Open5GS](https://nickvsnetworking.com/backing-up-and-restoring-open5gs/)
- [Open5Gs Without NAT](https://nickvsnetworking.com/open5gs-without-nat/)
- [Sending SMS in Open5GS LTE Networks using the SGs Interface and OsmoMSC](https://nickvsnetworking.com/sending-sms-in-open5gs-lte-networks-using-the-sgs-interface-and-osmomsc-with-smsos/)
- [OsmoMSC and Open5GS MME SGs Interface for CSCF / InterRAT Handover](https://nickvsnetworking.com/osmomsc-and-open5gs-mme-sgs-interface-for-cscf-interran-handover/)
- [Static IPs for UEs](http://nickvsnetworking.com/open5gs-epc-static-ip-addresses-for-ues-apns-subscribers/)
- [Open5GS without NAT](https://nickvsnetworking.com/open5gs-without-nat/)
- [Basics of EPC/LTE Online Charging (OCS)](https://nickvsnetworking.com/basics-of-epc-lte-online-charging-ocs/)
- [Backing up and Restoring Open5GS](https://nickvsnetworking.com/backing-up-and-restoring-open5gs/)
- Diameter Routing Agents - [Part 1](https://nickvsnetworking.com/diameter-routing-agents-why-you-need-them-and-how-to-build-them-part-1/), [Part 2](https://nickvsnetworking.com/diameter-routing-agents-why-you-need-them-and-how-to-build-them-part-2-routing/), [Part 3](https://nickvsnetworking.com/diameter-routing-agents-part-3-building-a-dra-with-freediameter/)
- @s5uishida
- [Open5GS EPC & OpenAirInterface UE/RAN Sample configuration](https://github.com/s5uishida/open5gs_epc_oai_sample_config)
- [Open5GS 5GC & UERANSIM UE/RAN Sample Configuration](https://github.com/s5uishida/open5gs_5gc_ueransim_sample_config)
- [Open5GS & UERANSIM - Select nearby UPF according to the connected gNodeB](https://github.com/s5uishida/open5gs_5gc_ueransim_nearby_upf_sample_config)
- [VoLTE and SMS Configuration for docker_open5gs](https://github.com/s5uishida/docker_open5gs_volte_sms_config)
- [Select UPF based on S-NSSAI](https://github.com/s5uishida/open5gs_5gc_ueransim_snssai_upf_sample_config)
- [SCP Indirect communication Model C](https://github.com/s5uishida/open5gs_5gc_ueransim_scp_model_c_sample_config)
- [Monitoring Metrics with Prometheus](https://github.com/s5uishida/open5gs_5gc_ueransim_metrics_sample_config)

View File

@@ -4,23 +4,26 @@ title: Support
permalink: /support/
---
###### Updated Sep, 2020
###### Updated Sep, 2022
### Open5GS Licensing
Open5GS is licensed under a dual licensing model designed to meet the development and distribution needs of both commercial and open source projects.
### For Commercial Projects
The commercial Open5GS license gives you the full rights to create and distribute software on your own terms without any open source license obligations. With the commercial license, you also have access to the official NeoPlane Support and close strategic relationship with [NeoPlane](https://neoplane.io) to make sure your development goals are met.
Commercial distributors that develop and distribute commercially licensed Open5GS software and do not wish their software under version 3 of the GNU Affero General Public License (the “AGPL-3.0”) must enter into a commercial license agreement with [NextEPC, Inc.](https://nextepc.com)
Open5GS is also available under AGPL-3.0 open source licenses. The Open5GS open source licensing is ideal for use cases such as open source projects with open source distribution, student/academic purposes, hobby projects, internal research projects without external distribution, or other projects where all AGPL-3.0 obligations can be met.
If your legal department has policies regarding use of software licensed under the AGPL, you may prefer to have a commercial license. Contact [Sukchan Lee \<sales@neoplane.io\>](mailto:sales@neoplane.io) for more information on commercial licenses.
### Our Partners
We work with leading partners in mobile communications to offer our customers complete solutions.
**[NextEPC](https://nextepc.com/)**: Established in U.S. in 2019, NextEPC Inc. provides the latest wireless telecommunications technologies and outstanding support to wireless solution providers and vendors around the world. Their solutions include scalable and versatile 4G/5G core network systems. They also offer professional development and customization services for Enterprise users.
Please contact [sales@nextepc.com](mailto:sales@nextepc.com) for more informations.
### For Open Source Projects
For developers of Free Open Source Software ("FOSS") applications under the AGPL-3.0 that want to combine and distribute those FOSS applications with Open5GS software, Open5GS open source software licensed under the AGPL-3.0 is the best option.
[sysmocom](https://sysmocom.de/) is providing commercial services around Open5GS
open source software including support, development, consulting, training and system integration.
**[sysmocom](https://sysmocom.de/)**: Sysmocom was founded in Berlin, Germany by two veterans of the Free / Open Source Software (FOSS) community. They are providing commercial services around Open5GS open source software including support, development, consulting, training and system integration.
Please contact [Harald Welte \<sales@sysmocom.de\>](mailto:sales@sysmocom.de) for any related inquiries.

View File

@@ -52,7 +52,7 @@ true
$ git checkout v2.1.7
$ cd webui
$ rm -Rf ./node_modules
$ npm ci --no-optional
$ npm ci
$ npm run dev
## You should log out
@@ -60,7 +60,7 @@ $ npm run dev
$ git checkout main
$ cd webui
$ rm -Rf ./node_modules
$ npm ci --no-optional
$ npm ci
$ npm run dev
## You can log back in

View File

@@ -46,7 +46,7 @@ true
$ git checkout v2.1.7
$ cd webui
$ rm -Rf ./node_modules
$ npm ci --no-optional
$ npm ci
$ npm run dev
## You should log out
@@ -54,7 +54,7 @@ $ npm run dev
$ git checkout main
$ cd webui
$ rm -Rf ./node_modules
$ npm ci --no-optional
$ npm ci
$ npm run dev
## You can log back in

View File

@@ -42,7 +42,7 @@ true
$ git checkout v2.1.7
$ cd webui
$ rm -Rf ./node_modules
$ npm ci --no-optional
$ npm ci
$ npm run dev
## You should log out
@@ -50,7 +50,7 @@ $ npm run dev
$ git checkout main
$ cd webui
$ rm -Rf ./node_modules
$ npm ci --no-optional
$ npm ci
$ npm run dev
## You can log back in

View File

@@ -36,7 +36,7 @@ true
$ git checkout v2.1.7
$ cd webui
$ rm -Rf ./node_modules
$ npm ci --no-optional
$ npm ci
$ npm run dev
## You should log out
@@ -44,7 +44,7 @@ $ npm run dev
$ git checkout main
$ cd webui
$ rm -Rf ./node_modules
$ npm ci --no-optional
$ npm ci
$ npm run dev
## You can log back in

View File

@@ -1,6 +1,6 @@
---
title: "v2.4.6 - Gy interface provided by sysmocom"
date: 2022-05-17 10:45:00 +0900
title: "v2.4.7 - Gy interface provided by sysmocom"
date: 2022-05-21 19:42:00 +0900
categories:
- Release
tags:
@@ -14,6 +14,8 @@ head_inline: "<style> ul { padding-bottom: 1em; } .blue { color: blue; }</style>
- [GTP] X2 Handover with SGW relocation ([#1367](https://github.com/open5gs/open5gs/issues/1367), [#1459](https://github.com/open5gs/open5gs/issues/1459)) -- [pespin](https://github.com/pespin), [cbrasho](https://github.com/cbrasho)
#### Enhancements
- [GY] Clarify use of Reporting-Request and set it to FINAL in TERMINATION_REQ ([#1552](https://github.com/open5gs/open5gs/pull/1552)) -- [pespin](https://github.com/pespin)
- [SBI] Change handling of SessionManagementSubscriptionData as an array ([#1551](https://github.com/open5gs/open5gs/pull/1551)) -- [bmeglicit](https://github.com/bmeglicit)
- [PFCP] Support Multi-CP with One-UP ([c6c8dc1](https://github.com/open5gs/open5gs/commit/c6c8dc1256c304aea1fc44cd70fbaeb290f31ad3))
- [SMF] Use Only One PFCP Session Modification Message in the ViNR([e0a487f](https://github.com/open5gs/open5gs/commit/e0a487f479b7d916044d6595228de6211d548656))
- [SMF] Parallelize Gx+Gy CCR Initial ([#1491](https://github.com/open5gs/open5gs/pull/1491)) -- [pespin](https://github.com/pespin)
@@ -25,6 +27,9 @@ head_inline: "<style> ul { padding-bottom: 1em; } .blue { color: blue; }</style>
#### Bug Fixes
- [CORE] Fixed the linked-list BUG ([#1187](https://github.com/open5gs/open5gs/issues/1187)) -- [Vomvas](https://github.com/Vomvas)
- [SMF] Prevent concurrent access to ogs_pool allocating smf_event ([#1546](https://github.com/open5gs/open5gs/issues/1546)) -- [pespin](https://github.com/pespin)
- [DIAMETER] Fix AN-Trusted AVP sent in CCR ([#1542](https://github.com/open5gs/open5gs/pull/1542)) -- [herlesupreeth](https://github.com/herlesupreeth)
- [PFCP] Fixed incorrect memcpy usage ([#1531](https://github.com/open5gs/open5gs/issues/1531)) -- [pespin](https://github.com/pespin)
- [AMF] Fixed the bug Not Sending NG RESET Acknowledge ([#1525](https://github.com/open5gs/open5gs/issues/1525)) -- [mcatalancid](https://github.com/mcatalancid)
- [IPv6] IPv6 RS/RA with QFI Extended Header ([#1506](https://github.com/open5gs/open5gs/issues/1506)) -- [irazairspan](https://github.com/irazairspan)
@@ -36,5 +41,5 @@ head_inline: "<style> ul { padding-bottom: 1em; } .blue { color: blue; }</style>
- [GX] Prevent sending Gx messages to non-PCRF Diameter peers ([#1468](https://github.com/open5gs/open5gs/pull/1468)) -- [pespin](https://github.com/pespin)
- [AMF] AMF crashes when requesting a PDU session for a S-NSSAI with an SST when the network is configured with multiple S-NSSAIs with the same SST ([#1440](https://github.com/open5gs/open5gs/issues/1440)) -- [dcandal-gti](https://github.com/dcandal-gti)
Download -- [v2.4.6.tar.gz](https://github.com/open5gs/open5gs/archive/v2.4.6.tar.gz)
Download -- [v2.4.7.tar.gz](https://github.com/open5gs/open5gs/archive/v2.4.7.tar.gz)
{: .notice--info}

View File

@@ -0,0 +1,30 @@
---
title: "v2.4.8 - Upgrade PFCP to v16.9.1"
date: 2022-06-12 16:35:00 +0900
categories:
- Release
tags:
- News
- Release
head_inline: "<style> ul { padding-bottom: 1em; } .blue { color: blue; }</style>"
---
#### New Features
- [Metrics] Initial metrics support based on Prometheus ([#1571](https://github.com/open5gs/open5gs/pull/1571)) -- [pespin](https://github.com/pespin)
#### Enhancements
- [PFCP] Upgrade PFCP to v16.9.1 -- [1235317](https://github.com/open5gs/open5gs/commit/12353178fb7c15a5c78035e19501412af9c76ad0)
- [NRF] Don't abort if there are too many registered NF instances ([#1579](https://github.com/open5gs/open5gs/pull/1579)) -- [mitmitmitm](https://github.com/mitmitmitm)
- [SGW-C] Consider if SMF/PGW GTPv2-C address changed ([#1560](https://github.com/open5gs/open5gs/issues/1560)) -- [pespin](https://github.com/pespin)
- [CLI] Added four addtional commands in dbctl ([#1562](https://github.com/open5gs/open5gs/pull/1562)) -- [mcatalancid](https://github.com/mcatalancid)
- [GY] Gy+PFCP improvements ([#1555](https://github.com/open5gs/open5gs/pull/1555)) -- [pespin](https://github.com/pespin)
#### Bug Fixes
- [AMF] Added to handle an invalid RI(Routing Indicator) ([#1570](https://github.com/open5gs/open5gs/issues/1570)) -- [ray28850101](https://github.com/ray28850101)
- [SBI] Re-enabling HTTP/1.1 ([#1254](https://github.com/open5gs/open5gs/issues/1254)) -- [hidingturtle](https://github.com/hidingturtle), [22username2022](https://github.com/22username2022)
- [GTP] GTP-U address does not change when gNB with IPv6-only changes
([#1515](https://github.com/open5gs/open5gs/issues/1515), [#1586](https://github.com/open5gs/open5gs/issues/1586)) -- [irazairspan](https://github.com/irazairspan), [dmartyushev](https://github.com/dmartyushev)
Download -- [v2.4.8.tar.gz](https://github.com/open5gs/open5gs/archive/v2.4.8.tar.gz)
{: .notice--info}

View File

@@ -0,0 +1,52 @@
---
title: "v2.4.9 - Default MCC/MNC from 901/70 to 999/70"
date: 2022-07-25 20:52:00 +0900
categories:
- Release
tags:
- News
- Release
head_inline: "<style> ul { padding-bottom: 1em; } .blue { color: blue; }</style>"
---
#### New Features
- [CONF] Changed default MCC/MNC from 901/70 to 999/70 -- [b58ebda](https://github.com/open5gs/open5gs/commit/b58ebda556cf0278fd361bcd6ca044502398e6dc)
- [MISC] Added static analysis & Fixed the results ([#1638](https://github.com/open5gs/open5gs/pull/1638)) -- [bmeglicit](https://github.com/bmeglicit)
#### Enhancements
- [SBI] Support Discovery Optional Parameter -- [a5010a6](https://github.com/open5gs/open5gs/commit/a5010a61effce92fe9dfb2cbf8df1f04ddc1de64), [9b76215](https://github.com/open5gs/open5gs/commit/9b762158a6ef3f8c4f3967d04e01d1a13cc9908a)
- [SMF] Send PDU Session Establish Accept to serving AMF ([#1671](https://github.com/open5gs/open5gs/pull/1671)) -- [bmeglicit](https://github.com/bmeglicit)
- [MME] Introduce support for handling Charging Characteristics from HSS ([#1673](https://github.com/open5gs/open5gs/pull/1673)) -- [jmasterfunk84](https://github.com/jmasterfunk84)
- [MME] Set default Network-Access-Mode to 0 ([#1672](https://github.com/open5gs/open5gs/pull/1672)) -- [jmasterfunk84](https://github.com/jmasterfunk84)
- [AMF] Handle namf-callback DeregNotify message from UDM ([#1654](https://github.com/open5gs/open5gs/pull/1654)) -- [bmeglicit](https://github.com/bmeglicit)
- [Systemd] upf.postinst: Don't restart service in chroot ([#1644](https://github.com/open5gs/open5gs/pull/1644)) -- [osmith42](https://github.com/osmith42)
- [PFCP] Added UE IP address in Uplink PDR rules ([#1642](https://github.com/open5gs/open5gs/pull/1642)) -- [Networkmama](https://github.com/Networkmama)
- [TLV] Changed MAX TLV More to 16 -- [051c19b](https://github.com/open5gs/open5gs/commit/051c19b7c8277ecf0465eb895249e9e520ba5e63)
- [PFCP] Error code paths replaced with asserts() ([#1635](https://github.com/open5gs/open5gs/pull/1635)) -- [pespin](https://github.com/pespin)
- [PFCP/GTP] context when TEID=0, SEID=0 ([#1594](https://github.com/open5gs/open5gs/pull/1594), [#1606](https://github.com/open5gs/open5gs/pull/1606), [#1620](https://github.com/open5gs/open5gs/pull/1620)) -- [pespin](https://github.com/pespin)
- [SMF] Gn: QoS Profile and PCO IE improvements ([#1631](https://github.com/open5gs/open5gs/pull/1631)) -- [pespin](https://github.com/pespin)
- [PFCP] Added Network Instance to CP-UP FAR ([#1630](https://github.com/open5gs/open5gs/pull/1630)) -- [Networkmama](https://github.com/Networkmama)
- [PFCP] Added DNN/APN in FAR ([#1629](https://github.com/open5gs/open5gs/pull/1629)) -- [Networkmama](https://github.com/Networkmama)
- [PFCP] Set v4/6 flag in F-TEID IE request type ([#1625](https://github.com/open5gs/open5gs/pull/1625)) -- [Networkmama](https://github.com/Networkmama)
- [SMF] pfcp-sm: Fix ogs_fsm_dispatch() on NULL sess ([#1628](https://github.com/open5gs/open5gs/pull/1628)) -- [pespin](https://github.com/pespin)
- [UPF] Avoid crash if no default subnet configured ([#1624](https://github.com/open5gs/open5gs/pull/1624)) -- [pespin](https://github.com/pespin)
- [SMF] Gy: Send Multiple-Services-Indicator AVP only during Initial CCR ([#1616](https://github.com/open5gs/open5gs/pull/1616)) -- [pespin](https://github.com/pespin)
- [Docker] Use local sources to build applications ([#1583](https://github.com/open5gs/open5gs/pull/1583)) -- [bmeglicit](https://github.com/bmeglicit)
- [SBI] Change nf-instance-id to Optional in nf-instance context -- [c528e0d](https://github.com/open5gs/open5gs/commit/c528e0d5bc258336ab302efe08df7ca5472d0134)
- [CLI] Added show commands in the dbctl ([#1613](https://github.com/open5gs/open5gs/pull/1613)) -- [JagannathS](https://github.com/JagannathS)
#### Bug Fixes
- [AMF] Fixed 5GMM cause in 5GMM reject message ([#1660](https://github.com/open5gs/open5gs/issues/1660)) -- [takgr](https://github.com/takgr)
- [ASN1C] Rework APER from [mouse07410/asn1c#94](https://github.com/mouse07410/asn1c/issues/94)
- [TEST] Fixed a crash for UERANSIM 500 Test ([#1652](https://github.com/open5gs/open5gs/pull/1652)) -- [lemon1009](https://github.com/lemon1009)
- [SBI] from NRF with wrong requester-nf-type ([#1650](https://github.com/open5gs/open5gs/issues/1650)) -- [bmeglicit](https://github.com/bmeglicit)
- [PFCP] Fixed a endianness of OGS_PFCP_APPLY_ACTION ([#1640](https://github.com/open5gs/open5gs/issues/1640)) -- [mitmitmitm](https://github.com/mitmitmitm)
- [DBI] Fixed a crash when slice/session overflow ([#1637](https://github.com/open5gs/open5gs/issues/1637)) -- [jmasterfunk84](https://github.com/jmasterfunk84)
- [AMF/MME] Added a protection code for SCTP jumbo frame ([#1632](https://github.com/open5gs/open5gs/issues/1632)) -- [kbaccar](https://github.com/kbaccar)
- [SBI] Fix memory leak for nghttp2 session ([#1618](https://github.com/open5gs/open5gs/pull/1618)) -- [bmeglicit](https://github.com/bmeglicit)
- [MME/AMF] Fixed network name encoding ([#1614](https://github.com/open5gs/open5gs/issues/1614)) -- [Mozartor2](https://github.com/Mozartor2)
- [SBI] Fixed invalid read beyond allocated memory ([#1610](https://github.com/open5gs/open5gs/pull/1610)) -- [bmeglicit](https://github.com/bmeglicit)
- [CORE] Compare port in ogs_sockaddr_is_equal() ([#1608](https://github.com/open5gs/open5gs/pull/1608)) -- [pespin](https://github.com/pespin)
Download -- [v2.4.9.tar.gz](https://github.com/open5gs/open5gs/archive/v2.4.9.tar.gz)
{: .notice--info}

View File

@@ -0,0 +1,58 @@
---
title: "v2.4.12 - Service-name based NF Discovery"
date: 2022-11-18 22:00:00 +0900
categories:
- Release
tags:
- News
- Release
head_inline: "<style> ul { padding-bottom: 1em; } .blue { color: blue; }</style>"
---
#### New Features
- [CONF] Service-name based NF Discovery -- [f020732](https://github.com/open5gs/open5gs/commit/f020732ce9f60217dfcd0b7e9ba5c8949db966d5), [9f98d42](https://github.com/open5gs/open5gs/commit/9f98d421a081a5edc3a525d1cf2504b8b6cf059e), [5295c10](https://github.com/open5gs/open5gs/commit/5295c108adc2fc5ae97ee5007760334ef7a6297b)
#### Enhancements
- [SBI] Move state machine from src to lib directory -- [e6a14cb](https://github.com/open5gs/open5gs/commit/e6a14cb73debbdc21e91499b75dde3d71a5aa02b)
- [SBI] Increased the MAX stream number from UE * 16 -- [db37bc8](https://github.com/open5gs/open5gs/commit/db37bc894459df38661bdf98891938ec3513bc72), [ec9fe7b](https://github.com/open5gs/open5gs/commit/ec9fe7b31d0253003244be498e8f963da63e7657), [603a746](https://github.com/open5gs/open5gs/commit/603a746f49c68b06ab5d8b3ceeca3afde987cab5)
- [Diameter] Improve S6A interface ([#1676](https://github.com/open5gs/open5gs/pull/1676), [#1698](https://github.com/open5gs/open5gs/pull/1698), [#1714](https://github.com/open5gs/open5gs/pull/1714)) -- [jmasterfunk84](https://github.com/jmasterfunk84)
- [MME] Added protection code if no PDN-Type ([#1756](https://github.com/open5gs/open5gs/pull/1756)) -- [yar-or81](https://github.com/yar-or81)
- [Metric] Move metrics configuration section under respective ([#1754](https://github.com/open5gs/open5gs/pull/1754)) -- [bmeglicit](https://github.com/bmeglicit)
- [Diameter] Enable Change Streams ([#1758](https://github.com/open5gs/open5gs/pull/1758)) -- [jmasterfunk84](https://github.com/jmasterfunk84)
- [AMF] Added amfInfoList to NFProfile ([#1757](https://github.com/open5gs/open5gs/pull/1757)) -- [gstaa](https://github.com/gstaa)
- [TLV] Acceptable even if the TLV length is smaller than expected ([#1780](https://github.com/open5gs/open5gs/discussions/1780)) -- [infinitydon](https://github.com/infinitydon)
- [Diameter] Introduce Cancel Location and Insert Subscription Data ([#1744](https://github.com/open5gs/open5gs/pull/1744)) -- [jmasterfunk84](https://github.com/jmasterfunk84)
#### Security Issues
- [PFCP] Fixed security protection -- [CVE-2022-39063](https://cve.report/CVE-2022-39063), [d99491a](https://github.com/open5gs/open5gs/commit/d99491aca5304460d3929b37bf26e064efd86686), [444e182](https://github.com/open5gs/open5gs/commit/444e1822887a78d3c3ef1f0bcaad9ee10ac951c3)
- [SBI] Fixed HTTP2 crash from random JSON data ([#1679](https://github.com/open5gs/open5gs/issues/1679)) -- [Popvlvs](https://github.com/Popvlvs)
- [TLV] UPF crashes after UDP port scan ([#1767](https://github.com/open5gs/open5gs/issues/1767)) -- [Popvlvs](https://github.com/Popvlvs)
#### Bug Fixes
- [SBI] Fixed memory leak and CPU usage 100% -- [7231daf](https://github.com/open5gs/open5gs/commit/7231dafbf12c2009ec6fe740686342e2c5d245a2), [c716a12](https://github.com/open5gs/open5gs/commit/c716a1294a6120f4100ba2efa9039f6168d74ce7)
- [Metrics] Fixed double-free on application exit load error ([#1717](https://github.com/open5gs/open5gs/issues/1717)) -- [bmeglicit](https://github.com/bmeglicit)
- [NRF] Fixed library load error -- [9b10d70](https://github.com/open5gs/open5gs/commit/9b10d70c7730ba86800b85fe05260c5bb072d91e)
- [SMF] Fixed abort on app exit when no diameter configuration -- ([#1710](https://github.com/open5gs/open5gs/issues/1710)) -- [bmeglicit](https://github.com/bmeglicit)
- [MME] Fixed crash on sending SMS between UEs -- ([#1701](https://github.com/open5gs/open5gs/issues/1701)) -- [salibeh](https://github.com/salibeh)
- [MME] Fixed GTP transaction crash if it has already been removed during paging-- ([#1696](https://github.com/open5gs/open5gs/issues/1696)) -- [vsbc2010](https://github.com/vsbc2010)
- [5GC] Session deletion was not properly worked in BSF([#1725](https://github.com/open5gs/open5gs/issues/1725)) -- [prasenjitpdas](https://github.com/prasenjitpdas)
- [AMF] In deregistration state, we use an invalid state-machine pointer. ([#1805](https://github.com/open5gs/open5gs/pull/1805)) -- [bmeglicit](https://github.com/bmeglicit)
- [SGWC] Fixed crash because session context could be deleted before response message is not received from SMF ([#1765](https://github.com/open5gs/open5gs/issues/1765)) -- [dai9000](https://github.com/dai9000)
- [SMF] Wait for both N1&N2 release signals before releasing session ([#1753](https://github.com/open5gs/open5gs/pull/1753)) -- [bmeglicit](https://github.com/bmeglicit)
- [UPF] UL and DL URR usage Report was swapped ([#1793](https://github.com/open5gs/open5gs/issues/1793)) -- [dibasdas02](https://github.com/dibasdas02)
- [CORE] Fixed timer overflow on 32bit systems ([#1770](https://github.com/open5gs/open5gs/pull/1770)) -- [spencersevilla](https://github.com/spencersevilla)
#### Specification Compliance
- [5GC] Handle APN/DNN names as case-insensitive ([#1747](https://github.com/open5gs/open5gs/pull/1747)) -- [jmasterfunk84](https://github.com/jmasterfunk84)
- [AMF] Accept Deregistration Notification from UDM only for registered UE -- ([#1737](https://github.com/open5gs/open5gs/pull/1737)) -- [bmeglicit](https://github.com/bmeglicit)
- [SBI] Send NF discovery query with service-names delimited with comma -- ([#1730](https://github.com/open5gs/open5gs/pull/1730)) -- [bmeglicit](https://github.com/bmeglicit)
- [Gx] Handle upCnxState=ACTIVATION by later replaying with 200 instead of 204 ([#1729](https://github.com/open5gs/open5gs/pull/1729)) -- [mitmitmitm](https://github.com/mitmitmitm)
- [MME] Fixed buffer overflow in S6A IDR([#1728](https://github.com/open5gs/open5gs/pull/1728)) -- [mitmitmitm](https://github.com/mitmitmitm)
- [Gx] Added 3GPP-Charging-Characteristics if received on S5/8c ([#1724](https://github.com/open5gs/open5gs/pull/1724)) -- [lynxis](https://github.com/lynxis)
- [S5c/Gn] Fix PCO IE sent in response its presence in request ([#1691](https://github.com/open5gs/open5gs/pull/1691)) -- [herlesupreeth](https://github.com/herlesupreeth)
- [Diameter] Fixed the path of Nnrf_NFManagement Service ([#1683](https://github.com/open5gs/open5gs/issues/1683)) -- [s5uishida](https://github.com/s5uishida)
- [Diameter] Fixed AVP Occurring Too Many Times ([#1680](https://github.com/open5gs/open5gs/pull/1680)) -- [jmasterfunk84](https://github.com/jmasterfunk84)
Download -- [v2.4.12.tar.gz](https://github.com/open5gs/open5gs/archive/v2.4.12.tar.gz)
{: .notice--info}

View File

@@ -0,0 +1,99 @@
---
title: "v2.5.6 - SCP for Indirect Communication"
date: 2022-11-18 22:59:00 +0900
categories:
- Release
tags:
- News
- Release
head_inline: "<style> ul { padding-bottom: 1em; } .blue { color: blue; }</style>"
---
#### New Feature
SCP(Service Communication Proxy) is added to support Indirect Communication based on TS29.500. The default Open5GS configuration is provided as an indirect communication using SCP.
- [amf.yaml] If NFs are configured to use Delegated Discovery through the SCP, you do not need to set up NRF.
```
amf:
sbi:
- addr: 127.0.0.5
port: 7777
scp:
sbi:
- addr: 127.0.1.10
port: 7777
#nrf:
# sbi:
# - addr:
# - 127.0.0.10
# - ::1
# port: 7777
```
- [scp.yaml] NRF is needed for Delegated Discovery in SCP configuration.
```
scp:
sbi:
- addr: 127.0.1.10
port: 7777
#
# next_scp:
# sbi:
# addr: 127.0.1.11
# port: 7777
#
nrf:
sbi:
- addr:
- 127.0.0.10
- ::1
port: 7777
```
- [nrf.yaml] If there is an SCP in the NRF configuration, a notification(nnrf-nfm/nf-status-notify) is sent through an indirect communication.
```
nrf:
sbi:
addr:
- 127.0.0.10
- ::1
port: 7777
scp:
sbi:
- addr: 127.0.1.10
port: 7777
```
#### Enhancements
- [WebUI/DB] Fixed the WebUI to Support MongoDB 6.0 ([#1824](https://github.com/open5gs/open5gs/issues/1824)) -- [bmeglicit](https://github.com/bmeglicit)
- [NAS] Discard NAS message if integrity is failed ([#1848](https://github.com/open5gs/open5gs/pull/1848)) -- [jmasterfunk84](https://github.com/jmasterfunk84)
- [AMF] Support REREGISTRATION_REQUIRED in dereg notify ([#1858](https://github.com/open5gs/open5gs/pull/1858)) -- [mitmitmitm](https://github.com/mitmitmitm)
- [SMF] Support Security Indication IE for 5G-SA UP integrity and confidentiality([#1851](https://github.com/open5gs/open5gs/discussions/1851)) -- [irazairspan](https://github.com/irazairspan)
- [DBI] Disable Changes Streams with mongo Version ([#1833](https://github.com/open5gs/open5gs/pull/1833)) -- [jmasterfunk84](https://github.com/jmasterfunk84)
- [SBI] Added 3gpp-Sbi-Sender-Timestamp and 3gpp-Sbi-Max-Rsp-Time -- [7c8722d](https://github.com/open5gs/open5gs/commit/7c8722d9d4d2db13d889be1e5e37bc062f069396)
- [MME] Cancel Location while Idle ([#1797](https://github.com/open5gs/open5gs/pull/1797)) -- [jmasterfunk84](https://github.com/jmasterfunk84)
- [MME] Support for Insert Subscriber Data ([#1794](https://github.com/open5gs/open5gs/pull/1794)) -- [jmasterfunk84](https://github.com/jmasterfunk84)
#### Bug Fixes
- [AMD] Added implicit_unsubscribe field to SDMSubscription ([#1884](https://github.com/open5gs/open5gs/pull/1884)) -- [bmeglicit](https://github.com/bmeglicit)
- [SMF] Fixed PTI when PDU Session Reject -- [ddf09f2](https://github.com/open5gs/open5gs/commit/ddf09f270aaaaae67ac9ec1c157b4b28f1c90d10)
- [SBI] Do not send empty arrays in NRF/PCF ([#1876](https://github.com/open5gs/open5gs/pull/1876)) -- [bmeglicit](https://github.com/bmeglicit)
- [SGW-C] Fixed the bug of SGW-C session deletion ([#1825](https://github.com/open5gs/open5gs/pull/1825)) -- [dai9000](https://github.com/dai9000), [cmmacneill53](https://github.com/cmmacneill53)
- [AMF] Reject registration requests when pool for UE context is empty ([#1828](https://github.com/open5gs/open5gs/pull/1828)) -- [bmeglicit](https://github.com/bmeglicit)
- [AMF] Increase size of TMSI pool ([#1827](https://github.com/open5gs/open5gs/pull/1827)) -- [bmeglicit](https://github.com/bmeglicit)
- [AMF/UDM] Added support to subscribe to SDM changes ([#1820](https://github.com/open5gs/open5gs/pull/1820)) -- [bmeglicit](https://github.com/bmeglicit)
- [PFCP] Do not check qos_flow in PFCP Report message ([#1819](https://github.com/open5gs/open5gs/pull/1819)) -- [ssafaorhan](https://github.com/ssafaorhan)
- [PFCP] Fixed invalid message of Dropped DL Traffic threshold ([#1817](https://github.com/open5gs/open5gs/pull/1817)) -- [ssafaorhan](https://github.com/ssafaorhan)
Download -- [v2.5.6.tar.gz](https://github.com/open5gs/open5gs/archive/v2.5.6.tar.gz)
{: .notice--info}

View File

@@ -0,0 +1,32 @@
---
title: "v2.4.14 and v2.5.8 - Bug Fixes"
date: 2023-01-23 11:04:00 +0900
categories:
- Release
tags:
- News
- Release
head_inline: "<style> ul { padding-bottom: 1em; } .blue { color: blue; }</style>"
---
#### Security Issues
- [UPF] Fixed an infinite loop when ext_len is 0 -- [2319375](https://github.com/open5gs/open5gs/commit/2319375ea7084e6e9f5db6f16853f7f8c146aa86)
#### Bug Fixes
- [PROTO] Increased SDU buffer from 8k to 16k ([#2008](https://github.com/open5gs/open5gs/issues/2008)) -- [Sabreu](https://github.com/Sabreu)
- [AMF] Fixed a memory leak ([#1925](https://github.com/open5gs/open5gs/issues/1925)) -- [irazairspan](https://github.com/irazairspan)
- [UPF] Fixed a bug when 2 PDRs with same TEID ([#2003](https://github.com/open5gs/open5gs/issues/2003)) -- [shizw2](https://github.com/shizw2)
- [PCRF] Fixed a crash when switching between video and audio. ([#1981](https://github.com/open5gs/open5gs/issues/1981)) -- [lglhust](https://github.com/lglhust)
- [MME] Sending UEContextReleaseCommand after Attach-Reject to clear UE Context ([#1848](https://github.com/open5gs/open5gs/issues/1848)) -- [jmasterfunk84](https://github.com/jmasterfunk84)
- [SBI] Case-Insensitive inside MIME message ([#1939](https://github.com/open5gs/open5gs/issues/1939)) -- [congzee](https://github.com/congzee)
- [AMF] Fixed a problem of SMF selection -- ([#1929](https://github.com/open5gs/open5gs/pull/1929)) -- [miguelbf-alb](https://github.com/miguelbf-alb)
- [AMF] Fixed a crash while NG_Reset in response for UE_Context_Release_Command ([#1928](https://github.com/open5gs/open5gs/issues/1928)) -- [mateuszmichalskiacc](https://github.com/mateuszmichalskiacc)
- [AMF] Wrongly sending NG-AP "PDU Session Release" to gNodeB when gNodeB does not have a PDU Session ([#1925](https://github.com/open5gs/open5gs/issues/1925)) -- [irazairspan](https://github.com/irazairspan)
- [AMF/MME] Forgetting the UE Radio Capabilities when UE is sending NAS "De-Registration Request" with "type = Switch-Off" ([#1917](https://github.com/open5gs/open5gs/issues/1917)) -- [irazairspan](https://github.com/irazairspan)
- [SMF/UPF] Fixed stack overflow on small memory like Alpine. ([#1911](https://github.com/open5gs/open5gs/issues/1911)) -- [maikovisky](https://github.com/maikovisky)
- [AMF/MME] Refactoring common_register_state() to prevent a crash ([#1912](https://github.com/open5gs/open5gs/issues/1912)) -- [lemon1009](https://github.com/lemon1009)
- [UPF] Packet buffer must be freed after sending replay message -- ([#1936](https://github.com/open5gs/open5gs/pull/1936)) -- [lester-001](https://github.com/lester-001)
- [AMF] Added safety code to prevent crash while getting amf_ue from sess -- ([#1913](https://github.com/open5gs/open5gs/pull/1913)) -- [lester-001](https://github.com/lester-001)
Download -- [v2.5.8.tar.gz](https://github.com/open5gs/open5gs/archive/v2.5.8.tar.gz)
{: .notice--info}

View File

@@ -0,0 +1,35 @@
---
title: "v2.4.15 and v2.5.9 - Bug Fixes"
date: 2023-03-06 21:44:00 +0900
categories:
- Release
tags:
- News
- Release
head_inline: "<style> ul { padding-bottom: 1em; } .blue { color: blue; }</style>"
---
#### Security Issues
- [PFCP/GTP] Fixed security bug (#2127,#2128,#2129)
([#2127](https://github.com/open5gs/open5gs/issues/2127), [#2128](https://github.com/open5gs/open5gs/issues/2128), [#2129](https://github.com/open5gs/open5gs/issues/2129)) -- [pventuzelo](https://github.com/pventuzelo)
#### Bug Fixes
- [AMF] Disallow handling service requests unless UE is already registered ([#2069](https://github.com/open5gs/open5gs/pull/2069)) -- [bmeglicit](https://github.com/bmeglicit)
- [SBI] Fixed openapitools MAP generation ([#2103](https://github.com/open5gs/open5gs/issues/2103)) -- [alonsocamaro](https://github.com/alonsocamaro)
- [SBI] Fix possible crash when handling PatchItems in NFProfile PATCH req ([#2069](https://github.com/open5gs/open5gs/pull/2069)) -- [bmeglicit](https://github.com/bmeglicit)
- [MME] KeNB derive from TAU(active flag=1) ([#2063](https://github.com/open5gs/open5gs/issues/2063)) -- [Sabreu](https://github.com/Sabreu)
- [AMF/MME] UE capability deletion ([#1917](https://github.com/open5gs/open5gs/issues/1917),[#2040](https://github.com/open5gs/open5gs/issues/2040)) -- [irazairspan](https://github.com/irazairspan), [Sabreu](https://github.com/Sabreu)
- [SBI] Open5GS now checks User-AGENT only in SCP. ([#2049](https://github.com/open5gs/open5gs/issues/2049)) -- [Borjis131](https://github.com/Borjis131)
- [NF] Fix double-free crash when NF is under heavy load ([#2048](https://github.com/open5gs/open5gs/pull/2048)) -- [bmeglicit](https://github.com/bmeglicit)
- [CORE] Add defense code to ogs_pkbuf_copy ([#2032](https://github.com/open5gs/open5gs/issues/2032)) -- [ahankak](https://github.com/ahankak)
- [NRF] Fixed a crash during NRF discovery ([#2034](https://github.com/open5gs/open5gs/issues/2034)) -- [gustavobsch](https://github.com/gustavobsch)
- Added Service-MAP to Requester-Features in Discovery Option ([#2027](https://github.com/open5gs/open5gs/issues/2027)) -- [gustavobsch](https://github.com/gustavobsch)
- [AMF] Fixed a crash on explicit network-initiated deregister ([#2021](https://github.com/open5gs/open5gs/issues/2021)) -- [gstaa](https://github.com/gstaa)
- [AMF] Fixed crashed from malformed 5GS-ID ([#2020](https://github.com/open5gs/open5gs/issues/2020)) -- [p1-bmu](https://github.com/p1-bmu)
- [AMF/MME] Not assert for ogs_asn_copy_ie() ([#2018](https://github.com/open5gs/open5gs/issues/2018)) -- [p1-bmu](https://github.com/p1-bmu)
- [AMF] Fixed a crash when no UE context ([#2016](https://github.com/open5gs/open5gs/issues/2016)) -- [Sabreu](https://github.com/Sabreu)
- [AMF] Failed to encode ASN-PDU for very large UERadioCapability size ([#2008](https://github.com/open5gs/open5gs/issues/2008)) -- [Sabreu](https://github.com/Sabreu)
- [AMF] Fixed crash if no BW Unit(Xbps) ([#2000](https://github.com/open5gs/open5gs/issues/2000)) -- [oktavlachs](https://github.com/oktavlachs)
Download -- [v2.5.9.tar.gz](https://github.com/open5gs/open5gs/archive/v2.5.9.tar.gz)
{: .notice--info}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

View File

@@ -10,7 +10,7 @@
#
PACKAGE="open5gs"
VERSION="2.4.7"
VERSION="2.5.6"
print_status() {
echo
@@ -93,18 +93,23 @@ preinstall() {
PRE_INSTALL_PKGS=""
if [ ! -x /usr/bin/lsb_release ]; then
PRE_INSTALL_PKGS="${PRE_INSTALL_PKGS} lsb-release"
# Check that HTTPS transport is available to APT
# (Check snaked from: https://get.docker.io/ubuntu/)
if [ ! -e /usr/lib/apt/methods/https ]; then
PRE_INSTALL_PKGS="${PRE_INSTALL_PKGS} apt-transport-https"
fi
if [ ! -x /usr/bin/node ] && [ ! -x /usr/bin/wget ]; then
PRE_INSTALL_PKGS="${PRE_INSTALL_PKGS} nodejs"
if [ ! -x /usr/bin/lsb_release ]; then
PRE_INSTALL_PKGS="${PRE_INSTALL_PKGS} lsb-release"
fi
if [ ! -x /usr/bin/curl ] && [ ! -x /usr/bin/wget ]; then
PRE_INSTALL_PKGS="${PRE_INSTALL_PKGS} curl"
fi
# Used by apt-key to add new keys
if [ ! -x /usr/bin/gpg ]; then
PRE_INSTALL_PKGS="${PRE_INSTALL_PKGS} gnupg"
fi
@@ -114,9 +119,17 @@ exec_cmd 'apt-get update'
if [ "X${PRE_INSTALL_PKGS}" != "X" ]; then
print_status "Installing packages required for setup:${PRE_INSTALL_PKGS}..."
# This next command needs to be redirected to /dev/null or the script will bork
# in some environments
exec_cmd "apt-get install -y${PRE_INSTALL_PKGS} > /dev/null 2>&1"
fi
IS_PRERELEASE=$(lsb_release -d | grep 'Ubuntu .*development' >& /dev/null; echo $?)
if [[ $IS_PRERELEASE -eq 0 ]]; then
print_status "Your distribution, identified as \"$(lsb_release -d -s)\", is a pre-release version of Ubuntu. NodeSource does not maintain official support for Ubuntu versions until they are formally released. You can try using the manual installation instructions available at https://github.com/nodesource/distributions and use the latest supported Ubuntu version name as the distribution identifier, although this is not guaranteed to work."
exit 1
fi
DISTRO=$(lsb_release -c -s)
check_alt() {
@@ -128,54 +141,76 @@ check_alt() {
fi
}
check_alt "SolydXK" "solydxk-9" "Debian" "stretch"
check_alt "Kali" "sana" "Debian" "jessie"
check_alt "Kali" "kali-rolling" "Debian" "jessie"
check_alt "Sparky Linux" "Tyche" "Debian" "stretch"
check_alt "Sparky Linux" "Nibiru" "Debian" "buster"
check_alt "MX Linux 17" "Horizon" "Debian" "stretch"
check_alt "MX Linux 18" "Continuum" "Debian" "stretch"
check_alt "MX Linux 19" "patito feo" "Debian" "buster"
check_alt "Linux Mint" "maya" "Ubuntu" "precise"
check_alt "Linux Mint" "qiana" "Ubuntu" "trusty"
check_alt "Linux Mint" "rafaela" "Ubuntu" "trusty"
check_alt "Linux Mint" "rebecca" "Ubuntu" "trusty"
check_alt "Linux Mint" "rosa" "Ubuntu" "trusty"
check_alt "Linux Mint" "sarah" "Ubuntu" "xenial"
check_alt "Linux Mint" "serena" "Ubuntu" "xenial"
check_alt "Linux Mint" "sonya" "Ubuntu" "xenial"
check_alt "Linux Mint" "sylvia" "Ubuntu" "xenial"
check_alt "Linux Mint" "tara" "Ubuntu" "bionic"
check_alt "Linux Mint" "tessa" "Ubuntu" "bionic"
check_alt "Linux Mint" "tina" "Ubuntu" "bionic"
check_alt "Linux Mint" "tricia" "Ubuntu" "bionic"
check_alt "LMDE" "betsy" "Debian" "jessie"
check_alt "LMDE" "cindy" "Debian" "stretch"
check_alt "elementaryOS" "luna" "Ubuntu" "precise"
check_alt "elementaryOS" "freya" "Ubuntu" "trusty"
check_alt "elementaryOS" "loki" "Ubuntu" "xenial"
check_alt "elementaryOS" "juno" "Ubuntu" "bionic"
check_alt "elementaryOS" "hera" "Ubuntu" "bionic"
check_alt "Trisquel" "toutatis" "Ubuntu" "precise"
check_alt "Trisquel" "belenos" "Ubuntu" "trusty"
check_alt "Trisquel" "flidas" "Ubuntu" "xenial"
check_alt "Uruk GNU/Linux" "lugalbanda" "Ubuntu" "xenial"
check_alt "BOSS" "anokha" "Debian" "wheezy"
check_alt "BOSS" "anoop" "Debian" "jessie"
check_alt "BOSS" "drishti" "Debian" "stretch"
check_alt "bunsenlabs" "bunsen-hydrogen" "Debian" "jessie"
check_alt "bunsenlabs" "helium" "Debian" "stretch"
check_alt "Tanglu" "chromodoris" "Debian" "jessie"
check_alt "PureOS" "green" "Debian" "sid"
check_alt "Devuan" "jessie" "Debian" "jessie"
check_alt "Devuan" "ascii" "Debian" "stretch"
check_alt "Devuan" "beowulf" "Debian" "buster"
check_alt "Devuan" "ceres" "Debian" "sid"
check_alt "Deepin" "panda" "Debian" "sid"
check_alt "Deepin" "unstable" "Debian" "sid"
check_alt "Deepin" "stable" "Debian" "buster"
check_alt "Pardus" "onyedi" "Debian" "stretch"
check_alt "Liquid Lemur" "lemur-3" "Debian" "stretch"
check_alt "Astra Linux" "orel" "Debian" "stretch"
check_alt "BOSS" "anokha" "Debian" "wheezy"
check_alt "BOSS" "anoop" "Debian" "jessie"
check_alt "BOSS" "drishti" "Debian" "stretch"
check_alt "BOSS" "unnati" "Debian" "buster"
check_alt "BOSS" "urja" "Debian" "bullseye"
check_alt "bunsenlabs" "bunsen-hydrogen" "Debian" "jessie"
check_alt "bunsenlabs" "helium" "Debian" "stretch"
check_alt "bunsenlabs" "lithium" "Debian" "buster"
check_alt "Devuan" "jessie" "Debian" "jessie"
check_alt "Devuan" "ascii" "Debian" "stretch"
check_alt "Devuan" "beowulf" "Debian" "buster"
check_alt "Devuan" "chimaera" "Debian" "bullseye"
check_alt "Devuan" "ceres" "Debian" "sid"
check_alt "Deepin" "panda" "Debian" "sid"
check_alt "Deepin" "unstable" "Debian" "sid"
check_alt "Deepin" "stable" "Debian" "buster"
check_alt "Deepin" "apricot" "Debian" "buster"
check_alt "elementaryOS" "luna" "Ubuntu" "precise"
check_alt "elementaryOS" "freya" "Ubuntu" "trusty"
check_alt "elementaryOS" "loki" "Ubuntu" "xenial"
check_alt "elementaryOS" "juno" "Ubuntu" "bionic"
check_alt "elementaryOS" "hera" "Ubuntu" "bionic"
check_alt "elementaryOS" "odin" "Ubuntu" "focal"
check_alt "elementaryOS" "jolnir" "Ubuntu" "focal"
check_alt "Kali" "sana" "Debian" "jessie"
check_alt "Kali" "kali-rolling" "Debian" "bullseye"
check_alt "Linux Mint" "maya" "Ubuntu" "precise"
check_alt "Linux Mint" "qiana" "Ubuntu" "trusty"
check_alt "Linux Mint" "rafaela" "Ubuntu" "trusty"
check_alt "Linux Mint" "rebecca" "Ubuntu" "trusty"
check_alt "Linux Mint" "rosa" "Ubuntu" "trusty"
check_alt "Linux Mint" "sarah" "Ubuntu" "xenial"
check_alt "Linux Mint" "serena" "Ubuntu" "xenial"
check_alt "Linux Mint" "sonya" "Ubuntu" "xenial"
check_alt "Linux Mint" "sylvia" "Ubuntu" "xenial"
check_alt "Linux Mint" "tara" "Ubuntu" "bionic"
check_alt "Linux Mint" "tessa" "Ubuntu" "bionic"
check_alt "Linux Mint" "tina" "Ubuntu" "bionic"
check_alt "Linux Mint" "tricia" "Ubuntu" "bionic"
check_alt "Linux Mint" "ulyana" "Ubuntu" "focal"
check_alt "Linux Mint" "ulyssa" "Ubuntu" "focal"
check_alt "Linux Mint" "uma" "Ubuntu" "focal"
check_alt "Linux Mint" "una" "Ubuntu" "focal"
check_alt "Linux Mint" "vanessa" "Ubuntu" "jammy"
check_alt "Liquid Lemur" "lemur-3" "Debian" "stretch"
check_alt "LMDE" "betsy" "Debian" "jessie"
check_alt "LMDE" "cindy" "Debian" "stretch"
check_alt "LMDE" "debbie" "Debian" "buster"
check_alt "LMDE" "elsie" "Debian" "bullseye"
check_alt "MX Linux 17" "Horizon" "Debian" "stretch"
check_alt "MX Linux 18" "Continuum" "Debian" "stretch"
check_alt "MX Linux 19" "patito feo" "Debian" "buster"
check_alt "MX Linux 21" "wildflower" "Debian" "bullseye"
check_alt "Pardus" "onyedi" "Debian" "stretch"
check_alt "Parrot" "ara" "Debian" "bullseye"
check_alt "PureOS" "green" "Debian" "sid"
check_alt "PureOS" "amber" "Debian" "buster"
check_alt "PureOS" "byzantium" "Debian" "bullseye"
check_alt "SolydXK" "solydxk-9" "Debian" "stretch"
check_alt "Sparky Linux" "Tyche" "Debian" "stretch"
check_alt "Sparky Linux" "Nibiru" "Debian" "buster"
check_alt "Sparky Linux" "Po-Tolo" "Debian" "bullseye"
check_alt "Tanglu" "chromodoris" "Debian" "jessie"
check_alt "Trisquel" "toutatis" "Ubuntu" "precise"
check_alt "Trisquel" "belenos" "Ubuntu" "trusty"
check_alt "Trisquel" "flidas" "Ubuntu" "xenial"
check_alt "Trisquel" "etiona" "Ubuntu" "bionic"
check_alt "Ubilinux" "dolcetto" "Debian" "stretch"
check_alt "Uruk GNU/Linux" "lugalbanda" "Ubuntu" "xenial"
if [ "X${DISTRO}" == "Xdebian" ]; then
print_status "Unknown Debian-based distribution, checking /etc/debian_version..."
@@ -188,31 +223,25 @@ if [ "X${DISTRO}" == "Xdebian" ]; then
fi
fi
if [ "X${DISTRO}" == "Xbuster" ]; then
if [ -f "/etc/apt/sources.list.d/mongodb-org.list" ]; then
print_status 'Removing Launchpad PPA Repository for MongoDB...'
exec_cmd "rm -f /etc/apt/sources.list.d/mongodb-org.list"
fi
print_status 'Removing Launchpad PPA Repository for MongoDB...'
for i in /etc/apt/sources.list.d/mongodb-org*; do
exec_cmd "rm -f $i"
done
print_status 'Adding the MongoDB signing key to your keyring...'
print_status 'Adding the MongoDB signing key to your keyring...'
if [ -x /usr/bin/curl ]; then
exec_cmd 'curl -s https://www.mongodb.org/static/pgp/server-4.2.asc | apt-key add -'
else
exec_cmd 'wget -qO- https://www.mongodb.org/static/pgp/server-4.2.asc | apt-key add -'
fi
print_status "Creating apt sources list file for the MongoDB repo..."
exec_cmd "echo 'deb http://repo.mongodb.org/apt/debian buster/mongodb-org/4.2 main' > /etc/apt/sources.list.d/mongodb-org.list"
if [ ! -x /usr/bin/mongod ]; then
MONGODB_INSTALL_PKGS="${MONGODB_INSTALL_PKGS} mongodb-org"
fi
if [ -x /usr/bin/curl ]; then
exec_cmd_nobail "curl -sLf 'https://www.mongodb.org/static/pgp/server-6.0.asc' | apt-key add -"
else
if [ ! -x /usr/bin/mongod ]; then
MONGODB_INSTALL_PKGS="${MONGODB_INSTALL_PKGS} mongodb"
fi
exec_cmd_nobail "wget -qO - 'https://www.mongodb.org/static/pgp/server-6.0.asc' | apt-key add -"
fi
print_status "Creating apt sources list file for the MongoDB repo..."
exec_cmd "echo 'deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/6.0 multiverse' > /etc/apt/sources.list.d/mongodb-org-6.0.list"
if [ ! -x /usr/bin/mongod ]; then
MONGODB_INSTALL_PKGS="${MONGODB_INSTALL_PKGS} mongodb-org"
fi
if [ "X${MONGODB_INSTALL_PKGS}" != "X" ]; then
@@ -230,7 +259,7 @@ if [ -x /usr/bin/curl ]; then
exec_cmd "curl -sLf 'https://github.com/open5gs/${PACKAGE}/archive/v${VERSION}.tar.gz' | tar zxf -"
RC=$?
else
exec_cmd "wget -qO- /dev/null 'https://github.com/open5gs/${PACKAGE}/archive/v${VERSION}.tar.gz' | tar zxf -"
exec_cmd "wget -qO - 'https://github.com/open5gs/${PACKAGE}/archive/v${VERSION}.tar.gz' | tar zxf -"
RC=$?
fi
@@ -240,7 +269,7 @@ if [[ $RC != 0 ]]; then
fi
print_status "Build the Open5GS WebUI..."
exec_cmd "cd ./${PACKAGE}-${VERSION}/webui && npm ci --no-optional && npm run build"
exec_cmd "cd ./${PACKAGE}-${VERSION}/webui && npm clean-install && npm run build"
print_status "Install the Open5GS WebUI..."
exec_cmd "mv ./${PACKAGE}-${VERSION}/webui /usr/lib/node_modules/${PACKAGE}"
@@ -267,23 +296,14 @@ EOF"
exec_cmd_nobail "systemctl daemon-reload"
exec_cmd "systemctl enable open5gs-webui"
exec_cmd "deb-systemd-invoke start open5gs-webui"
exec_cmd "rm -rf ./${PACKAGE}-${VERSION}"
}
postinstall() {
print_status "Default Administrator Account [Username:admin, Password:1423]..."
exec_cmd "mongosh open5gs ./${PACKAGE}-${VERSION}/docs/assets/webui/mongo-init.js"
exec_cmd "cat << EOF > ./account.js
db = db.getSiblingDB('open5gs')
cursor = db.accounts.find()
if ( cursor.count() == 0 ) {
db.accounts.insert({ salt: 'f5c15fa72622d62b6b790aa8569b9339729801ab8bda5d13997b5db6bfc1d997', hash: '402223057db5194899d2e082aeb0802f6794622e1cbc47529c419e5a603f2cc592074b4f3323b239ffa594c8b756d5c70a4e1f6ecd3f9f0d2d7328c4cf8b1b766514effff0350a90b89e21eac54cd4497a169c0c7554a0e2cd9b672e5414c323f76b8559bc768cba11cad2ea3ae704fb36abc8abc2619231ff84ded60063c6e1554a9777a4a464ef9cfdfa90ecfdacc9844e0e3b2f91b59d9ff024aec4ea1f51b703a31cda9afb1cc2c719a09cee4f9852ba3cf9f07159b1ccf8133924f74df770b1a391c19e8d67ffdcbbef4084a3277e93f55ac60d80338172b2a7b3f29cfe8a36738681794f7ccbe9bc98f8cdeded02f8a4cd0d4b54e1d6ba3d11792ee0ae8801213691848e9c5338e39485816bb0f734b775ac89f454ef90992003511aa8cceed58a3ac2c3814f14afaaed39cbaf4e2719d7213f81665564eec02f60ede838212555873ef742f6666cc66883dcb8281715d5c762fb236d72b770257e7e8d86c122bb69028a34cf1ed93bb973b440fa89a23604cd3fefe85fbd7f55c9b71acf6ad167228c79513f5cfe899a2e2cc498feb6d2d2f07354a17ba74cecfbda3e87d57b147e17dcc7f4c52b802a8e77f28d255a6712dcdc1519e6ac9ec593270bfcf4c395e2531a271a841b1adefb8516a07136b0de47c7fd534601b16f0f7a98f1dbd31795feb97da59e1d23c08461cf37d6f2877d0f2e437f07e25015960f63', username: 'admin', roles: [ 'admin' ], "__v" : 0})
}
EOF"
exec_cmd "mongo open5gs ./account.js"
exec_cmd "rm -f ./account.js"
exec_cmd "rm -rf ./${PACKAGE}-${VERSION}"
}
## Defer setup until we have the complete script

View File

@@ -0,0 +1,5 @@
db = db.getSiblingDB('open5gs')
cursor = db.accounts.find()
if ( cursor.count() == 0 ) {
db.accounts.insertOne({ salt: 'f5c15fa72622d62b6b790aa8569b9339729801ab8bda5d13997b5db6bfc1d997', hash: '402223057db5194899d2e082aeb0802f6794622e1cbc47529c419e5a603f2cc592074b4f3323b239ffa594c8b756d5c70a4e1f6ecd3f9f0d2d7328c4cf8b1b766514effff0350a90b89e21eac54cd4497a169c0c7554a0e2cd9b672e5414c323f76b8559bc768cba11cad2ea3ae704fb36abc8abc2619231ff84ded60063c6e1554a9777a4a464ef9cfdfa90ecfdacc9844e0e3b2f91b59d9ff024aec4ea1f51b703a31cda9afb1cc2c719a09cee4f9852ba3cf9f07159b1ccf8133924f74df770b1a391c19e8d67ffdcbbef4084a3277e93f55ac60d80338172b2a7b3f29cfe8a36738681794f7ccbe9bc98f8cdeded02f8a4cd0d4b54e1d6ba3d11792ee0ae8801213691848e9c5338e39485816bb0f734b775ac89f454ef90992003511aa8cceed58a3ac2c3814f14afaaed39cbaf4e2719d7213f81665564eec02f60ede838212555873ef742f6666cc66883dcb8281715d5c762fb236d72b770257e7e8d86c122bb69028a34cf1ed93bb973b440fa89a23604cd3fefe85fbd7f55c9b71acf6ad167228c79513f5cfe899a2e2cc498feb6d2d2f07354a17ba74cecfbda3e87d57b147e17dcc7f4c52b802a8e77f28d255a6712dcdc1519e6ac9ec593270bfcf4c395e2531a271a841b1adefb8516a07136b0de47c7fd534601b16f0f7a98f1dbd31795feb97da59e1d23c08461cf37d6f2877d0f2e437f07e25015960f63', username: 'admin', roles: [ 'admin' ], "__v" : 0})
}

View File

@@ -20,7 +20,7 @@
#ifndef OGS_APP_H
#define OGS_APP_H
#include "ogs-core.h"
#include "proto/ogs-proto.h"
#define OGS_APP_INSIDE
@@ -94,6 +94,9 @@ void smf_terminate(void);
int amf_initialize(void);
void amf_terminate(void);
int scp_initialize(void);
void scp_terminate(void);
#ifdef __cplusplus
}
#endif

View File

@@ -29,7 +29,7 @@ extern "C" {
#endif
int ogs_app_config_parse_sockopt(
ogs_yaml_iter_t *parent, ogs_sockopt_t *sockopt);
ogs_yaml_iter_t *parent, ogs_sockopt_t *option);
#ifdef __cplusplus
}

View File

@@ -64,38 +64,32 @@ ogs_app_context_t *ogs_app()
static void recalculate_pool_size(void)
{
self.pool.packet = self.max.ue * OGS_MAX_NUM_OF_PACKET_BUFFER;
#define MAX_NUM_OF_TUNNEL 3 /* Num of Tunnel per Bearer */
self.pool.sess = self.max.ue * OGS_MAX_NUM_OF_SESS;
self.pool.bearer = self.pool.sess * OGS_MAX_NUM_OF_BEARER;
self.pool.tunnel = self.pool.bearer * MAX_NUM_OF_TUNNEL;
#define MAX_NUM_OF_TIMER 16
self.pool.timer = self.max.ue * MAX_NUM_OF_TIMER;
self.pool.message = self.max.ue;
self.pool.event = self.max.ue;
#define POOL_NUM_PER_UE 16
self.pool.timer = self.max.ue * POOL_NUM_PER_UE;
self.pool.message = self.max.ue * POOL_NUM_PER_UE;
self.pool.event = self.max.ue * POOL_NUM_PER_UE;
self.pool.socket = self.max.ue * POOL_NUM_PER_UE;
self.pool.subscription = self.max.ue * POOL_NUM_PER_UE;
self.pool.xact = self.max.ue * POOL_NUM_PER_UE;
self.pool.stream = self.max.ue * POOL_NUM_PER_UE;
self.pool.packet = self.max.ue * OGS_MAX_NUM_OF_PACKET_BUFFER;
self.pool.nf = self.max.peer;
#define NF_SERVICE_PER_NF_INSTANCE 16
self.pool.nf_service = self.pool.nf * NF_SERVICE_PER_NF_INSTANCE;
self.pool.nf = self.max.gnb;
#define MAX_NUM_OF_SOCKET 4 /* Num of socket per NF */
self.pool.socket = self.pool.nf * MAX_NUM_OF_SOCKET;
#define MAX_NUM_OF_XACT 8
self.pool.gtp_xact = self.max.ue * MAX_NUM_OF_XACT;
self.pool.gtp_node = self.pool.nf;
if (self.max.gtp_peer)
self.pool.gtp_node = self.max.gtp_peer;
self.pool.pfcp_xact = self.max.ue * MAX_NUM_OF_XACT;
self.pool.pfcp_node = self.pool.nf;
#define MAX_NUM_OF_NF_SERVICE 16 /* Num of NF Service per NF Instance */
#define MAX_NUM_OF_SBI_MESSAGE 4 /* Num of HTTP(s) Request/Response per NF */
#define MAX_NUM_OF_NF_SUBSCRIPTION 4 /* Num of Subscription per NF */
self.pool.nf_service = self.pool.nf * MAX_NUM_OF_NF_SERVICE;
self.pool.nf_subscription = self.pool.nf * MAX_NUM_OF_NF_SUBSCRIPTION;
#define MAX_CSMAP_POOL 128
self.pool.csmap = MAX_CSMAP_POOL; /* Num of TAI-LAI Mapping Table */
/* Num of TAI-LAI Mapping Table */
self.pool.csmap = self.pool.nf;
#define MAX_NUM_OF_IMPU 8
self.pool.impi = self.max.ue;
@@ -113,7 +107,7 @@ static void regenerate_all_timer_duration(void)
ogs_max(ogs_time_from_sec(3),
self.time.message.sbi.client_wait_duration + ogs_time_from_sec(1));
self.time.message.sbi.nf_register_interval_in_exception =
ogs_time_from_msec(300);
ogs_time_from_sec(2);
#define PFCP_N1_RESPONSE_RETRY_COUNT 3
self.time.message.pfcp.n1_response_rcount = PFCP_N1_RESPONSE_RETRY_COUNT;
@@ -176,23 +170,13 @@ static void app_context_prepare(void)
#define USRSCTP_LOCAL_UDP_PORT 9899
self.usrsctp.udp_port = USRSCTP_LOCAL_UDP_PORT;
self.sctp.heartbit_interval = 5000; /* 5 seconds */
self.sctp.sack_delay = 200; /* 200 ms */
self.sctp.rto_initial = 3000; /* 3 seconds */
self.sctp.rto_min = 1000; /* 1 seconds */
self.sctp.rto_max = 5000; /* 5 seconds */
self.sctp.max_num_of_ostreams = OGS_DEFAULT_SCTP_MAX_NUM_OF_OSTREAMS;
self.sctp.max_num_of_istreams = 65535;
self.sctp.max_attempts = 4;
self.sctp.max_initial_timeout = 8000; /* 8 seconds */
self.sockopt.no_delay = true;
#define MAX_NUM_OF_UE 1024 /* Num of UE per AMF/MME */
#define MAX_NUM_OF_GNB 64 /* Num of gNB per AMF/MME */
#define MAX_NUM_OF_UE 1024 /* Num of UEs */
#define MAX_NUM_OF_PEER 64 /* Num of Peer */
self.max.gnb = MAX_NUM_OF_GNB;
self.max.ue = MAX_NUM_OF_UE;
self.max.peer = MAX_NUM_OF_PEER;
ogs_pkbuf_default_init(&self.pool.defconfig);
@@ -226,9 +210,12 @@ static void app_context_prepare(void)
*/
self.time.handover.duration = ogs_time_from_msec(300);
/* Size of internal metrics pool (amount of ogs_metrics_spec_t) */
self.metrics.max_specs = 512;
regenerate_all_timer_duration();
}
static int app_context_validation(void)
{
if (self.parameter.no_ipv4 == 1 &&
@@ -311,6 +298,9 @@ int ogs_app_context_parse_config(void)
} else if (!strcmp(parameter_key, "no_nrf")) {
self.parameter.no_nrf =
ogs_yaml_iter_bool(&parameter_iter);
} else if (!strcmp(parameter_key, "no_scp")) {
self.parameter.no_scp =
ogs_yaml_iter_bool(&parameter_iter);
} else if (!strcmp(parameter_key, "no_amf")) {
self.parameter.no_amf =
ogs_yaml_iter_bool(&parameter_iter);
@@ -360,6 +350,14 @@ int ogs_app_context_parse_config(void)
} else if (!strcmp(parameter_key, "no_pfcp_rr_select")) {
self.parameter.no_pfcp_rr_select =
ogs_yaml_iter_bool(&parameter_iter);
} else if (!strcmp(parameter_key,
"use_mongodb_change_stream")) {
#if MONGOC_MAJOR_VERSION >= 1 && MONGOC_MINOR_VERSION >= 9
self.use_mongodb_change_stream =
ogs_yaml_iter_bool(&parameter_iter);
#else
self.use_mongodb_change_stream = false;
#endif
} else
ogs_warn("unknown key `%s`", parameter_key);
}
@@ -379,48 +377,6 @@ int ogs_app_context_parse_config(void)
} else
ogs_warn("unknown key `%s`", sockopt_key);
}
} else if (!strcmp(root_key, "sctp")) {
ogs_yaml_iter_t sctp_iter;
ogs_yaml_iter_recurse(&root_iter, &sctp_iter);
while (ogs_yaml_iter_next(&sctp_iter)) {
const char *sctp_key = ogs_yaml_iter_key(&sctp_iter);
ogs_assert(sctp_key);
if (!strcmp(sctp_key, "heartbit_interval")) {
const char *v = ogs_yaml_iter_value(&sctp_iter);
if (v) self.sctp.heartbit_interval = atoi(v);
} else if (!strcmp(sctp_key, "sack_delay")) {
const char *v = ogs_yaml_iter_value(&sctp_iter);
if (v) self.sctp.sack_delay = atoi(v);
} else if (!strcmp(sctp_key, "rto_initial")) {
const char *v = ogs_yaml_iter_value(&sctp_iter);
if (v) self.sctp.rto_initial = atoi(v);
} else if (!strcmp(sctp_key, "rto_min")) {
const char *v = ogs_yaml_iter_value(&sctp_iter);
if (v) self.sctp.rto_min = atoi(v);
} else if (!strcmp(sctp_key, "rto_max")) {
const char *v = ogs_yaml_iter_value(&sctp_iter);
if (v) self.sctp.rto_max = atoi(v);
} else if (!strcmp(sctp_key, "max_num_of_ostreams")) {
const char *v = ogs_yaml_iter_value(&sctp_iter);
if (v)
self.sctp.max_num_of_ostreams = atoi(v);
} else if (!strcmp(sctp_key, "max_num_of_istreams")) {
const char *v = ogs_yaml_iter_value(&sctp_iter);
if (v)
self.sctp.max_num_of_istreams = atoi(v);
} else if (!strcmp(sctp_key, "max_attempts")) {
const char *v = ogs_yaml_iter_value(&sctp_iter);
if (v) self.sctp.max_attempts = atoi(v);
} else if (!strcmp(sctp_key, "max_initial_timeout")) {
const char *v = ogs_yaml_iter_value(&sctp_iter);
if (v)
self.sctp.max_initial_timeout = atoi(v);
} else if (!strcmp(sctp_key, "usrsctp_udp_port")) {
const char *v = ogs_yaml_iter_value(&sctp_iter);
if (v) self.usrsctp.udp_port = atoi(v);
} else
ogs_warn("unknown key `%s`", sctp_key);
}
} else if (!strcmp(root_key, "max")) {
ogs_yaml_iter_t max_iter;
ogs_yaml_iter_recurse(&root_iter, &max_iter);
@@ -430,10 +386,14 @@ int ogs_app_context_parse_config(void)
if (!strcmp(max_key, "ue")) {
const char *v = ogs_yaml_iter_value(&max_iter);
if (v) self.max.ue = atoi(v);
} else if (!strcmp(max_key, "gnb") ||
} else if (!strcmp(max_key, "peer") ||
!strcmp(max_key, "enb")) {
const char *v = ogs_yaml_iter_value(&max_iter);
if (v) self.max.gnb = atoi(v);
if (v) self.max.peer = atoi(v);
} else if (!strcmp(max_key, "gtp_peer") ||
!strcmp(max_key, "enb")) {
const char *v = ogs_yaml_iter_value(&max_iter);
if (v) self.max.gtp_peer = atoi(v);
} else
ogs_warn("unknown key `%s`", max_key);
}
@@ -469,6 +429,10 @@ int ogs_app_context_parse_config(void)
const char *v = ogs_yaml_iter_value(&pool_iter);
if (v)
self.pool.defconfig.cluster_8192_pool = atoi(v);
} else if (!strcmp(pool_key, "32768")) {
const char *v = ogs_yaml_iter_value(&pool_iter);
if (v)
self.pool.defconfig.cluster_32768_pool = atoi(v);
} else if (!strcmp(pool_key, "big")) {
const char *v = ogs_yaml_iter_value(&pool_iter);
if (v)

View File

@@ -35,6 +35,8 @@ typedef struct ogs_app_context_s {
void *document;
const char *db_uri;
int use_mongodb_change_stream;
struct {
const char *file;
const char *level;
@@ -64,6 +66,7 @@ typedef struct ogs_app_context_s {
int no_nssf;
int no_bsf;
int no_udr;
int no_scp;
int no_nrf;
/* Network */
@@ -84,50 +87,39 @@ typedef struct ogs_app_context_s {
int l_linger;
} sockopt;
struct {
int heartbit_interval;
int sack_delay;
int rto_initial;
int rto_min;
int rto_max;
int max_num_of_ostreams;
int max_num_of_istreams;
int max_attempts;
int max_initial_timeout;
} sctp;
struct {
int udp_port;
} usrsctp;
struct {
uint64_t ue;
uint64_t gnb;
uint64_t peer;
uint64_t gtp_peer;
} max;
struct {
ogs_pkbuf_config_t defconfig;
uint64_t packet;
uint64_t nf;
uint64_t packet;
uint64_t sess;
uint64_t bearer;
uint64_t tunnel;
uint64_t nf_service;
uint64_t nf_subscription;
uint64_t csmap;
uint64_t timer;
uint64_t message;
uint64_t event;
uint64_t timer;
uint64_t socket;
uint64_t gtp_xact;
uint64_t subscription;
uint64_t xact;
uint64_t stream;
uint64_t nf;
uint64_t gtp_node;
uint64_t pfcp_xact;
uint64_t pfcp_node;
uint64_t csmap;
uint64_t impi;
uint64_t impu;
@@ -175,6 +167,10 @@ typedef struct ogs_app_context_s {
} handover;
} time;
struct metrics {
uint64_t max_specs;
} metrics;
} ogs_app_context_t;
int ogs_app_context_init(void);

View File

@@ -32,9 +32,6 @@ int ogs_app_initialize(
char *log_file;
char *log_level;
char *domain_mask;
bool enable_debug;
bool enable_trace;
} optarg;
ogs_core_initialize();

View File

@@ -32,6 +32,11 @@ asn_TYPE_operation_t asn_OP_ANY = {
0,
0,
#endif /* !defined(ASN_DISABLE_XER_SUPPORT) */
#if !defined(ASN_DISABLE_JER_SUPPORT)
ANY_encode_jer,
#else
0,
#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */
#if !defined(ASN_DISABLE_OER_SUPPORT)
0,
0,

View File

@@ -42,6 +42,10 @@ extern asn_OCTET_STRING_specifics_t asn_SPC_ANY_specs;
xer_type_encoder_f ANY_encode_xer;
#endif /* !defined(ASN_DISABLE_XER_SUPPORT) */
#if !defined(ASN_DISABLE_JER_SUPPORT)
jer_type_encoder_f ANY_encode_jer;
#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */
#if !defined(ASN_DISABLE_UPER_SUPPORT)
per_type_decoder_f ANY_decode_uper;
per_type_encoder_f ANY_encode_uper;

View File

@@ -132,7 +132,7 @@ ANY_decode_aper(const asn_codec_ctx_t *opt_codec_ctx,
int ret;
/* Get the PER length */
raw_len = aper_get_length(pd, -1, 0, &repeat);
raw_len = aper_get_length(pd, -1, -1, 0, &repeat);
if(raw_len < 0) RETURN(RC_WMORE);
if(raw_len == 0 && st->buf) break;
@@ -173,7 +173,7 @@ ANY_encode_aper(const asn_TYPE_descriptor_t *td,
size = st->size;
do {
int need_eom = 0;
ssize_t may_save = aper_put_length(po, -1, size, &need_eom);
ssize_t may_save = aper_put_length(po, -1, -1, size, &need_eom);
if(may_save < 0) ASN__ENCODE_FAILED;
ret = per_put_many_bits(po, buf, may_save * 8);
@@ -182,7 +182,7 @@ ANY_encode_aper(const asn_TYPE_descriptor_t *td,
buf += may_save;
size -= may_save;
assert(!(may_save & 0x07) || !size);
if(need_eom && aper_put_length(po, -1, 0, 0))
if(need_eom && aper_put_length(po, -1, -1, 0, NULL))
ASN__ENCODE_FAILED; /* End of Message length */
} while(size);

View File

@@ -0,0 +1,17 @@
/*
* Copyright (c) 2017 Lev Walkin <vlm@lionet.info>.
* All rights reserved.
* Redistribution and modifications are permitted subject to BSD license.
*/
#include <asn_internal.h>
#include <ANY.h>
asn_enc_rval_t
ANY_encode_jer(const asn_TYPE_descriptor_t *td, const void *sptr, int ilevel,
enum jer_encoder_flags_e flags, asn_app_consume_bytes_f *cb,
void *app_key) {
ASN__ENCODE_FAILED;
/* Dump as binary */
return OCTET_STRING_encode_jer(td, sptr, ilevel, flags, cb, app_key);
}

View File

@@ -38,6 +38,11 @@ asn_TYPE_operation_t asn_OP_BIT_STRING = {
0,
0,
#endif /* !defined(ASN_DISABLE_XER_SUPPORT) */
#if !defined(ASN_DISABLE_JER_SUPPORT)
BIT_STRING_encode_jer,
#else
0,
#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */
#if !defined(ASN_DISABLE_OER_SUPPORT)
BIT_STRING_decode_oer,
BIT_STRING_encode_oer,

View File

@@ -44,6 +44,10 @@ asn_constr_check_f BIT_STRING_constraint;
xer_type_encoder_f BIT_STRING_encode_xer;
#endif /* !defined(ASN_DISABLE_XER_SUPPORT) */
#if !defined(ASN_DISABLE_JER_SUPPORT)
jer_type_encoder_f BIT_STRING_encode_jer;
#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */
#if !defined(ASN_DISABLE_OER_SUPPORT)
oer_type_decoder_f BIT_STRING_decode_oer;
oer_type_encoder_f BIT_STRING_encode_oer;

View File

@@ -0,0 +1,70 @@
/*
* Copyright (c) 2017 Lev Walkin <vlm@lionet.info>.
* All rights reserved.
* Redistribution and modifications are permitted subject to BSD license.
*/
#include <asn_internal.h>
#include <BIT_STRING.h>
static const char *_bit_pattern[16] = {
"0000", "0001", "0010", "0011", "0100", "0101", "0110", "0111",
"1000", "1001", "1010", "1011", "1100", "1101", "1110", "1111"
};
asn_enc_rval_t
BIT_STRING_encode_jer(const asn_TYPE_descriptor_t *td, const void *sptr,
int ilevel, enum jer_encoder_flags_e flags,
asn_app_consume_bytes_f *cb, void *app_key) {
asn_enc_rval_t er = {0, 0, 0};
char scratch[128];
char *p = scratch;
char *scend = scratch + (sizeof(scratch) - 10);
const BIT_STRING_t *st = (const BIT_STRING_t *)sptr;
int xcan = 0;
uint8_t *buf;
uint8_t *end;
if(!st || !st->buf)
ASN__ENCODE_FAILED;
er.encoded = 0;
buf = st->buf;
end = buf + st->size - 1; /* Last byte is special */
/*
* Binary dump
*/
for(; buf < end; buf++) {
int v = *buf;
int nline = xcan?0:(((buf - st->buf) % 8) == 0);
if(p >= scend || nline) {
ASN__CALLBACK(scratch, p - scratch);
p = scratch;
if(nline) ASN__TEXT_INDENT(1, ilevel);
}
memcpy(p + 0, _bit_pattern[v >> 4], 4);
memcpy(p + 4, _bit_pattern[v & 0x0f], 4);
p += 8;
}
if(!xcan && ((buf - st->buf) % 8) == 0)
ASN__TEXT_INDENT(1, ilevel);
ASN__CALLBACK(scratch, p - scratch);
p = scratch;
if(buf == end) {
int v = *buf;
int ubits = st->bits_unused;
int i;
for(i = 7; i >= ubits; i--)
*p++ = (v & (1 << i)) ? 0x31 : 0x30;
ASN__CALLBACK(scratch, p - scratch);
}
if(!xcan) ASN__TEXT_INDENT(1, ilevel - 1);
ASN__ENCODED_OK(er);
cb_failed:
ASN__ENCODE_FAILED;
}

View File

@@ -34,6 +34,11 @@ asn_TYPE_operation_t asn_OP_GraphicString = {
0,
0,
#endif /* !defined(ASN_DISABLE_XER_SUPPORT) */
#if !defined(ASN_DISABLE_JER_SUPPORT)
OCTET_STRING_encode_jer, /* Can't expect it to be ASCII/UTF8 */
#else
0,
#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */
#if !defined(ASN_DISABLE_OER_SUPPORT)
OCTET_STRING_decode_oer,
OCTET_STRING_encode_oer,

View File

@@ -36,6 +36,10 @@ extern asn_TYPE_operation_t asn_OP_GraphicString;
#define GraphicString_encode_xer OCTET_STRING_encode_xer
#endif /* !defined(ASN_DISABLE_XER_SUPPORT) */
#if !defined(ASN_DISABLE_JER_SUPPORT)
#define GraphicString_encode_jer OCTET_STRING_encode_jer
#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */
#if !defined(ASN_DISABLE_UPER_SUPPORT)
#define GraphicString_decode_uper OCTET_STRING_decode_uper
#define GraphicString_encode_uper OCTET_STRING_encode_uper

View File

@@ -36,6 +36,11 @@ asn_TYPE_operation_t asn_OP_INTEGER = {
0,
0,
#endif /* !defined(ASN_DISABLE_XER_SUPPORT) */
#if !defined(ASN_DISABLE_JER_SUPPORT)
INTEGER_encode_jer,
#else
0,
#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */
#if !defined(ASN_DISABLE_OER_SUPPORT)
INTEGER_decode_oer, /* OER decoder */
INTEGER_encode_oer, /* Canonical OER encoder */

View File

@@ -60,6 +60,10 @@ xer_type_decoder_f INTEGER_decode_xer;
xer_type_encoder_f INTEGER_encode_xer;
#endif /* !defined(ASN_DISABLE_XER_SUPPORT) */
#if !defined(ASN_DISABLE_JER_SUPPORT)
jer_type_encoder_f INTEGER_encode_jer;
#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */
#if !defined(ASN_DISABLE_OER_SUPPORT)
oer_type_decoder_f INTEGER_decode_oer;
oer_type_encoder_f INTEGER_encode_oer;

View File

@@ -129,7 +129,7 @@ INTEGER_decode_aper(const asn_codec_ctx_t *opt_codec_ctx,
int ret;
/* Get the PER length */
len = aper_get_length(pd, -1, -1, &repeat);
len = aper_get_length(pd, -1, -1, -1, &repeat);
if(len < 0) ASN__DECODE_STARVED;
p = REALLOC(st->buf, st->size + len + 1);
@@ -291,13 +291,14 @@ INTEGER_encode_aper(const asn_TYPE_descriptor_t *td,
for(buf = st->buf, end = st->buf + st->size; buf < end;) {
int need_eom = 0;
ssize_t mayEncode = aper_put_length(po, -1, end - buf, &need_eom);
ssize_t mayEncode = aper_put_length(po, -1, -1, end - buf, &need_eom);
if(mayEncode < 0)
ASN__ENCODE_FAILED;
if(per_put_many_bits(po, buf, 8 * mayEncode))
ASN__ENCODE_FAILED;
buf += mayEncode;
if(need_eom && aper_put_length(po, -1, 0, 0)) ASN__ENCODE_FAILED;
if(need_eom && (aper_put_length(po, -1, -1, 0, NULL) < 0))
ASN__ENCODE_FAILED;
}
ASN__ENCODED_OK(er);

Some files were not shown because too many files have changed in this diff Show More