+++ /dev/null
-/*******************************************************************************
-################################################################################
-# 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: RLC service user (PDCP) lower interface
-
- Type: C file
-
- Desc: This file Contains the RLC service user lower interface
- primitive implementain
-
- File: pj_ptli.c
-
-*********************************************************************21*/
-\f
-/* 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 "kwu.h" /* KWU defines */
-#include "pj_err.h"
-
-/* extern (.x) include files */
-#include "gen.x" /* general */
-#include "ssi.x" /* system services */
-//#if defined(PDCP_RLC_DL_RBUF)
-#include "ss_rbuf.h"
-#include "ss_rbuf.x"
-#include "kwu.h" /* PJU */
-#include "ss_queue.h"
-#include "ss_queue.x"
-#include "ss_task.h"
-#include "ss_task.x"
-#include "ss_timer.x" /* System services */
-#include "ss_msg.h" /* System services */
-#include "ss_msg.x" /* System services */
-#include "ss_mem.h" /* System services */
-#include "ss_mem.x" /* System services */
-#include "ss_drvr.x"
-#include "ss_gen.h"
-#include "ss_gen.x"
-//#endif
-
-#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 "kwu.x" /* KWU */
-
-
-PUBLIC U8 SUpdMbufMemInfo (Pst *pst,Buffer *mBuf);
-#if defined(PDCP_RLC_DL_RBUF) && !defined(SS_RBUF)
-PUBLIC S16 pjKwuRbufDatReq(Pst * pst,SpId spId,KwuDatReqInfo* datReq,Buffer * mBuf);
-#endif
-
-EXTERN S16 PtLiKwuBndReq ARGS ((
-Pst *post,
-SuId suId,
-SpId spId
-));
-
-EXTERN S16 PtLiKwuUbndReq ARGS ((
-Pst *post,
-SpId spId,
-Reason reason
-));
-
-EXTERN S16 PtLiKwuDiscSduReq ARGS ((
-Pst *post,
-SpId spId,
-KwuDiscSduInfo *discSdu
-));
-
-EXTERN S16 PtLiKwuDatReq ARGS ((
-Pst *post,
-SpId spId,
-KwuDatReqInfo *datReq,
-Buffer *mBuf
-));
-\f
-/************************************************************************
- KWU Interface Matrices
-************************************************************************/
-
-PUBLIC KwuBndReq pjLiKwuBndReqMt [] =
-{
-#ifdef LCKWUIKWU
- cmPkKwuBndReq, /* 0 - loosely coupled */
-#else
- PtLiKwuBndReq, /* 0 - loosely coupled, portable */
-#endif
-#ifdef KW
- KwUiKwuBndReq, /* 1 - tightly coupled, stub layer */
-#else
- PtLiKwuBndReq, /* 1 - tightly coupled, portable */
-#endif
-#ifdef LWLCKWUIKWU
- cmPkKwuBndReq, /* 3 - light weight loosely coupled */
-#else
- PtLiKwuBndReq, /* 3 - light weight loosely coupled, portable */
-#endif
-};
-
-PUBLIC KwuUbndReq pjLiKwuUbndReqMt [] =
-{
-#ifdef LCKWUIKWU
- cmPkKwuUbndReq, /* 0 - loosely coupled */
-#else
- PtLiKwuUbndReq, /* 0 - loosely coupled, portable */
-#endif
-#ifdef KW
- KwUiKwuUbndReq, /* 1 - tightly coupled, stub layer */
-#else
- PtLiKwuUbndReq, /* 1 - tightly coupled, portable */
-#endif
-#ifdef LWLCKWUIKWU
- cmPkKwuUbndReq, /* 3 - light weight loosely coupled */
-#else
- PtLiKwuUbndReq, /* 3 - light weight loosely coupled, portable */
-#endif
-};
-
-PUBLIC KwuDatReq pjLiKwuDatReqMt [] =
-{
-#ifdef LCKWUIKWU
- cmPkKwuDatReq, /* 0 - loosely coupled */
-#else
- PtLiKwuDatReq, /* 0 - loosely coupled, portable */
-#endif
-#ifdef KW
- KwUiKwuDatReq, /* 1 - tightly coupled, stub layer */
-#else
- PtLiKwuDatReq, /* 1 - tightly coupled, portable */
-#endif
-#ifdef LWLCKWUIKWU
- cmPkKwuDatReq, /* 3 - light weight loosely coupled */
-#else
- PtLiKwuDatReq, /* 3 - light weight loosely coupled, portable */
-#endif
-};
-
-PUBLIC KwuDiscSduReq pjLiKwuDiscSduReqMt [] =
-{
-#ifdef LCKWUIKWU
- cmPkKwuDiscSduReq, /* 0 - loosely coupled */
-#else
- PtLiKwuDiscSduReq, /* 0 - loosely coupled, portable */
-#endif
-#ifdef KW
- KwUiKwuDiscSduReq, /* 1 - tightly coupled, stub layer */
-#else
- PtLiKwuDiscSduReq, /* 1 - tightly coupled, portable */
-#endif
-#ifdef LWLCKWUIKWU
- cmPkKwuDiscSduReq, /* 3 - light weight loosely coupled */
-#else
- PtLiKwuDiscSduReq, /* 3 - light weight loosely coupled, portable */
-#endif
-};
-
-\f
-/****************************************************************************
- * KWU Interface Mt functions
- ***************************************************************************/
-/**
- *
- * @brief
- *
- * PjLiKwuBndReq - KWU SAP bind Request
- *
- * @param[in] pst - Post structure
- * @param[in] suId - Service user SAP ID
- * @param[in] spId - Service provider ID
- *
- * @return S16
- * -# ROK
- */
-#ifdef ANSI
-PUBLIC S16 PjLiKwuBndReq
-(
-Pst *pst, /* post structure */
-SuId suId, /* Service User Id */
-SpId spId /* Service Provider Id */
-)
-#else
-PUBLIC S16 PjLiKwuBndReq(pst, suId, spId)
-Pst *pst; /* post structure */
-SuId suId; /* Service User Id */
-SpId spId; /* Service Provider Id */
-#endif
-{
- TRC3(PjLiKwuBndReq)
-
- /* jump to specific primitive depending on configured selector */
- (*pjLiKwuBndReqMt[pst->selector])(pst, suId, spId);
-
- RETVALUE(ROK);
-
-} /* end of PjLiKwuBndReq */
-
-\f
-/**
- *
- * @brief
- *
- * PjLiKwuUbndReq - KWU SAP unbind Request
- *
- * @param[in] pst - Post structure
- * @param[in] spId - Service provider SAP ID
- * @param[in] reason - Reason
- *
- * @return S16
- * -# ROK
- */
-#ifdef ANSI
-PUBLIC S16 PjLiKwuUbndReq
-(
-Pst *pst,
-SpId spId,
-Reason reason
-)
-#else
-PUBLIC S16 PjLiKwuUbndReq(pst, spId, reason)
-Pst *pst;
-SpId spId;
-Reason reason;
-#endif
-{
- TRC3(PjLiKwuUbndReq)
-
- /* jump to specific primitive depending on configured selector */
- (*pjLiKwuUbndReqMt[pst->selector])(pst, spId, reason);
-
- RETVALUE(ROK);
-
-} /* end of PjLiKwuUbndReq */
-
-\f
-/**
- *
- * @brief
- *
- * PjLiKwuDatReq - KWU Data Request
- *
- * @param[in] pst - Post structure
- * @param[in] spId - Service provider SAP ID
- * @param[in] datReq - Data Request
- *
- * @return S16
- * -# ROK
- */
-#ifdef ANSI
-PUBLIC S16 PjLiKwuDatReq
-(
-Pst *pst,
-SpId spId,
-KwuDatReqInfo *datReq,
-Buffer *mBuf
-)
-#else
-PUBLIC S16 PjLiKwuDatReq(pst, spId, datReq, mBuf)
-Pst *pst;
-SpId spId;
-KwuDatReqInfo *datReq;
-Buffer *mBuf;
-#endif
-{
- S16 ret = ROK;
-
- TRC3(PjLiKwuDatReq)
-#if defined(PDCP_RLC_DL_RBUF) && !defined(SS_RBUF)
- if(datReq->lcType == CM_LTE_LCH_DTCH)
- {
- if((pjKwuRbufDatReq(pst,spId, datReq, mBuf)) != ROK)
- {
- /* Posting the message as ring buffer write failure */
- ret = RFAILED;
- }
- }
- else
-#endif
- {
- /* jump to specific primitive depending on configured selector */
- ret = (*pjLiKwuDatReqMt[pst->selector])(pst, spId, datReq, mBuf);
- }
- RETVALUE(ret);
-
-} /* end of PjLiKwuDatReq */
-
-\f
-/**
- *
- * @brief
- *
- * PjLiKwuDiscSduReq - KWU Discard SDU Request
- *
- * @param[in] pst - Post structure
- * @param[in] spId - Service provider SAP ID
- * @param[in] datReq - Data Request
- *
- * @return S16
- * -# ROK
- */
-#ifdef ANSI
-PUBLIC S16 PjLiKwuDiscSduReq
-(
-Pst *pst,
-SpId spId,
-KwuDiscSduInfo *discSdu
-)
-#else
-PUBLIC S16 PjLiKwuDiscSduReq(pst, spId, discSdu)
-Pst *pst;
-SpId spId;
-KwuDiscSduInfo *discSdu;
-#endif
-{
- TRC3(PjLiKwuDiscSduReq)
-
- /* jump to specific primitive depending on configured selector */
- (*pjLiKwuDiscSduReqMt[pst->selector])(pst, spId, discSdu);
-
- RETVALUE(ROK);
-
-} /* end of PjLiKwuDiscSduReq */
-
-/****************************************************************************
- * Porting Functions
- ***************************************************************************/
-/**
- *
- * @brief
- *
- * PtLiKwuBndReq - portable bind request
- *
- * @param[in] pst - Post structure
- * @param[in] suId - Service user SAP ID
- * @param[in] spId - Service provider ID
- *
- * @return S16
- * -# ROK
- */
-
-#ifdef ANSI
-PUBLIC S16 PtLiKwuBndReq
-(
-Pst *post,
-SuId suId,
-SpId spId
-)
-#else
-PUBLIC S16 PtLiKwuBndReq(post, suId, spId)
-Pst *post;
-SuId suId;
-SpId spId;
-#endif /* ANSI */
-{
- TRC3(PtLiKwuBndReq)
-#if (ERRCLASS & ERRCLS_DEBUG)
- /* S16 ret1; */
- SLogError(post->srcEnt, post->srcInst, post->srcProcId,
- __FILE__, __LINE__, (ErrCls)ERRCLS_DEBUG,
- (ErrVal)EPJXXX, (ErrVal)ERRZERO, "Improper selector for NhLiKwuBndReq\n");
- RETVALUE( RFAILED );
-#endif /* (ERRCLASS & ERRCLS_DEBUG) */
- UNUSED(post);
- UNUSED(suId);
- UNUSED(spId);
-
- RETVALUE(ROK);
-} /* end of PtLiKwuBndReq() */
-
-\f
-/**
- *
- * @brief
- *
- * PtLiKwuUbndReq - portable unbind request
- *
- * @param[in] pst - Post structure
- * @param[in] suId - Service provider SAP ID
- * @param[in] reason - Reason
- *
- * @return S16
- * -# ROK
- */
-#ifdef ANSI
-PUBLIC S16 PtLiKwuUbndReq
-(
-Pst *post,
-SpId spId,
-Reason reason
-)
-#else
-PUBLIC S16 PtLiKwuUbndReq(post, spId, reason)
-Pst *post;
-SpId spId;
-Reason reason;
-#endif /* ANSI */
-{
- TRC3(PtLiKwuUbndReq)
-#if (ERRCLASS & ERRCLS_DEBUG)
- /* S16 ret1; */
- SLogError(post->srcEnt, post->srcInst, post->srcProcId,
- __FILE__, __LINE__, (ErrCls)ERRCLS_DEBUG,
- (ErrVal)EPJXXX, (ErrVal)ERRZERO, "Improper selector for NhLiKwuUbndReq\n");
- RETVALUE( RFAILED );
-#endif /* (ERRCLASS & ERRCLS_DEBUG) */
- UNUSED(post);
- UNUSED(spId);
- UNUSED(reason);
-
- RETVALUE(ROK);
-} /* end of PtLiKwuUbndReq() */
-
-/**
- *
- * @brief
- *
- * PtLiKwuDiscSduReq - portable discard SDU request
- *
- * @param[in] pst - Post structure
- * @param[in] spId - Service provider SAP ID
- * @param[in] datReq - Data Request
- *
- * @return S16
- * -# ROK
- */
-#ifdef ANSI
-PUBLIC S16 PtLiKwuDiscSduReq
-(
-Pst *post,
-SpId spId,
-KwuDiscSduInfo *discSdu
-)
-#else
-PUBLIC S16 PtLiKwuDiscSduReq(post, spId, discSdu)
-Pst *post;
-SpId spId;
-KwuDiscSduInfo *discSdu;
-#endif /* ANSI */
-{
- TRC3(PtLiKwuDiscSduReq)
-#if (ERRCLASS & ERRCLS_DEBUG)
- /* S16 ret1; */
- SLogError(post->srcEnt, post->srcInst, post->srcProcId,
- __FILE__, __LINE__, (ErrCls)ERRCLS_DEBUG,
- (ErrVal)EKWU010, (ErrVal)ERRZERO, "Improper selector for NhLiKwuDiscSduReq\n");
- RETVALUE( RFAILED );
-
-#endif /* (ERRCLASS & ERRCLS_DEBUG) */
- UNUSED(post);
- UNUSED(spId);
- UNUSED(discSdu);
-
- RETVALUE(ROK);
-} /* end of PtLiKwuDiscSduReq() */
-
-/**
- *
- * @brief
- *
- * PtLiKwuDatReq - portable data request
- *
- * @param[in] pst - Post structure
- * @param[in] spId - Service provider SAP ID
- * @param[in] datReq - Data Request
- *
- * @return S16
- * -# ROK
- */
-#ifdef ANSI
-PUBLIC S16 PtLiKwuDatReq
-(
-Pst *pst,
-SpId spId,
-KwuDatReqInfo *datReq,
-Buffer *mBuf
-)
-#else
-PUBLIC S16 PtLiKwuDatReq(pst, spId, datReq, mBuf)
-Pst *pst;
-SpId spId;
-KwuDatReqInfo *datReq;
-Buffer *mBuf;
-#endif /* ANSI */
-{
- TRC3(PtLiKwuDatReq)
-#if (ERRCLASS & ERRCLS_DEBUG)
- /* S16 ret1; */
- SLogError(pst->srcEnt, pst->srcInst, pst->srcProcId,
- __FILE__, __LINE__, (ErrCls)ERRCLS_DEBUG,
- (ErrVal)EPJXXX, (ErrVal)ERRZERO, "Improper selector for NhLiKwuDatReq\n");
- RETVALUE( RFAILED );
-#endif /* (ERRCLASS & ERRCLS_DEBUG) */
- UNUSED(pst);
- UNUSED(spId);
- UNUSED(datReq);
- UNUSED(mBuf);
-
- RETVALUE(ROK);
-} /* end of PtLiKwuDatReq() */
-/*
-*
-* Fun: SUpdMbufMemInfo
-*
-* Desc: This function is used to get the mem region info of a task.
-*
-* Ret: ROK - ok
-* RFAILED - failed, general (optional)
-*
-*
-* File: ss_task.c
-*
-*/
-#ifdef TENB_T2K3K_SPECIFIC_CHANGES
-#ifdef ANSI
-PUBLIC U8 SUpdMbufMemInfo
-(
-Pst *pst,
-Buffer *mBuf
-)
-#else
-PUBLIC U8 SUpdMbufMemInfo(pst,mBuf)
-Pst *pst;
-Buffer *mBuf;
-#endif
-{
- SsMsgInfo *minfo;
- SsTTskEntry *tTsk;
- SsIdx dstIdx;
-
-
- minfo = (SsMsgInfo*) mBuf->b_rptr;
-
- dstIdx = osCp.tTskIds[pst->dstEnt][pst->dstInst];
- tTsk = &osCp.tTskTbl[dstIdx];
-#ifdef SS_MULTICORE_SUPPORT
- minfo->region = tTsk->sTsk->region;
-#endif /* SS_MULTICORE_SUPPORT */
- RETVALUE(ROK);
-}
-#endif
-
-#if defined(PDCP_RLC_DL_RBUF) && !defined(SS_RBUF)
-#ifdef ANSI
-PUBLIC S16 pjKwuRbufDatReq
-(
-Pst * pst,
-SpId spId,
-KwuDatReqInfo* datReq,
-Buffer * mBuf
-)
-#else
-PUBLIC S16 pjKwuRbufDatReq(pst, spId, datReq, mBuf)
-Pst * pst;
-SpId spId;
-KwuDatReqInfo* datReq;
-Buffer * mBuf;
-#endif
-{
- S16 ret1 = ROK;
-
- Void *elem = NULLP;
- KwuDatReqDetl *kwuDatReqDetl = NULLP;
-
- elem = SRngGetWIndx(SS_RNG_BUF_DLPDCP_TO_DLRLC);
- if (NULLP != elem)
- {
- kwuDatReqDetl = (KwuDatReqDetl *) elem;
- kwuDatReqDetl->spId = spId;
- kwuDatReqDetl->lcType = datReq->lcType;
- kwuDatReqDetl->sduId = datReq->sduId;
- kwuDatReqDetl->rlcId = datReq->rlcId;
- kwuDatReqDetl->mBuf = mBuf;
- /* Commenting below function because memory region mapped with threadId*/
- /* SUpdMbufMemInfo(pst, mBuf);*/
- SRngIncrWIndx(SS_RNG_BUF_DLPDCP_TO_DLRLC);
- SsRngInfoTbl[SS_RNG_BUF_DLPDCP_TO_DLRLC].pktRate++;
- }
- else
- {
-#if (ERRCLASS & ERRCLS_DEBUG)
- SLogError(ENTPJ, 0, SFndProcId(),
- __FILE__, __LINE__, (ErrCls)ERRCLS_DEBUG,
- (ErrVal)EPJXXX, (ErrVal)ERRZERO, "PDCP-DL RBUF is FULL!!!\n");
-#endif /* (ERRCLASS & ERRCLS_DEBUG) */
- SsRngInfoTbl[SS_RNG_BUF_DLPDCP_TO_DLRLC].pktDrop++;
- ret1 = RFAILED;
- }
- RETVALUE(ret1);
-} /* cmPkKwuDatReq */
-
-#endif /* PDCP_RLC_DL_RBUF */
-
-\f
-/********************************************************************30**
- End of file
-**********************************************************************/