X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=src%2F5gnrpdcp%2Fpj_ptmi.c;fp=src%2F5gnrpdcp%2Fpj_ptmi.c;h=9ec0be970b19e8d90c17cf17f3e29d18e6e1bfec;hb=9ffd4692faec97b8457ef0428549b7bfa7a6bb82;hp=0000000000000000000000000000000000000000;hpb=5625a52ad68f6ad93684e68bbbdbaef0d462cf9a;p=o-du%2Fl2.git diff --git a/src/5gnrpdcp/pj_ptmi.c b/src/5gnrpdcp/pj_ptmi.c new file mode 100755 index 000000000..9ec0be970 --- /dev/null +++ b/src/5gnrpdcp/pj_ptmi.c @@ -0,0 +1,607 @@ +/******************************************************************************* +################################################################################ +# 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: PDCP Layer Management interface + + Type: C source file + + Desc: This file contains source code for RLC layer management + interface primitives. It includes the definition of the + following functions and their portable function + definitions. + -- PjMiLpjCfgCfm + -- PjMiLpjCntrlCfm + -- PjMiLpjStaInd + + + File: pj_ptmi.c + +*********************************************************************21*/ + + +/* header (.h) include files */ +#include "envopt.h" /* environment options */ +#include "envdep.h" /* environment dependent */ +#include "envind.h" /* environment independent */ + +#include "gen.h" /* general */ +#include "ssi.h" /* system services */ +#include "cm5.h" /* common timer defines */ +#include "cm_tkns.h" /* common tokens defines */ +#include "cm_mblk.h" /* common memory allocation library defines */ +#include "cm_llist.h" /* common link list defines */ +#include "cm_hash.h" /* common hash list defines */ +#include "cm_lte.h" /* common LTE defines */ +#include "lpj.h" /* LPJ defines */ + + +/* extern (.x) include files */ +#include "gen.x" /* general */ +#include "ssi.x" /* system services */ + +#include "cm5.x" /* common timer library */ +#include "cm_tkns.x" /* common tokens */ +#include "cm_mblk.x" /* common memory allocation */ +#include "cm_llist.x" /* common link list */ +#include "cm_hash.x" /* common hash list */ +#include "cm_lte.x" /* common LTE includes */ +#include "cm_lib.x" /* common memory allocation library */ +#include "lpj.x" /* LPJ */ + + +/* local defines */ +#ifndef LCPJMILPJ +#define PTPJLPJ +#endif + +#ifndef SM +#define PTPJLPJ +#endif + + +#ifdef PTPJLPJ + +EXTERN S16 PtMiLpjCfgCfm ARGS((Pst * pst, PjMngmt * cfgCfm)); + +EXTERN S16 PtMiLpjCntrlCfm ARGS((Pst * pst, PjMngmt * cntlCfm)); + +EXTERN S16 PtMiLpjStaInd ARGS((Pst * pst, PjMngmt * staInd)); + +EXTERN S16 PtMiLpjStaCfm ARGS((Pst * pst, PjMngmt * staCfm)); + +EXTERN S16 PtMiLpjStsCfm ARGS((Pst * pst, Action actn, PjMngmt * stsCfm)); + +EXTERN S16 PtMiLpjTrcInd ARGS((Pst * pst, PjMngmt * trc, Buffer * mBuf)); + +/* kw005.201 added support for L2 Measurement */ +#ifdef LTE_L2_MEAS +EXTERN S16 PtMiLpjL2MeasCfm ARGS((Pst *pst, PjL2MeasCfmEvt *measEvt)); +PRIVATE S16 PtMiLpjL2MeasStopCfm ARGS((Pst *pst, U16 measType,U8 status)); +#endif /* LTE_L2_MEAS */ + +#endif /*--#ifdef PTPJLPJ--*/ + +/********************************************************************* + * Primitives for LPJ interface + ********************************************************************/ +PRIVATE CONSTANT LpjCfgCfm PjMiLpjCfgCfmMt[] = +{ +#ifdef LCPJMILPJ + cmPkLpjCfgCfm, +#else + PtMiLpjCfgCfm, +#endif +#ifdef SM + SmMiLpjCfgCfm, +#else + PtMiLpjCfgCfm, +#endif +}; + + +PRIVATE CONSTANT LpjCntrlCfm PjMiLpjCntrlCfmMt[] = +{ +#ifdef LCPJMILPJ + cmPkLpjCntrlCfm, +#else + PtMiLpjCntrlCfm, +#endif +#ifdef SM + SmMiLpjCntrlCfm, +#else + PtMiLpjCntrlCfm, +#endif +}; + + +PRIVATE CONSTANT LpjStaInd PjMiLpjStaIndMt[] = +{ +#ifdef LCPJMILPJ + cmPkLpjStaInd, +#else + PtMiLpjStaInd, +#endif +#ifdef SM + SmMiLpjStaInd, +#else + PtMiLpjStaInd, +#endif +}; + + +PRIVATE CONSTANT LpjStaCfm PjMiLpjStaCfmMt[] = +{ +#ifdef LCPJMILPJ + cmPkLpjStaCfm, +#else + PtMiLpjStaCfm, +#endif +#ifdef SM + SmMiLpjStaCfm, +#else + PtMiLpjStaCfm, +#endif +}; + + +PRIVATE CONSTANT LpjStsCfm PjMiLpjStsCfmMt[] = +{ +#ifdef LCPJMILPJ + cmPkLpjStsCfm, +#else + PtMiLpjStsCfm, +#endif +#ifdef SM + SmMiLpjStsCfm, +#else + PtMiLpjStsCfm, +#endif +}; + + +PRIVATE CONSTANT LpjTrcInd PjMiLpjTrcIndMt[] = +{ +#ifdef LCPJMILPJ + cmPkLpjTrcInd, +#else + PtMiLpjTrcInd, +#endif +#ifdef SM + SmMiLpjTrcInd, +#else + PtMiLpjTrcInd, +#endif +}; + +/* kw005.201 added support for L2 Measurement */ +#ifdef LTE_L2_MEAS +PRIVATE CONSTANT LpjL2MeasCfm PjMiLpjL2MeasCfmMt[] = +{ +#ifdef LCPJMILPJ + cmPkLpjL2MeasCfm, +#else + PtMiLpjL2MeasCfm, +#endif +#ifdef SM + SmMiLpjL2MeasCfm, +#else + PtMiLpjL2MeasCfm, +#endif +}; +PRIVATE CONSTANT LpjL2MeasStopCfm PjMiLpjL2MeasStopCfmMt[] = +{ +#ifdef LCPJMILPJ + cmPkLpjL2MeasStopCfm, +#else + PtMiLpjL2MeasStopCfm, +#endif +#ifdef SM + SmMiLpjL2MeasStopCfm, +#else + PtMiLpjL2MeasStopCfm, +#endif +}; +#endif /* LTE_L2_MEAS */ + +/**************************************************************************** + * LPJ Interface Mt functions + ***************************************************************************/ +#ifdef ANSI +PUBLIC S16 PjMiLpjCfgCfm +( +Pst * pst, +PjMngmt * cfgCfm +) +#else +PUBLIC S16 PjMiLpjCfgCfm(pst, cfgCfm) +Pst * pst; +PjMngmt * cfgCfm; +#endif +{ + + TRC3(PjMiLpjCfgCfm) + + (*PjMiLpjCfgCfmMt[pst->selector])(pst, cfgCfm); + + RETVALUE(ROK); + +} + + +#ifdef ANSI +PUBLIC S16 PjMiLpjCntrlCfm +( +Pst * pst, +PjMngmt * cntlCfm +) +#else +PUBLIC S16 PjMiLpjCntrlCfm(pst, cntlCfm) +Pst * pst; +PjMngmt * cntlCfm; +#endif +{ + + TRC3(PjMiLpjCntrlCfm) + + (*PjMiLpjCntrlCfmMt[pst->selector])(pst, cntlCfm); + + RETVALUE(ROK); + +} + + +#ifdef ANSI +PUBLIC S16 PjMiLpjStaInd +( +Pst * pst, +PjMngmt * staInd +) +#else +PUBLIC S16 PjMiLpjStaInd(pst, staInd) +Pst * pst; +PjMngmt * staInd; +#endif +{ + + TRC3(PjMiLpjStaInd) + + (*PjMiLpjStaIndMt[pst->selector])(pst, staInd); + + RETVALUE(ROK); + +} + + +#ifdef ANSI +PUBLIC S16 PjMiLpjStaCfm +( +Pst * pst, +PjMngmt * staCfm +) +#else +PUBLIC S16 PjMiLpjStaCfm(pst, staCfm) +Pst * pst; +PjMngmt * staCfm; +#endif +{ + + TRC3(PjMiLpjStaCfm) + + (*PjMiLpjStaCfmMt[pst->selector])(pst, staCfm); + + RETVALUE(ROK); + +} + + +#ifdef ANSI +PUBLIC S16 PjMiLpjStsCfm +( +Pst * pst, +Action actn, +PjMngmt * stsCfm +) +#else +PUBLIC S16 PjMiLpjStsCfm(pst, actn, stsCfm) +Pst * pst; +Action actn; +PjMngmt * stsCfm; +#endif +{ + + TRC3(PjMiLpjStsCfm) + + (*PjMiLpjStsCfmMt[pst->selector])(pst, actn, stsCfm); + + RETVALUE(ROK); + +} + + +#ifdef ANSI +PUBLIC S16 PjMiLpjTrcInd +( +Pst * pst, +PjMngmt * trc, +Buffer * mBuf +) +#else +PUBLIC S16 PjMiLpjTrcInd(pst, trc, mBuf) +Pst * pst; +PjMngmt * trc; +Buffer * mBuf; +#endif +{ + + TRC3(PjMiLpjTrcInd) + + (*PjMiLpjTrcIndMt[pst->selector])(pst, trc, mBuf); + + RETVALUE(ROK); + +} + +/* kw005.201 added support for L2 Measurement */ +#ifdef LTE_L2_MEAS +#ifdef ANSI +PUBLIC S16 PjMiLpjL2MeasCfm +( +Pst * pst, +PjL2MeasCfmEvt *measEvt +) +#else +PUBLIC S16 PjMiLpjL2MeasCfm(pst, trc, mBuf) +Pst * pst; +PjL2MeasCfmEvt *measEvt; +#endif +{ + + TRC3(PjMiLpjL2MeasCfm) + + (*PjMiLpjL2MeasCfmMt[pst->selector])(pst, measEvt); + + RETVALUE(ROK); + +} +#ifdef ANSI +PUBLIC S16 PjMiLpjL2MeasStopCfm +( +Pst *pst, +U16 measType, +U8 status +) +#else +PUBLIC S16 PjMiLpjL2MeasStopCfm(pst, measType,status) +Pst *pst; +U16 measType; +U8 status; +#endif +{ + + TRC3(PjMiLpjL2MeasStopCfm) + + (*PjMiLpjL2MeasStopCfmMt[pst->selector])(pst, measType,status); + + RETVALUE(ROK); + +} +#endif /* LTE_L2_MEAS */ + + +#ifdef PTPJLPJ + + +#ifdef ANSI +PUBLIC S16 PtMiLpjCfgCfm +( +Pst * pst, +PjMngmt * cfgCfm +) +#else +PUBLIC S16 PtMiLpjCfgCfm(pst, cfgCfm) +Pst * pst; +PjMngmt * cfgCfm; +#endif +{ + + TRC3(PtMiLpjCfgCfm) + + UNUSED(pst); + UNUSED(cfgCfm); + + RETVALUE(ROK); + +} + + +#ifdef ANSI +PUBLIC S16 PtMiLpjCntrlCfm +( +Pst * pst, +PjMngmt * cntlCfm +) +#else +PUBLIC S16 PtMiLpjCntrlCfm(pst, cntlCfm) +Pst * pst; +PjMngmt * cntlCfm; +#endif +{ + + TRC3(PtMiLpjCntrlCfm) + + UNUSED(pst); + UNUSED(cntlCfm); + + RETVALUE(ROK); + +} + + +#ifdef ANSI +PUBLIC S16 PtMiLpjStaInd +( +Pst * pst, +PjMngmt * staInd +) +#else +PUBLIC S16 PtMiLpjStaInd(pst, staInd) +Pst * pst; +PjMngmt * staInd; +#endif +{ + + TRC3(PtMiLpjStaInd) + + UNUSED(pst); + UNUSED(staInd); + + RETVALUE(ROK); + +} + + +#ifdef ANSI +PUBLIC S16 PtMiLpjStaCfm +( +Pst * pst, +PjMngmt * staCfm +) +#else +PUBLIC S16 PtMiLpjStaCfm(pst, staCfm) +Pst * pst; +PjMngmt * staCfm; +#endif +{ + + TRC3(PtMiLpjStaCfm) + + UNUSED(pst); + UNUSED(staCfm); + + RETVALUE(ROK); + +} + + +#ifdef ANSI +PUBLIC S16 PtMiLpjStsCfm +( +Pst * pst, +Action actn, +PjMngmt * stsCfm +) +#else +PUBLIC S16 PtMiLpjStsCfm(pst, actn, stsCfm) +Pst * pst; +Action actn; +PjMngmt * stsCfm; +#endif +{ + + TRC3(PtMiLpjStsCfm) + + UNUSED(pst); + UNUSED(actn); + UNUSED(stsCfm); + + RETVALUE(ROK); + +} + + +#ifdef ANSI +PUBLIC S16 PtMiLpjTrcInd +( +Pst * pst, +PjMngmt * trc, +Buffer * mBuf +) +#else +PUBLIC S16 PtMiLpjTrcInd(pst, trc, mBuf) +Pst * pst; +PjMngmt * trc; +Buffer * mBuf; +#endif +{ + + TRC3(PtMiLpjTrcInd) + + UNUSED(pst); + UNUSED(trc); + UNUSED(mBuf); + + RETVALUE(ROK); + +} + +/* kw005.201 added support for L2 Measurement */ +#ifdef LTE_L2_MEAS +#ifdef ANSI +PUBLIC S16 PtMiLpjL2MeasCfm +( +Pst * pst, +PjL2MeasCfmEvt * measEvt +) +#else +PUBLIC S16 PtMiLpjL2MeasCfm(pst, measEvt) +Pst * pst; +PjL2MeasCfmEvt * measEvt; +#endif +{ + + TRC3(PtMiLpjL2MeasCfm) + + UNUSED(pst); + UNUSED(measEvt); + + RETVALUE(ROK); + +} +#ifdef ANSI +PRIVATE S16 PtMiLpjL2MeasStopCfm +( +Pst * pst, +U16 measType, +U8 status +) +#else +PRIVATE S16 PtMiLpjL2MeasStopCfm(pst, measType,status) +Pst * pst; +U16 measType; +U8 status; +#endif +{ + + TRC3(PtMiLpjL2MeasStopCfm) + + UNUSED(pst); + UNUSED(measType); + UNUSED(status); + + RETVALUE(ROK); + +} +#endif /* LTE_L2_MEAS */ +#endif /*--ifdef PTPJLPJ--*/ + +/********************************************************************30** + + End of file +**********************************************************************/