2 * Copyright 2019 AT&T Intellectual Property
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.
19 * This source code is part of the near-RT RIC (RAN Intelligent Controller)
20 * platform project (RICP).
25 // Created by adi ENZEL on 6/19/19.
28 #ifndef ASN_DISABLE_OER_SUPPORT
29 #define ASN_DISABLE_OER_SUPPORT // this is to remove the OER do not remove it
43 #include <sys/types.h>
47 #include <mdclog/mdclog.h>
52 #include "../asn1cFiles/ENB-ID.h"
54 #include "../asn1cFiles/E2SM-gNB-X2-actionDefinition.h"
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"
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"
78 PLMN_Identity_t *createPLMN_ID(const unsigned char *data);
85 ENB_ID_t *createENB_ID(ENB_ID_PR enbType, unsigned char *data);
92 GNB_ID_t *createGnb_id(const unsigned char *data, int numOfBits);
99 GlobalENB_ID_t *createGlobalENB_ID(PLMN_Identity_t *plmnIdentity, ENB_ID_t *enbId);
102 * @param plmnIdentity
106 GlobalGNB_ID_t *createGlobalGNB_ID(PLMN_Identity_t *plmnIdentity, GNB_ID_t *gnb);
113 Interface_ID_t *createInterfaceIDForGnb(GlobalGNB_ID_t *gnb);
119 Interface_ID_t *createInterfaceIDForEnb(GlobalENB_ID_t *enb);
123 * @param procedureCode
126 InterfaceMessageType_t *createInterfaceMessageInitiating(ProcedureCode_t procedureCode);
129 * @param procedureCode
132 InterfaceMessageType_t *createInterfaceMessageSuccsesful(ProcedureCode_t procedureCode);
136 * @param procedureCode
139 InterfaceMessageType_t *createInterfaceMessageUnsuccessful(ProcedureCode_t procedureCode);
147 InterfaceProtocolIE_Value_t *createInterfaceProtocolValueInt(long number);
153 InterfaceProtocolIE_Value_t *createInterfaceProtocolValueEnum(long number);
159 InterfaceProtocolIE_Value_t *createInterfaceProtocolValueBool(int val);
167 InterfaceProtocolIE_Value_t *createInterfaceProtocolValueBitString(unsigned char *buf, int numOfBits);
175 InterfaceProtocolIE_Value_t *createInterfaceProtocolValueOCTETS(uint8_t *buf);
183 InterfaceProtocolIE_Item_t *createInterfaceProtocolIE_Item(long id, long test, InterfaceProtocolIE_Value_t *value);
190 ActionParameter_Value_t *createActionParameterValue_Int(long number);
197 ActionParameter_Value_t *createActionParameterValue_Enum(long number);
204 ActionParameter_Value_t *createActionParameterValue_Bool(int val);
212 ActionParameter_Value_t *createActionParameterValue_Bit_String(unsigned char *buf, int numOfBits);
220 ActionParameter_Value_t *createActionParameterValue_OCTETS(uint8_t *buf);
228 ActionParameter_Value_t *createActionParameterValue_PRINTS(char *buf);
236 ActionParameter_Item_t *creatActionParameter_Item(long id, ActionParameter_Value_t *val);
243 * @param interfaceProtocolItemList
249 size_t createEventTrigger(Interface_ID_t *interfaceId, long direction,
250 InterfaceMessageType_t *messageType,
251 InterfaceProtocolIE_Item_t interfaceProtocolItemList[],
260 * @param actionParamList
266 size_t createActionDefinition(long styleId, ActionParameter_Item_t actionParamList[], int listSize,
271 * @param interfaceDirection
279 size_t createE2SM_gNB_X2_indicationHeader(long interfaceDirection,
280 Interface_ID_t *interfaceId,
281 uint8_t *timestamp, //can put NULL if size == 0
294 size_t createE2SM_gNB_X2_indicationMessage(uint8_t *message, uint msgSize,
300 * @param callProcess_Id
305 size_t createE2SM_gNB_X2_callProcessID(long callProcess_Id,
309 size_t createE2SM_gNB_X2_controlHeader(Interface_ID_t *interfaceId, long direction,
313 size_t createE2SM_gNB_X2_controlMessage(uint8_t *message, uint msgSize,