Skip to content

Commit 1074b34

Browse files
committed
WHATSNEW updated
1 parent 4284677 commit 1074b34

File tree

2 files changed

+115
-1
lines changed

2 files changed

+115
-1
lines changed

Version

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
1.4.2
1+
1.4.3

WHATSNEW.md

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

3+
## v1.4.3 (2026-02-18)
4+
5+
This release represents a major milestone in the complete overhaul of the Simu5G
6+
codebase to make it architecturally more compliant with the 3GPP
7+
specifications, modernize the code, and adopt the best practices of the INET
8+
Framework on which it is based. The goal is to pave the way for a clean
9+
implementation of new protocol features such as TSN support.
10+
11+
Key achievements in this release:
12+
13+
- **More explicit Control Plane modeling**: Simu5G is advertised as a User Plane
14+
simulator, but since it was also used to model dynamic scenarios such as
15+
handovers, it always contained elements of the Control Plane distributed across
16+
various modules. The new direction is to make these elements more explicit and
17+
centralized, such as creating dedicated RRC (Radio Resource Control) and
18+
Session Management Function (SMF) implementations. It is an explicit non-goal
19+
to simulate Control Plane messaging -- its functionality will be implemented
20+
with C++ method calls across modules. Thus, Simu5G remains a User Plane
21+
simulator, but with the possibility to more faithfully model dynamic
22+
scenarios with heavy Control Plane involvement. While this goal is not fully
23+
realized in this release, many changes point into that direction.
24+
25+
- **Control info refactoring**: Cleaned up `UserControlInfo` and
26+
`FlowControlInfo` by removing 5+ unused fields and splitting out smaller,
27+
focused tags. For example, IPv4 addresses, only used between `Ip2Nic` and PDCP,
28+
have been factored out into an `IpFlowInd` tag. This improves modularity,
29+
reduces coupling between protocol layers, and makes the code easier to
30+
maintain and extend.
31+
32+
- **Added vital missing fields to PDCP and MAC headers**: Protocol layers now
33+
use proper header fields instead of "tunnelling" information via
34+
`UserControlInfo` and `FlowControlInfo` packet tags that would not exist in a
35+
real implementation. For example, PDCP sequence numbers are now carried in
36+
PDCP headers, and LCIDs are stored in MAC PDU subheaders. This makes the
37+
simulation more realistic and packet contents more inspectable in Qtenv.
38+
39+
- **Explicit setup of logical connections instead of on-the-fly discovery**:
40+
This is a key architectural change, which also largely motivated the
41+
previous items. In previous iterations of Simu5G, data structures associated
42+
with logical connections / bearers were created in each protocol layer as they
43+
encountered packets that belonged to new connections. Moreover, part of the
44+
connection state was carried along by the packets in `FlowControlInfo` tags
45+
instead of stored inside the protocol. While this modeling approach still
46+
allowed for faithful simulation of the traffic while keeping the
47+
implementation simple, it has become a roadblock for implementing complex
48+
dynamic scenarios where connections come and go. In this iteration,
49+
centralized session and bearer management (SMF-like functionality) was added
50+
to the `Binder` module, and RRC modules were added to NICs to carry out local
51+
configuration. This brings the architecture closer to the 3GPP control/user
52+
plane separation, making it easier to implement features like handovers
53+
correctly. This is work in progress: SMF is still part of `Binder` and not a
54+
separate module, and connection setup is still triggered by the first packet
55+
of the connection hitting PDCP on the way out. However, moving the SMF code
56+
into its own module will be trivial, and the single `Binder` method call in
57+
PDCP can now be easily replaced with static configuration or with calls from a
58+
more detailed Control Plane implementation.
59+
60+
- **Removed incomplete MIMO support**: Removed MIMO-related code and parameters.
61+
The existing MIMO code was incomplete (e.g., PMI values were computed but
62+
never used). Removing it simplifies the codebase and model parameterization,
63+
and avoids confusion about capabilities. MIMO support will be added in a future
64+
release, with a different approach.
65+
66+
- **Initialization cleanup**: Reorganized module initialization into well-defined,
67+
Simu5G-specific init stages. This eliminates hidden cross-module dependencies,
68+
makes the initialization order explicit and verifiable, and prevents subtle bugs
69+
caused by modules accessing uninitialized data in other modules.
70+
71+
Further notable changes:
72+
73+
- In UE models, `masterId` and `nrMasterId` were renamed to `servingNodeId` and
74+
`nrServingNodeId`. The old names were confusing because "Master" has a
75+
specific meaning in Dual Connectivity (Master eNB vs Secondary gNB), unrelated
76+
to the UE's serving node.
77+
78+
- In UE models, the `macCellId`, `nrMacCellId` parameters were removed. In
79+
practice, the code already used the serving node ID as cell ID.
80+
81+
- `macNodeId` assignment was moved to NED, and now it is based on the new
82+
`simu5g_seq()` NED function that generates an integer sequence. This replaces
83+
the earlier approach where node IDs were assigned by `Ip2Nic` during
84+
initialization, and stored back into the module parameters for other modules to
85+
use.
86+
87+
- `LteRlcPduNewData` and `LteRlcSdu` packet chunks were converted to packet
88+
tags, as they represent internal metadata rather than actual protocol data.
89+
90+
- In the C++ code, merged the `ENODEB` and `GNODEB` node type enum values into a
91+
single `NODEB` value, with a separate `isNr` flag where needed. This change
92+
simplified a large number of "if" conditions throughout the codebase.
93+
94+
To port your existing Simu5G simulations to this version, apply the following
95+
changes to the ini files:
96+
97+
- Change `masterId` to `servingNodeId` (and `nrMasterId` to `nrServingNodeId`),
98+
unless it refers to the Master/Secondary distinction in a Dual Connectivity
99+
setup.
100+
101+
- Remove `macCellId` and `nrMacCellId` parameter assignments for UE modules.
102+
103+
- Delete ini entries that set the following removed MIMO-related parameters:
104+
`numRus`, `ruRange`, `ruStartingAngle`, `ruTxPower`, `antennaCws`,
105+
`muMimo`, `pmiWeight`, `lambdaMinTh`, `lambdaMaxTh`, `lambdaRatioTh`,
106+
`feedbackGeneratorType`.
107+
108+
- For `initialTxMode`, the following values are no longer valid:
109+
`SINGLE_ANTENNA_PORT5`, `OL_SPATIAL_MULTIPLEXING`, `CL_SPATIAL_MULTIPLEXING`,
110+
`MULTI_USER`. Remove the parameter assigment to use the default.
111+
112+
There are many more changes that potentially affect existing simulations, and
113+
projects extending, or built on top of, Simu5G. They cannot all be covered here
114+
in detail - see the git history for details.
115+
116+
3117
## v1.4.2 (2025-11-27)
4118

5119
This is primarily a bugfix release.

0 commit comments

Comments
 (0)