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
+1
View File
@@ -1,6 +1,7 @@
add_subdirectory(utils)
add_subdirectory(config/yaml)
configure_file(cmake_defs.h.in cmake_defs.h @ONLY)
configure_file(oai_version.h.in oai_version.h @ONLY)
add_library(instrumentation INTERFACE)
+30
View File
@@ -0,0 +1,30 @@
/*
* Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The OpenAirInterface Software Alliance licenses this file to You under
* the OAI Public License, Version 1.1 (the "License"); you may not use this file
* except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.openairinterface.org/?page_id=698
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*-------------------------------------------------------------------------------
* For more information about the OpenAirInterface (OAI) Software Alliance:
* contact@openairinterface.org
*/
#ifndef CMAKE_DEFS_H_
#define CMAKE_DEFS_H_
// Note: this file is automatically generated from common/cmake_defs.h.in
// please don't modify and change defines such as NB_ANTENNAS_RX/TX in cmake
#define NB_ANTENNAS_RX @NB_ANTENNAS_RX@
#define NB_ANTENNAS_TX @NB_ANTENNAS_TX@
#endif /* CMAKE_DEFS_H_ */
+13
View File
@@ -796,6 +796,19 @@ int get_subband_size(int NPRB,int size) {
}
void warn_higher_threequarter_fs(const int n_rb, const int mu)
{
LOG_W(NR_PHY,
"3/4 sampling is not possible for current PRB size: %d and numerology: %d.\n "
"So 6/4 sampling is chosen to support x3xx type USRPs.\n "
"Note that this sampling rate increases fronthaul traffic, FFT buffer size and processing time by a factor of two compared "
"to 3/4 sampling rate.\n "
"Some PRACH configuration might not be supported with 6/4 FFT size.\n "
"Consider reducing the PRB size that would fit within the FFT size of 3/4 sampling\n",
n_rb,
mu);
}
void get_samplerate_and_bw(int mu,
int n_rb,
int8_t threequarter_fs,
+2 -13
View File
@@ -37,7 +37,6 @@
#include <stdlib.h>
#include "assertions.h"
#include "common/utils/utils.h"
#include "common/utils/LOG/log.h"
#define MAX_SI_GROUPS 3
#define NR_MAX_PDSCH_TBS 3824
@@ -88,6 +87,7 @@ static inline const char *rnti_types(nr_rnti_type_t rr)
#define NR_NUMBER_OF_SYMBOLS_PER_SLOT 14
#define NR_NUMBER_OF_SYMBOLS_PER_SLOT_EXTENDED_CP 12
#define NR_MAX_NB_LAYERS 4 // 8
#define NR_MAX_CSI_PORTS 12
// Since the IQ samples are represented by SQ15 R+I (see https://en.wikipedia.org/wiki/Q_(number_format)) we need to compensate when
// calcualting signal energy. Instead of shifting each sample right by 15, we can normalize the result in dB scale once its
@@ -273,18 +273,7 @@ static __attribute__((always_inline)) inline int count_bits64_with_mask(uint64_t
return count_bits64(v & mask);
}
static inline void warn_higher_threequarter_fs(const int n_rb, const int mu)
{
LOG_W(PHY,
"3/4 sampling is not possible for current PRB size: %d and numerology: %d.\n "
"So 6/4 sampling is chosen to support x3xx type USRPs.\n "
"Note that this sampling rate increases fronthaul traffic, FFT buffer size and processing time by a factor of two compared "
"to 3/4 sampling rate.\n "
"Some PRACH configuration might not be supported with 6/4 FFT size.\n "
"Consider reducing the PRB size that would fit within the FFT size of 3/4 sampling\n",
n_rb,
mu);
}
void warn_higher_threequarter_fs(const int n_rb, const int mu);
uint64_t from_nrarfcn(int nr_bandP, uint8_t scs_index, uint32_t dl_nrarfcn);
uint32_t to_nrarfcn(int nr_bandP, uint64_t dl_CarrierFreq, uint8_t scs_index, uint32_t bw);