+/**
+ * @brief Layer Manager Configuration request handler for Scheduler
+ *
+ * @details
+ *
+ * Function : MacSchGenCfgReq
+ *
+ * This function receives general configurations for Scheduler
+ * from DU APP and forwards to Scheduler.
+ *
+ * @param[in] Pst *pst, the post structure
+ * @param[in] RgMngmt *cfg, the configuration parameter's structure
+ * @return S16
+ * -# ROK
+ **/
+#ifdef ANSI
+PUBLIC S16 MacSchGenCfgReq
+(
+Pst *pst, /* post structure */
+RgMngmt *cfg /* config structure */
+)
+#else
+PUBLIC S16 MacSchGenCfgReq(pst, cfg)
+Pst *pst; /* post structure */
+RgMngmt *cfg; /* config structure */
+#endif
+{
+ printf("\nReceived Scheduler gen config at MAC");
+ pst->dstInst = DEFAULT_CELLS + 1;
+ HandleSchGenCfgReq(pst, cfg);
+
+ return ROK;
+}
+
+/**
+ * @brief Layer Manager Configuration response from Scheduler
+ *
+ * @details
+ *
+ * Function : SchSendCfgCfm
+ *
+ * This function sends general configurations response from
+ * Scheduler to DU APP.
+ *
+ * @param[in] Pst *pst, the post structure
+ * @param[in] RgMngmt *cfm, the configuration confirm structure
+ * @return S16
+ * -# ROK
+ **/
+#ifdef ANSI
+PUBLIC S16 SchSendCfgCfm
+(
+Pst *pst, /* post structure */
+RgMngmt *cfm /* config confirm structure */
+)
+#else
+PUBLIC S16 SchSendCfgCfm(pst, cfm)
+Pst *pst; /* post structure */
+RgMngmt *cfm; /* config confirm structure */
+#endif
+{
+ printf("\nSending Scheduler config confirm to DU APP");
+ RgMiLrgSchCfgCfm(pst, cfm);
+
+ RETVALUE(ROK);
+}
+
+/**
+ * @brief Layer Manager Configuration request handler.
+ *
+ * @details
+ *
+ * Function : MacSchCfgReq
+ *
+ * This function handles the gNB and cell configuration
+ * request received from DU APP.
+ * This API unapcks and forwards the config towards SCH
+ *
+ * @param[in] Pst *pst
+ * @param[in] RgrCfgTransId transId
+ * @param[in] RgrCfgReqInfo *cfgReqInfo
+ * @return S16
+ * -# ROK
+ **/
+#ifdef ANSI
+PUBLIC S16 MacSchCfgReq
+(
+ Pst *pst,
+ RgrCfgTransId transId,
+ RgrCfgReqInfo *cfgReqInfo
+)
+#else
+PUBLIC S16 MacSchCfgReq(pst, transId, cfgReqInfo)
+ Pst *pst;
+ RgrCfgTransId transId;
+ RgrCfgReqInfo *cfgReqInfo;
+#endif
+{
+ printf("\nReceived Scheduler config at MAC");
+ pst->dstInst = DEFAULT_CELLS + 1;
+ HandleSchCfgReq(pst, transId, cfgReqInfo);
+
+ RETVALUE(ROK);
+
+} /* end of MacSchCfgReq*/
+
+\f
+/***********************************************************
+ *
+ * Func : macCellCfgFillCfmPst
+ *
+ *
+ * Desc : Fills the Confirmation Post Structure cfmPst
+ *
+ * Ret : Void
+ *
+ * Notes:
+ *
+ * File : rg_lmm.c
+ *
+ **********************************************************/
+Void macCellCfgFillCfmPst
+(
+Pst *reqPst,
+Pst *cfmPst
+)
+{
+ Inst inst;
+ inst = reqPst->dstInst;
+
+ cfmPst->srcEnt = rgCb[inst].rgInit.ent;
+ cfmPst->srcInst = rgCb[inst].rgInit.inst;
+ cfmPst->srcProcId = rgCb[inst].rgInit.procId;
+
+ cfmPst->srcEnt = reqPst->dstEnt;
+ cfmPst->dstEnt = reqPst->srcEnt;
+ cfmPst->srcInst = reqPst->dstInst;
+ cfmPst->dstInst = reqPst->srcInst;
+ cfmPst->srcProcId = reqPst->dstProcId;
+ cfmPst->dstProcId = reqPst->srcProcId;
+
+ cfmPst->selector = LRG_SEL_LC;
+ cfmPst->prior = reqPst->prior;
+ cfmPst->route = reqPst->route;
+ cfmPst->region = reqPst->region;
+ cfmPst->pool = reqPst->pool;
+ cfmPst->event = EVENT_MAC_CELL_CONFIG_CFM;
+
+ RETVOID;
+}
+
+/**
+ * @brief Layer Manager Configuration request handler.
+ *
+ * @details
+ *
+ * Function : handleMacCellCfgReq
+ *
+ * This function handles the gNB and cell configuration
+ * request received from DU APP.
+ * This API unapcks and forwards the config towards SCH
+ *
+ * @param[in] Pst *pst
+ * @param[in] MacCellCfg *macCellCfg
+ * @return S16
+ * -# ROK
+ **/
+S16 handleMacCellCfgReq
+(
+ Pst *pst,
+ MacCellCfg *macCellCfg
+)
+{
+ U16 ret = ROK;
+ MacCellCfgCfm macCellCfgCfm;
+ RgCellCb *cellCb;
+ Pst cnfPst;
+ Inst inst = pst->dstInst;
+
+ cellCb = rgCb[inst].cell;
+ memcpy(&cellCb->macCellCfg,macCellCfg,sizeof(MacCellCfg));
+
+ macCellCfgFillCfmPst(pst,&cnfPst);
+
+ macCellCfgCfm.transId = macCellCfg->transId;
+ //ret = cmPackLcMacCellCfgCfm(&cnfPst,&macCellCfgCfm);
+ ret = (*packMacCellCfmMt[cnfPst.selector])(&cnfPst,&macCellCfgCfm);
+ return ret;
+} /* end of handleMacCellCfgReq */
+