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 "common_def.h"
36 #include "lkw.h" /* LKW defines */
37 #include "ckw.h" /* CKW defines */
38 #include "kwu.h" /* KWU defines */
39 #include "rgu.h" /* RGU defines */
40 #include "kw_err.h" /* Err defines */
41 #include "kw_env.h" /* RLC environment options */
43 #include "kw.h" /* RLC defines */
48 /* extern (.x) include files */
49 #include "lkw.x" /* LKW */
50 #include "ckw.x" /* CKW */
51 #include "kwu.x" /* KWU */
52 #include "rgu.x" /* RGU */
62 static S16 PtDlUdxBndCfm ARGS(( Pst *pst,SuId suId,uint8_t status ));
63 static S16 PtDlUdxCfgCfm ARGS((Pst *pst, SuId suId, RlcCfgCfmInfo *cfmInfo));
64 static S16 PtDlUdxUeIdChgCfm ARGS(( Pst *pst, SuId suId,uint32_t transId,
66 static S16 PtDlUdxStaUpdCfm ARGS(( Pst* pst,SuId suId,CmLteRlcId *rlcId,
67 RlcUdxBufLst *pBufLst));
69 /* UDX Bind Confirm primitive */
74 * Handler for confirming the bind request received from KWU
79 * This function send the bind confirm primitive to the RLC user,
80 * when it receives a bind request from its service user.
82 * @param[in] pst Post structure
83 * @param[in] suId Service user SAP ID
84 * @param[in] status Status of Confirmation
90 static S16 PtDlUdxBndCfm
92 Pst *pst, /* post structure */
93 SuId suId, /* Service User Id */
94 uint8_t status /* Status */
100 } /* end of rlcDlUdxBndCfm */
108 * Handler for confirming the bind request received from KWU
113 * This function send the bind confirm primitive to the RLC user,
114 * when it receives a bind request from its service user.
116 * @param[in] pst Post structure
117 * @param[in] suId Service user SAP ID
118 * @param[in] status Status of Confirmation
124 static S16 PtDlUdxCfgCfm
126 Pst *pst, /* post structure */
127 SuId suId, /* Service User Id */
128 RlcCfgCfmInfo *cfmInfo /* Status */
134 } /* end of rlcDlUdxBndCfm */
140 * Handler for confirming the bind request received from KWU
145 * This function send the bind confirm primitive to the RLC user,
146 * when it receives a bind request from its service user.
148 * @param[in] pst Post structure
149 * @param[in] suId Service user SAP ID
150 * @param[in] status Status of Confirmation
156 static S16 PtDlUdxUeIdChgCfm
158 Pst *pst, /* post structure */
159 SuId suId, /* Service User Id */
167 } /* end of rlcDlUdxBndCfm */
171 static S16 PtDlUdxStaUpdCfm
176 RlcUdxBufLst *pBufLst
182 static S16 PtDlUdxStaProhTmrStart
193 static UdxBndCfm rlcDlUdxBndCfmMt[UDX_MAX_SEL] =
196 cmPkUdxBndCfm, /* 0 - loosely coupled */
198 PtDlUdxBndCfm, /* 0 - loosely coupled, portable */
199 #endif /* LCKWUIKWU */
201 cmPkUdxBndCfm, /* 1 - loosely coupled */
203 PtDlUdxBndCfm, /* 1 - loosely coupled, portable */
204 #endif /* LCKWUIKWU */
206 rlcUlUdxBndCfm, /* 2 - tightly coupled, RRC */
208 PtDlUdxBndCfm, /* 2 - tightly coupled, portable */
212 UdxCfgCfm rlcDlUdxCfgCfmMt[UDX_MAX_SEL] =
215 cmPkUdxCfgCfm, /* 0 - loosely coupled */
217 PtDlUdxCfgCfm, /* 0 - loosely coupled, portable */
218 #endif /* LCKWUIKWU */
220 cmPkUdxCfgCfm, /* 1 - loosely coupled */
222 PtDlUdxCfgCfm, /* 1 - loosely coupled, portable */
223 #endif /* LCKWUIKWU */
225 rlcUlUdxCfgCfm, /* 2 - tightly coupled, RRC */
227 PtDlUdxCfgCfm, /* 2 - tightly coupled, portable */
231 UdxUeIdChgCfm rlcDlUdxUeIdChgCfmMt[UDX_MAX_SEL] =
234 cmPkUdxUeIdChgCfm, /* 0 - loosely coupled */
236 PtDlUdxUeIdChgCfm, /* 0 - loosely coupled, portable */
237 #endif /* LCKWUIKWU */
239 cmPkUdxUeIdChgCfm, /* 1 - loosely coupled */
241 PtDlUdxUeIdChgCfm, /* 1 - loosely coupled, portable */
242 #endif /* LCKWUIKWU */
244 rlcUlUdxUeIdChgCfm, /* 2 - tightly coupled, RRC */
246 PtDlUdxUeIdChgCfm, /* 2 - tightly coupled, portable */
251 static const UdxStaProhTmrStart rlcDlUdxStaProhTmrStartMt[UDX_MAX_SEL] =
254 cmPkUdxStaProhTmrStart,
256 PtDlUdxStaProhTmrStart,
259 cmPkUdxStaProhTmrStart, /* 1 - loosely coupled */
261 PtDlUdxStaProhTmrStart, /* 1 - loosely coupled, portable */
262 #endif /* LCKWUIKWU */
264 rlcUlUdxStaProhTmrStart, /* 2 - tightly coupled, RRC */
266 PtDlUdxStaProhTmrStart, /* 2 - tightly coupled, portable */
274 * Handler for confirming the bind request received from KWU
279 * This function send the bind confirm primitive to the RLC user,
280 * when it receives a bind request from its service user.
282 * @param[in] pst Post structure
283 * @param[in] suId Service user SAP ID
284 * @param[in] status Status of Confirmation
292 Pst *pst, /* post structure */
293 SuId suId, /* Service User Id */
294 uint8_t status /* Status */
298 /* jump to specific primitive depending on configured selector */
299 (*rlcDlUdxBndCfmMt[pst->selector])(pst, suId, status);
303 } /* end of rlcDlUdxBndCfm */
311 * Handler for confirming the bind request received from KWU
316 * This function send the bind confirm primitive to the RLC user,
317 * when it receives a bind request from its service user.
319 * @param[in] pst Post structure
320 * @param[in] suId Service user SAP ID
321 * @param[in] status Status of Confirmation
329 Pst *pst, /* post structure */
330 SuId suId, /* Service User Id */
331 RlcCfgCfmInfo *cfmInfo /* Status */
335 /* jump to specific primitive depending on configured selector */
336 (*rlcDlUdxCfgCfmMt[pst->selector])(pst, suId, cfmInfo);
340 } /* end of rlcDlUdxBndCfm */
346 * Handler for confirming the bind request received from KWU
351 * This function send the bind confirm primitive to the RLC user,
352 * when it receives a bind request from its service user.
354 * @param[in] pst Post structure
355 * @param[in] suId Service user SAP ID
356 * @param[in] status Status of Confirmation
362 S16 rlcDlUdxUeIdChgCfm
364 Pst *pst, /* post structure */
365 SuId suId, /* Service User Id */
371 /* jump to specific primitive depending on configured selector */
372 (*rlcDlUdxUeIdChgCfmMt[pst->selector])(pst, suId,transId,status);
376 } /* end of rlcDlUdxBndCfm */
379 uint8_t rlcDlUdxStaProhTmrStart(Pst *pst, SuId suId, CmLteRlcId *rlcId)
381 /* jump to specific primitive depending on configured selector */
382 (*rlcDlUdxStaProhTmrStartMt[pst->selector])(pst, suId, rlcId);
386 } /* end of rlcDlUdxBndCfm */
388 /**********************************************************************
391 **********************************************************************/