Commit 7466a3ca authored by thamizhselvan.k's avatar thamizhselvan.k Committed by Manish

Address offset updated for 100MHz bandwidth in both tx/rx memcpy between xran and oai buffers

Byte order in tx/rx emcpy between xran and oai buffers updated
parent 60a025b5
...@@ -538,6 +538,7 @@ int xran_fh_rx_read_slot(void *xranlib_, ru_info_t *ru, int frame, int slot){ ...@@ -538,6 +538,7 @@ int xran_fh_rx_read_slot(void *xranlib_, ru_info_t *ru, int frame, int slot){
//int32_t flowId; //int32_t flowId;
void *ptr = NULL; void *ptr = NULL;
int32_t *pos = NULL; int32_t *pos = NULL;
int idx = 0;
p_xran_dev_ctx_2 = xran_dev_get_ctx(); p_xran_dev_ctx_2 = xran_dev_get_ctx();
#if 0 #if 0
...@@ -576,7 +577,7 @@ int xran_fh_rx_read_slot(void *xranlib_, ru_info_t *ru, int frame, int slot){ ...@@ -576,7 +577,7 @@ int xran_fh_rx_read_slot(void *xranlib_, ru_info_t *ru, int frame, int slot){
uint8_t *pPrbMapData = p_xran_dev_ctx_2->sFrontHaulRxPrbMapBbuIoBufCtrl[tti % XRAN_N_FE_BUF_LEN][cc_id][ant_id].sBufferList.pBuffers->pData; uint8_t *pPrbMapData = p_xran_dev_ctx_2->sFrontHaulRxPrbMapBbuIoBufCtrl[tti % XRAN_N_FE_BUF_LEN][cc_id][ant_id].sBufferList.pBuffers->pData;
struct xran_prb_map *pPrbMap = (struct xran_prb_map *)pPrbMapData; struct xran_prb_map *pPrbMap = (struct xran_prb_map *)pPrbMapData;
ptr = pData; ptr = pData;
pos = &ru->rxdataF[ant_id][sym_idx * 2048 /*fp->ofdm_symbol_size*/]; // We had to use a different ru structure than benetel so the access to the buffer is not the same. pos = &ru->rxdataF[ant_id][sym_idx * 4096 /*fp->ofdm_symbol_size*/]; // We had to use a different ru structure than benetel so the access to the buffer is not the same.
uint8_t *u8dptr; uint8_t *u8dptr;
struct xran_prb_map *pRbMap = pPrbMap; struct xran_prb_map *pRbMap = pPrbMap;
...@@ -621,13 +622,16 @@ int xran_fh_rx_read_slot(void *xranlib_, ru_info_t *ru, int frame, int slot){ ...@@ -621,13 +622,16 @@ int xran_fh_rx_read_slot(void *xranlib_, ru_info_t *ru, int frame, int slot){
// first half // first half
dst1 = (uint8_t *)(pos + p_prbMapElm->nRBStart*N_SC_PER_PRB); dst1 = (uint8_t *)(pos + p_prbMapElm->nRBStart*N_SC_PER_PRB);
// second half // second half
dst2 = (uint8_t *)(pos + (p_prbMapElm->nRBStart*N_SC_PER_PRB + 1272/2) + 2048 - 1272); dst2 = (uint8_t *)(pos + (p_prbMapElm->nRBStart*N_SC_PER_PRB + 3276/2) + 4096 - 3276);
//printf("RRR: idxElm=%d\tcompMethod=%d\tiqWidth=%d\n",idxElm,p_prbMapElm->compMethod,p_prbMapElm->iqWidth); //printf("RRR: idxElm=%d\tcompMethod=%d\tiqWidth=%d\n",idxElm,p_prbMapElm->compMethod,p_prbMapElm->iqWidth);
if(p_prbMapElm->compMethod == XRAN_COMPMETHOD_NONE) { if(p_prbMapElm->compMethod == XRAN_COMPMETHOD_NONE) {
payload_len = p_prbMapElm->nRBSize*N_SC_PER_PRB*4L; payload_len = p_prbMapElm->nRBSize*N_SC_PER_PRB*4L;
src1 = src2 + payload_len/2; src1 = src2 + payload_len/2;
rte_memcpy(dst1, src1, payload_len/2); /*Convert Network Order to Host order*/
rte_memcpy(dst2, src2, payload_len/2); for (idx = 0; idx < payload_len/(2*sizeof(int16_t)); idx++) {
((uint16_t *)dst1)[idx] = ntohs(((uint16_t *)src1)[idx]);
((uint16_t *)dst2)[idx] = ntohs(((uint16_t *)src2)[idx]);
}
} else if (p_prbMapElm->compMethod == XRAN_COMPMETHOD_BLKFLOAT) { } else if (p_prbMapElm->compMethod == XRAN_COMPMETHOD_BLKFLOAT) {
struct xranlib_decompress_request bfp_decom_req_2; struct xranlib_decompress_request bfp_decom_req_2;
struct xranlib_decompress_response bfp_decom_rsp_2; struct xranlib_decompress_response bfp_decom_rsp_2;
...@@ -701,6 +705,7 @@ int xran_fh_tx_send_slot(void *xranlib_, ru_info_t *ru, int frame, int slot, uin ...@@ -701,6 +705,7 @@ int xran_fh_tx_send_slot(void *xranlib_, ru_info_t *ru, int frame, int slot, uin
//int32_t flowId; //int32_t flowId;
void *ptr = NULL; void *ptr = NULL;
int32_t *pos = NULL; int32_t *pos = NULL;
int idx = 0;
p_xran_dev_ctx_2 = xran_dev_get_ctx(); p_xran_dev_ctx_2 = xran_dev_get_ctx();
#if 0 #if 0
...@@ -738,7 +743,7 @@ int xran_fh_tx_send_slot(void *xranlib_, ru_info_t *ru, int frame, int slot, uin ...@@ -738,7 +743,7 @@ int xran_fh_tx_send_slot(void *xranlib_, ru_info_t *ru, int frame, int slot, uin
uint8_t *pPrbMapData = p_xran_dev_ctx_2->sFrontHaulTxPrbMapBbuIoBufCtrl[tti % XRAN_N_FE_BUF_LEN][cc_id][ant_id].sBufferList.pBuffers->pData; uint8_t *pPrbMapData = p_xran_dev_ctx_2->sFrontHaulTxPrbMapBbuIoBufCtrl[tti % XRAN_N_FE_BUF_LEN][cc_id][ant_id].sBufferList.pBuffers->pData;
struct xran_prb_map *pPrbMap = (struct xran_prb_map *)pPrbMapData; struct xran_prb_map *pPrbMap = (struct xran_prb_map *)pPrbMapData;
ptr = pData; ptr = pData;
pos = &ru->txdataF_BF[ant_id][sym_idx * 2048 /*fp->ofdm_symbol_size*/]; // We had to use a different ru structure than benetel so the access to the buffer is not the same. pos = &ru->txdataF_BF[ant_id][sym_idx * 4096 /*fp->ofdm_symbol_size*/]; // We had to use a different ru structure than benetel so the access to the buffer is not the same.
uint8_t *u8dptr; uint8_t *u8dptr;
struct xran_prb_map *pRbMap = pPrbMap; struct xran_prb_map *pRbMap = pPrbMap;
...@@ -778,10 +783,14 @@ int xran_fh_tx_send_slot(void *xranlib_, ru_info_t *ru, int frame, int slot, uin ...@@ -778,10 +783,14 @@ int xran_fh_tx_send_slot(void *xranlib_, ru_info_t *ru, int frame, int slot, uin
// first half // first half
src1 = (uint8_t *)(pos + p_prbMapElm->nRBStart*N_SC_PER_PRB); src1 = (uint8_t *)(pos + p_prbMapElm->nRBStart*N_SC_PER_PRB);
// second half // second half
src2 = (uint8_t *)(pos + (p_prbMapElm->nRBStart*N_SC_PER_PRB + 1272/2) + 2048 - 1272); src2 = (uint8_t *)(pos + (p_prbMapElm->nRBStart*N_SC_PER_PRB + 3276/2) + 4096 - 3276);
if(p_prbMapElm->compMethod == XRAN_COMPMETHOD_NONE) { if(p_prbMapElm->compMethod == XRAN_COMPMETHOD_NONE) {
rte_memcpy(dst1, src1, payload_len/2); /* convert to Network order */
rte_memcpy(dst2, src2, payload_len/2); for (idx = 0; idx < payload_len/(2*sizeof(uint16_t)); idx++)
{
((uint16_t *)dst1)[idx] = htons(((uint16_t *)src1)[idx]);
((uint16_t *)dst2)[idx] = htons(((uint16_t *)src2)[idx]);
}
} else if (p_prbMapElm->compMethod == XRAN_COMPMETHOD_BLKFLOAT) { } else if (p_prbMapElm->compMethod == XRAN_COMPMETHOD_BLKFLOAT) {
printf("idxElm=%d, compMeth==BLKFLOAT\n",idxElm); printf("idxElm=%d, compMeth==BLKFLOAT\n",idxElm);
struct xranlib_compress_request bfp_com_req; struct xranlib_compress_request bfp_com_req;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment