X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=src%2Fric_stub%2Fric_stub.h;h=ce86d5f4e10ba736ca1386f0044e8efa73010e31;hb=2a310f38af13dafd243ef7b24d5a721ed34355b3;hp=7c6362e79169488337703f23c90cfe9d059fa7f8;hpb=1848207fc6601561cbac8cbb5950d1c6e80f2bea;p=o-du%2Fl2.git diff --git a/src/ric_stub/ric_stub.h b/src/ric_stub/ric_stub.h index 7c6362e79..ce86d5f4e 100644 --- a/src/ric_stub/ric_stub.h +++ b/src/ric_stub/ric_stub.h @@ -47,6 +47,11 @@ #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_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) \ @@ -77,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 { @@ -89,11 +101,29 @@ 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; + CmLListCp actionSequence; +}RicSubscription; typedef struct { uint16_t id; uint16_t revisionCounter; + CmLListCp subscriptionList; }RanFunction; typedef struct @@ -105,10 +135,10 @@ typedef struct typedef struct duDb { uint32_t duId; + uint8_t ricTransIdCounter; uint16_t numOfRanFunction; RanFunction ranFunction[MAX_RAN_FUNCTION]; - E2NodeComponent e2NodeComponent; - Bool ricSubscribedToDu; + CmLListCp e2NodeComponent; }DuDb; typedef struct ricCfgParams @@ -126,7 +156,66 @@ typedef struct cuGlobalCb DuDb duInfo[MAX_DU_SUPPORTED]; }RicGlobalCb; -RicGlobalCb ricCb; +extern RicGlobalCb ricCb; + +typedef struct +{ + 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);