Adding new comments for Oran in all files with licenses
[ric-plt/e2.git] / RIC-E2-TERMINATION / TEST / e2sm.h
1 /*
2  * Copyright 2019 AT&T Intellectual Property
3  * Copyright 2019 Nokia
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  * This source code is part of the near-RT RIC (RAN Intelligent Controller)
20  * platform project (RICP).
21  */
22
23
24 //
25 // Created by adi ENZEL on 6/19/19.
26 //
27
28 #ifndef ASN_DISABLE_OER_SUPPORT
29 #define ASN_DISABLE_OER_SUPPORT // this is to remove the OER do not remove it
30 #endif
31
32
33 #ifdef __cplusplus
34 extern "C"
35 {
36 #endif
37
38
39 #ifndef E2_E2SM_H
40 #define E2_E2SM_H
41
42 #include <stdlib.h>
43 #include <sys/types.h>
44 #include <string.h>
45 #include <error.h>
46 #include <errno.h>
47 #include <mdclog/mdclog.h>
48 #include <time.h>
49 #include <math.h>
50
51
52 #include "../asn1cFiles/ENB-ID.h"
53
54 #include "../asn1cFiles/E2SM-gNB-X2-actionDefinition.h"
55
56 #include "../asn1cFiles/E2SM-gNB-X2-callProcessID.h"
57 #include "../asn1cFiles/E2SM-gNB-X2-controlHeader.h"
58 #include "../asn1cFiles/E2SM-gNB-X2-controlMessage.h"
59 #include "../asn1cFiles/E2SM-gNB-X2-indicationHeader.h"
60 #include "../asn1cFiles/E2SM-gNB-X2-indicationMessage.h"
61 #include "../asn1cFiles/E2SM-gNB-X2-eventTriggerDefinition.h"
62
63
64 #include "../asn1cFiles/ActionParameter-Item.h"
65 #include "../asn1cFiles/ActionParameter-Value.h"
66 #include "../asn1cFiles/PLMN-Identity.h"
67 #include "../asn1cFiles/GlobalENB-ID.h"
68 #include "../asn1cFiles/GlobalGNB-ID.h"
69 #include "../asn1cFiles/Interface-ID.h"
70 #include "../asn1cFiles/InterfaceMessageType.h"
71 #include "../asn1cFiles/InterfaceProtocolIE-Item.h"
72
73 /**
74  *
75  * @param data
76  * @return
77  */
78 PLMN_Identity_t *createPLMN_ID(const unsigned char *data);
79 /**
80  *
81  * @param enbType
82  * @param data
83  * @return
84  */
85 ENB_ID_t *createENB_ID(ENB_ID_PR enbType, unsigned char *data);
86 /**
87  *
88  * @param data
89  * @param numOfBits
90  * @return
91  */
92 GNB_ID_t *createGnb_id(const unsigned char *data, int numOfBits);
93 /**
94  *
95  * @param plmnIdentity
96  * @param enbId
97  * @return
98  */
99 GlobalENB_ID_t *createGlobalENB_ID(PLMN_Identity_t *plmnIdentity, ENB_ID_t *enbId);
100 /**
101  *
102  * @param plmnIdentity
103  * @param gnb
104  * @return
105  */
106 GlobalGNB_ID_t *createGlobalGNB_ID(PLMN_Identity_t *plmnIdentity, GNB_ID_t *gnb);
107
108 /**
109  *
110  * @param gnb
111  * @return
112  */
113 Interface_ID_t *createInterfaceIDForGnb(GlobalGNB_ID_t *gnb);
114 /**
115  *
116  * @param enb
117  * @return
118  */
119 Interface_ID_t *createInterfaceIDForEnb(GlobalENB_ID_t *enb);
120
121 /**
122  *
123  * @param procedureCode
124  * @return
125  */
126 InterfaceMessageType_t *createInterfaceMessageInitiating(ProcedureCode_t procedureCode);
127 /**
128  *
129  * @param procedureCode
130  * @return
131  */
132 InterfaceMessageType_t *createInterfaceMessageSuccsesful(ProcedureCode_t procedureCode);
133
134 /**
135  *
136  * @param procedureCode
137  * @return
138  */
139 InterfaceMessageType_t *createInterfaceMessageUnsuccessful(ProcedureCode_t procedureCode);
140
141
142 /**
143  *
144  * @param number
145  * @return
146  */
147 InterfaceProtocolIE_Value_t *createInterfaceProtocolValueInt(long number);
148 /**
149  *
150  * @param number
151  * @return
152  */
153 InterfaceProtocolIE_Value_t *createInterfaceProtocolValueEnum(long number);
154 /**
155  *
156  * @param val
157  * @return
158  */
159 InterfaceProtocolIE_Value_t *createInterfaceProtocolValueBool(int val);
160
161 /**
162  *
163  * @param buf
164  * @param numOfBits
165  * @return
166  */
167 InterfaceProtocolIE_Value_t *createInterfaceProtocolValueBitString(unsigned char *buf, int numOfBits);
168
169 /**
170  *
171  * @param buf
172  * @param size
173  * @return
174  */
175 InterfaceProtocolIE_Value_t *createInterfaceProtocolValueOCTETS(uint8_t *buf);
176 /**
177  *
178  * @param id
179  * @param test
180  * @param value
181  * @return
182  */
183 InterfaceProtocolIE_Item_t *createInterfaceProtocolIE_Item(long id, long test, InterfaceProtocolIE_Value_t *value);
184
185 /**
186  *
187  * @param number
188  * @return
189  */
190 ActionParameter_Value_t *createActionParameterValue_Int(long number);
191
192 /**
193  *
194  * @param number
195  * @return
196  */
197 ActionParameter_Value_t *createActionParameterValue_Enum(long number);
198
199 /**
200  *
201  * @param val
202  * @return
203  */
204 ActionParameter_Value_t *createActionParameterValue_Bool(int val);
205
206 /**
207  *
208  * @param buf
209  * @param numOfBits
210  * @return
211  */
212 ActionParameter_Value_t *createActionParameterValue_Bit_String(unsigned char *buf, int numOfBits);
213
214 /**
215  *
216  * @param buf
217  * @param size
218  * @return
219  */
220 ActionParameter_Value_t *createActionParameterValue_OCTETS(uint8_t *buf);
221
222 /**
223  *
224  * @param buf
225  * @param size
226  * @return
227  */
228 ActionParameter_Value_t *createActionParameterValue_PRINTS(char *buf);
229
230 /**
231  *
232  * @param id
233  * @param val
234  * @return
235  */
236 ActionParameter_Item_t *creatActionParameter_Item(long id, ActionParameter_Value_t *val);
237
238 /**
239  *
240  * @param interfaceId
241  * @param direction
242  * @param messageType
243  * @param interfaceProtocolItemList
244  * @param listSize
245  * @param buffer
246  * @param buffer_size
247  * @return
248  */
249 size_t createEventTrigger(Interface_ID_t *interfaceId, long direction,
250                           InterfaceMessageType_t *messageType,
251                           InterfaceProtocolIE_Item_t interfaceProtocolItemList[],
252                           int listSize,
253                           uint8_t *buffer,
254                           size_t buffer_size);
255
256
257 /**
258  *
259  * @param styleId
260  * @param actionParamList
261  * @param listSize
262  * @param buffer
263  * @param buffer_size
264  * @return
265  */
266 size_t createActionDefinition(long styleId, ActionParameter_Item_t actionParamList[], int listSize,
267                               uint8_t *buffer,
268                               size_t buffer_size);
269 /**
270  *
271  * @param interfaceDirection
272  * @param interfaceId
273  * @param timestamp
274  * @param size
275  * @param buffer
276  * @param buffer_size
277  * @return
278  */
279 size_t createE2SM_gNB_X2_indicationHeader(long interfaceDirection,
280                                                                    Interface_ID_t *interfaceId,
281                                                                    uint8_t *timestamp, //can put NULL if size == 0
282                                                                    int size,
283                                                                    uint8_t *buffer,
284                                                                    size_t buffer_size);
285
286 /**
287  *
288  * @param message
289  * @param msgSize
290  * @param buffer
291  * @param buffer_size
292  * @return
293  */
294 size_t createE2SM_gNB_X2_indicationMessage(uint8_t *message, uint msgSize,
295                                                                      uint8_t *buffer,
296                                                                      size_t buffer_size);
297
298 /**
299  *
300  * @param callProcess_Id
301  * @param buffer
302  * @param buffer_size
303  * @return
304  */
305 size_t createE2SM_gNB_X2_callProcessID(long callProcess_Id,
306                                                              uint8_t *buffer,
307                                                              size_t buffer_size);
308
309 size_t createE2SM_gNB_X2_controlHeader(Interface_ID_t *interfaceId, long direction,
310                                                              uint8_t *buffer,
311                                                              size_t buffer_size);
312
313 size_t createE2SM_gNB_X2_controlMessage(uint8_t *message, uint msgSize,
314                                         uint8_t *buffer,
315                                         size_t buffer_size);
316 #endif //E2_E2SM_H
317
318 #ifdef __cplusplus
319 }
320 #endif