extern "C" {
#endif
-extern const int cCauseRICRequest;
-extern const int cCauseRICService;
-extern const int cCauseTransport;
-extern const int cCauseProtocol;
-extern const int cCauseMisc;
-
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!
RICActionType_policy
};
-
enum RICSubsequentActionType_t {
RICSubsequentActionType_Continue,
RICSubsequentActionType_wait
typedef uint8_t ProcedureCode__t;
-
-static const uint64_t cMaxofProtocolIE = 15;
-
typedef struct {
OctetString_t octetString; // This element is E2AP spec format
} RICEventTriggerDefinition_t;
RICActionID_t ricActionID[16]; // Table size is const cMaxofRICactionID
} RICActionAdmittedList_t;
-extern const int cCauseRIC; // This is content of type CauseRIC_t
-extern const int cCauseRICService; // This is content of type CauseRICservice_t
-extern const int cRICCauseTransport; // This is content of type CauseTransport_t
-extern const int cRICCauseProtocol; // This is content of type CauseProtocol_t
-extern const int cRICCauseMisc; // This is content of type CauseMisc_t
-
typedef struct {
uint8_t content; // See above constants
uint8_t causeVal; // This is type of enum CauseRIC_t
e2err_RICSubscriptionFailureAllocRICrequestIDFail,
e2err_RICSubscriptionFailureAllocRANfunctionIDFail,
e2err_RICSubscriptionFailureAllocRICaction_NotAdmitted_ItemIEsFail,
- e2err_RICSubscriptionFailureAllocRICActionAdmittedListFail,
+ e2err_RICSubscriptionFailureAllocCauseFail,
e2err_RICSubscriptionFailureEncodeFail,
e2err_RICSubscriptionFailureAllocE2AP_PDUFail,
e2err_RICSubscriptionDeleteRequestAllocRICrequestIDFail,
e2err_RICsubscriptionResponseRICaction_Admitted_ListMissing,
e2err_RICsubscriptionFailureRICrequestIDMissing,
e2err_RICsubscriptionFailureRANfunctionIDMissing,
- e2err_RICsubscriptionFailureRICaction_NotAdmitted_ListMissing,
+ 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[] = {
"e2err_RICSubscriptionFailureAllocRICrequestIDFail",
"e2err_RICSubscriptionFailureAllocRANfunctionIDFail",
"e2err_RICSubscriptionFailureAllocRICaction_NotAdmitted_ItemIEsFail",
- "e2err_RICSubscriptionFailureAllocRICActionAdmittedListFail",
+ "e2err_RICSubscriptionFailureAllocCauseFail",
"e2err_RICSubscriptionFailureEncodeFail",
"e2err_RICSubscriptionFailureAllocE2AP_PDUFail",
"e2err_RICSubscriptionDeleteRequestAllocRICrequestIDFail",
"e2err_RICsubscriptionResponseRICaction_Admitted_ListMissing",
"e2err_RICsubscriptionFailureRICrequestIDMissing",
"e2err_RICsubscriptionFailureRANfunctionIDMissing",
- "e2err_RICsubscriptionFailureRICaction_NotAdmitted_ListMissing",
+ "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 {
// Initiating message
extern const uint64_t cRICSubscriptionRequest;
extern const uint64_t cRICSubscriptionDeleteRequest;
+extern const uint64_t cRICSubscriptionDeleteRequired;
// Successful outcome
extern const uint64_t cRICSubscriptionResponse;
typedef struct {
RICRequestID_t ricRequestID;
RANFunctionID_t ranFunctionID;
- RICActionNotAdmittedList_t ricActionNotAdmittedList;
+ RICCause_t cause;
bool criticalityDiagnosticsPresent;
CriticalityDiagnostics__t criticalityDiagnostics;
} RICSubscriptionFailure_t;
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 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 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 TestRICSubscriptionDeleteRequest();
bool TestRICSubscriptionDeleteResponse();
bool TestRICSubscriptionDeleteFailure();
+bool TestRICSubscriptionDeleteRequired();
void printRICSubscriptionRequest(const RICSubscriptionRequest_t*);
void printRICSubscriptionResponse(const RICSubscriptionResponse_t*);
void printRICSubscriptionDeleteRequest(const RICSubscriptionDeleteRequest_t*);
void printRICSubscriptionDeleteResponse(const RICSubscriptionDeleteResponse_t*);
void printRICSubscriptionDeleteFailure(const RICSubscriptionDeleteFailure_t*);
+void printRICSubscriptionDeleteRequired(const RICSubsDeleteRequired_t*);
#endif
#ifdef __cplusplus