*******************************************************************************/
/* 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 */
/* O-RAN.WG3.E2AP-R003-v03.00 : Section 9.2.11 */
typedef enum
{
- INSERT,
REPORT,
+ INSERT,
POLICY
}ActionType;
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;
/* 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 */
/* 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;
typedef struct
{
uint8_t styleType;
+ uint8_t formatType;
union
{
ActionDefFormat1 format1;
E2TimersInfo e2TimersInfo;
}E2apDb;
-typedef struct
-{
- uint16_t id;
- uint16_t revisionCounter;
-}RanFuncInfo;
-
-typedef struct
+typedef struct e2FailureCause
{
- 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;
+ E2CauseType causeType;
+ uint8_t cause;
+}E2FailureCause;
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