Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
O
OpenXG-RAN
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
1
Merge Requests
1
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Metrics
Environments
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
OpenXG
OpenXG-RAN
Commits
1428aeac
Commit
1428aeac
authored
Mar 24, 2026
by
Robert Schmidt
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Add documentation for gNB power control, and explain deltaMCS
parent
22fdcd64
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
38 additions
and
3 deletions
+38
-3
doc/MAC/mac-usage.md
doc/MAC/mac-usage.md
+38
-3
No files found.
doc/MAC/mac-usage.md
View file @
1428aeac
...
...
@@ -67,6 +67,43 @@ happen.
Say we have 0% PDCCH success rate (radio link failure scenario) but
`pdcch_cl_adjust`
is 0 indicating
perfect PDCCH channel. it would take ~18 PDCCH failures to reach maximum aggregation level.
## Power control
The gNB tracks the average SNR used by the UE for PUSCH/PUCCH, and sends TPC
commands to maintain the UE at a specific target SNR. Internally, it maintains
an average of measured SNR and RSSI. It also updates
`tpc_in_flight`
, which
tracks TPC changes that don't show up in the average yet. For instance, imagine
that the target SNR of 15 changes to 20. Three successive TPC commands need to
be sent (+3, +1, +1), but it will take time to show up in the average SNR. To
account for this,
`tpc_in_flight`
is updated by the TPCs sent, and an average
will make it go down back to zero at the same pace as the average SNR
approaches the target SNR. The sum of average SNR and
`tpc_in_flight`
sums up
to the actual, current SNR, which approximates the target SNR. The power
control tries to keep the SNR within -1<=targetSNR<=+2dB to avoid too many TPC
changes. On each DTX,
`tpc_in_flight`
is lowered by 1dB, correspondingly
lowering the current SNR by 1dB, which result in "boosting" the UE's target
SNR.
For PUCCH, the gNB will try to keep the UE at the target SNR as configured by
`pucch_TargetSNRx10`
.
For PUSCH, two modes are available currently. Both have in common that
`pusch_TargetSNRx10`
is used to configure a specific target SNR, but the
meaning of the target SNR changes depending on the mode. (For the following,
note that as per 38.213 Sec 7.1, the number of PRBs used for a PUSCH
transmission is always taken into account by the UE).
1.
the "normal" mode (default), in which the gNB tries to keep the UE at the
target SNR, regardless of MCS (and layers) used. This is the default.
Depending on the target MCS and number of layers, the target SNR should be
placed in the 20-30dB range.
2.
the "deltaMCS" mode (
`deltaMCS=1`
, see below). In this mode, the UE accounts
for the MCS in the power used for PUSCH transmissions automatically (see
delta_TF factor in TS 38.213 Sec 7.1) when using only one layer. Thus it is
sufficient to set a lower target SNR (5-10dB). As the spec foresees that
this only works for one layer, it is suggested to disable SRS to disable
multi-layer operation in UL.
## Periodic output and interpretation
The scheduler periodically outputs statistics that can help you judge the radio
...
...
@@ -277,9 +314,7 @@ configuration](../RRC/rrc-usage.md) as well for SIB configuration.
*
`disable_harq`
(default 0=false): flag whether to disable HARQ completely
(useful for NTN operation, see
<
../
RUNMODEM
.
md
>
).
**
this is a Rel-17 feature
and you need to have a capable UE for this
**
*
`use_deltaMCS`
(default 0=false): flag whether to enable deltaMCS (
**
this is not fully tested
and might not work
**
and you might need to adjust other parameters such as
target SNRs)
*
`use_deltaMCS`
(default 0=false): flag whether to enable deltaMCS
*
`num_dlharq`
(default 16): number of HARQ processes to use in DL (other valid
options are 2, 4, 6, 8, 10, 12, 32;
**32 is a Rel-17 features**
)
*
`num_ulharq`
(default 16): as
`num_dlharq`
for UL (other valid option is 32;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment