Merge "MAC Clean-up [Issue-ID: ODUHIGH-212]"
[o-du/l2.git] / src / 5gnrsch / sch_utils.c
index 1f0035a..344e84e 100644 (file)
 */
 
 /* header files */
+#include "common_def.h"
+#include "du_app_mac_inf.h"
+#include "lrg.h"
+#include "tfu.h"
+#include "tfu.x"           /* TFU types */
+#include "lrg.x"           /* layer management typedefs for MAC */
+#include "mac_sch_interface.h"
+#include "sch.h"
 #include "sch_utils.h"
 #include "math.h"
 
@@ -260,15 +268,15 @@ uint16_t prachCfgIdxTable[MAX_PRACH_CONFIG_IDX][8] = {
 { 5,  1,  0, 1023,  0,  2,  3,  4 }, /* index 135  */
 { 5,  1,  0,  682,  0,  2,  3,  4 }, /* index 136  */
 {12,  2,  1,  580,  0,  1,  3,  4 }, /* index 137  */
-{12,  2,  2,   16,  0,  1,  3,  4 }, /* index 138  */
-{12,  2,  1,   16,  0,  1,  3,  4 }, /* index 139  */
-{12,  2,  1,   66,  0,  1,  3,  4 }, /* index 140  */
-{12,  2,  1,  528,  0,  1,  3,  4 }, /* index 141  */
-{12,  2,  1,    2,  0,  1,  3,  4 }, /* index 142  */
-{12,  2,  1,  128,  0,  1,  3,  4 }, /* index 143  */
-{12,  2,  1,  146,  0,  1,  3,  4 }, /* index 144  */
-{12,  2,  1,  341,  0,  1,  3,  4 }, /* index 145  */
-{12,  2,  1, 1023,  0,  1,  3,  4 }, /* index 146  */
+{12,  2,  0,   16,  0,  2,  3,  4 }, /* index 138  */
+{12,  1,  0,   16,  0,  1,  3,  4 }, /* index 139  */
+{12,  1,  0,   66,  0,  1,  3,  4 }, /* index 140  */
+{12,  1,  0,  528,  0,  1,  3,  4 }, /* index 141  */
+{12,  1,  0,    2,  0,  2,  3,  4 }, /* index 142  */
+{12,  1,  0,  128,  0,  2,  3,  4 }, /* index 143  */
+{12,  1,  0,  146,  0,  2,  3,  4 }, /* index 144  */
+{12,  1,  0,  341,  0,  2,  3,  4 }, /* index 145  */
+{12,  1,  0, 1023,  0,  2,  3,  4 }, /* index 146  */
 { 6, 16,  1,  528,  0,  1,  2,  6 }, /* index 147  */
 { 6, 16,  1,   16,  0,  2,  2,  6 }, /* index 148  */
 { 6,  8,  1,  528,  0,  1,  2,  6 }, /* index 149  */
@@ -290,15 +298,15 @@ uint16_t prachCfgIdxTable[MAX_PRACH_CONFIG_IDX][8] = {
 { 6,  1,  0, 1023,  0,  2,  2,  6 }, /* index 165  */
 { 6,  1,  0,  682,  0,  2,  2,  6 }, /* index 166  */
 {13,  2,  1,  580,  0,  2,  2,  6 }, /* index 167  */
-{13,  2,  2,   16,  0,  2,  2,  6 }, /* index 168  */
-{13,  2,  1,   16,  0,  1,  2,  6 }, /* index 169  */
-{13,  2,  1,   66,  0,  1,  2,  6 }, /* index 170  */
-{13,  2,  1,  528,  0,  1,  2,  6 }, /* index 171  */
-{13,  2,  1,    2,  0,  2,  2,  6 }, /* index 172  */
-{13,  2,  1,  128,  0,  2,  2,  6 }, /* index 173  */
-{13,  2,  1,  146,  0,  2,  2,  6 }, /* index 174  */
-{13,  2,  1,  341,  0,  2,  2,  6 }, /* index 175  */
-{13,  2,  1, 1023,  0,  2,  2,  6 }, /* index 176  */
+{13,  2,  0,   16,  0,  2,  2,  6 }, /* index 168  */
+{13,  1,  0,   16,  0,  1,  2,  6 }, /* index 169  */
+{13,  1,  0,   66,  0,  1,  2,  6 }, /* index 170  */
+{13,  1,  0,  528,  0,  1,  2,  6 }, /* index 171  */
+{13,  1,  0,    2,  0,  2,  2,  6 }, /* index 172  */
+{13,  1,  0,  128,  0,  2,  2,  6 }, /* index 173  */
+{13,  1,  0,  146,  0,  2,  2,  6 }, /* index 174  */
+{13,  1,  0,  341,  0,  2,  2,  6 }, /* index 175  */
+{13,  1,  0, 1023,  0,  2,  2,  6 }, /* index 176  */
 { 7, 16,  0,  528,  0,  1,  7,  2 }, /* index 177  */
 { 7, 16,  1,   16,  0,  2,  7,  2 }, /* index 178  */
 { 7,  8,  0,  528,  0,  1,  7,  2 }, /* index 179  */
@@ -371,7 +379,7 @@ uint16_t prachCfgIdxTable[MAX_PRACH_CONFIG_IDX][8] = {
 {10,  1,  0,   16,  0,  1,  2,  6 }, /* index 246  */
 {10,  1,  0,   66,  0,  1,  2,  6 }, /* index 247  */
 {10,  1,  0,  528,  0,  1,  2,  6 }, /* index 248  */
-{10,  1,  0,    1,  0,  2,  2,  6 }, /* index 249  */
+{10,  1,  0,    2,  0,  2,  2,  6 }, /* index 249  */
 {10,  1,  0,  128,  0,  2,  2,  6 }, /* index 250  */
 {10,  1,  0,  132,  0,  2,  2,  6 }, /* index 251  */
 {10,  1,  0,  146,  0,  2,  2,  6 }, /* index 252  */
@@ -429,6 +437,27 @@ uint16_t mcsTable[32][3] = {
       {  30,   4,     0},   /* mcs index 30 */
       {  31,   6,     0}};  /* mcs index 31 */
 
+/* PUCCH resource sets before dedicated PUCCH resource configuration */
+/* Table 9.2.1-1 spec 38.213      */ 
+uint8_t pucchResourceSet[MAX_PUCCH_RES_SET_IDX][4] = {
+{ 0,  12,  2,  0 }, /* index  0 */
+{ 0,  12,  2,  0 }, /* index  1 */
+{ 0,  12,  2,  3 }, /* index  2 */
+{ 1,  10,  4,  0 }, /* index  3 */
+{ 1,  10,  4,  0 }, /* index  4 */
+{ 1,  10,  4,  2 }, /* index  5 */
+{ 1,  10,  4,  4 }, /* index  6 */
+{ 1,   4, 10,  0 }, /* index  7 */
+{ 1,   4, 10,  0 }, /* index  8 */
+{ 1,   4, 10,  2 }, /* index  9 */
+{ 1,   4, 10,  4 }, /* index 10 */
+{ 1,   0, 14,  0 }, /* index 11 */
+{ 1,   0, 14,  0 }, /* index 12 */
+{ 1,   0, 14,  2 }, /* index 13 */
+{ 1,   0, 14,  4 }, /* index 14 */
+{ 1,   0, 14,  0 }, /* index 15 */
+};
+
 /**
  * @brief frequency domain allocation function. 
  *
@@ -534,7 +563,6 @@ uint16_t schCalcNumPrb(uint16_t tbSize, uint16_t mcs, uint8_t numSymbols)
        uint8_t  qm     = mcsTable[mcs][1];
        uint16_t rValue = mcsTable[mcs][2];
        uint8_t  numLayer = 1;       /* v value */
-       uint8_t numDmrsSymbols = 12; /* considering whole of one symbols with 12 SCs for DMRS */
 
    /* formula used for calculation of rbSize, 38.213 section 5.1.3.2 *
     * Ninfo = Nre . R . Qm . v                                       *
@@ -543,7 +571,7 @@ uint16_t schCalcNumPrb(uint16_t tbSize, uint16_t mcs, uint8_t numSymbols)
 
        nre = ceil( (float)tbSize * 1024 / (qm * rValue * numLayer));
 
-       nreDash = ceil( (12 * numSymbols) - numDmrsSymbols - 0);
+       nreDash = ceil( (12 * numSymbols) - NUM_DMRS_SYMBOLS - 0);
 
        if (nreDash > 156)
           nre = 156;