X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=src%2Fdu_app%2Fdu_cfg.c;h=f67ef9e962636be632384e1b17fba1e16dec7d47;hb=refs%2Fchanges%2F67%2F3167%2F4;hp=4fd8612a69e10c49920ac2e16fba4af975ed1459;hpb=3a52fbb41a099e37ef072276055cf765828db299;p=o-du%2Fl2.git diff --git a/src/du_app/du_cfg.c b/src/du_app/du_cfg.c index 4fd8612a6..f67ef9e96 100644 --- a/src/du_app/du_cfg.c +++ b/src/du_app/du_cfg.c @@ -17,7 +17,8 @@ *******************************************************************************/ /* 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" @@ -58,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; } @@ -77,7 +78,7 @@ void FillSlotConfig() * * @details * - * Function : readClCfg + * Function : readMacCfg * * Functionality: * - Fills up the cell configuration for CL. @@ -91,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; }