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=0bf9680f086868783cd72b4d781f8155f7952ed8;hpb=cff10ba79a0f18dcf3aa6675a11b56e8d7ffb6b8;p=o-du%2Fl2.git diff --git a/src/ric_stub/ric_stub.h b/src/ric_stub/ric_stub.h index 0bf9680f0..a2663def6 100644 --- a/src/ric_stub/ric_stub.h +++ b/src/ric_stub/ric_stub.h @@ -48,6 +48,10 @@ #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 */ /* allocate and zero out a static buffer */ #define RIC_ALLOC(_datPtr, _size) \ @@ -78,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 { @@ -90,11 +101,30 @@ typedef enum X2 }InterfaceType; +typedef struct +{ + uint16_t requestorId; + uint16_t instanceId; +}RicRequestId; + +typedef struct +{ + int16_t actionId; +}ActionInfo; + +typedef struct ricSubscription +{ + RicRequestId requestId; + uint16_t ranFuncId; + uint8_t numOfActions; + ActionInfo actionSequence[MAX_RIC_ACTION]; +}RicSubscription; typedef struct { uint16_t id; uint16_t revisionCounter; + CmLListCp subscriptionList; }RanFunction; typedef struct @@ -109,8 +139,7 @@ typedef struct duDb uint8_t ricTransIdCounter; uint16_t numOfRanFunction; RanFunction ranFunction[MAX_RAN_FUNCTION]; - E2NodeComponent e2NodeComponent; - Bool ricSubscribedToDu; + CmLListCp e2NodeComponent; }DuDb; typedef struct ricCfgParams @@ -132,14 +161,63 @@ RicGlobalCb ricCb; typedef struct { - uint8_t numOfRanFunToBeAdded; - RanFunction ranFunToBeAdded[MAX_RAN_FUNCTION]; - uint8_t numOfRanFunToBeModified; - RanFunction ranFunToBeModified[MAX_RAN_FUNCTION]; - uint8_t numOfRanFunTodeleted; - RanFunction ranFunToBeDeleted[MAX_RAN_FUNCTION]; + uint8_t numOfRanFunAccepted; + RanFunction ranFunAcceptedList[MAX_RAN_FUNCTION]; + uint8_t numOfRanFuneRejected; + 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);