X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=src%2Fdu_app%2Fdu_e2ap_mgr.h;h=935e9a03e1d935c2230795a52989c200b7a5a11e;hb=bd928523f61aead825b448daee545b8455e8daee;hp=c6a6d67aaab3ce6c13023ef6c414e929f6de03bb;hpb=cff10ba79a0f18dcf3aa6675a11b56e8d7ffb6b8;p=o-du%2Fl2.git diff --git a/src/du_app/du_e2ap_mgr.h b/src/du_app/du_e2ap_mgr.h index c6a6d67aa..935e9a03e 100644 --- a/src/du_app/du_e2ap_mgr.h +++ b/src/du_app/du_e2ap_mgr.h @@ -17,10 +17,13 @@ *******************************************************************************/ /* This file contains all E2AP message handler related functionality */ - -#define MAX_NUM_TRANSACTION 256 /* As per, O-RAN WG3 E2AP v3.0, section 9.2.33 */ #define MAX_E2_SETUP_TMR 1 +#define MAX_RIC_SERVICE_UPDATE_TMR 1 + #define EVENT_E2_SETUP_TMR 1 +#define EVENT_RIC_SERVICE_UPDATE_TMR 2 + +#define MAX_NUM_TRANSACTION 256 /* As per, O-RAN WG3 E2AP v3.0, section 9.2.33 */ #define MAX_RAN_FUNCTION 256 /* O-RAN.WG3.E2AP-R003-v03.00 : Section 9.1.2.2 : maxofRANfunctionID */ #define MAX_E2_NODE_COMPONENT 1024 /* O-RAN.WG3.E2AP-R003-v03.00 : Section 9.1.2.2 : maxofE2nodeComponents */ #define MAX_TNL_ASSOCIATION 32 /* O-RAN.WG3.E2AP-R003-v03.00 : Section 9.1.2.11 : maxofTNLA */ @@ -29,6 +32,7 @@ #define MAX_LABEL_INFO 2147483648 /* O-RAN.WG3.E2SM-KPM-R003-v03.00 : Section 8.2.1.2.1 : maxnoofLabelInfo */ #define MAX_RIC_ACTION 16 /* O-RAN.WG3.E2AP-R003-v03.00 : Section 9.1.1.1 : maxofRICActionID */ #define MAX_RIC_REQUEST 65535 /* O-RAN.WG3.E2AP-R003-v03.00 : Section 9.2.7 */ +#define MAX_PENDING_SUBSCRIPTION_RSP 5 /* Number of statistics request in processing */ #define STRING_SIZE_150_BYTES 150 #define STRING_SIZE_1000_BYTES 1000 @@ -77,8 +81,8 @@ typedef enum /* O-RAN.WG3.E2AP-R003-v03.00 : Section 9.2.11 */ typedef enum { - INSERT, REPORT, + INSERT, POLICY }ActionType; @@ -162,6 +166,12 @@ typedef enum typedef uint8_t E2Cause; +typedef struct e2FailureCause +{ + E2CauseType causeType; + uint8_t cause; +}E2FailureCause; + typedef struct { uint8_t transactionId; @@ -175,9 +185,39 @@ typedef struct e2Transcation E2TransInfo ricInitTransaction[MAX_NUM_TRANSACTION]; /* Storing RIC-initiated transactions information */ }E2Transaction; +typedef struct +{ + uint16_t id; + uint16_t revisionCounter; +}RanFuncInfo; + +typedef struct +{ + uint8_t numOfRanFunToBeAdded; + RanFuncInfo ranFunToBeAdded[MAX_RAN_FUNCTION]; + uint8_t numOfRanFunToBeModified; + RanFuncInfo ranFunToBeModified[MAX_RAN_FUNCTION]; + uint8_t numOfRanFunToBeDeleted; + RanFuncInfo ranFunToBeDeleted[MAX_RAN_FUNCTION]; +}E2TmpRanFunList; + +typedef struct ricServiceUpdate +{ + E2ProcedureDirection dir; + uint8_t transId; + E2TmpRanFunList recvRanFuncList; +}RicServiceUpdate; + +typedef struct +{ + RicServiceUpdate ricService; + CmTimer timer; +}RicServiceUpdateTimer; + typedef struct e2Timer { CmTimer e2SetupTimer; + RicServiceUpdateTimer ricServiceUpdateTimer; /* More timers can be added to this structure in future */ }E2Timer; @@ -228,7 +268,7 @@ typedef struct /* O-RAN.WG3.E2SM-KPM-R003-v03.00 : Section 8.2.1.1.1 */ typedef struct { - uint32_t reportingPeriod; + uint32_t reportingPeriod; /* In milliseconds */ }EventTriggerFormat1; /* O-RAN.WG3.E2SM-KPM-R003-v03.00 : Section 8.2.1.1 */ @@ -252,16 +292,13 @@ typedef struct /* O-RAN.WG3.E2SM-KPM-R003-v03.00 : Section 8.2.1.2.1 */ typedef struct { - union - { - char measurementTypeName[STRING_SIZE_150_BYTES]; - uint16_t measurementTypeId; - }choice; + char measurementTypeName[STRING_SIZE_150_BYTES]; + uint16_t measurementTypeId; /* As of now Labels are not used, hence it is not implemented completely */ //uint32_t numOfLabels; //LabelInfo LabelInfoList[MAX_LABEL_INFO]; - + CmLListCp measuredValue; /* To be filled when numOfLabels is 0, else values are calculated per Label */ }MeasurementInfo; @@ -300,6 +337,7 @@ typedef struct typedef struct { uint8_t styleType; + uint8_t formatType; union { ActionDefFormat1 format1; @@ -328,6 +366,22 @@ typedef struct ActionInfo actionSequence[MAX_RIC_ACTION]; }RicSubscription; +typedef struct rejectedAction +{ + uint8_t id; + E2FailureCause failureCause; +}RejectedAction; + +typedef struct pendingSubsRspInfo +{ + RicRequestId requestId; + uint16_t ranFuncId; + uint8_t numOfAcceptedActions; + uint8_t acceptedActionList[MAX_RIC_ACTION]; + uint8_t numOfRejectedActions; + RejectedAction rejectedActionList[MAX_RIC_ACTION]; +}PendingSubsRspInfo; + typedef struct { /* O-RAN.WG3.E2SM-KPM-R003-v03.00 : Section 8.2.2.1 */ @@ -342,6 +396,8 @@ typedef struct uint8_t ricIndicationMessageFormat; /* O-RAN.WG3.E2AP-R003-v03.00 : Section 9.1.1.1 */ CmLListCp subscriptionList; + uint8_t numPendingSubsRsp; + PendingSubsRspInfo pendingSubsRspInfo[MAX_PENDING_SUBSCRIPTION_RSP]; }RanFunction; /* O-RAN.WG3.E2AP-R003-v03.00 : Section 9.2.26-9.2.27 */ @@ -392,24 +448,8 @@ typedef struct E2TimersInfo e2TimersInfo; }E2apDb; -typedef struct -{ - uint16_t id; - uint16_t revisionCounter; -}RanFuncInfo; - -typedef struct -{ - uint8_t addCount; - uint8_t addArr[MAX_RAN_FUNCTION]; - uint8_t modCount; - uint8_t modArr[MAX_RAN_FUNCTION]; - uint8_t delCount; - RanFuncInfo delArr[MAX_RAN_FUNCTION]; -}E2TmpRanFunList; - uint8_t assignTransactionId(); -uint8_t ResetE2Request(E2ProcedureDirection dir, E2CauseType type, E2Cause cause); +uint8_t ResetE2Request(E2ProcedureDirection dir, E2FailureCause resetCause); uint8_t SendE2APMsg(Region region, Pool pool, char *encBuf, int encBufSize); /********************************************************************** End of file