[Epic-ID: ODUHIGH-516][Task-ID: ODUHIGH-530] RIC Subscription Modification Req
[o-du/l2.git] / src / ric_stub / ric_stub.h
index b706134..a2663de 100644 (file)
@@ -48,7 +48,7 @@
 #define RIC_POOL 1
 #define MAX_RAN_FUNCTION 256        /* O-RAN.WG3.E2AP-R003-v03.00 : Section 9.1.2.2 : maxofRANfunctionID */
 #define MAX_NUM_TRANSACTION 256     /* As per, O-RAN WG3 E2AP v3.0, section 9.2.33 */
-
+#define MAX_E2_NODE_COMPONENT 1024     /* O-RAN.WG3.E2AP-R003-v03.00 : Section 9.1.2.2 : maxofE2nodeComponents */
 #define MAX_RIC_ACTION  16          /* O-RAN.WG3.E2AP-R003-v03.00 : Section 9.1.1.1 : maxofRICActionID */
 #define MAX_RIC_REQUEST 5           /* As per O-RAN.WG3.E2AP-R003-v03.00 : Section 9.2.7, max request is 65535. \
                                      * But for our internal testing purpose, keeping it to 5 for now */
    }\
 }
 
+typedef enum
+{
+   ADD_CONNECTION,
+   MODIFY_CONNECTION,
+   REMOVE_CONNECTION
+}E2Connection;
+
 /* O-RAN.WG3.E2AP-R003-v03.00 : Section 9.2.26 */
 typedef enum
 {
@@ -108,6 +115,7 @@ typedef struct
 typedef struct ricSubscription
 {
    RicRequestId    requestId;
+   uint16_t        ranFuncId;
    uint8_t         numOfActions;
    ActionInfo      actionSequence[MAX_RIC_ACTION];
 }RicSubscription;
@@ -116,8 +124,7 @@ typedef struct
 {
    uint16_t  id;
    uint16_t  revisionCounter;
-   uint8_t   numOfSubscription;
-   RicSubscription subscriptionList[MAX_RIC_REQUEST];
+   CmLListCp  subscriptionList;
 }RanFunction;
 
 typedef struct
@@ -132,7 +139,7 @@ typedef struct duDb
    uint8_t         ricTransIdCounter;
    uint16_t        numOfRanFunction;
    RanFunction     ranFunction[MAX_RAN_FUNCTION];
-   E2NodeComponent e2NodeComponent;
+   CmLListCp       e2NodeComponent;
 }DuDb;
 
 typedef struct ricCfgParams
@@ -160,16 +167,57 @@ typedef struct
    RanFunction ranFunRejectedList[MAX_RAN_FUNCTION];
 }RicTmpRanFunList;
 
+typedef struct actionFailed
+{
+   uint8_t actionId;
+   uint8_t failureType;
+   uint8_t cause;
+}ActionFailed;
+
 typedef struct
 {
-   uint8_t numActionModifed;
+   uint8_t numActionModified;
    uint8_t actionModifiedList[MAX_RIC_ACTION];
    uint8_t numActionModFailed;
-   uint8_t actionModFailedList[MAX_RIC_ACTION];
+   ActionFailed actionModFailedList[MAX_RIC_ACTION];
    uint8_t numActionRemoved;
    uint8_t actionRemovedList[MAX_RIC_ACTION];
+   uint8_t numActionRemovalFailed;
+   ActionFailed actionRemovalFailedList[MAX_RIC_ACTION];
 }RicTmpActionList;
 
+typedef struct e2NodeCfgItem
+{
+   E2NodeComponent componentInfo;
+   bool           isSuccessful;
+}E2NodeConfigItem;
+
+typedef struct e2NodeCfgList
+{
+   uint16_t addedE2NodeCount;
+   E2NodeConfigItem addedE2Node[MAX_E2_NODE_COMPONENT];
+   uint16_t updatedE2NodeCount;
+   E2NodeConfigItem updatedE2Node[MAX_E2_NODE_COMPONENT];
+   uint16_t removedE2NodeCount;
+   E2NodeConfigItem removedE2Node[MAX_E2_NODE_COMPONENT];
+}E2NodeConfigList;
+
+typedef struct ricSubsActionInfo
+{
+   ConfigType  configType; 
+   uint16_t    actionId;
+}RicSubsActionInfo;
+
+typedef struct ricSubsModReq
+{ 
+    uint16_t   numOfActionToBeAdded;
+    ActionInfo actionToBeAdded[MAX_RIC_ACTION]; 
+    uint16_t   numOfActionToBeModify;
+    ActionInfo actionToBeModify[MAX_RIC_ACTION]; 
+    uint16_t   numOfActionToBeRemove;
+    ActionInfo actionToBeRemove[MAX_RIC_ACTION]; 
+}RicSubsModReq;
+
 void readRicCfg();
 void cuAppInmsgHdlr(Buffer *mBuf);
 void sctpNtfyInd(CmInetSctpNotification *ntfy);