[Epic-ID: ODUHIGH-516][Task-ID: ODUHIGH-528] RIC Subscription Response
[o-du/l2.git] / src / du_app / du_e2ap_mgr.h
index e59e646..935e9a0 100644 (file)
@@ -32,6 +32,7 @@
 #define MAX_LABEL_INFO  2147483648     /* O-RAN.WG3.E2SM-KPM-R003-v03.00 : Section 8.2.1.2.1 : maxnoofLabelInfo */
 #define MAX_RIC_ACTION  16          /* O-RAN.WG3.E2AP-R003-v03.00 : Section 9.1.1.1 : maxofRICActionID */
 #define MAX_RIC_REQUEST 65535       /* O-RAN.WG3.E2AP-R003-v03.00 : Section 9.2.7 */
+#define MAX_PENDING_SUBSCRIPTION_RSP 5  /* Number of statistics request in processing */
 
 #define STRING_SIZE_150_BYTES 150
 #define STRING_SIZE_1000_BYTES 1000
@@ -80,8 +81,8 @@ typedef enum
 /* O-RAN.WG3.E2AP-R003-v03.00 : Section 9.2.11 */
 typedef enum
 {
-   INSERT,
    REPORT,
+   INSERT,
    POLICY
 }ActionType;
 
@@ -165,6 +166,12 @@ typedef enum
 
 typedef uint8_t E2Cause;
 
+typedef struct e2FailureCause
+{
+   E2CauseType causeType;
+   uint8_t     cause;
+}E2FailureCause;
+
 typedef struct
 {
    uint8_t transactionId;
@@ -261,7 +268,7 @@ typedef struct
 /* O-RAN.WG3.E2SM-KPM-R003-v03.00 : Section 8.2.1.1.1 */
 typedef struct
 {
-   uint32_t reportingPeriod;
+   uint32_t reportingPeriod; /* In milliseconds */
 }EventTriggerFormat1;
 
 /* O-RAN.WG3.E2SM-KPM-R003-v03.00 : Section 8.2.1.1 */
@@ -285,16 +292,13 @@ typedef struct
 /* O-RAN.WG3.E2SM-KPM-R003-v03.00 : Section 8.2.1.2.1 */
 typedef struct
 {
-   union
-   {
-      char     measurementTypeName[STRING_SIZE_150_BYTES];
-      uint16_t measurementTypeId;
-   }choice;
+   char     measurementTypeName[STRING_SIZE_150_BYTES];
+   uint16_t measurementTypeId;
 
    /* As of now Labels are not used, hence it is not implemented completely */
    //uint32_t    numOfLabels;
    //LabelInfo   LabelInfoList[MAX_LABEL_INFO];
-   
+
    CmLListCp   measuredValue;  /* To be filled when numOfLabels is 0, else values are calculated per Label */
 }MeasurementInfo;
 
@@ -333,6 +337,7 @@ typedef struct
 typedef struct
 {
    uint8_t     styleType;
+   uint8_t     formatType;
    union
    {
       ActionDefFormat1  format1;
@@ -361,6 +366,22 @@ typedef struct
    ActionInfo             actionSequence[MAX_RIC_ACTION];  
 }RicSubscription;
 
+typedef struct rejectedAction
+{
+   uint8_t id;
+   E2FailureCause failureCause;
+}RejectedAction;
+
+typedef struct pendingSubsRspInfo
+{
+   RicRequestId    requestId;
+   uint16_t        ranFuncId;
+   uint8_t         numOfAcceptedActions;
+   uint8_t         acceptedActionList[MAX_RIC_ACTION];
+   uint8_t         numOfRejectedActions;
+   RejectedAction  rejectedActionList[MAX_RIC_ACTION];
+}PendingSubsRspInfo;
+
 typedef struct
 {
    /* O-RAN.WG3.E2SM-KPM-R003-v03.00 : Section 8.2.2.1 */
@@ -375,6 +396,8 @@ typedef struct
    uint8_t          ricIndicationMessageFormat;
    /* O-RAN.WG3.E2AP-R003-v03.00 : Section 9.1.1.1 */
    CmLListCp        subscriptionList;
+   uint8_t          numPendingSubsRsp;
+   PendingSubsRspInfo pendingSubsRspInfo[MAX_PENDING_SUBSCRIPTION_RSP];
 }RanFunction;
 
 /* O-RAN.WG3.E2AP-R003-v03.00 : Section 9.2.26-9.2.27 */
@@ -425,9 +448,8 @@ typedef struct
    E2TimersInfo     e2TimersInfo;
 }E2apDb;
 
-
 uint8_t assignTransactionId();
-uint8_t ResetE2Request(E2ProcedureDirection dir, E2CauseType type, E2Cause cause);
+uint8_t ResetE2Request(E2ProcedureDirection dir, E2FailureCause resetCause);
 uint8_t SendE2APMsg(Region region, Pool pool, char *encBuf, int encBufSize);
 /**********************************************************************
   End of file