+
+
+ if(pRbMap && pRbMap->nPrbElm > 0)
+ {
+ prbMapElm = &pRbMap->prbMap[0];
+ if (symb_id < prbMapElm->nStartSymb || symb_id >= (prbMapElm->nStartSymb + prbMapElm->numSymb))
+ {
+ print_err("%dnot srs symbole, srs sym start is %d,num is %d\n", symb_id,prbMapElm->nStartSymb,prbMapElm->numSymb);
+ *mb_free = MBUF_FREE;
+ return size;
+ }
+ sec_desc_idx = prbMapElm->nSecDesc[0];
+ p_sec_desc = &(prbMapElm->sec_desc[0][0]);
+ if(sec_desc_idx >= XRAN_NUM_OF_SYMBOL_PER_SLOT*XRAN_MAX_FRAGMENT)
+ {
+ print_err("sec_desc_idx %d is more then %d\n", sec_desc_idx,XRAN_NUM_OF_SYMBOL_PER_SLOT*XRAN_MAX_FRAGMENT);
+ *mb_free = MBUF_FREE;
+ return size;
+ }
+
+ pos += start_prbu * XRAN_PAYLOAD_1_RB_SZ(iq_sample_size_bits);
+ if(pos && iq_data_start && size)
+ {
+ if (p_xran_dev_ctx->fh_cfg.ru_conf.byteOrder == XRAN_CPU_LE_BYTE_ORDER)
+ {
+ rte_panic("XRAN_CPU_LE_BYTE_ORDER is not supported 0x16%lx\n", (long)mb);
+ }
+ else if (likely(p_xran_dev_ctx->fh_cfg.ru_conf.byteOrder == XRAN_NE_BE_BYTE_ORDER))
+ {
+ p_sec_desc += sec_desc_idx;
+ if(p_sec_desc)
+ {
+ mb = p_sec_desc->pCtrl;
+ if(mb)
+ {
+ rte_pktmbuf_free(mb);
+ }
+ p_sec_desc->pData = iq_data_start;
+ p_sec_desc->pCtrl = mbuf;
+ p_sec_desc->start_prbu = start_prbu;
+ p_sec_desc->num_prbu = num_prbu;
+ p_sec_desc->iq_buffer_len = size;
+ p_sec_desc->iq_buffer_offset = RTE_PTR_DIFF(iq_data_start, mbuf);
+ prbMapElm->nSecDesc[0] += 1;
+ }
+ else
+ {
+ print_err("p_sec_desc==NULL tti %u ant %d symb_id %d sec_desc_idx %d\n", tti, Ant_ID, symb_id, sec_desc_idx);
+ *mb_free = MBUF_FREE;
+ return size;
+ }
+ *mb_free = MBUF_KEEP;
+ } /* else if (likely(p_xran_dev_ctx->fh_cfg.ru_conf.byteOrder == XRAN_NE_BE_BYTE_ORDER)) */
+ } /* if(pos && iq_data_start && size) */
+ else
+ {
+ print_err("pos %p iq_data_start %p size %d\n",pos, iq_data_start, size);
+ }
+
+ }
+ else
+ {
+ print_err("pRbMap==NULL\n");
+ *mb_free = MBUF_FREE;
+ return size;
+ }
+
+ }
+ else
+ {
+ pos = (char*) p_xran_dev_ctx->sFHSrsRxBbuIoBufCtrl[tti % XRAN_N_FE_BUF_LEN][CC_ID][Ant_ID].sBufferList.pBuffers[symb_id].pData;
+ pRbMap = (struct xran_prb_map *) p_xran_dev_ctx->sFHSrsRxPrbMapBbuIoBufCtrl[tti % XRAN_N_FE_BUF_LEN][CC_ID][Ant_ID].sBufferList.pBuffers->pData;
+ if(pRbMap)
+ {