Committing in PDCP code
[o-du/l2.git] / src / cm / lpj.x
1 /*******************************************************************************
2 ################################################################################
3 #   Copyright (c) [2017-2019] [Radisys]                                        #
4 #                                                                              #
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                                    #
8 #                                                                              #
9 #       http://www.apache.org/licenses/LICENSE-2.0                             #
10 #                                                                              #
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 *******************************************************************************/
18
19 /********************************************************************20**
20   
21         Name:    PDCP Layer Manager Interface: LPJ
22     
23         Type:    C include file
24   
25         Desc:    This file Contains the Data structures and prototypes
26                  for LPJ Interface
27  
28         File:    lpj.x
29   
30 *********************************************************************21*/
31
32 #ifndef __LPJ_X__
33 #define __LPJ_X__
34
35 #ifdef __cplusplus
36 EXTERN "C" {
37 #endif  /* __cplusplus */
38
39 #if (defined(KW_PDCP) || defined(TENB_SPLIT_ARCH))
40 /*typedef U32  CntrSts;*/
41 #if (defined(PJ_SEC_ASYNC) || defined (PJ_CMP_ASYNC))
42
43 /** @struct PjOBPst
44  *  Post Info for Off-board Entities */
45 typedef struct pjObdPst
46 {
47    Pst           cmpPst;                    /*!< Service user post structure
48                                                  for compression */
49    Pst           secPst;                    /*!< Service user post structure
50                                                  for security algorithm */
51 }PjObdPst;
52 #endif /* PJ_SEC_ASYNC || PJ_CMP_ASYNC */
53
54 /** @brief
55     General Configuration Structure. */
56 typedef struct pjGenCfg
57 {
58    Pst               lmPst;         /*!< Post structure for communicating
59                                          with LM. */
60    Ticks             timeRes;       /*!< Time resolution. */
61    U8                mode;      /*!< Pdcp mode DL / UL */
62    U8                maxPjuSaps;    /*!< Number of PDCP Data SAPs */
63    U8                maxKwuSaps;    /*!< Number of PDCP Data SAPs */
64    U8                maxUdxSaps;    /*!< Number of Udx  SAPs */
65    U8                nmbUlBins;     /*!< Number of bins which is used for 
66                                          RxBuff to store */
67    U8                nmbDlBins;     /*!< Number of bins which is used for 
68                                          RxBuff to store */
69    U32               maxUe;
70 #if (defined(PJ_SEC_ASYNC) || defined (PJ_CMP_ASYNC))
71    S32               obdTmrInt;     /*!< Timer Interval used while 
72                                          waiting for an output data from 
73                                          Off-board entities */
74    S32               obdWtTmrInt;   /*!< OBD wait timer used while opening
75                                          and closing the context with 
76                                          Off-board entities */
77    PjObdPst          obdPst;        /*!< Post Information for off-board Interface */
78 #endif /* PJ_SEC_ASYNC || PJ_CMP_ASYNC */
79 }PjGenCfg;
80
81 /** @brief
82     SAP Configuration Structure */
83 typedef struct pjSapCfg
84 {
85    Selector          selector;      /*!< Selector for LC/TC. */
86    MemoryId          mem;           /*!< Region and pool. */
87    ProcId            procId;        /*!< Processor ID. */
88    Ent               ent;           /*!< Entity ID. */
89    Inst              inst;          /*!< Instance ID. */
90
91    SpId              sapId;         /*!< SAP ID. */
92    U16               bndTmrIntvl;   /*!< Bind timer interval. */
93    Priority          priority;      /*!< Priority. */
94    Route             route;         /*!< Route. */
95 }PjSapCfg;
96
97 /** @brief 
98 *   Configuration Structure 
99 */
100 typedef struct pjCfg
101 {
102    union
103    {
104       PjGenCfg       gen;           /*!< General configuraton. */
105       PjSapCfg       sap;           /*!< SAP configuration. */
106    }s;
107 }PjCfg;
108
109 /** @brief 
110     General Statistics Structure */
111 typedef struct pjGenSts
112 {
113    CntrSts           numUe;
114    CntrSts           numOfRb;       /*!< Total number of RBs in PDCP */
115    CntrSts           rxPdus;        /*!< Number of PDUs received Layer from RLC. */
116    CntrSts           txPdus;        /*!< Number of PDUs sent to RLC. */
117    CntrSts           errorPdusRecv; /*!< Format error PDUs received from RLC. */
118    CntrSts           numSdusDisc;   /*!< Number of SDUs discarded due to PDCP
119                                          discard timer expiry. */
120    CntrSts           numCmpFails;     /*!< Number of Compression fails */
121    CntrSts           numDecmpFails;   /*!< Number of Decompression fails */
122    CntrSts           numIntgPrtFails; /*!< Number of Integration Protection fails */
123    CntrSts           numIntgVrfFails; /*!< Number of Integration Verification fails */
124    CntrSts           numCiphFails;    /*!< Number of Ciphering fails */
125    CntrSts           numDeciphFails;  /*!< Number of Deciphering fails */
126    CntrSts           numPdusDiscObdTmrExp;   /*!< Number of PDUs discarded in UL
127                                                   due to Off-board timer expiry. */
128    CntrSts           numSdusDiscObdTmrExp;   /*!< Number of SDUs discarded in DL
129                                                   due to Off-board timer expiry. */
130    CntrSts           numPktsFrwd;   /*!< Number of Packets forwarded to X2
131                                          interface */
132    CntrSts           numPktsRcvd;   /*!< Number of Packets recieved to X2
133                                          interface */
134 }PjGenSts;
135
136 /** @brief 
137     General Statistics Structure */
138 typedef struct pjPjuSts
139 {
140    /* lpj_x_001.main_1 modified from suId to spId */
141    SpId              spId;          /*!< Service provider ID. */
142    CntrSts           rxSdus;        /*!< Number of SDUs received Layer from UL. */
143    CntrSts           txSdus;        /*!< Number of SDUs sent to UL. */
144 }PjPjuSts;
145 /** @brief 
146     Statistics Structure */
147 typedef struct pjSts
148 {
149    DateTime       dt;               /*!< Date and Time structure. */
150    union
151    {
152       PjGenSts       gen;           /*!< General Statistics. */
153       PjPjuSts       pjuSap;        /*!< PJU SAP Statistics. */
154    }s;
155 }PjSts;
156
157 /** @brief 
158     PDCP Data Plane Upper SAP Status Structure */
159 typedef struct pjPjuSapSta
160 {
161    SpId              spId;          /*!< Service provider ID. */
162    State             state;         /*!< State of the SAP. */
163 }PjPjuSapSta;
164
165 /** @brief 
166     PDCP Uplink Downlink SAP Status Structure */
167 typedef struct pjUdxSapSta
168 {
169    SpId              spId;          /*!< Service provider ID. */
170    State             state;         /*!< State of the SAP. */
171 }PjUdxSapSta;
172
173
174 /** @brief 
175     PDCP Data Plane Upper SAP Status Structure */
176 typedef struct pjKwuSapSta
177 {
178    SpId              spId;          /*!< Service provider ID. */
179    State             state;         /*!< State of the SAP. */
180 }PjKwuSapSta;
181
182 /** @brief 
183     PDCP Control Plane SAP Status Structure */
184 typedef struct pjCpjSapSta
185 {
186    SpId              spId;          /*!< Service provider ID. */
187    State             state;         /*!< State of the SAP. */
188 }PjCpjSapSta;
189
190 /** @brief 
191     Status Structure */
192 typedef struct pjSSta
193 {
194    DateTime          dt;            /*!< Date and Time structure. */
195    union
196    {
197       SystemId       sysId;         /*!< System ID. */
198       PjCpjSapSta    cpjSap;        /*!< PDCP Control plane Upper SAP Status. */
199       PjPjuSapSta    pjuSap;        /*!< PDCP Data plane Upper SAP status. */
200       PjKwuSapSta    kwuSap;        /*!< PDCP Data plane Upper SAP status. */
201       PjUdxSapSta    udxSap;        /*!< PDCP Data plane Upper SAP status. */
202    }s;
203 }PjSSta;
204
205 /** @brief 
206     Trace Control Structure */
207 typedef struct pjTrcCntrl
208 {
209    U8                trcMask;       /*!< Trace mask. */
210    S16               trcLen;        /*!< Trace length. */
211 }PjTrcCntrl;
212
213 /** @brief 
214     Debug Control Structure */
215 typedef struct pjDbgCntrl
216 {
217    U32               dbgMask;       /*!< Debug mask. Assign non zero value to enable
218                                           and zero to disable debug */
219 }PjDbgCntrl;
220
221 /** @brief 
222     SAP Control Structure */
223 typedef struct pjSapCntrl
224 {
225    SuId              suId;          /*!< Service user ID. */
226    SpId              spId;          /*!< Service provider ID. */
227 }PjSapCntrl;
228
229 /** @brief 
230     Control Structure */
231 typedef struct pjCntrl
232 {
233    DateTime          dt;            /*!< Date and Time structure. */
234    U8                action;        /*!< Action. */
235    U8                subAction;     /*!< Sub action. */
236    union
237    {
238       PjTrcCntrl     trcCntrl;      /*!< Trace Control Structure. */
239       PjDbgCntrl     dbgCntrl;      /*!< Debug Control Structure. */
240 #ifdef SS_DIAG
241       U32            logMask;       /*!< Logging Control Structure. */
242 #endif
243       PjSapCntrl     sapCntrl;      /*!< Debug Control Structure. */
244    }s;
245 }PjCntrl;
246
247 /** @brief 
248     Unsolicited Status Structure */
249 typedef struct pjUSta
250 {
251    DateTime          dt;            /*!< Date and Time structure. */
252    CmAlarm           alarm;         /*!< Alarm. */
253    SuId              suId;          /*!< Service user ID. */
254    U32               ueId;          /*!< Urnti UE ID. */
255   /* lpj_x_001.main_1 added support for L2 Measurement */
256 #ifdef LTE_L2_MEAS
257    U8                qci;           /*!< QCI */
258 #endif
259 }PjUSta;
260
261 /** @brief 
262     Trace Structure */
263 typedef struct pjTrc
264 {
265    DateTime          dt;            /*!< Date and Time structure. */
266    U16               event;         /*!< Event. Events defined in the different PDCP
267                                          interfaces are possible values here.*/
268 }PjTrc;
269
270 /** @brief 
271     Layer Management Structure */
272 typedef struct _pjMngmt
273 {
274    Header            hdr;           /*!< common header. */
275    CmStatus          cfm;           /*!< Status of confirmation. */
276    union 
277    {
278       PjCfg          cfg;           /*!< General Configuration. */
279       PjCntrl        cntrl;         /*!< Control Structure. */
280       PjSts          sts;           /*!< Statistics. */
281       PjSSta         ssta;          /*!< Status. */
282       PjUSta         usta;          /*!< Unsolicited Status. */
283       PjTrc          trc;           /*!< Trace Structre. */
284    }t;
285 }PjMngmt;
286
287 /* lpj_x_001.main_1 added support for L2 Measurement */
288 #ifdef LTE_L2_MEAS
289 /** @brief Measurement Request Params Structure. */
290 typedef struct pjL2MeasReqInfo
291 {
292    U16  measType;            /*!< Type of measurement */
293    U8   numQci;              /*!< Number of qCI to take measurement for */
294    U8   qci[LPJ_MAX_QCI];    /*!< QCI for the measurement */
295 }PjL2MeasReqInfo;
296
297 /** @brief Measurement Request Structure. */
298 typedef struct pjL2MeasReqEvt
299 {
300    U32              transId;    /*!< Transaction identifier */
301    U16              measPeriod; /*!< Time period of measurement */
302    PjL2MeasReqInfo  measReq;    /*!< Measurement request */
303 }PjL2MeasReqEvt;
304
305 /** @brief Measurement Confirm Params Structure. */
306 typedef struct pjL2MeasCfmInfo
307 {
308    U8     qci;      /*!< Qci */
309    U32    dlDelay;  /*!< DL Delay */
310    U32    dlDisc;   /*!< DL Discard */
311    U32    ulLoss;   /*!< UL Loss */
312    U32    ulBitRate; /*!< UL Data Plane Bit Rate*/
313    U32    dlBitRate; /*!< DL Data Plane Bit Rate*/
314    U32    dlCpBitRate;/*!<Dl Control Plane Bit Rate*/
315    U32    ulCpBitRate;/*!<Ul Control Plane Bit Rate*/
316 }PjL2MeasCfmInfo;
317
318 /** @brief Measurement Confirm Structure. */
319 typedef struct pjL2MeasCfmEvt
320 {
321    U32              transId; /*!< Transaction identifier */
322    CmStatus         status;  /*!<Status */
323    U16              measType; /*!< Measurement type */
324    CmLteMemInfo     memoryInfo;
325    U16              numQciCfm;  /*!< Number of confirm */
326    PjL2MeasCfmInfo  measCfm[LPJ_MAX_QCI]; /*!< Measurement confirm */
327    U16              numCores;
328    CmLteCpuUtilInfo cmLteCpuInfo[CM_MAX_CPU_CORES]; 
329 }PjL2MeasCfmEvt;
330 #endif /*  LTE_L2_MEAS */
331
332 /* Control primitives towards LTE PDCP */
333 /* Pointer functions to pack/unpack primitives */
334 typedef S16 (*LpjCfgReq)   ARGS((Pst *pst, PjMngmt *cfg));
335 typedef S16 (*LpjCfgCfm)   ARGS((Pst *pst, PjMngmt *cfgCfm));
336
337 typedef S16 (*LpjCntrlReq) ARGS((Pst *pst, PjMngmt *cntl));
338 typedef S16 (*LpjCntrlCfm) ARGS((Pst *pst, PjMngmt *cntlCfm));
339
340 typedef S16 (*LpjStaInd)   ARGS((Pst *pst, PjMngmt *staInd)); 
341 typedef S16 (*LpjStaReq)   ARGS((Pst *pst, PjMngmt *staReq));
342 typedef S16 (*LpjStaCfm)   ARGS((Pst *pst, PjMngmt *staCfm));
343
344 typedef S16 (*LpjStsReq)   ARGS((Pst *pst, Action, PjMngmt *sts));
345 typedef S16 (*LpjStsCfm)   ARGS((Pst *pst, Action, PjMngmt *stsCfm));
346
347 typedef S16 (*LpjTrcInd)   ARGS((Pst *pst, PjMngmt *trc, Buffer *mBuf));
348
349 /* lpj_x_001.main_1 added support for L2 Measurement */
350 #ifdef LTE_L2_MEAS
351 typedef S16 (*LpjL2MeasReq)   ARGS((Pst *pst, PjL2MeasReqEvt *measEvt));
352 typedef S16 (*LpjL2MeasCfm)   ARGS((Pst *pst, PjL2MeasCfmEvt *measEvt));
353 typedef S16 (*LpjL2MeasStopReq)   ARGS((Pst *pst, U16 measType));
354 typedef S16 (*LpjL2MeasSendReq)   ARGS((Pst *pst, U16 measType));
355 typedef S16 (*LpjL2MeasStopCfm)   ARGS((Pst *pst, U16 measType,U8 status));
356 #endif /*  LTE_L2_MEAS */
357 /* Layer primitives */
358 /** @details This function processes configuration requests received from the
359  * layer manager.The configuration requests are general configuration, or
360  * configuration of RGU, PJU, and PJU SAPs. The type of the configuration request is determined from the elmId field in the header of the layer manager message.This function is called by the layer manager to configure PDCP.
361
362 @param[in] pst  - Pointer to post structure
363 @param[in] cfg  - Configuration management structure
364 @return ROK if success , RFAILED if failure
365
366 */
367 EXTERN S16 PjMiLpjCfgReq ARGS((Pst *pst, PjMngmt *cfg));
368
369 /**
370 @details This function is called by the PjMiLpjCfgReq function for responding to configuration requests.The cfm field in the PjMngmt structure contains the response value.
371
372 @param[in] pst  - Pointer to post structure
373 @param[in] cfm  - Configuration management structure
374 @return ROK if success, RFAILED if failure
375 */
376 EXTERN S16 PjMiLpjCfgCfm ARGS((Pst *pst, PjMngmt *cfgCfm));
377
378 /**
379 @details
380 The layer manager initiates and uses the management-control procedure to control
381 PDCP elements.The PDCP control request primitive (PjMiLpjCntrlReq) can be called
382 more than once and at any time after the management-configuration procedure.The
383 control request primitive is confirmed by a PjMiLpjCntrlCfm primitive.
384
385 @param[in] pst  - Pointer to post structure
386 @param[in] cntl - Configuration management structure
387 @return ROK if success , RFAILED if failure
388 */
389 EXTERN S16 PjMiLpjCntrlReq ARGS((Pst *pst, PjMngmt *cntl));
390
391 /**
392 @details
393 This function is called by the PjMiLpjCntrlReq function to send a control confirm to the layer management module.
394
395 @param[in] pst  - Pointer to post structure
396 @param[in] cfm  - Configuration management structure
397 @return ROK if success , RFAILED if failure
398 */
399 EXTERN S16 PjMiLpjCntrlCfm ARGS((Pst *pst, PjMngmt *cntlCfm));
400
401 /**
402 @details
403 This function processes solicited status requests received from the layer manage
404 r.The layer manager can request status information regarding the system ID, RGSA
405 P,KWSAP, or CKSAP.
406
407 @param[in] pst  - Pointer to post structure
408 @param[in] cfg  - Configuration management structure
409 @return ROK if success , RFAILED if failure
410 */
411 EXTERN S16 PjMiLpjStaReq ARGS((Pst *pst, PjMngmt *staInd));
412
413 /**
414 @details
415 This function is called by the PjMiLpjStaReq function to send the requested stat
416 us information to the layer manager.
417
418 @param[in] pst   - Pointer to post structure
419 @param[in] stacfm - Configuration management structure
420 @return ROK if success , RFAILED if failure
421 */
422 EXTERN S16 PjMiLpjStaCfm ARGS((Pst *pst, PjMngmt *staCfm));
423
424 /**
425 @details
426 This function processes statistics requests received from the layer manager. Aft
427 er collecting the statistics, this function calls the statistics confirm functio
428 n to send the statistics to the layer manager.
429
430 @param[in] pst   - Pointer to post structure  
431 @param[in] acton - action 
432 @param[in] sts   - Configuration management structure
433 @return ROK if success , RFAILED if failure
434 */
435 EXTERN S16 PjMiLpjStsReq ARGS((Pst *pst, Action, PjMngmt *sts));
436 /**
437 @details
438 This function is called by the PjMiLpjStsReq function for responding to statisti
439 cs requests.
440
441 @param[in] pst   - Pointer to post structure
442 @param[in] action - action 
443 @param[in] cfg  - Configuration management structure
444 @return ROK if success , RFAILED if failure
445 */
446 EXTERN S16 PjMiLpjStsCfm ARGS((Pst *pst, Action action, PjMngmt *stsCfm));
447 /**
448 @details
449 This function can be used by PDCP module to send unsolicited trace indications to
450 the layer manager, when tracing is enabled by the layer manager through a previo
451 us control request.
452
453 @param[in] pst  - Pointer to post structure
454 @param[in] cfg  - Configuration management structure
455 @param[in] buf  - buffer 
456 @return ROK if success , RFAILED if failure
457 */
458 EXTERN S16 PjMiLpjTrcInd ARGS ((Pst *pst, PjMngmt *trc, Buffer *mBuf));
459
460 /**
461 @details This function can be used by PDCP to send unsolicited status information t
462 o the layer manager, when the unsolicited status flag is enabled by the layer ma
463 nager through a previous control request.
464
465 @param[in] pst  - Pointer to post structure
466 @param[in] staReq - Configuration management structure
467 @return ROK if success , RFAILED if failure
468 */
469 EXTERN S16 PjMiLpjStaInd ARGS((Pst *pst, PjMngmt *staReq));
470
471 /* lpj_x_001.main_1 added support for L2 Measurement */
472 #ifdef LTE_L2_MEAS
473 /**
474 @details This function is called by the Layer Manger function to request 
475 for Measurement  responding to statisti cs requests.
476
477 @param[in] pst  - Pointer to post structure
478 @param[in] measEvt - Measurement Request structure
479 @return ROK if success , RFAILED if failure
480 */
481 EXTERN S16 PjMiLpjL2MeasReq ARGS((Pst *pst, PjL2MeasReqEvt *measEvt));
482 EXTERN S16 PjMiLpjL2MeasStopReq ARGS((Pst *pst, U16 measType));
483 EXTERN S16 PjMiLpjL2MeasSendReq ARGS((Pst *pst, U16 measType));
484 EXTERN S16 PjMiLpjL2MeasStopCfm ARGS((Pst *pst, U16 measType, U8 status));
485 /**
486 @details This function can be used by PDCP to send the measurement values
487 after doing L2 measurement that was requested by the layer manager.
488
489 @param[in] pst  - Pointer to post structure
490 @param[in] measEvt - Measurement confirmation structure
491 @return ROK if success , RFAILED if failure
492 */
493 EXTERN S16 PjMiLpjL2MeasCfm ARGS((Pst *pst, PjL2MeasCfmEvt *measCfm));
494 EXTERN S16 SmMiLpjL2MeasStopCfm ARGS((
495 Pst     *pst,          
496 U16      measType,
497 U8      status
498 ));
499 EXTERN S16 PjMiLpjL2MeasStopCfm ARGS((  
500 Pst *pst,
501 U16  measType,
502 U8  status
503 ));
504 #endif /*  LTE_L2_MEAS */
505
506 EXTERN Void pjSendLmAlarm ARGS ((U16 category,
507       U16  event,
508       U16 cause,
509       SuId suId,
510       U32 ueId));
511
512 #ifdef SM
513 EXTERN S16 SmMiLpjCfgCfm   ARGS((
514        Pst *,
515        PjMngmt *
516        ));
517
518 EXTERN S16 SmMiLpjCntrlCfm ARGS((
519        Pst *,
520        PjMngmt *
521        ));
522
523 EXTERN S16 SmMiLpjStaInd   ARGS((
524        Pst *,
525        PjMngmt *
526        ));
527
528 EXTERN S16 SmMiLpjStaCfm   ARGS((
529        Pst *,
530        PjMngmt *
531        ));
532
533 EXTERN S16 SmMiLpjStsCfm   ARGS((
534        Pst *,
535        Action,
536        PjMngmt *
537        ));
538
539 EXTERN S16 SmMiLpjTrcInd   ARGS((
540        Pst *,
541        PjMngmt *,
542        Buffer *
543        ));
544
545 EXTERN S16 SmMiLpjStsReq   ARGS((
546        Pst *,
547        Action,
548        PjMngmt *
549        ));
550
551 EXTERN S16 SmMiLpjStaReq   ARGS((
552        Pst *,
553        PjMngmt *
554        ));
555
556 EXTERN S16 SmMiLpjCntrlReq ARGS((
557        Pst *,
558        PjMngmt *
559        ));
560
561 EXTERN S16 SmMiLpjCfgReq   ARGS((
562        Pst *,
563        PjMngmt *
564        ));
565
566 /* lpj_x_001.main_1 added support for L2 Measurement */
567 #ifdef LTE_L2_MEAS
568 EXTERN S16 SmMiLpjL2MeasReq   ARGS((
569        Pst *,
570        PjL2MeasReqEvt *
571        ));
572 EXTERN S16 SmMiLpjL2MeasCfm   ARGS((
573        Pst *,
574        PjL2MeasCfmEvt *
575        ));
576 EXTERN S16 SmMiLpjL2MeasStopReq   ARGS((
577        Pst *pst,
578        U16  measType
579        ));
580
581 EXTERN S16 SmMiLpjL2MeasSendReq   ARGS((
582        Pst *pst,
583        U16  measType
584        ));
585 EXTERN S16 SmMiLpjL2MeasStopCfm   ARGS((
586        Pst *pst,
587        U16 measType,
588        U8 stauts
589        ));
590 #endif /*  LTE_L2_MEAS */
591 #endif
592
593 EXTERN S16 smPjActvInit    ARGS((Ent ent, Inst inst, Region region, Reason reason));
594 EXTERN S16 smPjActvTsk     ARGS((Pst *pst, Buffer *mBuf));
595
596 /* pack/unpack functions */
597 #ifdef LCLPJ 
598
599 EXTERN S16 cmPkLpjCfgReq ARGS((
600 Pst * pst,
601 PjMngmt * cfg
602 ));
603 EXTERN S16 cmUnpkLpjCfgReq ARGS((
604 LpjCfgReq func,
605 Pst *pst,
606 Buffer *mBuf
607 ));
608 EXTERN S16 cmPkLpjCfgCfm ARGS((
609 Pst * pst,
610 PjMngmt * cfgCfm
611 ));
612 EXTERN S16 cmUnpkLpjCfgCfm ARGS((
613 LpjCfgCfm func,
614 Pst *pst,
615 Buffer *mBuf
616 ));
617 EXTERN S16 cmPkLpjCntrlReq ARGS((
618 Pst * pst,
619 PjMngmt * cntl
620 ));
621 EXTERN S16 cmUnpkLpjCntrlReq ARGS((
622 LpjCntrlReq func,
623 Pst *pst,
624 Buffer *mBuf
625 ));
626 EXTERN S16 cmPkLpjCntrlCfm ARGS((
627 Pst * pst,
628 PjMngmt * cntlCfm
629 ));
630 EXTERN S16 cmUnpkLpjCntrlCfm ARGS((
631 LpjCntrlCfm func,
632 Pst *pst,
633 Buffer *mBuf
634 ));
635 EXTERN S16 cmPkLpjStaInd ARGS((
636 Pst * pst,
637 PjMngmt * staInd
638 ));
639 EXTERN S16 cmUnpkLpjStaInd ARGS((
640 LpjStaInd func,
641 Pst *pst,
642 Buffer *mBuf
643 ));
644 EXTERN S16 cmPkLpjStaReq ARGS((
645 Pst * pst,
646 PjMngmt * staReq
647 ));
648 EXTERN S16 cmUnpkLpjStaReq ARGS((
649 LpjStaReq func,
650 Pst *pst,
651 Buffer *mBuf
652 ));
653 EXTERN S16 cmPkLpjStaCfm ARGS((
654 Pst * pst,
655 PjMngmt * staCfm
656 ));
657 EXTERN S16 cmUnpkLpjStaCfm ARGS((
658 LpjStaCfm func,
659 Pst *pst,
660 Buffer *mBuf
661 ));
662 EXTERN S16 cmPkLpjStsReq ARGS((
663 Pst * pst,
664 Action actn,
665 PjMngmt * sts
666 ));
667 EXTERN S16 cmUnpkLpjStsReq ARGS((
668 LpjStsReq func,
669 Pst *pst,
670 Buffer *mBuf
671 ));
672 EXTERN S16 cmPkLpjStsCfm ARGS((
673 Pst * pst,
674 Action actn,
675 PjMngmt * stsCfm
676 ));
677 EXTERN S16 cmUnpkLpjStsCfm ARGS((
678 LpjStsCfm func,
679 Pst *pst,
680 Buffer *mBuf
681 ));
682 EXTERN S16 cmPkLpjTrcInd ARGS((
683 Pst * pst,
684 PjMngmt * trc,
685 Buffer * mBuf
686 ));
687 EXTERN S16 cmUnpkLpjTrcInd ARGS((
688 LpjTrcInd func,
689 Pst *pst,
690 Buffer *mBuf
691 ));
692 /* lpj_x_001.main_1 added support for L2 Measurement */
693 #ifdef LTE_L2_MEAS
694 EXTERN S16 cmPkLpjL2MeasReq ARGS((
695 Pst * pst,
696 PjL2MeasReqEvt * measReqEvt
697 ));
698 EXTERN S16 cmUnpkLpjL2MeasReq ARGS((
699 LpjL2MeasReq func,
700 Pst *pst,
701 Buffer *mBuf
702 ));
703 EXTERN S16 cmPkLpjL2MeasStopReq ARGS((
704 Pst * pst,
705 U16 measType
706 ));
707 EXTERN S16 cmUnpkLpjL2MeasStopReq ARGS((
708 LpjL2MeasStopReq func,
709 Pst *pst,
710 Buffer *mBuf
711 ));
712 EXTERN S16 cmPkLpjL2MeasSendReq ARGS((
713 Pst * pst,
714 U16 measType
715 ));
716 EXTERN S16 cmUnpkLpjL2MeasSendReq ARGS((
717 LpjL2MeasSendReq func,
718 Pst *pst,
719 Buffer *mBuf
720 ));
721 EXTERN S16 cmPkLpjL2MeasCfm ARGS((
722 Pst * pst,
723 PjL2MeasCfmEvt *measCfmEvt
724 ));
725 EXTERN S16 cmUnpkLpjL2MeasCfm ARGS((
726 LpjL2MeasCfm func,
727 Pst *pst,
728 Buffer *mBuf
729 ));
730 EXTERN S16 cmPkPjL2MeasReqInfo ARGS((
731 PjL2MeasReqInfo * measReqInfo,
732 Buffer *mBuf
733 ));
734 EXTERN S16 cmUnpkPjL2MeasReqInfo ARGS((
735 PjL2MeasReqInfo * measReqInfo,
736 Buffer *mBuf
737 ));
738 EXTERN S16 cmPkPjL2MeasCfmInfo ARGS((
739 PjL2MeasCfmInfo * measCfmInfo,
740 Buffer *mBuf
741 ));
742 EXTERN S16 cmPkPjL2MeasCpuCfmInfo ARGS((
743 CmLteCpuUtilInfo * measCpuCfmInfo,
744 Buffer *mBuf
745 )); 
746
747 EXTERN S16 cmPkPjL2MeasMemoryCfmInfo ARGS((
748 CmLteMemInfo *param,
749 Buffer *mBuf
750 ));
751 EXTERN S16 cmUnpkPjL2MeasCpuCfmInfo ARGS((
752 CmLteCpuUtilInfo * measCpuCfmInfo,
753 Buffer *mBuf
754 ));
755 EXTERN S16 cmUnpkPjL2MeasMemoryCfmInfo ARGS((
756 CmLteMemInfo *param,
757 Buffer *mBuf
758 ));
759
760 EXTERN S16 cmUnpkPjL2MeasCfmInfo ARGS((
761 PjL2MeasCfmInfo * measCfmInfo,
762 Buffer *mBuf
763 ));
764 EXTERN S16 cmPkLpjL2MeasStopReq ARGS((
765 Pst * pst,
766 U16  measType
767 ));
768 EXTERN S16 cmUnpkLpjL2MeasStopReq ARGS((
769 LpjL2MeasStopReq func,
770 Pst *pst,
771 Buffer *mBuf
772 ));
773 EXTERN S16 cmPkLpjL2MeasSendReq ARGS((
774 Pst * pst,
775 U16  measType
776 ));
777 EXTERN S16 cmUnpkLpjL2MeasSendReq ARGS((
778 LpjL2MeasSendReq func,
779 Pst *pst,
780 Buffer *mBuf
781 ));
782
783 EXTERN S16 cmPkLpjL2MeasStopCfm ARGS((
784 Pst * pst,
785 U16 measType,
786 U8 status
787 ));
788 EXTERN S16 cmUnpkLpjL2MeasStopCfm ARGS((
789 LpjL2MeasStopCfm func,
790 Pst *pst,
791 Buffer *mBuf
792 ));
793 #endif /*  LTE_L2_MEAS */
794
795 #if (defined(PJ_SEC_ASYNC) || defined (PJ_CMP_ASYNC))
796 EXTERN S16 cmPkPjObdPst ARGS((
797 PjObdPst *param,
798 Buffer *mBuf
799 ));
800 EXTERN S16 cmUnpkPjObdPst ARGS((
801 PjObdPst *param,
802 Buffer *mBuf
803 ));
804 #endif /* PJ_SEC_ASYNC || PJ_CMP_ASYNC */
805
806 EXTERN S16 cmPkPjGenCfg ARGS((
807 PjGenCfg *param,
808 Buffer *mBuf
809 ));
810 EXTERN S16 cmUnpkPjGenCfg ARGS((
811 PjGenCfg *param,
812 Buffer *mBuf
813 ));
814 EXTERN S16 cmPkPjSapCfg ARGS((
815 PjSapCfg *param,
816 Buffer *mBuf
817 ));
818 EXTERN S16 cmUnpkPjSapCfg ARGS((
819 PjSapCfg *param,
820 Buffer *mBuf
821 ));
822 EXTERN S16 cmPkPjCfg ARGS((
823 PjMngmt *cfg,
824 Elmnt elmnt,
825 Buffer *mBuf
826 ));
827 EXTERN S16 cmUnpkPjCfg ARGS((
828 PjMngmt *cfg,
829 Elmnt elmnt,
830 Buffer *mBuf
831 ));
832 EXTERN S16 cmPkPjGenSts ARGS((
833 PjGenSts *param,
834 Buffer *mBuf
835 ));
836 EXTERN S16 cmUnpkPjGenSts ARGS((
837 PjGenSts *param,
838 Buffer *mBuf
839 ));
840 EXTERN S16 cmPkPjPjuSts ARGS((
841 PjPjuSts *param,
842 Buffer *mBuf
843 ));
844 EXTERN S16 cmUnpkPjPjuSts ARGS((
845 PjPjuSts *param,
846 Buffer *mBuf
847 ));
848 EXTERN S16 cmPkPjSts ARGS((
849 PjMngmt *sts,
850 Elmnt elmnt,
851 Buffer *mBuf
852 ));
853 EXTERN S16 cmUnpkPjSts ARGS((
854 PjMngmt *sts,
855 Elmnt elmnt,
856 Buffer *mBuf
857 ));
858 EXTERN S16 cmPkPjPjuSapSta ARGS((
859 PjPjuSapSta *param,
860 Buffer *mBuf
861 ));
862 EXTERN S16 cmUnpkPjPjuSapSta ARGS((
863 PjPjuSapSta *param,
864 Buffer *mBuf
865 ));
866 EXTERN S16 cmPkPjCpjSapSta ARGS((
867 PjCpjSapSta *param,
868 Buffer *mBuf
869 ));
870 EXTERN S16 cmUnpkPjCpjSapSta ARGS((
871 PjCpjSapSta *param,
872 Buffer *mBuf
873 ));
874 EXTERN S16 cmPkPjSSta ARGS((
875 PjMngmt *ssta,
876 Elmnt elmnt,
877 Event eventType,
878 Buffer *mBuf
879 ));
880 EXTERN S16 cmUnpkPjSSta ARGS((
881 PjMngmt *ssta,
882 Elmnt elmnt,
883 Event eventType,
884 Buffer *mBuf
885 ));
886 EXTERN S16 cmPkPjTrcCntrl ARGS((
887 PjTrcCntrl *param,
888 Buffer *mBuf
889 ));
890 EXTERN S16 cmUnpkPjTrcCntrl ARGS((
891 PjTrcCntrl *param,
892 Buffer *mBuf
893 ));
894 EXTERN S16 cmPkPjDbgCntrl ARGS((
895 PjDbgCntrl *param,
896 Buffer *mBuf
897 ));
898 EXTERN S16 cmUnpkPjDbgCntrl ARGS((
899 PjDbgCntrl *param,
900 Buffer *mBuf
901 ));
902 EXTERN S16 cmPkPjCntrl ARGS((
903 PjMngmt *cntrl,
904 Elmnt elmnt,
905 Buffer *mBuf
906 ));
907 EXTERN S16 cmUnpkPjCntrl ARGS((
908 PjMngmt *cfm,
909 Elmnt elmnt,
910 Buffer *mBuf
911 ));
912 EXTERN S16 cmPkPjUSta ARGS((
913 PjMngmt *usta,
914 Elmnt elmnt,
915 Buffer *mBuf
916 ));
917 EXTERN S16 cmUnpkPjUSta ARGS((
918 PjMngmt *usta,
919 Elmnt elmnt,
920 Buffer *mBuf
921 ));
922 EXTERN S16 cmPkPjTrc ARGS((
923 PjMngmt *trc,
924 Buffer *mBuf
925 ));
926 EXTERN S16 cmUnpkPjTrc ARGS((
927 PjMngmt *trc,
928 Buffer *mBuf
929 ));
930 EXTERN S16 cmPkPjMngmt ARGS((
931 PjMngmt *param,
932 Event eventType,
933 Buffer *mBuf
934 ));
935 EXTERN S16 cmUnpkPjMngmt ARGS((
936 PjMngmt *param,
937 Event eventType,
938 Buffer *mBuf
939 ));
940
941 #endif
942 #endif /* TENB_SPLIT_ARCH */
943 #ifdef __cplusplus
944 }
945 #endif /* __cplusplus */
946 #endif /* __LPJ_X__ */
947
948 \f  
949 /********************************************************************30**
950          End of file
951 **********************************************************************/