Find a file
Niro Mahasinghe 77a1c9cd5d
Some checks are pending
CIFuzz / Fuzzing (push) Waiting to run
Meson Continuous Integration / Build and Test on MacOS Latest (push) Waiting to run
Meson Continuous Integration / Build and Test on Ubuntu Latest (push) Waiting to run
[AMF] count N2 handover outcomes per UE and report them
Nothing records whether a UE's handovers work. The AMF sees every step and
knows the SUPI throughout, so it is the one place that can say both what
happened and who it happened to - the gNB has the outcome but no notion of
subscriber identity, and correlating the two would mean joining on a
RAN_UE_NGAP_ID that is reused as soon as a UE re-attaches.

Three counters, incremented only where the AMF is certain:

  attempted  HandoverRequired accepted for this UE
  completed  HandoverNotification arrived
  rejected   the target refused, or the source cancelled

A handover that is commanded and then never resolves is deliberately not
counted. The AMF has no guard timer for one - there is no T304 equivalent -
so the only later event is the UE re-attaching, which is indistinguishable
from an ordinary power cycle: the same HOLDING_NG_CONTEXT path serves both,
and exists for the power-cycle case. Inferring a failure there would mean
carrying a pending flag that must be cleared on every resolution and aged
out when a UE simply vanishes, and getting that wrong reports failures that
never happened. attempted less completed less rejected gives the same number
without the risk of attributing it to the wrong UE.

Reported in /5gc/amf/ue-info beside the identity already there, so a caller
can show per-subscriber handover health without a second source.

The counters are cleared on the way out of the de-registered state. The UE
context outlives a de-registration and is found again by 5G-S-TMSI, so
without that a UE would carry its previous registration's handovers into
the next one.

Tested-by: Pau Espin Pedrol <pespin@sysmocom.de>
2026-10-14 20:59:57 +09:00
.github [CI] Re-enable macOS job and fix usrsctp PPID 2026-09-29 21:53:35 +09:00
configs eir: support EIR roaming with shared equipment fixtures 2026-10-09 14:35:46 +09:00
debian [MME/EIR] Address S13 review comments 2026-09-23 11:55:14 +02:00
docker [mme] Follow-up #4693: harden DNS-based gateway selection 2026-07-21 16:44:07 +09:00
docs eir: support EIR roaming with shared equipment fixtures 2026-10-09 14:35:46 +09:00
lib sbi: prevent integer overflow in URL port parsing 2026-10-14 09:32:57 +09:00
misc [EIR] Serve S13 alongside N5g-eir 2026-09-21 14:09:21 +02:00
src [AMF] count N2 handover outcomes per UE and report them 2026-10-14 20:59:57 +09:00
subprojects Tested on FreeBSD-14.1-STABLE (#3350) 2024-08-03 21:45:52 +09:00
tests tests: scope expected error log suppression to individual checks 2026-10-14 13:39:06 +09:00
vagrant Tested on FreeBSD-14.1-STABLE (#3350) 2024-08-03 21:45:52 +09:00
webui [WebUI] Restrict .env permissions for generated secrets 2026-10-13 16:11:55 +09:00
.clang-tidy [MISC] Add support for static code analysis 2022-07-01 21:38:47 +09:00
.dockerignore [build] Use local sources to build applications (#1583) 2022-06-19 18:18:09 +09:00
.editorconfig editorconfig: new file (#2746) 2023-11-27 22:21:35 +09:00
.gitignore .gitignore: Add subprojects/.wraplock 2026-07-31 21:04:34 +09:00
LICENSE Change LICENSE to GNU AGPL v3.0 2017-12-18 10:35:54 +09:00
meson.build Release v2.8.0 2026-06-20 12:38:31 +09:00
meson_options.txt [Fuzzing] oss-fuzz support for fuzzing (#2283) 2023-05-05 17:20:11 +09:00
README.md nrf: Fix serving PLMN counter reset on NF register 2026-02-04 20:51:29 +09:00

Open5GS logo

Getting Started

Please follow the documentation at open5gs.org!

Sponsors

If you find Open5GS useful for work, please consider supporting this Open Source project by Becoming a sponsor. To manage the funding transactions transparently, you can donate through OpenCollective.

sponsors

Community

  • Problem with Open5GS can be filed as issues in this repository.
  • Other topics related to this project are happening on the discussions.
  • Voice and text chat are available in Open5GS's Discord workspace. Use this link to get started.

Contributing

If you're contributing through a pull request to Open5GS project on GitHub, please read the Contributor License Agreement in advance.

License

Support

Technical support and customized services for Open5GS are provided by NewPlane at support@newplane.io.