[Epic-ID: ODUHIGH-516][Task-ID: ODUHIGH-529] RIC Indication
[o-du/l2.git] / src / ric_stub / ric_stub.h
index a621525..b4c159e 100644 (file)
@@ -29,7 +29,7 @@
 #define LOCAL_IP_RIC "192.168.130.80"
 
 #define E2_SCTP_PORT 36421
-#define NUM_E2_ASSOC 1
+#define NUM_E2_ASSOC 1 
 #define REMOTE_IP_DU (char*[]){"192.168.130.81", "192.168.130.83"}
 #endif
 
 
 #define RIC_APP_MEM_REG 1
 #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_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 */
 
 /* allocate and zero out a static buffer */
 #define RIC_ALLOC(_datPtr, _size)                                \
    }\
 }
 
+/* O-RAN.WG3.E2AP-R003-v03.00 : Section 9.2.26 */
+typedef enum
+{
+   NG,
+   XN,
+   E1,
+   F1,
+   W1,
+   S1,
+   X2
+}InterfaceType;
+
+typedef struct
+{
+   uint16_t requestorId;
+   uint16_t instanceId;
+}RicRequestId;
+
+typedef struct
+{
+   int16_t         actionId;
+}ActionInfo;
+
+typedef struct ricSubscription
+{
+   RicRequestId    requestId;
+   uint8_t         numOfActions;
+   ActionInfo      actionSequence[MAX_RIC_ACTION];
+}RicSubscription;
+
+typedef struct
+{
+   uint16_t  id;
+   uint16_t  revisionCounter;
+   uint8_t   numOfSubscription;
+   RicSubscription subscriptionList[MAX_RIC_REQUEST];
+}RanFunction;
+
+typedef struct
+{
+   InterfaceType   interfaceType;
+   uint64_t        componentId;
+}E2NodeComponent;
+
 typedef struct duDb
 {
-   uint32_t duId;
-   Bool     ricSubscribedToDu;
+   uint32_t        duId;
+   uint8_t         ricTransIdCounter;
+   uint16_t        numOfRanFunction;
+   RanFunction     ranFunction[MAX_RAN_FUNCTION];
+   E2NodeComponent e2NodeComponent;
 }DuDb;
 
 typedef struct ricCfgParams
@@ -99,6 +152,14 @@ typedef struct cuGlobalCb
 
 RicGlobalCb ricCb;
 
+typedef struct
+{
+   uint8_t numOfRanFunAccepted;
+   RanFunction ranFunAcceptedList[MAX_RAN_FUNCTION];
+   uint8_t numOfRanFuneRejected;
+   RanFunction ranFunRejectedList[MAX_RAN_FUNCTION];
+}RicTmpRanFunList;
+
 void readRicCfg();
 void cuAppInmsgHdlr(Buffer *mBuf);
 void sctpNtfyInd(CmInetSctpNotification *ntfy);