Commit graph

468 commits

Author SHA1 Message Date
Sukchan Lee
288f1ca49e docs: added featured community projects
Some checks failed
Meson Continuous Integration / Build and Test on Ubuntu Latest (push) Has been cancelled
2026-04-14 08:49:23 +09:00
Sukchan Lee
318eeb49a7 Release v2.7.7 2026-03-15 20:53:34 +09:00
Sukchan Lee
93319c1a8e mme: remove old IMSI hash entry before overwriting UE IMSI
When mme_ue_set_imsi() updates an existing UE IMSI, the previous
code overwrote mme_ue->imsi before removing the old hash entry.

As a result, the old IMSI key could remain in imsi_ue_hash and keep
pointing to the same mme_ue object. After the UE context was removed,
a later lookup by the stale IMSI key could return an invalid context
and trigger a fatal path during re-attach handling.

Remove the old IMSI hash entry before updating mme_ue->imsi, then
register the new IMSI after the update.

Issues: #4357
2026-03-13 22:07:09 +09:00
patrickmcgraw
2fc6516e3c Add Baicells Aurora 243 to hardware list
Have run on the Aurora 243 using Open5gs for 5G SA core services for a few weeks now.
2026-02-01 06:54:46 +09:00
Sukchan Lee
642f827f0c Follow-up on #4213 2025-12-23 15:09:13 +09:00
Jasmine Fan
8ab551ede8
fix typo and wrong addresses in tutorial (#4213) 2025-12-23 14:58:51 +09:00
José Manuel
66f7b466c4
[AMF] API to add or remove PLMNs Dynamically (#4186)
* AMF dynamic PLMNs via APIREST

* add new feature now we can register ues when plmn is deleted

* add documentation for use the API AMF-OAM

* update tutorial 08

* fix memory not freed

fix memory not freed

fix memory not freed

* improve releases ues of plmn
2025-12-03 21:32:59 +09:00
Sukchan Lee
39618c7a67 docs: Update expired OBS signing key URL in quickstart guide
The previous key downloaded from `download.opensuse.org` was expired
(EXPKEYSIG FE7F42F276CEE0E6), causing `apt update` to fail when following
the Debian quickstart instructions.

This patch replaces the deprecated key URLs with valid signing key
download locations from build.opensuse.org and obs.osmocom.org.

Issues: #4175
2025-11-30 22:06:04 +09:00
Álvaro Vázquez
d342458d95 adds open5gs operator to docs 2025-11-19 18:40:44 +09:00
Sukchan Lee
a55dabf63c [DOCS] Follow-up on #4100 2025-10-02 21:07:26 +09:00
Juraj Elias
b9496b0c4d
Doc info api (#4100)
* Create 07-infoAPI-UE-gNB-session-data.md

draft of JSON info API doc

* Update docs.md

link to JSON info API doc
2025-10-02 06:12:20 +09:00
hug0lin
fc42f3039c
Open5GS connected UEs, APN/DNN, IP addresses (#4044)
Added additional fields: snssai, qos flow, pdu, and UE state. For 5G (for LTE, the pdu state is currently unknown).

curl -s http://127.0.0.4:9090/connected-ues |jq .
 {
    "supi": "imsi-999700000083810",                 // 5G RAT
    "pdu": [
      {
        "psi": 1,
        "dnn": "internet",
        "ipv4": "10.45.0.2",
        "snssai": {
          "sst": 1,
          "sd": "ffffff"
        },
        "qos_flows": [
          {
            "qfi": 1,
            "5qi": 9
          }
        ],
        "pdu_state": "inactive"
      }
    ],
    "ue_activity": "idle"
  },
{
    "supi": "001010000056492",            // LTE RAT
    "pdu": [
      {
        "ebi": 5,
        "apn": "internet",
        "ipv4": "10.45.0.3",
        "qos_flows": [
          {
            "ebi": 5,
            "qci": 9
          }
        ],
        "pdu_state": "unknown"
      }
    ],
    "ue_activity": "unknown"
  },

Added other outputs related to the connected gNBs/eNBs to AMF and MME, so we should have the basic tools for the 4G/5G core operation.

curl -s http://127.0.0.4:9090/connected-ues |jq .
curl -s http://127.0.0.5:9090/connected-gnbs | jq .
curl -s http://127.0.0.2:9090/connected-enb |jq .

curl -s http://127.0.0.5:9090/connected-gnbs |jq .
[
  {
    "gnb_id": 100,
    "plmn": "99970",
    "network": {
      "amf_name": "efire-amf0",
      "ngap_port": 38412
    },
    "ng": {
      "setup_success": true,
      "sctp": {
        "peer": "[192.168.168.100]:60110",
        "max_out_streams": 2,
        "next_ostream_id": 1
      }
    },
    "supported_ta_list": [
      {
        "tac": "000001",
        "bplmns": [
          {
            "plmn": "99970",
            "snssai": [
              {
                "sst": 1,
                "sd": "ffffff"
              }
            ]
          },
          {
            "plmn": "99971",
            "snssai": [
              {
                "sst": 2,
                "sd": "000000"
              }
            ]
          }
        ]
      },
      {
        "tac": "000051",
        "bplmns": [
          {
            "plmn": "00101",
            "snssai": [
              {
                "sst": 2,
                "sd": "123456"
              }
            ]
          }
        ]
      },
    ],
    "num_connected_ues": 0
  }
]

curl -s http://127.0.0.2:9090/connected-enbs |jq .
[
  {
    "enb_id": 264040,
    "plmn": "99970",
    "network": {
      "mme_name": "efire-mme0"
    },
    "s1": {
      "setup_success": true,
      "sctp": {
        "peer": "[192.168.168.254]:36412",
        "max_out_streams": 10,
        "next_ostream_id": 1
      }
    },
    "supported_ta_list": [
      {
        "tac": "000001",
        "plmn": "99970"
      }
    ],
    "num_connected_ues": 1
  }
]

curl -s http://127.0.0.4:9090/connected-ues |jq .
[
  {
    "supi": "imsi-999700000083810",
    "pdu": [
      {
        "psi": 1,
        "dnn": "internet",
        "ipv4": "10.45.0.2",
        "snssai": {
          "sst": 1,
          "sd": "ffffff"
        },
        "qos_flows": [
          {
            "qfi": 1,
            "5qi": 9
          }
        ],
        "pdu_state": "inactive"
      }
    ],
    "ue_activity": "idle"
  },
  {
    "supi": "imsi-999700000021635",
    "pdu": [
      {
        "psi": 1,
        "dnn": "ims",
        "ipv4": "10.45.0.124",
        "ipv6": "2001:db8:cafe:79::7a",
        "snssai": {
          "sst": 1,
          "sd": "ffffff"
        },
        "qos_flows": [
          {
            "qfi": 1,
            "5qi": 5
          }
        ],
        "pdu_state": "active"
      }
    ],
    "ue_activity": "active"
  }
]
2025-09-13 10:02:01 +09:00
hug0lin
da27d6eab9 Update 01-genodebs.md 2025-08-19 16:07:20 +09:00
Sukchan Lee
a1a42c4e50 [DOCS] Added 5G Roaming by @infinitydon (#4042, #4007) 2025-08-18 18:16:10 +09:00
Sukchan Lee
fb3cba40e5 [HR] V-UPF: preserve PSC on N2 indirect (Access->Access) without QER (#2194)
Home-Routed roaming: during Xn/N2 handover the source gNB may forward
remaining DL data to the core using UL PDU Session Information (PSC).
On the V-UPF the PSC was lost on the indirect path because OHR+OHC
removed the incoming GTP-U header (and its extensions) and we did not
recreate PSC when no QER/QFI was provisioned by the V-SMF.

This change makes the V-UPF rebuild a DL PSC for the target gNB even
when QER is absent, limited to the Access->Access indirect path
(source gNB -> V-UPF -> target gNB).

Why this is needed in HR:
- In HR deployments the V-SMF typically does not provision QER/QFI for
  the temporary indirect path. Without recreating PSC from recvhdr, the
  extension header disappears after OHR+OHC and the target gNB cannot
  see the QFI during handover buffering/forwarding.
2025-08-15 11:07:56 +09:00
Sukchan Lee
ad80da3060 Merge branch 'r2.7.6' 2025-07-28 22:51:13 +09:00
Sukchan Lee
38ab9de5c4 [DOC] Open5GS works with eNBs 2025-07-28 22:50:20 +09:00
Sukchan Lee
0516e01903 Merge branch 'main' into home-routed 2025-07-19 10:42:40 +09:00
Sukchan Lee
d9d3abdd48 Release v2.7.6 2025-07-19 10:32:41 +09:00
Sukchan Lee
b9ec94a0d2 Enable parsing of block‑level HTML in Kramdown so Markdown syntax
(e.g. inside <details> tags) is rendered correctly.
2025-07-19 08:03:01 +09:00
Sukchan Lee
c917760a47 [HR] Update documentation to include Home Routed Roaming feature (#2194)
This update adds a comprehensive description of the Home Routed Roaming
functionality, enhances the architecture section and message
flow diagrams to illustrate the new routing process, and provides
clear configuration examples and command‑line snippets to assist
users with setup.
2025-07-19 08:00:48 +09:00
ethonshield
7b40d5a3f1 Add tutorial doc on how to configure Open5GS with 5G-Sharp-Orchestrator 2025-04-29 22:46:14 +09:00
Pallavi Das
cd80aa432e Typos Fix 2025-04-19 20:45:25 +09:00
Sukchan Lee
7dfd9a3964 Release v2.7.5 2025-03-30 22:05:34 +09:00
Sukchan Lee
33fb33be45 Update document for v2.7.4 2025-03-26 20:08:31 +09:00
Sukchan Lee
1d46a0e475 Update document for v2.7.3 2025-03-23 12:55:19 +09:00
Sukchan Lee
e16a8fc42e Release v2.7.3 2025-03-23 11:56:01 +09:00
Sukchan Lee
6c67863971 [SEC] Fix crash when max_num_of_ostreams < 2 2025-02-28 16:44:17 +09:00
Sukchan Lee
07cb42110e [DBI] Improve YAML policy config by adding SUPI range filtering
Previously, policies were configured via YAML files without MongoDB.
This update enhances the YAML approach by adding the 'supi_range' key to
filter policies based on UE SUPI ranges. When both 'supi_range' and
'plmn_id' are provided, both conditions must be met.

Note that PLMN-ID filtering will be deprecated in a future release.
2025-02-05 21:56:15 +09:00
Sukchan Lee
81f69b436c [DOCS] Update installation guide (#3681)
to conditionally install `libidn-dev` or `libidn11-dev`,
depending on availability, and clarify common dependencies for Debian/Ubuntu.
2025-01-22 17:53:36 +09:00
Sukchan Lee
df11b05a1e Replaced deprecated libidn11-dev with libidn-dev across the project.
This update improves compatibility with newer distributions by modifying
dependency declarations in control files, Dockerfiles, and documentation.
2025-01-19 12:21:51 +09:00
Sukchan Lee
525695501e [PFCP] Add assertion to ensure F-TEID.ch is false before TEID swap (#3036, #3574, #3610)
This prevents incorrect restoration behavior by ensuring the TEID is only
swapped when F-TEID.ch is false, indicating the TEID has already been assigned.
2024-12-03 08:59:34 +09:00
Sukchan Lee
f03e220761 [DOCS] Update link of Mesaurement of UPF Performance (#3553) 2024-11-20 10:52:28 +09:00
nick
1c2098bf71 fix indentation issue in srsenb.yaml and rename srslte.yaml to srsenb.yaml in guide02 docs 2024-11-19 08:43:16 +09:00
Sukchan Lee
d57bb9423b update it 2024-08-24 22:21:55 +09:00
Sukchan Lee
681115c4e5 update document 2024-08-24 19:18:55 +09:00
Sukchan Lee
2d2e03507b Remove Date in Support page 2024-08-24 19:15:54 +09:00
Sukchan Lee
0a58a5bcc2 update support page 2024-08-24 19:13:15 +09:00
Sukchan Lee
ecbe26d8d9 Introducing NewPlane 2024-08-24 19:05:32 +09:00
Sukchan Lee
37430970f7 Update document for v2.7.2 2024-08-04 21:13:24 +09:00
Sukchan Lee
d9a3132400 Tested on FreeBSD-14.1-STABLE (#3350)
- Upgraded libraries to 4.5 to address compile error issues with CXX11 support
- Change the default version of FreeBSD Vagrant to 14.1-STABLE
- FreeBSD Platform documentation also changed to 14.x version
2024-08-03 21:45:52 +09:00
Nikhil Malik
3df4447049
Added NGAP LB blog in docs.md (#3329)
* Update docs.md
2024-07-18 14:55:31 +09:00
nik-netlox
9e19d28c4b Update docs.md 2024-06-25 06:12:54 +09:00
Sukchan Lee
819861be2f [DOCS] Update Helm Chars Links (#3173) 2024-04-27 09:18:11 +09:00
Sukchan Lee
4c00edd839 Update document for v2.7.1 2024-04-19 21:24:08 +09:00
Sukchan Lee
a9b1b116b3 [SBI] Generate URI via HTTP.location as is (#3058)
A friend in the community was trying to connect an SMF made by another
manufacturer with an SBI interface and found a big problem with Open5GS.

All of the code in the part that generates the Resource URI
from HTTP.location is invalid.

For example, suppose we create a Resource URI with SMContext as below.
{apiRoot}/nsmf-pdusession/<apiVersion>/sm-contexts/{smContextRef}

In this case, Open5GS extracted the {smContextRef} part of the HTTP.location
and appended it to the beginning
{apiRoot}/nsmf-pdusession/<apiVersion>/sm-contexts/.

This implementation may not work properly if the apiRoot changes.
Consider a different port number as shown below.

<HTTP.location>
127.0.0.4:9999/nsmf-pdusession/v1/sm-contexts/1

The SMF may send an apiRoot to the AMF with a changed port number,
in which case the AMF must honor it.

Therefore, instead of extracting only the smContextRef from HTTP.location,
we modified it to use the whole thing to create a Resource URI.

We modified all NFs that use HTTP.location in the same way, not just SMFs.
2024-04-18 21:24:07 +09:00
Oliver Smith
4ab22dc98e docs: quickstart: add configure logging section
Add a section that explains how to fix duplicate timestamps in
journalctl.
2024-04-18 21:08:35 +09:00
Oliver Smith
8abd35580b configs, docs: adjust to logger config change 2024-04-18 21:08:35 +09:00
Sukchan Lee
8484a5af60 [GTP] Incorrect destination TEID=0 (#3043)
If eg. PCRF or AAA diameter link is not yet ready (eg. PCRF crashed),
and a client sends a CreateSessionRequest announcing its ow F-TEID,
then open5gs-smfd answers with Create Session Response Cause=
"Remote peer not responding", but it is not setting the received F-TEID
in the header of the response, instead it sends with TEI=0.

As a result, the peer cannot match the CreateSessionResponse,
and needs to rely on its own timeout timer to figure out
that specific request failed.

To address this issue, I modified the GTP Response message to check
the Sender F-TEID and send it accordingly, setting the destination TEID
to the value of the Sender F-TEID.

I've made this modification only for SMF, but MME and SGW-C have not done so;
if you need to, you can work from the examples in SMF.

Similarly, the same situation can happen with PFCP. If anyone needs to do this
in the future, I think you can work on it this way.
2024-04-06 16:39:32 +09:00
Sukchan Lee
390a9dd637 [MME] incorrect behavior of the SGsAP
1. According to ETSI TS 129 118 4.1, if the Network Access Mode (NAM) is set
   to "Packet only," no SGs association should be established.

2. If the NAM is set to "Packet and Circuit," and the SGs association is
   rejected by the CS core, this rejection should only impact
   the SGs association itself and not result in a UE attach rejection
   for a UE with a valid HSS account.
2024-03-24 20:31:56 +09:00