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;
......
...@@ -2243,7 +2243,7 @@ rrc_ue_process_mobilityControlInfo( ...@@ -2243,7 +2243,7 @@ rrc_ue_process_mobilityControlInfo(
/* /*
drb2release_list = CALLOC (1, sizeof (*drb2release_list)); drb2release_list = CALLOC (1, sizeof (*drb2release_list));
lcid= CALLOC (1, sizeof (DRB_Identity_t)); // long lcid = CALLOC (1, sizeof (DRB_Identity_t)); // long
for (*lcid=0;*lcid<NB_RB_MAX;*lcid++) for (*lcid=0;*lcid<NB_RB_MAX;*lcid++)
{ {
ASN_SEQUENCE_ADD (&(drb2release_list)->list,lcid); ASN_SEQUENCE_ADD (&(drb2release_list)->list,lcid);
...@@ -2251,12 +2251,42 @@ rrc_ue_process_mobilityControlInfo( ...@@ -2251,12 +2251,42 @@ rrc_ue_process_mobilityControlInfo(
*/ */
//Removing SRB1 and SRB2 and DRB0 //Removing SRB1 and SRB2 and DRB0
LOG_N(RRC,"[UE %d] : Update needed for rrc_pdcp_config_req (deprecated) and rrc_rlc_config_req commands(deprecated)\n", ctxt_pP->module_id); LOG_N(RRC,"[UE %d] : Update needed for rrc_pdcp_config_req (deprecated) and rrc_rlc_config_req commands(deprecated)\n", ctxt_pP->module_id);
rrc_pdcp_config_req (ctxt_pP, SRB_FLAG_YES, CONFIG_ACTION_REMOVE, DCCH,UNDEF_SECURITY_MODE); rrc_pdcp_config_req (ctxt_pP, SRB_FLAG_YES, CONFIG_ACTION_REMOVE, DCCH,UNDEF_SECURITY_MODE
rrc_rlc_config_req(ctxt_pP, SRB_FLAG_YES, MBMS_FLAG_NO, CONFIG_ACTION_REMOVE,ctxt_pP->module_id+DCCH,Rlc_info_am_config); #ifdef Rel14
rrc_pdcp_config_req (ctxt_pP, SRB_FLAG_YES, CONFIG_ACTION_REMOVE, DCCH1,UNDEF_SECURITY_MODE); ,0
rrc_rlc_config_req(ctxt_pP, SRB_FLAG_YES,CONFIG_ACTION_REMOVE, MBMS_FLAG_NO,ctxt_pP->module_id+DCCH1,Rlc_info_am_config); ,0
rrc_pdcp_config_req (ctxt_pP, SRB_FLAG_NO, CONFIG_ACTION_REMOVE, DTCH,UNDEF_SECURITY_MODE); #endif
rrc_rlc_config_req(ctxt_pP, SRB_FLAG_NO,CONFIG_ACTION_REMOVE, MBMS_FLAG_NO,ctxt_pP->module_id+DTCH,Rlc_info_um); );
rrc_rlc_config_req(ctxt_pP, SRB_FLAG_YES, MBMS_FLAG_NO, CONFIG_ACTION_REMOVE,ctxt_pP->module_id+DCCH,Rlc_info_am_config
#ifdef Rel14
,0
,0
#endif
);
rrc_pdcp_config_req (ctxt_pP, SRB_FLAG_YES, CONFIG_ACTION_REMOVE, DCCH1,UNDEF_SECURITY_MODE
#ifdef Rel14
,0
,0
#endif
);
rrc_rlc_config_req(ctxt_pP, SRB_FLAG_YES,CONFIG_ACTION_REMOVE, MBMS_FLAG_NO,ctxt_pP->module_id+DCCH1,Rlc_info_am_config
#ifdef Rel14
,0
,0
#endif
);
rrc_pdcp_config_req (ctxt_pP, SRB_FLAG_NO, CONFIG_ACTION_REMOVE, DTCH,UNDEF_SECURITY_MODE
#ifdef Rel14
,0
,0
#endif
);
rrc_rlc_config_req(ctxt_pP, SRB_FLAG_NO,CONFIG_ACTION_REMOVE, MBMS_FLAG_NO,ctxt_pP->module_id+DTCH,Rlc_info_um
#ifdef Rel14
,0
,0
#endif
);
/* /*
rrc_pdcp_config_asn1_req(NB_eNB_INST+ue_mod_idP,frameP, 0,eNB_index, rrc_pdcp_config_asn1_req(NB_eNB_INST+ue_mod_idP,frameP, 0,eNB_index,
NULL, // SRB_ToAddModList NULL, // SRB_ToAddModList
...@@ -5479,6 +5509,8 @@ void *rrc_control_socket_thread_fct(void *arg) ...@@ -5479,6 +5509,8 @@ void *rrc_control_socket_thread_fct(void *arg)
int j = 0; int j = 0;
int i = 0; int i = 0;
int slrb_id =0; int slrb_id =0;
DRB_Identity_t drb_id = 0;
DRB_ToReleaseList_t* drb2release_list = NULL;
//from the main program, listen for the incoming messages from control socket (ProSe App) //from the main program, listen for the incoming messages from control socket (ProSe App)
prose_addr_len = sizeof(prose_app_addr); prose_addr_len = sizeof(prose_app_addr);
...@@ -6029,7 +6061,6 @@ void *rrc_control_socket_thread_fct(void *arg) ...@@ -6029,7 +6061,6 @@ void *rrc_control_socket_thread_fct(void *arg)
UE_rrc_inst[module_id].destinationL2Id = 0x00000000; UE_rrc_inst[module_id].destinationL2Id = 0x00000000;
sourceL2Id = UE_rrc_inst[module_id].sourceL2Id; sourceL2Id = UE_rrc_inst[module_id].sourceL2Id;
//find the corresponding record and reset the values //find the corresponding record and reset the values
if (slrb_id > 0){ if (slrb_id > 0){
for (i=0; i< MAX_NUM_LCID_DATA; i++) { for (i=0; i< MAX_NUM_LCID_DATA; i++) {
...@@ -6044,11 +6075,10 @@ void *rrc_control_socket_thread_fct(void *arg) ...@@ -6044,11 +6075,10 @@ void *rrc_control_socket_thread_fct(void *arg)
} }
//TEST Remove RLC //TEST Remove RLC
DRB_Identity_t drb_id = slrb_id; drb_id = slrb_id;
DRB_ToReleaseList_t* drb2release_list = NULL;
drb2release_list = CALLOC(1, sizeof(DRB_ToReleaseList_t)); drb2release_list = CALLOC(1, sizeof(DRB_ToReleaseList_t));
ASN_SEQUENCE_ADD(&drb2release_list->list, drb_id); ASN_SEQUENCE_ADD(&drb2release_list->list, drb_id);
/*
rrc_rlc_config_asn1_req(&ctxt, rrc_rlc_config_asn1_req(&ctxt,
(SRB_ToAddModList_t*)NULL, (SRB_ToAddModList_t*)NULL,
...@@ -6059,7 +6089,15 @@ void *rrc_control_socket_thread_fct(void *arg) ...@@ -6059,7 +6089,15 @@ void *rrc_control_socket_thread_fct(void *arg)
, sourceL2Id, destinationL2Id , sourceL2Id, destinationL2Id
#endif #endif
); );
*/
rrc_rlc_config_req(&ctxt, SRB_FLAG_NO,CONFIG_ACTION_REMOVE, MBMS_FLAG_NO,slrb_id,Rlc_info_um
#ifdef Rel14
,0
,0
#endif
);
//need to remove PDCP instance
...@@ -6103,85 +6141,6 @@ void *rrc_control_socket_thread_fct(void *arg) ...@@ -6103,85 +6141,6 @@ void *rrc_control_socket_thread_fct(void *arg)
); );
//TEST REMOVE RLC
slrb_id = 9;
//find the corresponding record and reset the values
if (slrb_id > 0){
for (i=0; i< MAX_NUM_LCID_DATA; i++) {
if (UE_rrc_inst[module_id].sl_info[i].LCID == slrb_id) {
UE_rrc_inst[module_id].sl_info[i].LCID = 0;
LOG_I(RRC,"[DirectCommunicationReleaseRequest] rbid %d for destination Id: 0x%08x\n has been removed",slrb_id, UE_rrc_inst[module_id].sl_info[i].destinationL2Id );
//UE_rrc_inst[module_id].sl_info[i].destinationL2Id = 0x00;
destinationL2Id = UE_rrc_inst[module_id].sl_info[i].destinationL2Id;
break;
}
}
}
drb_id = slrb_id;
drb2release_list = NULL;
drb2release_list = CALLOC(1, sizeof(DRB_ToReleaseList_t));
ASN_SEQUENCE_ADD(&drb2release_list->list, drb_id);
rrc_rlc_config_asn1_req(&ctxt,
(SRB_ToAddModList_t*)NULL,
(DRB_ToAddModList_t*)NULL,
(DRB_ToReleaseList_t*)drb2release_list
#ifdef Rel14
,(PMCH_InfoList_r9_t *)NULL
, sourceL2Id, destinationL2Id
#endif
);
rrc_mac_config_req_ue(module_id,0,0, //eNB_index =0
(RadioResourceConfigCommonSIB_t *)NULL,
(struct PhysicalConfigDedicated *)NULL,
#if defined(Rel10) || defined(Rel14)
(SCellToAddMod_r10_t *)NULL,
//struct PhysicalConfigDedicatedSCell_r10 *physicalConfigDedicatedSCell_r10,
#endif
(MeasObjectToAddMod_t **)NULL,
(MAC_MainConfig_t *)NULL,
slrb_id,
(struct LogicalChannelConfig *)NULL,
(MeasGapConfig_t *)NULL,
(TDD_Config_t *)NULL,
(MobilityControlInfo_t *)NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL
#if defined(Rel10) || defined(Rel14)
,0,
(MBSFN_AreaInfoList_r9_t *)NULL,
(PMCH_InfoList_r9_t *)NULL
#endif
#ifdef CBA
,
0,
0
#endif
#if defined(Rel10) || defined(Rel14)
,CONFIG_ACTION_REMOVE,
&sourceL2Id,
NULL,
NULL
#endif
);
LOG_I(RRC,"Send DirectCommunicationReleaseResponse to ProSe App \n"); LOG_I(RRC,"Send DirectCommunicationReleaseResponse to ProSe App \n");
memset(send_buf, 0, BUFSIZE); memset(send_buf, 0, BUFSIZE);
...@@ -6450,6 +6409,108 @@ void *rrc_control_socket_thread_fct(void *arg) ...@@ -6450,6 +6409,108 @@ void *rrc_control_socket_thread_fct(void *arg)
} }
break; break;
case PC5S_RELEASE_REQ:
printf("-----------------------------------\n");
#ifdef DEBUG_CTRL_SOCKET
LOG_I(RRC,"[PC5SReleaseRequest] Received on socket from ProSe App (msg type: %d)\n",sl_ctrl_msg_recv->type);
LOG_I(RRC,"[PC5SReleaseRequest] Slrb Id: %i\n",sl_ctrl_msg_recv->sidelinkPrimitive.slrb_id);
#endif
slrb_id = sl_ctrl_msg_recv->sidelinkPrimitive.slrb_id;
//reset groupL2ID from MAC LAYER
UE_rrc_inst[module_id].destinationL2Id = 0x00000000;
sourceL2Id = UE_rrc_inst[module_id].sourceL2Id;
//find the corresponding record and reset the values
if (slrb_id > 0){
for (i = MAX_NUM_LCID_DATA; i< MAX_NUM_LCID; i++) {
if (UE_rrc_inst[module_id].sl_info[i].LCID == slrb_id) {
UE_rrc_inst[module_id].sl_info[i].LCID = 0;
LOG_I(RRC,"[DirectCommunicationReleaseRequest] rbid %d for destination Id: 0x%08x\n has been removed",slrb_id, UE_rrc_inst[module_id].sl_info[i].destinationL2Id );
//UE_rrc_inst[module_id].sl_info[i].destinationL2Id = 0x00;
destinationL2Id = UE_rrc_inst[module_id].sl_info[i].destinationL2Id;
break;
}
}
}
//TEST Remove RLC
drb_id = slrb_id;
drb2release_list = CALLOC(1, sizeof(DRB_ToReleaseList_t));
ASN_SEQUENCE_ADD(&drb2release_list->list, drb_id);
rrc_rlc_config_asn1_req(&ctxt,
(SRB_ToAddModList_t*)NULL,
(DRB_ToAddModList_t*)NULL,
(DRB_ToReleaseList_t*)drb2release_list
#ifdef Rel14
,(PMCH_InfoList_r9_t *)NULL
, sourceL2Id, destinationL2Id
#endif
);
rrc_mac_config_req_ue(module_id,0,0, //eNB_index =0
(RadioResourceConfigCommonSIB_t *)NULL,
(struct PhysicalConfigDedicated *)NULL,
#if defined(Rel10) || defined(Rel14)
(SCellToAddMod_r10_t *)NULL,
//struct PhysicalConfigDedicatedSCell_r10 *physicalConfigDedicatedSCell_r10,
#endif
(MeasObjectToAddMod_t **)NULL,
(MAC_MainConfig_t *)NULL,
slrb_id,
(struct LogicalChannelConfig *)NULL,
(MeasGapConfig_t *)NULL,
(TDD_Config_t *)NULL,
(MobilityControlInfo_t *)NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL
#if defined(Rel10) || defined(Rel14)
,0,
(MBSFN_AreaInfoList_r9_t *)NULL,
(PMCH_InfoList_r9_t *)NULL
#endif
#ifdef CBA
,
0,
0
#endif
#if defined(Rel10) || defined(Rel14)
,CONFIG_ACTION_REMOVE,
&sourceL2Id,
NULL,
NULL
#endif
);
LOG_I(RRC,"Send PC5SReleaseResponse to ProSe App \n");
memset(send_buf, 0, BUFSIZE);
sl_ctrl_msg_send = calloc(1, sizeof(struct sidelink_ctrl_element));
sl_ctrl_msg_send->type = PC5S_RELEASE_RSP;
sl_ctrl_msg_send->sidelinkPrimitive.direct_comm_release_rsp = PC5S_RELEASE_OK;
memcpy((void *)send_buf, (void *)sl_ctrl_msg_send, sizeof(struct sidelink_ctrl_element));
free(sl_ctrl_msg_send);
prose_addr_len = sizeof(prose_app_addr);
n = sendto(ctrl_sock_fd, (char *)send_buf, sizeof(struct sidelink_ctrl_element), 0, (struct sockaddr *)&prose_app_addr, prose_addr_len);
if (n < 0){
LOG_E(RRC, "ERROR: Failed to send to ProSe App\n");
exit(EXIT_FAILURE);
}
break;
case PC5_DISCOVERY_MESSAGE: case PC5_DISCOVERY_MESSAGE:
......
...@@ -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