Merge remote-tracking branch 'origin/revert_fapi_trp_scheme_byte' into integration_2025_w37 (!3631)
Revert "Removed TRP-scheme byte from UL BF PDU to Interop with Aerial 25-1 (FAPI 10.02)" This commit broke compatibility with Aerial when compiled with -DSCF_FAPI_10_04_SRS=ON. It was decided that this should become the default. Modify documentation, and use a dedicated image name to make it clear in the CI that it has SRS.
This commit is contained in:
@@ -23,7 +23,7 @@ services:
|
||||
- ../../../cmake_targets/share:/opt/cuBB/share
|
||||
userns_mode: host
|
||||
ipc: "shareable"
|
||||
image: cubb-build:25-2
|
||||
image: cubb-build:25-2-srs
|
||||
environment:
|
||||
- cuBB_SDK=/opt/nvidia/cuBB
|
||||
command: bash -c "sudo rm -rf /tmp/phy.log && sudo chmod +x /opt/nvidia/cuBB/aerial_l1_entrypoint.sh && /opt/nvidia/cuBB/aerial_l1_entrypoint.sh"
|
||||
|
||||
@@ -66,6 +66,8 @@ The UEs that have been tested and confirmed working with Aerial are the followin
|
||||
To set up the L1 and install the components manually refer to this [instructions page](https://docs.nvidia.com/aerial/cuda-accelerated-ran/index.html).
|
||||
|
||||
**Note**:
|
||||
- As of wk36, the L1 must be compiled with the following CMake flag: `-DSCF_FAPI_10_04_SRS=ON` , this is due to the usage
|
||||
of the FAPI 10.04 version of the SRS PDU, and RX_Beamforming PDU.
|
||||
- To configure the Gigabyte server please refer to these [instructions](https://gitlab.eurecom.fr/oai/openairinterface5g/-/blob/2025.w13/doc/Aerial_FAPI_Split_Tutorial.md)
|
||||
- The last release to support the Gigabyte server is **Aerial CUDA-Accelerated RAN 24-1**.
|
||||
|
||||
|
||||
@@ -708,7 +708,7 @@ static uint8_t pack_nr_rx_beamforming_pdu(const nfapi_nr_ul_beamforming_t *beamf
|
||||
uint8_t **ppWritePackedMsg,
|
||||
uint8_t *end)
|
||||
{ // Pack RX Beamforming PDU
|
||||
if (!(push16(beamforming_pdu->num_prgs, ppWritePackedMsg, end)
|
||||
if (!(push8(beamforming_pdu->trp_scheme, ppWritePackedMsg, end) && push16(beamforming_pdu->num_prgs, ppWritePackedMsg, end)
|
||||
&& push16(beamforming_pdu->prg_size, ppWritePackedMsg, end)
|
||||
&& push8(beamforming_pdu->dig_bf_interface, ppWritePackedMsg, end))) {
|
||||
return 0;
|
||||
@@ -1033,7 +1033,7 @@ uint8_t pack_ul_tti_request(void *msg, uint8_t **ppWritePackedMsg, uint8_t *end,
|
||||
|
||||
static uint8_t unpack_nr_rx_beamforming_pdu(nfapi_nr_ul_beamforming_t *beamforming_pdu, uint8_t **ppReadPackedMsg, uint8_t *end)
|
||||
{ // Unpack RX Beamforming PDU
|
||||
if (!(pull16(ppReadPackedMsg, &beamforming_pdu->num_prgs, end)
|
||||
if (!(pull8(ppReadPackedMsg, &beamforming_pdu->trp_scheme, end) && pull16(ppReadPackedMsg, &beamforming_pdu->num_prgs, end)
|
||||
&& pull16(ppReadPackedMsg, &beamforming_pdu->prg_size, end)
|
||||
&& pull8(ppReadPackedMsg, &beamforming_pdu->dig_bf_interface, end))) {
|
||||
return 0;
|
||||
|
||||
@@ -214,7 +214,7 @@ bool eq_dl_tti_request(const nfapi_nr_dl_tti_request_t *a, const nfapi_nr_dl_tti
|
||||
|
||||
static bool eq_ul_tti_beamforming(const nfapi_nr_ul_beamforming_t *a, const nfapi_nr_ul_beamforming_t *b)
|
||||
{
|
||||
// EQ(a->trp_scheme, b->trp_scheme);
|
||||
EQ(a->trp_scheme, b->trp_scheme);
|
||||
EQ(a->num_prgs, b->num_prgs);
|
||||
EQ(a->prg_size, b->prg_size);
|
||||
EQ(a->dig_bf_interface, b->dig_bf_interface);
|
||||
@@ -1174,7 +1174,7 @@ void copy_dl_tti_request(const nfapi_nr_dl_tti_request_t *src, nfapi_nr_dl_tti_r
|
||||
|
||||
static void copy_ul_tti_beamforming(const nfapi_nr_ul_beamforming_t *src, nfapi_nr_ul_beamforming_t *dst)
|
||||
{
|
||||
// dst->trp_scheme = src->trp_scheme;
|
||||
dst->trp_scheme = src->trp_scheme;
|
||||
dst->num_prgs = src->num_prgs;
|
||||
dst->prg_size = src->prg_size;
|
||||
dst->dig_bf_interface = src->dig_bf_interface;
|
||||
@@ -2201,7 +2201,7 @@ void dump_dl_tti_request(const nfapi_nr_dl_tti_request_t *msg)
|
||||
|
||||
static void dump_ul_tti_beamforming(const nfapi_nr_ul_beamforming_t *pdu, int depth)
|
||||
{
|
||||
// INDENTED_PRINTF("TRP Scheme = %d\n", pdu->trp_scheme);
|
||||
INDENTED_PRINTF("TRP Scheme = %d\n", pdu->trp_scheme);
|
||||
INDENTED_PRINTF("numPRGs = %d\n", pdu->num_prgs);
|
||||
INDENTED_PRINTF("prgSize = %d\n", pdu->prg_size);
|
||||
INDENTED_PRINTF("digBFInterface = %d\n", pdu->dig_bf_interface);
|
||||
|
||||
@@ -1219,7 +1219,7 @@ typedef struct
|
||||
|
||||
typedef struct
|
||||
{
|
||||
// uint8_t trp_scheme; // This field shall be set to 0, to identify that this table is used. Not part of FAPI 10.02, thus removed
|
||||
uint8_t trp_scheme; // This field shall be set to 0, to identify that this table is used.
|
||||
uint16_t num_prgs; // Number of PRGs spanning this allocation. Value : 1->275
|
||||
uint16_t prg_size; // Size in RBs of a precoding resource block group (PRG) – to which the same digital beamforming gets applied. Value: 1->275
|
||||
uint8_t dig_bf_interface; // Number of logical antenna ports (parallel streams) resulting from the Rx combining. Value: 0->255
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
|
||||
static void fill_ul_tti_request_beamforming(nfapi_nr_ul_beamforming_t *beamforming_pdu)
|
||||
{
|
||||
// beamforming_pdu->trp_scheme = rand8(); // not part of 10.02
|
||||
beamforming_pdu->trp_scheme = rand8();
|
||||
beamforming_pdu->num_prgs = rand16_range(1, NFAPI_MAX_NUM_PRGS);
|
||||
beamforming_pdu->prg_size = rand16_range(1, 275);
|
||||
beamforming_pdu->dig_bf_interface = rand8_range(1,NFAPI_MAX_NUM_BG_IF);
|
||||
|
||||
@@ -463,7 +463,7 @@ static void nr_configure_srs(gNB_MAC_INST *nrmac,
|
||||
srs_pdu->srs_parameters_v4.prg_size = 1;
|
||||
srs_pdu->srs_parameters_v4.num_total_ue_antennas = 1 << srs_pdu->num_ant_ports;
|
||||
if (srs_resource_set->usage == NR_SRS_ResourceSet__usage_beamManagement) {
|
||||
// srs_pdu->beamforming.trp_scheme = 0;
|
||||
srs_pdu->beamforming.trp_scheme = 0;
|
||||
srs_pdu->beamforming.num_prgs = m_SRS[srs_pdu->config_index];
|
||||
srs_pdu->beamforming.prg_size = srs_pdu->srs_parameters_v4.srs_bandwidth_size;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user