5G-LENA v5.1 is available

4 views
Skip to first unread message

Gabriel Ferreira

unread,
Aug 6, 2026, 4:37:04 PM (15 hours ago) Aug 6
to ns-3-users
Hi all,

We are happy to announce the v5.1 release of 5G-LENA. This release is
compatible with ns-3.48.

Important: uplink stall fix and automatic FDD configuration

This release fixes a defect that could permanently stall the uplink of a UE. If
the initial BSR transport blocks were lost, the UE never re-armed its
scheduling request, so the gNB stopped granting and the UE never recovered. The
scheduling request is now re-armed whenever new buffer status arrives while the
UE is backlogged (TS 38.321 clauses 5.4.4 and 5.4.5), its repetition rate is
bounded by the new NrUeMac::SrProhibitTimer, and a request unanswered for
NrUeMac::SrTransMax transmissions triggers a random access procedure instead of
asking forever. Relatedly, the scheduler no longer books a scheduling request as
12 bytes of buffer in every uplink logical channel group, which used to flatten
the priorities of the QoS schedulers. If you have reported uplink results with
earlier releases, we recommend re-checking them.

FDD configuration is now automatic: the gNB advertises its UL carrier in SIB1
(the equivalent of frequencyInfoUL in TS 38.331) and the UE derives its primary
UL BWP and bandwidth-part routing from it. Manual NrUeNetDevice::PrimaryUlIndex
and SetOutputLink() configuration is no longer needed for cells with a single
DL/UL carrier pair, and has been removed from the examples and tests. Mixed
TDD/FDD carrier-aggregation setups whose pairing does not involve the primary
carrier still configure it manually (see cttc-lte-ca-demo).

Highlights of this release:

- Handover between FDD cells, including cells with inverted UL/DL carrier roles
  and different per-carrier numerologies: the handover command carries the
  target cell's UL carrier and RACH configuration, and the UE re-tunes and
  re-synchronizes its UL BWP to the target.
- Mobility state estimation in NrUeRrc (TR 36.839): the UE classifies itself as
  normal, medium or high mobility from its recent handover count and scales the
  A3 time-to-trigger accordingly.
- An optional TR 36.839 handover failure model, so the handover failure rate can
  be calibrated against the TR 36.839 reference curves, together with
  simulation-level handover metrics: a RadioLinkFailureCause trace recording why
  every radio link failure happened and a HandoverTotalTime trace reporting the
  time from A3 trigger to completion. Connected-mode failures are now accounted
  per the TR 36.839 definitions.
- Optional handover admission and ping-pong guards (MinTargetRsrpDbm,
  MinTargetRsrqDb, HandoverMinTimeOfStay) and MIB-wait cell reselection for
  force-camped UEs.
- A reworked RLC: AM status, polling and  window handling, UM receive-window  behaviour and re-establishment resets were  fixed, a TxDrop trace was added to TM mode, and every PDU is now stamped with  a transmitting-entity identity so stale PDUs of a re-created peer entity still  in flight after a handover are discarded instead of corrupting reassembly.
- RandomDirectionDisc2dMobilityModel and
  HexagonalGridScenarioHelper::SetUeDiscRadius() for disc-bounded UE placement
  and movement, plus SetRingOneOnlyPicos() for the TR 36.839 no-wraparound
  dense-A layout.
- The NrHelper::AttachWindow attribute, staggering the initial UE attachment to
  de-synchronise the RACH thundering herd when many UEs attach at once.
- CQI_CSI_RS is now accepted alone as a CsiFeedbackFlag value.
- A weekly valgrind memcheck job and a weekly MemorySanitizer job in the CI
  pipeline, whose findings are fixed in this release.

This release also includes important fixes, such as:

- Fixed MIMO SINR chunks being selected by RNTI alone, so that after a handover
  a chunk measured against the previous cell could be matched to a transport
  block from the new one and abort decoding; chunks now carry their cell.
- Fixed receivers permanently misreporting interference after a saturating
  signal expired, where floating-point absorption (or an infinite signal) left
  the running sum of received power biased or NaN for the rest of the
  simulation.
- Fixed TDMA schedulers and OFDMA uplink scheduling starving a cell when the
  number of active UEs at MCS 0 reached the schedulable resources of a slot;
  sub-minimum-TBS allocations are now reaped and redistributed.
- Fixed a new transmission on a HARQ process being combined with stale HARQ
  history left by an earlier corrupted transport block.
- Fixed the scheduler dereferencing an invalid UE map entry when a DL CQI report
  arrived for an already-released UE, and an abort when a data signal arrived
  misaligned with a reception already in progress.
- Fixed RLC reassembly aborting on aliased sequence numbers after a handover,
  and the duplicate delivery to PDCP of an out-of-order PDU sliding back inside
  the reordering window.
- Fixed a reference cycle keeping the whole UE stack alive for the lifetime of
  the process, and uses of uninitialised memory reported by MemorySanitizer.
- Fixed FDD operation of the cttc-nr-traffic-ngmn-mixed example, where uplink
  traffic was routed to the DL-only BWP and silently dropped.

You can find the full list of changes in the release notes, and an at-a-glance
view of everything supported in the features and roadmap pages.

As always, remember to follow the instructions in the README.md file, i.e., to
check out the correct release branch of both ns-3 and the NR module.

We would like to thank all 5G-LENA users who contribute continuously to the
5G-LENA community by opening issues, proposing solutions, and answering on the
5G-LENA users list.

Thank you for your support!

To cite this NR 5.1 5G-LENA release, please use the reference on GitLab (in
addition to the reference papers listed in https://5g-lena.cttc.es/papers/).

The 5G-LENA team
Reply all
Reply to author
Forward
0 new messages