#define CU_SCTP_PORT_TO_DU (int[]){38472, 38473}
#endif
-#define DU_EGTP_PORT 39001
-#define CU_EGTP_PORT 39002
+#define DU_EGTP_PORT (int[]){39001, 39002}
+#define CU_EGTP_PORT (int[]){39003, 39004}
#define RRC_VER 0
#define EXT_RRC_VER 5
#define PLMN_MCC0 3
}\
}
+typedef enum
+{
+ CELL_INACTIVE,
+ CELL_ACTIVE,
+ CELL_DELETION_IN_PROGRESS
+}CellStatusInfo;
typedef enum
{
char cuName[CU_DU_NAME_LEN_MAX];
CuSctpParams sctpParams;
Plmn plmn;
- EgtpParams egtpParams;
+ CuEgtpParams egtpParams;
RrcVersion rrcVersion;
}CuCfgParams;
typedef struct cuCellCb CuCellCb;
+#ifdef NR_DRX
+/* The following list of structures is taken from the DRX-Config section of specification 33.331. */
+typedef struct drxOnDurationTimer
+{
+ bool onDurationTimerValInMs;
+ union
+ {
+ uint8_t subMilliSeconds;
+ uint16_t milliSeconds;
+ }onDurationtimerValue;
+}DrxOnDurationTimer;
+
+typedef struct drxLongCycleStartOffset
+{
+ uint16_t drxLongCycleStartOffsetChoice;
+ uint16_t drxLongCycleStartOffsetVal;
+}DrxLongCycleStartOffset;
+
+typedef struct shortDrx
+{
+ uint16_t drxShortCycle;
+ uint8_t drxShortCycleTimer;
+}ShortDrx;
+
+typedef struct drxCfg
+{
+ DrxOnDurationTimer drxOnDurationTimer;
+ uint16_t drxInactivityTimer;
+ uint8_t drxHarqRttTimerDl;
+ uint8_t drxHarqRttTimerUl;
+ uint16_t drxRetransmissionTimerDl;
+ uint16_t drxRetransmissionTimerUl;
+ DrxLongCycleStartOffset drxLongCycleStartOffset;
+ bool shortDrxPres;
+ ShortDrx shortDrx;
+ uint8_t drxSlotOffset;
+}DrxCfg;
+#endif
+
typedef struct cuUeCb
{
CuCellCb *cellCb;
DrbInfo drbList[MAX_NUM_DRB];
F1apMsgDb f1apMsgDb;
UeState state;
+#ifdef NR_DRX
+ DrxCfg drxCfg;
+#endif
HandoverInfo hoInfo;
}CuUeCb;
uint32_t nrCellId;
uint8_t numUe;
CuUeCb *ueCb[MAX_NUM_UE];
+ CellStatusInfo cellStatus;
};
typedef struct duDb