Committing in PDCP code
[o-du/l2.git] / src / 5gnrpdcp / pj_udx.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**
20   
21         Name:    LTE PDCP Interface  
22     
23         Type:    C include file
24   
25         Desc:    This file contains the defines required by PDCP user
26  
27         File:    pj_udx.h
28   
29 *********************************************************************21*/
30 #ifndef __UDX_H__
31 #define __UDX_H__
32
33 #ifdef __cplusplus
34 EXTERN "C" {
35 #endif  /*for extern "C"*/
36
37 /**
38  * @file 
39  * @brief Macro for UDX Interface 
40  */
41
42 #define UDX_SEL_LC           0   /* UDX loose couple selector */
43 #define UDX_SEL_LWLC         1
44 #define PJ_MAX_UDX           3
45
46 #define UDX_7BIT_SN_SIZE     7               /*!< Sequence length is 7-bit */
47 #define UDX_12BIT_SN_SIZE    12              /*!< Sequence length is 12-bit */
48 #define UDX_MAX_CFG    10                    /*!< Maximum PDCP entity to be configured */ 
49 #define UDX_MAX_DRB    12                    /*!< Maximum DRBs per UE */
50
51 /* UDX Configuration Failure Reasons */
52 #define UDX_CFG_REAS_NONE                  0  /*!< No Failure */
53 #define UDX_CFG_REAS_ENT_CREAT_FAIL        1  /*!< PDCP Entity Creation Failure*/
54 #define UDX_CFG_REAS_UE_CREAT_FAIL         2  /*!< UE CB Creation Failure */
55 #define UDX_CFG_REAS_INVALID_PDCPID        3  /*!< Invalid PDCP ID */
56 #define UDX_CFG_REAS_PDCPID_PRSNT          4  /*!< PDCP ID already present */
57 #define UDX_CFG_REAS_INVALID_RLCMODE       5  /*!< Invalid RLC Mode */
58 #define UDX_CFG_REAS_PDCPID_UNKWN          6  /*!< PDCP ID Unknown */
59 #define UDX_CFG_REAS_UE_UNKWN              7  /*!< UE Cb Unknown */
60 #define UDX_CFG_REAS_CIPHER_ALGO_INVALID   8  /*!< Invalid Cipher Algo */
61 #define UDX_CFG_REAS_ENT_DEL_FAIL          9  /*!< PDCP Entity Deletion Failure */
62 #define UDX_CFG_REAS_UE_DEL_FAIL           10 /*!< UE Cb Deletion Failure */
63 #define UDX_CFG_REAS_REEST_FAIL            11 /*!< PDCP Reestablish Failure */
64 #define UDX_CFG_REAS_COMP_ALGO_INVALID     12 /*!< Compression Algo not
65                                                supported */
66 #define UDX_CFG_REAS_RECFG_FAIL            13 /*!< PDCP Reconfiguration Failed */
67 #define UDX_CFG_REAS_INVALID_CFG           14 /*!< Invalid Configuration Type */
68 #define UDX_CFG_REAS_SAME_UEID             15 /*!< UE IDs match in ChngUeId 
69                                                    Request*/
70 #define UDX_CFG_REAS_SAME_RBID             16 /*!< UE IDs match in ChngUeId 
71                                                    Request */
72 #define UDX_CFG_REAS_INVALID_RBID          17 /*!< Invalid RB ID */
73
74 #define  UDX_CFG_REAS_INTINIT_FAILED      18 /*!< Integrity Init Failed */
75 #define  UDX_CFG_REAS_CCIPHR_FAILED       19 /*!< Control Plane Cihper Init Failed */
76 #define  UDX_CFG_REAS_UCIPHR_FAILED       20 /*!< User Plane Cipher Init Failed */
77
78 #define  UDX_CFG_REAS_NO_DRBS             21 /*!< No DRBs Present */
79 #define  UDX_CFG_REAS_OBD_TIMEOUT         22 /*!< No DRBs Present */
80 #define  UDX_CFG_REAS_INVALID_STATE       23 /*!< Invalid state to perform re-establishment */
81
82 /* UDX Configuration confirmations */
83 #define UDX_CFG_CFM_OK                      1 /*!< Confirm status OK */
84 #define UDX_CFG_CFM_NOK                     2 /*!< Confirm status NOK */
85    
86 /*Event Code*/
87 #define UDX_EVC_RESET_FAILED                1 /*!< Reset Failed */ 
88
89 #define EVTUDXBNDREQ         0x20            /*!< Bind Request */
90 #define EVTUDXBNDCFM         0x21            /*!< Bind Confirmation */ 
91 #define EVTUDXUBNDREQ        0x22            /*!< Unbind Request */
92 #define EVTUDXCFGREQ         0x23            /*!< Config Request */
93 #define EVTUDXCFGCFM         0x24            /*!< Config Confirmation */
94 #define EVTUDXUEIDCHGREQ     0x25            /*!< UE ID Change Request */ 
95 #define EVTUDXUEIDCHGCFM     0x26            /*!< UE ID Change Confirmation */
96 #define EVTUDXSECCFGREQ      0x27            /*!< Security Config Request */
97 #define EVTUDXSECCFGCFM      0x28            /*!< Security Config Confirm */
98 #define EVTUDXREESTREQ       0x29            /*!< Count C Request */
99 #define EVTUDXREESTCFM       0x2A            /*!< Count C Confirm */
100 #define EVTUDXCOUNTREQ       0x2B            /*!< Count C Request */
101 #define EVTUDXCOUNTCFM       0x2C            /*!< Count C Confirm */
102 #define EVTUDXSDUSTAREQ      0x2D            /*!< SDU Status Request */
103 #define EVTUDXSDUSTACFM      0x2E            /*!< SDU Status Confirm */
104 #define EVTUDXREESTTRIG      0x2F            /*!< Reestablishment trigger */
105 #define EVTUDXULSTAREP       0x30            /*!< UL PDCP Status Report */
106 #define EVTUDXDLSTAREP       0x31            /*!< DL PDCP Status Report */
107 #define EVTUDXULROHCFDB      0x32            /*!< ROHC FEEDBACK PKT INFO */
108 #define EVTUDXDLROHCFDB      0x33            /*!< ROHC FEEDBACK PKT INFO */
109 #define EVTUDXDATRESUME      0x34            /*!< Data Resume */
110 #define EVTUDXDATFRWD        0x35            /*!< Data Forwarding */
111 #define EVTUDXDATRESUMECFM   0x36            /*!< Dats Resume Confirm */
112 #define EVTUDXDATFRWDCFM     0x37            /*!< Dats Forwarding Confirm */
113 #define PJ_UDX_EVT_L2MEAS_REQ 0x38           /*!< L2 measurement request */
114 #define PJ_UDX_EVT_L2MEAS_SEND_REQ 0x39      /*!< L2 measurement send request */
115 #define PJ_UDX_EVT_L2MEAS_STOP_REQ 0x40      /*!< L2 measurement stop request */
116
117 #define UDX_CIPHER_KEY_LEN       16          /*!< Ciphering key length */
118 #define UDX_INTG_KEY_LEN         16          /*!< Integrity key length */
119 #define UDX_MAX_ROHC_PROF_LIST   9           /*!< ROHC profile list */
120 #define UDX_MAX_CFM              10          /*!< Maximum number of confirm */ 
121
122 #define UDX_CFG_ADD            0x01          /*!< Configure new PDCP entity
123                                                in the requested UE */
124 #define UDX_CFG_MODIFY         0x02          /*!< Reconfigure PDCP entity
125                                                in the requested UE */
126 #define UDX_CFG_DELETE         0x03          /*!< Delete PDCP entity
127                                                in the requested UE */
128 #define UDX_CFG_REESTABLISH    0x04          /*!< Reestablish PDCP entity
129                                                in the requested UE */
130 #define UDX_CFG_DELETE_UE      0x05          /*!< Delete UE in PDCP */
131
132
133 #define UDX_SEC_INTG_INFO      0x01          /*!< Integrity information */
134 #define UDX_SEC_CIPHER_INFO    0x02          /*!< Ciphering information */
135
136 #define UDX_SEC_ALG_NULL       0x01          /*!< NULL algorithm */
137 #define UDX_SEC_ALG_SNOW3G     0x02          /*!< Snow 3G algorithm */
138 #define UDX_SEC_ALG_AES        0x03          /*!< AES algorithm */
139
140
141
142 /* Defines which is used in ModCfg to set the bitflag */
143 #define UDX_RECFG_DISRQD  0x01               /*!< Discard Required is present*/
144 #define UDX_RECFG_CFMREQ  0x02               /*!< Confirm Required is present */
145
146 /* Flags will be used to fill the Hand off information */
147 #define UDX_HO_NOT_PRSNT  0       /*!< Hand of Info is not present */
148 #define UDX_HO_UL         1       /*!< Uplink count present */
149 #define UDX_HO_DL         2       /*!< Downlink count present */
150
151 /* cpj_h_001.main_2 added support for L2 Measurement */   
152 #ifdef LTE_L2_MEAS
153 #define UDX_MAX_QCI           10
154 #endif
155
156 /* Error Codes */
157 #define EUDXXXX              0   
158 #define ERRUDX               0
159
160 #define EUDX001         (ERRUDX + 1)
161 #define EUDX002         (ERRUDX + 2)
162 #define EUDX003         (ERRUDX + 3)
163 #define EUDX004         (ERRUDX + 4)
164 #define EUDX005         (ERRUDX + 5)
165 #define EUDX006         (ERRUDX + 6)
166 #define EUDX007         (ERRUDX + 7)
167 #define EUDX008         (ERRUDX + 8)
168 #define EUDX009         (ERRUDX + 9)
169 #define EUDX010         (ERRUDX + 10)
170 #define EUDX011         (ERRUDX + 11)
171 #define EUDX012         (ERRUDX + 12)
172 #define EUDX013         (ERRUDX + 13)
173 #define EUDX014         (ERRUDX + 14)
174 #define EUDX015         (ERRUDX + 15)
175 #define EUDX016         (ERRUDX + 16)
176 #define EUDX017         (ERRUDX + 17)
177 #define EUDX018         (ERRUDX + 18)
178 #define EUDX019         (ERRUDX + 19)
179 #define EUDX020         (ERRUDX + 20)
180 #define EUDX021         (ERRUDX + 21)
181 #define EUDX022         (ERRUDX + 22)
182 #define EUDX023         (ERRUDX + 23)
183 #define EUDX024         (ERRUDX + 24)
184 #define EUDX025         (ERRUDX + 25)
185 #define EUDX026         (ERRUDX + 26)
186 #define EUDX027         (ERRUDX + 27)
187 #define EUDX028         (ERRUDX + 28)
188 #define EUDX029         (ERRUDX + 29)
189 #define EUDX030         (ERRUDX + 30)
190 #define EUDX031         (ERRUDX + 31)
191 #define EUDX032         (ERRUDX + 32)
192 #define EUDX033         (ERRUDX + 33)
193 #define EUDX034         (ERRUDX + 34)
194 #define EUDX035         (ERRUDX + 35)
195 #define EUDX036         (ERRUDX + 36)
196 #define EUDX037         (ERRUDX + 37)
197 #define EUDX038         (ERRUDX + 38)
198 #define EUDX039         (ERRUDX + 39)
199 #define EUDX040         (ERRUDX + 40)
200 #define EUDX041         (ERRUDX + 41)
201 #define EUDX042         (ERRUDX + 42)
202 #define EUDX043         (ERRUDX + 43)
203 #define EUDX044         (ERRUDX + 44)
204 #define EUDX045         (ERRUDX + 45)
205 #define EUDX046         (ERRUDX + 46)
206 #define EUDX047         (ERRUDX + 47)
207 #define EUDX048         (ERRUDX + 48)
208 #define EUDX049         (ERRUDX + 49)
209 #define EUDX050         (ERRUDX + 50)
210 #define EUDX051         (ERRUDX + 51)
211 #define EUDX052         (ERRUDX + 52)
212 #define EUDX053         (ERRUDX + 53)
213 #define EUDX054         (ERRUDX + 54)
214 #define EUDX055         (ERRUDX + 55)
215 #define EUDX056         (ERRUDX + 56)
216 #define EUDX057         (ERRUDX + 57)
217 #define EUDX058         (ERRUDX + 58)
218 #define EUDX059         (ERRUDX + 59)
219 #define EUDX060         (ERRUDX + 60)
220 #define EUDX061         (ERRUDX + 61)
221 #define EUDX062         (ERRUDX + 62)
222 #define EUDX063         (ERRUDX + 63)
223 #define EUDX064         (ERRUDX + 64)
224 #define EUDX065         (ERRUDX + 65)
225 #define EUDX066         (ERRUDX + 66)
226 #define EUDX067         (ERRUDX + 67)
227 #define EUDX068         (ERRUDX + 68)
228 #define EUDX069         (ERRUDX + 69)
229 #define EUDX070         (ERRUDX + 70)
230 #define EUDX071         (ERRUDX + 71)
231 #define EUDX072         (ERRUDX + 72)
232 #define EUDX073         (ERRUDX + 73)
233 #define EUDX074         (ERRUDX + 74)
234 #define EUDX075         (ERRUDX + 75)
235 #define EUDX076         (ERRUDX + 76)
236 #define EUDX077         (ERRUDX + 77)
237 #define EUDX078         (ERRUDX + 78)
238 #define EUDX079         (ERRUDX + 79)
239 #define EUDX080         (ERRUDX + 80)
240 #define EUDX081         (ERRUDX + 81)
241 #define EUDX082         (ERRUDX + 82)
242 #define EUDX083         (ERRUDX + 83)
243 #define EUDX084         (ERRUDX + 84)
244 #define EUDX085         (ERRUDX + 85)
245 #define EUDX086         (ERRUDX + 86)
246 #define EUDX087         (ERRUDX + 87)
247 #define EUDX088         (ERRUDX + 88)
248 #define EUDX089         (ERRUDX + 89)
249 #define EUDX090         (ERRUDX + 90)
250 #define EUDX091         (ERRUDX + 91)
251 #define EUDX092         (ERRUDX + 92)
252 #define EUDX093         (ERRUDX + 93)
253 #define EUDX094         (ERRUDX + 94)
254 #define EUDX095         (ERRUDX + 95)
255 #define EUDX096         (ERRUDX + 96)
256 #define EUDX097         (ERRUDX + 97)
257 #define EUDX098         (ERRUDX + 98)
258 #define EUDX099         (ERRUDX + 99)
259 #define EUDX100         (ERRUDX + 100)
260 #define EUDX101         (ERRUDX + 101)
261 #define EUDX102         (ERRUDX + 102)
262 #define EUDX103         (ERRUDX + 103)
263 #define EUDX104         (ERRUDX + 104)
264 #define EUDX105         (ERRUDX + 105)
265 #define EUDX106         (ERRUDX + 106)
266 #define EUDX107         (ERRUDX + 107)
267 #define EUDX108         (ERRUDX + 108)
268 #define EUDX109         (ERRUDX + 109)
269 #define EUDX110         (ERRUDX + 110)
270 #define EUDX111         (ERRUDX + 111)
271 #define EUDX112         (ERRUDX + 112)
272 #define EUDX113         (ERRUDX + 113)
273 #define EUDX114         (ERRUDX + 114)
274 #define EUDX115         (ERRUDX + 115)
275 #define EUDX116         (ERRUDX + 116)
276 #define EUDX117         (ERRUDX + 117)
277 #define EUDX118         (ERRUDX + 118)
278 #define EUDX119         (ERRUDX + 119)
279 #define EUDX120         (ERRUDX + 120)
280 #define EUDX121         (ERRUDX + 121)
281 #define EUDX122         (ERRUDX + 122)
282
283
284 #ifdef __cplusplus
285 }
286 #endif /* __cplusplus */
287 #endif /* __UDX_H__ */
288
289 /********************************************************************30**
290   
291          End of file
292 **********************************************************************/