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: NR RLC ULDL Interface
25 Desc: C source code for INF Interface Module
27 File: rlc_dl_ul_inf_ptdl.c
29 **********************************************************************/
31 /** @file rlc_dl_ul_inf_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 "rlc_err.h" /* Err defines */
41 #include "rlc_env.h" /* RLC environment options */
43 /* extern (.x) include files */
44 #include "lkw.x" /* LKW */
45 #include "ckw.x" /* CKW */
46 #include "kwu.x" /* KWU */
47 #include "rgu.x" /* RGU */
49 #include "rlc_utils.h" /* RLC defines */
50 #include "rlc_dl_ul_inf.h"
56 static S16 PtDlUdxBndCfm ARGS(( Pst *pst,SuId suId,uint8_t status ));
57 static S16 PtDlUdxCfgCfm ARGS((Pst *pst, SuId suId, RlcCfgCfmInfo *cfmInfo));
58 static S16 PtDlUdxUeIdChgCfm ARGS(( Pst *pst, SuId suId,uint32_t transId,
60 static S16 PtDlUdxStaUpdCfm ARGS(( Pst* pst,SuId suId,CmLteRlcId *rlcId,
61 RlcUdxBufLst *pBufLst));
63 /* UDX Bind Confirm primitive */
68 * Handler for confirming the bind request received from KWU
73 * This function send the bind confirm primitive to the RLC user,
74 * when it receives a bind request from its service user.
76 * @param[in] pst Post structure
77 * @param[in] suId Service user SAP ID
78 * @param[in] status Status of Confirmation
84 static S16 PtDlUdxBndCfm
86 Pst *pst, /* post structure */
87 SuId suId, /* Service User Id */
88 uint8_t status /* Status */
94 } /* end of rlcDlUdxBndCfm */
102 * Handler for confirming the bind request received from KWU
107 * This function send the bind confirm primitive to the RLC user,
108 * when it receives a bind request from its service user.
110 * @param[in] pst Post structure
111 * @param[in] suId Service user SAP ID
112 * @param[in] status Status of Confirmation
118 static S16 PtDlUdxCfgCfm
120 Pst *pst, /* post structure */
121 SuId suId, /* Service User Id */
122 RlcCfgCfmInfo *cfmInfo /* Status */
128 } /* end of rlcDlUdxBndCfm */
134 * Handler for confirming the bind request received from KWU
139 * This function send the bind confirm primitive to the RLC user,
140 * when it receives a bind request from its service user.
142 * @param[in] pst Post structure
143 * @param[in] suId Service user SAP ID
144 * @param[in] status Status of Confirmation
150 static S16 PtDlUdxUeIdChgCfm
152 Pst *pst, /* post structure */
153 SuId suId, /* Service User Id */
161 } /* end of rlcDlUdxBndCfm */
165 static S16 PtDlUdxStaUpdCfm
170 RlcUdxBufLst *pBufLst
176 static S16 PtDlUdxStaProhTmrStart
187 static UdxBndCfm rlcDlUdxBndCfmMt[UDX_MAX_SEL] =
190 cmPkUdxBndCfm, /* 0 - loosely coupled */
192 PtDlUdxBndCfm, /* 0 - loosely coupled, portable */
193 #endif /* LCKWUIKWU */
195 cmPkUdxBndCfm, /* 1 - loosely coupled */
197 PtDlUdxBndCfm, /* 1 - loosely coupled, portable */
198 #endif /* LCKWUIKWU */
200 rlcUlUdxBndCfm, /* 2 - tightly coupled, RRC */
202 PtDlUdxBndCfm, /* 2 - tightly coupled, portable */
206 UdxCfgCfm rlcDlUdxCfgCfmMt[UDX_MAX_SEL] =
209 cmPkUdxCfgCfm, /* 0 - loosely coupled */
211 PtDlUdxCfgCfm, /* 0 - loosely coupled, portable */
212 #endif /* LCKWUIKWU */
214 cmPkUdxCfgCfm, /* 1 - loosely coupled */
216 PtDlUdxCfgCfm, /* 1 - loosely coupled, portable */
217 #endif /* LCKWUIKWU */
219 rlcUlUdxCfgCfm, /* 2 - tightly coupled, RRC */
221 PtDlUdxCfgCfm, /* 2 - tightly coupled, portable */
225 UdxUeIdChgCfm rlcDlUdxUeIdChgCfmMt[UDX_MAX_SEL] =
228 cmPkUdxUeIdChgCfm, /* 0 - loosely coupled */
230 PtDlUdxUeIdChgCfm, /* 0 - loosely coupled, portable */
231 #endif /* LCKWUIKWU */
233 cmPkUdxUeIdChgCfm, /* 1 - loosely coupled */
235 PtDlUdxUeIdChgCfm, /* 1 - loosely coupled, portable */
236 #endif /* LCKWUIKWU */
238 rlcUlUdxUeIdChgCfm, /* 2 - tightly coupled, RRC */
240 PtDlUdxUeIdChgCfm, /* 2 - tightly coupled, portable */
245 static const UdxStaProhTmrStart rlcDlUdxStaProhTmrStartMt[UDX_MAX_SEL] =
248 cmPkUdxStaProhTmrStart,
250 PtDlUdxStaProhTmrStart,
253 cmPkUdxStaProhTmrStart, /* 1 - loosely coupled */
255 PtDlUdxStaProhTmrStart, /* 1 - loosely coupled, portable */
256 #endif /* LCKWUIKWU */
258 rlcUlUdxStaProhTmrStart, /* 2 - tightly coupled, RRC */
260 PtDlUdxStaProhTmrStart, /* 2 - tightly coupled, portable */
268 * Handler for confirming the bind request received from KWU
273 * This function send the bind confirm primitive to the RLC user,
274 * when it receives a bind request from its service user.
276 * @param[in] pst Post structure
277 * @param[in] suId Service user SAP ID
278 * @param[in] status Status of Confirmation
286 Pst *pst, /* post structure */
287 SuId suId, /* Service User Id */
288 uint8_t status /* Status */
292 /* jump to specific primitive depending on configured selector */
293 (*rlcDlUdxBndCfmMt[pst->selector])(pst, suId, status);
297 } /* end of rlcDlUdxBndCfm */
305 * Handler for confirming the bind request received from KWU
310 * This function send the bind confirm primitive to the RLC user,
311 * when it receives a bind request from its service user.
313 * @param[in] pst Post structure
314 * @param[in] suId Service user SAP ID
315 * @param[in] status Status of Confirmation
323 Pst *pst, /* post structure */
324 SuId suId, /* Service User Id */
325 RlcCfgCfmInfo *cfmInfo /* Status */
329 /* jump to specific primitive depending on configured selector */
330 (*rlcDlUdxCfgCfmMt[pst->selector])(pst, suId, cfmInfo);
334 } /* end of rlcDlUdxBndCfm */
340 * Handler for confirming the bind request received from KWU
345 * This function send the bind confirm primitive to the RLC user,
346 * when it receives a bind request from its service user.
348 * @param[in] pst Post structure
349 * @param[in] suId Service user SAP ID
350 * @param[in] status Status of Confirmation
356 S16 rlcDlUdxUeIdChgCfm
358 Pst *pst, /* post structure */
359 SuId suId, /* Service User Id */
365 /* jump to specific primitive depending on configured selector */
366 (*rlcDlUdxUeIdChgCfmMt[pst->selector])(pst, suId,transId,status);
370 } /* end of rlcDlUdxBndCfm */
373 uint8_t rlcDlUdxStaProhTmrStart(Pst *pst, SuId suId, CmLteRlcId *rlcId)
375 /* jump to specific primitive depending on configured selector */
376 (*rlcDlUdxStaProhTmrStartMt[pst->selector])(pst, suId, rlcId);
380 } /* end of rlcDlUdxBndCfm */
382 /**********************************************************************
385 **********************************************************************/