|
1 | 1 | # What's New in Simu5G |
2 | 2 |
|
3 | | -## v1.6.0 (2026-07-28) |
| 3 | +## v1.6.0 (2026-07-31) |
4 | 4 |
|
5 | 5 | This release adds a standards-compliant NR RLC to Simu5G. RLC Unacknowledged |
6 | 6 | Mode and Acknowledged Mode per TS 38.322 -- contributed by Esteban Egea Lopez |
@@ -36,7 +36,7 @@ it as well. This release adds a faithful NR RLC: |
36 | 36 | `nrRlcUmEntityModuleType` and `nrRlcAmEntityModuleType` parameters (default: |
37 | 37 | the new `NrRlcUmEntity`/`NrRlcAmEntity` compound modules), and selects them |
38 | 38 | for every bearer that has an NR node at either end; LTE bearers keep the |
39 | | - `rlc*` compounds. RLC framing is a function of the RAT rather than a free |
| 39 | + `lteRlc*` ones. RLC framing is a function of the RAT rather than a free |
40 | 40 | choice, so there is no LTE/NR mix; TM, being transparent, is identical for |
41 | 41 | both RATs and has no NR variant. |
42 | 42 |
|
@@ -105,11 +105,48 @@ LTE-specific: |
105 | 105 | `maxRtxThreshold` retransmissions, wired to the same |
106 | 106 | `BearerManagement` teardown and RRC re-establishment as the NR AM. |
107 | 107 |
|
108 | | -RLC AM is selected per traffic class with the `conversationalRlc`, |
109 | | -`streamingRlc`, `interactiveRlc` and `backgroundRlc` parameters of `Ip2Nic`. |
110 | 108 | Since no configuration could use the old LTE AM, this does not affect existing |
111 | 109 | simulation results. |
112 | 110 |
|
| 111 | +### Selecting RLC AM |
| 112 | + |
| 113 | +Acknowledged Mode is now usable on both RATs -- previously there was no NR AM |
| 114 | +implementation at all, and an NR bearer asking for AM got the LTE one, which did |
| 115 | +not work -- but nothing selects it by default: every bearer stays in the mode it |
| 116 | +had before, so existing simulations are unaffected. Two mechanisms choose the |
| 117 | +mode of a bearer, depending on whether SDAP is in the stack. |
| 118 | + |
| 119 | +Without SDAP, `Ip2Nic` classifies each packet into a traffic class by packet name |
| 120 | +(`VoIP*` -> conversational, `gaming*` -> interactive, `VoDPacket*` -> streaming, |
| 121 | +anything else -> background) and maps the class to an RLC mode with its |
| 122 | +`conversationalRlc`, `streamingRlc`, `interactiveRlc` and `backgroundRlc` |
| 123 | +parameters. They accept `"TM"`, `"UM"` and `"AM"`, and all four default to |
| 124 | +`"UM"` -- which is the pre-v1.6.0 behavior, kept for backward compatibility: |
| 125 | + |
| 126 | + **.cellularNic.ip2nic.conversationalRlc = "AM" |
| 127 | + |
| 128 | +With SDAP in the stack (`hasSdap = true` on the NR NIC, which propagates into |
| 129 | +`ip2nic.hasSdap`), `Ip2Nic` skips traffic classification entirely and the mode |
| 130 | +becomes a property of the DRB: every entry of `NrSdap.drbConfig` takes an |
| 131 | +optional `rlcType` field, again one of `"AM"`, `"UM"` and `"TM"`, and again |
| 132 | +defaulting to `"UM"`: |
| 133 | + |
| 134 | + *.gnb.cellularNic.hasSdap = true |
| 135 | + *.gnb.cellularNic.sdap.drbConfig = [ |
| 136 | + {"drb": 0, "ue": 2049, "qfiList": [1, 2], "rlcType": "UM"}, |
| 137 | + {"drb": 1, "ue": 2049, "qfiList": [3, 4], "rlcType": "AM"}] |
| 138 | + |
| 139 | +Either way, both ends of a bearer must be configured with the same mode: each |
| 140 | +node builds its own RLC entity from its own configuration, so a mismatch leaves |
| 141 | +an AM entity facing a UM one. The `**.` wildcard above takes care of that for |
| 142 | +`Ip2Nic`; with SDAP, the UE's `drbConfig` entry for a DRB and the gNB's entry |
| 143 | +for the same DRB have to agree on `rlcType`. |
| 144 | + |
| 145 | +Which entity type then implements the mode follows from the RAT, as described |
| 146 | +above: an AM bearer with an NR node at either end runs the `NrRlcAmEntity` |
| 147 | +compound, an LTE one `LteRlcAmEntity`. TM is available on both, and is the same |
| 148 | +entity for both. |
| 149 | + |
113 | 150 | ### RLC validation scenarios |
114 | 151 |
|
115 | 152 | The new `simulations/nr/rlc` and `simulations/lte/rlc` directories hold |
@@ -261,6 +298,21 @@ bearer individually measurable. |
261 | 298 | `lte/test_handover` (157 configurations in total), and the rows were |
262 | 299 | re-recorded for the NR RLC default and the statistics changes. |
263 | 300 |
|
| 301 | +- **Documentation**: the RLC entity documentation comments were retargeted at |
| 302 | + the compound modules that actually bind them -- several still referred to |
| 303 | + per-side `rlcUm{Tx,Rx}EntityModuleType` parameters, which v1.5.1 replaced |
| 304 | + with selection on the per-bearer compound -- and the `RlcUmEntityBase` / |
| 305 | + `RlcAmEntityBase` comments now name both of their concrete subclasses. |
| 306 | + |
| 307 | +- **Source housekeeping**: file headers were brought in line -- the contributed |
| 308 | + NR RLC sources now carry the standard Simu5G header naming their author |
| 309 | + instead of an LGPL blurb, files that had no header got one, and new files |
| 310 | + that had inherited the header of the file they were derived from now name |
| 311 | + their actual author. The redundant `@class` line was dropped from the C++ |
| 312 | + class comments, and `IRlcAmEntities.ned` was split into `IRlcAmTxEntity.ned` |
| 313 | + and `IRlcAmRxEntity.ned`, one interface per file. The interfaces themselves, |
| 314 | + and all type names, are unchanged. |
| 315 | + |
264 | 316 | ## v1.5.2 (2026-07-30) |
265 | 317 |
|
266 | 318 | This release corrects the names of the per-bearer PDCP and RLC entity modules |
|
0 commit comments