122 const auto p80{
true};
132 const MHz_u width{20};
133 const uint8_t p20Index = 0;
136 for (std::size_t idx = 1; idx <= 9; idx++)
138 RunOne(p20Index,
MakeRuSpec(RuType::RU_26_TONE, idx, p80, p160), width, {p20Index});
141 for (std::size_t idx = 1; idx <= 4; idx++)
143 RunOne(p20Index,
MakeRuSpec(RuType::RU_52_TONE, idx, p80, p160), width, {p20Index});
146 for (std::size_t idx = 1; idx <= 2; idx++)
148 RunOne(p20Index,
MakeRuSpec(RuType::RU_106_TONE, idx, p80, p160), width, {p20Index});
151 RunOne(p20Index,
MakeRuSpec(RuType::RU_242_TONE, 1, p80, p160), width, {p20Index});
160 for (uint8_t p20Index = 0; p20Index < 2; p20Index++)
162 const MHz_u width{20};
165 for (std::size_t idx = 1; idx <= 9; idx++)
167 RunOne(p20Index,
MakeRuSpec(RuType::RU_26_TONE, idx, p80, p160), width, {p20Index});
170 for (std::size_t idx = 1; idx <= 4; idx++)
172 RunOne(p20Index,
MakeRuSpec(RuType::RU_52_TONE, idx, p80, p160), width, {p20Index});
175 for (std::size_t idx = 1; idx <= 2; idx++)
177 RunOne(p20Index,
MakeRuSpec(RuType::RU_106_TONE, idx, p80, p160), width, {p20Index});
180 RunOne(p20Index,
MakeRuSpec(RuType::RU_242_TONE, 1, p80, p160), width, {p20Index});
184 for (uint8_t p20Index = 0; p20Index < 2; p20Index++)
186 const MHz_u width{40};
189 for (std::size_t idx = 1; idx <= 9; idx++)
191 RunOne(p20Index,
MakeRuSpec(RuType::RU_26_TONE, idx, p80, p160), width, {0});
194 for (std::size_t idx = 10; idx <= 18; idx++)
196 RunOne(p20Index,
MakeRuSpec(RuType::RU_26_TONE, idx, p80, p160), width, {1});
199 for (std::size_t idx = 1; idx <= 4; idx++)
201 RunOne(p20Index,
MakeRuSpec(RuType::RU_52_TONE, idx, p80, p160), width, {0});
204 for (std::size_t idx = 5; idx <= 8; idx++)
206 RunOne(p20Index,
MakeRuSpec(RuType::RU_52_TONE, idx, p80, p160), width, {1});
209 for (std::size_t idx = 1; idx <= 2; idx++)
211 RunOne(p20Index,
MakeRuSpec(RuType::RU_106_TONE, idx, p80, p160), width, {0});
214 for (std::size_t idx = 3; idx <= 4; idx++)
216 RunOne(p20Index,
MakeRuSpec(RuType::RU_106_TONE, idx, p80, p160), width, {1});
219 RunOne(p20Index,
MakeRuSpec(RuType::RU_242_TONE, 1, p80, p160), width, {0});
221 RunOne(p20Index,
MakeRuSpec(RuType::RU_242_TONE, 2, p80, p160), width, {1});
223 RunOne(p20Index,
MakeRuSpec(RuType::RU_484_TONE, 1, p80, p160), width, {0, 1});
232 for (uint8_t p20Index = 0; p20Index < 4; p20Index++)
234 const MHz_u width{20};
237 for (std::size_t idx = 1; idx <= 9; idx++)
239 RunOne(p20Index,
MakeRuSpec(RuType::RU_26_TONE, idx, p80, p160), width, {p20Index});
242 for (std::size_t idx = 1; idx <= 4; idx++)
244 RunOne(p20Index,
MakeRuSpec(RuType::RU_52_TONE, idx, p80, p160), width, {p20Index});
247 for (std::size_t idx = 1; idx <= 2; idx++)
249 RunOne(p20Index,
MakeRuSpec(RuType::RU_106_TONE, idx, p80, p160), width, {p20Index});
252 RunOne(p20Index,
MakeRuSpec(RuType::RU_242_TONE, 1, p80, p160), width, {p20Index});
256 for (uint8_t p20Index = 0; p20Index < 4; p20Index++)
258 const MHz_u width{40};
260 const uint8_t p40Index = p20Index / 2;
262 const uint8_t ch20Index0 = p40Index * 2;
263 const uint8_t ch20Index1 = p40Index * 2 + 1;
266 for (std::size_t idx = 1; idx <= 9; idx++)
268 RunOne(p20Index,
MakeRuSpec(RuType::RU_26_TONE, idx, p80, p160), width, {ch20Index0});
271 for (std::size_t idx = 10; idx <= 18; idx++)
273 RunOne(p20Index,
MakeRuSpec(RuType::RU_26_TONE, idx, p80, p160), width, {ch20Index1});
276 for (std::size_t idx = 1; idx <= 4; idx++)
278 RunOne(p20Index,
MakeRuSpec(RuType::RU_52_TONE, idx, p80, p160), width, {ch20Index0});
281 for (std::size_t idx = 5; idx <= 8; idx++)
283 RunOne(p20Index,
MakeRuSpec(RuType::RU_52_TONE, idx, p80, p160), width, {ch20Index1});
286 for (std::size_t idx = 1; idx <= 2; idx++)
288 RunOne(p20Index,
MakeRuSpec(RuType::RU_106_TONE, idx, p80, p160), width, {ch20Index0});
291 for (std::size_t idx = 3; idx <= 4; idx++)
293 RunOne(p20Index,
MakeRuSpec(RuType::RU_106_TONE, idx, p80, p160), width, {ch20Index1});
296 RunOne(p20Index,
MakeRuSpec(RuType::RU_242_TONE, 1, p80, p160), width, {ch20Index0});
298 RunOne(p20Index,
MakeRuSpec(RuType::RU_242_TONE, 2, p80, p160), width, {ch20Index1});
301 MakeRuSpec(RuType::RU_484_TONE, 1, p80, p160),
303 {ch20Index0, ch20Index1});
307 for (uint8_t p20Index = 0; p20Index < 4; p20Index++)
309 const MHz_u width{80};
312 for (std::size_t idx = 1; idx <= 9; idx++)
314 RunOne(p20Index,
MakeRuSpec(RuType::RU_26_TONE, idx, p80, p160), width, {0});
317 for (std::size_t idx = 10; idx <= 18; idx++)
319 RunOne(p20Index,
MakeRuSpec(RuType::RU_26_TONE, idx, p80, p160), width, {1});
324 RunOne(p20Index,
MakeRuSpec(RuType::RU_26_TONE, 19, p80, p160), width, {1, 2});
327 for (std::size_t idx = 20; idx <= 28; idx++)
329 RunOne(p20Index,
MakeRuSpec(RuType::RU_26_TONE, idx, p80, p160), width, {2});
332 for (std::size_t idx = 29; idx <= 37; idx++)
334 RunOne(p20Index,
MakeRuSpec(RuType::RU_26_TONE, idx, p80, p160), width, {3});
337 for (std::size_t idx = 1; idx <= 4; idx++)
339 RunOne(p20Index,
MakeRuSpec(RuType::RU_52_TONE, idx, p80, p160), width, {0});
342 for (std::size_t idx = 5; idx <= 8; idx++)
344 RunOne(p20Index,
MakeRuSpec(RuType::RU_52_TONE, idx, p80, p160), width, {1});
347 for (std::size_t idx = 9; idx <= 12; idx++)
349 RunOne(p20Index,
MakeRuSpec(RuType::RU_52_TONE, idx, p80, p160), width, {2});
352 for (std::size_t idx = 13; idx <= 16; idx++)
354 RunOne(p20Index,
MakeRuSpec(RuType::RU_52_TONE, idx, p80, p160), width, {3});
357 for (std::size_t idx = 1; idx <= 2; idx++)
359 RunOne(p20Index,
MakeRuSpec(RuType::RU_106_TONE, idx, p80, p160), width, {0});
362 for (std::size_t idx = 3; idx <= 4; idx++)
364 RunOne(p20Index,
MakeRuSpec(RuType::RU_106_TONE, idx, p80, p160), width, {1});
367 for (std::size_t idx = 5; idx <= 6; idx++)
369 RunOne(p20Index,
MakeRuSpec(RuType::RU_106_TONE, idx, p80, p160), width, {2});
372 for (std::size_t idx = 7; idx <= 8; idx++)
374 RunOne(p20Index,
MakeRuSpec(RuType::RU_106_TONE, idx, p80, p160), width, {3});
377 RunOne(p20Index,
MakeRuSpec(RuType::RU_242_TONE, 1, p80, p160), width, {0});
379 RunOne(p20Index,
MakeRuSpec(RuType::RU_242_TONE, 2, p80, p160), width, {1});
381 RunOne(p20Index,
MakeRuSpec(RuType::RU_242_TONE, 3, p80, p160), width, {2});
383 RunOne(p20Index,
MakeRuSpec(RuType::RU_242_TONE, 4, p80, p160), width, {3});
385 RunOne(p20Index,
MakeRuSpec(RuType::RU_484_TONE, 1, p80, p160), width, {0, 1});
387 RunOne(p20Index,
MakeRuSpec(RuType::RU_484_TONE, 2, p80, p160), width, {2, 3});
389 RunOne(p20Index,
MakeRuSpec(RuType::RU_996_TONE, 1, p80, p160), width, {0, 1, 2, 3});
398 for (uint8_t p20Index = 0; p20Index < 8; p20Index++)
400 const MHz_u width{20};
403 for (std::size_t idx = 1; idx <= 9; idx++)
405 RunOne(p20Index,
MakeRuSpec(RuType::RU_26_TONE, idx, p80, p160), width, {p20Index});
408 for (std::size_t idx = 1; idx <= 4; idx++)
410 RunOne(p20Index,
MakeRuSpec(RuType::RU_52_TONE, idx, p80, p160), width, {p20Index});
413 for (std::size_t idx = 1; idx <= 2; idx++)
415 RunOne(p20Index,
MakeRuSpec(RuType::RU_106_TONE, idx, p80, p160), width, {p20Index});
418 RunOne(p20Index,
MakeRuSpec(RuType::RU_242_TONE, 1, p80, p160), width, {p20Index});
422 for (uint8_t p20Index = 0; p20Index < 8; p20Index++)
424 const MHz_u width{40};
426 const uint8_t p40Index = p20Index / 2;
428 const uint8_t ch20Index0 = p40Index * 2;
429 const uint8_t ch20Index1 = p40Index * 2 + 1;
432 for (std::size_t idx = 1; idx <= 9; idx++)
434 RunOne(p20Index,
MakeRuSpec(RuType::RU_26_TONE, idx, p80, p160), width, {ch20Index0});
437 for (std::size_t idx = 10; idx <= 18; idx++)
439 RunOne(p20Index,
MakeRuSpec(RuType::RU_26_TONE, idx, p80, p160), width, {ch20Index1});
442 for (std::size_t idx = 1; idx <= 4; idx++)
444 RunOne(p20Index,
MakeRuSpec(RuType::RU_52_TONE, idx, p80, p160), width, {ch20Index0});
447 for (std::size_t idx = 5; idx <= 8; idx++)
449 RunOne(p20Index,
MakeRuSpec(RuType::RU_52_TONE, idx, p80, p160), width, {ch20Index1});
452 for (std::size_t idx = 1; idx <= 2; idx++)
454 RunOne(p20Index,
MakeRuSpec(RuType::RU_106_TONE, idx, p80, p160), width, {ch20Index0});
457 for (std::size_t idx = 3; idx <= 4; idx++)
459 RunOne(p20Index,
MakeRuSpec(RuType::RU_106_TONE, idx, p80, p160), width, {ch20Index1});
462 RunOne(p20Index,
MakeRuSpec(RuType::RU_242_TONE, 1, p80, p160), width, {ch20Index0});
464 RunOne(p20Index,
MakeRuSpec(RuType::RU_242_TONE, 2, p80, p160), width, {ch20Index1});
467 MakeRuSpec(RuType::RU_484_TONE, 1, p80, p160),
469 {ch20Index0, ch20Index1});
473 for (uint8_t p20Index = 0; p20Index < 8; p20Index++)
475 const MHz_u width{80};
477 const uint8_t p80Index = p20Index / 4;
479 const uint8_t ch20Index0 = p80Index * 4;
480 const uint8_t ch20Index1 = p80Index * 4 + 1;
481 const uint8_t ch20Index2 = p80Index * 4 + 2;
482 const uint8_t ch20Index3 = p80Index * 4 + 3;
485 for (std::size_t idx = 1; idx <= 9; idx++)
487 RunOne(p20Index,
MakeRuSpec(RuType::RU_26_TONE, idx, p80, p160), width, {ch20Index0});
490 for (std::size_t idx = 10; idx <= 18; idx++)
492 RunOne(p20Index,
MakeRuSpec(RuType::RU_26_TONE, idx, p80, p160), width, {ch20Index1});
498 MakeRuSpec(RuType::RU_26_TONE, 19, p80, p160),
500 {ch20Index1, ch20Index2});
503 for (std::size_t idx = 20; idx <= 28; idx++)
505 RunOne(p20Index,
MakeRuSpec(RuType::RU_26_TONE, idx, p80, p160), width, {ch20Index2});
508 for (std::size_t idx = 29; idx <= 37; idx++)
510 RunOne(p20Index,
MakeRuSpec(RuType::RU_26_TONE, idx, p80, p160), width, {ch20Index3});
513 for (std::size_t idx = 1; idx <= 4; idx++)
515 RunOne(p20Index,
MakeRuSpec(RuType::RU_52_TONE, idx, p80, p160), width, {ch20Index0});
518 for (std::size_t idx = 5; idx <= 8; idx++)
520 RunOne(p20Index,
MakeRuSpec(RuType::RU_52_TONE, idx, p80, p160), width, {ch20Index1});
523 for (std::size_t idx = 9; idx <= 12; idx++)
525 RunOne(p20Index,
MakeRuSpec(RuType::RU_52_TONE, idx, p80, p160), width, {ch20Index2});
528 for (std::size_t idx = 13; idx <= 16; idx++)
530 RunOne(p20Index,
MakeRuSpec(RuType::RU_52_TONE, idx, p80, p160), width, {ch20Index3});
533 for (std::size_t idx = 1; idx <= 2; idx++)
535 RunOne(p20Index,
MakeRuSpec(RuType::RU_106_TONE, idx, p80, p160), width, {ch20Index0});
538 for (std::size_t idx = 3; idx <= 4; idx++)
540 RunOne(p20Index,
MakeRuSpec(RuType::RU_106_TONE, idx, p80, p160), width, {ch20Index1});
543 for (std::size_t idx = 5; idx <= 6; idx++)
545 RunOne(p20Index,
MakeRuSpec(RuType::RU_106_TONE, idx, p80, p160), width, {ch20Index2});
548 for (std::size_t idx = 7; idx <= 8; idx++)
550 RunOne(p20Index,
MakeRuSpec(RuType::RU_106_TONE, idx, p80, p160), width, {ch20Index3});
553 RunOne(p20Index,
MakeRuSpec(RuType::RU_242_TONE, 1, p80, p160), width, {ch20Index0});
555 RunOne(p20Index,
MakeRuSpec(RuType::RU_242_TONE, 2, p80, p160), width, {ch20Index1});
557 RunOne(p20Index,
MakeRuSpec(RuType::RU_242_TONE, 3, p80, p160), width, {ch20Index2});
559 RunOne(p20Index,
MakeRuSpec(RuType::RU_242_TONE, 4, p80, p160), width, {ch20Index3});
562 MakeRuSpec(RuType::RU_484_TONE, 1, p80, p160),
564 {ch20Index0, ch20Index1});
567 MakeRuSpec(RuType::RU_484_TONE, 2, p80, p160),
569 {ch20Index2, ch20Index3});
572 MakeRuSpec(RuType::RU_996_TONE, 1, p80, p160),
574 {ch20Index0, ch20Index1, ch20Index2, ch20Index3});
578 for (uint8_t p20Index = 0; p20Index < 8; p20Index++)
580 const MHz_u width{160};
582 for (
auto primary80 : {
true,
false})
586 const uint8_t p80Index = (primary80 == (p20Index < 4)) ? 0 : 1;
587 const uint8_t ch20Index0 = p80Index * 4;
588 const uint8_t ch20Index1 = p80Index * 4 + 1;
589 const uint8_t ch20Index2 = p80Index * 4 + 2;
590 const uint8_t ch20Index3 = p80Index * 4 + 3;
593 std::size_t startIdx = 1;
594 std::size_t stopIdx = startIdx + 8;
595 for (std::size_t idx = startIdx; idx <= stopIdx; idx++)
598 MakeRuSpec(RuType::RU_26_TONE, idx, primary80, p160),
603 startIdx = stopIdx + 1;
604 stopIdx = startIdx + 8;
605 for (std::size_t idx = startIdx; idx <= stopIdx; idx++)
608 MakeRuSpec(RuType::RU_26_TONE, idx, primary80, p160),
616 MakeRuSpec(RuType::RU_26_TONE, 19, primary80, p160),
618 {ch20Index1, ch20Index2});
621 startIdx = stopIdx + 2;
622 stopIdx = startIdx + 8;
623 for (std::size_t idx = startIdx; idx <= stopIdx; idx++)
626 MakeRuSpec(RuType::RU_26_TONE, idx, primary80, p160),
631 startIdx = stopIdx + 1;
632 stopIdx = startIdx + 8;
633 for (std::size_t idx = startIdx; idx <= stopIdx; idx++)
636 MakeRuSpec(RuType::RU_26_TONE, idx, primary80, p160),
642 stopIdx = startIdx + 3;
643 for (std::size_t idx = startIdx; idx <= stopIdx; idx++)
646 MakeRuSpec(RuType::RU_52_TONE, idx, primary80, p160),
651 startIdx = stopIdx + 1;
652 stopIdx = startIdx + 3;
653 for (std::size_t idx = startIdx; idx <= stopIdx; idx++)
656 MakeRuSpec(RuType::RU_52_TONE, idx, primary80, p160),
661 startIdx = stopIdx + 1;
662 stopIdx = startIdx + 3;
663 for (std::size_t idx = startIdx; idx <= stopIdx; idx++)
666 MakeRuSpec(RuType::RU_52_TONE, idx, primary80, p160),
671 startIdx = stopIdx + 1;
672 stopIdx = startIdx + 3;
673 for (std::size_t idx = startIdx; idx <= stopIdx; idx++)
676 MakeRuSpec(RuType::RU_52_TONE, idx, primary80, p160),
682 stopIdx = startIdx + 1;
683 for (std::size_t idx = startIdx; idx <= stopIdx; idx++)
686 MakeRuSpec(RuType::RU_106_TONE, idx, primary80, p160),
691 startIdx = stopIdx + 1;
692 stopIdx = startIdx + 1;
693 for (std::size_t idx = startIdx; idx <= stopIdx; idx++)
696 MakeRuSpec(RuType::RU_106_TONE, idx, primary80, p160),
701 startIdx = stopIdx + 1;
702 stopIdx = startIdx + 1;
703 for (std::size_t idx = startIdx; idx <= stopIdx; idx++)
706 MakeRuSpec(RuType::RU_106_TONE, idx, primary80, p160),
711 startIdx = stopIdx + 1;
712 stopIdx = startIdx + 1;
713 for (std::size_t idx = startIdx; idx <= stopIdx; idx++)
716 MakeRuSpec(RuType::RU_106_TONE, idx, primary80, p160),
723 MakeRuSpec(RuType::RU_242_TONE, idx++, primary80, p160),
728 MakeRuSpec(RuType::RU_242_TONE, idx++, primary80, p160),
733 MakeRuSpec(RuType::RU_242_TONE, idx++, primary80, p160),
738 MakeRuSpec(RuType::RU_242_TONE, idx, primary80, p160),
744 MakeRuSpec(RuType::RU_484_TONE, idx++, primary80, p160),
746 {ch20Index0, ch20Index1});
749 MakeRuSpec(RuType::RU_484_TONE, idx, primary80, p160),
751 {ch20Index2, ch20Index3});
755 MakeRuSpec(RuType::RU_996_TONE, idx, primary80, p160),
757 {ch20Index0, ch20Index1, ch20Index2, ch20Index3});
763 {0, 1, 2, 3, 4, 5, 6, 7});
1007 const auto p80{
true};
1008 const auto s80{
false};
1015 const MHz_u width{20};
1018 RunOne(RuType::RU_26_TONE,
1020 {
MakeRuSpec(RuType::RU_26_TONE, 1, p80, p160),
1021 MakeRuSpec(RuType::RU_26_TONE, 2, p80, p160),
1022 MakeRuSpec(RuType::RU_26_TONE, 3, p80, p160),
1023 MakeRuSpec(RuType::RU_26_TONE, 4, p80, p160),
1024 MakeRuSpec(RuType::RU_26_TONE, 5, p80, p160),
1025 MakeRuSpec(RuType::RU_26_TONE, 6, p80, p160),
1026 MakeRuSpec(RuType::RU_26_TONE, 7, p80, p160),
1027 MakeRuSpec(RuType::RU_26_TONE, 8, p80, p160),
1028 MakeRuSpec(RuType::RU_26_TONE, 9, p80, p160)});
1031 RunOne(RuType::RU_52_TONE,
1033 {
MakeRuSpec(RuType::RU_52_TONE, 1, p80, p160),
1034 MakeRuSpec(RuType::RU_52_TONE, 2, p80, p160),
1035 MakeRuSpec(RuType::RU_52_TONE, 3, p80, p160),
1036 MakeRuSpec(RuType::RU_52_TONE, 4, p80, p160)});
1039 RunOne(RuType::RU_106_TONE,
1041 {
MakeRuSpec(RuType::RU_106_TONE, 1, p80, p160),
1042 MakeRuSpec(RuType::RU_106_TONE, 2, p80, p160)});
1045 RunOne(RuType::RU_242_TONE, width, {
MakeRuSpec(RuType::RU_242_TONE, 1, p80, p160)});
1048 RunOne(RuType::RU_484_TONE, width, {});
1051 RunOne(RuType::RU_996_TONE, width, {});
1054 RunOne(RuType::RU_2x996_TONE, width, {});
1057 RunOne(RuType::RU_4x996_TONE, width, {});
1064 const MHz_u width{40};
1067 RunOne(RuType::RU_26_TONE,
1069 {
MakeRuSpec(RuType::RU_26_TONE, 1, p80, p160),
1070 MakeRuSpec(RuType::RU_26_TONE, 2, p80, p160),
1071 MakeRuSpec(RuType::RU_26_TONE, 3, p80, p160),
1072 MakeRuSpec(RuType::RU_26_TONE, 4, p80, p160),
1073 MakeRuSpec(RuType::RU_26_TONE, 5, p80, p160),
1074 MakeRuSpec(RuType::RU_26_TONE, 6, p80, p160),
1075 MakeRuSpec(RuType::RU_26_TONE, 7, p80, p160),
1076 MakeRuSpec(RuType::RU_26_TONE, 8, p80, p160),
1077 MakeRuSpec(RuType::RU_26_TONE, 9, p80, p160),
1078 MakeRuSpec(RuType::RU_26_TONE, 10, p80, p160),
1079 MakeRuSpec(RuType::RU_26_TONE, 11, p80, p160),
1080 MakeRuSpec(RuType::RU_26_TONE, 12, p80, p160),
1081 MakeRuSpec(RuType::RU_26_TONE, 13, p80, p160),
1082 MakeRuSpec(RuType::RU_26_TONE, 14, p80, p160),
1083 MakeRuSpec(RuType::RU_26_TONE, 15, p80, p160),
1084 MakeRuSpec(RuType::RU_26_TONE, 16, p80, p160),
1085 MakeRuSpec(RuType::RU_26_TONE, 17, p80, p160),
1086 MakeRuSpec(RuType::RU_26_TONE, 18, p80, p160)});
1089 RunOne(RuType::RU_52_TONE,
1091 {
MakeRuSpec(RuType::RU_52_TONE, 1, p80, p160),
1092 MakeRuSpec(RuType::RU_52_TONE, 2, p80, p160),
1093 MakeRuSpec(RuType::RU_52_TONE, 3, p80, p160),
1094 MakeRuSpec(RuType::RU_52_TONE, 4, p80, p160),
1095 MakeRuSpec(RuType::RU_52_TONE, 5, p80, p160),
1096 MakeRuSpec(RuType::RU_52_TONE, 6, p80, p160),
1097 MakeRuSpec(RuType::RU_52_TONE, 7, p80, p160),
1098 MakeRuSpec(RuType::RU_52_TONE, 8, p80, p160)});
1101 RunOne(RuType::RU_106_TONE,
1103 {
MakeRuSpec(RuType::RU_106_TONE, 1, p80, p160),
1104 MakeRuSpec(RuType::RU_106_TONE, 2, p80, p160),
1105 MakeRuSpec(RuType::RU_106_TONE, 3, p80, p160),
1106 MakeRuSpec(RuType::RU_106_TONE, 4, p80, p160)});
1109 RunOne(RuType::RU_242_TONE,
1111 {
MakeRuSpec(RuType::RU_242_TONE, 1, p80, p160),
1112 MakeRuSpec(RuType::RU_242_TONE, 2, p80, p160)});
1115 RunOne(RuType::RU_484_TONE, width, {
MakeRuSpec(RuType::RU_484_TONE, 1, p80, p160)});
1118 RunOne(RuType::RU_996_TONE, width, {});
1121 RunOne(RuType::RU_2x996_TONE, width, {});
1124 RunOne(RuType::RU_4x996_TONE, width, {});
1131 const MHz_u width{80};
1134 std::vector<WifiRu::RuSpec> expectedRus{
MakeRuSpec(RuType::RU_26_TONE, 1, p80, p160),
1135 MakeRuSpec(RuType::RU_26_TONE, 2, p80, p160),
1136 MakeRuSpec(RuType::RU_26_TONE, 3, p80, p160),
1137 MakeRuSpec(RuType::RU_26_TONE, 4, p80, p160),
1138 MakeRuSpec(RuType::RU_26_TONE, 5, p80, p160),
1139 MakeRuSpec(RuType::RU_26_TONE, 6, p80, p160),
1140 MakeRuSpec(RuType::RU_26_TONE, 7, p80, p160),
1141 MakeRuSpec(RuType::RU_26_TONE, 8, p80, p160),
1142 MakeRuSpec(RuType::RU_26_TONE, 9, p80, p160),
1143 MakeRuSpec(RuType::RU_26_TONE, 10, p80, p160),
1144 MakeRuSpec(RuType::RU_26_TONE, 11, p80, p160),
1145 MakeRuSpec(RuType::RU_26_TONE, 12, p80, p160),
1146 MakeRuSpec(RuType::RU_26_TONE, 13, p80, p160),
1147 MakeRuSpec(RuType::RU_26_TONE, 14, p80, p160),
1148 MakeRuSpec(RuType::RU_26_TONE, 15, p80, p160),
1149 MakeRuSpec(RuType::RU_26_TONE, 16, p80, p160),
1150 MakeRuSpec(RuType::RU_26_TONE, 17, p80, p160),
1151 MakeRuSpec(RuType::RU_26_TONE, 18, p80, p160),
1152 MakeRuSpec(RuType::RU_26_TONE, 20, p80, p160),
1153 MakeRuSpec(RuType::RU_26_TONE, 21, p80, p160),
1154 MakeRuSpec(RuType::RU_26_TONE, 22, p80, p160),
1155 MakeRuSpec(RuType::RU_26_TONE, 23, p80, p160),
1156 MakeRuSpec(RuType::RU_26_TONE, 24, p80, p160),
1157 MakeRuSpec(RuType::RU_26_TONE, 25, p80, p160),
1158 MakeRuSpec(RuType::RU_26_TONE, 26, p80, p160),
1159 MakeRuSpec(RuType::RU_26_TONE, 27, p80, p160),
1160 MakeRuSpec(RuType::RU_26_TONE, 28, p80, p160),
1161 MakeRuSpec(RuType::RU_26_TONE, 29, p80, p160),
1162 MakeRuSpec(RuType::RU_26_TONE, 30, p80, p160),
1163 MakeRuSpec(RuType::RU_26_TONE, 31, p80, p160),
1164 MakeRuSpec(RuType::RU_26_TONE, 32, p80, p160),
1165 MakeRuSpec(RuType::RU_26_TONE, 33, p80, p160),
1166 MakeRuSpec(RuType::RU_26_TONE, 34, p80, p160),
1167 MakeRuSpec(RuType::RU_26_TONE, 35, p80, p160),
1168 MakeRuSpec(RuType::RU_26_TONE, 36, p80, p160),
1169 MakeRuSpec(RuType::RU_26_TONE, 37, p80, p160)};
1173 const auto it = std::next(expectedRus.cbegin(), 18);
1174 expectedRus.insert(it,
MakeRuSpec(RuType::RU_26_TONE, 19, p80, p160));
1176 RunOne(RuType::RU_26_TONE, width, expectedRus);
1179 RunOne(RuType::RU_52_TONE,
1181 {
MakeRuSpec(RuType::RU_52_TONE, 1, p80, p160),
1182 MakeRuSpec(RuType::RU_52_TONE, 2, p80, p160),
1183 MakeRuSpec(RuType::RU_52_TONE, 3, p80, p160),
1184 MakeRuSpec(RuType::RU_52_TONE, 4, p80, p160),
1185 MakeRuSpec(RuType::RU_52_TONE, 5, p80, p160),
1186 MakeRuSpec(RuType::RU_52_TONE, 6, p80, p160),
1187 MakeRuSpec(RuType::RU_52_TONE, 7, p80, p160),
1188 MakeRuSpec(RuType::RU_52_TONE, 8, p80, p160),
1189 MakeRuSpec(RuType::RU_52_TONE, 9, p80, p160),
1190 MakeRuSpec(RuType::RU_52_TONE, 10, p80, p160),
1191 MakeRuSpec(RuType::RU_52_TONE, 11, p80, p160),
1192 MakeRuSpec(RuType::RU_52_TONE, 12, p80, p160),
1193 MakeRuSpec(RuType::RU_52_TONE, 13, p80, p160),
1194 MakeRuSpec(RuType::RU_52_TONE, 14, p80, p160),
1195 MakeRuSpec(RuType::RU_52_TONE, 15, p80, p160),
1196 MakeRuSpec(RuType::RU_52_TONE, 16, p80, p160)});
1199 RunOne(RuType::RU_106_TONE,
1201 {
MakeRuSpec(RuType::RU_106_TONE, 1, p80, p160),
1202 MakeRuSpec(RuType::RU_106_TONE, 2, p80, p160),
1203 MakeRuSpec(RuType::RU_106_TONE, 3, p80, p160),
1204 MakeRuSpec(RuType::RU_106_TONE, 4, p80, p160),
1205 MakeRuSpec(RuType::RU_106_TONE, 5, p80, p160),
1206 MakeRuSpec(RuType::RU_106_TONE, 6, p80, p160),
1207 MakeRuSpec(RuType::RU_106_TONE, 7, p80, p160),
1208 MakeRuSpec(RuType::RU_106_TONE, 8, p80, p160)});
1211 RunOne(RuType::RU_242_TONE,
1213 {
MakeRuSpec(RuType::RU_242_TONE, 1, p80, p160),
1214 MakeRuSpec(RuType::RU_242_TONE, 2, p80, p160),
1215 MakeRuSpec(RuType::RU_242_TONE, 3, p80, p160),
1216 MakeRuSpec(RuType::RU_242_TONE, 4, p80, p160)});
1219 RunOne(RuType::RU_484_TONE,
1221 {
MakeRuSpec(RuType::RU_484_TONE, 1, p80, p160),
1222 MakeRuSpec(RuType::RU_484_TONE, 2, p80, p160)});
1225 RunOne(RuType::RU_996_TONE, width, {
MakeRuSpec(RuType::RU_996_TONE, 1, p80, p160)});
1228 RunOne(RuType::RU_2x996_TONE, width, {});
1231 RunOne(RuType::RU_4x996_TONE, width, {});
1238 const MHz_u width{160};
1241 std::vector<WifiRu::RuSpec> expectedRus{
MakeRuSpec(RuType::RU_26_TONE, 1, p80, p160),
1242 MakeRuSpec(RuType::RU_26_TONE, 2, p80, p160),
1243 MakeRuSpec(RuType::RU_26_TONE, 3, p80, p160),
1244 MakeRuSpec(RuType::RU_26_TONE, 4, p80, p160),
1245 MakeRuSpec(RuType::RU_26_TONE, 5, p80, p160),
1246 MakeRuSpec(RuType::RU_26_TONE, 6, p80, p160),
1247 MakeRuSpec(RuType::RU_26_TONE, 7, p80, p160),
1248 MakeRuSpec(RuType::RU_26_TONE, 8, p80, p160),
1249 MakeRuSpec(RuType::RU_26_TONE, 9, p80, p160),
1250 MakeRuSpec(RuType::RU_26_TONE, 10, p80, p160),
1251 MakeRuSpec(RuType::RU_26_TONE, 11, p80, p160),
1252 MakeRuSpec(RuType::RU_26_TONE, 12, p80, p160),
1253 MakeRuSpec(RuType::RU_26_TONE, 13, p80, p160),
1254 MakeRuSpec(RuType::RU_26_TONE, 14, p80, p160),
1255 MakeRuSpec(RuType::RU_26_TONE, 15, p80, p160),
1256 MakeRuSpec(RuType::RU_26_TONE, 16, p80, p160),
1257 MakeRuSpec(RuType::RU_26_TONE, 17, p80, p160),
1258 MakeRuSpec(RuType::RU_26_TONE, 18, p80, p160),
1259 MakeRuSpec(RuType::RU_26_TONE, 20, p80, p160),
1260 MakeRuSpec(RuType::RU_26_TONE, 21, p80, p160),
1261 MakeRuSpec(RuType::RU_26_TONE, 22, p80, p160),
1262 MakeRuSpec(RuType::RU_26_TONE, 23, p80, p160),
1263 MakeRuSpec(RuType::RU_26_TONE, 24, p80, p160),
1264 MakeRuSpec(RuType::RU_26_TONE, 25, p80, p160),
1265 MakeRuSpec(RuType::RU_26_TONE, 26, p80, p160),
1266 MakeRuSpec(RuType::RU_26_TONE, 27, p80, p160),
1267 MakeRuSpec(RuType::RU_26_TONE, 28, p80, p160),
1268 MakeRuSpec(RuType::RU_26_TONE, 29, p80, p160),
1269 MakeRuSpec(RuType::RU_26_TONE, 30, p80, p160),
1270 MakeRuSpec(RuType::RU_26_TONE, 31, p80, p160),
1271 MakeRuSpec(RuType::RU_26_TONE, 32, p80, p160),
1272 MakeRuSpec(RuType::RU_26_TONE, 33, p80, p160),
1273 MakeRuSpec(RuType::RU_26_TONE, 34, p80, p160),
1274 MakeRuSpec(RuType::RU_26_TONE, 35, p80, p160),
1275 MakeRuSpec(RuType::RU_26_TONE, 36, p80, p160),
1276 MakeRuSpec(RuType::RU_26_TONE, 37, p80, p160),
1277 MakeRuSpec(RuType::RU_26_TONE, 1, s80, p160),
1278 MakeRuSpec(RuType::RU_26_TONE, 2, s80, p160),
1279 MakeRuSpec(RuType::RU_26_TONE, 3, s80, p160),
1280 MakeRuSpec(RuType::RU_26_TONE, 4, s80, p160),
1281 MakeRuSpec(RuType::RU_26_TONE, 5, s80, p160),
1282 MakeRuSpec(RuType::RU_26_TONE, 6, s80, p160),
1283 MakeRuSpec(RuType::RU_26_TONE, 7, s80, p160),
1284 MakeRuSpec(RuType::RU_26_TONE, 8, s80, p160),
1285 MakeRuSpec(RuType::RU_26_TONE, 9, s80, p160),
1286 MakeRuSpec(RuType::RU_26_TONE, 10, s80, p160),
1287 MakeRuSpec(RuType::RU_26_TONE, 11, s80, p160),
1288 MakeRuSpec(RuType::RU_26_TONE, 12, s80, p160),
1289 MakeRuSpec(RuType::RU_26_TONE, 13, s80, p160),
1290 MakeRuSpec(RuType::RU_26_TONE, 14, s80, p160),
1291 MakeRuSpec(RuType::RU_26_TONE, 15, s80, p160),
1292 MakeRuSpec(RuType::RU_26_TONE, 16, s80, p160),
1293 MakeRuSpec(RuType::RU_26_TONE, 17, s80, p160),
1294 MakeRuSpec(RuType::RU_26_TONE, 18, s80, p160),
1295 MakeRuSpec(RuType::RU_26_TONE, 20, s80, p160),
1296 MakeRuSpec(RuType::RU_26_TONE, 21, s80, p160),
1297 MakeRuSpec(RuType::RU_26_TONE, 22, s80, p160),
1298 MakeRuSpec(RuType::RU_26_TONE, 23, s80, p160),
1299 MakeRuSpec(RuType::RU_26_TONE, 24, s80, p160),
1300 MakeRuSpec(RuType::RU_26_TONE, 25, s80, p160),
1301 MakeRuSpec(RuType::RU_26_TONE, 26, s80, p160),
1302 MakeRuSpec(RuType::RU_26_TONE, 27, s80, p160),
1303 MakeRuSpec(RuType::RU_26_TONE, 28, s80, p160),
1304 MakeRuSpec(RuType::RU_26_TONE, 29, s80, p160),
1305 MakeRuSpec(RuType::RU_26_TONE, 30, s80, p160),
1306 MakeRuSpec(RuType::RU_26_TONE, 31, s80, p160),
1307 MakeRuSpec(RuType::RU_26_TONE, 32, s80, p160),
1308 MakeRuSpec(RuType::RU_26_TONE, 33, s80, p160),
1309 MakeRuSpec(RuType::RU_26_TONE, 34, s80, p160),
1310 MakeRuSpec(RuType::RU_26_TONE, 35, s80, p160),
1311 MakeRuSpec(RuType::RU_26_TONE, 36, s80, p160),
1312 MakeRuSpec(RuType::RU_26_TONE, 37, s80, p160)};
1316 auto it = std::next(expectedRus.cbegin(), 18);
1317 expectedRus.insert(it,
MakeRuSpec(RuType::RU_26_TONE, 19, p80));
1318 it = std::next(expectedRus.cbegin(), 55);
1319 expectedRus.insert(it,
MakeRuSpec(RuType::RU_26_TONE, 19, s80));
1321 RunOne(RuType::RU_26_TONE, width, expectedRus);
1324 RunOne(RuType::RU_52_TONE, width, {
MakeRuSpec(RuType::RU_52_TONE, 1, p80, p160),
1325 MakeRuSpec(RuType::RU_52_TONE, 2, p80, p160),
1326 MakeRuSpec(RuType::RU_52_TONE, 3, p80, p160),
1327 MakeRuSpec(RuType::RU_52_TONE, 4, p80, p160),
1328 MakeRuSpec(RuType::RU_52_TONE, 5, p80, p160),
1329 MakeRuSpec(RuType::RU_52_TONE, 6, p80, p160),
1330 MakeRuSpec(RuType::RU_52_TONE, 7, p80, p160),
1331 MakeRuSpec(RuType::RU_52_TONE, 8, p80, p160),
1332 MakeRuSpec(RuType::RU_52_TONE, 9, p80, p160),
1333 MakeRuSpec(RuType::RU_52_TONE, 10, p80, p160),
1334 MakeRuSpec(RuType::RU_52_TONE, 11, p80, p160),
1335 MakeRuSpec(RuType::RU_52_TONE, 12, p80, p160),
1336 MakeRuSpec(RuType::RU_52_TONE, 13, p80, p160),
1337 MakeRuSpec(RuType::RU_52_TONE, 14, p80, p160),
1338 MakeRuSpec(RuType::RU_52_TONE, 15, p80, p160),
1339 MakeRuSpec(RuType::RU_52_TONE, 16, p80, p160),
1340 MakeRuSpec(RuType::RU_52_TONE, 1, s80, p160),
1341 MakeRuSpec(RuType::RU_52_TONE, 2, s80, p160),
1342 MakeRuSpec(RuType::RU_52_TONE, 3, s80, p160),
1343 MakeRuSpec(RuType::RU_52_TONE, 4, s80, p160),
1344 MakeRuSpec(RuType::RU_52_TONE, 5, s80, p160),
1345 MakeRuSpec(RuType::RU_52_TONE, 6, s80, p160),
1346 MakeRuSpec(RuType::RU_52_TONE, 7, s80, p160),
1347 MakeRuSpec(RuType::RU_52_TONE, 8, s80, p160),
1348 MakeRuSpec(RuType::RU_52_TONE, 9, s80, p160),
1349 MakeRuSpec(RuType::RU_52_TONE, 10, s80, p160),
1350 MakeRuSpec(RuType::RU_52_TONE, 11, s80, p160),
1351 MakeRuSpec(RuType::RU_52_TONE, 12, s80, p160),
1352 MakeRuSpec(RuType::RU_52_TONE, 13, s80, p160),
1353 MakeRuSpec(RuType::RU_52_TONE, 14, s80, p160),
1354 MakeRuSpec(RuType::RU_52_TONE, 15, s80, p160),
1355 MakeRuSpec(RuType::RU_52_TONE, 16, s80, p160)});
1358 RunOne(RuType::RU_106_TONE,
1360 {
MakeRuSpec(RuType::RU_106_TONE, 1, p80, p160),
1361 MakeRuSpec(RuType::RU_106_TONE, 2, p80, p160),
1362 MakeRuSpec(RuType::RU_106_TONE, 3, p80, p160),
1363 MakeRuSpec(RuType::RU_106_TONE, 4, p80, p160),
1364 MakeRuSpec(RuType::RU_106_TONE, 5, p80, p160),
1365 MakeRuSpec(RuType::RU_106_TONE, 6, p80, p160),
1366 MakeRuSpec(RuType::RU_106_TONE, 7, p80, p160),
1367 MakeRuSpec(RuType::RU_106_TONE, 8, p80, p160),
1368 MakeRuSpec(RuType::RU_106_TONE, 1, s80, p160),
1369 MakeRuSpec(RuType::RU_106_TONE, 2, s80, p160),
1370 MakeRuSpec(RuType::RU_106_TONE, 3, s80, p160),
1371 MakeRuSpec(RuType::RU_106_TONE, 4, s80, p160),
1372 MakeRuSpec(RuType::RU_106_TONE, 5, s80, p160),
1373 MakeRuSpec(RuType::RU_106_TONE, 6, s80, p160),
1374 MakeRuSpec(RuType::RU_106_TONE, 7, s80, p160),
1375 MakeRuSpec(RuType::RU_106_TONE, 8, s80, p160)});
1378 RunOne(RuType::RU_242_TONE,
1380 {
MakeRuSpec(RuType::RU_242_TONE, 1, p80, p160),
1381 MakeRuSpec(RuType::RU_242_TONE, 2, p80, p160),
1382 MakeRuSpec(RuType::RU_242_TONE, 3, p80, p160),
1383 MakeRuSpec(RuType::RU_242_TONE, 4, p80, p160),
1384 MakeRuSpec(RuType::RU_242_TONE, 1, s80, p160),
1385 MakeRuSpec(RuType::RU_242_TONE, 2, s80, p160),
1386 MakeRuSpec(RuType::RU_242_TONE, 3, s80, p160),
1387 MakeRuSpec(RuType::RU_242_TONE, 4, s80, p160)});
1390 RunOne(RuType::RU_484_TONE,
1392 {
MakeRuSpec(RuType::RU_484_TONE, 1, p80, p160),
1393 MakeRuSpec(RuType::RU_484_TONE, 2, p80, p160),
1394 MakeRuSpec(RuType::RU_484_TONE, 1, s80, p160),
1395 MakeRuSpec(RuType::RU_484_TONE, 2, s80, p160)});
1398 RunOne(RuType::RU_996_TONE,
1400 {
MakeRuSpec(RuType::RU_996_TONE, 1, p80, p160),
1401 MakeRuSpec(RuType::RU_996_TONE, 1, s80, p160)});
1404 RunOne(RuType::RU_2x996_TONE, width, {
MakeRuSpec(RuType::RU_2x996_TONE, 1, p80, p160)});
1407 RunOne(RuType::RU_4x996_TONE, width, {});
1700 const MHz_u width{20};
1704 RunOne(width, 1, 1, 0, RuType::RU_242_TONE);
1708 RunOne(width, 2, 2, 1, RuType::RU_106_TONE);
1712 RunOne(width, 3, 2, 1, RuType::RU_106_TONE);
1716 RunOne(width, 4, 4, 1, RuType::RU_52_TONE);
1720 RunOne(width, 5, 4, 1, RuType::RU_52_TONE);
1724 RunOne(width, 6, 4, 1, RuType::RU_52_TONE);
1728 RunOne(width, 7, 4, 1, RuType::RU_52_TONE);
1732 RunOne(width, 8, 4, 1, RuType::RU_52_TONE);
1736 RunOne(width, 9, 9, 0, RuType::RU_26_TONE);
1739 RunOne(width, 10, 9, 0, RuType::RU_26_TONE);
1746 const MHz_u width{40};
1750 RunOne(width, 1, 1, 0, RuType::RU_484_TONE);
1754 RunOne(width, 2, 2, 0, RuType::RU_242_TONE);
1758 RunOne(width, 3, 2, 0, RuType::RU_242_TONE);
1762 RunOne(width, 4, 4, 2, RuType::RU_106_TONE);
1766 RunOne(width, 5, 4, 2, RuType::RU_106_TONE);
1770 RunOne(width, 6, 4, 2, RuType::RU_106_TONE);
1774 RunOne(width, 7, 4, 2, RuType::RU_106_TONE);
1778 RunOne(width, 8, 8, 2, RuType::RU_52_TONE);
1782 RunOne(width, 9, 8, 2, RuType::RU_52_TONE);
1786 RunOne(width, 10, 8, 2, RuType::RU_52_TONE);
1790 RunOne(width, 11, 8, 2, RuType::RU_52_TONE);
1794 RunOne(width, 12, 8, 2, RuType::RU_52_TONE);
1798 RunOne(width, 13, 8, 2, RuType::RU_52_TONE);
1802 RunOne(width, 14, 8, 2, RuType::RU_52_TONE);
1806 RunOne(width, 15, 8, 2, RuType::RU_52_TONE);
1810 RunOne(width, 16, 8, 2, RuType::RU_52_TONE);
1814 RunOne(width, 17, 8, 2, RuType::RU_52_TONE);
1818 RunOne(width, 18, 18, 0, RuType::RU_26_TONE);
1822 RunOne(width, 19, 18, 0, RuType::RU_26_TONE);
1829 const MHz_u width{80};
1833 RunOne(width, 1, 1, 0, RuType::RU_996_TONE);
1997 const MHz_u width{160};
2001 RunOne(width, 1, 1, 0, RuType::RU_2x996_TONE);
2005 RunOne(width, 2, 2, 0, RuType::RU_996_TONE);
2009 RunOne(width, 3, 2, 0, RuType::RU_996_TONE);
2383 const std::map<BwTonesPair, std::vector<SubcarrierGroup>> expectedHeRuSubcarrierGroups = {
2384 {{
MHz_u{20}, RuType::RU_26_TONE},
2389 {{-16, -4}, {4, 16}},
2394 {{
MHz_u{20}, RuType::RU_52_TONE},
2399 {{
MHz_u{20}, RuType::RU_106_TONE},
2402 {{
MHz_u{20}, RuType::RU_242_TONE}, { {{-122, -2}, {2, 122}}}},
2403 {{
MHz_u{40}, RuType::RU_26_TONE},
2422 {{
MHz_u{40}, RuType::RU_52_TONE},
2431 {{
MHz_u{40}, RuType::RU_106_TONE},
2436 {{
MHz_u{40}, RuType::RU_242_TONE},
2439 {{
MHz_u{40}, RuType::RU_484_TONE}, { {{-244, -3}, {3, 244}}}},
2440 {{
MHz_u{80}, RuType::RU_26_TONE},
2459 {{-16, -4}, {4, 16}},
2478 {{
MHz_u{80}, RuType::RU_52_TONE},
2495 {{
MHz_u{80}, RuType::RU_106_TONE},
2504 {{
MHz_u{80}, RuType::RU_242_TONE},
2509 {{
MHz_u{80}, RuType::RU_484_TONE},
2512 {{
MHz_u{80}, RuType::RU_996_TONE}, { {{-500, -3}, {3, 500}}}},
2513 {{
MHz_u{160}, RuType::RU_26_TONE},
2532 {{{-528, -516}, {-508, -496}}},
2569 {{496, 508}, {516, 528}},
2588 {{
MHz_u{160}, RuType::RU_52_TONE},
2621 {{
MHz_u{160}, RuType::RU_106_TONE},
2638 {{
MHz_u{160}, RuType::RU_242_TONE},
2647 {{
MHz_u{160}, RuType::RU_484_TONE},
2652 {{
MHz_u{160}, RuType::RU_996_TONE},
2653 { {{-1012, -515}, {-509, -12}},
2654 {{12, 509}, {515, 1012}}}},
2655 {{
MHz_u{160}, RuType::RU_2x996_TONE},
2656 { {{-1012, -515}, {-509, -12}, {12, 509}, {515, 1012}}}},
2659 const std::map<BwTonesPair, std::vector<SubcarrierGroup>> expectedEhtRuSubcarrierGroups = {
2660 {{
MHz_u{20}, RuType::RU_26_TONE},
2665 {{-16, -4}, {4, 16}},
2670 {{
MHz_u{20}, RuType::RU_52_TONE},
2675 {{
MHz_u{20}, RuType::RU_106_TONE},
2678 {{
MHz_u{20}, RuType::RU_242_TONE}, { {{-122, -2}, {2, 122}}}},
2679 {{
MHz_u{40}, RuType::RU_26_TONE},
2698 {{
MHz_u{40}, RuType::RU_52_TONE},
2707 {{
MHz_u{40}, RuType::RU_106_TONE},
2712 {{
MHz_u{40}, RuType::RU_242_TONE},
2715 {{
MHz_u{40}, RuType::RU_484_TONE}, { {{-244, -3}, {3, 244}}}},
2716 {{
MHz_u{80}, RuType::RU_26_TONE},
2754 {{
MHz_u{80}, RuType::RU_52_TONE},
2771 {{
MHz_u{80}, RuType::RU_106_TONE},
2780 {{
MHz_u{80}, RuType::RU_242_TONE},
2785 {{
MHz_u{80}, RuType::RU_484_TONE},
2786 { {{-500, -259}, {-253, -12}},
2787 {{12, 253}, {259, 500}}}},
2788 {{
MHz_u{80}, RuType::RU_996_TONE}, { {{-500, -3}, {3, 500}}}},
2789 {{
MHz_u{160}, RuType::RU_26_TONE},
2864 {{
MHz_u{160}, RuType::RU_52_TONE},
2897 {{
MHz_u{160}, RuType::RU_106_TONE},
2914 {{
MHz_u{160}, RuType::RU_242_TONE},
2923 {{
MHz_u{160}, RuType::RU_484_TONE},
2924 { {{-1012, -771}, {-765, -524}},
2925 {{-500, -259}, {-253, -12}},
2926 {{12, 253}, {259, 500}},
2927 {{524, 765}, {771, 1012}}}},
2928 {{
MHz_u{160}, RuType::RU_996_TONE},
2929 { {{-1012, -515}, {-509, -12}},
2930 {{12, 509}, {515, 1012}}}},
2931 {{
MHz_u{160}, RuType::RU_2x996_TONE},
2932 { {{-1012, -515}, {-509, -12}, {12, 509}, {515, 1012}}}},
2933 {{
MHz_u{320}, RuType::RU_26_TONE},
3082 {{
MHz_u{320}, RuType::RU_52_TONE},
3147 {{
MHz_u{320}, RuType::RU_106_TONE},
3180 {{
MHz_u{320}, RuType::RU_242_TONE},
3197 {{
MHz_u{320}, RuType::RU_484_TONE},
3198 { {{-2036, -1795}, {-1789, -1548}},
3199 {{-1524, -1283}, {-1277, -1036}},
3200 {{-1012, -771}, {-765, -524}},
3201 {{-500, -259}, {-253, -12}},
3202 {{12, 253}, {259, 500}},
3203 {{524, 765}, {771, 1012}},
3204 {{1036, 1277}, {1283, 1524}},
3205 {{1548, 1789}, {1795, 2036}}}},
3206 {{
MHz_u{320}, RuType::RU_996_TONE},
3207 { {{-2036, -1539}, {-1533, -1036}},
3208 {{-1012, -515}, {-509, -12}},
3209 {{12, 509}, {515, 1012}},
3210 {{1036, 1533}, {1539, 2036}}}},
3211 {{
MHz_u{320}, RuType::RU_2x996_TONE},
3212 { {{-2036, -1539}, {-1533, -1036}, {-1012, -515}, {-509, -12}},
3213 {{12, 509}, {515, 1012}, {1036, 1533}, {1539, 2036}}}},
3214 {{
MHz_u{320}, RuType::RU_4x996_TONE},
3226 ? expectedHeRuSubcarrierGroups
3227 : expectedEhtRuSubcarrierGroups;
3228 for (
const auto& [bwTonesPair, ruSubcarrierGroups] : expectedRuSubcarrierGroups)
3230 std::size_t phyIndex = 1;
3231 for (
const auto& subcarrierGroups : ruSubcarrierGroups)
3233 RunOne(bwTonesPair.first, bwTonesPair.second, phyIndex++, subcarrierGroups);
3330 const auto p160{
true};
3331 const auto s160{
false};
3332 const auto p80OrLower80{
true};
3333 const auto s80OrHigher80{
false};
3342 for (uint8_t p20Index = 0; p20Index < p20IdxMax; p20Index++)
3344 std::size_t numRusPer20MHz = 9;
3345 std::size_t startPhyIdx = p20Index * numRusPer20MHz;
3348 for (std::size_t phyIdx = startPhyIdx; phyIdx <= startPhyIdx + numRusPer20MHz; phyIdx++)
3350 RunOne(p20Index, bw, RuType::RU_26_TONE, phyIdx, p160, p80OrLower80, phyIdx);
3354 startPhyIdx = p20Index * numRusPer20MHz;
3357 for (std::size_t phyIdx = startPhyIdx; phyIdx <= startPhyIdx + numRusPer20MHz; phyIdx++)
3359 RunOne(p20Index, bw, RuType::RU_52_TONE, phyIdx, p160, p80OrLower80, phyIdx);
3363 startPhyIdx = p20Index * numRusPer20MHz;
3366 for (std::size_t phyIdx = startPhyIdx; phyIdx <= startPhyIdx + numRusPer20MHz; phyIdx++)
3368 RunOne(p20Index, bw, RuType::RU_106_TONE, phyIdx, p160, p80OrLower80, phyIdx);
3372 startPhyIdx = p20Index * numRusPer20MHz;
3375 for (std::size_t phyIdx = startPhyIdx; phyIdx <= startPhyIdx + numRusPer20MHz; phyIdx++)
3377 RunOne(p20Index, bw, RuType::RU_242_TONE, phyIdx, p160, p80OrLower80, phyIdx);
3386 for (uint8_t p20Index = 0; p20Index < p20IdxMax; p20Index++)
3388 std::size_t numRusPer40MHz = 18;
3389 std::size_t startPhyIdx = (p20Index / 2) * numRusPer40MHz;
3392 for (std::size_t phyIdx = startPhyIdx; phyIdx <= startPhyIdx + numRusPer40MHz; phyIdx++)
3394 RunOne(p20Index, bw, RuType::RU_26_TONE, phyIdx, p160, p80OrLower80, phyIdx);
3398 startPhyIdx = (p20Index / 2) * numRusPer40MHz;
3401 for (std::size_t phyIdx = startPhyIdx; phyIdx <= startPhyIdx + numRusPer40MHz; phyIdx++)
3403 RunOne(p20Index, bw, RuType::RU_52_TONE, phyIdx, p160, p80OrLower80, phyIdx);
3407 startPhyIdx = (p20Index / 2) * numRusPer40MHz;
3410 for (std::size_t phyIdx = startPhyIdx; phyIdx <= startPhyIdx + numRusPer40MHz; phyIdx++)
3412 RunOne(p20Index, bw, RuType::RU_106_TONE, phyIdx, p160, p80OrLower80, phyIdx);
3416 startPhyIdx = (p20Index / 2) * numRusPer40MHz;
3419 for (std::size_t phyIdx = startPhyIdx; phyIdx <= startPhyIdx + numRusPer40MHz; phyIdx++)
3421 RunOne(p20Index, bw, RuType::RU_242_TONE, phyIdx, p160, p80OrLower80, phyIdx);
3425 startPhyIdx = (p20Index / 2) * numRusPer40MHz;
3428 for (std::size_t phyIdx = startPhyIdx; phyIdx <= startPhyIdx + numRusPer40MHz; phyIdx++)
3430 RunOne(p20Index, bw, RuType::RU_484_TONE, phyIdx, p160, p80OrLower80, phyIdx);
3439 for (uint8_t p20Index = 0; p20Index < p20IdxMax; p20Index++)
3441 std::size_t numRusPer80MHz = 37;
3442 std::size_t startPhyIdx = (p20Index / 4) * numRusPer80MHz;
3445 for (std::size_t phyIdx = startPhyIdx; phyIdx <= startPhyIdx + numRusPer80MHz; phyIdx++)
3452 RunOne(p20Index, bw, RuType::RU_26_TONE, phyIdx, p160, p80OrLower80, phyIdx);
3455 numRusPer80MHz = 16;
3456 startPhyIdx = (p20Index / 4) * numRusPer80MHz;
3459 for (std::size_t phyIdx = startPhyIdx; phyIdx <= startPhyIdx + numRusPer80MHz; phyIdx++)
3461 RunOne(p20Index, bw, RuType::RU_52_TONE, phyIdx, p160, p80OrLower80, phyIdx);
3465 startPhyIdx = (p20Index / 4) * numRusPer80MHz;
3468 for (std::size_t phyIdx = startPhyIdx; phyIdx <= startPhyIdx + numRusPer80MHz; phyIdx++)
3470 RunOne(p20Index, bw, RuType::RU_106_TONE, phyIdx, p160, p80OrLower80, phyIdx);
3474 startPhyIdx = (p20Index / 4) * numRusPer80MHz;
3477 for (std::size_t phyIdx = startPhyIdx; phyIdx <= startPhyIdx + numRusPer80MHz; phyIdx++)
3479 RunOne(p20Index, bw, RuType::RU_242_TONE, phyIdx, p160, p80OrLower80, phyIdx);
3483 startPhyIdx = (p20Index / 4) * numRusPer80MHz;
3486 for (std::size_t phyIdx = startPhyIdx; phyIdx <= startPhyIdx + numRusPer80MHz; phyIdx++)
3488 RunOne(p20Index, bw, RuType::RU_484_TONE, phyIdx, p160, p80OrLower80, phyIdx);
3492 startPhyIdx = (p20Index / 4) * numRusPer80MHz;
3495 for (std::size_t phyIdx = startPhyIdx; phyIdx <= startPhyIdx + numRusPer80MHz; phyIdx++)
3497 RunOne(p20Index, bw, RuType::RU_996_TONE, phyIdx, p160, p80OrLower80, phyIdx);
3504 const MHz_u bw{160};
3506 for (uint8_t p20Index = 0; p20Index < p20IdxMax; p20Index++)
3508 const uint8_t p80Index = p20Index / 4;
3509 const uint8_t s80Index = (p80Index % 2 == 0) ? (p80Index + 1) : (p80Index - 1);
3512 std::size_t numRusPer80MHz = 37;
3513 std::size_t numRusPer160MHz = 2 * numRusPer80MHz;
3514 std::size_t startPhyIdx = ((p80Index * numRusPer80MHz) % numRusPer160MHz) + 1;
3515 std::size_t idxIn80MHz = 1;
3516 for (std::size_t phyIdx = startPhyIdx; phyIdx < startPhyIdx + numRusPer80MHz; phyIdx++)
3523 RunOne(p20Index, bw, RuType::RU_26_TONE, phyIdx, p160, p80OrLower80, idxIn80MHz++);
3527 startPhyIdx = ((s80Index * numRusPer80MHz) % numRusPer160MHz) + 1;
3529 for (std::size_t phyIdx = startPhyIdx; phyIdx < startPhyIdx + numRusPer80MHz; phyIdx++)
3536 RunOne(p20Index, bw, RuType::RU_26_TONE, phyIdx, p160, s80OrHigher80, idxIn80MHz++);
3540 numRusPer80MHz = 16;
3541 numRusPer160MHz = 2 * numRusPer80MHz;
3542 startPhyIdx = ((p80Index * numRusPer80MHz) % numRusPer160MHz) + 1;
3544 for (std::size_t phyIdx = startPhyIdx; phyIdx < startPhyIdx + numRusPer80MHz; phyIdx++)
3546 RunOne(p20Index, bw, RuType::RU_52_TONE, phyIdx, p160, p80OrLower80, idxIn80MHz++);
3550 startPhyIdx = ((s80Index * numRusPer80MHz) % numRusPer160MHz) + 1;
3552 for (std::size_t phyIdx = startPhyIdx; phyIdx < startPhyIdx + numRusPer80MHz; phyIdx++)
3554 RunOne(p20Index, bw, RuType::RU_52_TONE, phyIdx, p160, s80OrHigher80, idxIn80MHz++);
3559 numRusPer160MHz = 2 * numRusPer80MHz;
3560 startPhyIdx = ((p80Index * numRusPer80MHz) % numRusPer160MHz) + 1;
3562 for (std::size_t phyIdx = startPhyIdx; phyIdx < startPhyIdx + numRusPer80MHz; phyIdx++)
3564 RunOne(p20Index, bw, RuType::RU_106_TONE, phyIdx, p160, p80OrLower80, idxIn80MHz++);
3568 startPhyIdx = ((s80Index * numRusPer80MHz) % numRusPer160MHz) + 1;
3570 for (std::size_t phyIdx = startPhyIdx; phyIdx < startPhyIdx + numRusPer80MHz; phyIdx++)
3574 RuType::RU_106_TONE,
3583 numRusPer160MHz = 2 * numRusPer80MHz;
3584 startPhyIdx = ((p80Index * numRusPer80MHz) % numRusPer160MHz) + 1;
3586 for (std::size_t phyIdx = startPhyIdx; phyIdx < startPhyIdx + numRusPer80MHz; phyIdx++)
3588 RunOne(p20Index, bw, RuType::RU_242_TONE, phyIdx, p160, p80OrLower80, idxIn80MHz++);
3592 startPhyIdx = ((s80Index * numRusPer80MHz) % numRusPer160MHz) + 1;
3594 for (std::size_t phyIdx = startPhyIdx; phyIdx < startPhyIdx + numRusPer80MHz; phyIdx++)
3598 RuType::RU_242_TONE,
3607 numRusPer160MHz = 2 * numRusPer80MHz;
3608 startPhyIdx = ((p80Index * numRusPer80MHz) % numRusPer160MHz) + 1;
3610 for (std::size_t phyIdx = startPhyIdx; phyIdx < startPhyIdx + numRusPer80MHz; phyIdx++)
3612 RunOne(p20Index, bw, RuType::RU_484_TONE, phyIdx, p160, p80OrLower80, idxIn80MHz++);
3616 startPhyIdx = ((s80Index * numRusPer80MHz) % numRusPer160MHz) + 1;
3618 for (std::size_t phyIdx = startPhyIdx; phyIdx < startPhyIdx + numRusPer80MHz; phyIdx++)
3622 RuType::RU_484_TONE,
3631 numRusPer160MHz = 2 * numRusPer80MHz;
3632 startPhyIdx = ((p80Index * numRusPer80MHz) % numRusPer160MHz) + 1;
3634 for (std::size_t phyIdx = startPhyIdx; phyIdx < startPhyIdx + numRusPer80MHz; phyIdx++)
3636 RunOne(p20Index, bw, RuType::RU_996_TONE, phyIdx, p160, p80OrLower80, idxIn80MHz++);
3640 startPhyIdx = ((s80Index * numRusPer80MHz) % numRusPer160MHz) + 1;
3642 for (std::size_t phyIdx = startPhyIdx; phyIdx < startPhyIdx + numRusPer80MHz; phyIdx++)
3646 RuType::RU_996_TONE,
3654 RunOne(p20Index, bw, RuType::RU_2x996_TONE, 1, p160, p80OrLower80, 1);
3661 const MHz_u bw{320};
3663 for (uint8_t p20Index = 0; p20Index < p20IdxMax; p20Index++)
3665 const uint8_t p160Index = p20Index / 8;
3666 const uint8_t s160Index = (p160Index % 2 == 0) ? (p160Index + 1) : (p160Index - 1);
3667 const uint8_t p80Index = p20Index / 4;
3668 const uint8_t s80Index = (p80Index % 2 == 0) ? (p80Index + 1) : (p80Index - 1);
3671 std::size_t numRusPer80MHz = 37;
3672 std::size_t numRusPer320MHz = 4 * numRusPer80MHz;
3673 std::size_t startPhyIdx = ((p80Index * numRusPer80MHz) % numRusPer320MHz) + 1;
3674 std::size_t idxIn80MHz = 1;
3675 for (std::size_t phyIdx = startPhyIdx; phyIdx < startPhyIdx + numRusPer80MHz; phyIdx++)
3682 RunOne(p20Index, bw, RuType::RU_26_TONE, phyIdx, p160, p80OrLower80, idxIn80MHz++);
3686 startPhyIdx = ((s80Index * numRusPer80MHz) % numRusPer320MHz) + 1;
3688 for (std::size_t phyIdx = startPhyIdx; phyIdx < startPhyIdx + numRusPer80MHz; phyIdx++)
3695 RunOne(p20Index, bw, RuType::RU_26_TONE, phyIdx, p160, s80OrHigher80, idxIn80MHz++);
3699 std::size_t numRusPer160MHz = 2 * numRusPer80MHz;
3700 startPhyIdx = ((s160Index * numRusPer160MHz) % numRusPer320MHz) + 1;
3703 for (std::size_t phyIdx = startPhyIdx; phyIdx < startPhyIdx + numRusPer80MHz; phyIdx++)
3710 RunOne(p20Index, bw, RuType::RU_26_TONE, phyIdx, s160, p80OrLower80, idxIn80MHz++);
3713 startPhyIdx += numRusPer80MHz;
3715 for (std::size_t phyIdx = startPhyIdx; phyIdx < startPhyIdx + numRusPer80MHz; phyIdx++)
3722 RunOne(p20Index, bw, RuType::RU_26_TONE, phyIdx, s160, s80OrHigher80, idxIn80MHz++);
3726 numRusPer80MHz = 16;
3727 numRusPer320MHz = 4 * numRusPer80MHz;
3728 startPhyIdx = ((p80Index * numRusPer80MHz) % numRusPer320MHz) + 1;
3730 for (std::size_t phyIdx = startPhyIdx; phyIdx < startPhyIdx + numRusPer80MHz; phyIdx++)
3732 RunOne(p20Index, bw, RuType::RU_52_TONE, phyIdx, p160, p80OrLower80, idxIn80MHz++);
3736 startPhyIdx = ((s80Index * numRusPer80MHz) % numRusPer320MHz) + 1;
3738 for (std::size_t phyIdx = startPhyIdx; phyIdx < startPhyIdx + numRusPer80MHz; phyIdx++)
3740 RunOne(p20Index, bw, RuType::RU_52_TONE, phyIdx, p160, s80OrHigher80, idxIn80MHz++);
3744 numRusPer160MHz = 2 * numRusPer80MHz;
3745 startPhyIdx = ((s160Index * numRusPer160MHz) % numRusPer320MHz) + 1;
3748 for (std::size_t phyIdx = startPhyIdx; phyIdx < startPhyIdx + numRusPer80MHz; phyIdx++)
3750 RunOne(p20Index, bw, RuType::RU_52_TONE, phyIdx, s160, p80OrLower80, idxIn80MHz++);
3753 startPhyIdx += numRusPer80MHz;
3755 for (std::size_t phyIdx = startPhyIdx; phyIdx < startPhyIdx + numRusPer80MHz; phyIdx++)
3757 RunOne(p20Index, bw, RuType::RU_52_TONE, phyIdx, s160, s80OrHigher80, idxIn80MHz++);
3762 numRusPer320MHz = 4 * numRusPer80MHz;
3763 startPhyIdx = ((p80Index * numRusPer80MHz) % numRusPer320MHz) + 1;
3765 for (std::size_t phyIdx = startPhyIdx; phyIdx < startPhyIdx + numRusPer80MHz; phyIdx++)
3767 RunOne(p20Index, bw, RuType::RU_106_TONE, phyIdx, p160, p80OrLower80, idxIn80MHz++);
3771 startPhyIdx = ((s80Index * numRusPer80MHz) % numRusPer320MHz) + 1;
3773 for (std::size_t phyIdx = startPhyIdx; phyIdx < startPhyIdx + numRusPer80MHz; phyIdx++)
3777 RuType::RU_106_TONE,
3785 numRusPer160MHz = 2 * numRusPer80MHz;
3786 startPhyIdx = ((s160Index * numRusPer160MHz) % numRusPer320MHz) + 1;
3789 for (std::size_t phyIdx = startPhyIdx; phyIdx < startPhyIdx + numRusPer80MHz; phyIdx++)
3791 RunOne(p20Index, bw, RuType::RU_106_TONE, phyIdx, s160, p80OrLower80, idxIn80MHz++);
3794 startPhyIdx += numRusPer80MHz;
3796 for (std::size_t phyIdx = startPhyIdx; phyIdx < startPhyIdx + numRusPer80MHz; phyIdx++)
3800 RuType::RU_106_TONE,
3809 numRusPer320MHz = 4 * numRusPer80MHz;
3810 startPhyIdx = ((p80Index * numRusPer80MHz) % numRusPer320MHz) + 1;
3812 for (std::size_t phyIdx = startPhyIdx; phyIdx < startPhyIdx + numRusPer80MHz; phyIdx++)
3814 RunOne(p20Index, bw, RuType::RU_242_TONE, phyIdx, p160, p80OrLower80, idxIn80MHz++);
3818 startPhyIdx = ((s80Index * numRusPer80MHz) % numRusPer320MHz) + 1;
3820 for (std::size_t phyIdx = startPhyIdx; phyIdx < startPhyIdx + numRusPer80MHz; phyIdx++)
3824 RuType::RU_242_TONE,
3832 numRusPer160MHz = 2 * numRusPer80MHz;
3833 startPhyIdx = ((s160Index * numRusPer160MHz) % numRusPer320MHz) + 1;
3836 for (std::size_t phyIdx = startPhyIdx; phyIdx < startPhyIdx + numRusPer80MHz; phyIdx++)
3838 RunOne(p20Index, bw, RuType::RU_242_TONE, phyIdx, s160, p80OrLower80, idxIn80MHz++);
3841 startPhyIdx += numRusPer80MHz;
3843 for (std::size_t phyIdx = startPhyIdx; phyIdx < startPhyIdx + numRusPer80MHz; phyIdx++)
3847 RuType::RU_242_TONE,
3856 numRusPer320MHz = 4 * numRusPer80MHz;
3857 startPhyIdx = ((p80Index * numRusPer80MHz) % numRusPer320MHz) + 1;
3859 for (std::size_t phyIdx = startPhyIdx; phyIdx < startPhyIdx + numRusPer80MHz; phyIdx++)
3861 RunOne(p20Index, bw, RuType::RU_484_TONE, phyIdx, p160, p80OrLower80, idxIn80MHz++);
3865 startPhyIdx = ((s80Index * numRusPer80MHz) % numRusPer320MHz) + 1;
3867 for (std::size_t phyIdx = startPhyIdx; phyIdx < startPhyIdx + numRusPer80MHz; phyIdx++)
3871 RuType::RU_484_TONE,
3879 numRusPer160MHz = 2 * numRusPer80MHz;
3880 startPhyIdx = ((s160Index * numRusPer160MHz) % numRusPer320MHz) + 1;
3883 for (std::size_t phyIdx = startPhyIdx; phyIdx < startPhyIdx + numRusPer80MHz; phyIdx++)
3885 RunOne(p20Index, bw, RuType::RU_484_TONE, phyIdx, s160, p80OrLower80, idxIn80MHz++);
3888 startPhyIdx += numRusPer80MHz;
3890 for (std::size_t phyIdx = startPhyIdx; phyIdx < startPhyIdx + numRusPer80MHz; phyIdx++)
3894 RuType::RU_484_TONE,
3903 numRusPer320MHz = 4 * numRusPer80MHz;
3904 startPhyIdx = ((p80Index * numRusPer80MHz) % numRusPer320MHz) + 1;
3906 for (std::size_t phyIdx = startPhyIdx; phyIdx < startPhyIdx + numRusPer80MHz; phyIdx++)
3908 RunOne(p20Index, bw, RuType::RU_996_TONE, phyIdx, p160, p80OrLower80, idxIn80MHz++);
3912 startPhyIdx = ((s80Index * numRusPer80MHz) % numRusPer320MHz) + 1;
3914 for (std::size_t phyIdx = startPhyIdx; phyIdx < startPhyIdx + numRusPer80MHz; phyIdx++)
3918 RuType::RU_996_TONE,
3926 numRusPer160MHz = 2 * numRusPer80MHz;
3927 startPhyIdx = ((s160Index * numRusPer160MHz) % numRusPer320MHz) + 1;
3930 for (std::size_t phyIdx = startPhyIdx; phyIdx < startPhyIdx + numRusPer80MHz; phyIdx++)
3932 RunOne(p20Index, bw, RuType::RU_996_TONE, phyIdx, s160, p80OrLower80, idxIn80MHz++);
3935 startPhyIdx += numRusPer80MHz;
3937 for (std::size_t phyIdx = startPhyIdx; phyIdx < startPhyIdx + numRusPer80MHz; phyIdx++)
3941 RuType::RU_996_TONE,
3949 numRusPer160MHz = 1;
3950 numRusPer320MHz = 2 * numRusPer160MHz;
3951 startPhyIdx = ((p160Index * numRusPer160MHz) % numRusPer320MHz) + 1;
3953 for (std::size_t phyIdx = startPhyIdx; phyIdx < startPhyIdx + numRusPer160MHz; phyIdx++)
3957 RuType::RU_2x996_TONE,
3965 startPhyIdx = ((s160Index * numRusPer160MHz) % numRusPer320MHz) + 1;
3967 for (std::size_t phyIdx = startPhyIdx; phyIdx < startPhyIdx + numRusPer160MHz; phyIdx++)
3971 RuType::RU_2x996_TONE,
3979 RunOne(p20Index, bw, RuType::RU_4x996_TONE, 1, p160, p80OrLower80, 1);