Improvements on BWP switch procedures and harmonize it with RRC processing timer
This commit is contained in:
@@ -297,13 +297,14 @@ int8_t nr_mac_rrc_bwp_switch_req(const module_id_t module_idP,
|
||||
const frame_t frameP,
|
||||
const sub_frame_t sub_frameP,
|
||||
const rnti_t rntiP,
|
||||
const int bwp_id) {
|
||||
const int dl_bwp_id,
|
||||
const int ul_bwp_id) {
|
||||
|
||||
struct rrc_gNB_ue_context_s *ue_context_p = rrc_gNB_get_ue_context(RC.nrrrc[module_idP], rntiP);
|
||||
|
||||
protocol_ctxt_t ctxt;
|
||||
PROTOCOL_CTXT_SET_BY_MODULE_ID(&ctxt, module_idP, GNB_FLAG_YES, rntiP, frameP, sub_frameP, 0);
|
||||
nr_rrc_reconfiguration_req(ue_context_p, &ctxt, bwp_id);
|
||||
nr_rrc_reconfiguration_req(ue_context_p, &ctxt, dl_bwp_id, ul_bwp_id);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -171,7 +171,8 @@ int8_t nr_mac_rrc_bwp_switch_req(const module_id_t module_idP,
|
||||
const frame_t frameP,
|
||||
const sub_frame_t sub_frameP,
|
||||
const rnti_t rntiP,
|
||||
const int bwp_id);
|
||||
const int dl_bwp_id,
|
||||
const int ul_bwp_id);
|
||||
|
||||
int8_t nr_mac_rrc_data_ind(
|
||||
const module_id_t module_idP,
|
||||
@@ -188,7 +189,8 @@ int8_t nr_mac_rrc_data_ind(
|
||||
|
||||
int nr_rrc_reconfiguration_req(rrc_gNB_ue_context_t *const ue_context_pP,
|
||||
protocol_ctxt_t *const ctxt_pP,
|
||||
const int bwp_id);
|
||||
const int dl_bwp_id,
|
||||
const int ul_bwp_id);
|
||||
|
||||
int nr_rrc_gNB_decode_ccch(protocol_ctxt_t *const ctxt_pP,
|
||||
const uint8_t *buffer,
|
||||
|
||||
@@ -1942,16 +1942,21 @@ rrc_gNB_process_RRCConnectionReestablishmentComplete(
|
||||
|
||||
int nr_rrc_reconfiguration_req(rrc_gNB_ue_context_t *const ue_context_pP,
|
||||
protocol_ctxt_t *const ctxt_pP,
|
||||
const int bwp_id) {
|
||||
const int dl_bwp_id,
|
||||
const int ul_bwp_id) {
|
||||
|
||||
uint8_t buffer[RRC_BUF_SIZE];
|
||||
memset(buffer, 0, sizeof(buffer));
|
||||
uint8_t xid = rrc_gNB_get_next_transaction_identifier(ctxt_pP->module_id);
|
||||
|
||||
NR_CellGroupConfig_t *masterCellGroup = ue_context_pP->ue_context.masterCellGroup;
|
||||
*masterCellGroup->spCellConfig->spCellConfigDedicated->firstActiveDownlinkBWP_Id = bwp_id;
|
||||
*masterCellGroup->spCellConfig->spCellConfigDedicated->defaultDownlinkBWP_Id = bwp_id;
|
||||
*masterCellGroup->spCellConfig->spCellConfigDedicated->uplinkConfig->firstActiveUplinkBWP_Id = bwp_id;
|
||||
if (dl_bwp_id >= 0) {
|
||||
*masterCellGroup->spCellConfig->spCellConfigDedicated->firstActiveDownlinkBWP_Id = dl_bwp_id;
|
||||
*masterCellGroup->spCellConfig->spCellConfigDedicated->defaultDownlinkBWP_Id = dl_bwp_id;
|
||||
}
|
||||
if (ul_bwp_id >= 0) {
|
||||
*masterCellGroup->spCellConfig->spCellConfigDedicated->uplinkConfig->firstActiveUplinkBWP_Id = ul_bwp_id;
|
||||
}
|
||||
|
||||
uint16_t size = do_RRCReconfiguration(ctxt_pP,
|
||||
buffer,
|
||||
|
||||
Reference in New Issue
Block a user