Files
openairinterface5g/openair2/NR_PHY_INTERFACE/NR_IF_Module.c
Rakesh Mundlamuri c1f8335545 Introduce group-based processing using FAPI groups
Refactor ULSCH_id based processing of the PUSCH PDUs to group based
processing using FAPI groups. This is required to process multiple
PUSCH PDUs jointly for MU-MIMO. This is an initial commit that
supports group size = 1 and will be extended to > 1 in the following
commits.

The flow of group information from MAC to PHY using FAPI is as follows:

- In MAC, nr_schedule_pusch_fapi_groups() is introduced to group UEs
  that have PUSCH PDUs with the same frequency, time, and QAM order
  along with orthogonal DMRS ports into a single group. The FAPI
  groups consist of UE lists filled with a PDU index. Based on the
  parameter UL_tti_req->n_group, the number of unique groups is
  identified. In each group, the parameter group->n_ue defines the
  number of UEs present in the group along with their PDU indices.

- After receiving the FAPI message in the PHY from MAC, in
  nr_save_ul_tti_req(), a group number and group size for each
  PUSCH PDU is allocated in nr_fill_ulsch(), and a PUSCH job is created.

- Further, after a job is created, in phy_procedures_gNB_uespec_RX(),
  the PUSCH PDUs of the ULSCH_ids for each group are segregated based
  on the group index. They are processed jointly using
  handle_pusch_rx_group_trigger(), and the PUSCH DTX per UE in the
  group is calculated using handle_pusch_DTX().

Signed-off-by: Rakesh Mundlamuri <rakesh.mundlamuri@openairinterface.org>
2026-06-04 13:27:05 +05:30

18 KiB