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