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 /************************************************************************
25 Desc: C source code file for SPS related functions which are
30 **********************************************************************/
31 /* header include files -- defines (.h) */
32 #include "common_def.h"
38 #include "rg_sch_inf.h"
40 #include "rg_sch_err.h"
41 #include "rg_sch_cmn.h"
43 /* header/extern include files (.x) */
44 #include "tfu.x" /* TFU types */
45 #include "lrg.x" /* layer management typedefs for MAC */
46 #include "rgr.x" /* layer management typedefs for MAC */
47 #include "rgm.x" /* layer management typedefs for MAC */
48 #include "rg_sch_inf.x" /* typedefs for Scheduler */
49 #include "rg_sch.x" /* typedefs for Scheduler */
50 #include "rg_sch_cmn.x"
53 *@brief Initializes the SPS related global data structures
56 * Function : rgSCHCmnSpsInit
63 PUBLIC Void rgSCHCmnSpsInit
67 PUBLIC Void rgSCHCmnSpsInit ()
70 TRC2(rgSCHCmnSpsInit);
76 *@brief Initializes UE with SPS info
79 * Function : rgSCHCmnSpsUeCfg
86 PUBLIC S16 rgSCHCmnSpsUeCfg
94 PUBLIC S16 rgSCHCmnSpsUeCfg (cell, ue, ueCfg, err)
102 TRC2(rgSCHCmnSpsUeCfg);
108 *@brief Re-Initializes UE with SPS info
111 * Function : rgSCHCmnSpsUeReCfg
118 PUBLIC S16 rgSCHCmnSpsUeRecfg
126 PUBLIC S16 rgSCHCmnSpsUeRecfg (cell, ue, ueCfg, err)
134 TRC2(rgSCHCmnSpsUeRecfg);
140 *@brief Clears the UE of SPS info
143 * Function : rgSCHCmnSpsUeDel
150 PUBLIC Void rgSCHCmnSpsUeDel
156 PUBLIC Void rgSCHCmnSpsUeDel (cell, ue)
162 TRC2(rgSCHCmnSpsUeDel);
167 *@brief Validates cell config for SPS
170 * Function : rgSCHCmnSpsCellCfg
177 PUBLIC S16 rgSCHCmnSpsCellCfg
184 PUBLIC S16 rgSCHCmnSpsCellCfg(cell, cellCfg, err)
191 TRC2(rgSCHCmnSpsCellCfg);
196 *@brief Deletes cell config for SPS
199 * Function : rgSCHCmnSpsCellDel
206 PUBLIC Void rgSCHCmnSpsCellDel
211 PUBLIC Void rgSCHCmnSpsCellDel (cell)
216 TRC2(rgSCHCmnSpsCellDel);
221 *@brief Configures DL LC for SPS
224 * Function :rgSCHCmnSpsDlLcCfg
231 PUBLIC S16 rgSCHCmnSpsDlLcCfg
240 PUBLIC S16 rgSCHCmnSpsDlLcCfg(cell, ue, dlLc, lcCfg, err)
249 TRC2(rgSCHCmnSpsDlLcCfg);
253 Void rgSchCmnDlSfHqDel
259 TRC2(rgSchCmnDlSfHqDel);
263 S16 rgSCHCmnSpsDlLcRecfg ARGS((
267 RgrLchRecfg *lcRecfg,
272 TRC2(rgSCHCmnSpsDlLcRecfg);
276 Void rgSCHCmnSpsUlLcgDel ARGS((
282 TRC2(rgSCHCmnSpsUlLcgDel);
286 Void rgSCHCmnSpsDlLcDel ARGS((
292 TRC2(rgSCHCmnSpsUlLcgDel);
296 S16 rgSCHCmnSpsUlTti ARGS((
298 RgSchCmnUlRbAllocInfo *allocInfo
302 TRC2(rgSCHCmnSpsUlTti);
306 Void rgSCHCmnSpsDlDedBoUpd ARGS((
313 TRC2(rgSCHCmnSpsDlDedBoUpd);
317 Void rgSCHCmnSpsDlProcAddToRetx ARGS((
323 TRC2(rgSCHCmnSpsDlProcAddToRetx);
327 Void rgSCHCmnSpsDlCqiIndHndlr ARGS((
330 CmLteTimingInfo timingInfo
334 TRC2(rgSCHCmnSpsDlCqiIndHndlr);
338 S16 rgSCHCmnSpsUlCqiInd ARGS((
344 TRC2(rgSCHCmnSpsUlCqiInd);
348 S16 rgSCHCmnSpsBsrRpt ARGS((
355 TRC2(rgSCHCmnSpsBsrRpt);
359 Void rgSCHCmnSpsPhrInd ARGS((
365 TRC2(rgSCHCmnSpsPhrInd);
369 Void rgSCHCmnSpsDlRelPdcchFbk ARGS((
376 TRC2(rgSCHCmnSpsDlRelPdcchFbk);
380 Void rgSCHCmnSpsDlProcAck ARGS((
386 TRC2(rgSCHCmnSpsDlProcAck);
390 Void rgSCHCmnSpsDlUeReset ARGS((
396 TRC2(rgSCHCmnSpsDlUeReset);
400 Void rgSCHCmnSpsUlUeReset ARGS((
406 TRC2(rgSCHCmnSpsUlUeReset);
410 Void rgSCHCmnSpsUlProcRelInd ARGS((
417 TRC2(rgSCHCmnSpsUlProcRelInd);
421 Void rgSCHCmnSpsUlProcActInd ARGS((
428 TRC2(rgSCHCmnSpsUlProcActInd);
432 S16 rgSCHCmnSpsUlProcCrcInd ARGS((
435 CmLteTimingInfo crcTime
439 TRC2(rgSCHCmnSpsUlProcActInd);
443 S16 rgSCHCmnSpsUlProcDtxInd ARGS((
446 CmLteTimingInfo dtxTime
450 TRC2(rgSCHCmnSpsUlProcDtxInd);
454 Void rgSCHCmnSpsDlUpdDlSfAllocWithSps ARGS((
456 CmLteTimingInfo schdTime,
461 TRC2(rgSCHCmnSpsUlProcDtxInd);
469 /**********************************************************************
472 **********************************************************************/