+
+ if(psBbuIo->bbu_offload == 0) {
+ for(cc_id = 0; cc_id <nSectorNum; cc_id++) {
+ for(tti = 0; tti < XRAN_N_FE_BUF_LEN; tti++) {
+ for(ant_id = 0; ant_id < xran_max_antenna_nr; ant_id++) {
+ if(p_o_xu_cfg->appMode == APP_O_RU)
+ flowId = p_o_xu_cfg->numAxc * cc_id + ant_id;
+ else
+ flowId = p_o_xu_cfg->numUlAxc * cc_id + ant_id;
+
+ for(sym_id = 0; sym_id < XRAN_NUM_OF_SYMBOL_PER_SLOT; sym_id++) {
+ if ((status = app_io_xran_iq_content_get_up_rx(p_o_xu_cfg->appMode, pXranConf,
+ psBbuIo, psIoCtrl, p_iq,
+ cc_id, ant_id, sym_id, tti, flowId)) != 0) {
+ rte_panic("app_io_xran_iq_content_get_up_rx");
+ }
+ }
+ if(p_o_xu_cfg->appMode == APP_O_DU && p_o_xu_cfg->enablePrach && (ant_id < xran_max_antenna_nr_prach)) {
+ flowId = xran_max_antenna_nr_prach * cc_id + ant_id;
+ for(sym_id = 0; sym_id < XRAN_NUM_OF_SYMBOL_PER_SLOT; sym_id++) {
+ if ((status = app_io_xran_iq_content_get_up_prach(p_o_xu_cfg->appMode, pXranConf,
+ psBbuIo, psIoCtrl, p_iq,
+ cc_id, ant_id, sym_id, tti, flowId)) != 0) {
+ rte_panic("app_io_xran_iq_content_get_up_prach");
+ }
+ }
+ }
+ } /* for(ant_id = 0; ant_id < xran_max_antenna_nr; ant_id++) */
+
+ /* SRS RX for O-DU only */
+ if(p_o_xu_cfg->appMode == APP_O_DU && p_o_xu_cfg->enableSrs) {
+ for(ant_id = 0; ant_id < xran_max_ant_array_elm_nr; ant_id++) {
+ flowId = p_o_xu_cfg->antElmTRx*cc_id + ant_id;
+ for(sym_id = 0; sym_id < XRAN_MAX_NUM_OF_SRS_SYMBOL_PER_SLOT; sym_id++) {
+ if ((status = app_io_xran_iq_content_get_up_srs(p_o_xu_cfg->appMode, pXranConf,
+ psBbuIo, psIoCtrl, p_iq,
+ cc_id, ant_id, sym_id, tti, flowId)) != 0) {
+ rte_panic("app_io_xran_iq_content_get_up_srs");
+ }
+ }
+ }
+ }
+
+ /* CP - DL for O-RU only */
+ if(p_o_xu_cfg->appMode == APP_O_RU && p_o_xu_cfg->xranCat == 1 && p_o_xu_cfg->extType == 1) {
+ for(ant_id = 0; ant_id < xran_max_antenna_nr; ant_id++) {
+ uint16_t idxElm = 0;
+ int i = 0, len;
+ uint8_t *src_buf;
+ char *src = NULL;
+ struct xran_prb_map *pRbMap = NULL;
+ struct xran_prb_elm *pRbElm = NULL;
+ int8_t *iq_data = NULL;
+ uint16_t N = pXranConf->nAntElmTRx;
+ uint8_t parm_size;
+ int32_t tti_dst = tti % p_iq->numSlots ;
+ int32_t tx_dl_bfw_buffer_position = tti_dst * (pXranConf->nDLRBs*pXranConf->nAntElmTRx)*4;
+ uint16_t iq_size;
+ struct xran_cp_radioapp_section_ext1 * ext1;
+ uint8_t bfwIqWidth;
+ uint8_t total_ext1_len = 0;
+ pRbMap = (struct xran_prb_map *) psIoCtrl->sFHCpRxPrbMapBbuIoBufCtrl[tti][cc_id][ant_id].sBufferList.pBuffers->pData;
+ if(pRbMap == NULL) {
+ printf("pRbMap == NULL\n");
+ exit(-1);
+ }
+ flowId = p_o_xu_cfg->numAxc * cc_id + ant_id;
+ pos = (char*)p_iq->p_tx_dl_bfw_log_buffer[flowId] + tx_dl_bfw_buffer_position;