Initial commit
[o-du/l2.git] / src / 5gnrrlc / kw_udx_ptul.c
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  
21      Name:     LTE-RLC ULDL Interface
22   
23      Type:     C source file
24   
25      Desc:     C source code for INF Interface Module 
26   
27      File:     kw_udx_ptul.c
28   
29 **********************************************************************/
30
31 /** @file kw_udx_ptul.c
32 */
33
34 /* header include files (.h) */
35 #include "envopt.h"        /* environment options */
36 #include "envdep.h"        /* environment dependent */
37 #include "envind.h"        /* environment independent */
38
39 #include "gen.h"           /* general */
40 #include "ssi.h"           /* system services */
41 #include "cm5.h"           /* common timer defines */
42 #include "cm_tkns.h"       /* common tokens defines */
43 #include "cm_mblk.h"       /* common memory allocation library defines */
44 #include "cm_llist.h"      /* common link list  defines  */
45 #include "cm_hash.h"       /* common hash list  defines */
46 #include "cm_lte.h"        /* common LTE defines */
47 #include "lkw.h"           /* LKW defines */
48 #include "ckw.h"           /* CKW defines */
49 #include "kwu.h"           /* KWU defines */
50 #include "rgu.h"           /* RGU defines */
51 #include "kw_err.h"        /* Err defines */
52 #include "kw_env.h"        /* RLC environment options */
53
54 #include "kw.h"            /* RLC defines */
55 #include "kw_udx.h"
56 #include "kw_dl.h"
57
58 /* extern (.x) include files */
59 #include "gen.x"           /* general */
60 #include "ssi.x"           /* system services */
61
62 #include "cm5.x"           /* common timer library */
63 #include "cm_tkns.x"       /* common tokens */
64 #include "cm_mblk.x"       /* common memory allocation */
65 #include "cm_llist.x"      /* common link list */
66 #include "cm_hash.x"       /* common hash list */
67 #include "cm_lte.x"        /* common LTE includes */
68 #include "cm_lib.x"        /* common memory allocation library */
69 #include "lkw.x"           /* LKW */
70 #include "ckw.x"           /* CKW */
71 #include "kwu.x"           /* KWU */
72 #include "rgu.x"           /* RGU */
73
74 #include "kw.x"
75 #include "kw_udx.x"
76 #include "kw_dl.x"
77
78
79 #ifndef LCKWULUDX
80 PRIVATE S16 PtUlUdxBndReq ARGS((Pst* pst, SuId suId,SpId  spId ));
81 PRIVATE S16 PtUlUdxUbndReq ARGS((Pst* pst, SuId suId,Reason reason));
82 PRIVATE S16 PtUlUdxCfgReq ARGS((Pst *pst, SpId spId, CkwCfgInfo *cfgInfo));
83 PRIVATE S16 PtUlUdxStaUpdReq ARGS((Pst* pst,SpId spId,CmLteRlcId *rlcId,
84                                 KwUdxStaPdu         *pStaPdu ));
85 PRIVATE S16 PtUlUdxUeIdChgReq ARGS((Pst *pst, SpId spId, U32 transId, 
86                                    CkwUeInfo *ueInfo, CkwUeInfo *newUeInfo));
87 PRIVATE S16 PtUlUdxStaPduReq ARGS(( Pst* pst,SpId  spId, CmLteRlcId *rlcId,
88                              KwUdxDlStaPdu  *pStaPdu ));
89 #ifdef ANSI
90 PRIVATE S16 PtUlUdxBndReq
91 (
92 Pst *pst,                       /* post structure */
93 SuId suId,                      /* Service User Id */
94 SpId spId                    /* Status */
95 )
96 #else
97 PRIVATE S16 PtUlUdxBndReq(pst, suId,spId)
98 Pst *pst;                       /* post structure */
99 SuId suId;                      /* Service User Id */
100 SpId spId;                    /* Status */
101 #endif
102 {
103    TRC3(PtUlUdxBndReq)
104
105    RETVALUE(ROK);
106
107 } /* end of KwDlUdxBndReq */
108
109 /**
110  *
111  * @brief 
112  *
113  *        Handler for confirming  the bind request received from KWU
114  *        interface.
115  *
116  * @b Description:
117  *
118  *        This function send the bind confirm primitive to the RLC user,
119  *        when it receives a bind request from its service user.
120  *
121  *  @param[in] pst     Post structure  
122  *  @param[in] suId    Service user SAP ID 
123  *  @param[in] status  Status of Confirmation 
124  *
125  *  @return  S16
126  *      -# ROK 
127  *
128  */
129 #ifdef ANSI
130 PRIVATE S16 PtUlUdxUbndReq
131 (
132 Pst *pst,                       /* post structure */
133 SpId spId,                      /* Service User Id */
134 Reason   reason                     /* Status */
135 )
136 #else
137 PRIVATE S16 PtUlUdxUbndReq(pst, suId, status)
138 Pst *pst;                       /* post structure */
139 SpId spId;                      /* Service User Id */
140 Reason Reason;                    /* Status */
141 #endif
142 {
143    TRC3(PtUlUdxUbndReq)
144
145    RETVALUE(ROK);
146
147 } /* end of PtDlUdxBndReq */
148
149 #ifdef ANSI
150 PRIVATE S16 PtUlUdxCfgReq
151 (
152 Pst *pst,                       /* post structure */
153 SpId spId,                      /* Service User Id */
154 CkwCfgInfo *cfmInfo             /* Config Info */
155 )
156 #else
157 PRIVATE S16 PtUlUdxCfgReq(pst, spId, status)
158 Pst *pst;                       /* post structure */
159 SpId spId;                      /* Service User Id */
160 CkwCfgInfo *cfmInfo;              /* Config Info */
161 #endif
162 {
163    TRC3(PtUlUdxCfgReq)
164
165    RETVALUE(ROK);
166
167 } /* end of KwDlUdxCfgReq */
168
169 #ifdef ANSI
170 PRIVATE S16 PtUlUdxUeIdChgReq
171 (
172 Pst *pst,                      /* post structure */
173 SpId spId,                     /* Service User Id */
174 U32      transId,              /* transaction Id */
175 CkwUeInfo *ueInfo,             /* Config Info */
176 CkwUeInfo *newUeInfo           /* Config Info */
177 )
178 #else
179 PRIVATE S16 PtUlUdxUeIdChgReq(pst, spId,transId, ueInfo, newUeInfo)
180 Pst *pst;                      /* post structure */
181 SpId spId;                     /* Service User Id */
182 U32      transId;              /* transaction Id */
183 CkwUeInfo *ueInfo;             /* Config Info */
184 CkwUeInfo *newUeInfo;          /* Config Info */
185 #endif
186 {
187    TRC3(PtUlUdxUeIdChgReq)
188
189
190    RETVALUE(ROK);
191
192 } /* end of KwDlUdxCfgReq */
193
194
195 PRIVATE S16  PtUlUdxStaPduReq
196 (
197 Pst*                pst,
198 SpId                spId,
199 CmLteRlcId          *rlcId,
200 KwUdxDlStaPdu       *pStaPdu
201 )
202 {
203    TRC3(PtUlUdxStaPduReq);
204
205    RETVALUE(ROK);
206 }
207
208 /**
209 * @brief Request from ULM to DLM for UE Status
210 *
211 * @details
212 *
213 *     Function : KwUdxUdxStatUpd
214 *
215 *  @param[in]   Pst*           pst
216
217 *  @return   S16
218 *      -# ROK
219 **/
220 #ifdef ANSI
221 PRIVATE S16  PtUlUdxStaUpdReq
222 (
223 Pst*                pst,
224 SpId                spId,
225 CmLteRlcId          *rlcId,
226 KwUdxStaPdu       *pStaPdu
227 )
228 #else
229 PRIVATE S16 PtUlUdxStaUpdReq(pst, rlcId, pStaPdu)
230 Pst*                pst;
231 SpId                spId;
232 CmLteRlcId          *rlcId;
233 KwUdxDlStaPdu       *pStaPdu;
234 #endif
235 {
236
237    TRC3(PtUlUdxStaUpdReq);
238
239    RETVALUE(ROK);
240 } /* end of KwUlmDlmStaUpd*/
241
242 #ifdef LTE_L2_MEAS
243 /**
244 * @brief Request from ULM to DLM for Measurement
245 *
246 * @details
247 *
248 *     Function : KwUdxUdxL2MeasReq
249 *
250 *  @param[in]   Pst*           pst
251
252 *  @return   S16
253 *      -# ROK
254 **/
255 #ifdef ANSI
256 PRIVATE S16  PtUlUdxL2MeasReq
257 (
258 Pst*                pst,
259 KwL2MeasReqEvt      *measReqEvt
260 )
261 #else
262 PRIVATE S16 PtUlUdxL2MeasReq(pst, measReqEvt )
263 Pst*                pst;
264 KwL2MeasReqEvt      *measReqEvt;
265 #endif
266 {
267
268    TRC3(PtUlUdxL2MeasReq);
269
270    RETVALUE(ROK);
271
272
273 /**
274 * @brief Request from ULM to DLM for Measurement
275 *
276 * @details
277 *
278 *     Function : KwUdxUdxL2MeasSendReq
279 *
280 *  @param[in]   Pst*           pst
281
282 *  @return   S16
283 *      -# ROK
284 **/
285 #ifdef ANSI
286 PRIVATE S16  PtUlUdxL2MeasSendReq
287 (
288 Pst*                pst,
289 U8                  status
290 )
291 #else
292 PRIVATE S16 PtUlUdxL2MeasSendReq(pst, status )
293 Pst*                pst;
294 U8                  status
295 #endif
296 {
297
298    TRC3(PtUlUdxL2MeasSendReq);
299
300    RETVALUE(ROK);
301 }
302
303 /**
304 * @brief Request from ULM to DLM for Measurement
305 *
306 * @details
307 *
308 *     Function : KwUdxUdxL2MeasStopReq
309 *
310 *  @param[in]   Pst*           pst
311
312 *  @return   S16
313 *      -# ROK
314 **/
315 #ifdef ANSI
316 PRIVATE S16  PtUlUdxL2MeasStopReq
317 (
318 Pst*                pst,
319 U8                  status
320 )
321 #else
322 PRIVATE S16 PtUlUdxL2MeasStopReq(pst, status )
323 Pst*                pst;
324 U8                  status
325 #endif
326 {
327
328    TRC3(PtUlUdxL2MeasStopReq);
329
330    RETVALUE(ROK);
331 }
332 #endif
333 #endif
334
335 PRIVATE UdxBndReq kwUlUdxBndReqMt[] =
336 {
337 #ifdef LCKWULUDX
338    cmPkUdxBndReq,            /* 0 - loosely coupled */
339 #else
340    PtUlUdxBndReq,            /* 0 - loosely coupled, portable  */
341 #endif /* LCKWUIKWU */
342 #ifdef LWLCKWULUDX
343    cmPkUdxBndReq,            /* 1 - loosely coupled */
344 #else
345    PtUlUdxBndReq,            /* 1 - loosely coupled, portable  */
346 #endif /* LCKWUIKWU */
347 #ifdef KW
348    KwDlUdxBndReq,            /* 2 - tightly coupled, RRC  */
349 #else
350    PtUlUdxBndReq,            /* 2 - tightly coupled, portable */
351 #endif /* KW */
352 };
353
354 PRIVATE UdxUbndReq kwUlUdxUbndReqMt[] =
355 {
356 #ifdef LCKWULUDX
357    cmPkUdxUbndReq,            /* 0 - loosely coupled */
358 #else
359    PtUlUdxUbndReq,            /* 0 - loosely coupled, portable  */
360 #endif /* LCKWUIKWU */
361 #ifdef LWLCKWULUDX
362    cmPkUdxUbndReq,            /* 1 - loosely coupled */
363 #else
364    PtUlUdxUbndReq,            /* 1 - loosely coupled, portable  */
365 #endif /* LCKWUIKWU */
366 #ifdef KW
367    KwDlUdxUbndReq,            /* 2 - tightly coupled, RRC  */
368 #else
369    PtUlUdxUbndReq,            /* 2 - tightly coupled, portable */
370 #endif /* KW */
371 };
372
373
374 PRIVATE UdxCfgReq kwUlUdxCfgReqMt[] =
375 {
376 #ifdef LCKWULUDX
377    cmPkUdxCfgReq,            /* 0 - loosely coupled */
378 #else
379    PtUlUdxCfgReq,            /* 0 - loosely coupled, portable  */
380 #endif /* LCKWUIKWU */
381 #ifdef LWLCKWULUDX
382    cmPkUdxCfgReq,            /* 1 - loosely coupled */
383 #else
384    PtUlUdxCfgReq,            /* 1 - loosely coupled, portable  */
385 #endif /* LCKWUIKWU */
386 #ifdef KW
387    KwDlUdxCfgReq,            /* 2 - tightly coupled, RRC  */
388 #else
389    PtUlUdxCfgReq,            /* 2 - tightly coupled, portable */
390 #endif /* KW */
391 };
392
393 PRIVATE UdxUeIdChgReq kwUlUdxUeIdChgReqMt[] =
394 {
395 #ifdef LCKWULUDX
396    cmPkUdxUeIdChgReq,            /* 0 - loosely coupled */
397 #else
398    PtUlUdxUeIdChgReq,            /* 0 - loosely coupled, portable  */
399 #endif /* LCKWUIKWU */
400 #ifdef LWLCKWULUDX
401    cmPkUdxUeIdChgReq,            /* 1 - loosely coupled */
402 #else
403    PtUlUdxUeIdChgReq,            /* 1 - loosely coupled, portable  */
404 #endif /* LCKWUIKWU */
405 #ifdef KW
406    KwDlUdxUeIdChgReq,            /* 2 - tightly coupled, RRC  */
407 #else
408    PtUlUdxUeIdChgReq,            /* 2 - tightly coupled, portable */
409 #endif /* KW */
410 };
411
412
413 PRIVATE CONSTANT UdxStaUpdReq kwUlUdxStaUpdReqMt[KW_MAX_UDX] =
414 {
415 #ifdef LCKWULUDX
416    cmPkUdxStaUpdReq,            /* 0 - loosely coupled */
417 #else
418    PtUlUdxStaUpdReq,            /* 0 - loosely coupled, portable  */
419 #endif /* LCKWUIKWU */
420 #ifdef LWLCKWULUDX
421    cmPkUdxStaUpdReq,            /* 1 - loosely coupled */
422 #else
423    PtUlUdxStaUpdReq,            /* 1 - loosely coupled, portable  */
424 #endif /* LCKWUIKWU */
425 #ifdef KW
426    KwDlUdxStaUpdReq,            /* 2 - tightly coupled, RRC  */
427 #else
428    PtUlUdxStaUpdReq,            /* 2 - tightly coupled, portable */
429 #endif /* KW */
430 };
431
432 PRIVATE CONSTANT UdxStaPduReq kwUlUdxStaPduReqMt[KW_MAX_UDX] =
433 {
434 #ifdef LCKWULUDX
435    cmPkUdxStaPduReq,            /* 0 - loosely coupled */
436 #else
437    PtUlUdxStaPduReq,            /* 0 - loosely coupled, portable  */
438 #endif /* LCKWUIKWU */
439 #ifdef LWLCKWULUDX
440    cmPkUdxStaPduReq,            /* 1 - loosely coupled */
441 #else
442    PtUlUdxStaPduReq,            /* 1 - loosely coupled, portable  */
443 #endif /* LCKWUIKWU */
444 #ifdef KW
445    KwDlUdxStaPduReq,            /* 2 - tightly coupled, RRC  */
446 #else
447    PtUlUdxStaPduReq,            /* 2 - tightly coupled, portable */
448 #endif /* KW */
449 };
450 #ifdef LTE_L2_MEAS
451 PRIVATE CONSTANT UdxL2MeasReq kwUlUdxL2MeasReqMt[KW_MAX_UDX] =
452 {
453 #ifdef LCKWULUDX
454    cmPkUdxL2MeasReq,            /* 0 - loosely coupled */
455 #else
456    PtUlUdxL2MeasReq,            /* 0 - loosely coupled, portable  */
457 #endif /* LCKWUIKWU */
458 #ifdef LWLCKWULUDX
459    cmPkUdxL2MeasReq,            /* 1 - loosely coupled */
460 #else
461    PtUlUdxL2MeasReq,            /* 1 - loosely coupled, portable  */
462 #endif /* LCKWUIKWU */
463 #ifdef KW
464    KwDlUdxL2MeasReq,            /* 2 - tightly coupled, RRC  */
465 #else
466    PtUlUdxL2MeasReq,            /* 2 - tightly coupled, portable */
467 #endif /* KW */
468 };
469
470 PRIVATE CONSTANT UdxL2MeasSendReq kwUlUdxL2MeasSendReqMt[KW_MAX_UDX] =
471 {
472 #ifdef LCKWULUDX
473    cmPkUdxL2MeasSendReq,            /* 0 - loosely coupled */
474 #else
475    PtUlUdxL2MeasSendReq,            /* 0 - loosely coupled, portable  */
476 #endif /* LCKWUIKWU */
477 #ifdef LWLCKWULUDX
478    cmPkUdxL2MeasSendReq,            /* 1 - loosely coupled */
479 #else
480    PtUlUdxL2MeasSendReq,            /* 1 - loosely coupled, portable  */
481 #endif /* LCKWUIKWU */
482 #ifdef KW
483    KwDlUdxL2MeasSendReq,            /* 2 - tightly coupled, RRC  */
484 #else
485    PtUlUdxL2MeasSendReq,            /* 2 - tightly coupled, portable */
486 #endif /* KW */
487 };
488
489 PRIVATE CONSTANT UdxL2MeasStopReq kwUlUdxL2MeasStopReqMt[KW_MAX_UDX] =
490 {
491 #ifdef LCKWULUDX
492    cmPkUdxL2MeasStopReq,            /* 0 - loosely coupled */
493 #else
494    PtUlUdxL2MeasStopReq,            /* 0 - loosely coupled, portable  */
495 #endif /* LCKWUIKWU */
496 #ifdef LWLCKWULUDX
497    cmPkUdxL2MeasStopReq,            /* 1 - loosely coupled */
498 #else
499    PtUlUdxL2MeasStopReq,            /* 1 - loosely coupled, portable  */
500 #endif /* LCKWUIKWU */
501 #ifdef KW
502    KwDlUdxL2MeasStopReq,            /* 2 - tightly coupled, RRC  */
503 #else
504    PtUlUdxL2MeasStopReq,            /* 2 - tightly coupled, portable */
505 #endif /* KW */
506 };
507 #endif
508 /**
509  *
510  * @brief 
511  *
512  *        Handler for confirming  the bind request received from KWU
513  *        interface.
514  *
515  * @b Description:
516  *
517  *        This function send the bind confirm primitive to the RLC user,
518  *        when it receives a bind request from its service user.
519  *
520  *  @param[in] pst     Post structure  
521  *  @param[in] suId    Service user SAP ID 
522  *  @param[in] status  Status of Confirmation 
523  *
524  *  @return  S16
525  *      -# ROK 
526  *
527  */
528 #ifdef ANSI
529 PUBLIC S16 KwUlUdxBndReq
530 (
531 Pst *pst,                       /* post structure */
532 SuId suId,                      /* Service User Id */
533 SpId spId                     /* Status */
534 )
535 #else
536 PUBLIC S16 KwUlUdxBndReq(pst, suId, status)
537 Pst *pst;                       /* post structure */
538 SuId suId;                      /* Service User Id */
539 SpId spId;                    /* Status */
540 #endif
541 {
542    TRC3(KwUlUdxBndReq)
543
544    /* jump to specific primitive depending on configured selector */
545    (*kwUlUdxBndReqMt[pst->selector])(pst, suId, spId);
546
547    RETVALUE(ROK);
548
549 } /* end of KwDlUdxBndReq */
550
551 /**
552  *
553  * @brief 
554  *
555  *        Handler for confirming  the bind request received from KWU
556  *        interface.
557  *
558  * @b Description:
559  *
560  *        This function send the bind confirm primitive to the RLC user,
561  *        when it receives a bind request from its service user.
562  *
563  *  @param[in] pst     Post structure  
564  *  @param[in] suId    Service user SAP ID 
565  *  @param[in] status  Status of Confirmation 
566  *
567  *  @return  S16
568  *      -# ROK 
569  *
570  */
571 #ifdef ANSI
572 PUBLIC S16 KwUlUdxUbndReq
573 (
574 Pst *pst,                       /* post structure */
575 SpId spId,                      /* Service User Id */
576 Reason   reason                     /* Status */
577 )
578 #else
579 PUBLIC S16 KwUlUdxUbndReq(pst, suId, status)
580 Pst *pst;                       /* post structure */
581 SpId spId;                      /* Service User Id */
582 Reason Reason;                    /* Status */
583 #endif
584 {
585    TRC3(KwUlUdxUbndReq)
586
587    /* jump to specific primitive depending on configured selector */
588    (*kwUlUdxUbndReqMt[pst->selector])(pst, spId,reason );
589
590    RETVALUE(ROK);
591
592 } /* end of KwDlUdxBndReq */
593
594 #ifdef ANSI
595 PUBLIC S16 KwUlUdxCfgReq
596 (
597 Pst *pst,                       /* post structure */
598 SpId spId,                      /* Service User Id */
599 CkwCfgInfo *cfmInfo             /* Config Info */
600 )
601 #else
602 PUBLIC S16 KwUlUdxCfgReq(pst, suId, status)
603 Pst *pst;                       /* post structure */
604 SuId spId;                      /* Service User Id */
605 CkwCfgInfo *cfmInfo;              /* Config Info */
606 #endif
607 {
608    TRC3(KwUlUdxCfgReq)
609
610    /* jump to specific primitive depending on configured selector */
611    (*kwUlUdxCfgReqMt[pst->selector])(pst, spId, cfmInfo);
612
613    RETVALUE(ROK);
614
615 } /* end of KwDlUdxCfgReq */
616
617 #ifdef ANSI
618 PUBLIC S16 KwUlUdxUeIdChgReq
619 (
620 Pst *pst,                      /* post structure */
621 SpId spId,                     /* Service User Id */
622 U32      transId,              /* transaction Id */
623 CkwUeInfo *ueInfo,             /* Config Info */
624 CkwUeInfo *newUeInfo           /* Config Info */
625 )
626 #else
627 PUBLIC S16 KwUlUdxUeIdChgReq(pst, spId,transId, ueInfo, newUeInfo)
628 Pst *pst;                      /* post structure */
629 SpId spId;                     /* Service User Id */
630 U32      transId;              /* transaction Id */
631 CkwUeInfo *ueInfo;             /* Config Info */
632 CkwUeInfo *newUeInfo;          /* Config Info */
633 #endif
634 {
635    TRC3(KwUlUdxUeIdChgReq)
636
637    /* jump to specific primitive depending on configured selector */
638    (*kwUlUdxUeIdChgReqMt[pst->selector])(pst, spId,transId,ueInfo,newUeInfo);
639
640    RETVALUE(ROK);
641
642 } /* end of KwDlUdxCfgReq */
643
644
645
646 PUBLIC S16  KwUlUdxStaPduReq
647 (
648 Pst*                pst,
649 SpId                spId,
650 CmLteRlcId          *rlcId,
651 KwUdxDlStaPdu       *pStaPdu
652 )
653 {
654    TRC3(KwUlUdxStaPduReq);
655
656    RETVALUE((*kwUlUdxStaPduReqMt[pst->selector])(pst,spId, rlcId, pStaPdu));
657 }
658
659 /**
660 * @brief Request from ULM to DLM for UE Status
661 *
662 * @details
663 *
664 *     Function : KwUdxUdxStatUpd
665 *
666 *  @param[in]   Pst*           pst
667
668 *  @return   S16
669 *      -# ROK
670 **/
671 #ifdef ANSI
672 PUBLIC S16  KwUlUdxStaUpdReq
673 (
674 Pst*                pst,
675 SpId                spId,
676 CmLteRlcId          *rlcId,
677 KwUdxStaPdu         *pStaPdu
678 )
679 #else
680 PUBLIC S16 KwUlUdxStaUpdReq(pst, rlcId, pStaPdu)
681 Pst*                pst;
682 SpId                spId;
683 CmLteRlcId          *rlcId;
684 KwUdxStaPdu         *pStaPdu;
685 #endif
686 {
687
688    TRC3(KwUlUdxStaUpdReq);
689
690    RETVALUE((*kwUlUdxStaUpdReqMt[pst->selector])(pst,spId, rlcId, pStaPdu));
691 } /* end of KwUlmDlmStaUpd*/
692
693 #ifdef LTE_L2_MEAS
694 /**
695 * @brief Request from ULM to DLM for MeasReq 
696 *
697 * @details
698 *
699 *     Function : KwUlUdxL2MeasReq
700 *
701 *  @param[in]   Pst*           pst
702
703 *  @return   S16
704 *      -# ROK
705 **/
706 #ifdef ANSI
707 PUBLIC S16  KwUlUdxL2MeasReq
708 (
709 Pst*                pst,
710 KwL2MeasReqEvt      *measReqEvt 
711 )
712 #else
713 PUBLIC S16 KwUlUdxL2MeasReq(pst,measReqEvt)
714 Pst*                pst;
715 KwL2MeasReqEvt      *measReqEvt; 
716 #endif
717 {
718
719    TRC3(KwUlUdxStaUpdReq);
720
721    RETVALUE((*kwUlUdxL2MeasReqMt[pst->selector])(pst,measReqEvt));
722 } /* end of KwUlUdxL2MeasReq*/
723
724 /**
725 * @brief Request from ULM to DLM for MeasSendReq 
726 *
727 * @details
728 *
729 *     Function : KwUlUdxMeasSendReq
730 *
731 *  @param[in]   Pst*           pst
732
733 *  @return   S16
734 *      -# ROK
735 **/
736 #ifdef ANSI
737 PUBLIC S16  KwUlUdxL2MeasSendReq
738 (
739 Pst*                pst,
740 U8                  measType
741 )
742 #else
743 PUBLIC S16 KwUlUdxL2MeasSendReq(pst,measReqEvt)
744 Pst*                pst;
745 U8                  measType;
746 #endif
747 {
748
749    TRC3(KwUlUdxStaUpdReq);
750
751    RETVALUE((*kwUlUdxL2MeasSendReqMt[pst->selector])(pst,measType));
752 } /* end of KwUlUdxMesReq*/
753
754 /**
755 * @brief Request from ULM to DLM for MeasStopReq 
756 *
757 * @details
758 *
759 *     Function : KwUlUdxL2MeasStopReq
760 *
761 *  @param[in]   Pst*           pst
762
763 *  @return   S16
764 *      -# ROK
765 **/
766 #ifdef ANSI
767 PUBLIC S16  KwUlUdxL2MeasStopReq
768 (
769 Pst*                pst,
770 U8                  measType
771 )
772 #else
773 PUBLIC S16 KwUlUdxL2MeasStopReq(pst,measReqEvt)
774 Pst*                pst;
775 U8                  measType;
776 #endif
777 {
778
779    TRC3(KwUlUdxStaUpdReq);
780
781    RETVALUE((*kwUlUdxL2MeasStopReqMt[pst->selector])(pst,measType));
782 } /* end of KwUlUdxMesReq*/
783 #endif
784 /**********************************************************************
785  
786          End of file
787 **********************************************************************/