#ifndef __DU_CONFIG_H_
#define __DU_CONFIG_H__
-#include "stdbool.h"
-#include "du_app_mac_inf.h"
-#include "du_log.h"
-#include "odu_common_codec.h"
-
/* MACROS */
#define DU_INST 0
#define DU_ID 1
#define DU_IP_V4_ADDR "192.168.130.81"
-#define CU_IP_V4_ADDR "10.0.2.25"
+#define CU_IP_V4_ADDR "192.168.130.82"
#define RIC_IP_V4_ADDR "192.168.130.80"
#define DU_PORT 38472
#define CU_PORT 38472
-#define RIC_PORT 36422
+#define RIC_PORT 36422 /* using X2 port since E2 port not defined */
#define DU_EGTP_PORT 39001
#define CU_EGTP_PORT 39002
#define NR_PCI 1
#define PLMN_MNC1 8
#define PLMN_MNC2 0
#define PLMN_SIZE 3
-#define NR_ARFCN 2079427
+#define NR_DL_ARFCN 385627
+#define NR_UL_ARFCN 386687
#define SUL_ARFCN 100
#define NR_FREQ_BAND 257
#define NR_FREQ_BAND_IND 78
#define BANDWIDTH 20
#define DMRS_TYPE_A_POS 2
#define NUM_SYMBOLS_PER_SLOT 14 /* Number of symbols within a slot */
+#define CORESET0_END_PRB 48
+#define CORESET1_NUM_PRB 24
/* MACRO defines for PRACH Configuration */
#define PRACH_CONFIG_IDX 88
#define PDCCH_SRCH_SPC_TWO_AGG_LVL8_CANDIDATE 2 /* Num of candidate at aggregation level 8 */
#define PDCCH_SRCH_SPC_TWO_AGG_LVL16_CANDIDATE 1 /* Num of candidate at aggregation level 16 */
#define PDCCH_SRCH_SPC_TWO_UE_SPEC_DCI_FORMAT 0 /* format 0-0 and 1-0 */
-#define PDCCH_FREQ_DOM_RSRC 255 /* Frequency domain Resource Value */
#define PDCCH_SYMBOL_WITHIN_SLOT 128 /* Symbol within Slot Value */
#define SIB1_VALUE_TAG 10
-/* MACRCO Ddefine for PDSCH Configuration */
+/* MACRO Ddefine for PDSCH Configuration */
#define PDSCH_K0 0
#define PDSCH_START_SYMBOL 2
#define PDSCH_LENGTH_SYMBOL 12
/* Macro definitions for F1 procedures */
#define CU_DU_NAME_LEN_MAX 30 /* Max length of CU/DU name string */
#define MAX_F1_CONNECTIONS 65536 /* Max num of F1 connections */
-#define DU_MAX_CELLS 1 /* Max num of cells served by gNB-DU */
-#define DU_MAX_UE 1 /* Maximum number of UE Ids */
#define MAX_PLMN 6 /* Max num of broadcast PLMN ids */
#define MAXNRARFCN 3279165 /* Maximum values of NRAFCN */
#define MAXNRCELLBANDS 2 /* Maximum number of frequency bands */
uint32_t transId; /* Uniquely identify transaction */
uint32_t duId; /* DU ID */
char duName[CU_DU_NAME_LEN_MAX]; /* DU name */
- F1DuSrvdCellInfo srvdCellLst[DU_MAX_CELLS]; /* Serving cell list */
+ F1DuSrvdCellInfo srvdCellLst[MAX_NUM_CELL]; /* Serving cell list */
F1RrcVersion rrcVersion; /* RRC version */
}F1SetupReq;
typedef struct f1GnbDuCfgUpd
{
uint32_t transId; /* Uniquely identify transaction */
- F1DuSrvdCellInfo srvdCellLstAdd[DU_MAX_CELLS]; /* Served cell list to be added */
- F1DuSrvdCellToDel srvdCellLstMod[DU_MAX_CELLS]; /* Served cell list to be modified */
- NrEcgi srvdCellLstDel[DU_MAX_CELLS]; /* Served cell list to be deleted */
- F1CellStatus cellStatus[DU_MAX_CELLS]; /* Cell status */
- F1DedSIDelUE ueLst[DU_MAX_UE]; /* Ue list that requires dedicated SI delivery */
+ F1DuSrvdCellInfo srvdCellLstAdd[MAX_NUM_CELL]; /* Served cell list to be added */
+ F1DuSrvdCellToDel srvdCellLstMod[MAX_NUM_CELL]; /* Served cell list to be modified */
+ NrEcgi srvdCellLstDel[MAX_NUM_CELL]; /* Served cell list to be deleted */
+ F1CellStatus cellStatus[MAX_NUM_CELL]; /* Cell status */
+ F1DedSIDelUE ueLst[MAX_NUM_UE]; /* Ue list that requires dedicated SI delivery */
uint32_t gnbDuId;
F1TnlAssocToRmv gnbDuTnlAssocRmv[MAX_TNL_ASSOC]; /* TNL Assoc list to remove */
}F1GnbDuCfgUpd;
typedef struct f1GnbDuCfgUpdAck
{
uint32_t transId; /* Uniquely identify transaction */
- F1CuActCellInfo cellLstAct[DU_MAX_CELLS]; /* List of cells to be activated */
+ F1CuActCellInfo cellLstAct[MAX_NUM_CELL]; /* List of cells to be activated */
F1CritDiagnostic critDiagnostic; /* Critical diagnostics */
- NrEcgi cellLstDeact[DU_MAX_CELLS]; /* List of cells to be deactivated */
+ NrEcgi cellLstDeact[MAX_NUM_CELL]; /* List of cells to be deactivated */
}F1GnbDuCfgUpdAck;
typedef struct f1GnbDuCfgUpdFail
typedef struct f1GnbCuCfgUpd
{
uint32_t transId; /* Uniquely identifies transaction */
- F1CuActCellInfo cellLstAct[DU_MAX_CELLS]; /* List of cells to be activated */
- NrEcgi cellLstDeact[DU_MAX_CELLS]; /* List of cells to be deactivated */
+ F1CuActCellInfo cellLstAct[MAX_NUM_CELL]; /* List of cells to be activated */
+ NrEcgi cellLstDeact[MAX_NUM_CELL]; /* List of cells to be deactivated */
F1TnlAssoc assocLstAdd[MAX_TNL_ASSOC]; /* List of TNL assocs to be added */
F1TnlAssoc assocLstUpd[MAX_TNL_ASSOC]; /* List of TNL assocs to be updated */
F1TnlAssocToRmv assocLstRmv[MAX_TNL_ASSOC]; /* List of TNL assocs to be removed */
- F1CellBarred cellToBarList[DU_MAX_CELLS]; /* List of Cells to be barred */
+ F1CellBarred cellToBarList[MAX_NUM_CELL]; /* List of Cells to be barred */
F1ProtectEUTRARsrc protectEutraRsrcList[MAXCELLINENB]; /* List of Protected EUTRA resources */
}F1GnbCuCfgUpd;
typedef struct f1GnbCuCfgUpdAck
{
uint32_t transId; /* Uniquely identify transaction */
- F1ActCellFail actCellFailList[DU_MAX_CELLS]; /* Cells failed to be activated list */
+ F1ActCellFail actCellFailList[MAX_NUM_CELL]; /* Cells failed to be activated list */
F1CritDiagnostic critDiagnostic; /* Critical diagnostics */
F1TnlAssocAddr assocSetupList[MAX_TNL_ASSOC]; /* TNL Assoc Setup list */
F1TnlAssocSetupFail assocSetupFailList[MAX_TNL_ASSOC]; /* TNL Assoc Setup fail list */
typedef struct sctpParams
{
F1IpAddr duIpAddr;
- U16 duPort[MAX_DU_PORT];
+ uint16_t duPort[MAX_DU_PORT];
F1IpAddr cuIpAddr;
- U16 cuPort;
+ uint16_t cuPort;
F1IpAddr ricIpAddr;
- U16 ricPort;
+ uint16_t ricPort;
}SctpParams;
typedef struct f1EgtpParams
uint32_t duId;
uint8_t duName[CU_DU_NAME_LEN_MAX];
SchedulerCfg schedCfg;
- F1DuSrvdCellInfo srvdCellLst[DU_MAX_CELLS]; /* Serving cell list *///TODO: this must be removed eventually
+ F1DuSrvdCellInfo srvdCellLst[MAX_NUM_CELL]; /* Serving cell list *///TODO: this must be removed eventually
F1RrcVersion rrcVersion; /* RRC version */
MacCellCfg macCellCfg; /* MAC cell configuration */
MibParams mibParams; /* MIB Params */
/*function declarations */
void FillSlotConfig();
-S16 readClCfg();
-S16 readCfg();
-S16 duReadCfg();
-S16 bitStringToInt(BIT_STRING_t *bitString, uint16_t *val);
+uint8_t readClCfg();
+uint8_t readCfg();
+uint8_t duReadCfg();
uint16_t calcSliv(uint8_t startSymbol, uint8_t lengthSymbol);
#endif /* __DU_CONFIG_H__ */