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).
24 // Created by adi ENZEL on 6/19/19.
27 #ifndef ASN_DISABLE_OER_SUPPORT
28 #define ASN_DISABLE_OER_SUPPORT // this is to remove the OER do not remove it
42 #include <sys/types.h>
46 #include <mdclog/mdclog.h>
51 #include "asn1cFiles/ENB-ID.h"
53 #include "asn1cFiles/E2SM-gNB-X2-actionDefinition.h"
55 #include "asn1cFiles/E2SM-gNB-X2-callProcessID.h"
56 #include "asn1cFiles/E2SM-gNB-X2-controlHeader.h"
57 #include "asn1cFiles/E2SM-gNB-X2-controlMessage.h"
58 #include "asn1cFiles/E2SM-gNB-X2-indicationHeader.h"
59 #include "asn1cFiles/E2SM-gNB-X2-indicationMessage.h"
60 #include "asn1cFiles/E2SM-gNB-X2-eventTriggerDefinition.h"
63 #include "asn1cFiles/ActionParameter-Item.h"
64 #include "asn1cFiles/ActionParameter-Value.h"
65 #include "asn1cFiles/PLMN-Identity.h"
66 #include "asn1cFiles/GlobalENB-ID.h"
67 #include "asn1cFiles/GlobalGNB-ID.h"
68 #include "asn1cFiles/Interface-ID.h"
69 #include "asn1cFiles/InterfaceMessageType.h"
70 #include "asn1cFiles/InterfaceProtocolIE-Item.h"
77 PLMN_Identity_t *createPLMN_ID(const unsigned char *data);
84 ENB_ID_t *createENB_ID(ENB_ID_PR enbType, unsigned char *data);
91 GNB_ID_t *createGnb_id(const unsigned char *data, int numOfBits);
98 GlobalENB_ID_t *createGlobalENB_ID(PLMN_Identity_t *plmnIdentity, ENB_ID_t *enbId);
101 * @param plmnIdent#ifdef __cplusplus
108 GlobalGNB_ID_t *createGlobalGNB_ID(PLMN_Identity_t *plmnIdentity, GNB_ID_t *gnb);
115 Interface_ID_t *createInterfaceIDForGnb(GlobalGNB_ID_t *gnb);
121 Interface_ID_t *createInterfaceIDForEnb(GlobalENB_ID_t *enb);
125 * @param procedureCode
128 InterfaceMessageType_t *createInterfaceMessageInitiating(ProcedureCode_t procedureCode);
131 * @param procedureCode
134 InterfaceMessageType_t *createInterfaceMessageSuccsesful(ProcedureCode_t procedureCode);
138 * @param procedureCode
141 InterfaceMessageType_t *createInterfaceMessageUnsuccessful(ProcedureCode_t procedureCode);
149 InterfaceProtocolIE_Value_t *createInterfaceProtocolValueInt(long number);
155 InterfaceProtocolIE_Value_t *createInterfaceProtocolValueEnum(long number);
161 InterfaceProtocolIE_Value_t *createInterfaceProtocolValueBool(int val);
169 InterfaceProtocolIE_Value_t *createInterfaceProtocolValueBitString(unsigned char *buf, int numOfBits);
177 InterfaceProtocolIE_Value_t *createInterfaceProtocolValueOCTETS(uint8_t *buf);
185 InterfaceProtocolIE_Item_t *createInterfaceProtocolIE_Item(long id, long test, InterfaceProtocolIE_Value_t *value);
192 ActionParameter_Value_t *createActionParameterValue_Int(long number);
199 ActionParameter_Value_t *createActionParameterValue_Enum(long number);
206 ActionParameter_Value_t *createActionParameterValue_Bool(int val);
214 ActionParameter_Value_t *createActionParameterValue_Bit_String(unsigned char *buf, int numOfBits);
222 ActionParameter_Value_t *createActionParameterValue_OCTETS(uint8_t *buf);
230 ActionParameter_Value_t *createActionParameterValue_PRINTS(char *buf);
238 ActionParameter_Item_t *creatActionParameter_Item(long id, ActionParameter_Value_t *val);
245 * @param interfaceProtocolItemList
251 size_t createEventTrigger(Interface_ID_t *interfaceId, long direction,
252 InterfaceMessageType_t *messageType,
253 InterfaceProtocolIE_Item_t interfaceProtocolItemList[],
262 * @param actionParamList
268 size_t createActionDefinition(long styleId, ActionParameter_Item_t actionParamList[], int listSize,
273 * @param interfaceDirection
281 size_t createE2SM_gNB_X2_indicationHeader(long interfaceDirection,
282 Interface_ID_t *interfaceId,
283 uint8_t *timestamp, //can put NULL if size == 0
296 size_t createE2SM_gNB_X2_indicationMessage(uint8_t *message, uint msgSize,
302 * @param callProcess_Id
307 size_t createE2SM_gNB_X2_callProcessID(long callProcess_Id,
311 size_t createE2SM_gNB_X2_controlHeader(Interface_ID_t *interfaceId, long direction,
315 size_t createE2SM_gNB_X2_controlMessage(uint8_t *message, uint msgSize,