X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;ds=sidebyside;f=src%2Fcm%2Flkw.x;fp=src%2Fcm%2Flkw.x;h=af84ad55b85d2c9c01b904f88c0347c1b40d0112;hb=5625a52ad68f6ad93684e68bbbdbaef0d462cf9a;hp=0000000000000000000000000000000000000000;hpb=59f84608ec15c016958a6e0e0ddd813f376c0925;p=o-du%2Fl2.git diff --git a/src/cm/lkw.x b/src/cm/lkw.x new file mode 100755 index 000000000..af84ad55b --- /dev/null +++ b/src/cm/lkw.x @@ -0,0 +1,803 @@ +/******************************************************************************* +################################################################################ +# 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. # +################################################################################ +*******************************************************************************/ + +/********************************************************************20** + + Name: LKW RLC Layer Manager Interface + + Type: C include file + + Desc: This file Contains the Data structures and prototypes + for LKW Interface + + File: lkw.x + +*********************************************************************21*/ + +#ifndef __LKW_X__ +#define __LKW_X__ + +#ifdef __cplusplus +EXTERN "C" { +#endif /* __cplusplus */ + + +/** @brief + General Configuration Structure. */ +typedef struct kwGenCfg +{ + Pst lmPst; /*!< Post structure for communicating + with LM. */ + U32 maxUe; /*!< Maximum number of UEs supported + by RLC. */ + U16 maxKwuSaps; /*!< Maximum KWU SAPs. */ +/* Supported by SPLIT Architecture */ + U16 maxUdxSaps; /*!< Maximum Udx SAPs. */ +/* Supported by SPLIT Architecture ends */ + Ticks timeRes; /*!< Time resolution. */ +/* Supported by SPLIT Architecture */ + U8 rlcMode; /*!< RLC_DL or RLC_UL */ +/* Supported by SPLIT Architecture ends */ + U16 maxRguSaps; /*!< Maximum RGU SAPs. */ +}KwGenCfg; + +/** @brief + SAP Configuration Structure */ +typedef struct kwSapCfg +{ + Selector selector; /*!< Selector for LC/TC. */ + MemoryId mem; /*!< Region and pool. */ + ProcId procId; /*!< Processor ID. */ + Ent ent; /*!< Entity ID. */ + Inst inst; /*!< Instance ID. */ + SpId sapId; /*!< SAP ID. */ + U16 bndTmrIntvl; /*!< Bind timer interval. */ + Priority priority; /*!< Priority. */ + Route route; /*!< Route. */ +}KwSapCfg; + +/** @brief +* Configuration Structure +*/ +typedef struct kwCfg +{ + union + { + KwGenCfg gen; /*!< General configuraton. */ + KwSapCfg sap; /*!< SAP configuration. */ + }s; +}KwCfg; + +/** @brief + General Statistics Structure */ +typedef struct kwGenSts +{ + CntrSts numUe; /*!< Total number of UEs. */ + CntrSts pdusRecv; /*!< Number of PDUs received. */ + CntrSts pdusSent; /*!< Number of PDUs sent. */ + CntrSts pdusRetx; /*!< Number of PDUs retransmitted. */ + CntrSts bytesRecv; /*!< Number of bytes received. */ + CntrSts bytesSent; /*!< Number of bytes sent. */ + CntrSts unexpPdusRecv; /*!< Unexpected PDU received. */ + CntrSts errorPdusRecv; /*!< Format error pdus received. */ + CntrSts protTimeOut; /*!< Number of protocol time outs leading + to retransmission. */ + CntrSts numOfRb; /*!< Total number of RBs in RLC. */ + CntrSts numSduDisc; /*!< Number of SDUs discarded. */ +}KwGenSts; + +/** @brief + RLC Upper SAP statistics */ +typedef struct kwKwuSapSts +{ + /* lkw_x_001.main_2, changed from suId to spId */ + SpId spId; /*!< Service Provider ID. */ + CntrSts sduRx; /*!< Number of SDUs received. */ + CntrSts sduTx; /*!< Number of tranxmitted SDUs. */ +}KwKwuSapSts; + +/** @brief + RRC Control SAP Statistics */ +typedef struct kwCkwCntSts +{ + CntrSts statMsgs; /*!< Number of Status Messages send. */ +}KwCkwCntSts; + +/** @brief + Statistics Structure */ +typedef struct kwSts +{ + DateTime dt; /*!< Date and Time structure. */ + union + { + KwGenSts gen; /*!< General Statistics. */ + KwKwuSapSts kwuSap; /*!< RLC upper SAP statistics. */ + KwCkwCntSts ckwSap; /*!< RRC control SAP. */ + }s; +}KwSts; + +/** @brief + MAC Upper SAP Status Structure */ +typedef struct kwRguSapSta +{ + SuId suId; /*!< Service user ID. */ + State state; /*!< State of the SAP. */ +}KwRguSapSta; + +/** @brief + RLC Upper SAP Status Structure */ +typedef struct kwKwuSapSta +{ + SpId spId; /*!< Service provider ID. */ + State state; /*!< State of the SAP. */ +}KwKwuSapSta; + +/** @brief + RRC Control SAP Status Structure */ +typedef struct kwCkwCntSapSta +{ + SpId spId; /*!< Service provider ID. */ + State state; /*!< State of the SAP. */ +}KwCkwCntSapSta; + +/** @brief + Status Structure */ +typedef struct kwSSta +{ + DateTime dt; /*!< Date and Time structure. */ + union + { + SystemId sysId; /*!< System ID. */ + KwRguSapSta rguSap; /*!< RLC lower SAP (MAC) status. */ + KwKwuSapSta kwuSap; /*!< RLC Upper SAP status. */ + KwCkwCntSapSta ckwSap; /*!< RRC Control SAP Status. */ + }s; +}KwSSta; + +/** @brief + Trace Control Structure */ +typedef struct kwTrcCntrl +{ + U8 trcMask; /*!< Trace mask. */ + S16 trcLen; /*!< Trace length. */ +}KwTrcCntrl; + +/** @brief + Debug Control Structure */ +typedef struct kwDbgCntrl +{ + U32 dbgMask; /*!< Debug mask. Assign non zero value to enable + and zero to disable debug */ +}KwDbgCntrl; + +/** @brief + SAP Control Structure */ +typedef struct kwSapCntrl +{ + SuId suId; /*!< Service user ID. */ + SpId spId; /*!< Service provider ID. */ +}KwSapCntrl; + +/** @brief + Control Structure */ +typedef struct kwCntrl +{ + DateTime dt; /*!< Date and Time structure. */ + U8 action; /*!< Action. */ + U8 subAction; /*!< Sub action. */ + union + { + KwTrcCntrl trcCntrl; /*!< Trace Control Structure. */ + KwDbgCntrl dbgCntrl; /*!< Debug Control Structure. */ + KwSapCntrl sapCntrl; /*!< SAP Control Structure. */ +#ifdef SS_DIAG + U32 logMask; /*!< Logging Control Structure. */ +#endif + }s; +}KwCntrl; + +/** @brief + Unsolicited Status Structure */ +typedef struct kwUSta +{ + DateTime dt; /*!< Date and Time structure. */ + CmAlarm alarm; /*!< Alarm. */ + SuId suId; /*!< Service user ID. */ + U32 ueId; /*!< Urnti UE ID. */ + /* lkw_x_001.main_2, added support for L2 measurement */ +#ifdef LTE_L2_MEAS + U8 qci; /*!< Qci value */ +#endif +}KwUSta; + +/** @brief + Trace Structure */ +typedef struct kwTrc +{ + DateTime dt; /*!< Date and Time structure. */ + U16 event; /*!< Event. Events defined in the differenct RLC + interfaces are pssible values here.*/ +}KwTrc; + +/** @brief + Layer Management Structure */ +typedef struct _kwMngmt +{ + Header hdr; /*!< Common header. */ + CmStatus cfm; /*!< Status of confirmation. */ + union + { + KwCfg cfg; /*!< General Configuration. */ + KwCntrl cntrl; /*!< Control Structure. */ + KwSts sts; /*!< Statistics. */ + KwSSta ssta; /*!< Status. */ + KwUSta usta; /*!< Unsolicited Status. */ + KwTrc trc; /*!< Trace Structre. */ + }t; +}KwMngmt; + +/* lkw_x_001.main_2, added support for L2 measurement */ +#ifdef LTE_L2_MEAS + +/** @brief Measurement Request Params Structure. */ +typedef struct kwL2MeasReqInfo +{ + U8 measType; /*!< Measurement type, bit 1 to 4 (LSB nibble) + will be used for non IP Throughput and + bit 5 and 6 will be used for DL and UL + Ipthroughput respectively */ + union + { + struct + { + U16 numSamples; /*!