remove a forgotten test trace, re-indentation of modified source files
This commit is contained in:
+20
-17
@@ -86,7 +86,6 @@ static inline void measTransportTime(uint64_t DuSend, uint64_t CuMicroSec, Meas
|
|||||||
if (DuSend!=0) {
|
if (DuSend!=0) {
|
||||||
uint64_t end=rdtsc();
|
uint64_t end=rdtsc();
|
||||||
long long diff=(end-DuSend)/(cpuf*1000)-CuMicroSec;
|
long long diff=(end-DuSend)/(cpuf*1000)-CuMicroSec;
|
||||||
LOG_E(HW, "total: %f, cu time %lu\n", (end-DuSend)/(cpuf*1000), CuMicroSec);
|
|
||||||
M->maxArray[0]=diff;
|
M->maxArray[0]=diff;
|
||||||
M->sum+=diff;
|
M->sum+=diff;
|
||||||
M->iterations++;
|
M->iterations++;
|
||||||
@@ -1344,24 +1343,26 @@ void *DL_du_fs6(void *arg) {
|
|||||||
lastTS+ru->eNB_list[i]->frame_parms.samples_per_tti,
|
lastTS+ru->eNB_list[i]->frame_parms.samples_per_tti,
|
||||||
hUDP(bufferZone)->timestamp);
|
hUDP(bufferZone)->timestamp);
|
||||||
}
|
}
|
||||||
pickStaticTime(begingProcessing);
|
|
||||||
|
pickStaticTime(begingProcessing);
|
||||||
lastTS=hUDP(bufferZone)->timestamp;
|
lastTS=hUDP(bufferZone)->timestamp;
|
||||||
setAllfromTS(hUDP(bufferZone)->timestamp - sf_ahead*ru->eNB_list[i]->frame_parms.samples_per_tti, &L1_proc);
|
setAllfromTS(hUDP(bufferZone)->timestamp - sf_ahead*ru->eNB_list[i]->frame_parms.samples_per_tti, &L1_proc);
|
||||||
measTransportTime(hDL(bufferZone)->DuClock, hDL(bufferZone)->CuSpentMicroSec,
|
measTransportTime(hDL(bufferZone)->DuClock, hDL(bufferZone)->CuSpentMicroSec,
|
||||||
&transportTime, 1000, false, "Transport time, to CU + from CU for one subframe");
|
&transportTime, 1000, false, "Transport time, to CU + from CU for one subframe");
|
||||||
phy_procedures_eNB_TX_fromsplit( bufferZone, nb_blocks, ru->eNB_list[i], &L1_proc, 1);
|
phy_procedures_eNB_TX_fromsplit( bufferZone, nb_blocks, ru->eNB_list[i], &L1_proc, 1);
|
||||||
updateTimesReset(begingProcessing, &DuHigh, 1000, false, "DU high layer1 processing for DL");
|
updateTimesReset(begingProcessing, &DuHigh, 1000, false, "DU high layer1 processing for DL");
|
||||||
} else
|
} else
|
||||||
LOG_E(PHY,"DL not received for subframe\n");
|
LOG_E(PHY,"DL not received for subframe\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
pickStaticTime(begingProcessing);
|
pickStaticTime(begingProcessing);
|
||||||
feptx_prec(ru, &L1_proc);
|
feptx_prec(ru, &L1_proc);
|
||||||
feptx_ofdm(ru, &L1_proc);
|
feptx_ofdm(ru, &L1_proc);
|
||||||
tx_rf(ru, &L1_proc);
|
tx_rf(ru, &L1_proc);
|
||||||
updateTimesReset(begingProcessing, &DuLow, 1000, false, "DU low layer1 processing for DL");
|
updateTimesReset(begingProcessing, &DuLow, 1000, false, "DU low layer1 processing for DL");
|
||||||
|
|
||||||
if ( IS_SOFTMODEM_RFSIM )
|
if ( IS_SOFTMODEM_RFSIM )
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
return NULL;
|
return NULL;
|
||||||
@@ -1425,21 +1426,21 @@ void DL_cu_fs6(RU_t *ru, L1_rxtx_proc_t *proc, uint64_t DuClock, uint64_t start
|
|||||||
hUDP(bufferZone)->blockID=0;
|
hUDP(bufferZone)->blockID=0;
|
||||||
hUDP(bufferZone)->contentBytes=sizeof(fs6_dl_t);
|
hUDP(bufferZone)->contentBytes=sizeof(fs6_dl_t);
|
||||||
}
|
}
|
||||||
|
|
||||||
hDL(bufferZone)->DuClock=DuClock;
|
hDL(bufferZone)->DuClock=DuClock;
|
||||||
hDL(bufferZone)->CuSpentMicroSec=(rdtsc()-startCycle)/(cpuf*1000);
|
hDL(bufferZone)->CuSpentMicroSec=(rdtsc()-startCycle)/(cpuf*1000);
|
||||||
|
|
||||||
sendSubFrame(&sockFS6, bufferZone, sizeof(fs6_dl_t), CTsentCUv0 );
|
sendSubFrame(&sockFS6, bufferZone, sizeof(fs6_dl_t), CTsentCUv0 );
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
void UL_cu_fs6(RU_t *ru, L1_rxtx_proc_t *proc, uint64_t *TS, uint64_t * DuClock, uint64_t * startProcessing) {
|
void UL_cu_fs6(RU_t *ru, L1_rxtx_proc_t *proc, uint64_t *TS, uint64_t *DuClock, uint64_t *startProcessing) {
|
||||||
initBufferZone(bufferZone);
|
initBufferZone(bufferZone);
|
||||||
initStaticTime(begingWait);
|
initStaticTime(begingWait);
|
||||||
initRefTimes(fullLoop);
|
initRefTimes(fullLoop);
|
||||||
pickStaticTime(begingWait);
|
pickStaticTime(begingWait);
|
||||||
int nb_blocks=receiveSubFrame(&sockFS6, bufferZone, sizeof(bufferZone), CTsentDUv0 );
|
int nb_blocks=receiveSubFrame(&sockFS6, bufferZone, sizeof(bufferZone), CTsentDUv0 );
|
||||||
* DuClock=hUDP(bufferZone)->senderClock;
|
* DuClock=hUDP(bufferZone)->senderClock;
|
||||||
* startProcessing=rdtsc();
|
* startProcessing=rdtsc();
|
||||||
updateTimesReset(begingWait, &fullLoop, 1000, false, "CU wait DU");
|
updateTimesReset(begingWait, &fullLoop, 1000, false, "CU wait DU");
|
||||||
|
|
||||||
if (nb_blocks ==0) {
|
if (nb_blocks ==0) {
|
||||||
@@ -1485,8 +1486,8 @@ void *cu_fs6(void *arg) {
|
|||||||
remoteIP=DU_IP;
|
remoteIP=DU_IP;
|
||||||
|
|
||||||
AssertFatal(createUDPsock(NULL, CU_PORT, remoteIP, DU_PORT, &sockFS6), "");
|
AssertFatal(createUDPsock(NULL, CU_PORT, remoteIP, DU_PORT, &sockFS6), "");
|
||||||
|
|
||||||
L1_rxtx_proc_t L1proc= {0};
|
L1_rxtx_proc_t L1proc= {0};
|
||||||
|
|
||||||
if ( strlen(get_softmodem_params()->threadPoolConfig) > 0 )
|
if ( strlen(get_softmodem_params()->threadPoolConfig) > 0 )
|
||||||
initTpool(get_softmodem_params()->threadPoolConfig, &L1proc.threadPool, true);
|
initTpool(get_softmodem_params()->threadPoolConfig, &L1proc.threadPool, true);
|
||||||
else
|
else
|
||||||
@@ -1494,7 +1495,6 @@ void *cu_fs6(void *arg) {
|
|||||||
|
|
||||||
initNotifiedFIFO(&L1proc.respEncode);
|
initNotifiedFIFO(&L1proc.respEncode);
|
||||||
initNotifiedFIFO(&L1proc.respDecode);
|
initNotifiedFIFO(&L1proc.respDecode);
|
||||||
|
|
||||||
uint64_t timeStamp=0;
|
uint64_t timeStamp=0;
|
||||||
initStaticTime(begingWait);
|
initStaticTime(begingWait);
|
||||||
initStaticTime(begingWait2);
|
initStaticTime(begingWait2);
|
||||||
@@ -1548,16 +1548,19 @@ void *du_fs6(void *arg) {
|
|||||||
initRefTimes(waitRxAndProcessingUL);
|
initRefTimes(waitRxAndProcessingUL);
|
||||||
initRefTimes(fullLoop);
|
initRefTimes(fullLoop);
|
||||||
pthread_t t;
|
pthread_t t;
|
||||||
if ( !IS_SOFTMODEM_RFSIM )
|
|
||||||
threadCreate(&t, DL_du_fs6, (void *)ru, "MainDuTx", -1, OAI_PRIORITY_RT_MAX);
|
if ( !IS_SOFTMODEM_RFSIM )
|
||||||
|
threadCreate(&t, DL_du_fs6, (void *)ru, "MainDuTx", -1, OAI_PRIORITY_RT_MAX);
|
||||||
|
|
||||||
while(1) {
|
while(1) {
|
||||||
L1_rxtx_proc_t L1proc;
|
L1_rxtx_proc_t L1proc;
|
||||||
updateTimesReset(begingWait, &fullLoop, 1000, true,"DU for full SubFrame (must be less 1ms)");
|
updateTimesReset(begingWait, &fullLoop, 1000, true,"DU for full SubFrame (must be less 1ms)");
|
||||||
pickStaticTime(begingWait);
|
pickStaticTime(begingWait);
|
||||||
UL_du_fs6(ru, &L1proc);
|
UL_du_fs6(ru, &L1proc);
|
||||||
if ( IS_SOFTMODEM_RFSIM )
|
|
||||||
DL_du_fs6((void *)ru);
|
if ( IS_SOFTMODEM_RFSIM )
|
||||||
|
DL_du_fs6((void *)ru);
|
||||||
|
|
||||||
updateTimesReset(begingWait, &waitRxAndProcessingUL, 1000, true,"DU Time in wait Rx + Ul processing");
|
updateTimesReset(begingWait, &waitRxAndProcessingUL, 1000, true,"DU Time in wait Rx + Ul processing");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -688,7 +688,7 @@ static void *ru_thread( void *param ) {
|
|||||||
setbuf(stdout, NULL);
|
setbuf(stdout, NULL);
|
||||||
setbuf(stderr, NULL);
|
setbuf(stderr, NULL);
|
||||||
RU_t *ru = (RU_t *)param;
|
RU_t *ru = (RU_t *)param;
|
||||||
L1_rxtx_proc_t L1proc={0};
|
L1_rxtx_proc_t L1proc= {0};
|
||||||
L1_rxtx_proc_t *proc=&L1proc;
|
L1_rxtx_proc_t *proc=&L1proc;
|
||||||
|
|
||||||
if ( strlen(get_softmodem_params()->threadPoolConfig) > 0 )
|
if ( strlen(get_softmodem_params()->threadPoolConfig) > 0 )
|
||||||
|
|||||||
@@ -58,8 +58,10 @@ bool createUDPsock (char *sourceIP, char *sourcePort, char *destIP, char *destPo
|
|||||||
int enable=1;
|
int enable=1;
|
||||||
AssertFatal(setsockopt(result->sockHandler, SOL_SOCKET, SO_REUSEADDR, &enable, sizeof(enable))==0,"");
|
AssertFatal(setsockopt(result->sockHandler, SOL_SOCKET, SO_REUSEADDR, &enable, sizeof(enable))==0,"");
|
||||||
struct timeval tv= {0,UDP_TIMEOUT};
|
struct timeval tv= {0,UDP_TIMEOUT};
|
||||||
|
|
||||||
if (IS_SOFTMODEM_RFSIM)
|
if (IS_SOFTMODEM_RFSIM)
|
||||||
tv.tv_sec=2; //debug: wait 2 seconds for human understanding
|
tv.tv_sec=2; //debug: wait 2 seconds for human understanding
|
||||||
|
|
||||||
AssertFatal(setsockopt(result->sockHandler, SOL_SOCKET, SO_RCVTIMEO,&tv,sizeof(tv)) ==0,"");
|
AssertFatal(setsockopt(result->sockHandler, SOL_SOCKET, SO_RCVTIMEO,&tv,sizeof(tv)) ==0,"");
|
||||||
// Make a send/recv buffer larger than a a couple of subframe
|
// Make a send/recv buffer larger than a a couple of subframe
|
||||||
// so the kernel will store for us in and out paquets
|
// so the kernel will store for us in and out paquets
|
||||||
@@ -118,9 +120,9 @@ int receiveSubFrame(UDPsock_t *sock, void *bufferZone, int bufferSize, uint16_t
|
|||||||
rcved++;
|
rcved++;
|
||||||
bufferZone+=ret;
|
bufferZone+=ret;
|
||||||
}
|
}
|
||||||
LOG_D(HW,"Received: blocks: %d/%d, size %d, TS: %lu\n",
|
|
||||||
rcved, bufOrigin->nbBlocks, ret, bufOrigin->timestamp);
|
|
||||||
|
|
||||||
|
LOG_D(HW,"Received: blocks: %d/%d, size %d, TS: %lu\n",
|
||||||
|
rcved, bufOrigin->nbBlocks, ret, bufOrigin->timestamp);
|
||||||
} while ( rcved == 0 || rcved < bufOrigin->nbBlocks );
|
} while ( rcved == 0 || rcved < bufOrigin->nbBlocks );
|
||||||
|
|
||||||
return rcved;
|
return rcved;
|
||||||
@@ -159,11 +161,10 @@ int sendSubFrame(UDPsock_t *sock, void *bufferZone, ssize_t secondHeaderSize, ui
|
|||||||
sz, ret, errno, strerror(errno));
|
sz, ret, errno, strerror(errno));
|
||||||
|
|
||||||
LOG_D(HW,"Sent: TS: %lu, blocks %d/%d, block size : %d \n",
|
LOG_D(HW,"Sent: TS: %lu, blocks %d/%d, block size : %d \n",
|
||||||
UDPheader->timestamp, UDPheader->nbBlocks-nbBlocks, UDPheader->nbBlocks, sz);
|
UDPheader->timestamp, UDPheader->nbBlocks-nbBlocks, UDPheader->nbBlocks, sz);
|
||||||
|
|
||||||
bufferZone+=sz;
|
bufferZone+=sz;
|
||||||
nbBlocks--;
|
nbBlocks--;
|
||||||
} while (nbBlocks);
|
} while (nbBlocks);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user