X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=src%2Fdu_app%2Fdu_cfg.h;h=709deeb0d0dbfa258d6aca20fcc88a97de3a8388;hb=refs%2Fchanges%2F22%2F7922%2F5;hp=676e31f669f116dfafcc3afcf9215539fdae6c2b;hpb=9610be940d43a65a221ad21cd7716796f6908e75;p=o-du%2Fl2.git diff --git a/src/du_app/du_cfg.h b/src/du_app/du_cfg.h index 676e31f66..709deeb0d 100644 --- a/src/du_app/du_cfg.h +++ b/src/du_app/du_cfg.h @@ -19,6 +19,10 @@ #ifndef __DU_CONFIG_H_ #define __DU_CONFIG_H__ +#ifdef O1_ENABLE +#include "CmInterface.h" +#endif + /* MACROS */ #define DU_INST 0 #define DU_ID 1 @@ -48,14 +52,19 @@ #define NR_DL_ARFCN 623400 #define NR_UL_ARFCN 623400 #define NR_FREQ_BAND 78 +#define NR_SCS SCS_30KHZ +#define NR_BANDWIDTH BANDWIDTH_100MHZ #else #define DUPLEX_MODE DUP_MODE_FDD #define NR_NUMEROLOGY 0 #define NR_DL_ARFCN 428000 #define NR_UL_ARFCN 390000 #define NR_FREQ_BAND 1 +#define NR_SCS SCS_15KHZ +#define NR_BANDWIDTH BANDWIDTH_20MHZ #endif +#define TRANS_ID 1 #define DU_TAC 1 #define PLMN_MCC0 3 #define PLMN_MCC1 1 @@ -69,8 +78,6 @@ #define SUL_ARFCN 100 #define SUL_BAND 2 - - #define TIME_CFG 0 #define CARRIER_IDX 1 #define NUM_TX_ANT 2 @@ -99,9 +106,10 @@ /* MACRO defines for PRACH Configuration */ #define PRACH_CONFIG_IDX 88 -#define PRACH_FREQ_START 0 +#define PRACH_MAX_PRB 24 /* As per (spec 38.211-Table 6.3.3.2-1), max allocated PRBs can go upto 24 */ +#define PRACH_FREQ_START (MAX_NUM_RB - PRACH_MAX_PRB) /* In order to allocate PRACH from end of the resource grid */ #define PRACH_SEQ_LEN SHORT_SEQUENCE -#define PRACH_SUBCARRIER_SPACING 0 +#define PRACH_SUBCARRIER_SPACING NR_SCS #define PRACH_RESTRICTED_SET_CFG 0 #define NUM_PRACH_FDM 1 #define ROOT_SEQ_IDX 0 @@ -121,7 +129,7 @@ #define RSS_MEASUREMENT_UNIT DONT_REPORT_RSSI #define RA_CONT_RES_TIMER 64 -#define RA_RSP_WINDOW 180 +#define RA_RSP_WINDOW 10 #define PRACH_RESTRICTED_SET 0 /* Unrestricted */ #define ROOT_SEQ_LEN 139 @@ -148,6 +156,7 @@ #define SIB1_VALUE_TAG 10 /* MACRO Ddefine for PDSCH Configuration */ +#define NUM_TIME_DOM_RSRC_ALLOC 2 #define PDSCH_K0_CFG1 0 #define PDSCH_K0_CFG2 1 #define PDSCH_START_SYMBOL 3 @@ -159,8 +168,8 @@ /* MACRO Define for PUSCH Configuration */ #define MAX_UL_ALLOC 16 -#define PUSCH_K2_CFG1 3 -#define PUSCH_K2_CFG2 4 +#define PUSCH_K2_CFG1 4 +#define PUSCH_K2_CFG2 5 #define PUSCH_START_SYMBOL 3 #define PUSCH_LENGTH_SYMBOL 11 @@ -172,7 +181,7 @@ /* Macro define for PUCCH Configuration */ #define PUCCH_RSRC_COMMON 0 -#define PUCCH_GROUP_HOPPING 2 /* disable */ +#define PUCCH_GROUP_HOPPING 0 /* Neither sequence hopping nor group hopping */ #define PUCCH_P0_NOMINAL -74 /* MACRO defines for TDD DL-UL Configuration */ @@ -208,13 +217,6 @@ /* Events */ #define EVTCFG 0 -#ifdef EGTP_TEST -/* Macro definitions for EGTP procedures */ -#define EGTP_LCL_TEID 1 /* EGTP local tunnel id */ -#define EGTP_REM_TEID 10 /* EGTP remote tinnel id */ -#endif - - /* Macro definitions for F1 procedures */ #define CU_DU_NAME_LEN_MAX 30 /* Max length of CU/DU name string */ #define MAX_F1_CONNECTIONS 65536 /* Max num of F1 connections */ @@ -231,8 +233,6 @@ #define MAXNUMOFUACPERPLMN 64 /* Maximum number of signalled categories per PLMN */ #define NR_RANAC 150 /* RANAC */ #define DEFAULT_CELLS 1 /* Max num of broadcast PLMN ids */ -#define NUM_OF_SUPPORTED_SLICE 2 -#define DEDICATED_SLICE_INDEX 1 #define IE_EXTENSION_LIST_COUNT 1 /* Macro definitions for MIB/SIB1 */ @@ -240,10 +240,10 @@ #define SPARE 0 #define SSB_SC_OFFSET 0 #define DU_RANAC 1 -#define CELL_IDENTITY 32 +#define CELL_IDENTITY 16 /* Macro definitions for DUtoCuRrcContainer */ -#define CELL_GRP_ID 1 +#define CELL_GRP_ID 0 #define SCH_REQ_ID 0 #define SR_PROHIBIT_TMR 5 #define SR_TRANS_MAX 2 @@ -256,7 +256,7 @@ #define PHR_PROHIBHIT_TMR 0 #define PHR_PWR_FACTOR_CHANGE 3 #define PHR_MODE_OTHER_CG 0 -#define SN_FIELD_LEN 0 +#define SN_FIELD_LEN 1 #define T_POLL_RETRANSMIT 8 /* Enum for 45ms */ #define T_POLL_RETRANSMIT_VAL 45 /* Value in ms */ #define POLL_PDU 0 /* Enum for 4 pdus */ @@ -283,12 +283,6 @@ #define DMRS_ADDITIONAL_POS 0 /* DMRS Additional poistion */ #define RES_ALLOC_TYPE 1 /* Resource allocation type */ -#ifdef EGTP_TEST -#define UE_ID 1 -#define RB_ID 1 -#define LC_ID 1 -#endif - /* MACRO definitions for modulcation order */ #define MOD_ORDER_QPSK 2 #define MOD_ORDER_QAM16 4 @@ -297,6 +291,16 @@ #define PDSCH_MCS_INDEX 20 /* For 64QAM, valid mcs index: 17-28 in 38.214 - Table 5.1.3.1-1*/ #define PUSCH_MCS_INDEX 10 /* For 16QAM, valid mcs index: 10-16 in 38.214 - Table 5.1.3.1-1*/ +/*VALID Tunnel ID*/ +#define MIN_TEID 1 /*[Spec 29.281,Sec 5.1]: All Zero TEIDs are never assigned for setting up GTP-U Tunnel*/ +#define MAX_TEID MAX_NUM_DRB * MAX_NUM_UE /*[Spec 29.281]: Max limit is not mentioned but as per GTP-U Header Format, TEID occupies 4 octets */ + +/* Slice Ratio */ +#define MAX_RATIO 30 +#define MIN_RATIO 20 +#define DEDICATED_RATIO 10 +#define NUM_OF_SUPPORTED_SLICE 2 + typedef enum { GNBDU, @@ -493,13 +497,6 @@ typedef enum PUSCH_MAPPING_TYPE_B, }puschMappingType; -typedef enum -{ - PRB, - DRB, - RRC_CONNECTED_USERS -}ResourceType; - typedef struct f1RrcVersion { char rrcVer[30]; /* Latest RRC Version */ @@ -656,12 +653,6 @@ typedef struct f1EutraModeInfo }mode; }F1EutraModeInfo; -typedef struct f1Snsaai -{ - uint8_t sst; - uint8_t sd[SD_SIZE]; -}F1Snsaai; - typedef struct epIpAddr { char transportAddr[20]; /* Transport Layer Address */ @@ -673,32 +664,10 @@ typedef struct epIpAddrPort char port[2]; }EpIpAddrPort; -typedef struct policyMemberList -{ - Plmn plmn; - F1Snsaai snsaai; -}PolicyMemberList; - -typedef struct rrmPolicyRatio -{ - uint8_t policyMaxRatio; - uint8_t policyMinRatio; - uint8_t policyDedicatedRatio; -}RrmPolicyRatio; - -typedef struct rrmPolicy -{ - bool present; - ResourceType rsrcType; - PolicyMemberList memberList; - RrmPolicyRatio rrmPolicyRatio; -}RrmPolicy; - typedef struct f1TaiSliceSuppLst { - bool pres; uint8_t numSupportedSlices; - F1Snsaai *snssai[MAX_NUM_OF_SLICE_ITEMS]; + Snssai **snssai; }F1TaiSliceSuppLst; typedef struct f1SrvdPlmn @@ -706,7 +675,6 @@ typedef struct f1SrvdPlmn Plmn plmn; Plmn extPlmn; /* Extended available PLMN list */ F1TaiSliceSuppLst taiSliceSuppLst; - RrmPolicy rrmPolicy; }F1SrvdPlmn; typedef struct f1BrdcstPlmnInfo @@ -1141,10 +1109,12 @@ typedef struct bcchCfg typedef struct pcchCfg { - long dfltPagingCycle; /* Default paging cycle */ - long nAndPagingFrmOffPresent; - long nAndPagingFrmOff; /* n and Paging Frame offset */ - long numPagingOcc; /* Number of paging occassions in paging frame */ + uint8_t dfltPagingCycle; /* Default paging cycle */ + uint8_t nAndPagingFrmOffsetType; /*Number of PagingFrames in PagingCycle defined in terms of T.*/ + uint8_t pageFrameOffset; /* Paging Frame offset */ + uint8_t ns; /* Number of paging occassions in paging frame */ + uint8_t firstPDCCHMontioringType; /* First PDCCH Monitoring Paging Occasion Presence Type*/ + uint16_t firstPDCCHMontioringInfo[MAX_PO_PER_PF];/*Indicates the first PDCCH monitoring occasion of each PO of the PF*/ }PcchCfg; typedef struct scsSpecCarrier @@ -1257,6 +1227,29 @@ typedef struct sib1Params SrvCellCfgCommSib srvCellCfgCommSib; }Sib1Params; +typedef struct policyMemberList +{ + Plmn plmn; + Snssai snssai; +}PolicyMemberList; + +typedef struct rrmPolicy +{ + ResourceType rsrcType; + uint8_t numMemberList; + PolicyMemberList **memberList; + uint8_t policyMaxRatio; + uint8_t policyMinRatio; + uint8_t policyDedicatedRatio; +}RrmPolicy; + +typedef struct copyOfRecvdSliceCfg +{ + RrmPolicy **rrmPolicy; + uint8_t totalRrmPolicy; + uint8_t totalSliceCount; +}CopyOfRecvdSliceCfg; + typedef struct duCfgParams { SctpParams sctpParams; /* SCTP Params */ @@ -1270,8 +1263,19 @@ typedef struct duCfgParams MacCellCfg macCellCfg; /* MAC cell configuration */ MibParams mibParams; /* MIB Params */ Sib1Params sib1Params; /* SIB1 Params */ + CopyOfRecvdSliceCfg tempSliceCfg; }DuCfgParams; +typedef struct f1SetupMsg +{ + uint8_t f1MsgReqBufSize; + char *f1MsgReqBuf; + uint8_t f1MsgRspBufSize; + char *f1MsgRspBuf; +}F1SetupMsg; + +DuCfgParams duCfgParam; + /*function declarations */ void FillSlotConfig(); uint8_t readClCfg(); @@ -1279,6 +1283,10 @@ uint8_t readCfg(); uint8_t duReadCfg(); uint16_t calcSliv(uint8_t startSymbol, uint8_t lengthSymbol); +#ifdef O1_ENABLE +uint8_t cpyRrmPolicyInDuCfgParams(RrmPolicyList rrmPolicy[], uint8_t policyNum, CopyOfRecvdSliceCfg *tempSliceCfg); +#endif + #endif /* __DU_CONFIG_H__ */ /**********************************************************************