Initial commit
[o-du/l2.git] / src / 5gnrmac / rg_uhm.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-MAC layer
22   
23      Type:     C source file
24   
25      Desc:     C source code for Entry point fucntions
26   
27      File:     rg_uhm.c
28   
29 **********************************************************************/
30
31 /** @file rg_uhm.c
32 @brief This module handles uplink harq related functionality in MAC.
33 */
34
35 /* header include files -- defines (.h) */
36 #include "envopt.h"        /* environment options */
37 #include "envdep.h"        /* environment dependent */
38 #include "envind.h"        /* environment independent */
39   
40 #include "gen.h"           /* general */
41 #include "ssi.h"           /* system services */
42
43 #include "cm_lte.h"        /* Common LTE */
44 #include "cm_tkns.h"       /* Common Token Defines */
45 #include "cm_llist.h"      /* Common Link List Defines */
46 #include "cm_hash.h"       /* Common Hash List Defines */
47 #include "cm_mblk.h"       /* memory management */
48
49 #include "rg_env.h"        /* MAC Environment Defines */
50 #include "tfu.h"           /* TFU Interface defines */
51 #include "crg.h"           /* CRG Interface defines */
52 #include "rgu.h"           /* RGU Interface defines */
53 #include "rg_sch_inf.h"           /* TFU Interface defines */
54 #include "lrg.h"           /* LRG Interface defines */
55
56 #include "rg.h"            /* MAC defines */
57 #include "rg_err.h"        /* MAC error defines */
58
59 /* header/extern include files (.x) */
60 #include "gen.x"           /* general */
61 #include "ssi.x"           /* system services */
62 #include "cm5.x"           /* system services */
63 #include "cm_lte.x"        /* Common LTE */
64 #include "cm_tkns.x"       /* Common Token Definitions */
65 #include "cm_llist.x"      /* Common Link List Definitions */
66 #include "cm_lib.x"        /* Common Library Definitions */
67 #include "cm_hash.x"       /* Common Hash List Definitions */
68 #include "cm_mblk.x"       /* memory management */
69
70 #include "tfu.x"           /* TFU Interface defines */
71 #include "crg.x"           /* CRG Interface includes */
72 #include "rgu.x"           /* RGU Interface includes */
73 #include "rg_sch_inf.x"    /* SCH Interface defines */
74 #include "rg_prg.x"        /* PRG Interface defines */
75 #include "lrg.x"           /* LRG Interface includes */
76
77 #include "rg.x"            /* MAC includes */
78
79 /* local defines */
80
81 /* local typedefs */
82  
83 /* local externs */
84  
85 /* forward references */
86
87 /**
88  * @brief Handler for initializing the HARQ entity.
89  *
90  * @details
91  *
92  *     Function: rgUHMCrgUeCfg
93  *     
94  *     Invoked by: CRG
95  *
96  *     Processing Steps: 
97  *      -  Initialize maxHqRetx
98  *           
99  *  @param[in]      *cellCb
100  *  @param[in,out]  *ueCb
101  *  @param[in]      *ueCfg
102  *  @param[out]     *err
103  *  @return  Void
104  **/
105 #ifdef ANSI
106 PUBLIC Void rgUHMCrgUeCfg
107 (
108 RgCellCb       *cellCb,
109 RgUeCb         *ueCb,
110 CrgUeCfg       *ueCfg
111 )
112 #else
113 PUBLIC Void rgUHMCrgUeCfg(cellCb, ueCb, ueCfg) 
114 RgCellCb       *cellCb;
115 RgUeCb         *ueCb;
116 CrgUeCfg       *ueCfg;
117 #endif
118 {
119    TRC2(rgUHMCrgUeCfg);
120
121    ueCb->ul.hqEnt.maxHqRetx = (ueCfg->ueUlHqCfg.maxUlHqTx - 1); 
122    RETVOID;
123 }  /* rgUHMCrgUeCfg */
124
125 /**
126  * @brief Handler for re-initializing the HARQ entity.
127  *
128  * @details
129  *
130  *     Function: rgUHMCrgUeRecfg
131  *     
132  *     Invoked by: CRG
133  *
134  *     Processing Steps: 
135  *      -  Re-initialize maxHqRetx
136  *           
137  *  @param[in]      *cellCb
138  *  @param[in,out]  *ueCb
139  *  @param[in]      *ueCfg
140  *  @param[out]     *err
141  *  @return  Void
142  **/
143 #ifdef ANSI
144 PUBLIC Void rgUHMCrgUeRecfg
145 (
146 RgCellCb       *cellCb,
147 RgUeCb         *ueCb,
148 CrgUeRecfg     *ueRecfg
149 )
150 #else
151 PUBLIC Void rgUHMCrgUeRecfg(cellCb, ueCb, ueRecfg) 
152 RgCellCb       *cellCb;
153 RgUeCb         *ueCb;
154 CrgUeRecfg     *ueRecfg;
155 #endif
156 {
157    TRC2(rgUHMCrgUeRecfg);
158
159    ueCb->ul.hqEnt.maxHqRetx = (ueRecfg->ueUlHqRecfg.maxUlHqTx - 1); 
160    RETVOID;
161 }  /* rgUHMCrgUeCfg */
162
163 /**********************************************************************
164  
165          End of file
166 **********************************************************************/