X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=src%2Fric_stub%2Fric_stub.h;h=a2663def67c0a444bb733dae0908a5bac52bbafa;hb=74c1c6556c1a0ff255d36967db0abca3037522a8;hp=b70613473acf7a52272e45616ceaf93c4759021f;hpb=55fc3c14a0c74c8c3d3dfec9e843776e7891f2de;p=o-du%2Fl2.git diff --git a/src/ric_stub/ric_stub.h b/src/ric_stub/ric_stub.h index b70613473..a2663def6 100644 --- a/src/ric_stub/ric_stub.h +++ b/src/ric_stub/ric_stub.h @@ -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 */ @@ -82,6 +82,13 @@ }\ } +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);