FAPI code enclosed under FAPI flag
[o-du/l2.git] / src / 5gnrmac / rg_lmm.c
index 5c64f03..8db8f03 100755 (executable)
@@ -77,7 +77,6 @@ static int RLOG_MODULE_ID=4096;
 #include "lrg.x"           /* LRG Interface includes */
 #include "rgr.x"           /* LRG Interface includes */
 #include "du_app_mac_inf.h"
-#include "mac_sch_interface.h"
 #include "rg.x"            /* MAC includes */
 #ifdef SS_DIAG
 #include "ss_diag.h"        /* Common log file */
@@ -86,7 +85,7 @@ static int RLOG_MODULE_ID=4096;
 #include "ss_rbuf.x"
 
 #include "lwr_mac.h"         /* MAC CL defines */
-
+#include "mac.h"
 #ifdef __cplusplus
 extern "C" {
 #endif /* __cplusplus */
@@ -2103,6 +2102,7 @@ int MacHdlCellCfgReq
    Pst cfmPst;
    int ret = ROK;
    RgCellCb      *cellCb;
+       MacCellCb     *macCellCb;
    Inst inst = pst->dstInst;
 
    cmMemset((U8 *)&cfmPst, 0, sizeof(Pst));
@@ -2117,6 +2117,13 @@ int MacHdlCellCfgReq
    memcpy(&cellCb->macCellCfg,macCellCfg,sizeof(MacCellCfg));
    rgCb[inst].cell = cellCb;
 
+   MAC_ALLOC(macCellCb,sizeof(MacCellCb));
+       if(macCellCb == NULLP)
+       {
+      DU_LOG("\nMAC : macCellCb is NULL at handling of macCellCfg\n");
+      return RFAILED;
+   }
+   macCb.macCell = macCellCb;
    /* Send cell cfg to scheduler */
    ret = MacSchCellCfgReq(pst, macCellCfg);
        if(ret != ROK)
@@ -2159,15 +2166,26 @@ int MacSchCellCfgReq
        schCellCfg.phyCellId = macCellCfg->phyCellId;
        schCellCfg.bandwidth = macCellCfg->dlCarrCfg.bw;
        schCellCfg.dupMode = macCellCfg->dupType;
-       schCellCfg.ssbPbchPwr = macCellCfg->ssbCfg.ssbPbchPwr;
-       schCellCfg.scsCommon = macCellCfg->ssbCfg.scsCmn;
-       schCellCfg.ssbOffsetPointA = macCellCfg->ssbCfg.ssbOffsetPointA;
-       schCellCfg.ssbPeriod = macCellCfg->ssbCfg.ssbPeriod;
-       schCellCfg.ssbSubcOffset = macCellCfg->ssbCfg.ssbScOffset;
+
+       /* fill ssb scheduler parameters */
+       schCellCfg.ssbSchCfg.ssbPbchPwr = macCellCfg->ssbCfg.ssbPbchPwr;
+       schCellCfg.ssbSchCfg.scsCommon = macCellCfg->ssbCfg.scsCmn;
+       schCellCfg.ssbSchCfg.ssbOffsetPointA = macCellCfg->ssbCfg.ssbOffsetPointA;
+       schCellCfg.ssbSchCfg.ssbPeriod = macCellCfg->ssbCfg.ssbPeriod;
+       schCellCfg.ssbSchCfg.ssbSubcOffset = macCellCfg->ssbCfg.ssbScOffset;
        for(uint8_t idx=0; idx<SSB_MASK_SIZE; idx++)
        {
-      schCellCfg.nSSBMask[idx] = macCellCfg->ssbCfg.ssbMask[idx]; 
+      schCellCfg.ssbSchCfg.nSSBMask[idx] = macCellCfg->ssbCfg.ssbMask[idx]; 
        }
+
+       /* fill SIB1 scheduler parameters */
+       schCellCfg.sib1SchCfg.sib1PduLen = macCellCfg->sib1Cfg.sib1PduLen; 
+       schCellCfg.sib1SchCfg.sib1NewTxPeriod = macCellCfg->sib1Cfg.sib1NewTxPeriod; 
+       schCellCfg.sib1SchCfg.sib1RepetitionPeriod = macCellCfg->sib1Cfg.sib1RepetitionPeriod; 
+       schCellCfg.sib1SchCfg.coresetZeroIndex = macCellCfg->sib1Cfg.coresetZeroIndex; 
+       schCellCfg.sib1SchCfg.searchSpaceZeroIndex = macCellCfg->sib1Cfg.searchSpaceZeroIndex; 
+       schCellCfg.sib1SchCfg.sib1Mcs = macCellCfg->sib1Cfg.sib1Mcs; 
+
    cfgPst.srcProcId = pst->dstProcId;
        cfgPst.dstProcId = pst->srcProcId;
        cfgPst.srcEnt    = ENTRG;