diff --git a/cmake_targets/autotests/test_case_list.xml b/cmake_targets/autotests/test_case_list.xml index 7840e89e28ce64f2efcf62288468b701a8029656..21317f0f2a67c18b6a71e6ed49b3ea0601833fa1 100755 --- a/cmake_targets/autotests/test_case_list.xml +++ b/cmake_targets/autotests/test_case_list.xml @@ -351,22 +351,24 @@ </testCase> <testCase id="nr_ulsim.misc"> - <desc>nr_ulsim Test cases. (Test1: MCS 9, 106 PRBs), - (Test2: MCS 16, 50 PRBs), - (Test3: MCS 28, 50 PRBs), - (Test4: MCS 9, 217 PRBs), - (Test5: MCS 9, 273 PRBs), - (Test6: PUSCH Type A, 2 DMRS Symbols), - (Test7: PUSCH Type A, 3 DMRS, 4 PTRS, 5 Interpolated Symbols), - (Test8: PUSCH Type B, 3 DMRS, 2 PTRS, 7 Interpolated Symbols), - (Test9: PUSCH Type B, 3 DMRS, 2 PTRS, 3 Interpolated Symbols), - (Test10: 25 PRBs, 15 kHz SCS), - (Test11: MCS 0, low SNR performance) - (Test12: MCS 28, 106 PRBs, Time shift 8)</desc> + <desc>nr_ulsim Test cases. (Test1: MCS 9 106 PRBs), + (Test2: MCS 16 50 PRBs), + (Test3: MCS 28 50 PRBs), + (Test4: MCS 27 50 PRBs 256QAM), + (Test5: MCS 9 217 PRBs), + (Test6: MCS 9 273 PRBs), + (Test7: PUSCH Type A, 2 DMRS Symbols), + (Test8: PUSCH Type A, 3 DMRS, 4 PTRS, 5 Interpolated Symbols), + (Test9: PUSCH Type B, 3 DMRS, 2 PTRS, 7 Interpolated Symbols), + (Test10: PUSCH Type B, 3 DMRS, 2 PTRS, 3 Interpolated Symbols), + (Test11: 25 PRBs, 15 kHz SCS), + (Test12: MCS 0, low SNR performance) + (Test13: MCS 28, 106 PRBs, Time shift 8)</desc> <main_exec>nr_ulsim</main_exec> <main_exec_args>-n100 -m9 -r106 -s5 -n100 -m16 -s10 -n100 -m28 -s20 + -n100 -m27 -s25 -q1 -n100 -m9 -R217 -r217 -s5 -n100 -m9 -R273 -r273 -s5 -n100 -s5 -U 0,1,1,1 @@ -376,7 +378,7 @@ -n100 -u0 -m0 -R25 -r25 -i 1,0 -n100 -m0 -S -0.6 -i 1,0 -n100 -m 28 -R106 -r106 -t90 -s24 -S24 -d 8</main_exec_args> - <tags>test1 test2 test3 test4 test5 test6 test7 test8 test9 test10 test11 test12</tags> + <tags>test1 test2 test3 test4 test5 test6 test7 test8 test9 test10 test11 test12 test 13</tags> <search_expr_true>PUSCH test OK</search_expr_true> <search_expr_false>segmentation fault|assertion|exiting|fatal</search_expr_false> <nruns>3</nruns> diff --git a/doc/FEATURE_SET.md b/doc/FEATURE_SET.md index 726fe84a74b6648b05b63afcd581de17dd876273..b3ca79c0704e722024b3a7ce949424d3a81e4fec 100644 --- a/doc/FEATURE_SET.md +++ b/doc/FEATURE_SET.md @@ -259,6 +259,7 @@ The following features are valid for the gNB and the 5G-NR UE. - PTRS support - Support for 1, 2 and 4 TX antennas - Support for up to 2 layers (currently limited to DMRS configuration type 2) + - Support for 256 QAM * NR-CSIRS Generation of sequence at PHY * NR-PUSCH (including Segmentation, LDPC encoding, rate matching, scrambling, modulation, RB mapping, etc). - PUSCH mapping type A and B @@ -267,6 +268,7 @@ The following features are valid for the gNB and the 5G-NR UE. - PTRS support - Support for up to 2 RX antenna - Support for up to 2 layers + - Support for 256 QAM * NR-PUCCH - Format 0 (2 bits, for ACK/NACK and SR) - Format 2 (up to 11 bits, mainly for CSI feedback) diff --git a/openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_ulsch.c b/openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_ulsch.c index 947cb34fb7bfc439fac924845d4c331e3e00c9cc..e1a4e716efe4acd0f76df9d660b0a88fbf83c70a 100644 --- a/openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_ulsch.c +++ b/openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_ulsch.c @@ -1662,7 +1662,8 @@ void pf_ul(module_id_t module_id, } const NR_bler_options_t *bo = &nrmac->ul_bler; - const int max_mcs = bo->max_mcs; /* no per-user maximum MCS yet */ + const int max_mcs_table = (current_BWP->mcs_table == 0 || current_BWP->mcs_table == 2) ? 28 : 27; + const int max_mcs = min(bo->max_mcs, max_mcs_table); /* no per-user maximum MCS yet */ if (bo->harq_round_max == 1) sched_pusch->mcs = max_mcs; else