#include <stdbool.h>
#include <stdint.h>
+#include <ProcedureCode.h>
#ifdef __cplusplus
extern "C" {
typedef unsigned char byte;
-extern const int64_t cMaxNrOfErrors;
-
extern const uint64_t cMaxSizeOfOctetString;
typedef struct { // Octet string in ASN.1 does not have maximum length!
size_t contentLength;
- uint8_t data[1024]; // table size is const cMaxSizeOfOctetString
+ uint8_t data[1024]; // Table size is const cMaxSizeOfOctetString
} OctetString_t;
+typedef struct { // Octet string in ASN.1 does not have maximum length!
+ size_t length;
+ uint8_t* data;
+} DynOctetString_t;
+
typedef struct {
- uint8_t unusedbits; // trailing unused bits 0 - 7
- size_t byteLength; // length in bytes
- uint8_t data[1024];
-} Bitstring_t;
+ uint8_t unusedBits; // Trailing unused bits 0 - 7
+ size_t byteLength; // Length in bytes
+ uint8_t* data;
+} DynBitString_t;
typedef struct {
- uint32_t ricRequestorID;
- uint32_t ricRequestSequenceNumber;
+ uint32_t ricRequestorID; // 0..65535
+ uint32_t ricInstanceID; // 0..65535
} RICRequestID_t;
-typedef uint16_t RANFunctionID_t;
+typedef uint16_t RANFunctionID_t; // 0..4095
-typedef uint64_t RICActionID_t;
+typedef uint64_t RICActionID_t; // 0..255
enum RICActionType_t {
- RICActionType_report
- ,RICActionType_insert
- ,RICActionType_policy
+ RICActionType_report,
+ RICActionType_insert,
+ RICActionType_policy
};
-typedef uint64_t StyleID_t;
-
-typedef uint32_t ParameterID_t;
-
-typedef struct {
- uint32_t dummy; // This data type has no content. This dymmy is added here to solve problem with Golang. Golang do not like empty types.
-} ParameterValue_t;
-
-typedef struct {
- ParameterID_t parameterID;
- ParameterValue_t ParameterValue;
-} SequenceOfActionParameters_t;
-
-typedef struct {
- StyleID_t styleID;
- SequenceOfActionParameters_t sequenceOfActionParameters;
-} RICActionDefinition_t;
-
enum RICSubsequentActionType_t {
RICSubsequentActionType_Continue,
RICSubsequentActionType_wait
};
+typedef struct {
+ OctetString_t octetString; // This element is E2AP spec format
+} RICActionDefinitionChoice_t;
+
enum RICTimeToWait_t {
RICTimeToWait_zero,
RICTimeToWait_w1ms,
};
typedef struct {
- uint64_t ricSubsequentActionType; // this is type of enum RICSubsequentActionType_t
- uint64_t ricTimeToWait; // this is type of enum RICTimeToWait_t
+ uint64_t ricSubsequentActionType; // This is type of enum RICSubsequentActionType_t
+ uint64_t ricTimeToWait; // This is type of enum RICTimeToWait_t
} RICSubsequentAction_t;
typedef struct {
RICActionID_t ricActionID;
- uint64_t ricActionType; // this is type of enum RICActionType_t
+ uint64_t ricActionType; // This is type of enum RICActionType_t
bool ricActionDefinitionPresent;
- RICActionDefinition_t ricActionDefinition;
+ RICActionDefinitionChoice_t ricActionDefinitionChoice;
bool ricSubsequentActionPresent;
RICSubsequentAction_t ricSubsequentAction;
} RICActionToBeSetupItem_t;
typedef struct {
uint8_t contentLength;
- RICActionToBeSetupItem_t ricActionToBeSetupItem[16]; // table size is const cMaxofRICactionID
+ RICActionToBeSetupItem_t ricActionToBeSetupItem[16]; // 1..16 // Table size is const cMaxofRICactionID
} RICActionToBeSetupList_t;
typedef struct {
typedef uint8_t ProcedureCode__t;
-typedef struct {
- ProcedureCode__t procedureCode;
- uint8_t typeOfMessage; // This is X2AP-PDU, CHOICE of InitiatingMessage or SuccessfulOutcome or UnsuccessfulOutcome
-} RICInterfaceMessageType_t;
-
-typedef uint32_t InterfaceProtocolIEID_t;
-
-enum ProtocolIEtestCondition_t {
- ProtocolIEtestCondition_equal,
- ProtocolIEtestCondition_greaterthan,
- ProtocolIEtestCondition_lessthan,
- ProtocolIEtestCondition_contains,
- ProtocolIEtestCondition_present
-};
-
-typedef struct { // CHOICE. Only one value can be present
- bool valueIntPresent;
- int64_t integer; //INTEGER;
- bool valueEnumPresent;
- int64_t valueEnum; // INTEGER
- bool valueBoolPresent;
- bool valueBool; // BOOLEAN
- bool valueBitSPresent;
- Bitstring_t octetstring; // OCTET STRING,
- bool octetstringPresent;
- OctetString_t octetString; // OCTET STRING,
-} InterfaceProtocolIEValue_t;
-
-typedef struct {
- InterfaceProtocolIEID_t interfaceProtocolIEID;
- //ProtocolIEtestCondition_t protocolIEtestCondition; Golang do not like this line. We do not need this right now.
- InterfaceProtocolIEValue_t interfaceProtocolIEValue;
-} SequenceOfProtocolIE_t;
-
-static const uint64_t cMaxofProtocolIE = 16;
-
-typedef struct {
- SequenceOfProtocolIE_t sequenceOfProtocolIE[16]; // table size is const cMaxofProtocolIE
-} SequenceOfProtocolIEList_t;
-
typedef struct {
- OctetString_t octetString; // E2AP spec format, the other elements for E2SM-X2 format
- InterfaceID_t interfaceID;
- uint8_t interfaceDirection; // this is type of enum InterfaceDirection_t
- RICInterfaceMessageType_t interfaceMessageType ;
- bool sequenceOfProtocolIEListPresent;
- SequenceOfProtocolIEList_t SequenceOfProtocolIEList;
+ OctetString_t octetString; // This element is E2AP spec format
} RICEventTriggerDefinition_t;
typedef struct {
RICEventTriggerDefinition_t ricEventTriggerDefinition;
RICActionToBeSetupList_t ricActionToBeSetupItemIEs;
-} RICSubscription_t;
+} RICSubscriptionDetails_t;
typedef struct {
uint8_t contentLength;
- RICActionID_t ricActionID[16]; // table size is const cMaxofRICactionID
+ RICActionID_t ricActionID[16]; // Table size is const cMaxofRICactionID
} RICActionAdmittedList_t;
-enum CauseRIC_t {
- CauseRIC__function_id_Invalid,
- CauseRIC__action_not_supported,
- CauseRIC__excessive_actions,
- CauseRIC__duplicate_action,
- CauseRIC__duplicate_event,
- CauseRIC__function_resource_limit,
- CauseRIC__request_id_unknown,
- CauseRIC__inconsistent_action_subsequent_action_sequence,
- CauseRIC__control_message_invalid,
- CauseRIC__call_process_id_invalid,
- CauseRIC__function_not_required,
- CauseRIC__excessive_functions,
- CauseRIC__ric_resource_limit
-};
-
-extern const int cRICCauseRadioNetwork; // this is content of type RICCause_t
-extern const int cRICCauseTransport; // this is content of type RICCause_t
-extern const int cRICCauseProtocol; // this is content of type RICCause_t
-extern const int cRICCauseMisc; // this is content of type RICCause_t
-extern const int cRICCauseRic; // this is content of type RICCause_t
-
typedef struct {
uint8_t content; // See above constants
- uint8_t cause; // this is type of enum CauseRIC_t
+ uint8_t causeVal; // This is type of enum CauseRIC_t
} RICCause_t;
typedef struct {
RICActionID_t ricActionID;
- RICCause_t ricCause;
+ RICCause_t cause;
} RICActionNotAdmittedItem_t;
typedef struct {
uint8_t contentLength;
- RICActionNotAdmittedItem_t RICActionNotAdmittedItem[16]; // table size is const cMaxofRICactionID
+ RICActionNotAdmittedItem_t RICActionNotAdmittedItem[16]; // Table size is const cMaxofRICactionID
} RICActionNotAdmittedList_t;
enum Criticality_t {
};
typedef struct {
- uint8_t iECriticality; // this is type of enum Criticality_t
+ uint8_t iECriticality; // This is type of enum Criticality_t
ProtocolIE_ID__t iE_ID;
- uint8_t typeOfError; // this is type of enum TypeOfError_t
+ uint8_t typeOfError; // This is type of enum TypeOfError_t
//iE-Extensions // This has no content in E2AP ASN.1 specification
} CriticalityDiagnosticsIEListItem_t;
typedef struct {
bool procedureCodePresent;
- ProcedureCode__t procedureCode;
+ ProcedureCode__t procedureCode; // OPTIONAL
bool triggeringMessagePresent;
- uint8_t triggeringMessage; // this is type of enum TriggeringMessage_t
+ uint8_t triggeringMessage; // OPTIONAL. This is type of enum TriggeringMessage_t
bool procedureCriticalityPresent;
- uint8_t procedureCriticality; // this is type of enum Criticality_t
+ uint8_t procedureCriticality; // OPTIONAL. This is type of enum Criticality_t
+ bool ricRequestorIDPresent;
+ RICRequestID_t ricRequestorID; //OPTIONAL
bool iEsCriticalityDiagnosticsPresent;
- uint16_t criticalityDiagnosticsIELength;
- CriticalityDiagnosticsIEListItem_t criticalityDiagnosticsIEListItem[256]; // table size is const cMaxNrOfErrors
- //iE-Extensions // This has no content in E2AP ASN.1 specification
-
+ uint16_t criticalityDiagnosticsIELength; // 1..256
+ CriticalityDiagnosticsIEListItem_t criticalityDiagnosticsIEListItem[256]; // OPTIONAL. Table size is const cMaxNrOfErrors
} CriticalityDiagnostics__t;
-typedef int32_t RICIndicationSN_t;
-
-enum RICIndicationType_t {
- RICIndicationType_RICIndicationTypeReport,
- RICIndicationType_RICIndicationTypeInsert
-};
-
-typedef struct {
- OctetString_t octetString; // E2AP spec format, the other elements for E2SM-X2 format
- InterfaceID_t interfaceID;
- uint8_t interfaceDirection;
-} RICIndicationHeader_t;
-
-typedef struct {
- OctetString_t octetString; // E2AP spec format, the other elements for E2SM-X2 format
- OctetString_t interfaceMessage;
-} RICIndicationMessage_t;
-
typedef struct {
OctetString_t octetString; // E2AP spec format, the other elements for E2SM-X2 format
uint64_t ricCallProcessIDVal;
e2err_RICSubscriptionRequestAllocRANfunctionIDFail,
e2err_RICSubscriptionRequestAllocRICeventTriggerDefinitionBufFail,
e2err_RICSubscriptionRequestAllocRICaction_ToBeSetup_ItemIEsFail,
+ e2err_RICSubscriptionRequestAllocRICactionDefinitionBufFail,
+ e2err_RICSubscriptionRequestAllocRICactionDefinitionFail,
e2err_RICSubscriptionRequestAllocRICsubsequentActionFail,
e2err_RICSubscriptionRequestAllocRICsubscriptionRequest_IEsFail,
e2err_RICSubscriptionRequestEncodeFail,
e2err_RICSubscriptionRequestAllocE2AP_PDUFail,
- e2err_RICEventTriggerDefinitionIEValueFail_1,
- e2err_RICIndicationAllocRICEventTriggerDefinitionglobal_eNB_IDpLMN_IdentityBufFail,
- e2err_RICIndicationAllocRICEventTriggerDefinitionglobal_eNB_IDeNB_IDmacro_eNB_IDBufFail,
- e2err_RICIndicationAllocRICEventTriggerDefinitionglobal_eNB_IDeNB_IDhome_eNB_IDBufFail,
- e2err_RICIndicationAllocRICEventTriggerDefinitionglobal_eNB_IDeNB_IDshort_Macro_eNB_IDBufFail,
- e2err_RICIndicationAllocRICEventTriggerDefinitionglobal_eNB_IDeNB_IDlong_Macro_eNB_IDBufFail,
- e2err_RICEventTriggerDefinitionIEValueFail_2,
- e2err_RICIndicationAllocRICEventTriggerDefinitionglobal_gNB_IDpLMN_IdentityBufFail,
- e2err_RICIndicationAllocRICEventTriggerDefinitionglobal_gNB_IDgNB_IDBufFail,
- e2err_RICEventTriggerDefinitionIEValueFail_3,
- e2err_RICEventTriggerDefinitionIEValueFail_4,
- e2err_RICEventTriggerDefinitionPackFail_1,
- e2err_RICEventTriggerDefinitionPackFail_2,
- e2err_RICEventTriggerDefinitionAllocE2SM_gNB_X2_eventTriggerDefinitionFail,
e2err_RICSubscriptionResponseAllocRICrequestIDFail,
e2err_RICSubscriptionResponseAllocRANfunctionIDFail,
e2err_RICSubscriptionResponseAllocRICaction_Admitted_ItemIEsFail,
e2err_RICSubscriptionResponseAllocRICActionAdmittedListFail,
e2err_RICSubscriptionResponseAllocRICaction_NotAdmitted_ItemIEsFail,
- e2err_RICSubscriptionResponseAllocRICActionNotAdmittedListFail,
e2err_RICSubscriptionResponseEncodeFail,
e2err_RICSubscriptionResponseAllocE2AP_PDUFail,
e2err_RICSubscriptionFailureAllocRICrequestIDFail,
e2err_RICSubscriptionFailureAllocRANfunctionIDFail,
e2err_RICSubscriptionFailureAllocRICaction_NotAdmitted_ItemIEsFail,
- e2err_RICSubscriptionFailureAllocRICActionAdmittedListFail,
+ e2err_RICSubscriptionFailureAllocCauseFail,
e2err_RICSubscriptionFailureEncodeFail,
e2err_RICSubscriptionFailureAllocE2AP_PDUFail,
- e2err_RICIndicationRICrequestIDFail,
- e2err_RICIndicationAllocRANfunctionIDFail,
- e2err_RICIndicationAllocRICactionIDFail,
- e2err_RICIndicationAllocRICindicationSNFail,
- e2err_RICIndicationAllocRICindicationTypeFail,
- e2err_RICIndicationAllocRRICindicationHeaderBufFail,
- e2err_RICIndicationAllocRICindicationHeaderFail,
- e2err_RICIndicationAllocRICindicationMessageBufFail,
- e2err_RICIndicationAllocRICindicationMessageFail,
- e2err_RICIndicationEncodeFail,
- e2err_RICIndicationAllocE2AP_PDUFail,
- e2err_RICindicationHeaderIEValueFail_1,
- e2err_RICIndicationAllocRICIndicationHeaderglobal_eNB_IDpLMN_IdentityBufFail,
- e2err_RICIndicationAllocRICIndicationHeaderglobal_eNB_IDeNB_IDmacro_eNB_IDBufFail,
- e2err_RICIndicationAllocRICIndicationHeaderglobal_eNB_IDeNB_IDhome_eNB_IDBufFail,
- e2err_RICIndicationAllocRICIndicationHeaderglobal_eNB_IDeNB_IDshort_Macro_eNB_IDBufFail,
- e2err_RICIndicationAllocRICIndicationHeaderglobal_eNB_IDeNB_IDlong_Macro_eNB_IDBufFail,
- e2err_RICindicationHeaderIEValueFail_2,
- e2err_RICIndicationAllocRICIndicationHeaderglobal_gNB_IDpLMN_IdentityBufFail,
- e2err_RICIndicationAllocRICIndicationHeaderglobal_gNB_IDgNB_IDgNB_IDBufFail,
- e2err_RICindicationHeaderIEValueFail_3,
- e2err_RICindicationHeaderPackFail_1,
- e2err_RICindicationHeaderPackFail_2,
- e2err_RICIndicationHeaderAllocE2AP_PDUFail,
- e2err_RICIndicationMessageAllocinterfaceMessageFail,
- e2err_RICindicationMessagePackFail_1,
- e2err_RICindicationMessagePackFail_2,
- e2err_E2SM_gNB_X2_indicationMessageAllocE2AP_PDUFail,
e2err_RICSubscriptionDeleteRequestAllocRICrequestIDFail,
e2err_RICSubscriptionDeleteRequestAllocRANfunctionIDFail,
e2err_RICSubscriptionDeleteRequestEncodeFail,
e2err_RICsubscriptionRequestRICrequestIDMissing,
e2err_RICsubscriptionRequestRANfunctionIDMissing,
e2err_RICsubscriptionRequestICsubscriptionMissing,
- e2err_RICEventTriggerDefinitionIEValueFail_5,
- e2err_RICEventTriggerDefinitionIEValueFail_6,
- e2err_RICEventTriggerDefinitionIEValueFail_7,
- e2err_RICEventTriggerDefinitionIEValueFail_8,
- e2err_RICEventTriggerDefinitionDecodeWMOREFail,
- e2err_RICEventTriggerDefinitionDecodeFAIL,
- e2err_RICEventTriggerDefinitionDecodeDefaultFail,
e2err_RICsubscriptionResponseRICrequestIDMissing,
e2err_RICsubscriptionResponseRANfunctionIDMissing,
e2err_RICsubscriptionResponseRICaction_Admitted_ListMissing,
e2err_RICsubscriptionFailureRICrequestIDMissing,
e2err_RICsubscriptionFailureRANfunctionIDMissing,
- e2err_RICsubscriptionFailureRICaction_NotAdmitted_ListMissing,
- e2err_RICindicationRICrequestIDMissing,
- e2err_RICindicationRANfunctionIDMissing,
- e2err_RICindicationRICactionIDMissing,
- e2err_RICindicationRICindicationSNMissing,
- e2err_RICindicationRICindicationTypeMissing,
- e2err_RICIndicationHeaderContentLengthFail,
- e2err_RICindicationRICindicationHeaderMissing,
- e2err_RICIndicationMessageContentLengthFail,
- e2err_RICindicationRICindicationMessageMissing,
- e2err_RICEventTriggerDefinitionIEValueFail_9,
- e2err_RICEventTriggerDefinitionIEValueFail_10,
- e2err_RICEventTriggerDefinitionIEValueFail_11,
- e2err_RICIndicationHeaderDecodeWMOREFail,
- e2err_RICIndicationHeaderDecodeFAIL,
- e2err_RICIndicationHeaderDecodeDefaultFail,
- e2err_RICIndicationMessageIEContentLengthFail,
- e2err_RICIndicationMessageDecodeWMOREFail,
- e2err_RICIndicationMessageDecodeFAIL,
- e2err_RICIndicationMessageDecodeDefaultFail,
+ e2err_RICsubscriptionFailureCauseMissing,
e2err_RICsubscriptionDeleteRequestRICrequestIDMissing,
e2err_RICsubscriptionDeleteRequestRANfunctionIDMissing,
e2err_RICsubscriptionDeleteResponseRICrequestIDMissing,
e2err_RICsubscriptionDeleteResponseRANfunctionIDMissing,
e2err_RICsubscriptionDeleteFailureRICrequestIDMissing,
e2err_RICsubscriptionDeleteFailureRANfunctionIDMissing,
- e2err_RICsubscriptionDeleteFailureRICcauseMissing
+ e2err_RICsubscriptionDeleteFailureRICcauseMissing,
+ e2err_RICSubscriptionDeleteRequiredRICrequestIDMissing,
+ e2err_RICSubscriptionDeleteRequiredRANfunctionIDMissing,
+ e2err_RICSubscriptionDeleteRequiredRICcauseMissing,
+ e2err_RICSubscriptionDeleteRequiredEncodeFail,
+ e2err_RICSubscriptionDeleteRequiredAllocE2AP_PDUFail
};
-
static const char* const E2ErrorStrings[] = {
"e2err_OK",
"e2err_RICSubscriptionRequestAllocRICrequestIDFail",
"e2err_RICSubscriptionRequestAllocRANfunctionIDFail",
"e2err_RICSubscriptionRequestAllocRICeventTriggerDefinitionBufFail",
"e2err_RICSubscriptionRequestAllocRICaction_ToBeSetup_ItemIEsFail",
+ "e2err_RICSubscriptionRequestAllocRICactionDefinitionBufFail",
+ "e2err_RICSubscriptionRequestAllocRICactionDefinitionFail",
"e2err_RICSubscriptionRequestAllocRICsubsequentActionFail",
"e2err_RICSubscriptionRequestAllocRICsubscriptionRequest_IEsFail",
"e2err_RICSubscriptionRequestEncodeFail",
"e2err_RICSubscriptionRequestAllocE2AP_PDUFail",
- "e2err_RICEventTriggerDefinitionIEValueFail_1",
- "e2err_RICIndicationAllocRICEventTriggerDefinitionglobal_eNB_IDpLMN_IdentityBufFail",
- "e2err_RICIndicationAllocRICEventTriggerDefinitionglobal_eNB_IDeNB_IDmacro_eNB_IDBufFail",
- "e2err_RICIndicationAllocRICEventTriggerDefinitionglobal_eNB_IDeNB_IDhome_eNB_IDBufFail",
- "e2err_RICIndicationAllocRICEventTriggerDefinitionglobal_eNB_IDeNB_IDshort_Macro_eNB_IDBufFail",
- "e2err_RICIndicationAllocRICEventTriggerDefinitionglobal_eNB_IDeNB_IDlong_Macro_eNB_IDBufFail",
- "e2err_RICEventTriggerDefinitionIEValueFail_2",
- "e2err_RICIndicationAllocRICEventTriggerDefinitionglobal_gNB_IDpLMN_IdentityBufFail",
- "e2err_RICIndicationAllocRICEventTriggerDefinitionglobal_gNB_IDgNB_IDBufFail",
- "e2err_RICEventTriggerDefinitionIEValueFail_3",
- "e2err_RICEventTriggerDefinitionIEValueFail_4",
- "e2err_RICEventTriggerDefinitionPackFail_1",
- "e2err_RICEventTriggerDefinitionPackFail_2",
- "e2err_RICEventTriggerDefinitionAllocE2SM_gNB_X2_eventTriggerDefinitionFail",
"e2err_RICSubscriptionResponseAllocRICrequestIDFail",
"e2err_RICSubscriptionResponseAllocRANfunctionIDFail",
"e2err_RICSubscriptionResponseAllocRICaction_Admitted_ItemIEsFail",
"e2err_RICSubscriptionResponseAllocRICActionAdmittedListFail",
"e2err_RICSubscriptionResponseAllocRICaction_NotAdmitted_ItemIEsFail",
- "e2err_RICSubscriptionResponseAllocRICActionNotAdmittedListFail",
"e2err_RICSubscriptionResponseEncodeFail",
"e2err_RICSubscriptionResponseAllocE2AP_PDUFail",
"e2err_RICSubscriptionFailureAllocRICrequestIDFail",
"e2err_RICSubscriptionFailureAllocRANfunctionIDFail",
"e2err_RICSubscriptionFailureAllocRICaction_NotAdmitted_ItemIEsFail",
- "e2err_RICSubscriptionFailureAllocRICActionAdmittedListFail",
+ "e2err_RICSubscriptionFailureAllocCauseFail",
"e2err_RICSubscriptionFailureEncodeFail",
"e2err_RICSubscriptionFailureAllocE2AP_PDUFail",
- "e2err_RICIndicationRICrequestIDFail",
- "e2err_RICIndicationAllocRANfunctionIDFail",
- "e2err_RICIndicationAllocRICactionIDFail",
- "e2err_RICIndicationAllocRICindicationSNFail",
- "e2err_RICIndicationAllocRICindicationTypeFail",
- "e2err_RICIndicationAllocRRICindicationHeaderBufFail",
- "e2err_RICIndicationAllocRICindicationHeaderFail",
- "e2err_RICIndicationAllocRICindicationMessageBufFail",
- "e2err_RICIndicationAllocRICindicationMessageFail",
- "e2err_RICIndicationEncodeFail",
- "e2err_RICIndicationAllocE2AP_PDUFail",
- "e2err_RICindicationHeaderIEValueFail_1",
- "e2err_RICIndicationAllocRICIndicationHeaderglobal_eNB_IDpLMN_IdentityBufFail",
- "e2err_RICIndicationAllocRICIndicationHeaderglobal_eNB_IDeNB_IDmacro_eNB_IDBufFail",
- "e2err_RICIndicationAllocRICIndicationHeaderglobal_eNB_IDeNB_IDhome_eNB_IDBufFail",
- "e2err_RICIndicationAllocRICIndicationHeaderglobal_eNB_IDeNB_IDshort_Macro_eNB_IDBufFail",
- "e2err_RICIndicationAllocRICIndicationHeaderglobal_eNB_IDeNB_IDlong_Macro_eNB_IDBufFail",
- "e2err_RICindicationHeaderIEValueFail_2",
- "e2err_RICIndicationAllocRICIndicationHeaderglobal_gNB_IDpLMN_IdentityBufFail",
- "e2err_RICIndicationAllocRICIndicationHeaderglobal_gNB_IDgNB_IDgNB_IDBufFail",
- "e2err_RICindicationHeaderIEValueFail_3",
- "e2err_RICindicationHeaderPackFail_1",
- "e2err_RICindicationHeaderPackFail_2",
- "e2err_RICIndicationHeaderAllocE2AP_PDUFail",
- "e2err_RICIndicationMessageAllocinterfaceMessageFail",
- "e2err_RICindicationMessagePackFail_1",
- "e2err_RICindicationMessagePackFail_2",
- "e2err_E2SM_gNB_X2_indicationMessageAllocE2AP_PDUFail",
"e2err_RICSubscriptionDeleteRequestAllocRICrequestIDFail",
"e2err_RICSubscriptionDeleteRequestAllocRANfunctionIDFail",
"e2err_RICSubscriptionDeleteRequestEncodeFail",
"e2err_RICsubscriptionRequestRICrequestIDMissing",
"e2err_RICsubscriptionRequestRANfunctionIDMissing",
"e2err_RICsubscriptionRequestICsubscriptionMissing",
- "e2err_RICEventTriggerDefinitionIEValueFail_5",
- "e2err_RICEventTriggerDefinitionIEValueFail_6",
- "e2err_RICEventTriggerDefinitionIEValueFail_7",
- "e2err_RICEventTriggerDefinitionIEValueFail_8",
- "e2err_RICEventTriggerDefinitionDecodeWMOREFail",
- "e2err_RICEventTriggerDefinitionDecodeFAIL",
- "e2err_RICEventTriggerDefinitionDecodeDefaultFail",
"e2err_RICsubscriptionResponseRICrequestIDMissing",
"e2err_RICsubscriptionResponseRANfunctionIDMissing",
"e2err_RICsubscriptionResponseRICaction_Admitted_ListMissing",
"e2err_RICsubscriptionFailureRICrequestIDMissing",
"e2err_RICsubscriptionFailureRANfunctionIDMissing",
- "e2err_RICsubscriptionFailureRICaction_NotAdmitted_ListMissing",
- "e2err_RICindicationRICrequestIDMissing",
- "e2err_RICindicationRANfunctionIDMissing",
- "e2err_RICindicationRICactionIDMissing",
- "e2err_RICindicationRICindicationSNMissing",
- "e2err_RICindicationRICindicationTypeMissing",
- "e2err_RICIndicationHeaderContentLengthFail",
- "e2err_RICindicationRICindicationHeaderMissing",
- "e2err_RICIndicationMessageContentLengthFail",
- "e2err_RICindicationRICindicationMessageMissing",
- "e2err_RICEventTriggerDefinitionIEValueFail_9",
- "e2err_RICEventTriggerDefinitionIEValueFail_10",
- "e2err_RICEventTriggerDefinitionIEValueFail_11",
- "e2err_RICIndicationHeaderDecodeWMOREFail",
- "e2err_RICIndicationHeaderDecodeFAIL",
- "e2err_RICIndicationHeaderDecodeDefaultFail",
- "e2err_RICIndicationMessageIEContentLengthFail",
- "e2err_RICIndicationMessageDecodeWMOREFail",
- "e2err_RICIndicationMessageDecodeFAIL",
- "e2err_RICIndicationMessageDecodeDefaultFail",
+ "e2err_RICsubscriptionFailureCauseMissing",
"e2err_RICsubscriptionDeleteRequestRICrequestIDMissing",
"e2err_RICsubscriptionDeleteRequestRANfunctionIDMissing",
"e2err_RICsubscriptionDeleteResponseRICrequestIDMissing",
"e2err_RICsubscriptionDeleteResponseRANfunctionIDMissing",
"e2err_RICsubscriptionDeleteFailureRICrequestIDMissing",
"e2err_RICsubscriptionDeleteFailureRANfunctionIDMissing",
- "e2err_RICsubscriptionDeleteFailureRICcauseMissing"
+ "e2err_RICsubscriptionDeleteFailureRICcauseMissing",
+ "e2err_RICSubscriptionDeleteRequiredRICrequestIDMissing",
+ "e2err_RICSubscriptionDeleteRequiredRANfunctionIDMissing",
+ "e2err_RICSubscriptionDeleteRequiredRICcauseMissing",
+ "e2err_RICSubscriptionDeleteRequiredEncodeFail",
+ "e2err_RICSubscriptionDeleteRequiredAllocE2AP_PDUFail",
};
typedef struct {
// Initiating message
extern const uint64_t cRICSubscriptionRequest;
extern const uint64_t cRICSubscriptionDeleteRequest;
-extern const uint64_t cRICIndication;
+extern const uint64_t cRICSubscriptionDeleteRequired;
// Successful outcome
extern const uint64_t cRICSubscriptionResponse;
typedef struct {
RICRequestID_t ricRequestID;
RANFunctionID_t ranFunctionID;
- RICSubscription_t ricSubscription;
+ RICSubscriptionDetails_t ricSubscriptionDetails;
} RICSubscriptionRequest_t;
typedef struct {
RICActionNotAdmittedList_t ricActionNotAdmittedList;
} RICSubscriptionResponse_t;
-
typedef struct {
RICRequestID_t ricRequestID;
RANFunctionID_t ranFunctionID;
- RICActionNotAdmittedList_t ricActionNotAdmittedList;
+ RICCause_t cause;
bool criticalityDiagnosticsPresent;
CriticalityDiagnostics__t criticalityDiagnostics;
} RICSubscriptionFailure_t;
-typedef struct {
- RICRequestID_t ricRequestID;
- RANFunctionID_t ranFunctionID;
- RICActionID_t ricActionID;
- RICIndicationSN_t ricIndicationSN;
- uint64_t ricIndicationType; // this is type of enum RICIndicationType_t
- RICIndicationHeader_t ricIndicationHeader;
- RICIndicationMessage_t ricIndicationMessage;
- RICCallProcessID_t ricCallProcessID; // Not usein RIC currently
-} RICIndication_t;
-
typedef struct {
RICRequestID_t ricRequestID;
RANFunctionID_t ranFunctionID;
typedef struct {
RICRequestID_t ricRequestID;
RANFunctionID_t ranFunctionID;
- RICCause_t ricCause;
+ RICCause_t cause;
bool criticalityDiagnosticsPresent;
- CriticalityDiagnostics__t criticalityDiagnostics; // Not usein RIC currently
+ CriticalityDiagnostics__t criticalityDiagnostics; // OPTIONAL. Not used in RIC currently
} RICSubscriptionDeleteFailure_t;
+typedef struct {
+ RICRequestID_t ricRequestID;
+ RANFunctionID_t ranFunctionID;
+ RICCause_t cause;
+} RICSubscriptionDeleteRequired_t;
+
+typedef struct {
+ int noOfRanSubscriptions;
+ RICSubscriptionDeleteRequired_t ranSubscriptionsDelRequired[1024];
+
+} RICSubsDeleteRequired_t;
+
//////////////////////////////////////////////////////////////////////
// Function declarations
+void allowASN1DebugPrints(bool);
+
const char* getE2ErrorString(uint64_t);
typedef void* e2ap_pdu_ptr_t;
uint64_t packRICSubscriptionRequest(size_t*, byte*, char*,RICSubscriptionRequest_t*);
-uint64_t packRICEventTriggerDefinition(char*,RICEventTriggerDefinition_t*);
uint64_t packRICSubscriptionResponse(size_t*, byte*, char*,RICSubscriptionResponse_t*);
uint64_t packRICSubscriptionFailure(size_t*, byte*, char*,RICSubscriptionFailure_t*);
-uint64_t packRICIndication(size_t*, byte*, char*,RICIndication_t*);
-uint64_t packRICIndicationHeader(char*,RICIndicationHeader_t*);
-uint64_t packRICIndicationMessage(char*,RICIndicationMessage_t*);
uint64_t packRICSubscriptionDeleteRequest(size_t*, byte*, char*,RICSubscriptionDeleteRequest_t*);
uint64_t packRICSubscriptionDeleteResponse(size_t*, byte*, char*,RICSubscriptionDeleteResponse_t*);
uint64_t packRICSubscriptionDeleteFailure(size_t*, byte*, char*,RICSubscriptionDeleteFailure_t*);
+uint64_t packRICSubscriptionDeleteRequired(size_t*, byte*, char*,RICSubsDeleteRequired_t*);
e2ap_pdu_ptr_t* unpackE2AP_pdu(const size_t, const byte*, char*, E2MessageInfo_t*);
uint64_t getRICSubscriptionRequestData(e2ap_pdu_ptr_t*, RICSubscriptionRequest_t*);
-uint64_t getRICEventTriggerDefinitionData(RICEventTriggerDefinition_t*);
uint64_t getRICSubscriptionResponseData(e2ap_pdu_ptr_t*, RICSubscriptionResponse_t*);
uint64_t getRICSubscriptionFailureData(e2ap_pdu_ptr_t*, RICSubscriptionFailure_t*);
-uint64_t getRICIndicationData(e2ap_pdu_ptr_t*, RICIndication_t*);
-uint64_t getRICIndicationHeaderData(RICIndicationHeader_t*);
-uint64_t getRICIndicationMessageData(RICIndicationMessage_t*);
uint64_t getRICSubscriptionDeleteRequestData(e2ap_pdu_ptr_t*, RICSubscriptionDeleteRequest_t*);
uint64_t getRICSubscriptionDeleteResponseData(e2ap_pdu_ptr_t*, RICSubscriptionDeleteResponse_t*);
uint64_t getRICSubscriptionDeleteFailureData(e2ap_pdu_ptr_t*, RICSubscriptionDeleteFailure_t*);
-
+uint64_t getRICSubscriptionDeleteRequiredData(e2ap_pdu_ptr_t*, RICSubsDeleteRequired_t*);
#if DEBUG
bool TestRICSubscriptionRequest();
bool TestRICSubscriptionResponse();
bool TestRICSubscriptionFailure();
-bool TestRICIndication();
bool TestRICSubscriptionDeleteRequest();
bool TestRICSubscriptionDeleteResponse();
bool TestRICSubscriptionDeleteFailure();
+bool TestRICSubscriptionDeleteRequired();
void printRICSubscriptionRequest(const RICSubscriptionRequest_t*);
void printRICSubscriptionResponse(const RICSubscriptionResponse_t*);
void printRICSubscriptionFailure(const RICSubscriptionFailure_t*);
-void printRICIndication(const RICIndication_t*);
void printRICSubscriptionDeleteRequest(const RICSubscriptionDeleteRequest_t*);
void printRICSubscriptionDeleteResponse(const RICSubscriptionDeleteResponse_t*);
void printRICSubscriptionDeleteFailure(const RICSubscriptionDeleteFailure_t*);
+void printRICSubscriptionDeleteRequired(const RICSubsDeleteRequired_t*);
#endif
#ifdef __cplusplus