Commit c964219d authored by winckel's avatar winckel

Separated RRC <-> S1AP procedures.

Pre-ci OK.

git-svn-id: http://svn.eurecom.fr/openair4G/trunk@4497 818b1a75-f10b-46b9-bf7c-635c3b92a50f
parent 3789333e
...@@ -417,7 +417,7 @@ s8 mac_remove_ue(unsigned char Mod_id, unsigned char UE_id) { ...@@ -417,7 +417,7 @@ s8 mac_remove_ue(unsigned char Mod_id, unsigned char UE_id) {
eNB_dlsch_info[Mod_id][UE_id].rnti = 0; eNB_dlsch_info[Mod_id][UE_id].rnti = 0;
eNB_dlsch_info[Mod_id][UE_id].status = S_DL_NONE; eNB_dlsch_info[Mod_id][UE_id].status = S_DL_NONE;
rrc_remove_UE(Mod_id,UE_id); rrc_eNB_free_UE_index(Mod_id,UE_id);
return(1); return(1);
} }
......
...@@ -19,7 +19,7 @@ L2_INTERFACE_DIR = $(OPENAIR2_TOP)/RRC/L2_INTERFACE ...@@ -19,7 +19,7 @@ L2_INTERFACE_DIR = $(OPENAIR2_TOP)/RRC/L2_INTERFACE
MAC_DIR = $(OPENAIR2_TOP)/LAYER2/MAC MAC_DIR = $(OPENAIR2_TOP)/LAYER2/MAC
RRC_CELL_DIR = $(OPENAIR2_TOP)/RRC/CELLULAR RRC_CELL_DIR = $(OPENAIR2_TOP)/RRC/CELLULAR
SOURCES_L2 +=$(OPENAIR2_TOP)/LAYER2/openair2_proc.c SOURCES_L2 += $(OPENAIR2_TOP)/LAYER2/openair2_proc.c
SOURCES_L2 += $(PDCP_DIR)/pdcp.c SOURCES_L2 += $(PDCP_DIR)/pdcp.c
SOURCES_L2 += $(PDCP_DIR)/pdcp_fifo.c SOURCES_L2 += $(PDCP_DIR)/pdcp_fifo.c
...@@ -69,7 +69,11 @@ SOURCES_L2 += $(RLC_DIR)/rlc.c ...@@ -69,7 +69,11 @@ SOURCES_L2 += $(RLC_DIR)/rlc.c
SOURCES_L2 += $(RLC_DIR)/rlc_rrc.c SOURCES_L2 += $(RLC_DIR)/rlc_rrc.c
SOURCES_L2 += $(RLC_DIR)/rlc_mpls.c SOURCES_L2 += $(RLC_DIR)/rlc_mpls.c
RRC_OBJS = $(RRC_DIR)/rrc_UE.o $(RRC_DIR)/rrc_eNB.o $(RRC_DIR)/rrc_common.o $(RRC_DIR)/L2_interface.o RRC_OBJS = $(RRC_DIR)/rrc_UE.o
RRC_OBJS += $(RRC_DIR)/rrc_eNB.o
RRC_OBJS += $(RRC_DIR)/rrc_eNB_S1AP.o
RRC_OBJS += $(RRC_DIR)/rrc_common.o
RRC_OBJS += $(RRC_DIR)/L2_interface.o
MAC_OBJS = $(MAC_DIR)/lte_transport_init.o MAC_OBJS = $(MAC_DIR)/lte_transport_init.o
MAC_OBJS += $(MAC_DIR)/main.o MAC_OBJS += $(MAC_DIR)/main.o
...@@ -86,8 +90,16 @@ L2_INTERFACE_OBJS = $(L2_INTERFACE_DIR)/openair_rrc_L2_interface.o ...@@ -86,8 +90,16 @@ L2_INTERFACE_OBJS = $(L2_INTERFACE_DIR)/openair_rrc_L2_interface.o
L2_OBJS=$(addsuffix .o,$(basename $(SOURCES_L2))) $(PHY_INTERFACE_OBJS) $(MAC_OBJS) $(L2_INTERFACE_OBJS) L2_OBJS=$(addsuffix .o,$(basename $(SOURCES_L2))) $(PHY_INTERFACE_OBJS) $(MAC_OBJS) $(L2_INTERFACE_OBJS)
#$(OPT_OBJS) #$(OPT_OBJS)
L2_incl = -I$(OPENAIR2_TOP) -I$(COMMON_DIR) -I$(RLC_DIR) -I$(RLC_AM_DIR) -I$(RLC_UM_DIR) -I$(RLC_TM_DIR) -I$(PDCP_DIR) -I$(OPENAIR3)/MESH -I$(OPENAIR2_TOP)/RRC/LITE/MESSAGES -I$(OPENAIR3)/MESH/RRM L2_incl = -I$(OPENAIR2_TOP)
L2_incl += -I$(COMMON_DIR)
L2_incl += -I$(RLC_DIR)
L2_incl += -I$(RLC_AM_DIR)
L2_incl += -I$(RLC_UM_DIR)
L2_incl += -I$(RLC_TM_DIR)
L2_incl += -I$(PDCP_DIR)
L2_incl += -I$(OPENAIR3)/MESH
L2_incl += -I$(OPENAIR2_TOP)/RRC/LITE/MESSAGES
L2_incl += -I$(OPENAIR3)/MESH/RRM
ifeq ($(rrc_cellular),1) ifeq ($(rrc_cellular),1)
include $(RRC_CELL_DIR)/Makefile.inc include $(RRC_CELL_DIR)/Makefile.inc
......
...@@ -93,6 +93,8 @@ ...@@ -93,6 +93,8 @@
//#define NUM_PRECONFIGURED_LCHAN (NB_CH_CX*2) //BCCH, CCCH //#define NUM_PRECONFIGURED_LCHAN (NB_CH_CX*2) //BCCH, CCCH
#define UE_INDEX_INVALID ((uint8_t) ~0)
typedef enum UE_STATE_e { typedef enum UE_STATE_e {
RRC_IDLE=0, RRC_IDLE=0,
RRC_SI_RECEIVED, RRC_SI_RECEIVED,
...@@ -254,7 +256,7 @@ typedef struct RB_INFO_TABLE_ENTRY_s { ...@@ -254,7 +256,7 @@ typedef struct RB_INFO_TABLE_ENTRY_s {
u8 Status; u8 Status;
} RB_INFO_TABLE_ENTRY; } RB_INFO_TABLE_ENTRY;
typedef struct{ typedef struct SRB_INFO_TABLE_ENTRY_s {
SRB_INFO Srb_info; SRB_INFO Srb_info;
u8 Active; u8 Active;
u8 Status; u8 Status;
...@@ -512,6 +514,11 @@ void rrc_ue_process_radioResourceConfigDedicated(u8 Mod_id,u32 frame, u8 eNB_ind ...@@ -512,6 +514,11 @@ void rrc_ue_process_radioResourceConfigDedicated(u8 Mod_id,u32 frame, u8 eNB_ind
// eNB/CH RRC Procedures // eNB/CH RRC Procedures
/**\brief Function to get the next transaction identifier.
\param Mod_id Instance ID for CH/eNB
\return a transaction identifier*/
uint8_t rrc_eNB_get_next_transaction_identifier(uint8_t Mod_id);
/**\brief Entry routine to decode a UL-CCCH-Message. Invokes PER decoder and parses message. /**\brief Entry routine to decode a UL-CCCH-Message. Invokes PER decoder and parses message.
\param Mod_id Instance ID for CH/eNB \param Mod_id Instance ID for CH/eNB
\param frame Frame index \param frame Frame index
...@@ -617,7 +624,7 @@ u8 check_trigger_meas_event(u8 Mod_id,u32 frame, u8 eNB_index, u8 ue_cnx_index, ...@@ -617,7 +624,7 @@ u8 check_trigger_meas_event(u8 Mod_id,u32 frame, u8 eNB_index, u8 ue_cnx_index,
//void rrc_ue_process_ueCapabilityEnquiry(uint8_t Mod_id,uint32_t frame,UECapabilityEnquiry_t *UECapabilityEnquiry,uint8_t eNB_index); //void rrc_ue_process_ueCapabilityEnquiry(uint8_t Mod_id,uint32_t frame,UECapabilityEnquiry_t *UECapabilityEnquiry,uint8_t eNB_index);
//void rrc_ue_process_securityModeCommand(uint8_t Mod_id,uint32_t frame,SecurityModeCommand_t *securityModeCommand,uint8_t eNB_index); //void rrc_ue_process_securityModeCommand(uint8_t Mod_id,uint32_t frame,SecurityModeCommand_t *securityModeCommand,uint8_t eNB_index);
void rrc_remove_UE (u8 Mod_id, u8 UE_id); void rrc_eNB_free_UE_index (u8 Mod_id, u8 UE_id);
long binary_search_int(int elements[], long numElem, int value); long binary_search_int(int elements[], long numElem, int value);
......
This diff is collapsed.
This diff is collapsed.
/*! \file rrc_eNB_S1AP.h
* \brief rrc S1AP procedures for eNB
* \author Laurent Winckel
* \date 2013
* \version 1.0
* \company Eurecom
* \email: laurent.winckel@eurecom.fr and navid.nikaein@eurecom.fr
*/
#ifndef RRC_ENB_S1AP_H_
#define RRC_ENB_S1AP_H_
# if defined(ENABLE_USE_MME)
/* Up link procedures */
# if defined(ENABLE_ITTI)
/*! \fn void rrc_eNB_send_S1AP_INITIAL_CONTEXT_SETUP_RESP(uint8_t mod_id, uint8_t ue_index)
*\brief create a S1AP_INITIAL_CONTEXT_SETUP_RESP for S1AP.
*\param mod_id Instance ID of eNB.
*\param ue_index Instance ID of UE in the eNB.
*/
void rrc_eNB_send_S1AP_INITIAL_CONTEXT_SETUP_RESP(uint8_t Mod_id, uint8_t UE_index);
# endif
/*! \fn void rrc_eNB_send_S1AP_UPLINK_NAS(uint8_t Mod_id, uint8_t UE_index, UL_DCCH_Message_t *ul_dcch_msg)
*\brief create a S1AP_UPLINK_NAS to transfer a NAS message to S1AP.
*\param mod_id Instance ID of eNB.
*\param ue_index Instance ID of UE in the eNB.
*\param ul_dcch_msg The message receive by RRC holding the NAS message.
*/
void rrc_eNB_send_S1AP_UPLINK_NAS(uint8_t Mod_id, uint8_t UE_index, UL_DCCH_Message_t *ul_dcch_msg);
/*! \fn rrc_eNB_send_S1AP_NAS_FIRST_REQ(uint8_t Mod_id, uint8_t UE_index, RRCConnectionSetupComplete_r8_IEs_t *rrcConnectionSetupComplete)
*\brief create a S1AP_NAS_FIRST_REQ to indicate that RRC has completed its first connection setup to S1AP.
*\brief eventually forward a NAS message to S1AP.
*\param mod_id Instance ID of eNB.
*\param ue_index Instance ID of UE in the eNB.
*\param rrcConnectionSetupComplete The message receive by RRC that may hold the NAS message.
*/
void rrc_eNB_send_S1AP_NAS_FIRST_REQ(uint8_t Mod_id, uint8_t UE_index,
RRCConnectionSetupComplete_r8_IEs_t *rrcConnectionSetupComplete);
/* Down link procedures */
# if defined(ENABLE_ITTI)
/*! \fn rrc_eNB_process_S1AP_DOWNLINK_NAS(MessageDef *msg_p, const char *msg_name, instance_t instance, mui_t *rrc_eNB_mui)
*\brief process a S1AP_DOWNLINK_NAS message received from S1AP and transfer the embedded NAS message to UE.
*\param msg_p Message received by RRC.
*\param msg_name Message name.
*\param instance Message instance.
*\param rrc_eNB_mui Counter for lower level message identification.
*\return 0 when successful, -1 if the UE index can not be retrieved.
*/
int rrc_eNB_process_S1AP_DOWNLINK_NAS(MessageDef *msg_p, const char *msg_name, instance_t instance, mui_t *rrc_eNB_mui);
/*! \fn rrc_eNB_process_S1AP_INITIAL_CONTEXT_SETUP_REQ(MessageDef *msg_p, const char *msg_name, instance_t instance)
*\brief process a S1AP_INITIAL_CONTEXT_SETUP_REQ message received from S1AP.
*\param msg_p Message received by RRC.
*\param msg_name Message name.
*\param instance Message instance.
*\return 0 when successful, -1 if the UE index can not be retrieved.
*/
int rrc_eNB_process_S1AP_INITIAL_CONTEXT_SETUP_REQ(MessageDef *msg_p, const char *msg_name, instance_t instance);
# endif
# endif /* defined(ENABLE_USE_MME) */
#endif /* RRC_ENB_S1AP_H_ */
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment