1 /*******************************************************************************
2 ################################################################################
3 # Copyright (c) [2017-2019] [Radisys] #
5 # Licensed under the Apache License, Version 2.0 (the "License"); #
6 # you may not use this file except in compliance with the License. #
7 # You may obtain a copy of the License at #
9 # http://www.apache.org/licenses/LICENSE-2.0 #
11 # Unless required by applicable law or agreed to in writing, software #
12 # distributed under the License is distributed on an "AS IS" BASIS, #
13 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. #
14 # See the License for the specific language governing permissions and #
15 # limitations under the License. #
16 ################################################################################
17 *******************************************************************************/
19 /********************************************************************20**
21 Name: LTE-PDCP Layer - Upper Interface
25 Desc: C source code for the upper interface of LTE-PDCP
29 *********************************************************************21*/
31 /** @file pj_udx_ptdl.c
32 @brief PDCP Upper Interface
36 /* header (.h) include files */
37 #include "envopt.h" /* environment options */
38 #include "envdep.h" /* environment dependent */
39 #include "envind.h" /* environment independent */
41 #include "gen.h" /* general */
42 #include "ssi.h" /* system services */
43 #include "cm5.h" /* common timer defines */
44 #include "cm_tkns.h" /* common tokens defines */
45 #include "cm_mblk.h" /* common memory allocation library defines */
46 #include "cm_llist.h" /* common link list defines */
47 #include "cm_hash.h" /* common hash list defines */
48 #include "cm_lte.h" /* common LTE defines */
49 #include "cpj.h" /* UDX defines */
50 #include "pju.h" /* PJU defines */
54 #include "pj_env.h" /* RLC environment options */
57 /* extern (.x) include files */
58 #include "gen.x" /* general */
59 #include "ssi.x" /* system services */
61 #include "cm5.x" /* common timer library */
62 #include "cm_tkns.x" /* common tokens */
63 #include "cm_mblk.x" /* common memory allocation */
64 #include "cm_llist.x" /* common link list */
65 #include "cm_hash.x" /* common hash list */
66 #include "cm_lte.x" /* common LTE includes */
67 #include "cm_lib.x" /* common memory allocation library */
68 #include "cpj.x" /* UDX defines */
69 #include "pju.x" /* PJU defines */
70 #include "lpj.x" /* LPJ defines */
76 #if !(defined(LCPJULUDX) && defined(PJ))
83 #endif /* __cplusplus */
86 /*********************************************************************
87 * Forward Declartion for UDX Porting Functions
88 ********************************************************************/
91 EXTERN S16 PtDlUdxBndCfm ARGS((Pst * pst, SuId suId, U8 status));
93 EXTERN S16 PtDlUdxCfgCfm ARGS((Pst * pst, SuId suId, UdxCfgCfmInfo * cfgCfm));
95 EXTERN S16 PtDlUdxReEstCfm ARGS((Pst * pst, SuId suId, UdxReEstCfmInfo * reEstCfm));
97 EXTERN S16 PtDlUdxSecCfgCfm ARGS((Pst * pst, SuId suId, UdxSecCfgCfmInfo * secCfgCfm));
99 EXTERN S16 PtDlUdxUeIdChgCfm ARGS((Pst * pst, SuId suId, U32 transId, UdxUeInfo * ueInfo, CmStatus status));
101 EXTERN S16 PtDlUdxCountCfm ARGS((Pst * pst, SuId suId, UdxCountCfmInfo * countCfm));
103 EXTERN S16 PtDlUdxSduStaCfm ARGS((Pst * pst, SuId suId, UdxSduStaCfmInfo * staCfm));
105 EXTERN S16 PtDlUdxDatResumeCfm ARGS((Pst * pst, SuId suId, UdxDatResumeCfmInfo * datResume));
107 EXTERN S16 PtDlUdxDatForwardCfm ARGS((Pst * pst, SuId suId, UdxDatFwdCfmInfo * datFwdCfm));
111 /*********************************************************************
112 * Forward Declartion for PJU Porting Functions
113 ********************************************************************/
116 /*********************************************************************
117 * Primitives for UDX interface
118 ********************************************************************/
119 PRIVATE CONSTANT UdxBndCfm PjDlUdxBndCfmMt[] =
139 PRIVATE CONSTANT UdxCfgCfm PjDlUdxCfgCfmMt[] =
159 PRIVATE CONSTANT UdxReEstCfm PjDlUdxReEstCfmMt[] =
179 PRIVATE CONSTANT UdxSecCfgCfm PjDlUdxSecCfgCfmMt[] =
199 PRIVATE CONSTANT UdxUeIdChgCfm PjDlUdxUeIdChgCfmMt[] =
219 PRIVATE CONSTANT UdxCountCfm PjDlUdxCountCfmMt[] =
239 PRIVATE CONSTANT UdxSduStaCfm PjDlUdxSduStaCfmMt[] =
258 PRIVATE CONSTANT UdxDatResumeCfm PjDlUdxDatResumeCfmMt[] =
261 cmPkPjUdxDatResumeCfm,
266 cmPkPjUdxDatResumeCfm,
277 PRIVATE CONSTANT UdxDatForwardCfm PjDlUdxDatFwdCfmMt[] =
280 cmPkPjUdxDatForwardCfm,
282 PtDlUdxDatForwardCfm,
285 cmPkPjUdxDatForwardCfm,
287 PtDlUdxDatForwardCfm,
290 PjUlUdxDatForwardCfm,
292 PtDlUdxDatForwardCfm,
297 /****************************************************************************
298 * UDX Interface Mt functions
299 ***************************************************************************/
\f
302 PUBLIC S16 PjDlUdxBndCfm
309 PUBLIC S16 PjDlUdxBndCfm(pst, suId, status)
318 (*PjDlUdxBndCfmMt[pst->selector])(pst, suId, status);
324 PUBLIC S16 PjDlUdxCfgCfm
328 UdxCfgCfmInfo * cfgCfm
331 PUBLIC S16 PjDlUdxCfgCfm(pst, suId, cfgCfm)
334 UdxCfgCfmInfo * cfgCfm;
340 (*PjDlUdxCfgCfmMt[pst->selector])(pst, suId, cfgCfm);
346 PUBLIC S16 PjDlUdxReEstCfm
350 UdxReEstCfmInfo * reEstCfm
353 PUBLIC S16 PjDlUdxReEstCfm(pst, suId, reEstCfm)
356 UdxReEstCfmInfo * reEstCfm;
360 TRC3(PjDlUdxReEstCfm)
362 (*PjDlUdxReEstCfmMt[pst->selector])(pst, suId, reEstCfm);
368 PUBLIC S16 PjDlUdxSecCfgCfm
372 UdxSecCfgCfmInfo * secCfgCfm
375 PUBLIC S16 PjDlUdxSecCfgCfm(pst, suId, secCfgCfm)
378 UdxSecCfgCfmInfo * secCfgCfm;
382 TRC3(PjDlUdxSecCfgCfm)
384 (*PjDlUdxSecCfgCfmMt[pst->selector])(pst, suId, secCfgCfm);
390 PUBLIC S16 PjDlUdxUeIdChgCfm
399 PUBLIC S16 PjDlUdxUeIdChgCfm(pst, suId, transId, ueInfo, status)
408 TRC3(PjDlUdxUeIdChgCfm)
410 (*PjDlUdxUeIdChgCfmMt[pst->selector])(pst, suId, transId, ueInfo, status);
416 PUBLIC S16 PjDlUdxCountCfm
420 UdxCountCfmInfo * countCfm
423 PUBLIC S16 PjDlUdxCountCfm(pst, suId, countCfm)
426 UdxCountCfmInfo * countCfm;
430 TRC3(PjDlUdxCountCfm)
432 (*PjDlUdxCountCfmMt[pst->selector])(pst, suId, countCfm);
438 PUBLIC S16 PjDlUdxSduStaCfm
442 UdxSduStaCfmInfo * staCfm
445 PUBLIC S16 PjDlUdxSduStaCfm(pst, suId, staCfm)
448 UdxSduStaCfmInfo * staCfm;
452 TRC3(PjDlUdxSduStaCfm)
454 (*PjDlUdxSduStaCfmMt[pst->selector])(pst, suId, staCfm);
460 PUBLIC S16 PjDlUdxDatResumeCfm
464 UdxDatResumeCfmInfo * staCfm
467 PUBLIC S16 PjDlUdxDatResumeCfm(pst, suId, staCfm)
470 UdxDatResumeCfmInfo * staCfm;
474 TRC3(PjDlUdxDatResumeCfm)
476 (*PjDlUdxDatResumeCfmMt[pst->selector])(pst, suId, staCfm);
482 PUBLIC S16 PjDlUdxDatFwdCfm
486 UdxDatFwdCfmInfo * datFwdCfm
489 PUBLIC S16 PjDlUdxDatFwdCfm(pst, suId, datFwdCfm)
492 UdxDatFwdCfmInfo * datFwdCfm;
496 TRC3(PjDlUdxDatFwdCfm)
498 (*PjDlUdxDatFwdCfmMt[pst->selector])(pst, suId, datFwdCfm);
504 /*************************************************************************
505 * UDX Porting Functions
506 ************************************************************************/
510 PUBLIC S16 PtDlUdxBndCfm
517 PUBLIC S16 PtDlUdxBndCfm(pst, suId, status)
536 PUBLIC S16 PtDlUdxCfgCfm
540 UdxCfgCfmInfo * cfgCfm
543 PUBLIC S16 PtDlUdxCfgCfm(pst, suId, cfgCfm)
546 UdxCfgCfmInfo * cfgCfm;
562 PUBLIC S16 PtDlUdxReEstCfm
566 UdxReEstCfmInfo * reEstCfm
569 PUBLIC S16 PtDlUdxReEstCfm(pst, suId, reEstCfm)
572 UdxReEstCfmInfo *reEstCfm;
576 TRC3(PtDlUdxReEstCfm)
588 PUBLIC S16 PtDlUdxSecCfgCfm
592 UdxSecCfgCfmInfo * secCfgCfm
595 PUBLIC S16 PtDlUdxSecCfgCfm(pst, suId, secCfgCfm)
598 UdxSecCfgCfmInfo * secCfgCfm;
602 TRC3(PtDlUdxSecCfgCfm)
614 PUBLIC S16 PtDlUdxUeIdChgCfm
623 PUBLIC S16 PtDlUdxUeIdChgCfm(pst, suId, transId, ueInfo, status)
632 TRC3(PtDlUdxUeIdChgCfm)
646 PUBLIC S16 PtDlUdxCountCfm
650 UdxCountCfmInfo * countCfm
653 PUBLIC S16 PtDlUdxCountCfm(pst, suId, countCfm)
656 UdxCountCfmInfo * countCfm;
660 TRC3(PtDlUdxCountCfm)
672 PUBLIC S16 PtDlUdxSduStaCfm
676 UdxSduStaCfmInfo * staCfm
679 PUBLIC S16 PtDlUdxSduStaCfm(pst, suId, staCfm)
682 UdxSduStaCfmInfo * staCfm;
686 TRC3(PtDlUdxSduStaCfm)
697 PUBLIC S16 PtDlUdxDatResumeCfm
701 UdxDatResumeCfmInfo * staCfm
704 PUBLIC S16 PtDlUdxDatResumeCfm(pst, suId, staCfm)
707 UdxDatResumeCfmInfo * staCfm;
711 TRC3(PtDlUdxDatResumeCfm)
722 PUBLIC S16 PtDlUdxDatForwardCfm
726 UdxDatFwdCfmInfo *datFwdCfm
729 PUBLIC S16 PtDlUdxDatForwardCfm(pst, suId, datFwdCfm)
732 UdxDatFwdCfmInfo *datFwdCfm;
736 TRC3(PtDlUdxDatForwardCfm)
744 #endif /*--ifdef PTPJUDX--*/
749 #endif /* __cplusplus */
750 /********************************************************************30**
752 **********************************************************************/