X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=src%2Fdu_app%2Fdu_cfg.c;h=f67ef9e962636be632384e1b17fba1e16dec7d47;hb=5ea4c59cb4dd37164953218b0bd355284e11d22c;hp=e4b8e06ed46b1cc7aa2d9eba5db75894cae16a3b;hpb=3bc82007f2202c2feb9644137454888ce6e992ed;p=o-du%2Fl2.git diff --git a/src/du_app/du_cfg.c b/src/du_app/du_cfg.c index e4b8e06ed..f67ef9e96 100644 --- a/src/du_app/du_cfg.c +++ b/src/du_app/du_cfg.c @@ -17,9 +17,14 @@ *******************************************************************************/ /* This file contains all utility functions */ -#include "du_cfg.h" +#include "du_mgr.h" +#include "du_sys_info_hdl.h" +#include "MIB.h" +#include "PLMN-IdentityInfo.h" +#include "odu_common_codec.h" extern DuCfgParams duCfgParam; +extern char encBuf[ENC_BUF_MAX_LEN]; /* Filling Slot configuration as : @@ -37,7 +42,7 @@ extern DuCfgParams duCfgParam; * * @details * - * Function : fillSlotConfig + * Function : FillSlotConfig * * Functionality:Fill the Slot configuration values * @@ -46,7 +51,7 @@ extern DuCfgParams duCfgParam; * RFAILED - failure * * ****************************************************************/ -void fillSlotConfig() +void FillSlotConfig() { U8 slot; U8 symbol; @@ -54,16 +59,16 @@ void fillSlotConfig() for(slot = 0; slot <= 3; slot++) { for(symbol = 0; symbol < MAX_SYMB_PER_SLOT; symbol++) - duCfgParam.clCellCfg.tddCfg.slotCfg[slot][symbol] = DL_SLOT; + duCfgParam.macCellCfg.tddCfg.slotCfg[slot][symbol] = DL_SLOT; } - duCfgParam.clCellCfg.tddCfg.slotCfg[3][10] = GUARD_SLOT; - duCfgParam.clCellCfg.tddCfg.slotCfg[3][11] = GUARD_SLOT; - duCfgParam.clCellCfg.tddCfg.slotCfg[3][12] = GUARD_SLOT; - duCfgParam.clCellCfg.tddCfg.slotCfg[3][13] = UL_SLOT; + duCfgParam.macCellCfg.tddCfg.slotCfg[3][10] = GUARD_SLOT; + duCfgParam.macCellCfg.tddCfg.slotCfg[3][11] = GUARD_SLOT; + duCfgParam.macCellCfg.tddCfg.slotCfg[3][12] = GUARD_SLOT; + duCfgParam.macCellCfg.tddCfg.slotCfg[3][13] = UL_SLOT; for(symbol = 0; symbol < MAX_SYMB_PER_SLOT; symbol++) - duCfgParam.clCellCfg.tddCfg.slotCfg[4][symbol] = UL_SLOT; + duCfgParam.macCellCfg.tddCfg.slotCfg[4][symbol] = UL_SLOT; } @@ -73,11 +78,11 @@ void fillSlotConfig() * * @details * - * Function : readClCfg + * Function : readMacCfg * * Functionality: * - Fills up the cell configuration for CL. - * - Calls fillSlotConfig() + * - Calls FillSlotConfig() * * @params[in] void * @return ROK - success @@ -87,99 +92,148 @@ void fillSlotConfig() /* This function is used to fill up the cell configuration for CL */ -S16 readClCfg() +S16 readMacCfg() { - duCfgParam.clCellCfg.carrierId = CARRIER_IDX; + duCfgParam.macCellCfg.carrierId = CARRIER_IDX; /* Cell configuration */ - duCfgParam.clCellCfg.cellId = NR_CELL_ID; - duCfgParam.clCellCfg.phyCellId = NR_PCI; - duCfgParam.clCellCfg.dupType = DUPLEX_MODE; + duCfgParam.macCellCfg.cellId = NR_CELL_ID; + duCfgParam.macCellCfg.phyCellId = NR_PCI; + duCfgParam.macCellCfg.dupType = DUPLEX_MODE; /* DL carrier configuration */ - duCfgParam.clCellCfg.dlCarrCfg.pres = TRUE; - duCfgParam.clCellCfg.dlCarrCfg.bw = SUL_ARFCN; - duCfgParam.clCellCfg.dlCarrCfg.freq = NR_ARFCN; - duCfgParam.clCellCfg.dlCarrCfg.k0[0] = 1; - duCfgParam.clCellCfg.dlCarrCfg.k0[1] = 1; - duCfgParam.clCellCfg.dlCarrCfg.k0[2] = 1; - duCfgParam.clCellCfg.dlCarrCfg.k0[3] = 1; - duCfgParam.clCellCfg.dlCarrCfg.k0[4] = 1; - duCfgParam.clCellCfg.dlCarrCfg.gridSize[0] = 1; - duCfgParam.clCellCfg.dlCarrCfg.gridSize[1] = 1; - duCfgParam.clCellCfg.dlCarrCfg.gridSize[2] = 1; - duCfgParam.clCellCfg.dlCarrCfg.gridSize[3] = 1; - duCfgParam.clCellCfg.dlCarrCfg.gridSize[4] = 1; - duCfgParam.clCellCfg.dlCarrCfg.numAnt = NUM_TX_ANT; + duCfgParam.macCellCfg.dlCarrCfg.pres = TRUE; + duCfgParam.macCellCfg.dlCarrCfg.bw = BANDWIDTH; + duCfgParam.macCellCfg.dlCarrCfg.freq = NR_ARFCN; + duCfgParam.macCellCfg.dlCarrCfg.k0[0] = 1; + duCfgParam.macCellCfg.dlCarrCfg.k0[1] = 1; + duCfgParam.macCellCfg.dlCarrCfg.k0[2] = 1; + duCfgParam.macCellCfg.dlCarrCfg.k0[3] = 1; + duCfgParam.macCellCfg.dlCarrCfg.k0[4] = 1; + duCfgParam.macCellCfg.dlCarrCfg.gridSize[0] = 1; + duCfgParam.macCellCfg.dlCarrCfg.gridSize[1] = 1; + duCfgParam.macCellCfg.dlCarrCfg.gridSize[2] = 1; + duCfgParam.macCellCfg.dlCarrCfg.gridSize[3] = 1; + duCfgParam.macCellCfg.dlCarrCfg.gridSize[4] = 1; + duCfgParam.macCellCfg.dlCarrCfg.numAnt = NUM_TX_ANT; /* UL Carrier configuration */ - duCfgParam.clCellCfg.ulCarrCfg.pres = TRUE; - duCfgParam.clCellCfg.ulCarrCfg.bw = SUL_ARFCN; - duCfgParam.clCellCfg.ulCarrCfg.freq = NR_ARFCN; - duCfgParam.clCellCfg.ulCarrCfg.k0[0] = 1; - duCfgParam.clCellCfg.ulCarrCfg.k0[1] = 1; - duCfgParam.clCellCfg.ulCarrCfg.k0[2] = 1; - duCfgParam.clCellCfg.ulCarrCfg.k0[3] = 1; - duCfgParam.clCellCfg.ulCarrCfg.k0[4] = 1; - duCfgParam.clCellCfg.ulCarrCfg.gridSize[0] = 1; - duCfgParam.clCellCfg.ulCarrCfg.gridSize[1] = 1; - duCfgParam.clCellCfg.ulCarrCfg.gridSize[2] = 1; - duCfgParam.clCellCfg.ulCarrCfg.gridSize[3] = 1; - duCfgParam.clCellCfg.ulCarrCfg.gridSize[4] = 1; - duCfgParam.clCellCfg.ulCarrCfg.numAnt = NUM_RX_ANT; - - duCfgParam.clCellCfg.freqShft = FREQ_SHIFT_7P5KHZ; + duCfgParam.macCellCfg.ulCarrCfg.pres = TRUE; + duCfgParam.macCellCfg.ulCarrCfg.bw = SUL_ARFCN; + duCfgParam.macCellCfg.ulCarrCfg.freq = NR_ARFCN; + duCfgParam.macCellCfg.ulCarrCfg.k0[0] = 1; + duCfgParam.macCellCfg.ulCarrCfg.k0[1] = 1; + duCfgParam.macCellCfg.ulCarrCfg.k0[2] = 1; + duCfgParam.macCellCfg.ulCarrCfg.k0[3] = 1; + duCfgParam.macCellCfg.ulCarrCfg.k0[4] = 1; + duCfgParam.macCellCfg.ulCarrCfg.gridSize[0] = 1; + duCfgParam.macCellCfg.ulCarrCfg.gridSize[1] = 1; + duCfgParam.macCellCfg.ulCarrCfg.gridSize[2] = 1; + duCfgParam.macCellCfg.ulCarrCfg.gridSize[3] = 1; + duCfgParam.macCellCfg.ulCarrCfg.gridSize[4] = 1; + duCfgParam.macCellCfg.ulCarrCfg.numAnt = NUM_RX_ANT; + + duCfgParam.macCellCfg.freqShft = FREQ_SHIFT_7P5KHZ; /* SSB configuration */ - duCfgParam.clCellCfg.ssbCfg.ssbPbchPwr = SSB_PBCH_PWR; - duCfgParam.clCellCfg.ssbCfg.bchPayload = BCH_PAYLOAD; - duCfgParam.clCellCfg.ssbCfg.scsCmn = SUBCARRIER_SPACING; - duCfgParam.clCellCfg.ssbCfg.ssbPrbOffset = PRB_OFFSET; - duCfgParam.clCellCfg.ssbCfg.betaPss = BETA_PSS; - duCfgParam.clCellCfg.ssbCfg.ssbPeriod = SSB_PERIODICITTY; - duCfgParam.clCellCfg.ssbCfg.ssbSubcOffset = SSB_SUBCARRIER_OFFSET; - duCfgParam.clCellCfg.ssbCfg.mibPdu = 104; - duCfgParam.clCellCfg.ssbCfg.nSSBMask[0] = 2162721; - duCfgParam.clCellCfg.ssbCfg.nSSBMask[1] = 0; - duCfgParam.clCellCfg.ssbCfg.multCarrBand = SSB_MULT_CARRIER_BAND; - duCfgParam.clCellCfg.ssbCfg.multCellCarr = MULT_CELL_CARRIER; + duCfgParam.macCellCfg.ssbCfg.ssbPbchPwr = SSB_PBCH_PWR; + duCfgParam.macCellCfg.ssbCfg.bchPayloadFlag = BCH_PAYLOAD; + duCfgParam.macCellCfg.ssbCfg.scsCmn = SUBCARRIER_SPACING; + duCfgParam.macCellCfg.ssbCfg.ssbOffsetPointA = OFFSET_TO_POINT_A; + duCfgParam.macCellCfg.ssbCfg.betaPss = BETA_PSS; + duCfgParam.macCellCfg.ssbCfg.ssbPeriod = SSB_PERIODICITTY; + duCfgParam.macCellCfg.ssbCfg.ssbScOffset = SSB_SUBCARRIER_OFFSET; + duCfgParam.macCellCfg.ssbCfg.ssbMask[0] = 1; /* only one SSB is transmitted */ + duCfgParam.macCellCfg.ssbCfg.ssbMask[1] = 0; + if(BuildMibPdu() != ROK) + { + DU_LOG("\nFailed to build MIB PDU"); + memset(&duCfgParam.macCellCfg.ssbCfg.mibPdu, 0, 3*sizeof(uint8_t)); + } + else + { + for(uint8_t idx=0; idxbuf == NULL || bitString->size <= 0) { DU_LOG("\nDU_APP : Bit string is empty"); 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; }