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 /************************************************************************
21 Name: LTE-RLC ULDL Interface
25 Desc: C source code for INF Interface Module
29 **********************************************************************/
31 /** @file kw_udx_ptdl.c
34 /* header include files (.h) */
35 #include "envopt.h" /* environment options */
36 #include "envdep.h" /* environment dependent */
37 #include "envind.h" /* environment independent */
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 */
54 #include "kw.h" /* RLC defines */
59 /* extern (.x) include files */
60 #include "gen.x" /* general */
61 #include "ssi.x" /* system services */
63 #include "cm5.x" /* common timer library */
64 #include "cm_tkns.x" /* common tokens */
65 #include "cm_mblk.x" /* common memory allocation */
66 #include "cm_llist.x" /* common link list */
67 #include "cm_hash.x" /* common hash list */
68 #include "cm_lte.x" /* common LTE includes */
69 #include "cm_lib.x" /* common memory allocation library */
70 #include "lkw.x" /* LKW */
71 #include "ckw.x" /* CKW */
72 #include "kwu.x" /* KWU */
73 #include "rgu.x" /* RGU */
83 PRIVATE S16 PtDlUdxBndCfm ARGS(( Pst *pst,SuId suId,U8 status ));
84 PRIVATE S16 PtDlUdxCfgCfm ARGS((Pst *pst, SuId suId, CkwCfgCfmInfo *cfmInfo));
85 PRIVATE S16 PtDlUdxUeIdChgCfm ARGS(( Pst *pst, SuId suId,U32 transId,
87 PRIVATE S16 PtDlUdxStaUpdCfm ARGS(( Pst* pst,SuId suId,CmLteRlcId *rlcId,
88 KwUdxBufLst *pBufLst));
90 /* UDX Bind Confirm primitive */
95 * Handler for confirming the bind request received from KWU
100 * This function send the bind confirm primitive to the RLC user,
101 * when it receives a bind request from its service user.
103 * @param[in] pst Post structure
104 * @param[in] suId Service user SAP ID
105 * @param[in] status Status of Confirmation
112 PRIVATE S16 PtDlUdxBndCfm
114 Pst *pst, /* post structure */
115 SuId suId, /* Service User Id */
116 U8 status /* Status */
119 PRIVATE S16 PtDlUdxBndCfm(pst, suId, status)
120 Pst *pst; /* post structure */
121 SuId suId; /* Service User Id */
122 U8 status; /* Status */
129 } /* end of KwDlUdxBndCfm */
137 * Handler for confirming the bind request received from KWU
142 * This function send the bind confirm primitive to the RLC user,
143 * when it receives a bind request from its service user.
145 * @param[in] pst Post structure
146 * @param[in] suId Service user SAP ID
147 * @param[in] status Status of Confirmation
154 PRIVATE S16 PtDlUdxCfgCfm
156 Pst *pst, /* post structure */
157 SuId suId, /* Service User Id */
158 CkwCfgCfmInfo *cfmInfo /* Status */
161 PRIVATE S16 PtDlUdxCfgCfm(pst, suId, status)
162 Pst *pst; /* post structure */
163 SuId suId; /* Service User Id */
164 CkwCfgCfmInfo *cfmInfo; /* Status */
171 } /* end of KwDlUdxBndCfm */
177 * Handler for confirming the bind request received from KWU
182 * This function send the bind confirm primitive to the RLC user,
183 * when it receives a bind request from its service user.
185 * @param[in] pst Post structure
186 * @param[in] suId Service user SAP ID
187 * @param[in] status Status of Confirmation
194 PRIVATE S16 PtDlUdxUeIdChgCfm
196 Pst *pst, /* post structure */
197 SuId suId, /* Service User Id */
202 PRIVATE S16 PtDlUdxUeIdChgCfm(pst, suId, status)
203 Pst *pst; /* post structure */
204 SuId suId; /* Service User Id */
209 TRC3(PtDlUdxUeIdChgCfm)
213 } /* end of KwDlUdxBndCfm */
217 PRIVATE S16 PtDlUdxStaUpdCfm
225 TRC3(PtDlUdxStaUpdCfm);
229 PRIVATE S16 PtDlUdxStaProhTmrStart
236 TRC3(PtDlUdxStaProhTmrStart);
241 PRIVATE UdxBndCfm kwDlUdxBndCfmMt[UDX_MAX_SEL] =
244 cmPkUdxBndCfm, /* 0 - loosely coupled */
246 PtDlUdxBndCfm, /* 0 - loosely coupled, portable */
247 #endif /* LCKWUIKWU */
249 cmPkUdxBndCfm, /* 1 - loosely coupled */
251 PtDlUdxBndCfm, /* 1 - loosely coupled, portable */
252 #endif /* LCKWUIKWU */
254 KwUlUdxBndCfm, /* 2 - tightly coupled, RRC */
256 PtDlUdxBndCfm, /* 2 - tightly coupled, portable */
260 PUBLIC UdxCfgCfm kwDlUdxCfgCfmMt[UDX_MAX_SEL] =
263 cmPkUdxCfgCfm, /* 0 - loosely coupled */
265 PtDlUdxCfgCfm, /* 0 - loosely coupled, portable */
266 #endif /* LCKWUIKWU */
268 cmPkUdxCfgCfm, /* 1 - loosely coupled */
270 PtDlUdxCfgCfm, /* 1 - loosely coupled, portable */
271 #endif /* LCKWUIKWU */
273 KwUlUdxCfgCfm, /* 2 - tightly coupled, RRC */
275 PtDlUdxCfgCfm, /* 2 - tightly coupled, portable */
279 PUBLIC UdxUeIdChgCfm kwDlUdxUeIdChgCfmMt[UDX_MAX_SEL] =
282 cmPkUdxUeIdChgCfm, /* 0 - loosely coupled */
284 PtDlUdxUeIdChgCfm, /* 0 - loosely coupled, portable */
285 #endif /* LCKWUIKWU */
287 cmPkUdxUeIdChgCfm, /* 1 - loosely coupled */
289 PtDlUdxUeIdChgCfm, /* 1 - loosely coupled, portable */
290 #endif /* LCKWUIKWU */
292 KwUlUdxUeIdChgCfm, /* 2 - tightly coupled, RRC */
294 PtDlUdxUeIdChgCfm, /* 2 - tightly coupled, portable */
299 PRIVATE CONSTANT UdxStaProhTmrStart KwDlUdxStaProhTmrStartMt[UDX_MAX_SEL] =
302 cmPkUdxStaProhTmrStart,
304 PtDlUdxStaProhTmrStart,
307 cmPkUdxStaProhTmrStart, /* 1 - loosely coupled */
309 PtDlUdxStaProhTmrStart, /* 1 - loosely coupled, portable */
310 #endif /* LCKWUIKWU */
312 KwUlUdxStaProhTmrStart, /* 2 - tightly coupled, RRC */
314 PtDlUdxStaProhTmrStart, /* 2 - tightly coupled, portable */
322 * Handler for confirming the bind request received from KWU
327 * This function send the bind confirm primitive to the RLC user,
328 * when it receives a bind request from its service user.
330 * @param[in] pst Post structure
331 * @param[in] suId Service user SAP ID
332 * @param[in] status Status of Confirmation
339 PUBLIC S16 KwDlUdxBndCfm
341 Pst *pst, /* post structure */
342 SuId suId, /* Service User Id */
343 U8 status /* Status */
346 PUBLIC S16 KwDlUdxBndCfm(pst, suId, status)
347 Pst *pst; /* post structure */
348 SuId suId; /* Service User Id */
349 U8 status; /* Status */
354 /* jump to specific primitive depending on configured selector */
355 (*kwDlUdxBndCfmMt[pst->selector])(pst, suId, status);
359 } /* end of KwDlUdxBndCfm */
367 * Handler for confirming the bind request received from KWU
372 * This function send the bind confirm primitive to the RLC user,
373 * when it receives a bind request from its service user.
375 * @param[in] pst Post structure
376 * @param[in] suId Service user SAP ID
377 * @param[in] status Status of Confirmation
384 PUBLIC S16 KwDlUdxCfgCfm
386 Pst *pst, /* post structure */
387 SuId suId, /* Service User Id */
388 CkwCfgCfmInfo *cfmInfo /* Status */
391 PUBLIC S16 KwDlUdxCfgCfm(pst, suId, status)
392 Pst *pst; /* post structure */
393 SuId suId; /* Service User Id */
394 CkwCfgCfmInfo *cfmInfo; /* Status */
399 /* jump to specific primitive depending on configured selector */
400 (*kwDlUdxCfgCfmMt[pst->selector])(pst, suId, cfmInfo);
404 } /* end of KwDlUdxBndCfm */
410 * Handler for confirming the bind request received from KWU
415 * This function send the bind confirm primitive to the RLC user,
416 * when it receives a bind request from its service user.
418 * @param[in] pst Post structure
419 * @param[in] suId Service user SAP ID
420 * @param[in] status Status of Confirmation
427 PUBLIC S16 KwDlUdxUeIdChgCfm
429 Pst *pst, /* post structure */
430 SuId suId, /* Service User Id */
435 PUBLIC S16 KwDlUdxUeIdChgCfm(pst, suId, status)
436 Pst *pst; /* post structure */
437 SuId suId; /* Service User Id */
442 TRC3(KwDlUdxUeIdChgCfm)
444 /* jump to specific primitive depending on configured selector */
445 (*kwDlUdxUeIdChgCfmMt[pst->selector])(pst, suId,transId,status);
449 } /* end of KwDlUdxBndCfm */
454 PUBLIC S16 KwDlUdxStaProhTmrStart
456 Pst *pst, /* post structure */
457 SuId suId, /* Service User Id */
461 PUBLIC S16 KwDlUdxStaProhTmrStart(pst, suId, rlcId)
462 Pst *pst; /* post structure */
463 SuId suId; /* Service User Id */
467 TRC3(KwDlUdxStaProhTmrStart)
469 /* jump to specific primitive depending on configured selector */
470 (*KwDlUdxStaProhTmrStartMt[pst->selector])(pst, suId, rlcId);
474 } /* end of KwDlUdxBndCfm */
476 /**********************************************************************
479 **********************************************************************/