*******************************************************************************/
/* This file contains all F1AP message handler related functionality */
-#include<stdio.h>
-#include<sys/types.h>
-#include<string.h>
+#include <stdbool.h>
+#include <string.h>
#include<ProtocolIE-Field.h>
#include "ProtocolExtensionField.h"
#include "F1AP-PDU.h"
#include "SRB-ToAddMod.h"
#include "RRCSetup-IEs.h"
#include "RRCSetup.h"
-
-#include "envopt.h" /* Environment options */
-#include "envdep.h" /* Environment dependent */
-#include "envind.h" /* Environment independent */
-#include "gen.h" /* General */
-#include "ssi.h" /* System services */
-#include "ss_queue.h"
-#include "ss_task.h"
-#include "ss_msg.h"
-
-#include "gen.x" /* General */
-#include "ssi.x" /* System services */
-#include "ss_queue.x"
-#include "ss_task.x"
-#include "ss_msg.x"
-
+#include "DL-DCCH-Message.h"
+#include "RRCReconfiguration-IEs.h"
+#include "RRCReconfiguration.h"
+#include "DRB-ToAddModList.h"
+#include "DRB-ToAddMod.h"
+#include "SDAP-Config.h"
#include "du_log.h"
+#include "cu_stub.h"
#define ENCODE_FAIL -1
#define TRANS_ID 1
#define RRC_SIZE 1
-#define ENC_BUF_MAX_LEN 100
#define SUL_BAND_COUNT 0
#define UL_SRBID 1
#define DL_SRBID 0
#define CU_ID 1
#define CRNTI 17017
#define CELL_INDEX 0
+#define SRB0 0
#define SRB1 1
+#define SRB2 2
+#define DRB1 1
+#define DRB2 2
+#define DRB3 3
+#define QCI 9
+#define MAX_DRB_SET_UE_CONTEXT_SETUP_REQ 2 /*Number of DRBs to be added using UE CONTEXT SETUP procedure*/
+#define MAX_DRB_SET_UE_CONTEXT_MOD_REQ 1 /*Number of DRBs to be added/setup via UE CONTEXT MODIFICATION procedure*/
+#define MAX_DRB_MODIFIED_UE_MOD_REQ 1 /*Currently CU trigger Modification of 2DRBs*/
+#define DRB_ID_TO_ADD_MOD MAX_DRB_SET_UE_CONTEXT_SETUP_REQ+1 /*The DRB ID: which will be added using Modification Procedure*/
+
+/*Total num of DRBs added using UE COntext Setup and Modification procedures*/
+#define MAX_NUM_DRB_ADDED_PER_UE MAX_DRB_SET_UE_CONTEXT_SETUP_REQ + MAX_DRB_SET_UE_CONTEXT_MOD_REQ
-/* allocate and zero out a static buffer */
-#define CU_ALLOC(_datPtr, _size) \
-{ \
- S16 _ret; \
- _ret = SGetSBuf(CU_APP_MEM_REG, CU_POOL, \
- (Data **)&_datPtr, _size); \
- if(_ret == ROK) \
- cmMemset((U8*)_datPtr, 0, _size); \
- else \
- _datPtr = NULLP; \
-}
+#define CU_UE_F1AP_ID 0
+#define DU_UE_F1AP_ID 1
+#define SP_CELL_ID 2
+#define SERV_CELL_IDX 3
+#define CU_TO_DU_RRC_INF 4
-/* free a static buffer */
-#define CU_FREE(_datPtr, _size) \
- if(_datPtr) \
- SPutSBuf(CU_APP_MEM_REG, CU_POOL, \
- (Data *)_datPtr, _size);
+#define RRC_SETUP 1
+#define REGISTRATION_ACCEPT 2
+#define UE_CONTEXT_SETUP_REQ 3
+#define UE_CONTEXT_SETUP_RSP 4
+#define SECURITY_MODE_COMPLETE 5
+#define RRC_RECONFIG 6
+#define UE_CONTEXT_MOD_REQ 7
+#define NUM_QOS_EXT 1
typedef struct f1apDb
{
+ uint8_t dlRrcMsgCount;
OCTET_STRING_t duToCuContainer;
}F1apMsgDb;
-F1apMsgDb f1apMsgDb;
-void F1APMsgHdlr(Buffer *mBuf);
+typedef struct ueInfo
+{
+ uint8_t ueId;
+ F1apMsgDb f1apMsgDb;
+}UeCb;
+UeCb ueCb[MAX_NUM_UE];
+
+void F1APMsgHdlr(Buffer *mBuf);
+uint8_t BuildAndSendUeContextModificationReq(uint8_t ueId);
+uint8_t BuildAndSendUeContextReleaseCommand(uint8_t cuUeF1apId, uint8_t duUeF1apId);
+uint8_t BuildAndSendF1ResetReq();
/**********************************************************************
End of file
**********************************************************************/