Initial commit
[o-du/l2.git] / src / cm / lkw.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:    LKW RLC Layer Manager Interface
22     
23         Type:    C include file
24   
25         Desc:    This file Contains the Data structures and prototypes
26                  for LKW Interface
27  
28         File:    lkw.x
29   
30 *********************************************************************21*/
31
32 #ifndef __LKW_X__
33 #define __LKW_X__
34
35 #ifdef __cplusplus
36 EXTERN "C" {
37 #endif  /* __cplusplus */
38
39
40 /** @brief
41     General Configuration Structure. */
42 typedef struct kwGenCfg
43 {
44    Pst               lmPst;         /*!< Post structure for communicating
45                                       with LM. */
46    U32               maxUe;         /*!< Maximum number of UEs supported
47                                       by RLC. */
48    U16               maxKwuSaps;    /*!< Maximum KWU SAPs. */
49 /* Supported by SPLIT Architecture */
50    U16               maxUdxSaps;    /*!< Maximum Udx SAPs. */
51 /* Supported by SPLIT Architecture ends */
52    Ticks             timeRes;       /*!< Time resolution. */
53 /* Supported by SPLIT Architecture */
54    U8                rlcMode;       /*!< RLC_DL or RLC_UL */
55 /* Supported by SPLIT Architecture ends */
56    U16               maxRguSaps;    /*!< Maximum RGU SAPs. */
57 }KwGenCfg;
58
59 /** @brief
60     SAP Configuration Structure */
61 typedef struct kwSapCfg
62 {
63    Selector          selector;      /*!< Selector for LC/TC. */
64    MemoryId          mem;           /*!< Region and pool. */
65    ProcId            procId;        /*!< Processor ID. */
66    Ent               ent;           /*!< Entity ID. */
67    Inst              inst;          /*!< Instance ID. */
68    SpId              sapId;         /*!< SAP ID. */
69    U16               bndTmrIntvl;   /*!< Bind timer interval. */
70    Priority          priority;      /*!< Priority. */
71    Route             route;         /*!< Route. */
72 }KwSapCfg;
73
74 /** @brief 
75 *   Configuration Structure 
76 */
77 typedef struct kwCfg
78 {
79    union
80    {
81       KwGenCfg       gen;           /*!< General configuraton. */
82       KwSapCfg       sap;           /*!< SAP configuration. */
83    }s;
84 }KwCfg;
85
86 /** @brief 
87     General Statistics Structure */
88 typedef struct kwGenSts
89 {
90    CntrSts           numUe;         /*!< Total number of UEs. */
91    CntrSts           pdusRecv;      /*!< Number of PDUs received. */
92    CntrSts           pdusSent;      /*!< Number of PDUs sent. */
93    CntrSts           pdusRetx;      /*!< Number of PDUs retransmitted. */
94    CntrSts           bytesRecv;     /*!< Number of bytes received. */
95    CntrSts           bytesSent;     /*!< Number of bytes sent. */
96    CntrSts           unexpPdusRecv; /*!< Unexpected PDU received. */
97    CntrSts           errorPdusRecv; /*!< Format error pdus received. */
98    CntrSts           protTimeOut;   /*!< Number of protocol time outs leading
99                                          to retransmission. */
100    CntrSts           numOfRb;       /*!< Total number of RBs in RLC. */
101    CntrSts           numSduDisc;    /*!< Number of SDUs discarded. */
102 }KwGenSts;
103
104 /** @brief 
105     RLC Upper SAP statistics */
106 typedef struct kwKwuSapSts 
107 {
108    /* lkw_x_001.main_2, changed from suId to spId */
109    SpId              spId;          /*!< Service  Provider ID. */
110    CntrSts           sduRx;         /*!< Number of SDUs received. */
111    CntrSts           sduTx;         /*!< Number of tranxmitted SDUs. */
112 }KwKwuSapSts;
113
114 /** @brief 
115            RRC Control SAP Statistics */
116 typedef struct kwCkwCntSts
117 {
118    CntrSts           statMsgs;      /*!< Number of Status Messages send. */
119 }KwCkwCntSts;
120
121 /** @brief 
122     Statistics Structure */
123 typedef struct kwSts
124 {
125    DateTime dt;                     /*!< Date and Time structure. */
126    union
127    {
128       KwGenSts       gen;           /*!< General Statistics. */
129       KwKwuSapSts    kwuSap;        /*!< RLC upper SAP statistics. */
130       KwCkwCntSts    ckwSap;        /*!< RRC control SAP. */
131    }s;
132 }KwSts;
133
134 /** @brief 
135             MAC Upper SAP Status Structure */
136 typedef struct kwRguSapSta
137 {
138    SuId              suId;          /*!< Service user ID. */
139    State             state;         /*!< State of the SAP. */
140 }KwRguSapSta;
141
142 /** @brief 
143     RLC Upper SAP Status Structure */
144 typedef struct kwKwuSapSta
145 {
146    SpId              spId;          /*!< Service provider ID. */
147    State             state;         /*!< State of the SAP. */
148 }KwKwuSapSta;
149
150 /** @brief 
151     RRC Control SAP Status Structure */
152 typedef struct kwCkwCntSapSta
153 {
154    SpId              spId;          /*!< Service provider ID. */
155    State             state;         /*!< State of the SAP. */
156 }KwCkwCntSapSta;
157
158 /** @brief 
159     Status Structure */
160 typedef struct kwSSta
161 {
162    DateTime          dt;            /*!< Date and Time structure. */
163    union
164    {
165       SystemId       sysId;         /*!< System ID. */
166       KwRguSapSta    rguSap;        /*!< RLC lower SAP (MAC) status. */
167       KwKwuSapSta    kwuSap;        /*!< RLC Upper SAP status. */
168       KwCkwCntSapSta ckwSap;        /*!< RRC Control SAP Status. */
169    }s;
170 }KwSSta;
171
172 /** @brief 
173     Trace Control Structure */
174 typedef struct kwTrcCntrl
175 {
176    U8                trcMask;       /*!< Trace mask. */
177    S16               trcLen;        /*!< Trace length. */
178 }KwTrcCntrl;
179
180 /** @brief 
181     Debug Control Structure */
182 typedef struct kwDbgCntrl
183 {
184    U32               dbgMask;       /*!< Debug mask. Assign non zero value to enable 
185                                          and zero to disable debug */
186 }KwDbgCntrl;
187
188 /** @brief 
189     SAP Control Structure */
190 typedef struct kwSapCntrl
191 {
192    SuId              suId;          /*!< Service user ID. */
193    SpId              spId;          /*!< Service provider ID. */
194 }KwSapCntrl;
195
196 /** @brief 
197     Control Structure */
198 typedef struct kwCntrl
199 {
200    DateTime          dt;            /*!< Date and Time structure. */
201    U8                action;        /*!< Action. */
202    U8                subAction;     /*!< Sub action. */
203    union
204    {
205       KwTrcCntrl     trcCntrl;      /*!< Trace Control Structure. */
206       KwDbgCntrl     dbgCntrl;      /*!< Debug Control Structure. */
207       KwSapCntrl     sapCntrl;      /*!< SAP Control Structure. */
208 #ifdef SS_DIAG
209       U32            logMask;       /*!< Logging Control Structure. */
210 #endif
211    }s;
212 }KwCntrl;
213
214 /** @brief 
215     Unsolicited Status Structure */
216 typedef struct kwUSta
217 {
218    DateTime          dt;            /*!< Date and Time structure. */
219    CmAlarm           alarm;         /*!< Alarm. */
220    SuId              suId;          /*!< Service user ID. */
221    U32               ueId;          /*!< Urnti UE ID. */
222   /* lkw_x_001.main_2, added support for L2 measurement */
223 #ifdef LTE_L2_MEAS
224    U8                qci;           /*!< Qci value */
225 #endif
226 }KwUSta;
227
228 /** @brief 
229     Trace Structure */
230 typedef struct kwTrc
231 {
232    DateTime          dt;            /*!< Date and Time structure. */
233    U16               event;         /*!< Event. Events defined in the differenct RLC
234                                          interfaces are pssible values here.*/
235 }KwTrc;
236
237 /** @brief 
238     Layer Management Structure */
239 typedef struct _kwMngmt
240 {
241    Header            hdr;           /*!< Common header. */
242    CmStatus          cfm;           /*!< Status of confirmation. */
243    union 
244    {
245       KwCfg          cfg;           /*!< General Configuration. */
246       KwCntrl        cntrl;         /*!< Control Structure. */
247       KwSts          sts;           /*!< Statistics. */
248       KwSSta         ssta;          /*!< Status. */
249       KwUSta         usta;          /*!< Unsolicited Status. */
250       KwTrc          trc;           /*!< Trace Structre. */
251    }t;
252 }KwMngmt;
253
254 /* lkw_x_001.main_2, added support for L2 measurement */
255 #ifdef LTE_L2_MEAS
256
257 /** @brief Measurement Request Params Structure. */
258 typedef struct kwL2MeasReqInfo
259 {
260    U8        measType;          /*!< Measurement type, bit 1 to 4 (LSB nibble) 
261                                   will be used for non IP Throughput and 
262                                   bit 5 and 6 will be used for DL and UL 
263                                   Ipthroughput respectively */
264    union
265    {
266       struct 
267       {
268          U16          numSamples;       /*!<Sampling period: */
269          U8           numQci;           /*!<number of qCI to take measurement for */
270          U8           qci[LKW_MAX_QCI]; /*!<QCI for the measurement */
271       }nonIpThMeas;
272
273       struct 
274       {
275          U16 numUes;
276          struct 
277          {
278             U8           numQci;           /*!<number of qCI to take measurement for */
279             U8           qci[LKW_MAX_QCI]; /*!<QCI for the measurement */
280             CmLteRnti    ueId;             /*!< UE ID (Used only for IP Throughput in UL/DL */
281             CmLteCellId  cellId;           /*!< Cell ID (Used only for IP Throughput in UL/DL */
282          }ueInfoLst[LKW_MAX_UE];
283       }ipThMeas;
284
285    }val;
286 }KwL2MeasReqInfo;
287
288 /** @brief Measurement Request Exvent  Structure. */
289 typedef struct kwL2MeasReqEvt
290 {
291    U32              transId;     /*!< Transaction Identifier */
292    U16              measPeriod;  /*!< Measurement Period */
293    KwL2MeasReqInfo  measReq;     /*!< Measurement request structure */
294 }KwL2MeasReqEvt;
295
296 /** @brief Measurement Confirm Params Structure. */
297 typedef struct kwL2MeasCfmInfo
298 {
299    U8              qci;     /*!< QCI value */
300    union
301    {
302       struct
303       {
304          U32   numActUe;   /*!< num of Active UEs*/
305          U32   uuLoss;     /*!< Uu Loss Rate */
306          /* Discard new changes starts */
307          U32   dlDiscRate; /*!< DL Discard rate to be reported */
308          /* Discard new changes ends */
309          U32  dlSduDelay;
310       }nonIpThrput;
311
312       struct              /*!< Structure for IP throughput*/
313       {
314          F32   dlIpThPut; /*!< Scheduled DL IP throughput */
315          F32   ulIpThPut; /*!< Scheduled UL IP throughput */
316       }ipThrput;
317
318    }val;
319 }KwL2MeasCfmInfo;
320
321 typedef struct kwL2MeasCfmUeInfoLst
322 {
323    CmLteRnti       ueId;    /*!< UE Id used for DL/UL Ipthroughput*/
324    CmLteCellId     cellId;  /*!< Cell Id used for DL/UL Ipthroughput*/
325    KwL2MeasCfmInfo measCfm[LKW_MAX_QCI]; /*!< Measurement confirm structure*/
326    U16             numCfm; /*!< Number of Measurement confirm*/
327 }KwL2MeasCfmUeInfoLst;
328
329 typedef struct kwL2MeasCfmIpThMeas
330 {
331    U16                  numUes; /*!< Number of Ue Info*/
332    KwL2MeasCfmUeInfoLst ueInfoLst[LKW_MAX_UE]; /*!< UE info list*/
333 }KwL2MeasCfmIpThMeas;
334
335 typedef struct kwL2MeasCfmNonIpThMeas
336 {
337    U16             numCfm; /*!< Number of confirm */
338    KwL2MeasCfmInfo measCfm[LKW_MAX_QCI]; /*!< Confirmation info */
339 }KwL2MeasCfmNonIpThMeas;
340
341 typedef union kwL2MeasCfmIpNonIp
342 {
343    KwL2MeasCfmIpThMeas    ipThMeas;    /*!< Ip thrupt measurements*/
344    KwL2MeasCfmNonIpThMeas nonIpThMeas; /*!< Non-Ip thrupt measurements*/
345 }KwL2MeasCfmIpNonIp;
346
347 /** @brief Measurement Confirm Event  Structure. */
348 typedef struct kwL2MeasCfmEvt
349 {
350    U32             transId; /*!< Transaction id */
351    CmStatus        status;  /*!< Status is for all QCIs */
352    U8              measType; /*!< Measurement type, bit 1 to 4 (LSB nibble) 
353                                will be used for non IP Throughput and 
354                                bit 5 and 6 will be used for DL and UL 
355                                Ipthroughput respectively. It is same for
356                                all qci in this Cfm event. */
357    KwL2MeasCfmIpNonIp val;
358 }KwL2MeasCfmEvt;
359
360 #endif /* LTE_L2_MEAS */
361
362 /* Control primitives towards LTE RLC */
363 /* Pointer functions to pack/unpack primitives */
364 typedef S16 (*LkwCfgReq)   ARGS((Pst *pst, KwMngmt *cfg));
365 typedef S16 (*LkwCfgCfm)   ARGS((Pst *pst, KwMngmt *cfgCfm));
366
367 typedef S16 (*LkwCntrlReq) ARGS((Pst *pst, KwMngmt *cntl));
368 typedef S16 (*LkwCntrlCfm) ARGS((Pst *pst, KwMngmt *cntlCfm));
369
370 typedef S16 (*LkwStaInd)   ARGS((Pst *pst, KwMngmt *staInd)); 
371 typedef S16 (*LkwStaReq)   ARGS((Pst *pst, KwMngmt *staReq));
372 typedef S16 (*LkwStaCfm)   ARGS((Pst *pst, KwMngmt *staCfm));
373
374 typedef S16 (*LkwStsReq)   ARGS((Pst *pst, Action, KwMngmt *sts));
375 typedef S16 (*LkwStsCfm)   ARGS((Pst *pst, Action, KwMngmt *stsCfm));
376
377 typedef S16 (*LkwTrcInd)   ARGS((Pst *pst, KwMngmt *trc, Buffer *mBuf));
378
379 /* lkw_x_001.main_2, added support for L2 measurement */
380 #ifdef LTE_L2_MEAS
381 typedef S16 (*LkwL2MeasReq)   ARGS((Pst *pst, KwL2MeasReqEvt *measEvt));
382 typedef S16 (*LkwL2MeasCfm)   ARGS((Pst *pst, KwL2MeasCfmEvt *measEvt));
383 typedef S16 (*LkwL2MeasSendReq)   ARGS((Pst *pst, U8 measType));
384 typedef S16 (*LkwL2MeasStopReq)   ARGS((Pst *pst, U8 measType));
385 typedef S16 (*LkwL2MeasStopCfm)   ARGS((Pst *pst, U8 measType,U8 status));
386 #endif /*  LTE_L2_MEAS */
387
388 /* Layer primitives */
389 /** @details This function processes configuration requests received from the layer manager.The configuration requests are general configuration, or configuration of RGU, KWU, and CKW 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 RLC.
390
391 @param[in] pst  - Pointer to post structure
392 @param[in] cfg  - Configuration management structure
393 @return ROK if success , RFAILED if failure
394
395 */
396 EXTERN S16 KwMiLkwCfgReq ARGS((Pst *pst, KwMngmt *cfg));
397
398 /**
399 @details This function is called by the KwMiLkwCfgReq function for responding to configuration requests.The cfm field in the KwMngmt  structure contains the response value.
400
401 @param[in] pst  - Pointer to post structure
402 @param[in] cfm  - Configuration management structure
403 @return ROK if success , RFAILED if failure
404 */
405 EXTERN S16 KwMiLkwCfgCfm ARGS((Pst *pst, KwMngmt *cfgCfm));
406
407 /**
408 @details
409 The layer manager initiates and uses the management-control procedure to control
410 RLC elements.The RLC control request primitive (KwMiLkwCntrlReq) is called
411 more than once and at any time after the management-configuration procedure.The
412 control request primitive is confirmed by a KwMiLkwCntrlCfm primitive.
413
414 @param[in] pst  - Pointer to post structure
415 @param[in] cntl - Configuration management structure
416 @return ROK if success , RFAILED if failure
417 */
418 EXTERN S16 KwMiLkwCntrlReq ARGS((Pst *pst, KwMngmt *cntl));
419
420 /**
421 @details
422 This function is called by the KwMiLkwCntrlReq function to send a control confirm to the layer management module.
423
424 @param[in] pst  - Pointer to post structure
425 @param[in] cfm  - Configuration management structure
426 @return ROK if success , RFAILED if failure
427 */
428 EXTERN S16 KwMiLkwCntrlCfm ARGS((Pst *pst, KwMngmt *cntlCfm));
429
430 /**
431 @details
432 This function processes solicited status requests received from the layer manager.The layer manager can request status information regarding the system ID, RGSA
433 P,KWSAP, or CKSAP.
434
435 @param[in] pst  - Pointer to post structure
436 @param[in] cfg  - Configuration management structure
437 @return ROK if success , RFAILED if failure
438 */
439 EXTERN S16 KwMiLkwStaReq ARGS((Pst *pst, KwMngmt *staInd));
440
441 /**
442 @details
443 This function is called by the KwMiLkwStaReq function to send the requested stat
444 us information to the layer manager.
445
446 @param[in] pst   - Pointer to post structure
447 @param[in] stacfm - Configuration management structure
448 @return ROK if success , RFAILED if failure
449 */
450 EXTERN S16 KwMiLkwStaCfm ARGS((Pst *pst, KwMngmt *staCfm));
451
452 /**
453 @details
454 This function processes statistics requests received from the layer manager. After collecting the statistics, this function calls the statistics confirm function to send the statistics to the layer manager.
455
456 @param[in] pst   - Pointer to post structure  
457 @param[in] acton - action 
458 @param[in] sts   - Configuration management structure
459 @return ROK if success , RFAILED if failure
460 */
461 EXTERN S16 KwMiLkwStsReq ARGS((Pst *pst, Action, KwMngmt *sts));
462 /**
463 @details
464 This function is called by the KwMiLkwStsReq function for responding to statisti
465 cs requests.
466
467 @param[in] pst   - Pointer to post structure
468 @param[in] action - action 
469 @param[in] cfg  - Configuration management structure
470 @return ROK if success , RFAILED if failure
471 */
472 EXTERN S16 KwMiLkwStsCfm ARGS((Pst *pst, Action action, KwMngmt *stsCfm));
473 /**
474 @details
475 This function is used by RLC module to send unsolicited trace indications to
476 the layer manager, when tracing is enabled by the layer manager through a previous control request.
477
478 @param[in] pst  - Pointer to post structure
479 @param[in] cfg  - Configuration management structure
480 @param[in] buf  - buffer 
481 @return ROK if success , RFAILED if failure
482 */
483 EXTERN S16 KwMiLkwTrcInd ARGS ((Pst *pst, KwMngmt *trc, Buffer *mBuf));
484
485 /**
486 @details This function is used by RLC to send unsolicited status information to the layer manager, when the unsolicited status flag is enabled by the layer manager through a previous control request.
487
488 @param[in] pst  - Pointer to post structure
489 @param[in] staReq - Configuration management structure
490 @return ROK if success , RFAILED if failure
491 */
492 /* lkw_x_001.main_2, added support for L2 measurement */
493 #ifdef LTE_L2_MEAS
494 /**
495 @details This function is called by the Layer Manger function to request 
496 for Measurement  responding to statisti cs requests.
497
498 @param[in] pst  - Pointer to post structure
499 @param[in] measEvt - Measurement Request structure
500 @return ROK if success , RFAILED if failure
501 */
502 EXTERN S16 KwMiLkwL2MeasReq ARGS((Pst *pst, KwL2MeasReqEvt *measEvt));
503 EXTERN S16 KwMiLkwL2MeasStopReq ARGS((Pst *pst,U8 measType));
504 EXTERN S16 KwMiLkwL2MeasSendReq ARGS((Pst *pst,U8 measType));
505 /**
506 @details This function can be used by PDCP to send the measurement values
507 after doing L2 measurement that was requested by the layer manager.
508
509 @param[in] pst  - Pointer to post structure
510 @param[in] measEvt - Measurement confirmation structure
511 @return ROK if success , RFAILED if failure
512 */
513 EXTERN S16 KwMiLkwL2MeasCfm ARGS((Pst *pst, KwL2MeasCfmEvt *measCfm));
514 EXTERN S16 KwMiLkwL2MeasStopCfm ARGS((Pst *pst, U8 measType, U8 status));
515 #endif /*  LTE_L2_MEAS */
516
517 EXTERN S16 KwMiLkwStaInd ARGS((Pst *pst, KwMngmt *staReq));
518
519 EXTERN Void kwSendLmAlarm ARGS ((
520       U16 category,
521       U16  event,
522       U16 cause,
523       SuId suId,
524       U32 ueId));
525
526 #ifdef SM
527 EXTERN S16 SmMiLkwCfgCfm   ARGS((
528        Pst *,
529        KwMngmt *
530        ));
531
532 EXTERN S16 SmMiLkwCntrlCfm ARGS((
533        Pst *,
534        KwMngmt *
535        ));
536
537 EXTERN S16 SmMiLkwStaInd   ARGS((
538        Pst *,
539        KwMngmt *
540        ));
541
542 EXTERN S16 SmMiLkwStaCfm   ARGS((
543        Pst *,
544        KwMngmt *
545        ));
546
547 EXTERN S16 SmMiLkwStsCfm   ARGS((
548        Pst *,
549        Action,
550        KwMngmt *
551        ));
552
553 EXTERN S16 SmMiLkwTrcInd   ARGS((
554        Pst *,
555        KwMngmt *,
556        Buffer *
557        ));
558
559 EXTERN S16 SmMiLkwStsReq   ARGS((
560        Pst *,
561        Action,
562        KwMngmt *
563        ));
564
565 EXTERN S16 SmMiLkwStaReq   ARGS((
566        Pst *,
567        KwMngmt *
568        ));
569
570 EXTERN S16 SmMiLkwCntrlReq ARGS((
571        Pst *,
572        KwMngmt *
573        ));
574
575 EXTERN S16 SmMiLkwCfgReq   ARGS((
576        Pst *,
577        KwMngmt *
578        ));
579
580 /* lkw_x_001.main_2, added support for L2 measurement */
581 #ifdef LTE_L2_MEAS
582 EXTERN S16 SmMiLkwL2MeasReq   ARGS((
583          Pst *,
584          KwL2MeasReqEvt *
585          ));
586 EXTERN S16 SmMiLkwL2MeasStopReq ARGS((
587        Pst            *pst,
588        U8             measType
589       ));
590
591 EXTERN S16 SmMiLkwL2MeasSendReq ARGS((
592          Pst            *pst,
593          U8             measType
594          ));
595 EXTERN S16 SmMiLkwL2MeasCfm   ARGS((
596          Pst *,
597          KwL2MeasCfmEvt *
598          ));
599 EXTERN S16 SmMiLkwL2MeasStopCfm ARGS((
600          Pst     *pst,          
601          U8      measType,
602          U8      status
603          ));
604 #endif /*  LTE_L2_MEAS */
605 #endif
606
607 EXTERN S16 smKwActvInit    ARGS((Ent ent, Inst inst, Region region, Reason reason));
608 EXTERN S16 smKwActvTsk     ARGS((Pst *pst, Buffer *mBuf));
609
610 /* pack/unpack functions */
611 #ifdef LCLKW 
612 EXTERN S16 cmPkLkwCfgReq     ARGS((
613        Pst *,
614        KwMngmt *
615        ));
616
617 EXTERN S16 cmPkLkwCfgCfm     ARGS((
618        Pst *,
619        KwMngmt *
620        ));
621
622
623 EXTERN S16 cmPkLkwCntrlReq   ARGS((
624        Pst *,
625        KwMngmt *
626        ));
627
628 EXTERN S16 cmPkLkwCntrlCfm   ARGS((
629        Pst *,
630        KwMngmt *
631        ));
632
633 EXTERN S16 cmPkLkwStaInd     ARGS((
634        Pst *,
635        KwMngmt *
636        ));
637
638 EXTERN S16 cmPkLkwStaReq     ARGS((
639        Pst *,
640        KwMngmt *
641        ));
642
643 EXTERN S16 cmPkLkwStaCfm     ARGS((
644        Pst *,
645        KwMngmt *
646        ));
647
648 EXTERN S16 cmPkLkwStsReq     ARGS((
649        Pst *,
650        Action,
651        KwMngmt *
652        ));
653
654 EXTERN S16 cmPkLkwStsCfm     ARGS((
655        Pst *,
656        Action,
657        KwMngmt *
658        ));
659
660 EXTERN S16 cmPkLkwTrcInd     ARGS((
661        Pst *,
662        KwMngmt *,
663        Buffer *
664        ));
665
666 EXTERN S16 cmUnpkLkwCfgReq   ARGS((
667        LkwCfgReq,
668        Pst *,
669        Buffer *
670        ));
671
672 EXTERN S16 cmUnpkLkwCfgCfm   ARGS((
673        LkwCfgCfm,
674        Pst *,
675        Buffer *
676        ));
677
678 EXTERN S16 cmUnpkLkwCntrlReq ARGS((
679        LkwCfgReq,
680        Pst *,
681        Buffer *
682        ));
683
684 EXTERN S16 cmUnpkLkwCntrlCfm ARGS((
685        LkwCfgCfm,
686        Pst *,
687        Buffer *
688        ));
689
690 EXTERN S16 cmUnpkLkwStaInd   ARGS((
691        LkwStaInd,
692        Pst *,
693        Buffer *
694        ));
695
696 EXTERN S16 cmUnpkLkwStaReq   ARGS((
697        LkwStaReq,
698        Pst *,
699        Buffer *
700        ));
701
702 EXTERN S16 cmUnpkLkwStaCfm   ARGS((
703        LkwStaCfm,
704        Pst *,
705        Buffer *
706        ));
707
708 EXTERN S16 cmUnpkLkwStsReq   ARGS((
709        LkwStsReq,
710        Pst *,
711        Buffer *
712        ));
713
714 EXTERN S16 cmUnpkLkwStsCfm   ARGS((
715        LkwStsCfm,
716        Pst *, Buffer *
717        ));
718
719
720 EXTERN S16 cmUnpkLkwTrcInd   ARGS((
721        LkwTrcInd,
722        Pst *,
723        Buffer *));
724
725 /* lkw_x_001.main_2, added support for L2 measurement */
726 #ifdef LTE_L2_MEAS
727 EXTERN S16 cmPkLkwL2MeasReq ARGS((
728          Pst * pst,
729          KwL2MeasReqEvt * measReqEvt
730          ));
731 EXTERN S16 cmUnpkLkwL2MeasReq ARGS((
732          LkwL2MeasReq func,
733          Pst *pst,
734          Buffer *mBuf
735          ));
736 EXTERN S16 cmPkLkwL2MeasCfm ARGS((
737          Pst * pst,
738          KwL2MeasCfmEvt *measCfmEvt
739          ));
740 EXTERN S16 cmUnpkLkwL2MeasCfm ARGS((
741          LkwL2MeasCfm func,
742          Pst *pst,
743          Buffer *mBuf
744          ));
745 EXTERN S16 cmPkKwL2MeasReqInfo ARGS((
746          KwL2MeasReqInfo * measReqInfo,
747          Buffer *mBuf
748          ));
749 EXTERN S16 cmUnpkKwL2MeasReqInfo ARGS((
750          KwL2MeasReqInfo * measReqInfo,
751          Buffer *mBuf
752          ));
753 EXTERN S16 cmPkKwL2MeasCfmInfo ARGS((
754          KwL2MeasCfmInfo * measCfmInfo,
755          Buffer *mBuf,
756          U8 measType
757          ));
758 EXTERN S16 cmUnpkKwL2MeasCfmInfo ARGS((
759          KwL2MeasCfmInfo * measCfmInfo,
760          Buffer *mBuf,
761          U8 measType
762          ));
763 EXTERN S16 cmPkLkwL2MeasStopReq ARGS((
764          Pst * pst,
765          U8 measType
766          ));
767 EXTERN S16 cmUnpkLkwL2MeasStopReq ARGS((
768          LkwL2MeasStopReq func,
769          Pst *pst,
770          Buffer *mBuf
771          ));
772 EXTERN S16 cmPkLkwL2MeasSendReq ARGS((
773          Pst * pst,
774          U8 measType
775          ));
776 EXTERN S16 cmUnpkLkwL2MeasSendReq ARGS((
777          LkwL2MeasSendReq func,
778          Pst *pst,
779          Buffer *mBuf
780          ));
781 EXTERN S16 cmPkLkwL2MeasStopCfm ARGS((
782          Pst * pst,
783          U8 measType,
784          U8 status
785          ));
786 EXTERN S16 cmUnpkLkwL2MeasStopCfm ARGS((
787          LkwL2MeasStopCfm func,
788          Pst *pst,
789          Buffer *mBuf
790          ));
791 #endif /*  LTE_L2_MEAS */
792
793 #endif
794
795 #ifdef __cplusplus
796 }
797 #endif /* __cplusplus */
798 #endif /* __LKW_X__ */
799
800 \f  
801 /********************************************************************30**
802          End of file
803 **********************************************************************/