1 /******************************************************************************
2 ###############################################################################
3 # Copyright (c) [2017-2020] [ICT/CAS] #
4 # Licensed under the ORAN Software License v1.0 (License) #
5 ###############################################################################
6 ******************************************************************************/
9 #ifndef __CUMODULECOMMONH__
10 #define __CUMODULECOMMONH__
16 #include "gnbCommon.h"
17 #include "cuModuleEnum.h"
19 #define MAX_LENGTH_RAN_NAME 150
21 #define CU_MAX_PLMN_NUM 6
22 #define CU_MAX_UES_PER_CELL 32
23 #define CU_MAX_DU_NUM 2
25 #define CU_MAX_AMF_NUM 2
26 #define CU_MAX_UPF_NUM 2
27 #define CU_MAX_CUUP_NUM 4
29 #define CU_MAX_CUCP_NUM 2
32 #define CU_SEC_SNOW3G_ALGO_BITMASK 0x01
33 #define CU_SEC_AES_ALGO_BITMASK 0x02
34 #define CU_SEC_ZUC_ALGO_BITMASK 0x03
36 #define CU_MAX_AS_SEC_ALGOS 4
38 #define CU_MAX_SNSSAI_NUM 3
40 typedef enum cuSecAlgo_
49 #define CU_INVALID_AP_ID 0xFFFFFFFF;
51 #define CU_SET_CU_UE_F1AP_ID(_cuUeF1apId,_cellIdx,_ueIdx) CU_SET_TRANS_ID(_cuUeF1apId,_cellIdx,_ueIdx,0)
54 typedef UINT32 gNBId_t;
62 /* Ran name, a string */
63 typedef struct RanName
65 char nodeName[MAX_LENGTH_RAN_NAME];
68 /* Tracking Area Code */
74 typedef struct cuepsTac_s
80 #define S_NSSAI_SD_PRESENT (1 << 0)
85 UINT32 sd:24;/*optional*/
91 SNssai_t sNssai[CU_MAX_SNSSAI_NUM];
95 typedef struct Timestamp
100 typedef struct cuNrCgi
113 typedef UINT64 MaskedImeiSv_t;
115 /* UE Identity Index value */
116 typedef struct UeIdIdxValue
118 UINT16 ueIdIdxValue:10;
122 typedef UINT32 GtpTeid_t;
124 typedef struct recomRanGnbId
130 typedef struct transLayerAddr
132 UINT8 transLayerAddress[20];
133 UINT8 bitStringSize; /* bit string size in bytes */
136 typedef struct secuResult
138 IPResult_e integrityProtectionResult;
139 CPResult_e confidentialityProtectionResult;
142 typedef struct gtpTunnel
144 TransLayerAddr_t transLayerAddr;
148 typedef struct upTransLayerInfo
150 GtpTunnel_t gtpTunnel;
151 } UpTransLayerInfo_t;
155 IPIndication_e IPIndication;
156 CPIndication_e CPIndication;
157 MaxIpDataRate_e maxIPdataRate;
160 #define PRIORITY_LEVEL_QOS_PRESENT (1 << 0)
161 #define NON_DYNAMIC_AVERAGING_WINDOW_PRESENT (1 << 1)
162 #define NON_DYNAMIC_MAX_DATA_BURST_VOLUME (1 << 2)
163 typedef struct nonDynamic5QIDescr
167 INT64 priorityLevelQos; /* OPTIONAL */
168 INT64 averagingWindow; /* OPTIONAL */
169 INT64 maxDataBurstVolume; /* OPTIONAL */
170 } NonDynamic5QIDescr_t;
178 #define FIVEQI_PRESENT (1 << 0)
179 #define DELAY_CRITICAL_PRESENT (1 << 1)
180 #define DYNAMIC_AVERAGING_WINDOW_PRESENT (1 << 2)
181 #define DYNAMIC_MAX_DATA_BURST_VOLUME (1 << 3)
182 typedef struct dynamic5QIDescr
185 INT64 priorityLevelQos;
186 INT64 packetDelayBudget;
187 PackErrorRate_t packetErrorRate;
188 INT64 fiveQI; /* OPTIONAL */
189 Dynamic5QIDelayCritical_e delayCritical; /* OPTIONAL */
190 INT64 averagingWindow; /* OPTIONAL */
191 INT64 maxDataBurstVolume; /* OPTIONAL */
194 typedef struct QosCharact
196 QosCharacterPR_e present;
198 NonDynamic5QIDescr_t nonDynamic5QI;
199 Dynamic5QIDescr_t dynamic5QI;
205 PriorityLevel_e priorityLevel;
206 PreEmptionCapability_e pre_emptionCapability;
207 PreEmptionVulnerability_e pre_emptionVulnerability;
208 }AllocAndRetenPriority_t;
212 SecuResult_t securityResult;
213 SecuInd_t securityIndication;
214 }UserPlaneSecurInfo_t;