X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=e2ap%2Flibe2ap_wrapper%2FE2AP_if.h;h=a98570c223f8c826cb9dad5089dbafca70d8a4b1;hb=HEAD;hp=1e81852a55507b9b978f566fd0afd56b0637a25a;hpb=114fa2c930c5a24078b6ceba68254b2f209c5916;p=ric-plt%2Fsubmgr.git diff --git a/e2ap/libe2ap_wrapper/E2AP_if.h b/e2ap/libe2ap_wrapper/E2AP_if.h index 1e81852..a98570c 100644 --- a/e2ap/libe2ap_wrapper/E2AP_if.h +++ b/e2ap/libe2ap_wrapper/E2AP_if.h @@ -26,6 +26,7 @@ #include #include +#include #ifdef __cplusplus extern "C" { @@ -33,59 +34,48 @@ 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 dummy 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, @@ -108,15 +98,15 @@ enum RICTimeToWait_t { }; 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; @@ -125,7 +115,7 @@ static const uint64_t cMaxofRICactionID = 16; 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 { @@ -163,100 +153,33 @@ enum InterfaceDirection__t { 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 { @@ -279,24 +202,24 @@ enum TypeOfError_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 struct { @@ -312,39 +235,25 @@ enum e2err { 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_E2SM_gNB_X2_indicationMessageAllocE2AP_PDUFail, e2err_RICSubscriptionDeleteRequestAllocRICrequestIDFail, e2err_RICSubscriptionDeleteRequestAllocRANfunctionIDFail, e2err_RICSubscriptionDeleteRequestEncodeFail, @@ -361,29 +270,36 @@ enum e2err { 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_RICEventTriggerDefinitionIEValueFail_9, - e2err_RICEventTriggerDefinitionIEValueFail_10, - e2err_RICEventTriggerDefinitionIEValueFail_11, + 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, + e2err_RICsubscriptionResponseRICrequestIDWrongOrder, + e2err_RICsubscriptionResponseRANfunctionIDWrongOrder, + e2err_RICsubscriptionResponseRICaction_Admitted_ListWrongOrder, + e2err_RICsubscriptionResponseRICaction_NotAdmitted_ListWrongOrder, + e2err_RICsubscriptionFailureRICrequestIDWrongOrder, + e2err_RICsubscriptionFailureRANfunctionIDWrongOrder, + e2err_RICsubscriptionFailureCauseWrongOrder, + e2err_RICsubscriptionDeleteResponseRICrequestIDWrongOrder, + e2err_RICsubscriptionDeleteResponseRANfunctionIDWrongOrder, + e2err_RICsubscriptionDeleteFailureRICrequestIDWrongOrder, + e2err_RICsubscriptionDeleteFailureRANfunctionIDWrongOrder, + e2err_RICsubscriptionDeleteFailureRICcauseWrongOrder }; static const char* const E2ErrorStrings[] = { @@ -392,39 +308,25 @@ static const char* const E2ErrorStrings[] = { "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_E2SM_gNB_X2_indicationMessageAllocE2AP_PDUFail", "e2err_RICSubscriptionDeleteRequestAllocRICrequestIDFail", "e2err_RICSubscriptionDeleteRequestAllocRANfunctionIDFail", "e2err_RICSubscriptionDeleteRequestEncodeFail", @@ -441,29 +343,31 @@ static const char* const E2ErrorStrings[] = { "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_RICEventTriggerDefinitionIEValueFail_9", - "e2err_RICEventTriggerDefinitionIEValueFail_10", - "e2err_RICEventTriggerDefinitionIEValueFail_11", + "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", + "e2err_RICsubscriptionResponseRICrequestIDWrongOrder", + "e2err_RICsubscriptionResponseRANfunctionIDWrongOrder", + "e2err_RICsubscriptionResponseRICaction_Admitted_ListWrongOrder", + "e2err_RICsubscriptionResponseRICaction_NotAdmitted_ListWrongOrder", + "e2err_RICsubscriptionFailureRICrequestIDWrongOrder", + "e2err_RICsubscriptionFailureRANfunctionIDWrongOrder", + "e2err_RICsubscriptionFailureCauseWrongOrder", }; typedef struct { @@ -484,6 +388,7 @@ extern const uint64_t cE2UnsuccessfulOutcome; // Initiating message extern const uint64_t cRICSubscriptionRequest; extern const uint64_t cRICSubscriptionDeleteRequest; +extern const uint64_t cRICSubscriptionDeleteRequired; // Successful outcome extern const uint64_t cRICSubscriptionResponse; @@ -496,7 +401,7 @@ extern const uint64_t cRICsubscriptionDeleteFailure; typedef struct { RICRequestID_t ricRequestID; RANFunctionID_t ranFunctionID; - RICSubscription_t ricSubscription; + RICSubscriptionDetails_t ricSubscriptionDetails; } RICSubscriptionRequest_t; typedef struct { @@ -507,11 +412,10 @@ 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; @@ -529,34 +433,50 @@ typedef struct { typedef struct { RICRequestID_t ricRequestID; RANFunctionID_t ranFunctionID; - RICCause_t ricCause; + RICCause_t cause; bool criticalityDiagnosticsPresent; - CriticalityDiagnostics__t criticalityDiagnostics; // Not used in 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); + +void allowOutOfOrderIEMsg(uint8_t); + 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 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 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(); @@ -565,6 +485,7 @@ bool TestRICSubscriptionFailure(); bool TestRICSubscriptionDeleteRequest(); bool TestRICSubscriptionDeleteResponse(); bool TestRICSubscriptionDeleteFailure(); +bool TestRICSubscriptionDeleteRequired(); void printRICSubscriptionRequest(const RICSubscriptionRequest_t*); void printRICSubscriptionResponse(const RICSubscriptionResponse_t*); @@ -572,6 +493,7 @@ void printRICSubscriptionFailure(const RICSubscriptionFailure_t*); void printRICSubscriptionDeleteRequest(const RICSubscriptionDeleteRequest_t*); void printRICSubscriptionDeleteResponse(const RICSubscriptionDeleteResponse_t*); void printRICSubscriptionDeleteFailure(const RICSubscriptionDeleteFailure_t*); +void printRICSubscriptionDeleteRequired(const RICSubsDeleteRequired_t*); #endif #ifdef __cplusplus