diff --git a/cmake_targets/autotests/test_case_list.xml b/cmake_targets/autotests/test_case_list.xml
index 089d0503fd..e76ed15a48 100644
--- a/cmake_targets/autotests/test_case_list.xml
+++ b/cmake_targets/autotests/test_case_list.xml
@@ -1100,7 +1100,9 @@
(Test15: 6 PTRS, 5 Interpolated Symbols),
(Test16: 11 PTRS, 0 Interpolated Symbols),
(Test17: 2 DMRS Symbols),
- (Test18: 3 DMRS Symbols)
+ (Test18: 3 DMRS Symbols),
+ (Test19: 106 PDSCH-PRBs MCS 28),
+ (Test20: 256 QAM MCS 27)
$OPENAIR_DIR/cmake_targets/build_oai
--phy_simulators -c
@@ -1108,24 +1110,26 @@
$OPENAIR_DIR/targets/bin/nr_dlsim.Rel15
-n100 -R106 -b106 -s5
- -n100 -R217 -b217 -s5
- -n100 -R273 -b273 -s5
- -n100 -R106 -a25 -s5
- -n100 -R106 -a51 -s5
- -n100 -R217 -b100 -s5
- -n100 -R217 -a80 -s5
- -n100 -R217 -a110 -s5 -b100
- -n100 -e27 -s30
- -n100 -e16 -s10
- -n100 -s1 -t25
- -n100 -s1 -t33
- -n100 -s1 -t50
- -n100 -s5 -T 2 2 2
- -n100 -s5 -T 2 1 2
- -n100 -s5 -T 2 0 4
- -n100 -s2 -U 2 0 1
- -n100 -s2 -U 2 0 2
- nr_dlsim.test1 nr_dlsim.test2 nr_dlsim.test3 nr_dlsim.test4 nr_dlsim.test5 nr_dlsim.test6 nr_dlsim.test7 nr_dlsim.test8 nr_dlsim.test9 nr_dlsim.test10 nr_dlsim.test11 nr_dlsim.test12 nr_dlsim.test13 nr_dlsim.test14 nr_dlsim.test15 nr_dlsim.test16 nr_dlsim.test17 nr_dlsim.test18
+ -n100 -R217 -b217 -s5
+ -n100 -R273 -b273 -s5
+ -n100 -R106 -a25 -s5
+ -n100 -R106 -a51 -s5
+ -n100 -R217 -b100 -s5
+ -n100 -R217 -a80 -s5
+ -n100 -R217 -a110 -s5 -b100
+ -n100 -e27 -s30
+ -n100 -e16 -s10
+ -n100 -s1 -t25
+ -n100 -s1 -t33
+ -n100 -s1 -t50
+ -n100 -s5 -T 2 2 2
+ -n100 -s5 -T 2 1 2
+ -n100 -s5 -T 2 0 4
+ -n100 -s2 -U 2 0 1
+ -n100 -s2 -U 2 0 2
+ -n100 -s25 -e28 -t75
+ -n100 -s35 -q -e27 -t75
+ nr_dlsim.test1 nr_dlsim.test2 nr_dlsim.test3 nr_dlsim.test4 nr_dlsim.test5 nr_dlsim.test6 nr_dlsim.test7 nr_dlsim.test8 nr_dlsim.test9 nr_dlsim.test10 nr_dlsim.test11 nr_dlsim.test12 nr_dlsim.test13 nr_dlsim.test14 nr_dlsim.test15 nr_dlsim.test16 nr_dlsim.test17 nr_dlsim.test18 nr_dlsim.test19 nr_dlsim.test20
PDSCH test OK
segmentation fault|assertion|exiting|fatal
3
diff --git a/openair1/SIMULATION/NR_PHY/dlsim.c b/openair1/SIMULATION/NR_PHY/dlsim.c
index 9925b6911a..98c3216b7c 100644
--- a/openair1/SIMULATION/NR_PHY/dlsim.c
+++ b/openair1/SIMULATION/NR_PHY/dlsim.c
@@ -323,6 +323,7 @@ int main(int argc, char **argv)
uint16_t rbSize = 106;
uint8_t mcsIndex = 9;
uint8_t dlsch_threads = 0;
+ int fd_inter = 0;
if ( load_configmodule(argc,argv,CONFIG_ENABLECMDLINEONLY) == 0) {
exit_fun("[NR_DLSIM] Error, configuration module init failed\n");
}
@@ -333,7 +334,7 @@ int main(int argc, char **argv)
FILE *scg_fd=NULL;
- while ((c = getopt (argc, argv, "f:hA:pf:g:i:j:n:s:S:t:x:y:z:M:N:F:GR:dPIL:Ea:b:d:e:m:w:T:U:q")) != -1) {
+ while ((c = getopt (argc, argv, "f:hA:pf:g:j:n:s:S:t:x:y:z:M:N:F:GR:dPIL:Ea:b:d:e:m:w:T:U:qi")) != -1) {
switch (c) {
case 'f':
scg_fd = fopen(optarg,"r");
@@ -385,14 +386,10 @@ int main(int argc, char **argv)
break;
- /*case 'i':
- interf1=atoi(optarg);
+ case 'i':
+ fd_inter=1;
break;
- case 'j':
- interf2=atoi(optarg);
- break;*/
-
case 'n':
n_trials = atoi(optarg);
break;
@@ -552,7 +549,7 @@ int main(int argc, char **argv)
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("-y Number of TX antennas used in gNB\n");
printf("-z Number of RX antennas used in UE\n");
- //printf("-i Relative strength of first intefering gNB (in dB) - cell_id mod 3 = 1\n");
+ printf("-i Activate freq domain interpolation for channel estimation. Average over 1 PRB by default.\n");
//printf("-j Relative strength of second intefering gNB (in dB) - cell_id mod 3 = 2\n");
printf("-R N_RB_DL\n");
printf("-O oversampling factor (1,2,4,8,16)\n");
@@ -817,6 +814,7 @@ int main(int argc, char **argv)
UE->if_inst->phy_config_request = nr_ue_phy_config_request;
UE->if_inst->dl_indication = nr_ue_dl_indication;
UE->if_inst->ul_indication = dummy_nr_ue_ul_indication;
+ UE->fd_lin_interpolation = fd_inter;
UE_mac->if_module = nr_ue_if_module_init(0);
diff --git a/openair1/SIMULATION/NR_PHY/ulsim.c b/openair1/SIMULATION/NR_PHY/ulsim.c
index 57b8a51d58..47c0078c94 100644
--- a/openair1/SIMULATION/NR_PHY/ulsim.c
+++ b/openair1/SIMULATION/NR_PHY/ulsim.c
@@ -235,6 +235,7 @@ int main(int argc, char **argv)
float effRate;
//float eff_tp_check = 0.7;
uint8_t snrRun;
+ int fd_inter = 0;
int enable_ptrs = 0;
int modify_dmrs = 0;
@@ -270,7 +271,7 @@ int main(int argc, char **argv)
/* initialize the sin-cos table */
InitSinLUT();
- while ((c = getopt(argc, argv, "a:b:c:d:ef:g:h:i:j:kl:m:n:p:r:s:y:z:F:G:H:M:N:PR:S:T:U:L:Z")) != -1) {
+ while ((c = getopt(argc, argv, "a:b:c:d:ef:g:h:j:kl:m:n:p:r:s:y:z:F:G:H:M:N:PR:S:T:U:L:Zi")) != -1) {
printf("handling optarg %c\n",c);
switch (c) {
@@ -362,14 +363,10 @@ int main(int argc, char **argv)
break;
- /*case 'i':
- interf1 = atoi(optarg);
- break;
+ case 'i':
+ fd_inter=1;
+ break;
- case 'j':
- interf2 = atoi(optarg);
- break;*/
-
case 'k':
printf("Setting threequarter_fs_flag\n");
openair0_cfg[0].threequarter_fs= 1;
@@ -521,7 +518,7 @@ int main(int argc, char **argv)
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("-h This message\n");
- //printf("-i Relative strength of first intefering eNB (in dB) - cell_id mod 3 = 1\n");
+ printf("-i Activate freq domain interpolation for channel estimation. Average over 1 PRB by default.\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("-m MCS value\n");
@@ -604,6 +601,7 @@ int main(int argc, char **argv)
gNB->UL_INFO.crc_ind.crc_list = (nfapi_nr_crc_t *)malloc(NB_UE_INST*sizeof(nfapi_nr_crc_t));
gNB->UL_INFO.rx_ind.number_of_pdus = 0;
gNB->UL_INFO.crc_ind.number_crcs = 0;
+ gNB->fd_interpolation = fd_inter;
frame_parms = &gNB->frame_parms; //to be initialized I suppose (maybe not necessary for PBCH)