X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=src%2Fcu_stub%2Fcu_stub.h;h=08cb36b0ff346953d1b8c8eb2a1e86f91b5a3a78;hb=57b70bdb263c6f9b46a0572c3ea7ee9571eb2e48;hp=8b20b4dbdb5b2863515798803deb38c172fdcaba;hpb=0f3443e19182284b96f302a545e578cd55225dae;p=o-du%2Fl2.git diff --git a/src/cu_stub/cu_stub.h b/src/cu_stub/cu_stub.h index 8b20b4dbd..08cb36b0f 100644 --- a/src/cu_stub/cu_stub.h +++ b/src/cu_stub/cu_stub.h @@ -20,23 +20,28 @@ #define __CU_MGR_MAIN_H__ #define CU_ID 1 -#define CU_NAME "ORAN_OAM_CU" +#define CU_NAME "ORAN OAM CU" #define DU_IP_V6_ADDR "0000:0000:0000:0000:0000:0000:0000:0001" #define CU_IP_V6_ADDR "0000:0000:0000:0000:0000:0000:0000:0011" #ifndef O1_ENABLE -#define DU_IP_V4_ADDR (char*[]){"192.168.130.85", "192.168.130.83"} -#define DU_SCTP_PORT (int[]){38472, 38473} +#define LOCAL_IP_CU "192.168.130.82" -#define CU_IP_V4_ADDR "192.168.130.86" -#define CU_SCTP_PORT_TO_DU (int[]){38472, 38473} +#define F1_SCTP_PORT 38472 /* As per the spec 38.472, the registered port number for F1AP is 38472 */ +#define NUM_F1_ASSOC 1 +#define REMOTE_IP_DU (char*[]){"192.168.130.81", "192.168.130.83"} + +#define XN_SCTP_PORT 38422 /* As per 3GPP TS 38.422, The SCTP Destination Port number value assigned by IANA to be used for XnAP is 38422 */ +#define NUM_XN_ASSOC 0 +#define REMOTE_IP_CU (char*[]){"192.168.130.84"} +#define LOCAL_NODE_TYPE SERVER #endif -#define DU_EGTP_PORT (int[]){39001, 39002} -#define CU_EGTP_PORT (int[]){39003, 39004} +#define F1_EGTP_PORT 2152 /* As per the spec 29.281, the registered port number for GTP-U is 2152 */ #define RRC_VER 0 #define EXT_RRC_VER 5 + #define PLMN_MCC0 3 #define PLMN_MCC1 1 #define PLMN_MCC2 1 @@ -95,6 +100,25 @@ }\ } +#ifdef NR_DRX +/* Set this parameter true of false as per the need to enable or disable drx of + * a particular UE */ +#define DRX_TO_BE_RELEASE true +#endif + +typedef enum +{ + Xn_Based_Inter_CU_HO = 1, + Inter_DU_HO +}HandoverType; + +typedef enum +{ + XN_SETUP_REQ, + XN_SETUP_RSP, + HO_REQ +}XnEventType; + typedef enum { CELL_INACTIVE, @@ -128,8 +152,9 @@ typedef struct cuCfgParams typedef struct handoverInfo { - uint32_t sourceDuId; - uint32_t targetDuId; + HandoverType HOType; + uint32_t sourceId; /* If Inter_DU HO, this is Source DU ID. In case of Inter CU HO, this is Source CU ID */ + uint32_t targetId; /* If Inter_DU HO, this is Taregt DU ID. In case of Inter CU HO, this is Target CU ID */ }HandoverInfo; typedef struct dlAmCfg @@ -252,18 +277,62 @@ typedef struct drbInfo 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; uint32_t crnti; uint8_t gnbDuUeF1apId; uint8_t gnbCuUeF1apId; + uint16_t pdcpSn; uint8_t numSrb; SrbInfo srbList[MAX_NUM_SRB]; uint8_t numDrb; DrbInfo drbList[MAX_NUM_DRB]; F1apMsgDb f1apMsgDb; UeState state; +#ifdef NR_DRX + bool drxCfgPresent; + DrxCfg drxCfg; +#endif HandoverInfo hoInfo; }CuUeCb;