#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
{
typedef struct
{
- uint8_t id;
+ int16_t actionId;
}ActionInfo;
typedef struct ricSubscription
{
RicRequestId requestId;
+ uint16_t ranFuncId;
uint8_t numOfActions;
ActionInfo actionSequence[MAX_RIC_ACTION];
}RicSubscription;
{
uint16_t id;
uint16_t revisionCounter;
- uint8_t numOfSubscription;
- RicSubscription subscriptionList[MAX_RIC_REQUEST];
+ CmLListCp subscriptionList;
}RanFunction;
typedef struct
uint8_t ricTransIdCounter;
uint16_t numOfRanFunction;
RanFunction ranFunction[MAX_RAN_FUNCTION];
- E2NodeComponent e2NodeComponent;
+ CmLListCp e2NodeComponent;
}DuDb;
typedef struct ricCfgParams
RanFunction ranFunRejectedList[MAX_RAN_FUNCTION];
}RicTmpRanFunList;
+typedef struct actionFailed
+{
+ uint8_t actionId;
+ uint8_t failureType;
+ uint8_t cause;
+}ActionFailed;
+
+typedef struct
+{
+ uint8_t numActionModified;
+ uint8_t actionModifiedList[MAX_RIC_ACTION];
+ uint8_t numActionModFailed;
+ 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);