*******************************************************************************/
/* 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"
/* 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;
/* 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 */
/* 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 */
return RFAILED;
}
strcpy(duCfgParam.srvdCellLst[i].duSysInfo.mibMsg, encBuf);
+ duCfgParam.srvdCellLst[i].duSysInfo.mibLen = encBufSize;
/*gnb DU System Info mib msg*/
BuildSib1Msg();
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;
}
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;
}