RIC:1060: Change in PTL
[ric-plt/submgr.git] / e2ap / libe2ap_wrapper / E2AP_if.h
index c52db2b..a98570c 100644 (file)
 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!
@@ -75,7 +67,6 @@ enum RICActionType_t {
      RICActionType_policy
 };
 
-
 enum RICSubsequentActionType_t {
        RICSubsequentActionType_Continue,
        RICSubsequentActionType_wait
@@ -162,9 +153,6 @@ enum InterfaceDirection__t {
 
 typedef uint8_t ProcedureCode__t;
 
-
-static const uint64_t cMaxofProtocolIE = 15;
-
 typedef struct {
     OctetString_t octetString;   // This element is E2AP spec format
 } RICEventTriggerDefinition_t;
@@ -179,12 +167,6 @@ typedef struct {
        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
@@ -269,7 +251,7 @@ enum e2err {
     e2err_RICSubscriptionFailureAllocRICrequestIDFail,
     e2err_RICSubscriptionFailureAllocRANfunctionIDFail,
     e2err_RICSubscriptionFailureAllocRICaction_NotAdmitted_ItemIEsFail,
-    e2err_RICSubscriptionFailureAllocRICActionAdmittedListFail,
+    e2err_RICSubscriptionFailureAllocCauseFail,
     e2err_RICSubscriptionFailureEncodeFail,
     e2err_RICSubscriptionFailureAllocE2AP_PDUFail,
     e2err_RICSubscriptionDeleteRequestAllocRICrequestIDFail,
@@ -293,14 +275,31 @@ enum e2err {
     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[] = {
@@ -325,7 +324,7 @@ static const char* const E2ErrorStrings[] = {
     "e2err_RICSubscriptionFailureAllocRICrequestIDFail",
     "e2err_RICSubscriptionFailureAllocRANfunctionIDFail",
     "e2err_RICSubscriptionFailureAllocRICaction_NotAdmitted_ItemIEsFail",
-    "e2err_RICSubscriptionFailureAllocRICActionAdmittedListFail",
+    "e2err_RICSubscriptionFailureAllocCauseFail",
     "e2err_RICSubscriptionFailureEncodeFail",
     "e2err_RICSubscriptionFailureAllocE2AP_PDUFail",
     "e2err_RICSubscriptionDeleteRequestAllocRICrequestIDFail",
@@ -349,14 +348,26 @@ static const char* const E2ErrorStrings[] = {
     "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 {
@@ -377,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;
@@ -403,7 +415,7 @@ typedef struct {
 typedef struct {
     RICRequestID_t ricRequestID;
     RANFunctionID_t ranFunctionID;
-    RICActionNotAdmittedList_t ricActionNotAdmittedList;
+    RICCause_t cause;
     bool criticalityDiagnosticsPresent;
     CriticalityDiagnostics__t criticalityDiagnostics;
 } RICSubscriptionFailure_t;
@@ -426,11 +438,25 @@ typedef struct  {
     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;
@@ -441,6 +467,7 @@ uint64_t packRICSubscriptionFailure(size_t*, byte*, char*,RICSubscriptionFailure
 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*);
@@ -449,7 +476,7 @@ 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();
@@ -458,6 +485,7 @@ bool TestRICSubscriptionFailure();
 bool TestRICSubscriptionDeleteRequest();
 bool TestRICSubscriptionDeleteResponse();
 bool TestRICSubscriptionDeleteFailure();
+bool TestRICSubscriptionDeleteRequired();
 
 void printRICSubscriptionRequest(const RICSubscriptionRequest_t*);
 void printRICSubscriptionResponse(const RICSubscriptionResponse_t*);
@@ -465,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