6d6beff385249ed02c5122f3386fe5e3b2d63bc9
[o-du/l2.git] / src / cm / rgu.h
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      Name:    Upper Layer Interface - RLC
21
22      Type:    C header file
23
24      Desc:    Structures, variables and typedefs required by 
25               RGU interface
26
27      File:    rgu.h
28
29 *********************************************************************21*/
30
31 \f
32 #ifndef __RGUH__
33 #define __RGUH__
34 #ifdef __cplusplus
35 extern "C" {
36 #endif
37
38 /** 
39   @file rgu.h 
40   @brief Defines for RGU interface.
41  */
42
43
44 /***********************************************************************
45                          Macro Definitions 
46  ***********************************************************************/
47 #ifdef LTE_L2_MEAS
48 #define RGU_INVALID_TBID    64    /*!< Invalid TBID that is set by RLC for DL TPT 
49                                 Calculations in Dat Req to MAC. */
50 #endif
51 /* rgu_h_001.main_3   Changing from 10 to 5 for optimization */
52 #define RGU_MAX_PDU    16    /*!< Maximum number of PDUs that can be received in a datreq. */
53 #define RGU_RESID_SIZE 6     /*!< Size of Contention resolution ID in bytes.*/
54 /*  rgu_h_001.main_4 - Adding RGU_MAX_TB*/
55 #define RGU_MAX_TB     2     /*!< Maximum of 2 TB's per DDat Req */
56
57 /* rgu_h_001.main_3  Changing from 20 to 10 for optimization */
58 #ifdef XEON_SPECIFIC_CHANGES   /* This change is done to avoid Heap allocation with 16UE/TTI config  */
59 #define RGU_MAX_LC     8    /*!< Maximum Number of dedicated Logical Channels.*/
60 #else
61 #define RGU_MAX_LC     4    /*!< Maximum Number of dedicated Logical Channels.*/
62 #endif
63
64 /* Event corresponding to each primitive at this interface */
65 #define EVTRGUBNDREQ   1     /*!< Bind Request */
66 #define EVTRGUUBNDREQ  2     /*!< Un-Bind Request */
67 #define EVTRGUBNDCFM   3     /*!< Bind Confirm */
68 #define EVTRGUCDATREQ  4     /*!< Common Channel Data Request */
69 #define EVTRGUCDATIND  5     /*!< Common Channel Data Indication */
70 #define EVTRGUDDATREQ  6     /*!< Dedicated Channel Data Request */
71 #define EVTRGUDDATIND  7     /*!< Dedicated Channel Data Indication */
72 #define EVTRGUCSTARSP  8     /*!< Common Channel status response */
73 #define EVTRGUCSTAIND  9     /*!< Common Channel status Indication */
74 #define EVTRGUDSTARSP  10    /*!< Dedicated Channel status response */
75 #define EVTRGUDSTAIND  11    /*!< Dedicated Channel status Indication */
76    /*rgu_h_001.main_5 - ADD - L2M Support */
77 #ifdef LTE_L2_MEAS
78 #define EVTRGUHQSTAIND  12    /*!< HARQ status Indication */
79 #define EVTRGUL2MULTHRPMEASREQ  13    /*!< L2M LCID On/Off Status Response */
80 #define         RGU_L2M_UL_BURST_START 0  /*!< Data Burst Start in Uplink DTCH */
81 #define         RGU_L2M_UL_BURST_END   1  /*!< Data Burst End in Uplink DTCH */
82 #endif
83 #define   EVTRGUFLOWCNTRLIND    14
84 /* If you change the value of below macro then you have to change value of 
85  * RG_MAX_NUM_UE_PER_TTI in file rg_env.h */  
86 #ifdef EIGHT_UE_PER_TTI_CHANGES  
87 #define RGU_MAX_NUM_UE_PER_TTI  16  /*!< Max UEs Per Tti */ 
88 #else
89 #define RGU_MAX_NUM_UE_PER_TTI  8  /*!< Max UEs Per Tti */ 
90 #endif   
91
92 /* pack unpack error code */
93 #define ERGUXXX                 0
94 #define ERRRGU                  0
95
96 #define   ERGU001      (ERRRGU +    1)    /*        rgu.c: 155 */
97 #define   ERGU002      (ERRRGU +    2)    /*        rgu.c: 163 */
98 #define   ERGU003      (ERRRGU +    3)    /*        rgu.c: 172 */
99 #define   ERGU004      (ERRRGU +    4)    /*        rgu.c: 218 */
100 #define   ERGU005      (ERRRGU +    5)    /*        rgu.c: 227 */
101 #define   ERGU006      (ERRRGU +    6)    /*        rgu.c: 271 */
102 #define   ERGU007      (ERRRGU +    7)    /*        rgu.c: 279 */
103 #define   ERGU008      (ERRRGU +    8)    /*        rgu.c: 288 */
104 #define   ERGU009      (ERRRGU +    9)    /*        rgu.c: 334 */
105 #define   ERGU010      (ERRRGU +   10)    /*        rgu.c: 343 */
106 #define   ERGU011      (ERRRGU +   11)    /*        rgu.c: 388 */
107 #define   ERGU012      (ERRRGU +   12)    /*        rgu.c: 396 */
108 #define   ERGU013      (ERRRGU +   13)    /*        rgu.c: 405 */
109 #define   ERGU014      (ERRRGU +   14)    /*        rgu.c: 452 */
110 #define   ERGU015      (ERRRGU +   15)    /*        rgu.c: 461 */
111 #define   ERGU016      (ERRRGU +   16)    /*        rgu.c: 506 */
112 #define   ERGU017      (ERRRGU +   17)    /*        rgu.c: 515 */
113 #define   ERGU018      (ERRRGU +   18)    /*        rgu.c: 525 */
114 #define   ERGU019      (ERRRGU +   19)    /*        rgu.c: 535 */
115 #define   ERGU020      (ERRRGU +   20)    /*        rgu.c: 582 */
116 #define   ERGU021      (ERRRGU +   21)    /*        rgu.c: 596 */
117 #define   ERGU022      (ERRRGU +   22)    /*        rgu.c: 642 */
118 /*rgu_h_001.main_5 - ADD - L2M Support */
119 #define   ERGU023      (ERRRGU +   23)    /*        rgu.c: 656 */
120 #define   ERGU024      (ERRRGU +   24)    /*        rgu.c: 666 */
121 #define   ERGU025      (ERRRGU +   25)    /*        rgu.c: 676 */
122 #define   ERGU026      (ERRRGU +   26)    /*        rgu.c: 723 */
123 #define   ERGU027      (ERRRGU +   27)    /*        rgu.c: 742 */
124 #define   ERGU028      (ERRRGU +   28)    /*        rgu.c: 788 */
125 #define   ERGU029      (ERRRGU +   29)    /*        rgu.c: 797 */
126 #define   ERGU030      (ERRRGU +   30)    /*        rgu.c: 807 */
127 #define   ERGU031      (ERRRGU +   31)    /*        rgu.c: 817 */
128 #define   ERGU032      (ERRRGU +   32)    /*        rgu.c: 864 */
129 #define   ERGU033      (ERRRGU +   33)    /*        rgu.c: 873 */
130 #define   ERGU034      (ERRRGU +   34)    /*        rgu.c: 882 */
131 #define   ERGU035      (ERRRGU +   35)    /*        rgu.c: 928 */
132 #define   ERGU036      (ERRRGU +   36)    /*        rgu.c: 937 */
133 #define   ERGU037      (ERRRGU +   37)    /*        rgu.c: 947 */
134 #define   ERGU038      (ERRRGU +   38)    /*        rgu.c: 957 */
135 #define   ERGU039      (ERRRGU +   39)    /*        rgu.c:1004 */
136 #define   ERGU040      (ERRRGU +   40)    /*        rgu.c:1013 */
137 #define   ERGU041      (ERRRGU +   41)    /*        rgu.c:1022 */
138 #define   ERGU042      (ERRRGU +   42)    /*        rgu.c:1068 */
139 #define   ERGU043      (ERRRGU +   43)    /*        rgu.c:1077 */
140 #define   ERGU044      (ERRRGU +   44)    /*        rgu.c:1087 */
141 #define   ERGU045      (ERRRGU +   45)    /*        rgu.c:1097 */
142 #define   ERGU046      (ERRRGU +   46)    /*        rgu.c:1144 */
143 #define   ERGU047      (ERRRGU +   47)    /*        rgu.c:1153 */
144 #define   ERGU048      (ERRRGU +   48)    /*        rgu.c:1162 */
145 #define   ERGU049      (ERRRGU +   49)    /*        rgu.c:1372 */
146 #define   ERGU050      (ERRRGU +   50)    /*        rgu.c:1381 */
147 #define   ERGU051      (ERRRGU +   51)    /*        rgu.c:1391 */
148 #define   ERGU052      (ERRRGU +   52)    /*        rgu.c:1401 */
149 #define   ERGU053      (ERRRGU +   53)    /*        rgu.c:1449 */
150 #define   ERGU054      (ERRRGU +   54)    /*        rgu.c:1458 */
151 #define   ERGU055      (ERRRGU +   55)    /*        rgu.c:1467 */
152 #define   ERGU056      (ERRRGU +   56)    /*        rgu.c:1517 */
153 #define   ERGU057      (ERRRGU +   57)    /*        rgu.c:1526 */
154 #define   ERGU058      (ERRRGU +   58)    /*        rgu.c:1536 */
155 #define   ERGU059      (ERRRGU +   59)    /*        rgu.c:1546 */
156 #define   ERGU060      (ERRRGU +   60)    /*        rgu.c:1593 */
157 #define   ERGU061      (ERRRGU +   61)    /*        rgu.c:1602 */
158 #define   ERGU062      (ERRRGU +   62)    /*        rgu.c:1611 */
159 #define   ERGU063      (ERRRGU +   63)    /*        rgu.c:1659 */
160 #define   ERGU064      (ERRRGU +   64)    /*        rgu.c:1668 */
161 #define   ERGU065      (ERRRGU +   65)    /*        rgu.c:1678 */
162 #define   ERGU066      (ERRRGU +   66)    /*        rgu.c:1688 */
163 #define   ERGU067      (ERRRGU +   67)    /*        rgu.c:1737 */
164 #define   ERGU068      (ERRRGU +   68)    /*        rgu.c:1746 */
165 #define   ERGU069      (ERRRGU +   69)    /*        rgu.c:1755 */
166 #define   ERGU070      (ERRRGU +   70)    /*        rgu.c:1878 */
167 #define   ERGU071      (ERRRGU +   71)    /*        rgu.c:1901 */
168 #define   ERGU072      (ERRRGU +   72)    /*        rgu.c:1913 */
169 #define   ERGU073      (ERRRGU +   73)    /*        rgu.c:2033 */
170 #define   ERGU074      (ERRRGU +   74)    /*        rgu.c:2043 */
171 #define   ERGU075      (ERRRGU +   75)    /*        rgu.c:2059 */
172 #define   ERGU076      (ERRRGU +   76)    /*        rgu.c:2114 */
173 #define   ERGU077      (ERRRGU +   77)    /*        rgu.c:2123 */
174 #define   ERGU078      (ERRRGU +   78)    /*        rgu.c:2133 */
175 #define   ERGU079      (ERRRGU +   79)    /*        rgu.c:2143 */
176 #define   ERGU080      (ERRRGU +   80)    /*        rgu.c:2192 */
177 #define   ERGU081      (ERRRGU +   81)    /*        rgu.c:2201 */
178 #define   ERGU082      (ERRRGU +   82)    /*        rgu.c:2210 */
179 #define   ERGU083      (ERRRGU +   83)    /*        rgu.c:2708 */
180
181
182 #ifdef __cplusplus
183 }
184 #endif
185 #endif /* __RGUH__ */
186
187 /********************************************************************30**
188
189          End of file
190 **********************************************************************/