Skip to content

Commit b9cb07f

Browse files
committed
WHATSNEW.md updated for v1.5.1
1 parent 52c2804 commit b9cb07f

2 files changed

Lines changed: 157 additions & 1 deletion

File tree

Version

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
1.5.0
1+
1.5.1

WHATSNEW.md

Lines changed: 156 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,161 @@
11
# What's New in Simu5G
22

3+
## v1.5.1 (2026-07-28)
4+
5+
This release continues the architectural overhaul of Simu5G, focusing on the
6+
PDCP and RLC layers: per-bearer protocol entities are now packaged into
7+
compound modules, DRBs are established as bidirectional (duplex) bearers, and
8+
the Dual Connectivity split-bearer data path was restructured.
9+
10+
Tested with INET-4.5.4 and OMNeT++ 6.3, compatible with INET-4.6.0 and OMNeT++
11+
6.1 through 6.4.
12+
13+
### Per-bearer PDCP and RLC compound entity modules
14+
15+
v1.5.0 transformed the PDCP and RLC layers into dynamically created per-bearer
16+
TX/RX entity modules. This release packages the two sides of each bearer into
17+
one compound module per bearer, following the 3GPP model of one PDCP/RLC
18+
entity per bearer (for RLC AM explicitly with a transmitting and a receiving
19+
side):
20+
21+
- **RLC**: Each bearer's TX and RX entities now live in an `RlcTmEntity`,
22+
`RlcUmEntity` or `RlcAmEntity` compound module. In AM, the internal control
23+
paths are now explicit gate connections between the RX and TX submodules,
24+
replacing C++ registry-lookup calls between the two simple modules:
25+
`feedbackOut` -> `feedbackIn` carries the STATUS PDUs received from the peer
26+
into the TX side's ARQ, and `statusOut` -> `statusIn` hands the locally
27+
generated status reports to the TX side for transmission.
28+
29+
- **PDCP**: Each bearer's TX and RX entities now live in a `PdcpEntity`
30+
compound module. Variants are subclasses overriding the entity typenames
31+
(`NrPdcpEntity`); a mixed entity (e.g. an EN-DC master eNB, which runs an NR
32+
TX side with an LTE RX side) overrides just `tx.typename` or `rx.typename`.
33+
34+
- **PdcpRelayEntity**: At a Dual Connectivity secondary node, which only
35+
tunnels already-processed PDUs between the master (over X2) and its own RLC,
36+
the two per-bearer bypass modules were packaged into a `PdcpRelayEntity`
37+
compound module, which stands in place of the bearer's PDCP entity;
38+
`BypassTxPdcpEntity`/`BypassRxPdcpEntity` were renamed to
39+
`PdcpDownlinkRelay`/`PdcpUplinkRelay`.
40+
41+
- New module interfaces (`ITxPdcpEntity`, `IRxPdcpEntity`, `IRlcTxEntity`,
42+
`IRlcRxEntity`, `IRlcAmTxEntity`, `IRlcAmRxEntity`) make the entity
43+
implementations replaceable: every compound binds its two sides with the
44+
standard `tx.typename`/`rx.typename` submodule typename assignment, which a
45+
configuration or a subclass of the compound can override. The ten per-side
46+
entity-type parameters of `BearerManagement` were consolidated into five
47+
per-compound ones (`pdcpEntityModuleType`, `pdcpRelayEntityModuleType`,
48+
`rlcTm/Um/AmEntityModuleType`).
49+
50+
### DRBs established as duplex (bidirectional) bearers
51+
52+
Per TS 38.331, a DRB is bidirectional; Simu5G so far established each
53+
direction as an independent unidirectional bearer with its own
54+
locally-assigned DRB id. RLC AM fundamentally needs the reverse path of the
55+
same bearer for its STATUS PDUs, which the old model could only provide via
56+
on-demand reverse entities created from inside packet processing. Now:
57+
58+
- `Binder::establishDataConnection()` (renamed from
59+
`establishUnidirectionalDataConnection()`) creates both directions of a
60+
unicast bearer at once; multicast bearers remain unidirectional.
61+
62+
- DRB ids are allocated by the `Binder` with a counter per node pair, so the
63+
two ends of a bearer see the same DRB id, and DRB ids are peer-scoped
64+
(per-UE identities, as in the spec) rather than node-unique.
65+
66+
- Reverse application traffic resolves to the reverse leg of the existing
67+
bearer instead of allocating a second bearer.
68+
69+
This may change results in simulations where request and response flows
70+
between the same node pair previously used two separate bearers: they now
71+
share one duplex bearer, which changes logical channel ids and can change
72+
scheduling order under contention.
73+
74+
### Dual Connectivity split-bearer data path restructured
75+
76+
A DC split bearer is one PDCP entity -- one sequence number space -- whose
77+
PDUs are steered per-packet across two RLC legs. The `PdcpEntity` compound now
78+
reflects this: its lower boundary is a `legOut[]`/`legIn[]` gate vector. A
79+
plain bearer has one leg, and the TX/RX entities connect straight to it; a
80+
split bearer routes the TX side through a `DcPdcpLegSplitter` (per-PDU leg
81+
dispatch, per-leg DC id mapping and statistics) and merges both legs through a
82+
`PdcpLegJoiner` into the single RX entity, whose one reordering window
83+
restores sequence order across the legs. The per-packet leg steering policy
84+
itself remains in `TechnologyDecision`; the splitter only executes it.
85+
86+
### MAC prepared for NR RLC framing
87+
88+
The MAC and the schedulers can now accommodate an RLC that emits one SDU or
89+
segment per PDU without concatenation (the NR model of TS 38.322), in addition
90+
to LTE's single concatenated PDU per grant: for such flows, the schedulers
91+
plan one PDU per SDU/segment to fill the grant, the MAC issues one SDU request
92+
per planned PDU and multiplexes them into the MAC PDU, and exact per-PDU RLC
93+
header sizes are computed (octet-aligned, per SN length and segment state).
94+
This is inert by default (`soFraming=false` keeps the LTE path) and is
95+
groundwork for an upcoming standards-compliant NR RLC implementation.
96+
97+
### Beacon emission control at the eNB/gNB
98+
99+
- Beacon broadcasting was decoupled from `enableHandover`: the new
100+
`enableBeacons` parameter (default: `enableHandover`) controls it, so that
101+
radio link monitoring can later work without handover enabled.
102+
`enableHandover=true` now requires beacons to actually flow.
103+
104+
- A non-positive `beaconInterval` is now an initialization error instead of
105+
silently disabling beacons; beacons are switched off with
106+
`enableBeacons=false`.
107+
108+
### Module architecture improvements
109+
110+
- **isNr as parameter**: `LteMacUe`, `LtePhyUe` and `LteDlFeedbackGenerator`
111+
no longer determine whether they are the NR leg of the UE by string-matching
112+
their own module name ("nrMac", "nrPhy", "nrDlFbGen"); they now have a
113+
`bool isNr` parameter, set by `NrNicUe`.
114+
115+
- **Parametrized module references**: Hardcoded `getSubmodule()` walks inside
116+
the NIC were replaced with NED module-path parameters (11 new parameters
117+
across `BearerManagement`, `HandoverController`, `DcMux`, `LteMacEnb` and
118+
`TechnologyDecision`), and foreign-node lookups now go through `Binder`
119+
helper methods.
120+
121+
- **IHandoverPacketHolder**: The `hoManagerOut` gate was added to the module
122+
interface, so that custom holder implementations can be substituted
123+
(contributed by Mohamed Seliem).
124+
125+
### Bug fixes
126+
127+
- **Crash on interleaved Dual Connectivity leg handovers**: Fixed a
128+
long-standing crash (also present in v1.4.3..v1.4.5) triggered when the LTE
129+
leg of an NR UE hands over while its NR leg is detached: per-UE state
130+
provisioned at the old master's secondary gNB was left orphaned, and
131+
re-establishment collided with the leftovers when the UE later returned.
132+
Handover cleanup now also covers the old serving node's secondary. In
133+
addition, PDCP entity teardown at NR UEs is now keyed by peer node, so an
134+
NR-leg detach no longer deletes the LTE leg's entities as well.
135+
136+
- **MAC**: `macSduRequest()` no longer underflows when the scheduler allocates
137+
a grant smaller than the MAC header, which surfaced as a misleading
138+
"configured queueSize too low" error with many DRBs under `QOS_PF`
139+
contention (contributed by Mohamed Seliem).
140+
141+
- **NrPhyUe**: D2D DATA frames arriving while the UE is detached during
142+
handover are now dropped, as `LtePhyUeD2D` already did, instead of crashing
143+
on already-deleted HARQ buffers.
144+
145+
- **HandoverController**: Removed a redundant second detach/attach of the D2D
146+
direction on the AMC during NR UE handover.
147+
148+
- **LtePhyEnb**: Corrected copy-pasted class names in `requestFeedback()`
149+
error messages.
150+
151+
### Other
152+
153+
- **Fingerprint tests**: The simulation-time intervals of configurations
154+
involving events like handover or D2D mode switching were extended so that
155+
the fingerprint window actually covers those events, and fingerprints were
156+
re-recorded for the architectural changes above.
157+
158+
3159
## v1.5.0 (2026-07-13)
4160

5161
This release continues the architectural overhaul of Simu5G. Major themes

0 commit comments

Comments
 (0)