#define CONFIG_HLP_DLMCS "Set the maximum downlink MCS\n"
#define CONFIG_HLP_DLMCS "Set the maximum downlink MCS\n"
#define CONFIG_HLP_STMON "Enable processing timing measurement of lte softmodem on per subframe basis \n"
#define CONFIG_HLP_STMON "Enable processing timing measurement of lte softmodem on per subframe basis \n"
#define CONFIG_HLP_256QAM "Use the 256 QAM mcs table for PDSCH\n"
#define CONFIG_HLP_256QAM "Use the 256 QAM mcs table for PDSCH\n"
#define CONFIG_HLP_PRBINTER "Do PRB based averaging of channel estimates. Frequency domain linear interpolation by default\n"
#define CONFIG_HLP_CHESTFREQ "Set channel estimation type in frequency domain. 0-Linear interpolation (default). 1-PRB based averaging of channel estimates in frequency. \n"
#define CONFIG_HLP_CHESTTIME "Set channel estimation type in time domain. 0-Symbols take estimates of the last preceding DMRS symbol (default). 1-Symbol based averaging of channel estimates in time. \n"
#define CONFIG_HLP_NONSTOP "Go back to frame sync mode after 100 consecutive PBCH failures\n"
#define CONFIG_HLP_NONSTOP "Go back to frame sync mode after 100 consecutive PBCH failures\n"
//#define CONFIG_HLP_NUMUES "Set the number of UEs for the emulation"
//#define CONFIG_HLP_NUMUES "Set the number of UEs for the emulation"
@@ -675,7 +678,7 @@ int main(int argc, char **argv)
...
@@ -675,7 +678,7 @@ int main(int argc, char **argv)
printf("-g [A,B,C,D,E,F,G,R] Use 3GPP SCM (A,B,C,D) or 36-101 (E-EPA,F-EVA,G-ETU) models or R for MIMO model (ignores delay spread and Ricean factor)\n");
printf("-g [A,B,C,D,E,F,G,R] Use 3GPP SCM (A,B,C,D) or 36-101 (E-EPA,F-EVA,G-ETU) models or R for MIMO model (ignores delay spread and Ricean factor)\n");
printf("-y Number of TX antennas used in gNB\n");
printf("-y Number of TX antennas used in gNB\n");
printf("-z Number of RX antennas used in UE\n");
printf("-z Number of RX antennas used in UE\n");
printf("-i Activate PRB based averaging for channel estimation. Frequncy domain interpolation by default.\n");
printf("-i Change channel estimation technique. Arguments list: Frequency domain {0:Linear interpolation, 1:PRB based averaging}, Time domain {0:Estimates of last DMRS symbol, 1:Average of DMRS symbols}\n");
//printf("-j Relative strength of second intefering gNB (in dB) - cell_id mod 3 = 2\n");
//printf("-j Relative strength of second intefering gNB (in dB) - cell_id mod 3 = 2\n");
printf("-R N_RB_DL\n");
printf("-R N_RB_DL\n");
printf("-O oversampling factor (1,2,4,8,16)\n");
printf("-O oversampling factor (1,2,4,8,16)\n");
...
@@ -692,13 +695,14 @@ int main(int argc, char **argv)
...
@@ -692,13 +695,14 @@ int main(int argc, char **argv)
printf("-e MSC index\n");
printf("-e MSC index\n");
printf("-q MCS Table index\n");
printf("-q MCS Table index\n");
printf("-t Acceptable effective throughput (in percentage)\n");
printf("-t Acceptable effective throughput (in percentage)\n");
printf("-I Maximum LDPC decoder iterations\n");
printf("-T Enable PTRS, arguments list L_PTRS{0,1,2} K_PTRS{2,4}, e.g. -T 2 0 2 \n");
printf("-T Enable PTRS, arguments list L_PTRS{0,1,2} K_PTRS{2,4}, e.g. -T 2 0 2 \n");
printf("-Q Maximum LDPC decoder iterations\n");
printf("-U Change DMRS Config, arguments list DMRS TYPE{0=A,1=B} DMRS AddPos{0:2} DMRS ConfType{1:2}, e.g. -U 3 0 2 1 \n");
printf("-U Change DMRS Config, arguments list DMRS TYPE{0=A,1=B} DMRS AddPos{0:2} DMRS ConfType{1:2}, e.g. -U 3 0 2 1 \n");
printf("-P Print DLSCH performances\n");
printf("-P Print DLSCH performances\n");
printf("-w Write txdata to binary file (one frame)\n");
printf("-w Write txdata to binary file (one frame)\n");
printf("-d number of dlsch threads, 0: no dlsch parallelization\n");
printf("-d number of dlsch threads, 0: no dlsch parallelization\n");
printf("-X gNB thread pool configuration, n => no threads");
printf("-X gNB thread pool configuration, n => no threads\n");
printf("-Y Run initial sync in UE\n");
exit(-1);
exit(-1);
break;
break;
}
}
...
@@ -989,7 +993,8 @@ int main(int argc, char **argv)
...
@@ -989,7 +993,8 @@ int main(int argc, char **argv)
@@ -441,7 +441,9 @@ int main(int argc, char **argv)
...
@@ -441,7 +441,9 @@ int main(int argc, char **argv)
break;
break;
case'i':
case'i':
prb_inter=1;
for(i=0;i<atoi(optarg);i++){
chest_type[i]=atoi(argv[optind++]);
}
break;
break;
case'k':
case'k':
...
@@ -468,6 +470,10 @@ int main(int argc, char **argv)
...
@@ -468,6 +470,10 @@ int main(int argc, char **argv)
case'p':
case'p':
extended_prefix_flag=1;
extended_prefix_flag=1;
break;
break;
case'q':
mcs_table=atoi(optarg);
break;
case'r':
case'r':
nb_rb=atoi(optarg);
nb_rb=atoi(optarg);
...
@@ -520,10 +526,6 @@ int main(int argc, char **argv)
...
@@ -520,10 +526,6 @@ int main(int argc, char **argv)
}
}
break;
break;
case'B':
mcs_table=atoi(optarg);
break;
case'F':
case'F':
input_fd=fopen(optarg,"r");
input_fd=fopen(optarg,"r");
if(input_fd==NULL){
if(input_fd==NULL){
...
@@ -605,20 +607,20 @@ int main(int argc, char **argv)
...
@@ -605,20 +607,20 @@ int main(int argc, char **argv)
printf("-f Number of frames to simulate\n");
printf("-f Number of frames to simulate\n");
printf("-g [A,B,C,D,E,F,G] Use 3GPP SCM (A,B,C,D) or 36-101 (E-EPA,F-EVA,G-ETU) models (ignores delay spread and Ricean factor)\n");
printf("-g [A,B,C,D,E,F,G] Use 3GPP SCM (A,B,C,D) or 36-101 (E-EPA,F-EVA,G-ETU) models (ignores delay spread and Ricean factor)\n");
printf("-h This message\n");
printf("-h This message\n");
printf("-i Activate PRB based averaging for channel estimation. Frequncy domain interpolation by default.\n");
printf("-i Change channel estimation technique. Arguments list: Frequency domain {0:Linear interpolation, 1:PRB based averaging}, Time domain {0:Estimates of last DMRS symbol, 1:Average of DMRS symbols}\n");
//printf("-j Relative strength of second intefering eNB (in dB) - cell_id mod 3 = 2\n");
//printf("-j Relative strength of second intefering eNB (in dB) - cell_id mod 3 = 2\n");
printf("-s Starting SNR, runs from SNR0 to SNR0 + 10 dB if ending SNR isn't given\n");
printf("-s Starting SNR, runs from SNR0 to SNR0 + 10 dB if ending SNR isn't given\n");
printf("-m MCS value\n");
printf("-m MCS value\n");
printf("-n Number of trials to simulate\n");
printf("-n Number of trials to simulate\n");
printf("-p Use extended prefix mode\n");
printf("-p Use extended prefix mode\n");
//printf("-t Delay spread for multipath channel\n");
printf("-q MCS table\n");
printf("-t Delay spread for multipath channel\n");
printf("-u Set the numerology\n");
printf("-u Set the numerology\n");
printf("-w Start PRB for PUSCH\n");
printf("-w Start PRB for PUSCH\n");
//printf("-x Transmission mode (1,2,6 for the moment)\n");
//printf("-x Transmission mode (1,2,6 for the moment)\n");
printf("-y Number of TX antennas used at UE\n");
printf("-y Number of TX antennas used at UE\n");
printf("-z Number of RX antennas used at gNB\n");
printf("-z Number of RX antennas used at gNB\n");
printf("-A Interpolation_filname Run with Abstraction to generate Scatter plot using interpolation polynomial in file\n");
printf("-A Interpolation_filname Run with Abstraction to generate Scatter plot using interpolation polynomial in file\n");
printf("-B MCS table\n");
//printf("-C Generate Calibration information for Abstraction (effective SNR adjustment to remove Pe bias w.r.t. AWGN)\n");
//printf("-C Generate Calibration information for Abstraction (effective SNR adjustment to remove Pe bias w.r.t. AWGN)\n");
printf("-F Input filename (.txt format) for RX conformance testing\n");
printf("-F Input filename (.txt format) for RX conformance testing\n");
printf("-G Offset of samples to read from file (0 default)\n");
printf("-G Offset of samples to read from file (0 default)\n");
...
@@ -632,7 +634,7 @@ int main(int argc, char **argv)
...
@@ -632,7 +634,7 @@ int main(int argc, char **argv)
printf("-S Ending SNR, runs from SNR0 to SNR1\n");
printf("-S Ending SNR, runs from SNR0 to SNR1\n");
printf("-P Print ULSCH performances\n");
printf("-P Print ULSCH performances\n");
printf("-T Enable PTRS, arguments list L_PTRS{0,1,2} K_PTRS{2,4}, e.g. -T 2 0 2 \n");
printf("-T Enable PTRS, arguments list L_PTRS{0,1,2} K_PTRS{2,4}, e.g. -T 2 0 2 \n");
printf("-U Change DMRS Config, arguments list DMRS TYPE{0=A,1=B} DMRS AddPos{0:3}, e.g. -U 2 0 2\n");
printf("-U Change DMRS Config, arguments list: DMRS Mapping Type{0=A,1=B}, DMRS AddPos{0:3}, DMRS Config Type{1,2}, Number of CDM groups without data{1,2,3} e.g. -U 4 0 2 0 1\n");
printf("-Q If -F used, read parameters from file\n");
printf("-Q If -F used, read parameters from file\n");
printf("-Z If -Z is used, SC-FDMA or transform precoding is enabled in Uplink \n");
printf("-Z If -Z is used, SC-FDMA or transform precoding is enabled in Uplink \n");
printf("-W Num of layer for PUSCH\n");
printf("-W Num of layer for PUSCH\n");
...
@@ -727,7 +729,6 @@ int main(int argc, char **argv)
...
@@ -727,7 +729,6 @@ int main(int argc, char **argv)