[Epic-ID: ODUHIGH-475][Task-ID: ODUHIGH-476] O1 integration fixes
[o-du/l2.git] / src / cu_stub / cu_stub.h
index fed791c..1a57317 100644 (file)
 #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.81", "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.82"
-#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"}
 #endif
 
-#define DU_EGTP_PORT  (int[]){39001, 39002}
-#define CU_EGTP_PORT (int[]){39003, 39004}
+#define LOCAL_NODE_TYPE SERVER
+#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
    }\
 }
 
+#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,
+   HO_REQ_ACK,
+   UE_CTXT_REL
+}XnEventType;
+
 typedef enum
 {
    CELL_INACTIVE,
@@ -128,8 +154,12 @@ typedef struct cuCfgParams
 
 typedef struct handoverInfo
 {
-   uint32_t sourceDuId;
-   uint32_t targetDuId;
+   HandoverType HOType;
+   uint32_t srcNodeId;   /* If Inter_DU HO, this is Source DU ID. In case of Inter CU HO, this is Source CU ID */
+   uint32_t tgtNodeId;   /* If Inter_DU HO, this is Taregt DU ID. In case of Inter CU HO, this is Target CU ID */
+   uint32_t tgtCellId;   /* Cell Id in target node to which UE is to be handed over */
+   uint8_t  cuUeF1apIdSrc;  /* Used for Inter-CU HO. CU UE F1AP ID of UE in source CU */
+   uint8_t  cuUeF1apIdTgt;  /* Used for Inter-CU HO. CU UE F1AP ID of UE in target CU */
 }HandoverInfo;
 
 typedef struct dlAmCfg
@@ -297,6 +327,7 @@ typedef struct cuUeCb
    uint32_t  crnti;
    uint8_t   gnbDuUeF1apId;
    uint8_t   gnbCuUeF1apId;
+   uint16_t  pdcpSn;
    uint8_t   numSrb;
    SrbInfo   srbList[MAX_NUM_SRB];
    uint8_t   numDrb;
@@ -304,6 +335,7 @@ typedef struct cuUeCb
    F1apMsgDb f1apMsgDb;
    UeState   state;
 #ifdef NR_DRX
+   bool      drxCfgPresent;
    DrxCfg    drxCfg;
 #endif
    HandoverInfo hoInfo;
@@ -325,6 +357,7 @@ typedef struct duDb
    CuCellCb cellCb[MAX_NUM_CELL];  
    uint8_t  numUe;
    CuUeCb   ueCb[MAX_NUM_CELL * MAX_NUM_UE];
+   CuUeCb   *tempUeCtxtInHo;
 }DuDb;
 
 typedef struct cuGlobalCb