#endif
/* MACROS */
+#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
//TODO: while testing for TDD, Mu1 and 100 MHz, this flag must be enabled
#ifdef NR_TDD
#define DUPLEX_MODE DUP_MODE_TDD
-#define NR_NUMEROLOGY 1
#define NR_DL_ARFCN 623400
#define NR_UL_ARFCN 623400
#define NR_FREQ_BAND 78
#define NR_BANDWIDTH BANDWIDTH_100MHZ
#else
#define DUPLEX_MODE DUP_MODE_FDD
-#define NR_NUMEROLOGY 0
#define NR_DL_ARFCN 428000
#define NR_UL_ARFCN 390000
#define NR_FREQ_BAND 1
/* Macro define for PUCCH Configuration */
#define PUCCH_RSRC_COMMON 0
-#define PUCCH_GROUP_HOPPING 0 /* Neither sequence hopping nor group hopping */
+#define PUCCH_NEITHER_HOPPING 0 /* Neither sequence hopping nor group hopping */
#define PUCCH_P0_NOMINAL -74
/* MACRO defines for TDD DL-UL Configuration */
#define DRX_SLOT_OFFSET 0
#endif
+/* In case of initial configuration we are supporting only 2 measurement
+ * information RRU.PrbTotDl and RRU.PrbTotUl.
+ * In case of configuration modification we are supporting 3 measurement
+ * information RRU.PrbTotDl, RRU.PrbTotUl and UECNTX.RelReq */
+#define NUM_OF_MEASUREMENT_INFO_SUPPORTED(_configType) \
+ ((_configType == CONFIG_ADD) ? 2 :3)
+
typedef enum
{
GNBDU,
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;
+ uint16_t maxNumDrb;
+ uint16_t maxSupportedUes;
+ uint32_t maxUe;
+ ThreadInfo threadInfo;
+ SctpParams sctpParams; /* SCTP Params */
+ F1EgtpParams egtpParams; /* EGTP Params */
SchedulerCfg schedCfg;
F1DuSrvdCellInfo srvdCellLst[MAX_NUM_CELL]; /* Serving cell list *///TODO: this must be removed eventually
F1RrcVersion rrcVersion; /* RRC version */
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);