/****************************************************************************** * * Copyright (c) 2020 ICT/CAS. * * Licensed under the O-RAN Software License, Version 1.0 (the "Software License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * https://www.o-ran.org/software * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * *******************************************************************************/ #ifndef __GNB_COMM_TYPE_H__ #define __GNB_COMM_TYPE_H__ /** @brief max cell num */ #define MAX_CELL_NUM 4 /** @brief max cell id */ #define MAX_CELL_ID (MAX_CELL_NUM - 1) /** @brief max ue num */ #define MAX_UE_NUM 42 #define MAX_UE_NUM_PER_CELL 21 /** @brief max ue id */ #define MAX_UE_ID (MAX_UE_NUM - 1) /** @brief max drb num */ #define MAX_DRB_NUM 33 /** @brief max drb id */ #define MAX_DRB_ID (MAX_DRB_NUM - 1) /** @brief max srb num */ #define MAX_SRB_NUM 4 /** @brief max srb id */ #define MAX_SRB_ID (MAX_SRB_NUM - 1) /** @brief max logical channel num */ #define MAX_LCH_NUM 33 #define MAX_PLMN_ID_NUM 8 /** @brief tunnel port */ #define TUNNEL_PORT 2152 #define MAX_PDU_SESSION_NUM (10) #define MAC_CU_DU_TNL_ASSOC_NUM (32) /** @brief Cell ID */ typedef UINT16 CmNrCellId; /** @brief RNTI */ typedef UINT16 CmNrRnti; /** @brief I-RNTI */ typedef UINT64 CmNrIRnti; /** @brief Ue Id */ typedef UINT16 CmNrUeId; /** @brief Radio Bearer ID */ typedef UINT8 CmNrRbId; /** @brief Logical Channel Type */ typedef UINT8 CmNrLcType; /** @brief Radio Bearer ID */ typedef UINT8 CmNrRbId; /** @brief Mode Type TM/UM/AM */ typedef UINT8 CmNrRlcMode; /** @brief Logical Channel ID */ typedef UINT8 CmNrLcId; /** @brief Logical Channel Type */ typedef UINT8 CmNrLcType; /** @brief Sn bits*/ typedef UINT8 CmRlcSnLen; /*见协议38401 8.5 F1 Startup and cells activation*/ typedef enum { CELL_ACTIVE_STATE, CELL_INACTIVE_STATE, }CellState_e; typedef struct PlmnId { UINT8 mcc2:4; UINT8 mcc1:4; UINT8 mnc3:4; UINT8 mcc3:4; UINT8 mnc2:4; UINT8 mnc1:4; } PlmnId_t; /* NR CELL Identity */ typedef struct NrCellId { UINT64 cellId:36; }NrCellId_t; #define TRACKING_AREA_CODE (1<<0) #define RANRC (1<<1) typedef struct plmnInformation { UINT16 bitMask; UINT8 plmnIdNum; PlmnId_t plmnId[MAX_PLMN_ID_NUM]; UINT32 trackingAreaCode; /*option*/ UINT8 ranac; /*option*/ UINT64 cellIdentity; BOOL cellReservedForOperatorUse; } PlmnInformation_t; typedef struct { PlmnId_t plmn; UINT64 cellId; } GnbNrCgi_t; typedef struct { PlmnId_t plmn; }GnbServedPlmn_t; /** @brief SRBID */ typedef LONG GnbSrbId_t;//9.3.1.7 /** @brief DRB ID */ typedef LONG GnbDrbId_t; /** @brief Transaction ID */ typedef LONG GnbTransId; /** @brief gND DU ID */ typedef LONG GnbDuId; /** @brief gND CU ID */ typedef LONG GnbCuId; #endif