mirror of
https://gitlab.eurecom.fr/oai/openairinterface5g.git
synced 2026-07-13 04:30:28 +00:00
phy: remove beam idx from rxdataF txdataF
1. Beam index: So far rxdataF and txdataF had beam number as first index to separate freq domain samples of antenna ports when mulitple beams are served in a slot. This works fine when the beam is applied to entire symbol / slot but not suitable for digital beamforming. This commit removes the beam number index from the data buffers and the buffers hold all the antenna ports in the first dimension. The antenna port index to be used for each UE in a MU-MIMO or concurrent analog beam scenario is signalled by L2 via dedicated fields in the FAPI PDU. 2. Beam ID array changes: - The gNB and RU struct has a 2D array to hold beam IDs for all symbols in a frame and all antenna ports. The order is now changes to first: symbol index and second: antenna port because the RU access all ports' beam IDs for each symbol / slot at a time. This ordering is optimal for maximizing cache hits. - The type is now changed from int to uint16_t. So far the L1 had to deduce the beam number index (done in beam_index_allocation()) from the beam ID sent by L2 and this is done by initializing the beam_id array to -1 which denoted no beam id set. Now since L2 explicitely passes the port indices, there is no need for denoting if a beam id is assigned or not to a slot in L1. And uint16_t matches with the type used by FAPI to carry beam ID. Since the type is uin16_t, beam_id array is initialized to 0 and the check for -1 when passing beam ID 0 to xran is also removed. 3. Number of antenna ports: The removal of beam index from rxdataF and txdataF buffers resulted in all antenna ports to be in a single vector. The number of logical ports passed to L1 is not N1*N2*XP*number of beams per period. The buffer initialization function is updated to reflect this change. DAS reference config file is updated in accordance with these changes. 4. oaioran.c: Remove the check of beam ID = -1 for setting nPrbElm = 0. This is a hack for LiteON to supposedely improve performance according to Mario. If it's true then a proper fix would be to pass allocation information from L1 and use it instead of beam ID. Signed-off-by: Sakthivel Velumani <s.velumani@northeastern.edu>
This commit is contained in:
@@ -129,6 +129,10 @@ int beam_index_allocation(bool das,
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
uint16_t get_first_ant_idx(bool das, uint16_t num_ports_beams, uint16_t beam_id, uint16_t fapi_start_port)
|
||||
{
|
||||
return 0;
|
||||
};
|
||||
void nr_fill_du(uint16_t N_ZC, const uint16_t *prach_root_sequence_map, uint16_t nr_du[NR_PRACH_SEQ_LEN_L - 1])
|
||||
{
|
||||
return;
|
||||
|
||||
Reference in New Issue
Block a user