Add CARR.PUSCHMCSDist metric
Implement CARR.PUSCHMCSDist (3GPP TS 28.552 §5.1.1.12.2): uplink
counterpart of CARR.PDSCHMCSDist; PRB-weighted 3D histogram over
(rank, MCS-table, MCS-index) for PUSCH transmissions.
PUSCH may use MCS tables 0 (64-QAM), 1 (256-QAM) and 3 (SC-FDMA), so the
MCS-table dimension is indexed directly by current_BWP->mcs_table and
sized to 4 (index 2 unused). Remapping the tables into fewer bins would
lose the 64-QAM/256-QAM distinction, so no remapping is applied.
- ran_func_kpm.c: register CARR.PUSCHMCSDist in the RAN Function
Definition advertisement (kpm_node_meas_* lists).
- ran_func_kpm_subs.c: add fill_CARR_PUSCHMCSDist(); distBinX (rank) is
1-based on the wire and converted to a 0-based index, while distBinY
(MCS table, values 0/1/3) and distBinZ (MCS index) are 0-based and used
directly, returning du_stats->pusch_mcs_dist[rank-1][table][mcs]; add
dispatch entry to lst_measure[].
- nr_mac_gNB.h: the pusch_mcs_dist histogram was sized [8][2][32], too
small for MCS table 3 (SC-FDMA) and thus overflowing at collection time;
size the MCS-table dimension to 4 via NR_KPM_NB_MCS_TABLE_UL to hold
tables 0, 1, 3.
- gNB_scheduler_ulsch.c: the UL collection into pusch_mcs_dist already
exists; align its surrounding DevAsserts with the KPM dimension macros
(NR_KPM_MAX_LAYERS, NR_KPM_NB_MCS).
Carried as E2SM-KPM Style 1 / Format 1 with distBinX/Y/Z labels.
Advertised by DU and monolithic gNB node types.
Signed-off-by:
Noemi Giustini <giustini.n@northeastern.edu>
Showing
Please register or sign in to comment