Trigger_macCellCfg
[o-du/l2.git] / src / du_app / du_cfg.c
index a142f35..7217d10 100644 (file)
@@ -17,7 +17,7 @@
 *******************************************************************************/
 
 /* This file contains all utility functions */
-#include "du_cfg.h"
+#include "du_mgr.h"
 #include "MIB.h"
 #include "PLMN-IdentityInfo.h"
 #include "odu_common_codec.h"
@@ -136,15 +136,17 @@ S16 readMacCfg()
 
    /* SSB configuration */
    duCfgParam.macCellCfg.ssbCfg.ssbPbchPwr = SSB_PBCH_PWR;
-   duCfgParam.macCellCfg.ssbCfg.bchPayloadOption = BCH_PAYLOAD;
+   duCfgParam.macCellCfg.ssbCfg.bchPayloadFlag = BCH_PAYLOAD;
    duCfgParam.macCellCfg.ssbCfg.scsCmn = SUBCARRIER_SPACING;
-   duCfgParam.macCellCfg.ssbCfg.ssbPrbOffset = PRB_OFFSET;
+   duCfgParam.macCellCfg.ssbCfg.ssbOffsetPointA = OFFSET_TO_POINT_A;
    duCfgParam.macCellCfg.ssbCfg.betaPss = BETA_PSS;
    duCfgParam.macCellCfg.ssbCfg.ssbPeriod = SSB_PERIODICITTY;
-   duCfgParam.macCellCfg.ssbCfg.ssbSubcOffset = SSB_SUBCARRIER_OFFSET;
-   duCfgParam.macCellCfg.ssbCfg.mibPdu = 104;
-   duCfgParam.macCellCfg.ssbCfg.nSSBMask[0] = 2162721;
-   duCfgParam.macCellCfg.ssbCfg.nSSBMask[1] = 0;
+   duCfgParam.macCellCfg.ssbCfg.ssbScOffset = SSB_SUBCARRIER_OFFSET;
+   duCfgParam.macCellCfg.ssbCfg.mibPdu[0] = 0x01;
+   duCfgParam.macCellCfg.ssbCfg.mibPdu[1] = 0x01;
+   duCfgParam.macCellCfg.ssbCfg.mibPdu[2] = 0x84;
+   duCfgParam.macCellCfg.ssbCfg.ssbMask[0] = 1; /* only one SSB is transmitted */
+   duCfgParam.macCellCfg.ssbCfg.ssbMask[1] = 0;
    duCfgParam.macCellCfg.ssbCfg.multCarrBand = SSB_MULT_CARRIER_BAND;
    duCfgParam.macCellCfg.ssbCfg.multCellCarr = MULT_CELL_CARRIER;
 
@@ -178,12 +180,41 @@ S16 readMacCfg()
    /* RSSI Measurement configuration */
    duCfgParam.macCellCfg.rssiUnit = RSS_MEASUREMENT_UNIT;
 
+   /* fill SIB1 configuration */
+   duCfgParam.macCellCfg.sib1Cfg.sib1PduLen = duCfgParam.srvdCellLst[0].duSysInfo.sib1Len;
+   DU_ALLOC(duCfgParam.macCellCfg.sib1Cfg.sib1Pdu,duCfgParam.srvdCellLst[0].duSysInfo.sib1Len);
+   memcpy(duCfgParam.macCellCfg.sib1Cfg.sib1Pdu, duCfgParam.srvdCellLst[0].duSysInfo.sib1Msg, \
+          duCfgParam.srvdCellLst[0].duSysInfo.sib1Len);
+   duCfgParam.macCellCfg.sib1Cfg.sib1NewTxPeriod = SIB1_NEW_TX_PERIOD;
+   duCfgParam.macCellCfg.sib1Cfg.sib1RepetitionPeriod = SIB1_REPETITION_PERIOD;
+   duCfgParam.macCellCfg.sib1Cfg.coresetZeroIndex = CORESET_0_INDEX;
+   duCfgParam.macCellCfg.sib1Cfg.searchSpaceZeroIndex = SEARCHSPACE_0_INDEX;
+   duCfgParam.macCellCfg.sib1Cfg.sib1Mcs = SIB1_MCS;
+
    /* This should be calculated based on
       (number of mandatory parameters) + (number of otional parameters being filled) */
    duCfgParam.macCellCfg.numTlv = 39;
 
    RETVALUE(ROK);
 }
+
+/*******************************************************************
+ *
+ * @brief Configures the DU Parameters
+ *
+ * @details
+ *
+ *    Function : fillDuPort
+ *
+ *    Functionality:
+ *       - fills the DU Ports.  
+ *
+ * @params[in] duPort array to be filled
+ * @return ROK     - success
+ *         RFAILED - failure
+ *
+ * ****************************************************************/
+
 S16 fillDuPort(U16 *duPort)
 {
    duPort[F1_INTERFACE]   = DU_PORT;     /* DU Port idx  0 38472 */
@@ -228,12 +259,10 @@ S16 readCfg()
    /* F1 CU IP Address and Port*/
    duCfgParam.sctpParams.cuIpAddr.ipV4Addr = ipv4_cu;
    duCfgParam.sctpParams.cuPort = CU_PORT;
-   duCfgParam.sctpParams.itfType.f1Itf     = F1_INTERFACE;
 
    /* Fill RIC Params */
    duCfgParam.sctpParams.ricIpAddr.ipV4Addr = ipv4_ric;
    duCfgParam.sctpParams.ricPort            = RIC_PORT;
-   duCfgParam.sctpParams.itfType.e2Itf      = E2_INTERFACE;
 
 
    /* EGTP Parameters */
@@ -412,6 +441,7 @@ S16 readCfg()
                        return RFAILED;
                }
                strcpy(duCfgParam.srvdCellLst[i].duSysInfo.mibMsg, encBuf);
+                duCfgParam.srvdCellLst[i].duSysInfo.mibLen = encBufSize;
 
       /*gnb DU System Info mib msg*/
       BuildSib1Msg();
@@ -422,11 +452,9 @@ S16 readCfg()
          DU_LOG("\nDU_APP: Memory allocation failure");
                        return RFAILED;
                }
-               for(int x=0; x<encBufSize; x++)
-               {
-                  duCfgParam.srvdCellLst[i].duSysInfo.sib1Msg[x]=\
-                       encBuf[x];
-          }
+               memcpy(duCfgParam.srvdCellLst[i].duSysInfo.sib1Msg,\
+                      encBuf,encBufSize);
+                duCfgParam.srvdCellLst[i].duSysInfo.sib1Len = encBufSize;
 
    }
 
@@ -522,15 +550,14 @@ S16 bitStringToInt(BIT_STRING_t *bitString, U16 *val)
       return RFAILED;
    }
 
-   numOctets = (bitString->size + 7 )/8;
-   for(idx=0; idx< numOctets; idx++)
+   for(idx=0; idx<bitString->size-1; idx++)
    {
       *val |= bitString->buf[idx];
       *val <<= 8;
    }
 
-   *val |= bitString->buf[numOctets -1];
-   *val >>= ((numOctets * 8) - bitString->size);
+   *val |= bitString->buf[idx];
+   *val >>= bitString->bits_unused;
 
    return ROK;
 }