Fix Delta MCS mode, reimplement UL power control This change set fixes the "delta-MCS" mode, and reimplements the UL power control loops at gNB, i.e., for PUSCH and PUCCH. It further adds new T traces to log PUSCH/PUCCH power infrmation, and cleans up code. The "delta-MCS" mode in OAI refers to configuring a UE with deltaMCS in the PUSCH-PowerControl IE (see TS 38.331). In this mode, the UE adjusts the PUSCH power for transmissions to take into account for MCS (see TS 38.213 Sec. 7.1). In other words, the target SNR can be set to a somewhat low value, and the UE will still use the right power for UL transmissions. Note that the spec only foresees this adjustment of UL power when using one layer. In contrast, in the "normal" mode, the gNB sends TPC commands to keep a UE at a fixed target SNR (default: 20dB), regardless of the MCS or number of layers. Future work is planned to completely remove this fixed target SNR, which is not done in this MR yet. Further, there is a new power control loop implementation. Prior to this MR, on each UL transmissions, the gNB uses the SNR to decide about TPC sent to a UE in the next transmissions. The new implementation relies on averaging the SNR, and a "TPC in flight" average to account for the slow reaction of the average SNR. The sum of both quantities is the current SNR that is used by the UE. See the commit messages or documentation for more information. Further cleanup to group data (e.g., power control configuration, refactoring of code to save space, ...) is done. Two new T traces GNB_MAC_PUSCH_POWER_CONTROL and GNB_MAC_PUCCH_POWER_CONTROL are added; documentation exists to explain how to graphically plot corresponding graphs.
Configuration files: naming style guide
The configuration files should have the following name format:
<type>[.<sa|nsa>][.band<num>.[u<num>.]<num>prb].<sdr>[.<opt>].conf
Where:
[]means this field is optional<type>: one ofgnb,enb,gnb-cu,gnb-du,nrue,lteue, etc.<sa|nsa>: in the case of 5G, notes whether this is SA or NSA<num>forband/u/prb: numerical value. Note that band/PRB are only applicable in some cases. The numerologyuis only to be set for 5G if it differs fromu1.<sdr>: what SDR board/split this is tailored for:- e.g.,
usrpb210,usrpn310,rfsim,aw2s - if there is no SDR (e.g., for a CU), use the south-bound split, e.g.,
f1,if4p5, etc. - for the L2simulator, write
l2sim
- e.g.,
<opt>: optional specifiers. If there are multiple, concatenated using a dash (-). Examples:2x2prs(positioning reference signal)ddsuu(specific TDD pattern)tm2: Transmission Mode 2 in 4Goaiue: specifies usage with OAI UE and not COTS UE
Examples:
- standard monolithic gNB, 2x2 configuration, with SDAP:
gnb.sa.band78.162prb.usrpn310.2x2-sdap.conf - gNB-CU:
gnb-cu.sa.f1.conf - monolithic gNB, L2sim:
gnb.sa.band77.106prb.l2sim.conf - monolithic eNB:
enb.band7.25prb.usrpb200.conf - RCC (4G eNB with IF4.5 split):
enb-rcc.band7.25prb.tm1.if4p5.conf
Notes:
- there is no need for TDD/FDD, this is encoded in the band number
- there is no need for FR1/FR2, this is encoded in the band number