#define GNB_ID 1 /* As per 38.423,Sec 9.2.2.1, gnbId range b/w 0 to 4294967295 */
#define DU_INST 0
-#define DU_ID 1
-#ifndef O1_ENABLE
-#define DU_IP_V4_ADDR "192.168.130.81"
-#define CU_IP_V4_ADDR "192.168.130.82"
-#define RIC_IP_V4_ADDR "192.168.130.80"
-
-#define F1_SCTP_PORT 38472 /* As per the spec 38.472, the registered port number for F1AP is 38472 */
-#define E2_SCTP_PORT 36421
-#endif
-
-#define F1_EGTP_PORT 2152 /* As per the spec 29.281, the registered port number for GTP-U is 2152 */
#define NR_PCI 1
#define NR_CELL_ID 1
-#define DU_NAME "ORAN OAM DU"
#define CELL_TYPE SMALL
//TODO: while testing for TDD, Mu1 and 100 MHz, this flag must be enabled
#define NORMAL_CYCLIC_PREFIX 0
#define OFFSET_TO_POINT_A 24 /* PRB Offset to Point A */
#define BETA_PSS BETA_PSS_0DB
-#define SSB_PERIODICITY 20
#define SSB_SUBCARRIER_OFFSET 0
#define SSB_FREQUENCY 3000000 /*ssbFrequency in kHz*/
#define SSB_MULT_CARRIER_BAND FALSE
#define MULT_CELL_CARRIER FALSE
-#define FREQ_LOC_BW 28875 /* DL frequency location and bandwidth. Spec 38.508 Table 4.3.1.0B-1*/
-#define UL_P_MAX 23
#define DMRS_TYPE_A_POS 2
#define NUM_SYMBOLS_PER_SLOT 14 /* Number of symbols within a slot */
#define CORESET0_END_PRB 48
#define SSB_PER_RACH 1
#define CB_PREAMBLE_PER_SSB 8
#define PRACH_MULT_CARRIER_BAND FALSE
-#define PRACH_PREAMBLE_RCVD_TGT_PWR -74
#define NUM_RA_PREAMBLE 63
-#define RSRP_THRESHOLD_SSB 31
#ifdef NR_TDD
#define TDD_PERIODICITY TX_PRDCTY_MS_5
#define RA_RSP_WINDOW 10
/* MACRCO Ddefine for PDCCH Configuration */
-#define PDCCH_SEARCH_SPACE_ID 1 /* Common search space id */
-#define PDCCH_CTRL_RSRC_SET_ID 0 /* Control resource set id */
-#define PDCCH_SEARCH_SPACE_ID_SIB1 1 /* Search space id for sib1 */
-#define PDCCH_SEARCH_SPACE_ID_PAGING 1 /* Search space id for paging */
-#define PDCCH_SEARCH_SPACE_ID_RA 1 /* Search spaced id for random access */
-#define PDCCH_SERACH_SPACE_DCI_FORMAT 0
#define PDCCH_CTRL_RSRC_SET_ONE_ID 1
#define PDCCH_CTRL_RSRC_SET_ONE_DURATION 2 /* Duration for control resource set id i */
#define PDCCH_CTRL_RSRC_SET_ONE_PRECOD_GRANULARITY 1 /* Precoded granularity */
#define PDCCH_SRCH_SPC_TWO_UE_SPEC_DCI_FORMAT 0 /* format 0-0 and 1-0 */
#define PDCCH_SYMBOL_WITHIN_SLOT 128 /* Symbol within Slot Value */
-
-#define SIB1_VALUE_TAG 10
-
/* MACRO Ddefine for PDSCH Configuration */
#define NUM_TIME_DOM_RSRC_ALLOC 2
#define PDSCH_K0_CFG1 0
#define PUSCH_START_SYMBOL 3
#define PUSCH_LENGTH_SYMBOL 11
-#define PUSCH_MSG3_DELTA_PREAMBLE 0
-#define PUSCH_P0_NOMINAL_WITH_GRANT -70
#define PUSCH_TRANSFORM_PRECODER 1 /* 1: Disabled */
#define PUSCH_MAX_MIMO_LAYERS 1
#define PUSCH_PROCESS_TYPE2_ENABLED false
/* Macro define for PUCCH Configuration */
#define PUCCH_RSRC_COMMON 0
-#define PUCCH_GROUP_HOPPING 0 /* Neither sequence hopping nor group hopping */
-#define PUCCH_P0_NOMINAL -74
+#define PUCCH_NEITHER_HOPPING 0 /* Neither sequence hopping nor group hopping */
/* MACRO defines for TDD DL-UL Configuration */
#define NUM_DL_SLOTS 7
#define IE_EXTENSION_LIST_COUNT 1
/* Macro definitions for MIB/SIB1 */
-#define SYS_FRAME_NUM 0
#define SPARE 0
-#define SSB_SC_OFFSET 0
-#define DU_RANAC 1
#define CELL_IDENTITY 1
/* Macro definitions for DUtoCuRrcContainer */
char port[2];
}EpIpAddrPort;
-typedef struct f1TaiSliceSuppLst
-{
- uint8_t numSupportedSlices;
- Snssai **snssai;
-}F1TaiSliceSuppLst;
-
typedef struct f1SrvdPlmn
{
Plmn plmn;
Plmn extPlmn; /* Extended available PLMN list */
- F1TaiSliceSuppLst taiSliceSuppLst;
+ SupportedSliceList taiSliceSuppLst;
}F1SrvdPlmn;
typedef struct f1BrdcstPlmnInfo
SrvCellCfgCommSib srvCellCfgCommSib;
}Sib1Params;
+typedef struct threadInfo
+{
+ SSTskId duAppSTskId;
+ uint8_t duAppCoreId;
+ SSTskId egtpSTskId;
+ uint8_t egtpCoreId;
+ SSTskId sctpSTskId;
+ uint8_t sctpCoreId;
+ SSTskId rlcUlSTskId;
+ uint8_t rlcUlCoreId;
+ SSTskId rlcMacSTskId;
+ uint8_t rlcMacCoreId;
+ SSTskId schSTskId;
+ uint8_t schCoreId;
+ SSTskId lwrMacSTskId;
+ uint8_t lwrMacCoreId;
+}ThreadInfo;
+
typedef struct duCfgParams
-{
- SctpParams sctpParams; /* SCTP Params */
- F1EgtpParams egtpParams; /* EGTP Params */
- uint32_t maxUe;
+{
uint32_t duId;
char *duName;
- SchedulerCfg schedCfg;
+ uint16_t maxNumDrb;
+ uint16_t maxSupportedUes;
+ uint32_t maxUe;
+ ThreadInfo threadInfo;
+ SctpParams sctpParams; /* SCTP Params */
+ F1EgtpParams egtpParams; /* EGTP Params */
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 */
Sib1Params sib1Params; /* SIB1 Params */
uint8_t readClCfg();
uint8_t readCfg();
uint8_t duReadCfg();
+void printDuConfig();
+
+uint8_t fillDuSrvdCellSysInfo(F1DuSysInfo *sysInfo);
+
uint16_t calcSliv(uint8_t startSymbol, uint8_t lengthSymbol);
uint8_t cpyRrmPolicyInDuCfgParams(RrmPolicyList rrmPolicy[], uint8_t policyNum, MacSliceCfgReq *tempSliceCfg);