Commit 02fd6fbd authored by Tien-Thinh Nguyen's avatar Tien-Thinh Nguyen

add function to allow remove pdcp/rlc instance

parent a955432e
...@@ -353,7 +353,12 @@ typedef struct { ...@@ -353,7 +353,12 @@ typedef struct {
//RLC_INTERFACE_FUNCTIONS //RLC_INTERFACE_FUNCTIONS
void (*pdcp_run)(void); void (*pdcp_run)(void);
void (*pdcp_data_req)(module_id_t, rb_id_t, sdu_size_t, char*); void (*pdcp_data_req)(module_id_t, rb_id_t, sdu_size_t, char*);
signed int (*rrc_rlc_config_req)(unsigned int, unsigned int, unsigned int, unsigned int, rlc_info_t ); signed int (*rrc_rlc_config_req)(unsigned int, unsigned int, unsigned int, unsigned int, rlc_info_t
#ifdef Rel14
,unsigned int
,unsigned int
#endif
);
int (*rrc_mac_config_req)(uint8_t Mod_id,uint8_t eNB_flag,uint8_t UE_id,uint8_t eNB_index, int (*rrc_mac_config_req)(uint8_t Mod_id,uint8_t eNB_flag,uint8_t UE_id,uint8_t eNB_index,
RadioResourceConfigCommonSIB_t *radioResourceConfigCommon, RadioResourceConfigCommonSIB_t *radioResourceConfigCommon,
struct PhysicalConfigDedicated *physicalConfigDedicated, struct PhysicalConfigDedicated *physicalConfigDedicated,
......
...@@ -1686,7 +1686,12 @@ rrc_pdcp_config_req ( ...@@ -1686,7 +1686,12 @@ rrc_pdcp_config_req (
const srb_flag_t srb_flagP, const srb_flag_t srb_flagP,
const uint32_t actionP, const uint32_t actionP,
const rb_id_t rb_idP, const rb_id_t rb_idP,
const uint8_t security_modeP) const uint8_t security_modeP
#ifdef Rel14
,const uint32_t sourceL2Id
,const uint32_t destinationL2Id
#endif
)
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
{ {
pdcp_t *pdcp_p = NULL; pdcp_t *pdcp_p = NULL;
......
...@@ -263,7 +263,12 @@ public_pdcp(void rrc_pdcp_config_req ( ...@@ -263,7 +263,12 @@ public_pdcp(void rrc_pdcp_config_req (
const srb_flag_t srb_flagP, const srb_flag_t srb_flagP,
const uint32_t actionP, const uint32_t actionP,
const rb_id_t rb_idP, const rb_id_t rb_idP,
const uint8_t security_modeP);) const uint8_t security_modeP
#ifdef Rel14
,const uint32_t sourceL2Id
,const uint32_t destinationL2Id
#endif
);)
/*! \fn bool rrc_pdcp_config_asn1_req (const protocol_ctxt_t* const , SRB_ToAddModList_t* srb2add_list, DRB_ToAddModList_t* drb2add_list, DRB_ToReleaseList_t* drb2release_list) /*! \fn bool rrc_pdcp_config_asn1_req (const protocol_ctxt_t* const , SRB_ToAddModList_t* srb2add_list, DRB_ToAddModList_t* drb2add_list, DRB_ToReleaseList_t* drb2release_list)
* \brief Function for RRC to configure a Radio Bearer. * \brief Function for RRC to configure a Radio Bearer.
......
...@@ -424,6 +424,8 @@ private_rlc_rrc(rlc_union_t* rrc_rlc_add_rlc (const protocol_ctxt_t* const ...@@ -424,6 +424,8 @@ private_rlc_rrc(rlc_union_t* rrc_rlc_add_rlc (const protocol_ctxt_t* const
* \param[in] actionP Action for this radio bearer (add, modify, remove). * \param[in] actionP Action for this radio bearer (add, modify, remove).
* \param[in] rb_idP Radio bearer identifier. * \param[in] rb_idP Radio bearer identifier.
* \param[in] rlc_infoP RLC configuration parameters issued from Radio Resource Manager. * \param[in] rlc_infoP RLC configuration parameters issued from Radio Resource Manager.
* \param[in] sourceL2ID [D2D] source L2 Identity.
* \param[in] destinationL2ID [D2D] destination L2 Identity.
* \return A status about the processing, OK or error code. * \return A status about the processing, OK or error code.
*/ */
public_rlc_rrc( rlc_op_status_t rrc_rlc_config_req ( public_rlc_rrc( rlc_op_status_t rrc_rlc_config_req (
...@@ -432,7 +434,12 @@ public_rlc_rrc( rlc_op_status_t rrc_rlc_config_req ( ...@@ -432,7 +434,12 @@ public_rlc_rrc( rlc_op_status_t rrc_rlc_config_req (
const MBMS_flag_t, const MBMS_flag_t,
config_action_t, config_action_t,
const rb_id_t, const rb_id_t,
rlc_info_t );) rlc_info_t
#ifdef Rel14
,const uint32_t
,const uint32_t
#endif
);)
/*! \fn rlc_op_status_t rrc_rlc_data_req (const protocol_ctxt_t* const ctxtP, const MBMS_flag_t MBMS_flagP, const rb_id_t rb_idP, mui_t muiP, confirm_t confirmP, sdu_size_t sdu_sizeP, char* sduP) /*! \fn rlc_op_status_t rrc_rlc_data_req (const protocol_ctxt_t* const ctxtP, const MBMS_flag_t MBMS_flagP, const rb_id_t rb_idP, mui_t muiP, confirm_t confirmP, sdu_size_t sdu_sizeP, char* sduP)
* \brief Function for RRC to send a SDU through a Signalling Radio Bearer. * \brief Function for RRC to send a SDU through a Signalling Radio Bearer.
......
...@@ -812,7 +812,12 @@ rlc_op_status_t rrc_rlc_config_req ( ...@@ -812,7 +812,12 @@ rlc_op_status_t rrc_rlc_config_req (
const MBMS_flag_t mbms_flagP, const MBMS_flag_t mbms_flagP,
const config_action_t actionP, const config_action_t actionP,
const rb_id_t rb_idP, const rb_id_t rb_idP,
const rlc_info_t rlc_infoP) const rlc_info_t rlc_infoP
#ifdef Rel14
,const uint32_t sourceL2Id
,const uint32_t destinationL2Id
#endif
)
{ {
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
//rlc_op_status_t status; //rlc_op_status_t status;
...@@ -886,9 +891,10 @@ rlc_op_status_t rrc_rlc_config_req ( ...@@ -886,9 +891,10 @@ rlc_op_status_t rrc_rlc_config_req (
case CONFIG_ACTION_REMOVE: case CONFIG_ACTION_REMOVE:
return rrc_rlc_remove_rlc(ctxt_pP, srb_flagP, mbms_flagP, rb_idP return rrc_rlc_remove_rlc(ctxt_pP, srb_flagP, mbms_flagP, rb_idP
#ifdef Rel14 #ifdef Rel14
,0, 0 ,sourceL2Id
,destinationL2Id
#endif #endif
); );
break; break;
default: default:
......
...@@ -89,6 +89,8 @@ ...@@ -89,6 +89,8 @@
#define PC5S_ESTABLISH_REQ 11 #define PC5S_ESTABLISH_REQ 11
#define PC5S_ESTABLISH_RSP 12 #define PC5S_ESTABLISH_RSP 12
#define PC5_DISCOVERY_MESSAGE 13 #define PC5_DISCOVERY_MESSAGE 13
#define PC5S_RELEASE_REQ 14
#define PC5S_RELEASE_RSP 15
#define PC5_DISCOVERY_PAYLOAD_SIZE 29 #define PC5_DISCOVERY_PAYLOAD_SIZE 29
...@@ -133,6 +135,11 @@ struct PC5SEstablishRsp{ ...@@ -133,6 +135,11 @@ struct PC5SEstablishRsp{
uint32_t slrbid_lcid30; uint32_t slrbid_lcid30;
}; };
typedef enum {
PC5S_RELEASE_OK = 0,
PC5S_RELEASE_FAILURE
} PC5S_Release_Status_t;
//PC5_DISCOVERY MESSAGE //PC5_DISCOVERY MESSAGE
typedef struct { typedef struct {
...@@ -152,6 +159,7 @@ struct sidelink_ctrl_element { ...@@ -152,6 +159,7 @@ struct sidelink_ctrl_element {
struct DirectCommunicationEstablishReq direct_comm_establish_req; struct DirectCommunicationEstablishReq direct_comm_establish_req;
Group_Communication_Status_t group_comm_release_rsp; Group_Communication_Status_t group_comm_release_rsp;
Direct_Communication_Status_t direct_comm_release_rsp; Direct_Communication_Status_t direct_comm_release_rsp;
PC5S_Release_Status_t pc5s_release_rsp;
SL_UE_STATE_t ue_state; SL_UE_STATE_t ue_state;
int slrb_id; int slrb_id;
struct PC5SEstablishReq pc5s_establish_req; struct PC5SEstablishReq pc5s_establish_req;
......
This diff is collapsed.
...@@ -195,13 +195,23 @@ rrc_t310_expiration( ...@@ -195,13 +195,23 @@ rrc_t310_expiration(
SRB_FLAG_YES, SRB_FLAG_YES,
CONFIG_ACTION_REMOVE, CONFIG_ACTION_REMOVE,
UE_rrc_inst[ctxt_pP->module_id].Srb2[eNB_index].Srb_info.Srb_id, UE_rrc_inst[ctxt_pP->module_id].Srb2[eNB_index].Srb_info.Srb_id,
0); 0
#ifdef Rel14
,0
,0
#endif
);
rrc_rlc_config_req (ctxt_pP, rrc_rlc_config_req (ctxt_pP,
SRB_FLAG_YES, SRB_FLAG_YES,
MBMS_FLAG_NO, MBMS_FLAG_NO,
CONFIG_ACTION_REMOVE, CONFIG_ACTION_REMOVE,
UE_rrc_inst[ctxt_pP->module_id].Srb2[eNB_index].Srb_info.Srb_id, UE_rrc_inst[ctxt_pP->module_id].Srb2[eNB_index].Srb_info.Srb_id,
Rlc_info_um); Rlc_info_um
#ifdef Rel14
,0
,0
#endif
);
UE_rrc_inst[ctxt_pP->module_id].Srb2[eNB_index].Active = 0; UE_rrc_inst[ctxt_pP->module_id].Srb2[eNB_index].Active = 0;
UE_rrc_inst[ctxt_pP->module_id].Srb2[eNB_index].Status = IDLE; UE_rrc_inst[ctxt_pP->module_id].Srb2[eNB_index].Status = IDLE;
UE_rrc_inst[ctxt_pP->module_id].Srb2[eNB_index].Next_check_frame = 0; UE_rrc_inst[ctxt_pP->module_id].Srb2[eNB_index].Next_check_frame = 0;
......
...@@ -3741,7 +3741,12 @@ rrc_eNB_process_RRCConnectionReconfigurationComplete( ...@@ -3741,7 +3741,12 @@ rrc_eNB_process_RRCConnectionReconfigurationComplete(
MBMS_FLAG_NO, MBMS_FLAG_NO,
CONFIG_ACTION_REMOVE, CONFIG_ACTION_REMOVE,
DRB2LCHAN[i], DRB2LCHAN[i],
Rlc_info_um); Rlc_info_um
#ifdef Rel14
,0
,0
#endif
);
} }
ue_context_pP->ue_context.DRB_active[drb_id] = 0; ue_context_pP->ue_context.DRB_active[drb_id] = 0;
......
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