#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 39003
+#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 SUL_ARFCN 100
#define SUL_BAND 2
-#define TIME_CFG 0
+#define TIME_CFG 4
+#define MEAS_TIMING_ARFCN 630432
#define CARRIER_IDX 1
#define NUM_TX_ANT 2
#define NUM_RX_ANT 2
#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_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 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 RSS_MEASUREMENT_UNIT DONT_REPORT_RSSI
#define RA_CONT_RES_TIMER 64
#define RA_RSP_WINDOW 10
-#define PRACH_RESTRICTED_SET 0 /* Unrestricted */
-#define ROOT_SEQ_LEN 139
/* MACRCO Ddefine for PDCCH Configuration */
#define PDCCH_SEARCH_SPACE_ID 1 /* Common search space id */
/* 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 MAX_PLMN 1 /* Max num of broadcast PLMN ids */
+
#define MAXNRARFCN 3279165 /* Maximum values of NRAFCN */
#define MAX_NRCELL_BANDS 2 /* Maximum number of frequency bands */
#define MAX_NUM_OF_SLICE_ITEMS 1024 /* Maximum number of signalled slice support items */
#define PHR_PROHIBHIT_TMR 0
#define PHR_PWR_FACTOR_CHANGE 3
#define PHR_MODE_OTHER_CG 0
-#define SN_FIELD_LEN 1
+#define SN_FIELD_LEN_12BIT 0 /*As per Spec 38.331, The network configures only value size12 in SN-FieldLengthAM for SRB */
#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,
uint16_t tac; /* tracking area code */
uint16_t epsTac; /* Configured EPS TAC */
NrModeInfo f1Mode; /* NR mode info : FDD/TDD */
- uint8_t measTimeCfg; /* Measurement timing configuration */
+ uint8_t measTimeCfgDuration; /* Measurement timing configuration */
F1CellDir cellDir; /* Cell Direction */
F1CellType cellType; /* Cell Type */
F1BrdcstPlmnInfo brdcstPlmnInfo[MAX_BPLMN_NRCELL_MINUS_1]; /* Broadcast PLMN Identity Info List */
long cellResvdForOpUse;
long connEstFailCnt;
long connEstFailOffValidity;
+ long connEstFailOffset;
SiSchedInfo siSchedInfo;
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 */
F1EgtpParams egtpParams; /* EGTP Params */
uint32_t maxUe;
uint32_t duId;
- uint8_t duName[CU_DU_NAME_LEN_MAX];
+ char *duName;
SchedulerCfg schedCfg;
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 */
- CopyOfRecvdSliceCfg tempSliceCfg;
+ MacSliceCfgReq tempSliceCfg;
}DuCfgParams;
-typedef struct f1SetupMsg
-{
- uint8_t f1MsgReqBufSize;
- char *f1MsgReqBuf;
- uint8_t f1MsgRspBufSize;
- char *f1MsgRspBuf;
-}F1SetupMsg;
-
-
#ifndef O1_ENABLE
//RRM POLICY STRUCT
DuCfgParams duCfgParam;
/*function declarations */
-void FillSlotConfig();
uint8_t readClCfg();
uint8_t readCfg();
uint8_t duReadCfg();
uint16_t calcSliv(uint8_t startSymbol, uint8_t lengthSymbol);
-uint8_t cpyRrmPolicyInDuCfgParams(RrmPolicyList rrmPolicy[], uint8_t policyNum, CopyOfRecvdSliceCfg *tempSliceCfg);
+uint8_t cpyRrmPolicyInDuCfgParams(RrmPolicyList rrmPolicy[], uint8_t policyNum, MacSliceCfgReq *tempSliceCfg);
#endif /* __DU_CONFIG_H__ */