Merge branch 'develop' of https://gitlab.eurecom.fr/oai/openairinterface5g into tx-proc-optim

This commit is contained in:
Laurent Thomas
2021-12-02 14:17:49 +01:00
25 changed files with 557 additions and 1209 deletions
+6 -3
View File
@@ -109,6 +109,7 @@ int main(int argc, char **argv)
int ret;
//int run_initial_sync=0;
int loglvl = OAILOG_WARNING;
uint8_t dlsch_threads = 0;
float target_error_rate = 0.01;
uint64_t SSB_positions=0x01;
uint16_t nb_symb_sch = 12;
@@ -139,9 +140,9 @@ int main(int argc, char **argv)
break;*/
/*case 'd':
frame_type = 1;
break;*/
case 'd':
dlsch_threads = atoi(optarg);
break;
case 'g':
switch ((char) *optarg) {
@@ -326,6 +327,7 @@ int main(int argc, char **argv)
//printf("-C Generate Calibration information for Abstraction (effective SNR adjustment to remove Pe bias w.r.t. AWGN)\n");
//printf("-f Output filename (.txt format) for Pe/SNR results\n");
printf("-F Input filename (.txt format) for RX conformance testing\n");
printf("-d number of dlsch threads, 0: no dlsch parallelization\n");
exit(-1);
break;
}
@@ -337,6 +339,7 @@ int main(int argc, char **argv)
if (snr1set == 0)
snr1 = snr0 + 10;
init_dlsch_tpool(dlsch_threads);
if (ouput_vcd)
vcd_signal_dumper_init("/tmp/openair_dump_nr_dlschsim.vcd");
+2 -6
View File
@@ -693,7 +693,7 @@ int main(int argc, char **argv)
if (snr1set==0)
snr1 = snr0+10;
init_dlsch_tpool(dlsch_threads);
RC.gNB = (PHY_VARS_gNB**) malloc(sizeof(PHY_VARS_gNB *));
@@ -992,11 +992,7 @@ int main(int argc, char **argv)
reset_meas(&msgDataTx->phy_proc_tx);
gNB->phy_proc_tx_0 = &msgDataTx->phy_proc_tx;
pushTpool(gNB->threadPool,msgL1Tx);
if (dlsch_threads ) {
init_dlsch_tpool(dlsch_threads);
pthread_t dlsch0_threads;
threadCreate(&dlsch0_threads, dlsch_thread, (void *)UE, "DLthread", -1, OAI_PRIORITY_RT_MAX-1);
}
for (SNR = snr0; SNR < snr1; SNR += .2) {
varArray_t *table_tx=initVarArray(1000,sizeof(double));
+10 -5
View File
@@ -662,14 +662,19 @@ int main(int argc, char **argv)
if (uci_pdu.sr->sr_indication == 0 || uci_pdu.sr->sr_confidence_level == 1)
sr_errors+=1;
}
// harq value 0 -> pass
// confidence value 0 -> good confidence
const int harq_value0 = uci_pdu.harq->harq_list[0].harq_value;
const int harq_value1 = uci_pdu.harq->harq_list[1].harq_value;
const int confidence_lvl = uci_pdu.harq->harq_confidence_level;
if(nr_bit>0){
if (nr_bit==1 && do_DTX == 0)
ack_nack_errors+=(actual_payload^uci_pdu.harq->harq_list[0].harq_value);
ack_nack_errors+=(actual_payload^(!harq_value0));
else if (do_DTX == 0)
ack_nack_errors+=(((actual_payload&1)^uci_pdu.harq->harq_list[0].harq_value)+((actual_payload>>1)^uci_pdu.harq->harq_list[1].harq_value));
else if ((uci_pdu.harq->harq_confidence_level == 0 && uci_pdu.harq->harq_list[0].harq_value == 1) ||
(uci_pdu.harq->harq_confidence_level == 0 && nr_bit == 2 && uci_pdu.harq->harq_list[1].harq_value==1))
ack_nack_errors++;
ack_nack_errors+=(((actual_payload&1)^(!harq_value0))+((actual_payload>>1)^(!harq_value1)));
else if ((!confidence_lvl && !harq_value0) ||
(!confidence_lvl && nr_bit == 2 && !harq_value1))
ack_nack_errors++;
free(uci_pdu.harq->harq_list);
}
}