[Epic-ID: ODUHIGH-516][Task-ID: ODUHIGH-528] RIC Subscription Failure
[o-du/l2.git] / src / du_app / du_e2ap_mgr.h
index c6a6d67..1cdb2f4 100644 (file)
  *******************************************************************************/
 
 /* This file contains all E2AP message handler related functionality */
-
-#define MAX_NUM_TRANSACTION 256 /* As per, O-RAN WG3 E2AP v3.0, section 9.2.33 */
 #define MAX_E2_SETUP_TMR 1
+#define MAX_RIC_SERVICE_UPDATE_TMR 1
+
 #define EVENT_E2_SETUP_TMR 1
+#define EVENT_RIC_SERVICE_UPDATE_TMR 2
+
+#define MAX_NUM_TRANSACTION 256 /* As per, O-RAN WG3 E2AP v3.0, section 9.2.33 */
 #define MAX_RAN_FUNCTION 256        /* O-RAN.WG3.E2AP-R003-v03.00 : Section 9.1.2.2 : maxofRANfunctionID */
 #define MAX_E2_NODE_COMPONENT 1024     /* O-RAN.WG3.E2AP-R003-v03.00 : Section 9.1.2.2 : maxofE2nodeComponents */
 #define MAX_TNL_ASSOCIATION 32         /* O-RAN.WG3.E2AP-R003-v03.00 : Section 9.1.2.11 : maxofTNLA */
@@ -77,8 +80,8 @@ typedef enum
 /* O-RAN.WG3.E2AP-R003-v03.00 : Section 9.2.11 */
 typedef enum
 {
-   INSERT,
    REPORT,
+   INSERT,
    POLICY
 }ActionType;
 
@@ -175,9 +178,39 @@ typedef struct e2Transcation
    E2TransInfo ricInitTransaction[MAX_NUM_TRANSACTION]; /* Storing RIC-initiated transactions information */
 }E2Transaction;
 
+typedef struct
+{
+   uint16_t   id;
+   uint16_t   revisionCounter;
+}RanFuncInfo;
+
+typedef struct
+{
+   uint8_t     numOfRanFunToBeAdded;
+   RanFuncInfo ranFunToBeAdded[MAX_RAN_FUNCTION];
+   uint8_t     numOfRanFunToBeModified;
+   RanFuncInfo ranFunToBeModified[MAX_RAN_FUNCTION];
+   uint8_t     numOfRanFunToBeDeleted;
+   RanFuncInfo ranFunToBeDeleted[MAX_RAN_FUNCTION];
+}E2TmpRanFunList;
+
+typedef struct ricServiceUpdate
+{
+   E2ProcedureDirection dir;
+   uint8_t              transId;
+   E2TmpRanFunList      recvRanFuncList;
+}RicServiceUpdate;
+
+typedef struct 
+{
+   RicServiceUpdate ricService;
+   CmTimer          timer;
+}RicServiceUpdateTimer;
+
 typedef struct e2Timer
 {
    CmTimer e2SetupTimer;
+   RicServiceUpdateTimer ricServiceUpdateTimer;
    /* More timers can be added to this structure in future */
 }E2Timer;
 
@@ -228,7 +261,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 */
@@ -252,16 +285,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;
 
@@ -300,6 +330,7 @@ typedef struct
 typedef struct
 {
    uint8_t     styleType;
+   uint8_t     formatType;
    union
    {
       ActionDefFormat1  format1;
@@ -392,24 +423,14 @@ typedef struct
    E2TimersInfo     e2TimersInfo;
 }E2apDb;
 
-typedef struct
-{
-   uint16_t   id;
-   uint16_t   revisionCounter;
-}RanFuncInfo;
-
-typedef struct
+typedef struct e2FailureCause
 {
-   uint8_t addCount;
-   uint8_t addArr[MAX_RAN_FUNCTION];
-   uint8_t modCount;
-   uint8_t modArr[MAX_RAN_FUNCTION];
-   uint8_t delCount;
-   RanFuncInfo delArr[MAX_RAN_FUNCTION];
-}E2TmpRanFunList;
+   E2CauseType causeType;
+   uint8_t     cause;
+}E2FailureCause;
 
 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