From 958e8b2edbd1e0681419ad86aa0775c88981282c Mon Sep 17 00:00:00 2001 From: balajihands Date: Tue, 11 Feb 2020 18:07:01 +0530 Subject: [PATCH] File renaming Change-Id: I82a16d078e5f66496f9a4c958ae726c6bcd0441b Signed-off-by: balajihands --- src/du_app/du_cell_mgr.c | 2 +- src/du_app/du_cfg_hdl.c | 478 ----------------------- src/du_app/du_cfg_hdl.h | 897 ------------------------------------------- src/du_app/du_f1ap_msg_hdl.c | 2 +- src/du_app/du_mgr.h | 1 - src/du_app/du_sctp.h | 2 +- 6 files changed, 3 insertions(+), 1379 deletions(-) delete mode 100644 src/du_app/du_cfg_hdl.c delete mode 100644 src/du_app/du_cfg_hdl.h diff --git a/src/du_app/du_cell_mgr.c b/src/du_app/du_cell_mgr.c index 296c2592f..4f4782267 100644 --- a/src/du_app/du_cell_mgr.c +++ b/src/du_app/du_cell_mgr.c @@ -18,7 +18,7 @@ /* This file contains message handling functionality for DU APP */ #include "du_cell_mgr.h" -#include "du_cfg_hdl.h" +#include "du_cfg.h" extern DuCfgParams duCfgParam; diff --git a/src/du_app/du_cfg_hdl.c b/src/du_app/du_cfg_hdl.c deleted file mode 100644 index 7cb71d356..000000000 --- a/src/du_app/du_cfg_hdl.c +++ /dev/null @@ -1,478 +0,0 @@ -/******************************************************************************* -################################################################################ -# Copyright (c) [2017-2019] [Radisys] # -# # -# Licensed under the Apache License, Version 2.0 (the "License"); # -# you may not use this file except in compliance with the License. # -# You may obtain a copy of the License at # -# # -# http://www.apache.org/licenses/LICENSE-2.0 # -# # -# 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. # -################################################################################ -*******************************************************************************/ - -/* This file contains all utility functions */ -#include "du_cfg_hdl.h" - -extern DuCfgParams duCfgParam; - - -/* Filling Slot configuration as : - * Slot Sym 0 Sym 1 Sym 2 Sym 3 Sym 4 Sym 5 Sym 6 Sym 7 Sym 8 Sym 9 Sym10 Sym11 Sym12 Sym13 - * 0 DL DL DL DL DL DL DL DL DL DL DL DL DL DL - * 1 DL DL DL DL DL DL DL DL DL DL DL DL DL DL - * 2 DL DL DL DL DL DL DL DL DL DL DL DL DL DL - * 3 DL DL DL DL DL DL DL DL DL DL GD GD GD UL - * 4 UL UL UL UL UL UL UL UL UL UL UL UL UL UL -*/ - -/******************************************************************* - * - * @brief Fills the Slot configuration - * - * @details - * - * Function : fillSlotConfig - * - * Functionality:Fill the Slot configuration values - * - * @params[in] void - * @return ROK - success - * RFAILED - failure - * - * ****************************************************************/ -void fillSlotConfig() -{ - U8 slot; - U8 symbol; - - for(slot = 0; slot <= 3; slot++) - { - for(symbol = 0; symbol < MAX_SYMB_PER_SLOT; symbol++) - duCfgParam.clCellCfg.tddCfg.slotCfg[slot][symbol] = DL_SLOT; - } - - duCfgParam.clCellCfg.tddCfg.slotCfg[3][10] = GUARD_SLOT; - duCfgParam.clCellCfg.tddCfg.slotCfg[3][11] = GUARD_SLOT; - duCfgParam.clCellCfg.tddCfg.slotCfg[3][12] = GUARD_SLOT; - duCfgParam.clCellCfg.tddCfg.slotCfg[3][13] = UL_SLOT; - - for(symbol = 0; symbol < MAX_SYMB_PER_SLOT; symbol++) - duCfgParam.clCellCfg.tddCfg.slotCfg[4][symbol] = UL_SLOT; - -} - -/******************************************************************* - * - * @brief Reads the CL Configuration. - * - * @details - * - * Function : readClCfg - * - * Functionality: - * - Fills up the cell configuration for CL. - * - Calls fillSlotConfig() - * - * @params[in] void - * @return ROK - success - * RFAILED - failure - * - * ****************************************************************/ - - -/* This function is used to fill up the cell configuration for CL */ -S16 readClCfg() -{ - duCfgParam.clCellCfg.carrierId = CARRIER_IDX; - - /* Cell configuration */ - duCfgParam.clCellCfg.cellId = NR_CELL_ID; - duCfgParam.clCellCfg.phyCellId = NR_PCI; - duCfgParam.clCellCfg.dupType = DUPLEX_MODE; - - /* DL carrier configuration */ - duCfgParam.clCellCfg.dlCarrCfg.pres = TRUE; - duCfgParam.clCellCfg.dlCarrCfg.bw = SUL_ARFCN; - duCfgParam.clCellCfg.dlCarrCfg.freq = NR_ARFCN; - duCfgParam.clCellCfg.dlCarrCfg.k0[0] = 1; - duCfgParam.clCellCfg.dlCarrCfg.k0[1] = 1; - duCfgParam.clCellCfg.dlCarrCfg.k0[2] = 1; - duCfgParam.clCellCfg.dlCarrCfg.k0[3] = 1; - duCfgParam.clCellCfg.dlCarrCfg.k0[4] = 1; - duCfgParam.clCellCfg.dlCarrCfg.gridSize[0] = 1; - duCfgParam.clCellCfg.dlCarrCfg.gridSize[1] = 1; - duCfgParam.clCellCfg.dlCarrCfg.gridSize[2] = 1; - duCfgParam.clCellCfg.dlCarrCfg.gridSize[3] = 1; - duCfgParam.clCellCfg.dlCarrCfg.gridSize[4] = 1; - duCfgParam.clCellCfg.dlCarrCfg.numAnt = NUM_TX_ANT; - - /* UL Carrier configuration */ - duCfgParam.clCellCfg.ulCarrCfg.pres = TRUE; - duCfgParam.clCellCfg.ulCarrCfg.bw = SUL_ARFCN; - duCfgParam.clCellCfg.ulCarrCfg.freq = NR_ARFCN; - duCfgParam.clCellCfg.ulCarrCfg.k0[0] = 1; - duCfgParam.clCellCfg.ulCarrCfg.k0[1] = 1; - duCfgParam.clCellCfg.ulCarrCfg.k0[2] = 1; - duCfgParam.clCellCfg.ulCarrCfg.k0[3] = 1; - duCfgParam.clCellCfg.ulCarrCfg.k0[4] = 1; - duCfgParam.clCellCfg.ulCarrCfg.gridSize[0] = 1; - duCfgParam.clCellCfg.ulCarrCfg.gridSize[1] = 1; - duCfgParam.clCellCfg.ulCarrCfg.gridSize[2] = 1; - duCfgParam.clCellCfg.ulCarrCfg.gridSize[3] = 1; - duCfgParam.clCellCfg.ulCarrCfg.gridSize[4] = 1; - duCfgParam.clCellCfg.ulCarrCfg.numAnt = NUM_RX_ANT; - - duCfgParam.clCellCfg.freqShft = FREQ_SHIFT_7P5KHZ; - - /* SSB configuration */ - duCfgParam.clCellCfg.ssbCfg.ssbPbchPwr = SSB_PBCH_PWR; - duCfgParam.clCellCfg.ssbCfg.bchPayload = BCH_PAYLOAD; - duCfgParam.clCellCfg.ssbCfg.scsCmn = SUBCARRIER_SPACING; - duCfgParam.clCellCfg.ssbCfg.ssbPrbOffset = PRB_OFFSET; - duCfgParam.clCellCfg.ssbCfg.betaPss = BETA_PSS; - duCfgParam.clCellCfg.ssbCfg.ssbPeriod = SSB_PERIODICITTY; - duCfgParam.clCellCfg.ssbCfg.ssbSubcOffset = SSB_SUBCARRIER_OFFSET; - duCfgParam.clCellCfg.ssbCfg.mibPdu = 104; - duCfgParam.clCellCfg.ssbCfg.nSSBMask[0] = 2162721; - duCfgParam.clCellCfg.ssbCfg.nSSBMask[1] = 0; - duCfgParam.clCellCfg.ssbCfg.multCarrBand = SSB_MULT_CARRIER_BAND; - duCfgParam.clCellCfg.ssbCfg.multCellCarr = MULT_CELL_CARRIER; - - /* PRACH configuration */ - duCfgParam.clCellCfg.prachCfg.pres = TRUE; - duCfgParam.clCellCfg.prachCfg.prachSeqLen = PRACH_SEQ_LEN; - duCfgParam.clCellCfg.prachCfg.prachSubcSpacing = PRACH_SUBCARRIER_SPACING; - duCfgParam.clCellCfg.prachCfg.prachRstSetCfg = PRACH_RESTRICTED_SET_CFG; - duCfgParam.clCellCfg.prachCfg.prachFdm = NUM_PRACH_FDM; - duCfgParam.clCellCfg.prachCfg.fdm[0].rootSeqIdx = ROOT_SEQ_IDX; - duCfgParam.clCellCfg.prachCfg.fdm[0].numRootSeq = NUM_ROOT_SEQ; - duCfgParam.clCellCfg.prachCfg.fdm[0].k1 = 1; - duCfgParam.clCellCfg.prachCfg.fdm[0].zeroCorrZoneCfg = ZERO_CORRELATION_ZONE_CFG; - duCfgParam.clCellCfg.prachCfg.fdm[0].numUnusedRootSeq = NUM_UNUSED_ROOT_SEQ; - DU_ALLOC(duCfgParam.clCellCfg.prachCfg.fdm[0].unsuedRootSeq, NUM_UNUSED_ROOT_SEQ * sizeof(U8)); - if(duCfgParam.clCellCfg.prachCfg.fdm[0].unsuedRootSeq == NULLP) - { - DU_LOG("\nDU_APP : Memory allocation failed"); - RETVALUE(RFAILED); - } - *(duCfgParam.clCellCfg.prachCfg.fdm[0].unsuedRootSeq) = UNUSED_ROOT_SEQ; - duCfgParam.clCellCfg.prachCfg.ssbPerRach = SSB_PER_RACH; - duCfgParam.clCellCfg.prachCfg.prachMultCarrBand = PRACH_MULT_CARRIER_BAND; - - /* TDD configuration */ - duCfgParam.clCellCfg.tddCfg.pres = TRUE; - duCfgParam.clCellCfg.tddCfg.tddPeriod = TDD_PERIODICITY; - - fillSlotConfig(); - - /* RSSI Measurement configuration */ - duCfgParam.clCellCfg.rssiUnit = RSS_MEASUREMENT_UNIT; - - /* This should be calculated based on - (number of mandatory parameters) + (number of otional parameters being filled) */ - duCfgParam.clCellCfg.numTlv = 39; - - RETVALUE(ROK); -} -/******************************************************************* - * - * @brief Configures the DU Parameters - * - * @details - * - * Function : readCfg - * - * Functionality: - * - Initializes the DuCfg members. - * - Calls readClCfg() - * - * @params[in] system task ID - * @return ROK - success - * RFAILED - failure - * - * ****************************************************************/ - -S16 readCfg() -{ - U8 i,j,k; - U32 ipv4_du, ipv4_cu; - - cmInetAddr((S8*)DU_IP_V4_ADDR, &ipv4_du); - cmInetAddr((S8*)CU_IP_V4_ADDR, &ipv4_cu); - - /* F1 DU IP Address and Port*/ - duCfgParam.sctpParams.duIpAddr.ipV4Pres = TRUE; - duCfgParam.sctpParams.duIpAddr.ipV4Addr = ipv4_du; - duCfgParam.sctpParams.duPort = DU_PORT; - - /* F1 CU IP Address and Port*/ - duCfgParam.sctpParams.cuIpAddr.ipV4Pres = TRUE; - duCfgParam.sctpParams.cuIpAddr.ipV4Addr = ipv4_cu; - duCfgParam.sctpParams.cuPort = CU_PORT; - - - /* EGTP Parameters */ - duCfgParam.egtpParams.localIp.ipV4Pres = TRUE; - duCfgParam.egtpParams.localIp.ipV4Addr = ipv4_du; - duCfgParam.egtpParams.localPort = DU_EGTP_PORT; - duCfgParam.egtpParams.destIp.ipV4Pres = TRUE; - duCfgParam.egtpParams.destIp.ipV4Addr = ipv4_cu; - duCfgParam.egtpParams.destPort = CU_EGTP_PORT; - duCfgParam.egtpParams.minTunnelId = 0; - duCfgParam.egtpParams.maxTunnelId = 10; - - duCfgParam.maxUe = 32; //TODO: Check - /* DU Info */ - duCfgParam.duId = DU_ID; - strcpy((char*)duCfgParam.duName,DU_NAME); - - for(i=0; ibuf == NULL || bitString->size <= 0) - { - DU_LOG("\nDU_APP : Bit string is empty"); - return RFAILED; - } - - numOctets = (bitString->size + 7 )/8; - for(idx=0; idx< numOctets; idx++) - { - *val |= bitString->buf[idx]; - *val <<= 8; - } - - *val |= bitString->buf[numOctets -1]; - *val >>= ((numOctets * 8) - bitString->size); - - return ROK; -} - - -/********************************************************************** - End of file - **********************************************************************/ - diff --git a/src/du_app/du_cfg_hdl.h b/src/du_app/du_cfg_hdl.h deleted file mode 100644 index 517ff7e3e..000000000 --- a/src/du_app/du_cfg_hdl.h +++ /dev/null @@ -1,897 +0,0 @@ -/******************************************************************************* -################################################################################ -# Copyright (c) [2017-2019] [Radisys] # -# # -# Licensed under the Apache License, Version 2.0 (the "License"); # -# you may not use this file except in compliance with the License. # -# You may obtain a copy of the License at # -# # -# http://www.apache.org/licenses/LICENSE-2.0 # -# # -# 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 __DU_CONFIG_H_ -#define __DU_CONFIG_H__ - -#include "du_mgr.h" -#include "lcl.h" -#include "du_log.h" -#include "BIT_STRING.h" - -/* MACROS */ -#define DU_INST 0 -#define DU_ID 1 -#define DU_IP_V4_ADDR "10.0.2.20" -#define CU_IP_V4_ADDR "10.0.2.25" -#define DU_PORT 38472 -#define CU_PORT 38472 -#define DU_EGTP_PORT 39001 -#define CU_EGTP_PORT 39002 -#define NR_PCI 1 -#define NR_CELL_ID 1 -#define DU_NAME "ORAN_OAM_DU" -#define CELL_TYPE SMALL -#define DUPLEX_MODE DUP_MODE_TDD -#define DU_TAC 1 -#define PLMN_MCC0 3 -#define PLMN_MCC1 1 -#define PLMN_MCC2 1 -#define PLMN_MNC0 4 -#define PLMN_MNC1 8 -#define PLMN_MNC2 0 -#define NR_ARFCN 2079427 -#define SUL_ARFCN 100 -#define NR_FREQ_BAND 257 -#define SUL_BAND 2 -#define TIME_CFG 0 -#define CARRIER_IDX 1 -#define NUM_TX_ANT 2 -#define NUM_RX_ANT 2 -#define FREQ_SHIFT_7P5KHZ FALSE -#define SSB_PBCH_PWR 0 -#define BCH_PAYLOAD MAC_GEN_FULL_PBCH_PAYLD -#define SUBCARRIER_SPACING 3 -#define PRB_OFFSET 0 -#define BETA_PSS BETA_PSS_0DB -#define SSB_PERIODICITTY SSB_PRDCTY_MS_20 -#define SSB_SUBCARRIER_OFFSET 0 -#define SSB_MULT_CARRIER_BAND FALSE -#define MULT_CELL_CARRIER FALSE - -#define PRACH_SEQ_LEN SHORT_SEQUENCE -#define PRACH_SUBCARRIER_SPACING 3 -#define PRACH_RESTRICTED_SET_CFG UNRESTRICTED -#define NUM_PRACH_FDM 1 -#define ROOT_SEQ_IDX 0 -#define NUM_ROOT_SEQ 1 -#define ZERO_CORRELATION_ZONE_CFG 2 -#define NUM_UNUSED_ROOT_SEQ 1 -#define UNUSED_ROOT_SEQ 1 -#define SSB_PER_RACH 3 -#define PRACH_MULT_CARRIER_BAND FALSE -#define TDD_PERIODICITY TX_PRDCTY_MS_2P5 -#define RSS_MEASUREMENT_UNIT DONT_REPORT_RSSI - -#define DU_PROC 0 -#define DU_INST 0 -#define DU_POOL 1 - -#define SCTP_INST 0 -#define EGTP_INST 0 - -/* Events */ -#define EVTCFG 0 - -/* Selector */ -#define DU_SELECTOR_LC 0 -#define DU_SELECTOR_TC 1 -#define DU_SELECTOR_LWLC 2 - -#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 */ -#define DU_MAX_CELLS 512 /* Max num of cells served by gNB-DU */ -#define MAX_PLMN 6 /* Max num of broadcast PLMN ids */ -#define MAXNRARFCN 3279165 /* Maximum values of NRAFCN */ -#define MAXNRCELLBANDS 2 /* Maximum number of frequency bands */ -#define MAXNUMOFSLICEITEMS 1024 /* Maximum number of signalled slice support items */ -#define MAXBPLMNNRMINUS1 1 /* Maximum number of PLMN Ids broadcast in an NR cell minus 1 */ -#define MAXNUMOFSIBTYPES 32 /* Maximum number of SIB types */ -#define MAX_UEID 512 /* Maximum number of UE Ids */ -#define MAX_TNL_ASSOC 32 /* Max num of TNL Assoc between CU and DU */ -#define MAXCELLINENB 256 /* Max num of cells served by eNB */ -#define MAXNUMOFUEID 65536 /* Max num of UEs served by DU */ -#define MAXNUMOFUACPLMN 12 /* Maximum number of PLMN ids*/ -#define MAXNUMOFUACPERPLMN 64 /* Maximum number of signalled categories per PLMN */ -#define DEFAULT_CELLS 1 /* Max num of broadcast PLMN ids */ - -typedef enum -{ - GNBDU, - GNBCU -}F1Entity; - -typedef enum -{ - UNSPECIFIED, - RL_FAILURE_RLC, - INVALID_CU_UE_F1AP_ID, - INVALID_DU_UE_F1AP_ID, - INTERACTION_WITH_OTHER_PROC, - INVALID_QCI_VALUE, - RADIO_RELATED_REASON, - INSUFFICIENT_RADIO_RESOURCE, - PROCEDURE_CANCELLED, - NORMAL_RELEASE, - UNAVAILABLE_CELL, - RL_FAILURE_OTHERS, - UE_ACCESS_REJECTED, - SLICE_RESOURCE_UNAVAILABLE, - AMF_ABNORMAL_RELEASE, - INVALID_PLMN -}RadioNwCause; - -typedef enum -{ - TRANS_CAUSE_UNSPECIFIED, - TRANSPORT_RESOURCE_UNAVAIL -}TransLayerCause; - -typedef enum -{ - TRANSFER_SYNTAX_ERR, - ABSTRACT_SYNTAX_ERR_REJECT, - ABSTRACT_SYNTAX_ERR_NOTIFY, - INCOMPATIBLE_MESSAGE, - SEMANTIC_ERROR, - ABSTRACT_SYNTAX_ERR_MSG_CONSTRUCT, - PROTOCOL_CAUSE_UNSPECIFIED -}ProtocolCause; - -typedef enum -{ - CONTROL_PROC_OVERLOAD, - INSUFF_USER_PLANE_RESOURCE, - HARDWARE_FAILURE, - O_AND_M_INTERVENTION, - MISC_CAUSE_UNSPECIFIED -}MiscCause; - -typedef enum -{ - ALL -}F1ResetAll; - -typedef enum -{ - IN_SERVICE, - OUT_OF_SERVICE -}SrvState; - -typedef enum -{ - INITIATING_MSG, - SUCCESSFUL_OUTCOME, - UNSUCCESSFUL_OUTCOME -}F1TriggMsgVal; - -typedef enum -{ - CRIT_REJECT, - CRIT_IGNORE, - CRIT_NOTIFY -}F1ProcCritVal; - -typedef enum -{ - NOT_UNDERSTOOD, - MISSING_IE -}F1ErrorType; - -typedef enum -{ - SCS_15, - SCS_30, - SCS_60, - SCS_120 -}F1NrScs; - -typedef enum -{ - NRB_11, - NRB_18, - NRB_24, - NRB_25, - NRB_31, - NRB_32, - NRB_38, - NRB_51, - NRB_52, - NRB_65, - NRB_66, - NRB_78, - NRB_79, - NRB_93, - NRB_106, - NRB_107, - NRB_121, - NRB_132, - NRB_133, - NRB_135, - NRB_160, - NRB_162, - NRB_189, - NRB_216, - NRB_217, - NRB_245, - NRB_264, - NRB_270, - NRB_273 -}F1Nrb; - -typedef enum -{ - VERY_SMALL, - SMALL, - MEDIUM, - LARGE -}F1CellType; - -typedef enum -{ - DL, - UL, - DL_UL -}F1CellDir; - -typedef enum -{ - UE_USAGE, - NON_UE_USAGE, - BOTH -}F1AssocUsage; - -typedef enum -{ - BARRED, - NOT_BARRED -}CellBarred; - -typedef enum -{ - OFFER, - EXECUTION -}F1ReqType; - -typedef enum -{ - IGNORE_YES, - IGNORE_NO -}F1IgnoreReq; - -typedef enum -{ - OVERLOADED, - NOT_OVERLOADED -}F1GnbDuOvrloadInfo; - -typedef enum -{ - REJECT_RRC_CONN_NON_EMERG_MODT, - REJECT_RRC_CONN_SIGNALLING, - PERMIT_EMERG_SESSION_AND_MOBILE_TERM_SERVICE, - PERMIT_HIGH_PRIOR_SESSION_AND_MOBILE_TERM_SERVICE -}F1UacStandardAction; - -typedef struct f1RrcVersion -{ - char rrcVer[30]; /* Latest RRC Version */ - U32 extRrcVer; /* Latest RRC version extended */ -}F1RrcVersion; - -typedef struct f1FailCause -{ - union - { - RadioNwCause radioNwCause; /* Radio Network Layer Cause */ - TransLayerCause transLayerCause; /* Transport Layer Cause */ - ProtocolCause protCause; /* Protocol Cause */ - MiscCause miscCause; /* Miscellaneous Cause */ - }cause; -}F1FailCause; - -typedef struct f1ProcCode -{ - Bool pres; - U8 value; -}F1ProcCode; - -typedef struct f1TriggMsg -{ - Bool pres; - F1TriggMsgVal value; -}F1TriggMsg; - -typedef struct f1ProcCrit -{ - Bool pres; - F1ProcCritVal value; -}F1ProcCrit; - -typedef struct f1CritDignosIE -{ - F1ProcCritVal ieCritVal; - U16 ieId; - F1ErrorType type; -}F1CritDignosIE; - -typedef struct f1CritDiagnostic -{ - Bool pres; - F1ProcCode procCode; /* Procedure Code */ - F1TriggMsg triggeringMsg; /* Triggering Message */ - F1ProcCrit procCrit; /* Criticality of Triggering msg/proc */ - U32 transId; - F1CritDignosIE diagnosIE; -}F1CritDiagnostic; - -typedef struct f1FailureIE -{ - U32 transId; /* Uniquely identify transaction */ - F1FailCause cause; /* Failure cause */ - U8 timeToWait; /* Seconds to be waited before retry */ - F1CritDiagnostic critDiagnostic; /* Critical diagnostics */ -}F1FailureIE; - -typedef struct f1LogicalConnUeAssoc -{ - U32 gnbCuUeF1apId; - U32 gnbDuUeF1apId; -}F1LogicalConnUeAssoc; - -typedef struct f1ResetType -{ - union - { - F1ResetAll resetAll; /* Reset All */ - F1LogicalConnUeAssoc ueAssocLogicalConn[MAX_F1_CONNECTIONS]; /* In case of Partial Reset : UE associated logical F1 conn list*/ - }type; -}F1ResetType; - -typedef struct f1PLMN -{ - U8 mcc[3]; - U8 mnc[3]; -}PlmnId; - -typedef struct nrEcgi -{ - PlmnId plmn; - U16 cellId; -}NrEcgi; - -typedef struct f1SibType -{ - U8 sibType; - U8 sibMsg; - U8 value; -}F1SibType; - -typedef struct f1TxBw -{ - F1NrScs nrScs; /* NR subcarrier spacing */ - F1Nrb nrb; /* Transmission bandwidth expressed in units of RBs */ -}F1TxBw; - -typedef struct f1SulInfo -{ - U32 sulArfcn; /* SUL ARFCN */ - F1TxBw sulTxBw; /* SUL transmission bandwidth */ -}F1SulInfo; - -typedef struct f1FreqBand -{ - U16 nrFreqBand; - U16 sulBand[MAXNRCELLBANDS]; -}F1FreqBand; - -typedef struct f1NrFreqInfo -{ - U32 nrArfcn; - F1SulInfo sulInfo; - F1FreqBand freqBand[MAXNRCELLBANDS]; -}F1NrFreqInfo; - -typedef struct f1NrFddInfo -{ - F1NrFreqInfo ulNrFreqInfo; /* UL NR Frequency Info */ - F1NrFreqInfo dlNrFreqInfo; /* DL NR Frequency Info */ - F1TxBw ulTxBw; /* UL Transmission bandwidth */ - F1TxBw dlTxBw; /* DL Transmission bandwidth */ -}F1NrFddInfo; - -typedef struct f1NrTddInfo -{ - F1NrFreqInfo nrFreqInfo; /* NR Frequency Info */ - F1TxBw nrTxBw; /* NR Transmission Bandwidth */ -}F1NrTddInfo; - -typedef struct f1NrModeInfo -{ - union - { - F1NrFddInfo fdd; - F1NrTddInfo tdd; - }mode; -}NrModeInfo; - -typedef struct f1EutraFddInfo -{ - U16 ulOffset; /* UL offset to Point A */ - U16 dlOffset; /* DL offset to Point A */ -}F1EutraFDDInfo; - -typedef struct f1EutraTddInfo -{ - U16 tddOffset; /* Offset to Point A */ -}F1EutraTDDInfo; - -typedef struct f1EutraModeInfo -{ - union - { - F1EutraFDDInfo fdd; - F1EutraTDDInfo tdd; - }mode; -}F1EutraModeInfo; - -typedef struct f1Snsaai -{ - U8 sst; - U32 sd; -}F1Snsaai; - -typedef struct epIpAddr -{ - char transportAddr[20]; /* Transport Layer Address */ -}EpIpAddr; - -typedef struct epIpAddrPort -{ - EpIpAddr epIpAddr; - char port[2]; -}EpIpAddrPort; - -typedef struct f1TaiSliceSuppLst -{ - Bool pres; - F1Snsaai snssai[MAXNUMOFSLICEITEMS]; -}F1TaiSliceSuppLst; - -typedef struct f1SrvdPlmn -{ - PlmnId plmn; - F1TaiSliceSuppLst taiSliceSuppLst; -}F1SrvdPlmn; - -typedef struct f1BrdcstPlmnInfo -{ - PlmnId plmn[MAX_PLMN]; /* PLMN id list */ - PlmnId extPlmn[MAX_PLMN]; /* Extended PLMN id list */ - U16 tac; /* 5GS-TAC */ - U32 nrCellId; /* NR Cell id */ - U8 ranac; /* RAN Area code */ -}F1BrdcstPlmnInfo; - -typedef struct f1CellInfo -{ - NrEcgi nrCgi; /* Cell global Identity */ - U32 nrPci; /* Physical Cell Identity */ - PlmnId plmn[MAX_PLMN]; /* Available PLMN list */ - PlmnId extPlmn[MAX_PLMN]; /* Extended available PLMN list */ -}F1CellInfo; - -typedef struct f1DuCellInfo -{ - F1CellInfo cellInfo; /* cell info */ - U16 tac; /* tracking area code */ - U16 epsTac; /* Configured EPS TAC */ - NrModeInfo f1Mode; /* NR mode info : FDD/TDD */ - U8 measTimeCfg; /* Measurement timing configuration */ - F1CellDir cellDir; /* Cell Direction */ - F1CellType cellType; /* Cell Type */ - F1BrdcstPlmnInfo brdcstPlmnInfo[MAXBPLMNNRMINUS1]; /* Broadcast PLMN Identity Info List */ -}F1DuCellInfo; - -typedef struct f1DuSysInfo -{ - U8 *mibMsg; /* MIB message */ - U8 *sib1Msg; /* SIB1 message */ -}F1DuSysInfo; - -typedef struct f1CuSysInfo -{ - F1SibType sibTypeToUpd[MAXNUMOFSIBTYPES]; /* SIB types to be updated */ -}F1CuSysInfo; - -typedef struct f1DuSrvdCellInfo -{ - F1DuCellInfo duCellInfo; /* gNB-DU served cell info */ - F1DuSysInfo duSysInfo; /* gNB-DU System Information */ -}F1DuSrvdCellInfo; - -typedef struct f1DuSrvdCellToDel -{ - NrEcgi oldNrCgi; /* Old NR CGI */ - F1DuSrvdCellInfo srvdCellInfo; /* Info of served cell to be deleted */ -}F1DuSrvdCellToDel; - -typedef struct f1CuActCellInfo -{ - F1CellInfo cuCellInfo; /* gNB-CU available cell info */ - F1CuSysInfo cuSysInfo; /* gNB-CU System Information */ -}F1CuActCellInfo; - -typedef struct f1ActCellFail -{ - NrEcgi nrCgi; - F1FailCause cause; -}F1ActCellFail; - -typedef struct srvStatus -{ - SrvState state; - Bool switchOffOngoing; -}SrvStatus; - -typedef struct f1CellStatus -{ - NrEcgi nrEcgi; - SrvStatus status; /* Service status */ -}F1CellStatus; - -typedef struct f1DedSIDelUE -{ - U32 gnbCuUeF1apId; - NrEcgi nrEcgi; -}F1DedSIDelUE; - -typedef struct tnlAssocInfo -{ - Bool pres; - EpIpAddr epIpAddr; /* Endpoint-IP Address */ - EpIpAddrPort epIpAddrport; /* Endpoint-IP Address and Port */ -}F1TnlAssocAddr; - -typedef struct f1TnlAssocUsage -{ - Bool pres; - F1AssocUsage usage; -}F1TnlAssocUsage; - -typedef struct f1TnlAssoc -{ - F1TnlAssocAddr assocInfo; /* TNL Assoc Transport Layer Info */ - F1TnlAssocUsage assocUsage; /* TNL Assoc usage */ -}F1TnlAssoc; - -typedef struct f1TnlAssocToRmv -{ - F1TnlAssocAddr assocInfoCu; /* TNL Assoc Transport Layer Info of CU */ - F1TnlAssocAddr assocInfoDu; /* TNL Assoc Transport Layer Info of DU */ -}F1TnlAssocToRmv; - -typedef struct f1TnlAssocSetupFail -{ - F1TnlAssocAddr assocInfo; - F1FailCause cause; -}F1TnlAssocSetupFail; - - -typedef struct f1CellBarred -{ - NrEcgi nrcgi; - CellBarred cellBarred; -}F1CellBarred; - -typedef struct f1EutraCell -{ - U32 eutraCellId; /* EUTRA cell id */ - F1EutraModeInfo mode; /* EUTRA mode info : FDD/TDD */ - U8 rsrcInd; /* Protected EUTRA resource Indication */ -}F1EutraCell; - -typedef struct f1ProtectEUTRARsrc -{ - U32 specShareGrpId; /* Spectrum sharing group id */ - F1EutraCell eutraCellList[MAXCELLINENB]; /* EUTRA cells list */ -}F1ProtectEUTRARsrc; - -typedef struct f1UacOperatorDefined -{ - U8 accessCategory; - U8 accessId; -}F1UacOperatorDefined; - -typedef struct f1UacCategoryType -{ - union - { - F1UacStandardAction action; /* UAC standardized action */ - F1UacOperatorDefined operatorDef; /* UAC operator defined */ - }type; -}F1UacCategoryType; - -typedef struct f1UacType -{ - U8 uacReducInd; /* Value 0 means no access rate reduction. Value 100 means full access rate reduction */ - F1UacCategoryType uacCategoryType; /* UAC Category type */ -}F1UacType; - -/* Unified Access Class Assistance Information */ -typedef struct f1UacAssistInfo -{ - PlmnId plmn[MAXNUMOFUACPLMN]; /* UAC PLMN list */ - F1UacType uacType[MAXNUMOFUACPERPLMN]; /* UAC Type list */ -}F1UacAssistInfo; - -/* F1 setup related structures */ - -typedef struct f1SetupReq -{ - U32 transId; /* Uniquely identify transaction */ - U32 duId; /* DU ID */ - char duName[CU_DU_NAME_LEN_MAX]; /* DU name */ - F1DuSrvdCellInfo srvdCellLst[DU_MAX_CELLS]; /* Serving cell list */ - F1RrcVersion rrcVersion; /* RRC version */ -}F1SetupReq; - -typedef struct f1setupRsp -{ - U32 transId; /* Uniquely identify transaction */ - char cuName[CU_DU_NAME_LEN_MAX]; /* CU Name */ - F1CuActCellInfo actCellInfo; /* cells to be activated */ - F1RrcVersion rrcVersion; /* RRC version */ -}F1SetupRsp; - -typedef struct f1SetupFail -{ - F1FailureIE setupFail; -}F1SetupFail; - -/* At reception of the RESET message the gNB-DU shall release all allocated resources on F1 - * and radio resources related to the UE association(s) indicated explicitly or implicitly in - * the RESET message and remove the indicated UE contexts including F1AP ID. */ -typedef struct f1Reset -{ - U32 transId; /* Uniquely identify transaction */ - F1FailCause cause; /* Failure cause */ - F1ResetType resetType; /* type of reset */ -}F1Reset; - -/* After the gNB-CU has released all assigned F1 resources and the UE F1AP IDs for all indicated - * UE associations which can be used for new UE-associated logical F1-connections over the F1 interface, - * the gNB-CU shall respond with the RESET ACKNOWLEDGE message. */ -typedef struct f1ResetAck -{ - U32 transId; /* Uniquely identify transaction */ - F1LogicalConnUeAssoc ueAssocLogicalConn[MAX_F1_CONNECTIONS]; /* UE associated logical F1-connection list */ - F1CritDiagnostic critDiagnostic; /* Critical diagnostics */ -}F1ResetAck; - -typedef struct f1ErrorInd -{ - U32 transId; /* Uniquely identify transaction */ - F1Entity errorOrigin; /* Specifies if error is originated at DU or CU */ - F1FailCause cause; /* Failure cause */ -/* If failure is due to Ue related message. */ - U32 gnbCuUeF1apId; /* gNB-CU UE F1AP Id */ - U32 gnbDuUeF1apId; /* gNB-DU UE F1AP Id */ - F1CritDiagnostic critDiagnostic; /* Critical diagnostics */ -}F1ErrorInd; - -typedef struct f1GnbDuCfgUpd -{ - U32 transId; /* Uniquely identify transaction */ - F1DuSrvdCellInfo srvdCellLstAdd[DU_MAX_CELLS]; /* Served cell list to be added */ - F1DuSrvdCellToDel srvdCellLstMod[DU_MAX_CELLS]; /* Served cell list to be modified */ - NrEcgi srvdCellLstDel[DU_MAX_CELLS]; /* Served cell list to be deleted */ - F1CellStatus cellStatus[DU_MAX_CELLS]; /* Cell status */ - F1DedSIDelUE ueLst[MAX_UEID]; /* Ue list that requires dedicated SI delivery */ - U32 gnbDuId; - F1TnlAssocToRmv gnbDuTnlAssocRmv[MAX_TNL_ASSOC]; /* TNL Assoc list to remove */ -}F1GnbDuCfgUpd; - -typedef struct f1GnbDuCfgUpdAck -{ - U32 transId; /* Uniquely identify transaction */ - F1CuActCellInfo cellLstAct[DU_MAX_CELLS]; /* List of cells to be activated */ - F1CritDiagnostic critDiagnostic; /* Critical diagnostics */ - NrEcgi cellLstDeact[DU_MAX_CELLS]; /* List of cells to be deactivated */ -}F1GnbDuCfgUpdAck; - -typedef struct f1GnbDuCfgUpdFail -{ - F1FailureIE gnbDuCfgUpdFail; -}F1GnbDuCfgUpdFail; - -/* Sent by the gNB-CU to transfer updated information associated to an F1-C interface instance */ -typedef struct f1GnbCuCfgUpd -{ - U32 transId; /* Uniquely identifies transaction */ - F1CuActCellInfo cellLstAct[DU_MAX_CELLS]; /* List of cells to be activated */ - NrEcgi cellLstDeact[DU_MAX_CELLS]; /* List of cells to be deactivated */ - F1TnlAssoc assocLstAdd[MAX_TNL_ASSOC]; /* List of TNL assocs to be added */ - F1TnlAssoc assocLstUpd[MAX_TNL_ASSOC]; /* List of TNL assocs to be updated */ - F1TnlAssocToRmv assocLstRmv[MAX_TNL_ASSOC]; /* List of TNL assocs to be removed */ - F1CellBarred cellToBarList[DU_MAX_CELLS]; /* List of Cells to be barred */ - F1ProtectEUTRARsrc protectEutraRsrcList[MAXCELLINENB]; /* List of Protected EUTRA resources */ -}F1GnbCuCfgUpd; - -/* Sent by a gNB-DU to a gNB-CU to acknowledge update of information - * associated to an F1-C interface instance */ -typedef struct f1GnbCuCfgUpdAck -{ - U32 transId; /* Uniquely identify transaction */ - F1ActCellFail actCellFailList[DU_MAX_CELLS]; /* Cells failed to be activated list */ - F1CritDiagnostic critDiagnostic; /* Critical diagnostics */ - F1TnlAssocAddr assocSetupList[MAX_TNL_ASSOC]; /* TNL Assoc Setup list */ - F1TnlAssocSetupFail assocSetupFailList[MAX_TNL_ASSOC]; /* TNL Assoc Setup fail list */ - F1DedSIDelUE dedSiDelUelist[MAXNUMOFUEID]; /* Dedicated SI delivery needed UE list */ -}F1GnbCuCfgUpdAck; - -typedef struct f1GnbCuCfgUpdFail -{ - F1FailureIE gnbCuCfgUpdFail; -}F1GnbCuCfgUpdFail; - -/* This procedure enables coordination of radio resource allocation between a gNB-CU and - * a gNB-DU. Coordination request is sent by CU to DU */ -typedef struct f1GnbDuRsrcCoordReq -{ - U32 transId; /* Uniquely identifies transaction */ - F1ReqType reqType; /* Request type */ - U8 cellResCoordReqCont; /* Container for X2AP E-UTRA - NR cell resource coordination request */ - F1IgnoreReq ignoreReq; /* Ignore coordination request */ -}F1GnbDuRsrcCoordReq; - -/* This message is sent by a gNB-DU to a gNB-CU, to express the desired resource allocation - * for data traffic, as a response to the GNB-DU RESOURCE COORDINATION REQUEST. */ -typedef struct f1GnbDuRsrcCoordRsp -{ - U32 transId; /* Uniquely identifies transaction */ - U8 cellResCoordRspCont; /* Container for X2AP E-UTRA - NR cell resource coordination response */ -}F1GnbDuRsrcCoordRsp; - -/* This message is sent by the gNB-DU to indicate to the gNB-CU its status of overload */ -typedef struct f1GnbDuStatusInd -{ - U32 transId; /* Uniquely identifies transaction */ - F1GnbDuOvrloadInfo ovrloadInfo; /* gNB-DU overloaded information */ -}F1GnbDuStatusInd; - -/* This message is sent by either the gNB-DU or the gNB-CU to intiate the removal - * of the interface instance and the related resources */ -typedef struct f1RmvReq -{ - U32 transId; /* Uniquely identifies transaction */ -}F1RmvReq; - -/* This message acknowledges the initiation of removal of the interface - * instance and the related resources */ -typedef struct f1RmvRsp -{ - U32 transId; /* Uniquely identifies transaction */ - F1CritDiagnostic critDiagnos; /* Crititcality diagnostics */ -}F1RmvRsp; - -/* This message indicates that removing the interface instance and the related - * resources cannot be accepted */ -typedef struct f1RmvFail -{ - U32 transId; /* Uniquely identifies transaction */ - F1FailCause cause; /* Failure cause */ - F1CritDiagnostic critDiagnostic; /* Criticality diagnostics */ -}F1RmvFail; - -/* This message is sent by the gNB-CU to indicate to the gNB-DU a need to reduce - * the rate at which UEs access the network. */ -typedef struct f1NwkAccessRateRed -{ - U32 transId; /* Uniquely identifies transaction */ - F1UacAssistInfo uacAssistInfo; /* UAC Assistance Information */ -}F1NwkAccessRateRed; - -typedef struct f1Ipaddr -{ - Bool ipV4Pres; - U32 ipV4Addr; -}F1IpAddr; - -typedef struct f1SctpParams -{ - F1IpAddr duIpAddr; - U16 duPort; - F1IpAddr cuIpAddr; - U16 cuPort; -}F1SctpParams; - -typedef struct f1EgtpParams -{ - F1IpAddr localIp; /* Ip address of local node */ - U16 localPort; /* Sender Port at local node */ - F1IpAddr destIp; /* Ip address of peer node */ - U16 destPort; /* Sender port at peer node */ - U32 minTunnelId; - U32 maxTunnelId; -}F1EgtpParams; - -typedef struct cellCfgParams -{ - NrEcgi nrEcgi; /* ECGI */ - U16 nrPci; /* PCI */ - U16 fiveGsTac; /* 5gSTac */ - PlmnId plmn[MAX_PLMN]; /* List of serving PLMN IDs */ - U8 ranac; /* RAN Area Code */ - U32 maxUe; /* max UE per slot */ -}CellCfgParams; - -typedef struct schedulerCfg -{ - U8 numTxAntPorts; /*!< Number of Tx antenna ports */ - U8 ulSchdType; /*!< Indicates which UL scheduler to use, range - * is 0..(number of schedulers - 1) */ - U8 dlSchdType; /*!< Indicates which DL scheduler to use, range - * is 0..(number of schedulers - 1) */ - U8 numCells; /*!< Max number of cells */ - U8 maxUlUePerTti; /*!< Max number of UE in UL per TTI */ - U8 maxDlUePerTti; /*!< Max number of UE in DL per TTI */ -}SchedulerCfg; - -typedef struct duCfgParams -{ - F1SctpParams sctpParams; /* SCTP Params */ - F1EgtpParams egtpParams; /* EGTP Params */ - U32 maxUe; - U32 duId; - U8 duName[CU_DU_NAME_LEN_MAX]; - SchedulerCfg schedCfg; - CellCfgParams cellCfg[DU_MAX_CELLS]; /* Cell info config*/ - F1DuSrvdCellInfo srvdCellLst[DU_MAX_CELLS]; /* Serving cell list *///TODO: this must be removed eventually - F1RrcVersion rrcVersion; /* RRC version */ - ClCellCfg clCellCfg; /* CL cell configuration */ - -}DuCfgParams; - -typedef struct duCellCb -{ - U32 cellId; /* Internal cell Id */ - CellCfgParams cellInfo; /* Cell info */ - CellStatus cellStatus; /*Cell status */ -}DuCellCb; - -/*function declarations */ -void fillSlotConfig(); -S16 readClCfg(); -S16 readCfg(); -S16 duReadCfg(); -S16 bitStringToInt(BIT_STRING_t *bitString, U16 *val); - -#endif /* __DU_CONFIG_H__ */ - -/********************************************************************** - End of file -**********************************************************************/ diff --git a/src/du_app/du_f1ap_msg_hdl.c b/src/du_app/du_f1ap_msg_hdl.c index 65e6725b8..2dd414b8a 100644 --- a/src/du_app/du_f1ap_msg_hdl.c +++ b/src/du_app/du_f1ap_msg_hdl.c @@ -19,7 +19,7 @@ /* This file contains F1AP message handler functions */ #include "du_mgr_main.h" -#include "du_cfg_hdl.h" +#include "du_cfg.h" #include "du_cell_mgr.h" #include "du_f1ap_msg_hdl.h" diff --git a/src/du_app/du_mgr.h b/src/du_app/du_mgr.h index 008079714..10ba6af21 100644 --- a/src/du_app/du_mgr.h +++ b/src/du_app/du_mgr.h @@ -38,7 +38,6 @@ #include "lrg.h" #include "legtp.h" -/*#include "du_cfg_hdl.h"*/ #include "gen.x" /* General */ #include "ssi.x" /* System services */ diff --git a/src/du_app/du_sctp.h b/src/du_app/du_sctp.h index 45da7b592..20872771a 100644 --- a/src/du_app/du_sctp.h +++ b/src/du_app/du_sctp.h @@ -21,7 +21,7 @@ #ifndef __DU_SCTP_H__ #define __DU_SCTP_H__ -#include "du_cfg_hdl.h" +#include "du_cfg.h" #include "du_mgr.h" #include "du_log.h" #include "cm_inet.h" -- 2.16.6