DL Resource allocation for msg4
[o-du/l2.git] / src / 5gnrsch / sch_utils.c
index 4e444c3..0a79d67 100644 (file)
@@ -119,7 +119,6 @@ uint16_t numRbForPrachTable[MAX_RACH_NUM_RB_IDX][5] = {
  * Subframe num is represented considering 0-9 bits and
  * value 1 corresponds to the subframe that is valid 
  */
- //Sphoorthi TODO: complete this table
 
 uint16_t prachCfgIdxTable[MAX_PRACH_CONFIG_IDX][8] = {
 { 0, 16,  1,    2,  0,  0,  0,  0 }, /* index 0   */
@@ -248,15 +247,147 @@ uint16_t prachCfgIdxTable[MAX_PRACH_CONFIG_IDX][8] = {
 { 5,  2,  1,  580,  0,  1,  3,  4 }, /* index 123  */
 { 5,  2,  0,    2,  0,  2,  3,  4 }, /* index 124  */
 { 5,  2,  0,   16,  0,  2,  3,  4 }, /* index 125  */
+{ 5,  2,  0,  128,  0,  2,  3,  4 }, /* index 126  */
+{ 5,  1,  0,   16,  0,  1,  3,  4 }, /* index 127  */
+{ 5,  1,  0,   66,  0,  1,  3,  4 }, /* index 128  */
+{ 5,  1,  0,  528,  0,  1,  3,  4 }, /* index 129  */
+{ 5,  1,  0,    2,  0,  2,  3,  4 }, /* index 130  */
+{ 5,  1,  0,  128,  0,  2,  3,  4 }, /* index 131  */
+{ 5,  1,  0,  132,  0,  2,  3,  4 }, /* index 132  */
+{ 5,  1,  0,  146,  0,  2,  3,  4 }, /* index 133  */
+{ 5,  1,  0,  341,  0,  2,  3,  4 }, /* index 134  */
+{ 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  */
+{ 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  */
+{ 6,  8,  1,   16,  0,  2,  2,  6 }, /* index 150  */
+{ 6,  4,  0,  528,  0,  1,  2,  6 }, /* index 151  */
+{ 6,  4,  0,   16,  0,  2,  2,  6 }, /* index 152  */
+{ 6,  2,  1,  580,  0,  2,  2,  6 }, /* index 153  */
+{ 6,  2,  0,    2,  0,  2,  2,  6 }, /* index 154  */
+{ 6,  2,  0,   16,  0,  2,  2,  6 }, /* index 155  */
+{ 6,  2,  0,  128,  0,  2,  2,  6 }, /* index 156  */
+{ 6,  1,  0,   16,  0,  1,  2,  6 }, /* index 157  */
+{ 6,  1,  0,   66,  0,  1,  2,  6 }, /* index 158  */
+{ 6,  1,  0,  528,  0,  1,  2,  6 }, /* index 159  */
+{ 6,  1,  0,    2,  0,  2,  2,  6 }, /* index 160  */
+{ 6,  1,  0,  128,  0,  2,  2,  6 }, /* index 161  */
+{ 6,  1,  0,  132,  0,  2,  2,  6 }, /* index 162  */
+{ 6,  1,  0,  146,  0,  2,  2,  6 }, /* index 163  */
+{ 6,  1,  0,  341,  0,  2,  2,  6 }, /* index 164  */
+{ 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  */
+{ 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  */
+{ 7,  8,  1,   16,  0,  2,  7,  2 }, /* index 180  */
+{ 7,  4,  0,  528,  0,  1,  7,  2 }, /* index 181  */
+{ 7,  4,  1,  528,  0,  1,  7,  2 }, /* index 182  */
+{ 7,  4,  0,   16,  0,  2,  7,  2 }, /* index 183  */
+{ 7,  2,  0,  528,  0,  1,  7,  2 }, /* index 184  */
+{ 7,  2,  0,    2,  0,  2,  7,  2 }, /* index 185  */
+{ 7,  2,  0,   16,  0,  2,  7,  2 }, /* index 186  */
+{ 7,  2,  0,  128,  0,  2,  7,  2 }, /* index 187  */
+{ 7,  1,  0,   16,  0,  1,  7,  2 }, /* index 188  */
+{ 7,  1,  0,   66,  0,  1,  7,  2 }, /* index 189  */
+{ 7,  1,  0,  528,  0,  1,  7,  2 }, /* index 190  */
+{ 7,  1,  0,    2,  0,  2,  7,  2 }, /* index 191  */
+{ 7,  1,  0,  128,  0,  2,  7,  2 }, /* index 192  */
+{ 7,  1,  0,  132,  0,  2,  7,  2 }, /* index 193  */
+{ 7,  1,  0,  146,  0,  2,  7,  2 }, /* index 194  */
+{ 7,  1,  0,  341,  0,  2,  7,  2 }, /* index 195  */
+{ 7,  1,  0, 1023,  0,  2,  7,  2 }, /* index 196  */
+{ 7,  1,  0,  682,  0,  2,  7,  2 }, /* index 197  */
+{ 8, 16,  0,  528,  0,  2,  1, 12 }, /* index 198  */
+{ 8, 16,  1,   16,  0,  2,  1, 12 }, /* index 199  */
+{ 8,  8,  0,  528,  0,  2,  1, 12 }, /* index 200  */
+{ 8,  8,  1,   16,  0,  2,  1, 12 }, /* index 201  */
+{ 8,  4,  0,  528,  0,  2,  1, 12 }, /* index 202  */
+{ 8,  4,  0,   16,  0,  2,  1, 12 }, /* index 203  */
+{ 8,  4,  1,  528,  0,  2,  1, 12 }, /* index 204  */
+{ 8,  2,  0,  528,  0,  2,  1, 12 }, /* index 205  */
+{ 8,  2,  0,    2,  0,  2,  1, 12 }, /* index 206  */
+{ 8,  2,  0,   16,  0,  2,  1, 12 }, /* index 207  */
+{ 8,  2,  0,  128,  0,  2,  1, 12 }, /* index 208  */
+{ 8,  1,  0,    2,  0,  2,  1, 12 }, /* index 209  */
+{ 8,  1,  0,   16,  0,  2,  1, 12 }, /* index 210  */
+{ 8,  1,  0,  128,  0,  2,  1, 12 }, /* index 211  */
+{ 8,  1,  0,   66,  0,  2,  1, 12 }, /* index 212  */
+{ 8,  1,  0,  132,  0,  2,  1, 12 }, /* index 213  */
+{ 8,  1,  0,  528,  0,  2,  1, 12 }, /* index 214  */
+{ 8,  1,  0,  146,  0,  2,  1, 12 }, /* index 215  */
+{ 8,  1,  0,  341,  0,  2,  1, 12 }, /* index 216  */
+{ 8,  1,  0, 1023,  0,  2,  1, 12 }, /* index 217  */
+{ 8,  1,  0,  682,  0,  2,  1, 12 }, /* index 218  */
+{ 9,  8,  1,   16,  0,  2,  7,  2 }, /* index 219  */
+{ 9,  4,  1,  528,  0,  1,  7,  2 }, /* index 220  */
+{ 9,  4,  0,   16,  0,  2,  7,  2 }, /* index 221  */
+{ 9,  2,  0,  528,  0,  1,  7,  2 }, /* index 222  */
+{ 9,  2,  0,    2,  0,  2,  7,  2 }, /* index 223  */
+{ 9,  2,  0,   16,  0,  2,  7,  2 }, /* index 224  */
+{ 9,  2,  0,  128,  0,  2,  7,  2 }, /* index 225  */
+{ 9,  1,  0,   16,  0,  1,  7,  2 }, /* index 226  */
+{ 9,  1,  0,   66,  0,  1,  7,  2 }, /* index 227  */
+{ 9,  1,  0,  528,  0,  1,  7,  2 }, /* index 228  */
+{ 9,  1,  0,    2,  0,  2,  7,  2 }, /* index 229  */
+{ 9,  1,  0,  128,  0,  2,  7,  2 }, /* index 230  */
+{ 9,  1,  0,  132,  0,  2,  7,  2 }, /* index 231  */
+{ 9,  1,  0,  146,  0,  2,  7,  2 }, /* index 232  */
+{ 9,  1,  0,  341,  0,  2,  7,  2 }, /* index 233  */
+{ 9,  1,  0, 1023,  0,  2,  7,  2 }, /* index 234  */
+{ 9,  1,  0,  682,  0,  2,  7,  2 }, /* index 235  */
+{10, 16,  1,  528,  0,  1,  2,  6 }, /* index 236  */
+{10, 16,  1,   16,  0,  2,  2,  6 }, /* index 237  */
+{10,  8,  1,  528,  0,  1,  2,  6 }, /* index 238  */
+{10,  8,  1,   16,  0,  2,  2,  6 }, /* index 239  */
+{10,  4,  0,  528,  0,  1,  2,  6 }, /* index 240  */
+{10,  4,  0,   16,  0,  2,  2,  6 }, /* index 241  */
+{10,  2,  1,  580,  0,  2,  2,  6 }, /* index 242  */
+{10,  2,  0,    2,  0,  2,  2,  6 }, /* index 243  */
+{10,  2,  0,   16,  0,  2,  2,  6 }, /* index 244  */
+{10,  2,  0,  128,  0,  2,  2,  6 }, /* index 245  */
+{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,  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  */
+{10,  1,  0,  341,  0,  2,  2,  6 }, /* index 253  */
+{10,  1,  0, 1023,  0,  2,  2,  6 }, /* index 254  */
+{10,  1,  0,  682,  0,  2,  2,  6 }  /* index 255  */
 };
 
+/* Defintion of delta value Table 6.1.2.1.1-5 spec 38.214 */
+uint8_t puschDeltaTable[MAX_MU_PUSCH] = { 2, 3, 4, 6 };
 
 /**
  * @brief frequency domain allocation function. 
  *
  * @details
  *
- *     Function : freqDomResourceAlloc
+ *     Function: canclulatePRB
  *     
  *     This function does allocation in frequency domain resource. using 
  *     bitwise operator, the bits are set for the PRBs.
@@ -266,7 +397,7 @@ uint16_t prachCfgIdxTable[MAX_PRACH_CONFIG_IDX][8] = {
  *  @param[in]  freqDomain - 6 bytes of info, each bit represents a group of 6 PRB.
  *  @return   void
  **/
-void freqDomResourceAlloc(uint16_t startPrb, uint16_t prbSize, uint8_t *freqDomain)
+void calculatePRB(uint16_t startPrb, uint16_t prbSize, uint8_t *freqDomain)
 {
    uint8_t remBits = prbSize; /* each bit represents 6 PRBs */
    uint8_t firstByte = 1;