Merge remote-tracking branch 'origin/NR_more_than_4_antennas' into integration_2026_w09 (!3871)

Support for up to 12 ports in NR gNB
This commit is contained in:
Robert Schmidt
2026-02-26 08:41:16 +01:00
28 changed files with 144 additions and 105 deletions
@@ -97,7 +97,7 @@ t_nrPolar_params *nr_polar_params(int8_t messageType, uint16_t messageLength, ui
// printf("currentPtr %p (polarParams %p)\n",currentPtr,polarParams);
// Else, initialize and add node to the end of the linked list.
t_nrPolar_params *newPolarInitNode = malloc(sizeof(t_nrPolar_params));
t_nrPolar_params *newPolarInitNode = memalign(32, sizeof(t_nrPolar_params));
AssertFatal(newPolarInitNode, "[nr_polar_init] New t_nrPolar_params * could not be created");
*newPolarInitNode = (t_nrPolar_params){.busy = true, .nextPtr = PolarList, .tree_linearization.is_initialized = false};
+3 -3
View File
@@ -262,8 +262,8 @@ int init_nr_ue_signal(PHY_VARS_NR_UE *ue, int nb_connected_gNB)
// ceil((NB_RB*8(max allocation per RB)*2(QPSK))/32)
ue->nr_csi_info = malloc16_clear(sizeof(nr_csi_info_t));
ue->nr_csi_info->csi_rs_generated_signal = malloc16(NR_MAX_NB_PORTS * sizeof(*ue->nr_csi_info->csi_rs_generated_signal));
for (int i = 0; i < NR_MAX_NB_PORTS; i++) {
ue->nr_csi_info->csi_rs_generated_signal = malloc16(NR_MAX_CSI_PORTS * sizeof(*ue->nr_csi_info->csi_rs_generated_signal));
for (int i = 0; i < NR_MAX_CSI_PORTS; i++) {
ue->nr_csi_info->csi_rs_generated_signal[i] =
malloc16_clear(fp->samples_per_frame_wCP * sizeof(**ue->nr_csi_info->csi_rs_generated_signal));
}
@@ -311,7 +311,7 @@ void term_nr_ue_signal(PHY_VARS_NR_UE *ue, int nb_connected_gNB)
for (int gNB_id = 0; gNB_id < ue->n_connected_gNB; gNB_id++) {
for (int i=0; i<NR_MAX_NB_PORTS; i++) {
for (int i = 0; i < NR_MAX_CSI_PORTS; i++) {
free_and_zero(ue->nr_csi_info->csi_rs_generated_signal[i]);
}
free_and_zero(ue->nr_csi_info->csi_rs_generated_signal);
-3
View File
@@ -72,9 +72,6 @@
#define SYNCHRO_RATE_CHANGE_FACTOR (1)
#endif
#define SYNC_TMP_SIZE (NB_ANTENNAS_RX*SYNCHRO_FFT_SIZE_MAX*IQ_SIZE) /* to be aligned with existing lte synchro */
#define SYNCF_TMP_SIZE (SYNCHRO_FFT_SIZE_MAX*IQ_SIZE)
void init_context_synchro_nr(NR_DL_FRAME_PARMS *frame_parms_ue);
int pss_synchro_nr(const c16_t **rxdata,
const NR_DL_FRAME_PARMS *frame_parms,
+1
View File
@@ -56,6 +56,7 @@
#include <math.h>
#include "common_lib.h"
#include "common/cmake_defs.h"
#include "defs_common.h"
#include "impl_defs_top.h"
+1
View File
@@ -39,6 +39,7 @@
#endif
#endif
#include "common/cmake_defs.h"
#include "defs_nr_common.h"
#include "CODING/nrPolar_tools/nr_polar_pbch_defs.h"
#include "PHY/defs_nr_sl_UE.h"
-2
View File
@@ -68,8 +68,6 @@
#define NR_MAX_PDCCH_AGG_LEVEL 16 // 3GPP TS 38.211 V15.8 Section 7.3.2 Table 7.3.2.1-1: Supported PDCCH aggregation levels
#define NR_MAX_NB_PORTS 32
#define MAX_NUM_NR_DLSCH_SEGMENTS_PER_LAYER 36
#define MAX_NUM_NR_ULSCH_SEGMENTS_PER_LAYER 34
+1
View File
@@ -34,6 +34,7 @@
#define __PHY_IMPLEMENTATION_DEFS_NB_IOT_H__
#include "common/openairinterface5g_limits.h"
#include "common/cmake_defs.h"
#define NUMBER_OF_SUBBANDS_MAX_NB_IoT 13
typedef enum {no_relay_NB_IoT=1,unicast_relay_type1_NB_IoT,unicast_relay_type2_NB_IoT, multicast_relay_NB_IoT} relaying_type_t_NB_IoT;
+1
View File
@@ -35,6 +35,7 @@
#include <unistd.h>
#include <execinfo.h>
#include <signal.h>
#include "common/cmake_defs.h"
#include "common/config/config_load_configmodule.h"
#include "common/utils/LOG/log.h"
#include "common/utils/var_array.h"
+1
View File
@@ -30,6 +30,7 @@
#include <sys/ioctl.h>
#include <sys/mman.h>
#include "common/cmake_defs.h"
#include "SIMULATION/TOOLS/defs.h"
#include "SIMULATION/RF/defs.h"
#include "PHY/types.h"
+1
View File
@@ -33,6 +33,7 @@
#include <string.h>
#include <math.h>
#include <unistd.h>
#include "common/cmake_defs.h"
#include "common/utils/var_array.h"
#include "PHY/types.h"
#include "PHY/defs_common.h"
+1 -2
View File
@@ -1012,7 +1012,7 @@ int main(int argc, char **argv)
}
//---------------
Sched_INFO = malloc(sizeof(*Sched_INFO));
Sched_INFO = memalign(32, sizeof(*Sched_INFO));
if (Sched_INFO == NULL) {
LOG_E(PHY, "out of memory\n");
exit(1);
@@ -1054,7 +1054,6 @@ int main(int argc, char **argv)
NR_gNB_DLSCH_t *gNB_dlsch = &gNB->dlsch[0];
memset(Sched_INFO, 0, sizeof(*Sched_INFO));
Sched_INFO->sched_response_id = -1;
nfapi_nr_dl_tti_request_body_t *dl_req = &Sched_INFO->DL_req.dl_tti_request_body;
// scheduler will place PDSCH second (after PDCCH), verification below
nfapi_nr_dl_tti_request_pdu_t *dl_tti_pdsch_pdu = &dl_req->dl_tti_pdu_list[1];
-1
View File
@@ -915,7 +915,6 @@ int main(int argc, char *argv[])
NR_Sched_Rsp_t *Sched_INFO = malloc16_clear(sizeof(*Sched_INFO));
memset((void*)Sched_INFO,0,sizeof(*Sched_INFO));
nfapi_nr_ul_tti_request_t *UL_tti_req = &Sched_INFO->UL_tti_req;
Sched_INFO->sched_response_id = -1;
nr_phy_data_tx_t phy_data = {0};
+1
View File
@@ -24,6 +24,7 @@
#include <stdint.h>
#include <stdio.h>
#include "common/cmake_defs.h"
#include "SIMULATION/TOOLS/sim.h"
#include "SIMULATION/RF/rf.h"
#include "PHY/phy_extern_ue.h"