Commit 26e469cb authored by francescomani's avatar francescomani

adding 256QAM in feature set, adding 256QAM test in ulsim and limit mcs according to table

parent 7455bae4
...@@ -351,22 +351,24 @@ ...@@ -351,22 +351,24 @@
</testCase> </testCase>
<testCase id="nr_ulsim.misc"> <testCase id="nr_ulsim.misc">
<desc>nr_ulsim Test cases. (Test1: MCS 9, 106 PRBs), <desc>nr_ulsim Test cases. (Test1: MCS 9 106 PRBs),
(Test2: MCS 16, 50 PRBs), (Test2: MCS 16 50 PRBs),
(Test3: MCS 28, 50 PRBs), (Test3: MCS 28 50 PRBs),
(Test4: MCS 9, 217 PRBs), (Test4: MCS 27 50 PRBs 256QAM),
(Test5: MCS 9, 273 PRBs), (Test5: MCS 9 217 PRBs),
(Test6: PUSCH Type A, 2 DMRS Symbols), (Test6: MCS 9 273 PRBs),
(Test7: PUSCH Type A, 3 DMRS, 4 PTRS, 5 Interpolated Symbols), (Test7: PUSCH Type A, 2 DMRS Symbols),
(Test8: PUSCH Type B, 3 DMRS, 2 PTRS, 7 Interpolated Symbols), (Test8: PUSCH Type A, 3 DMRS, 4 PTRS, 5 Interpolated Symbols),
(Test9: PUSCH Type B, 3 DMRS, 2 PTRS, 3 Interpolated Symbols), (Test9: PUSCH Type B, 3 DMRS, 2 PTRS, 7 Interpolated Symbols),
(Test10: 25 PRBs, 15 kHz SCS), (Test10: PUSCH Type B, 3 DMRS, 2 PTRS, 3 Interpolated Symbols),
(Test11: MCS 0, low SNR performance) (Test11: 25 PRBs, 15 kHz SCS),
(Test12: MCS 28, 106 PRBs, Time shift 8)</desc> (Test12: MCS 0, low SNR performance)
(Test13: MCS 28, 106 PRBs, Time shift 8)</desc>
<main_exec>nr_ulsim</main_exec> <main_exec>nr_ulsim</main_exec>
<main_exec_args>-n100 -m9 -r106 -s5 <main_exec_args>-n100 -m9 -r106 -s5
-n100 -m16 -s10 -n100 -m16 -s10
-n100 -m28 -s20 -n100 -m28 -s20
-n100 -m27 -s25 -q1
-n100 -m9 -R217 -r217 -s5 -n100 -m9 -R217 -r217 -s5
-n100 -m9 -R273 -r273 -s5 -n100 -m9 -R273 -r273 -s5
-n100 -s5 -U 0,1,1,1 -n100 -s5 -U 0,1,1,1
...@@ -376,7 +378,7 @@ ...@@ -376,7 +378,7 @@
-n100 -u0 -m0 -R25 -r25 -i 1,0 -n100 -u0 -m0 -R25 -r25 -i 1,0
-n100 -m0 -S -0.6 -i 1,0 -n100 -m0 -S -0.6 -i 1,0
-n100 -m 28 -R106 -r106 -t90 -s24 -S24 -d 8</main_exec_args> -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_true>PUSCH test OK</search_expr_true>
<search_expr_false>segmentation fault|assertion|exiting|fatal</search_expr_false> <search_expr_false>segmentation fault|assertion|exiting|fatal</search_expr_false>
<nruns>3</nruns> <nruns>3</nruns>
......
...@@ -259,6 +259,7 @@ The following features are valid for the gNB and the 5G-NR UE. ...@@ -259,6 +259,7 @@ The following features are valid for the gNB and the 5G-NR UE.
- PTRS support - PTRS support
- Support for 1, 2 and 4 TX antennas - Support for 1, 2 and 4 TX antennas
- Support for up to 2 layers (currently limited to DMRS configuration type 2) - 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-CSIRS Generation of sequence at PHY
* NR-PUSCH (including Segmentation, LDPC encoding, rate matching, scrambling, modulation, RB mapping, etc). * NR-PUSCH (including Segmentation, LDPC encoding, rate matching, scrambling, modulation, RB mapping, etc).
- PUSCH mapping type A and B - PUSCH mapping type A and B
...@@ -267,6 +268,7 @@ The following features are valid for the gNB and the 5G-NR UE. ...@@ -267,6 +268,7 @@ The following features are valid for the gNB and the 5G-NR UE.
- PTRS support - PTRS support
- Support for up to 2 RX antenna - Support for up to 2 RX antenna
- Support for up to 2 layers - Support for up to 2 layers
- Support for 256 QAM
* NR-PUCCH * NR-PUCCH
- Format 0 (2 bits, for ACK/NACK and SR) - Format 0 (2 bits, for ACK/NACK and SR)
- Format 2 (up to 11 bits, mainly for CSI feedback) - Format 2 (up to 11 bits, mainly for CSI feedback)
......
...@@ -1662,7 +1662,8 @@ void pf_ul(module_id_t module_id, ...@@ -1662,7 +1662,8 @@ void pf_ul(module_id_t module_id,
} }
const NR_bler_options_t *bo = &nrmac->ul_bler; 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) if (bo->harq_round_max == 1)
sched_pusch->mcs = max_mcs; sched_pusch->mcs = max_mcs;
else else
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment