#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 DU_PORT 38472
-#define CU_PORT 38472
-#define RIC_PORT 36421
+
+#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 DU_EGTP_PORT 39001
-#define CU_EGTP_PORT 39002
+#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 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_5MS 5
-#define SSB_PERIODICITY_10MS 10
-#define SSB_PERIODICITY_20MS 20
-#define SSB_PERIODICITY_40MS 40
-#define SSB_PERIODICITY_80MS 80
-#define SSB_PERIODICITY_160MS 160
+#define SSB_PERIODICITY 20
#define SSB_SUBCARRIER_OFFSET 0
#define SSB_MULT_CARRIER_BAND FALSE
#define MULT_CELL_CARRIER FALSE
#define CORESET1_NUM_PRB 24
/* MACRO defines for PRACH Configuration */
+#ifndef NR_TDD
+#define PRACH_CONFIG_IDX 16
+#else
#define PRACH_CONFIG_IDX 88
+#endif
#define PRACH_MAX_PRB 24 /* As per (spec 38.211-Table 6.3.3.2-1), max allocated PRBs can go upto 24 */
#define PRACH_FREQ_START (MAX_NUM_RB - PRACH_MAX_PRB) /* In order to allocate PRACH from end of the resource grid */
#define PRACH_SEQ_LEN SHORT_SEQUENCE
#define NUM_UNUSED_ROOT_SEQ 0
#define UNUSED_ROOT_SEQ 1
#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 SIB1_VALUE_TAG 10
/* MACRO Ddefine for PDSCH Configuration */
+#define NUM_TIME_DOM_RSRC_ALLOC 2
#define PDSCH_K0_CFG1 0
#define PDSCH_K0_CFG2 1
#define PDSCH_START_SYMBOL 3
#define SPARE 0
#define SSB_SC_OFFSET 0
#define DU_RANAC 1
-#define CELL_IDENTITY 16
+#define CELL_IDENTITY 1
/* Macro definitions for DUtoCuRrcContainer */
-#define CELL_GRP_ID 1
+#define CELL_GRP_ID 0
#define SCH_REQ_ID 0
#define SR_PROHIBIT_TMR 5
#define SR_TRANS_MAX 2
#define PHR_PROHIBHIT_TMR 0
#define PHR_PWR_FACTOR_CHANGE 3
#define PHR_MODE_OTHER_CG 0
-#define SN_FIELD_LEN 0
+#define SN_FIELD_LEN 1
#define T_POLL_RETRANSMIT 8 /* Enum for 45ms */
#define T_POLL_RETRANSMIT_VAL 45 /* Value in ms */
#define POLL_PDU 0 /* Enum for 4 pdus */
#define DEDICATED_RATIO 10
#define NUM_OF_SUPPORTED_SLICE 2
+#ifdef NR_DRX
+/* Macros for Drx configuration */
+#define DRX_ONDURATION_TIMER_VALUE_PRESENT_IN_MS true
+#define DRX_ONDURATION_TIMER_VALUE_IN_SUBMS 32
+#define DRX_ONDURATION_TIMER_VALUE_IN_MS 10
+#define DRX_INACTIVITY_TIMER 2
+#define DRX_HARQ_RTT_TIMER_DL 56
+#define DRX_HARQ_RTT_TIMER_UL 56
+#define DRX_RETRANSMISSION_TIMER_DL 4
+#define DRX_RETRANSMISSION_TIMER_UL 4
+#define DRX_LONG_CYCLE_START_OFFSET_CHOICE 40
+#define DRX_LONG_CYCLE_START_OFFSET_VAL 8
+#define DRX_SHORT_CYCLE_PRESENT true
+#define DRX_SHORT_CYCLE 2
+#define DRX_SHORT_CYCLE_TIMER 2
+#define DRX_SLOT_OFFSET 0
+#endif
+
typedef enum
{
GNBDU,
typedef struct pcchCfg
{
- long dfltPagingCycle; /* Default paging cycle */
- long nAndPagingFrmOffPresent;
- long nAndPagingFrmOff; /* n and Paging Frame offset */
- long numPagingOcc; /* Number of paging occassions in paging frame */
+ uint16_t dfltPagingCycle; /* Default paging cycle */
+ uint8_t nAndPagingFrmOffsetType; /*Number of PagingFrames in PagingCycle defined in terms of T.*/
+ uint8_t pageFrameOffset; /* Paging Frame offset */
+ uint8_t ns; /* Number of paging occassions in paging frame */
+ uint8_t firstPDCCHMontioringType; /* First PDCCH Monitoring Paging Occasion Presence Type*/
+ uint16_t firstPDCCHMontioringInfo[MAX_PO_PER_PF];/*Indicates the first PDCCH monitoring occasion of each PO of the PF*/
}PcchCfg;
typedef struct scsSpecCarrier
long pwrRampingStep; /* Power ramping steps for PRACH */
long raRspWindow; /* RA response window */
long numRaPreamble; /* Total num of preamble used in random access */
- uint8_t ssbPerRachOccPresent;
long numSsbPerRachOcc; /* Numer of SSBs per RACH Occassion */
+ long numCbPreamblePerSsb; /* Number of Contention-Based preamble per SSB */
long contResTimer; /* Contention resolution timer */
long rsrpThreshSsb;
uint8_t rootSeqIdxPresent;
typedef struct ulCfgCommon
{
+ long freqBandInd; /* Uplink frequency band indicator */
long pMax; /* Max UL transmission power that UE applies */
long locAndBw; /* Frequency location and bandwidth */
ScsSpecCarrier ulScsCarrier; /* SCS Specific carrier */
typedef struct srvCellCfgCommSib
{
+ long scs;
DlCfgCommon dlCfg;
UlCfgCommon ulCfg;
uint8_t ssbPosInBurst;
SrvCellCfgCommSib srvCellCfgCommSib;
}Sib1Params;
-typedef struct policyMemberList
-{
- Plmn plmn;
- Snssai snssai;
-}PolicyMemberList;
-
-typedef struct rrmPolicy
-{
- ResourceType rsrcType;
- uint8_t numMemberList;
- PolicyMemberList **memberList;
- uint8_t policyMaxRatio;
- uint8_t policyMinRatio;
- uint8_t policyDedicatedRatio;
-}RrmPolicy;
-
-typedef struct copyOfRecvdSliceCfg
-{
- RrmPolicy **rrmPolicy;
- uint8_t totalRrmPolicy;
- uint8_t totalSliceCount;
-}CopyOfRecvdSliceCfg;
-
typedef struct duCfgParams
{
SctpParams sctpParams; /* SCTP Params */
MacCellCfg macCellCfg; /* MAC cell configuration */
MibParams mibParams; /* MIB Params */
Sib1Params sib1Params; /* SIB1 Params */
- CopyOfRecvdSliceCfg tempSliceCfg;
+ MacSliceCfgReq tempSliceCfg;
}DuCfgParams;
typedef struct f1SetupMsg
char *f1MsgRspBuf;
}F1SetupMsg;
+
+#ifndef O1_ENABLE
+//RRM POLICY STRUCT
+
+typedef struct rRMPolicyMemberList
+{
+ uint8_t mcc[3];
+ uint8_t mnc[3];
+ uint8_t sd[3];
+ uint8_t sst;
+}RRMPolicyMemberList;
+
+typedef enum
+{
+ PRB,
+ PRB_UL,
+ PRB_DL,
+ RRC,
+ DRB
+}RrmResourceType;
+
+typedef struct rrmPolicyList
+{
+ char id[1];
+ RrmResourceType resourceType;
+ uint8_t rRMMemberNum;
+ RRMPolicyMemberList rRMPolicyMemberList[2];
+ uint8_t rRMPolicyMaxRatio;
+ uint8_t rRMPolicyMinRatio;
+ uint8_t rRMPolicyDedicatedRatio;
+}RrmPolicyList;
+#endif
+
DuCfgParams duCfgParam;
/*function declarations */
uint8_t readCfg();
uint8_t duReadCfg();
uint16_t calcSliv(uint8_t startSymbol, uint8_t lengthSymbol);
-
-#ifdef O1_ENABLE
-uint8_t cpyRrmPolicyInDuCfgParams(RrmPolicyList rrmPolicy[], uint8_t policyNum, CopyOfRecvdSliceCfg *tempSliceCfg);
-#endif
+uint8_t cpyRrmPolicyInDuCfgParams(RrmPolicyList rrmPolicy[], uint8_t policyNum, MacSliceCfgReq *tempSliceCfg);
#endif /* __DU_CONFIG_H__ */