--- /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: LTE-PDCP Layer - Upper Interface
+
+ Type: C file
+
+ Desc: C source code for the upper interface of LTE-PDCP
+
+ File: pj_udx_ptul.c
+
+*********************************************************************21*/
+
+/** @file pj_udx_ptul.c
+@brief PDCP Upper Interface
+*/
+
+\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 "cpj.h" /* UDX defines */
+#include "pju.h" /* PJU defines */
+#include "lpj.h"
+#include "pj_udx.h"
+
+#include "pj_err.h"
+#include "pj_env.h" /* RLC environment options */
+
+/* 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 "cpj.x" /* UDX defines */
+#include "pju.x" /* PJU defines */
+#include "lpj.x" /* LPJ defines */
+#include "pj.h"
+#include "pj.x"
+#include "pj_udx.x"
+#include "pj_ul.x"
+
+
+#if !(defined(LCPJULUDX) && defined(PJ) && defined(LWLCPJULUDX))
+#define PTPJULUDX
+#endif
+
+#ifdef __cplusplus
+EXTERN "C" {
+#endif /* __cplusplus */
+
+#ifdef PTPJULUDX
+PRIVATE S16 PtUlUdxBndReq ARGS((Pst *post, SuId suId, SpId spId));
+PRIVATE S16 PtUlUdxUbndReq ARGS((Pst *post, SpId spId, Reason reason));
+PRIVATE S16 PtUlUdxCfgReq ARGS((Pst *post, SpId spId, UdxCfgReqInfo *pdCfgReq));
+PRIVATE S16 PtUlUdxUeIdChgReq ARGS((Pst *post, SpId spId,U32 transId,
+ UdxUeInfo *oldUeInfo,
+ UdxUeInfo *newUeInfo));
+
+PRIVATE S16 PtUlUdxSecCfgReq ARGS((Pst *post, SpId spId,
+ UdxSecCfgReqInfo *pdcpSecCfgReq));
+PRIVATE S16 PtUlUdxCountReq ARGS((Pst *post, SpId spId,
+ UdxCountReqInfo *pdcpCountReq));
+PRIVATE S16 PtUlUdxReEstReq ARGS(( Pst *post, SpId spId,
+ UdxReEstReqInfo *restbInfo));
+PRIVATE S16 PtUlUdxSduStaReq ARGS(( Pst *post, SpId spId,
+ UdxSduStaReqInfo *statReqInfo));
+
+PRIVATE S16 PtUlUdxUlStaRep ARGS ((
+ Pst *post, /* Post structure */
+ SpId spId, /* Service provider ID */
+ UdxUlStaRepInfo *pdStaRep /* PDCP UL ot PDCP DL Reestablishment trigger */
+ ));
+PRIVATE S16 PtUlUdxDlStaRep ARGS ((
+ Pst *post, /* Post structure */
+ SpId spId, /* Service provider ID */
+ UdxDlStaRepInfo *pdStaRep /* Status report from PDCP UL to PDCP DL */
+ ));
+
+PRIVATE S16 PtUlUdxUlFdbkPktInfo ARGS ((
+ Pst *post, /* Post structure */
+ SpId spId, /* Service provider ID */
+ UdxUlFdbkPktInfo *fdbkPktInfo /* feedback Packet Info */
+ ));
+
+PRIVATE S16 PtUlUdxDlFdbkPktInfo ARGS ((
+ Pst *post, /* Post structure */
+ SpId spId, /* Service provider ID */
+ UdxDlFdbkPktInfo *fdbkPktInfo /* feedback Packet Info */
+ ));
+#ifdef LTE_L2_MEAS
+PRIVATE S16 PtUlUdxL2MeasReq ARGS ((
+ Pst *pst,
+ PjL2MeasReqEvt *measReqEvt
+ ));
+PRIVATE S16 PtUlUdxL2MeasSendReq ARGS((
+ Pst *pst,
+ U8 status
+ ));
+PRIVATE S16 PtUlUdxL2MeasStopReq ARGS((
+ Pst *pst,
+ U8 status
+ ));
+#endif
+PRIVATE S16 PtUlUdxDatResumeReq ARGS((
+ Pst *pst,
+ UdxDatResumeInfo *udxDatResumeInfo
+ ));
+PRIVATE S16 PtUlUdxDatForwardReq ARGS((
+ Pst *pst,
+ UdxDatForwardInfo *udxDatForwardInfo
+ ));
+#endif /* PTPJULUDX */
+
+\f
+/**************************************************************************
+ * UDX Interface Matrices
+ *************************************************************************/
+
+/* UDX Interface Bind Request primitive */
+PRIVATE CONSTANT UdxBndReq PjUlUdxBndReqMt [PJ_MAX_UDX] =
+{
+#ifdef LCPJULUDX
+ cmPkPjUdxBndReq, /* 0 - loosely coupled */
+#else /* LCPJULUDX */
+ PtUlUdxBndReq, /* 0 - loosely coupled, portable */
+#endif /* LCPJULUDX */
+#ifdef LWLCPJULUDX
+ cmPkPjUdxBndReq, /* 1 - loosely coupled */
+#else /* LCPJULUDX */
+ PtUlUdxBndReq, /* 1 - loosely coupled, portable */
+#endif /* LCPJULUDX */
+#ifdef PJ
+ PjDlUdxBndReq, /* 2 - tightly coupled, CTC */
+#else /* PJ */
+ PtUlUdxBndReq, /* 2 - tightly coupled, portable */
+#endif /* PJ */
+};
+
+/* UDX Interface Unbind Request primitive */
+PRIVATE CONSTANT UdxUbndReq PjUlUdxUbndReqMt [PJ_MAX_UDX] =
+{
+#ifdef LCPJULUDX
+ cmPkPjUdxUbndReq, /* 0 - loosely coupled */
+#else /* LCPJULUDX */
+ PtUlUdxUbndReq, /* 0 - loosely coupled, portable */
+#endif /* LCPJULUDX */
+#ifdef LWLCPJULUDX
+ cmPkPjUdxUbndReq, /* 1 - loosely coupled */
+#else /* LCPJULUDX */
+ PtUlUdxUbndReq, /* 1 - loosely coupled, portable */
+#endif /* LCPJULUDX */
+#ifdef PJ
+ PjDlUdxUbndReq, /* 2 - tightly coupled, UDX */
+#else /* PJ */
+ PtUlUdxUbndReq, /* 2 - tightly coupled, portable */
+#endif /* PJ */
+};
+
+/* UDX Interface Config Request primitive */
+PRIVATE CONSTANT UdxCfgReq PjUlUdxCfgReqMt [PJ_MAX_UDX] =
+{
+#ifdef LCPJULUDX
+ cmPkPjUdxCfgReq, /* 0 - loosely coupled */
+#else /* LCPJULUDX */
+ PtUlUdxCfgReq, /* 0 - loosely coupled, portable */
+#endif /* LCPJULUDX */
+#ifdef LWLCPJULUDX
+ cmPkPjUdxCfgReq, /* 1 - loosely coupled */
+#else /* LCPJULUDX */
+ PtUlUdxCfgReq, /* 1 - loosely coupled, portable */
+#endif /* LCPJULUDX */
+#ifdef PJ
+ PjDlUdxCfgReq, /* 2 - tightly coupled, UDX */
+#else /* PJ */
+ PtUlUdxCfgReq, /* 2 - tightly coupled, portable */
+#endif /* PJ */
+};
+
+/* UDX Interface Status Report from PDCP-UL to PDCP-DL primitive */
+PRIVATE CONSTANT UdxUlStaRep PjUlUdxUlStaRepMt [PJ_MAX_UDX] =
+{
+#ifdef LCPJULUDX
+ cmPkPjUdxUlStaRep, /* 0 - loosely coupled */
+#else /* LCPJULUDX */
+ PtUlUdxUlStaRep, /* 0 - loosely coupled, portable */
+#endif /* LCPJULUDX */
+#ifdef LWLCPJULUDX
+ cmPkPjUdxUlStaRep, /* 1 - loosely coupled */
+#else /* LCPJULUDX */
+ PtUlUdxUlStaRep, /* 1 - loosely coupled, portable */
+#endif /* LCPJULUDX */
+#ifdef PJ
+ PjDlUdxUlStaRep, /* 2 - tightly coupled, UDX */
+#else /* PJ */
+ PtUlUdxUlStaRep, /* 2 - tightly coupled, portable */
+#endif /* PJ */
+};
+
+/* UDX Interface Status Report from PDCP-UL to PDCP-DL primitive */
+PRIVATE CONSTANT UdxDlStaRep PjUlUdxDlStaRepMt [PJ_MAX_UDX] =
+{
+#ifdef LCPJULUDX
+ cmPkPjUdxDlStaRep, /* 0 - loosely coupled */
+#else /* LCPJULUDX */
+ PtUlUdxDlStaRep, /* 0 - loosely coupled, portable */
+#endif /* LCPJULUDX */
+#ifdef LWLCPJULUDX
+ cmPkPjUdxDlStaRep, /* 1 - loosely coupled */
+#else /* LCPJULUDX */
+ PtUlUdxDlStaRep, /* 1 - loosely coupled, portable */
+#endif /* LCPJULUDX */
+#ifdef PJ
+ PjDlUdxDlStaRep, /* 2 - tightly coupled, UDX */
+#else /* PJ */
+ PtUlUdxDlStaRep, /* 2 - tightly coupled, portable */
+#endif /* PJ */
+};
+
+/* UDX Interface Status Report from PDCP-UL to PDCP-DL primitive */
+PRIVATE CONSTANT UdxDlFdbkPkt PjUlUdxDlFdbkPktInfoMt [PJ_MAX_UDX] =
+{
+#ifdef LCPJULUDX
+ cmPkPjUdxDlFdbkPkt, /* 0 - loosely coupled */
+#else /* LCPJULUDX */
+ PtUlUdxDlFdbkPktInfo, /* 0 - loosely coupled, portable */
+#endif /* LCPJULUDX */
+#ifdef LWLCPJULUDX
+ cmPkPjUdxDlFdbkPkt, /* 1 - loosely coupled */
+#else /* LCPJULUDX */
+ PtUlUdxDlFdbkPktInfo, /* 1 - loosely coupled, portable */
+#endif /* LCPJULUDX */
+#ifdef PJ
+ PjDlUdxDlFdbkPktInfo, /* 2 - tightly coupled, UDX */
+#else /* PJ */
+ PtUlUdxDlFdbkPktInfo, /* 2 - tightly coupled, portable */
+#endif /* PJ */
+};
+
+
+/* UDX Interface Feedback Pkt Info from PDCP-UL to PDCP-DL primitive */
+PRIVATE CONSTANT UdxUlFdbkPkt PjUlUdxUlFdbkPktInfoMt [3] =
+{
+#ifdef LCPJULUDX
+ cmPkPjUdxUlFdbkPkt, /* 0 - loosely coupled */
+#else /* LCPJULUDX */
+ PtUlUdxUlFdbkPktInfo, /* 0 - loosely coupled, portable */
+#endif /* LCPJULUDX */
+#ifdef LWLCPJULUDX
+ cmPkPjUdxUlFdbkPkt, /* 1 - loosely coupled */
+#else /* LCPJULUDX */
+ PtUlUdxUlFdbkPktInfo, /* 1 - loosely coupled, portable */
+#endif /* LCPJULUDX */
+#ifdef PJ
+ PjDlUdxUlFdbkPktInfo, /* 2 - tightly coupled, UDX */
+#else /* PJ */
+ PtUlUdxUlFdbkPktInfo, /* 2 - tightly coupled, portable */
+#endif /* PJ */
+};
+
+/* UDX Interface UE Id Change Request primitive */
+PRIVATE CONSTANT UdxUeIdChgReq PjUlUdxUeIdChgReqMt [PJ_MAX_UDX] =
+{
+#ifdef LCPJULUDX
+ cmPkPjUdxUeIdChgReq, /* 0 - loosely coupled */
+#else /* LCPJULUDX */
+ PtUlUdxUeIdChgReq, /* 0 - loosely coupled, portable */
+#endif /* LCPJULUDX */
+#ifdef LWLCPJULUDX
+ cmPkPjUdxUeIdChgReq, /* 1 - loosely coupled */
+#else /* LCPJULUDX */
+ PtUlUdxUeIdChgReq, /* 1 - loosely coupled, portable */
+#endif /* LCPJULUDX */
+#ifdef PJ
+ PjDlUdxUeIdChgReq, /* 2 - tightly coupled, UDX */
+#else /* PJ */
+ PtUlUdxUeIdChgReq, /* 2 - tightly coupled, portable */
+#endif /* PJ */
+};
+
+/* UDX Interface Security Config Request primitive */
+PRIVATE CONSTANT UdxSecCfgReq PjUlUdxSecCfgReqMt [PJ_MAX_UDX] =
+{
+#ifdef LCPJULUDX
+ cmPkPjUdxSecCfgReq, /* 0 - loosely coupled */
+#else /* LCPJULUDX */
+ PtUlUdxSecCfgReq, /* 0 - loosely coupled, portable */
+#endif /* LCPJULUDX */
+#ifdef LWLCPJULUDX
+ cmPkPjUdxSecCfgReq, /* 1 - loosely coupled */
+#else /* LCPJULUDX */
+ PtUlUdxSecCfgReq, /* 1 - loosely coupled, portable */
+#endif /* LCPJULUDX */
+#ifdef PJ
+ PjDlUdxSecCfgReq, /* 2 - tightly coupled, UDX */
+#else /* PJ */
+ PtUlUdxSecCfgReq, /* 2 - tightly coupled, portable */
+#endif/* PJ */
+};
+
+/* UDX Interface COUNT Request primitive */
+PRIVATE CONSTANT UdxCountReq PjUlUdxCountReqMt [PJ_MAX_UDX] =
+{
+#ifdef LCPJULUDX
+ cmPkPjUdxCountReq, /* 0 - loosely coupled */
+#else /* LCPJULUDX */
+ PtUlUdxCountReq, /* 0 - loosely coupled, portable */
+#endif /* LCPJULUDX */
+#ifdef LWLCPJULUDX
+ cmPkPjUdxCountReq, /* 1 - loosely coupled */
+#else /* LCPJULUDX */
+ PtUlUdxCountReq, /* 1 - loosely coupled, portable */
+#endif /* LCPJULUDX */
+#ifdef PJ
+ PjDlUdxCountReq, /* 2 - tightly coupled, UDX */
+#else /* PJ */
+ PtUlUdxCountReq, /* 2 - tightly coupled, portable */
+#endif /* PJ */
+};
+
+/* UDX Interface PDCP Status Request primitive */
+PRIVATE CONSTANT UdxSduStaReq PjUlUdxSduStaReqMt [PJ_MAX_UDX] =
+{
+#ifdef LCPJULUDX
+ cmPkPjUdxSduStaReq, /* 0 - loosely coupled */
+#else /* LCPJULUDX */
+ PtUlUdxSduStaReq, /* 0 - loosely coupled, portable */
+#endif /* LCPJULUDX */
+#ifdef LWLCPJULUDX
+ cmPkPjUdxSduStaReq, /* 1 - loosely coupled */
+#else /* LCPJULUDX */
+ PtUlUdxSduStaReq, /* 1 - loosely coupled, portable */
+#endif /* LCPJULUDX */
+#ifdef PJ
+ PjDlUdxSduStaReq, /* 2 - tightly coupled, UDX */
+#else /* PJ */
+ PtUlUdxSduStaReq, /* 2 - tightly coupled, portable */
+#endif /* PJ */
+};
+
+/* UDX Interface Re-Establishment Request primitive */
+PRIVATE CONSTANT UdxReEstReq PjUlUdxReEstReqMt [PJ_MAX_UDX] =
+{
+#ifdef LCPJULUDX
+ cmPkPjUdxReEstReq, /* 0 - loosely coupled */
+#else /* LCPJULUDX */
+ PtUlUdxReEstReq, /* 0 - loosely coupled, portable */
+#endif /* LCPJULUDX */
+#ifdef LWLCPJULUDX
+ cmPkPjUdxReEstReq, /* 1 - loosely coupled */
+#else /* LCPJULUDX */
+ PtUlUdxReEstReq, /* 1 - loosely coupled, portable */
+#endif /* LCPJULUDX */
+#ifdef PJ
+ PjDlUdxReEstReq, /* 2 - tightly coupled, UDX */
+#else /* PJ */
+ PtUlUdxReEstReq, /* 2 - tightly coupled, portable */
+#endif /* PJ */
+};
+
+#ifdef LTE_L2_MEAS
+PRIVATE CONSTANT UdxL2MeasReq pjUlUdxL2MeasReqMt[PJ_MAX_UDX] =
+{
+#ifdef LCPJULUDX
+ cmPkPjUdxL2MeasReq, /* 0 - loosely coupled */
+#else
+ PtUlUdxL2MeasReq, /* 0 - loosely coupled, portable */
+#endif /* LCKWUIKWU */
+#ifdef LWLCPJULUDX
+ cmPkPjUdxL2MeasReq, /* 1 - loosely coupled */
+#else
+ PtUlUdxL2MeasReq, /* 1 - loosely coupled, portable */
+#endif /* LCKWUIKWU */
+#ifdef PJ
+ PjDlUdxL2MeasReq, /* 2 - tightly coupled, RRC */
+#else
+ PtUlUdxL2MeasReq, /* 2 - tightly coupled, portable */
+#endif /* KW */
+};
+
+PRIVATE CONSTANT UdxL2MeasSendReq pjUlUdxL2MeasSendReqMt[PJ_MAX_UDX] =
+{
+#ifdef LCPJULUDX
+ cmPkPjUdxL2MeasSendReq, /* 0 - loosely coupled */
+#else
+ PtUlUdxL2MeasSendReq, /* 0 - loosely coupled, portable */
+#endif /* LCKWUIKWU */
+#ifdef LWLCPJULUDX
+ cmPkPjUdxL2MeasSendReq, /* 1 - loosely coupled */
+#else
+ PtUlUdxL2MeasSendReq, /* 1 - loosely coupled, portable */
+#endif /* LCKWUIKWU */
+#ifdef PJ
+ PjDlUdxL2MeasSendReq, /* 2 - tightly coupled, RRC */
+#else
+ PtUlUdxL2MeasSendReq, /* 2 - tightly coupled, portable */
+#endif /* PJ */
+};
+
+PRIVATE CONSTANT UdxL2MeasStopReq pjUlUdxL2MeasStopReqMt[PJ_MAX_UDX] =
+{
+#ifdef LCPJULUDX
+ cmPkPjUdxL2MeasStopReq, /* 0 - loosely coupled */
+#else
+ PtUlUdxL2MeasStopReq, /* 0 - loosely coupled, portable */
+#endif /* LCKWUIKWU */
+#ifdef LWLCPJULUDX
+ cmPkPjUdxL2MeasStopReq, /* 1 - loosely coupled */
+#else
+ PtUlUdxL2MeasStopReq, /* 1 - loosely coupled, portable */
+#endif /* LCKWUIKWU */
+#ifdef PJ
+ PjDlUdxL2MeasStopReq, /* 2 - tightly coupled, RRC */
+#else
+ PtUlUdxL2MeasStopReq, /* 2 - tightly coupled, portable */
+#endif /* PJ */
+};
+#endif
+
+
+/* UDX Interface PDCP Status Request primitive */
+PRIVATE CONSTANT UdxDatResumeReq pjUlUdxDatResumeReqMt [PJ_MAX_UDX] =
+{
+#ifdef LCPJULUDX
+ cmPkPjUdxDatResumeReq, /* 0 - loosely coupled */
+#else /* LCPJULUDX */
+ PtUlUdxDatResumeReq, /* 0 - loosely coupled, portable */
+#endif /* LCPJULUDX */
+#ifdef LWLCPJULUDX
+ cmPkPjUdxDatResumeReq, /* 1 - loosely coupled */
+#else /* LCPJULUDX */
+ PtUlUdxDatResumeReq, /* 1 - loosely coupled, portable */
+#endif /* LCPJULUDX */
+#ifdef PJ
+ PjDlUdxDatResumeReq, /* 2 - tightly coupled, UDX */
+#else /* PJ */
+ PtUlUdxDatResumeReq, /* 2 - tightly coupled, portable */
+#endif /* PJ */
+};
+
+
+/* UDX Interface PDCP Start Data Forward primitive */
+PRIVATE CONSTANT UdxDatForwardReq pjUlUdxDatForwardReqMt [PJ_MAX_UDX] =
+{
+#ifdef LCPJULUDX
+ cmPkPjUdxDatForwardReq, /* 0 - loosely coupled */
+#else /* LCPJULUDX */
+ PtUlUdxDatForwardReq, /* 0 - loosely coupled, portable */
+#endif /* LCPJULUDX */
+#ifdef LWLCPJULUDX
+ cmPkPjUdxDatForwardReq, /* 1 - loosely coupled */
+#else /* LCPJULUDX */
+ PtUlUdxDatForwardReq, /* 1 - loosely coupled, portable */
+#endif /* LCPJULUDX */
+#ifdef PJ
+ PjDlUdxDatForwardReq, /* 2 - tightly coupled, UDX */
+#else /* PJ */
+ PtUlUdxDatForwardReq, /* 2 - tightly coupled, portable */
+#endif /* PJ */
+};
+\f
+/**************************************************************************
+ * The UDX Interface
+ *************************************************************************/
+/**
+ *
+ * @brief This function binds the RRC service user with the PDCP
+ * service provider.
+ *
+ * @details This function binds the RRC service user with the PDCP
+ * service provider. The PDCP registers this new service
+ * user and allocates a Service Access Point (SAP) for
+ * this bind. The service user specifies the reference
+ * number that is used for the duration of this bind.
+ */
+#ifdef ANSI
+PUBLIC S16 PjUlUdxBndReq
+(
+Pst *post, /* Post structure */
+SuId suId, /* Service user ID */
+SpId spId /* Service provider ID */
+)
+#else /* ANSI */
+PUBLIC S16 PjUlUdxBndReq(post, suId, spId)
+Pst *post; /* Post structure */
+SuId suId; /* Service user ID */
+SpId spId; /* Service provider ID */
+#endif /* ANSI */
+{
+
+ TRC3(PjUlUdxBndReq);
+
+ RETVALUE((*PjUlUdxBndReqMt[post->selector])(post, suId, spId));
+
+} /* end of function PjUlUdxBndReq */
+
+\f
+/*
+* @brief This function unbinds the RRC service user with the PDCP
+* service provider.
+*
+* @details This function unbinds the RRC service user with the PDCP
+* service provider.
+*
+*/
+#ifdef ANSI
+PUBLIC S16 PjUlUdxUbndReq
+(
+Pst *post, /* Post structure */
+SpId spId, /* Service provider ID */
+Reason reason /* Reason */
+)
+#else /* ANSI */
+PUBLIC S16 PjUlUdxUbndReq(post, spId, reason)
+Pst *post; /* Post structure */
+SpId spId; /* Service provider ID */
+Reason reason; /* Reason */
+#endif /* ANSI */
+{
+
+ TRC3(PjUlUdxUbndReq);
+
+ RETVALUE((*PjUlUdxUbndReqMt[post->selector])(post, spId, reason));
+
+} /* end of function PjUlUdxUbndReq */
+
+\f
+/**
+*
+* @brief This function is used to pass Signalling Info to PDCP related
+* to PDCP configuration.
+*
+* @details This function is used to pass signaling Info to PDCP related
+* to PDCP configuration.
+*
+*/
+#ifdef ANSI
+PUBLIC S16 PjUlUdxCfgReq
+(
+Pst *post, /* Post structure */
+SpId spId, /* Service provider ID */
+UdxCfgReqInfo *pdCfgReq /* PDCP Config parameters */
+)
+#else /* ANSI */
+PUBLIC S16 PjUlUdxCfgReq(post, spId, pdCfgReq)
+Pst *post; /* Post structure */
+SpId spId; /* Service provider ID */
+UdxCfgReqInfo *pdCfgReq; /* PDCP Config parameters */
+#endif /* ANSI */
+{
+
+ TRC3(PjUlUdxCfgReq);
+
+
+ RETVALUE((*PjUlUdxCfgReqMt[post->selector])(post, spId, pdCfgReq));
+
+} /* end of function PjUlUdxCfgReq */
+
+
+/**
+*
+* @brief This function is used to sent the PDCP STATUS report to PDCP-DL during the Reestablishment.
+* @details This function is used to sent the PDCP STATUS report to PDCP-DL during the Reestablishment
+*
+*/
+#ifdef ANSI
+PUBLIC S16 PjUlUdxUlStaRep
+(
+Pst *pst, /* Post structure */
+SpId spId, /* Service provider ID */
+UdxUlStaRepInfo *staRep /*PDCP Status Report*/
+)
+#else /* ANSI */
+PUBLIC S16 PjUlUdxUlStaRep (pst, spId, staRep)
+Pst *pst; /* Post structure */
+SpId spId; /* Service provider ID */
+UdxUlStaRepInfo *staRep; /* PDCP Status Report*/
+#endif /* ANSI */
+{
+
+ TRC3(PjUlUdxUlStaRep);
+
+ RETVALUE((*PjUlUdxUlStaRepMt[pst->selector])(pst, spId, staRep));
+
+} /* end of function PjUlUdxUlStaRep */
+
+/**
+*
+* @brief This function is used to sent the PDCP STATUS report received from peer RLC to PDCP-DL.
+* @details This function is used to sent the PDCP STATUS report received from peer RLC to PDCP-DL
+*
+*/
+#ifdef ANSI
+PUBLIC S16 PjUlUdxDlStaRep
+(
+Pst *pst, /* Post structure */
+SpId spId, /* Service provider ID */
+UdxDlStaRepInfo *staRep /*PDCP Status Report*/
+)
+#else /* ANSI */
+PUBLIC S16 PjUlUdxDlStaRep (pst, spId, staRep)
+Pst *pst; /* Post structure */
+SpId spId; /* Service provider ID */
+UdxDlStaRepInfo *staRep; /* PDCP Status Report*/
+#endif /* ANSI */
+{
+
+ TRC3(PjUlUdxDlStaRep);
+
+ RETVALUE((*PjUlUdxDlStaRepMt[pst->selector])(pst, spId, staRep));
+
+} /* end of function PjUlUdxUlStaRep */
+
+/**
+*
+* @brief This function is used to sent the ROHC feedback report received from peer PDCP to PDCP-DL
+* @details This function is used to sent the ROHC feedback report received from peer PDCP to PDCP-DL
+*
+*/
+#ifdef ANSI
+PUBLIC S16 PjUlUdxDlFdbkPktInfo
+(
+Pst *pst, /* Post structure */
+SpId spId, /* Service provider ID */
+UdxDlFdbkPktInfo *fdbk /*ROHC feedback*/
+)
+#else /* ANSI */
+PUBLIC S16 PjUlUdxDlFdbkPktInfo (pst, spId, fdbk)
+Pst *pst; /* Post structure */
+SpId spId; /* Service provider ID */
+UdxDlFdbkPktInfo *fdbk; /* ROHC feedback*/
+#endif /* ANSI */
+{
+
+ TRC3(PjUlUdxDlFdbkPktInfo);
+
+ RETVALUE((*PjUlUdxDlFdbkPktInfoMt[pst->selector])(pst, spId, fdbk));
+
+} /* end of function PjUlUdxDlFdbkPktInfo */
+
+/**
+ *
+ * @brief This function is used to sent the Feedback pkt info to DL-PDCP.
+ * @details This function is used to sent the Feedback pkt info to DL-PDCP.
+ *
+ */
+#ifdef ANSI
+PUBLIC S16 PjUlUdxUlFdbkPktInfo
+(
+Pst *pst, /* Post structure */
+SpId spId, /* Service provider ID */
+UdxUlFdbkPktInfo *fdbkPktInfo /*Feedback Packet Info*/
+)
+#else /* ANSI */
+PUBLIC S16 PjUlUdxUlFdbkPktInfo (pst, spId, staRep)
+Pst *pst; /* Post structure */
+SpId spId; /* Service provider ID */
+UdxUlFdbkPktInfo *fdbkPktInfo; /* Feedback Packet Info*/
+#endif /* ANSI */
+{
+
+ TRC3(PjUlUdxUlFdbkPktInfo);
+
+ RETVALUE((*PjUlUdxUlFdbkPktInfoMt[pst->selector])(pst, spId, fdbkPktInfo));
+
+} /* end of function PjUlUdxUlFdbkPktInfo */
+
+
+/**
+ *
+ * @brief Sends an UE Id Change Indication to PDCP on Ckw interface
+ * @details Sends an UE Id Change Indication to PDCP on Ckw interface
+ *
+ */
+#ifdef ANSI
+PUBLIC S16 PjUlUdxUeIdChgReq
+(
+Pst *post, /* post structure */
+SpId spId, /* service provider */
+U32 transId, /* RRC Transaction Id */
+UdxUeInfo *oldUeInfo, /* current UE Id */
+UdxUeInfo *newUeInfo /* new UE Id */
+)
+#else /* ANSI */
+PUBLIC S16 PjUlUdxUeIdChgReq(post, spId, transId, oldUeInfo, newUeInfo)
+Pst *post; /* post structure */
+SpId spId; /* service provider */
+U32 transId; /* RRC Transaction Id */
+UdxUeInfo *oldUeInfo; /* current UE Id */
+UdxUeInfo *newUeInfo; /* new UE Id */
+#endif /* ANSI */
+{
+ TRC3(PjUlUdxUeIdChgReq);
+
+ RETVALUE((*PjUlUdxUeIdChgReqMt[post->selector])(post, spId, transId,
+ (UdxUeInfo *)oldUeInfo, (UdxUeInfo *)newUeInfo ));
+
+} /* end of function PjUlUdxUeIdChgReq */
+
+/**
+*
+* @brief This function is used to configure PDCP security parameters
+* (parametrs of Integrity protection and ciphering)
+*
+* @details This function is used to configure PDCP security parameters
+* (parametrs of Integrity protection and ciphering)
+*
+*/
+#ifdef ANSI
+PUBLIC S16 PjUlUdxSecCfgReq
+(
+Pst *post, /* Post structure */
+SpId spId, /* Service provider ID */
+UdxSecCfgReqInfo *cpjSecConfigReqInfo /* PDCP Security Config parameters */
+)
+#else /* ANSI */
+PUBLIC S16 PjUlUdxSecCfgReq(post, spId, cpjSecConfigReqInfo)
+Pst *post; /* Post structure */
+SpId spId; /* Service provider ID */
+UdxSecCfgReqInfo *cpjSecConfigReqInfo; /* PDCP Security Config parameters */
+#endif /* ANSI */
+{
+
+ TRC3(PjUlUdxSecCfgReq);
+
+ RETVALUE((*PjUlUdxSecCfgReqMt[post->selector])(post, spId,
+ cpjSecConfigReqInfo));
+
+} /* end of function PjUlUdxSecCfgReq */
+
+/**
+*
+* @brief This function is used to get COUNT values of each established DRB
+*
+* @details This function is used to get COUNT values of each established DRB
+*
+*/
+#ifdef ANSI
+PUBLIC S16 PjUlUdxCountReq
+(
+Pst *post, /* Post structure */
+SpId spId, /* Service provider ID */
+UdxCountReqInfo *pdcpCountReq /* PDCP COUNT request paramters */
+)
+#else /* ANSI */
+PUBLIC S16 PjUlUdxCountReq(post, spId, pdcpCountReq)
+Pst *post; /* Post structure */
+SpId spId; /* Service provider ID */
+UdxCountReqInfo *pdcpCountReq; /* PDCP COUNT request paramters */
+#endif /* ANSI */
+{
+
+ TRC3(PjUlUdxCountReq);
+
+ RETVALUE((*PjUlUdxCountReqMt[post->selector])(post, spId, pdcpCountReq));
+
+} /* end of function PjUlUdxCountReq */
+
+/**
+*
+* @brief This function is used to get PDCP Sdu Status for all DRBs.
+*
+* @details This function is used to get PDCP Sdu Status for all DRBs
+* from PDCP at source during HO.
+*
+*/
+#ifdef ANSI
+PUBLIC S16 PjUlUdxSduStaReq
+(
+Pst *post, /* Post structure */
+SpId spId, /* Service provider ID */
+UdxSduStaReqInfo *pdcpSduStaReq /* PDCP SDU status request parameters */
+)
+#else /* ANSI */
+PUBLIC S16 PjUlUdxSduStaReq(post, spId, pdcpSduStaReq)
+Pst *post; /* Post structure */
+SpId spId; /* Service provider ID */
+UdxSduStaReqInfo *pdcpSduStaReq; /* PDCP SDU status request parameters */
+#endif /* ANSI */
+{
+
+ TRC3(PjUlUdxSduStaReq);
+
+ RETVALUE((*PjUlUdxSduStaReqMt[post->selector])(post, spId, pdcpSduStaReq));
+
+} /* end of function PjUlUdxSduStaReq */
+\f
+
+/**
+ *
+ * @brief Sends a Re-establish request to PDCP on UDX interface
+ * @details Sends a Re-establish request to PDCP on UDX interface
+ *
+ */
+#ifdef ANSI
+PUBLIC S16 PjUlUdxReEstReq
+(
+Pst *post, /* post structure */
+SpId spId, /* service provider */
+UdxReEstReqInfo *restbInfo /* Re-establishment Info */
+)
+#else /* ANSI */
+PUBLIC S16 PjUlUdxReEstReq(post, spId, restbInfo)
+Pst *post; /* post structure */
+SpId spId; /* service provider */
+UdxReEstReqInfo *restbInfo; /* new UE Id */
+#endif /* ANSI */
+{
+ TRC3(PjUlUdxReEstReq);
+
+ RETVALUE((*PjUlUdxReEstReqMt[post->selector])(post, spId, restbInfo));
+
+} /* end of function PjUlUdxReEstReq */
+
+#ifdef LTE_L2_MEAS
+/**
+* @brief Request from ULM to DLM for MeasReq
+*
+* @details
+*
+* Function : PjUlUdxL2MeasReq
+*
+* @param[in] Pst* pst
+
+* @return S16
+* -# ROK
+**/
+#ifdef ANSI
+PUBLIC S16 PjUlUdxL2MeasReq
+(
+Pst* pst,
+PjL2MeasReqEvt *measReqEvt
+)
+#else
+PUBLIC S16 PjUlUdxL2MeasReq(pst,measReqEvt)
+Pst* pst;
+PjL2MeasReqEvt *measReqEvt;
+#endif
+{
+
+ TRC3(PjUlUdxStaUpdReq);
+
+ RETVALUE((*pjUlUdxL2MeasReqMt[pst->selector])(pst,measReqEvt));
+} /* end of PjUlUdxMesReq*/
+
+/**
+* @brief Request from ULM to DLM for MeasSendReq
+*
+* @details
+*
+* Function : PjUlUdxMeasSendReq
+*
+* @param[in] Pst* pst
+
+* @return S16
+* -# ROK
+**/
+#ifdef ANSI
+PUBLIC S16 PjUlUdxL2MeasSendReq
+(
+Pst* pst,
+U8 measType
+)
+#else
+PUBLIC S16 PjUlUdxL2MeasSendReq(pst,measReqEvt)
+Pst* pst;
+U8 measType;
+#endif
+{
+
+ TRC3(PjUlUdxL2MeasSendReq);
+
+ RETVALUE((*pjUlUdxL2MeasSendReqMt[pst->selector])(pst,measType));
+} /* end of PjUlUdxMesReq*/
+
+/**
+* @brief Request from ULM to DLM for MeasStopReq
+*
+* @details
+*
+* Function : PjUlUdxL2MeasStopReq
+*
+* @param[in] Pst* pst
+
+* @return S16
+* -# ROK
+**/
+#ifdef ANSI
+PUBLIC S16 PjUlUdxL2MeasStopReq
+(
+Pst* pst,
+U8 measType
+)
+#else
+PUBLIC S16 PjUlUdxL2MeasStopReq(pst,measReqEvt)
+Pst* pst;
+U8 measType;
+#endif
+{
+
+ TRC3(PjUlUdxL2MeasStopReq);
+
+ RETVALUE((*pjUlUdxL2MeasStopReqMt[pst->selector])(pst,measType));
+} /* end of PjUlUdxMesReq*/
+#endif
+
+
+
+/**
+* @brief Request from ULM to DLM for MeasStopReq
+*
+* @details
+*
+* Function : PjUlUdxDatResumeReq
+*
+* @param[in] Pst* pst
+
+* @return S16
+* -# ROK
+**/
+#ifdef ANSI
+PUBLIC S16 PjUlUdxDatResumeReq
+(
+Pst* pst,
+UdxDatResumeInfo *udxDatResumeInfo
+)
+#else
+PUBLIC S16 PjUlUdxDatResumeReq(pst, udxDatResumeInfo)
+Pst* pst;
+UdxDatResumeInfo *udxDatResumeInfo;
+#endif
+{
+
+ TRC3(PjUlUdxDatResumeReq);
+
+ RETVALUE((*pjUlUdxDatResumeReqMt[pst->selector])(pst, udxDatResumeInfo));
+} /* end of PjUlUdxMesReq*/
+
+
+/**
+* @brief
+*
+* @details
+*
+* Function : PjUlUdxDatForwardReq
+*
+* @param[in] Pst* pst
+
+* @return S16
+* -# ROK
+**/
+#ifdef ANSI
+PUBLIC S16 PjUlUdxDatForwardReq
+(
+Pst* pst,
+UdxDatForwardInfo *udxDatForwardInfo
+)
+#else
+PUBLIC S16 PjUlUdxDatForwardReq(pst, udxDatForwardInfo)
+Pst* pst;
+UdxDatForwardInfo *udxDatForwardInfo;
+#endif
+{
+
+ TRC3(PjUlUdxDatForwardReq);
+
+ RETVALUE((*pjUlUdxDatForwardReqMt[pst->selector])(pst, udxDatForwardInfo));
+} /* end of PjUlUdxMesReq*/
+/**************************************************************************
+ * The UDX (Portable) Interface
+ *************************************************************************/
+#ifdef PTPJULUDX
+/**************************************************************************
+ *
+ * Fun: PtUlUdxBndReq
+ *
+ * Desc: Portable UdxBndReq primitive
+ *
+ * Ret: ROK
+ *
+ * Notes:
+ *
+ * File: nh_ptli.c
+ *
+ *************************************************************************/
+#ifdef ANSI
+PRIVATE S16 PtUlUdxBndReq
+(
+Pst *post, /* Post structure */
+SuId suId, /* Service user ID */
+SpId spId /* Service provider ID */
+)
+#else /* ANSI */
+PRIVATE S16 PtUlUdxBndReq(post, suId, spId)
+Pst *post; /* Post structure */
+SuId suId; /* Service user ID */
+SpId spId; /* Service provider ID */
+#endif /* ANSI */
+{
+
+ TRC3(PtUlUdxBndReq);
+
+ UNUSED(post);
+ UNUSED(suId);
+ UNUSED(spId);
+
+ RETVALUE(ROK);
+
+} /* end of function PtUlUdxBndReq */
+
+\f
+/**************************************************************************
+*
+* Fun: PtUlUdxUbndReq
+*
+* Desc: Portable UdxUbndReq primitive
+*
+* Ret: ROK
+*
+* Notes:
+*
+* File: nh_ptli.c
+*
+*************************************************************************/
+#ifdef ANSI
+PRIVATE S16 PtUlUdxUbndReq
+(
+Pst *post, /* Post structure */
+SpId spId, /* Service provider ID */
+Reason reason /* Reason */
+)
+#else /* ANSI */
+PRIVATE S16 PtUlUdxUbndReq(post, spId, reason)
+Pst *post; /* Post structure */
+SpId spId; /* Service provider ID */
+Reason reason; /* Reason */
+#endif /* ANSI */
+{
+
+ TRC3(PtUlUdxUbndReq);
+
+ UNUSED(post);
+ UNUSED(spId);
+ UNUSED(reason);
+
+ RETVALUE(ROK);
+
+} /* end of function PtUlUdxUbndReq */
+
+\f
+/**************************************************************************
+*
+* Fun: PtUlUdxCfgReq
+*
+* Desc: Portable UdxCfgReq primitive
+*
+* Ret: ROK
+*
+* Notes:
+*
+* File: nh_ptli.c
+*
+*************************************************************************/
+#ifdef ANSI
+PRIVATE S16 PtUlUdxCfgReq
+(
+Pst *post, /* Post structure */
+SpId spId, /* Service provider ID */
+UdxCfgReqInfo *pdCfgReq /* PDCP Config parameters */
+)
+#else /* ANSI */
+PRIVATE S16 PtUlUdxCfgReq(post, spId, pdCfgReq)
+Pst *post; /* Post structure */
+SpId spId; /* Service provider ID */
+UdxCfgReqInfo *pdCfgReq; /* PDCP Config parameters */
+#endif /* ANSI */
+{
+
+ TRC3(PtUlUdxCfgReq);
+
+ UNUSED(post);
+ UNUSED(spId);
+ UNUSED(pdCfgReq);
+
+
+ RETVALUE(ROK);
+
+} /* end of function PtUlUdxCfgReq */
+
+/**************************************************************************
+*
+* Fun: PtUlUdxUlStaRep
+*
+* Desc: Portable UdxUlStaRep primitive
+*
+* Ret: ROK
+*
+* Notes:
+*
+* File: pj_udx_ptul.c
+*
+*************************************************************************/
+#ifdef ANSI
+PRIVATE S16 PtUlUdxUlStaRep
+(
+Pst *post, /* Post structure */
+SpId spId, /* Service provider ID */
+UdxUlStaRepInfo *pdStaRep /* PDCP UL ot PDCP DL Reestablishment trigger */
+)
+#else /* ANSI */
+PRIVATE S16 PtUlUdxUlStaRep(post, spId, pdStaRep)
+Pst *post; /* Post structure */
+SpId spId; /* Service provider ID */
+UdxUlStaRepInfo *pdStaRep; /* PDCP UL ot PDCP DL Reestablishment trigger */
+#endif /* ANSI */
+{
+
+ TRC3(PtUlUdxUlStaRep);
+
+ UNUSED(post);
+ UNUSED(spId);
+ UNUSED(pdStaRep);
+
+
+ RETVALUE(ROK);
+
+} /* end of function */
+
+/**************************************************************************
+*
+* Fun: PtUlUdxUlStaRep
+*
+* Desc: Portable UdxUlStaRep primitive
+*
+* Ret: ROK
+*
+* Notes:
+*
+* File: pj_udx_ptul.c
+*
+*************************************************************************/
+#ifdef ANSI
+PRIVATE S16 PtUlUdxDlStaRep
+(
+Pst *post, /* Post structure */
+SpId spId, /* Service provider ID */
+UdxDlStaRepInfo *pdStaRep /* Status report from PDCP UL to PDCP DL */
+)
+#else /* ANSI */
+PRIVATE S16 PtUlUdxDlStaRep(post, spId, pdStaRep)
+Pst *post; /* Post structure */
+SpId spId; /* Service provider ID */
+UdxDlStaRepInfo *pdStaRep; /* Status report from PDCP UL to PDCP DL */
+#endif /* ANSI */
+{
+
+ TRC3(PtUlUdxDlStaRep);
+
+ UNUSED(post);
+ UNUSED(spId);
+ UNUSED(pdStaRep);
+
+
+ RETVALUE(ROK);
+
+} /* end of function */
+
+
+/**************************************************************************
+ *
+ * Fun: PtUlUdxUeIdChgReq
+ *
+ * Desc: Portable UdxUeIdChgReq primitive
+ *
+ * Ret: ROK
+ *
+ * Notes:
+ *
+ * File: nh_ptli.c
+ *
+ *************************************************************************/
+#ifdef ANSI
+PRIVATE S16 PtUlUdxUeIdChgReq
+(
+Pst *post, /* post structure */
+SpId spId, /* service provider */
+U32 transId, /* TransId */
+UdxUeInfo *oldUeInfo, /* current UE Id */
+UdxUeInfo *newUeInfo /* new UE Id */
+)
+#else /* ANSI */
+PRIVATE S16 PtUlUdxUeIdChgReq(post, spId, transId, oldUeInfo, newUeInfo)
+Pst *post; /* post structure */
+SpId spId; /* service provider */
+U32 transId; /* TransId */
+UdxUeInfo *oldUeInfo; /* current UE Id */
+UdxUeInfo *newUeInfo; /* new UE Id */
+#endif /* ANSI */
+{
+ TRC3(PtUlUdxUeIdChgReq);
+
+ UNUSED(post);
+ UNUSED(spId);
+ UNUSED(transId);
+ UNUSED(oldUeInfo);
+ UNUSED(newUeInfo);
+
+ RETVALUE(ROK);
+
+} /* end of function PtUlCkwUeIdChgReq */
+
+/**************************************************************************
+ *
+ * Fun: PtUlUdxSecCfgReq
+ *
+ * Desc: Portable UdxSecCfgReq primitive
+ *
+ * Ret: ROK
+ *
+ * Notes:
+ *
+ * File: nh_ptli.c
+ *
+ *************************************************************************/
+#ifdef ANSI
+PRIVATE S16 PtUlUdxSecCfgReq
+(
+Pst *post, /* post structure */
+SpId spId, /* service provider */
+UdxSecCfgReqInfo *secCfgReq /* PDCP Security Config paramters */
+)
+#else /* ANSI */
+PRIVATE S16 PtUlUdxSecCfgReq(post, spId, secCfgReq)
+Pst *post; /* post structure */
+SpId spId; /* service provider */
+UdxSecCfgReqInfo *secCfgReq; /* PDCP Security Config paramters */
+#endif /* ANSI */
+{
+ TRC3(PtUlUdxSecCfgReq);
+
+ UNUSED(post);
+ UNUSED(spId);
+ UNUSED(secCfgReq);
+
+ RETVALUE(ROK);
+
+} /* end of function PtUlUdxSecCfgReq */
+
+/**************************************************************************
+ *
+ * Fun: PtUlUdxCountReq
+ *
+ * Desc: Portable UdxCountReq primitive
+ *
+ * Ret: ROK
+ *
+ * Notes:
+ *
+ * File: nh_ptli.c
+ *
+ *************************************************************************/
+#ifdef ANSI
+PRIVATE S16 PtUlUdxCountReq
+(
+Pst *post, /* post structure */
+SpId spId, /* service provider */
+UdxCountReqInfo *countReq /* PDCP Security Config paramters */
+)
+#else /* ANSI */
+PRIVATE S16 PtUlUdxCountReq(post, spId, countReq)
+Pst *post; /* post structure */
+SpId spId; /* service provider */
+UdxCountReqInfo *countReq; /* Count value paramters */
+#endif /* ANSI */
+{
+ TRC3(PtUlUdxCountReq);
+
+ UNUSED(post);
+ UNUSED(spId);
+ UNUSED(countReq);
+
+ RETVALUE(ROK);
+
+} /* end of function PtUlUdxCountReq */
+
+/**************************************************************************
+ *
+ * Fun: PtUlUdxSduStaReq
+ *
+ * Desc: Portable UdxSduStaReq primitive
+ *
+ * Ret: ROK
+ *
+ * Notes:
+ *
+ * File: nh_ptli.c
+ *
+ *************************************************************************/
+#ifdef ANSI
+PRIVATE S16 PtUlUdxSduStaReq
+(
+Pst *post, /* post structure */
+SpId spId, /* service provider */
+UdxSduStaReqInfo *sduStaReq /* PDCP SDU status parameters */
+)
+#else /* ANSI */
+PRIVATE S16 PtUlUdxSduStaReq(post, spId, sduStaReq)
+Pst *post; /* post structure */
+SpId spId; /* service provider */
+UdxSduStaReqInfo *sduStaReq; /* PDCP SDU status parameters */
+#endif /* ANSI */
+{
+ TRC3(PtUlUdxSduStaReq);
+
+ UNUSED(post);
+ UNUSED(spId);
+ UNUSED(sduStaReq);
+
+
+ RETVALUE(ROK);
+
+} /* end of function PtUlUdxSduStaReq */
+\f
+
+/**************************************************************************
+ *
+ * Fun: PtUlUdxReEstReq
+ *
+ * Desc: Portable UdxReEstReq primitive
+ *
+ * Ret: ROK
+ *
+ * Notes:
+ *
+ * File: nh_ptli.c
+ *
+ *************************************************************************/
+#ifdef ANSI
+PRIVATE S16 PtUlUdxReEstReq
+(
+Pst *post, /* post structure */
+SpId spId, /* service provider */
+UdxReEstReqInfo *restbInfo /* PDCP Re-establishment Config paramters */
+)
+#else /* ANSI */
+PRIVATE S16 PtUlUdxReEstReq(post, spId, restbInfo)
+Pst *post; /* post structure */
+SpId spId; /* service provider */
+UdxReEstReqInfo *restbInfo; /* PDCP Re-establishment Config paramters */
+#endif /* ANSI */
+{
+ TRC3(PtUlUdxReEstReq);
+
+ UNUSED(post);
+ UNUSED(spId);
+ UNUSED(restbInfo);
+
+ RETVALUE(ROK);
+
+} /* end of function PtUlUdxReEstReq */
+/**************************************************************************
+ *
+ * Fun: PtUlUdxUlFdbkPktInfo
+ *
+ * Desc: Portable PtUlUdxUlFdbkPktInfo primitive
+ *
+ * Ret: ROK
+ *
+ * Notes:
+ *
+ * File : nh_ptli.c
+ *
+ *************************************************************************/
+#ifdef ANSI
+PRIVATE S16 PtUlUdxUlFdbkPktInfo
+(
+Pst *post, /* post structure */
+SpId spId, /* service provider */
+UdxUlFdbkPktInfo *fdbkPktInfo /* feedback Packet Info */
+)
+#else /* ANSI */
+PRIVATE S16 PtUlUdxUlFdbkPktInfo(post, spId, fdbkPktInfo)
+Pst *post; /* post structure */
+SpId spId; /* service provider */
+UdxUlFdbkPktInfo *fdbkPktInfo /* feedback Packet Info */
+#endif /* ANSI */
+{
+ TRC3(PtUlUdxUlFdbkPktInfo);
+
+ UNUSED(post);
+ UNUSED(spId);
+ UNUSED(fdbkPktInfo);
+
+
+ RETVALUE(ROK);
+
+} /* end of function PtUlUdxUlFdbkPktInfo */
+
+
+/**************************************************************************
+ *
+ * Fun: PtUlUdxDlFdbkPktInfo
+ *
+ * Desc: Portable PtUlUdxDlFdbkPktInfo primitive
+ *
+ * Ret: ROK
+ *
+ * Notes:
+ *
+ * File : nh_ptli.c
+ *
+ *************************************************************************/
+#ifdef ANSI
+PRIVATE S16 PtUlUdxDlFdbkPktInfo
+(
+Pst *post, /* post structure */
+SpId spId, /* service provider */
+UdxDlFdbkPktInfo *fdbkPktInfo /* feedback Packet Info */
+)
+#else /* ANSI */
+PRIVATE S16 PtUlUdxDlFdbkPktInfo(post, spId, fdbkPktInfo)
+Pst *post; /* post structure */
+SpId spId; /* service provider */
+UdxDlFdbkPktInfo *fdbkPktInfo /* feedback Packet Info */
+#endif /* ANSI */
+{
+ TRC3(PtUlUdxDlFdbkPktInfo);
+
+ UNUSED(post);
+ UNUSED(spId);
+ UNUSED(fdbkPktInfo);
+
+
+ RETVALUE(ROK);
+
+} /* end of function PtUlUdxDlFdbkPktInfo */
+
+
+
+
+#ifdef LTE_L2_MEAS
+/**
+* @brief Request from ULM to DLM for Measurement
+*
+* @details
+*
+* Function : PjUdxUdxL2MeasReq
+*
+* @param[in] Pst* pst
+
+* @return S16
+* -# ROK
+**/
+#ifdef ANSI
+PRIVATE S16 PtUlUdxL2MeasReq
+(
+Pst* pst,
+PjL2MeasReqEvt *measReqEvt
+)
+#else
+PRIVATE S16 PtUlUdxL2MeasReq(pst, measReqEvt )
+Pst* pst;
+PjL2MeasReqEvt *measReqEvt;
+#endif
+{
+
+ TRC3(PtUlUdxL2MeasReq);
+
+ RETVALUE(ROK);
+}
+
+/**
+* @brief Request from ULM to DLM for Measurement
+*
+* @details
+*
+* Function : PjUdxUdxL2MeasSendReq
+*
+* @param[in] Pst* pst
+
+* @return S16
+* -# ROK
+**/
+#ifdef ANSI
+PRIVATE S16 PtUlUdxL2MeasSendReq
+(
+Pst* pst,
+U8 status
+)
+#else
+PRIVATE S16 PtUlUdxL2MeasSendReq(pst, status )
+Pst* pst;
+U8 status
+#endif
+{
+
+ TRC3(PtUlUdxL2MeasSendReq);
+
+ RETVALUE(ROK);
+}
+
+/**
+* @brief Request from ULM to DLM for Measurement
+*
+* @details
+*
+* Function : PjUdxUdxL2MeasStopReq
+*
+* @param[in] Pst* pst
+
+* @return S16
+* -# ROK
+**/
+#ifdef ANSI
+PRIVATE S16 PtUlUdxL2MeasStopReq
+(
+Pst* pst,
+U8 status
+)
+#else
+PRIVATE S16 PtUlUdxL2MeasStopReq(pst, status )
+Pst* pst;
+U8 status
+#endif
+{
+
+ TRC3(PtUlUdxL2MeasStopReq);
+
+ RETVALUE(ROK);
+}
+#endif
+/**
+* @brief Request from ULM to DLM for ResumeReq
+*
+* @details
+*
+* Function : PtUlUdxDatResumeReq
+*
+* @param[in] Pst* pst
+
+* @return S16
+* -# ROK
+**/
+#ifdef ANSI
+PRIVATE S16 PtUlUdxDatResumeReq
+(
+Pst* pst,
+UdxDatResumeInfo *udxDatResumeInfo
+)
+#else
+PRIVATE S16 PtUlUdxDatResumeReq(pst, udxDatResumeInfo )
+Pst* pst;
+UdxDatResumeInfo *udxDatResumeInfo;
+#endif
+{
+
+ TRC3(PtUlUdxDatResumeReq);
+
+ RETVALUE(ROK);
+}
+
+/**
+* @brief
+*
+* @details
+*
+* Function : PtUlUdxDatForwardReq
+*
+* @param[in] Pst* pst
+
+* @return S16
+* -# ROK
+**/
+#ifdef ANSI
+PRIVATE S16 PtUlUdxDatForwardReq
+(
+Pst* pst,
+UdxDatForwardInfo *udxDatForwardInfo
+)
+#else
+PRIVATE S16 PtUlUdxDatForwardReq(pst, udxDatForwardInfo )
+Pst* pst;
+UdxDatForwardInfo *udxDatForwardInfo;
+#endif
+{
+
+ TRC3(PtUlUdxDatForwardReq);
+
+ RETVALUE(ROK);
+}
+
+#endif /* #ifdef PTPJULUDX */
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+/********************************************************************30**
+ End of file
+**********************************************************************/