generate RRCReject if no DU to CU container in initial UL RRC message
slightly refactor rrc_gNB_generate_RRCReject() to take rrc pointer. Remove unused/illegal fields from the DL RRC message.
This commit is contained in:
committed by
Robert Schmidt
parent
6a1203bb15
commit
511f2f2487
@@ -393,10 +393,9 @@ static void rrc_gNB_generate_RRCSetup(instance_t instance,
|
|||||||
rrc->mac_rrc.dl_rrc_message_transfer(ue_data.du_assoc_id, &dl_rrc);
|
rrc->mac_rrc.dl_rrc_message_transfer(ue_data.du_assoc_id, &dl_rrc);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void rrc_gNB_generate_RRCReject(module_id_t module_id, rrc_gNB_ue_context_t *const ue_context_pP)
|
static void rrc_gNB_generate_RRCReject(gNB_RRC_INST *rrc, rrc_gNB_ue_context_t *const ue_context_pP)
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
{
|
{
|
||||||
gNB_RRC_INST *rrc = RC.nrrrc[module_id];
|
|
||||||
gNB_RRC_UE_t *ue_p = &ue_context_pP->ue_context;
|
gNB_RRC_UE_t *ue_p = &ue_context_pP->ue_context;
|
||||||
LOG_A(NR_RRC, "Send RRCReject to RNTI %04x\n", ue_p->rnti);
|
LOG_A(NR_RRC, "Send RRCReject to RNTI %04x\n", ue_p->rnti);
|
||||||
|
|
||||||
@@ -420,10 +419,10 @@ static void rrc_gNB_generate_RRCReject(module_id_t module_id, rrc_gNB_ue_context
|
|||||||
.rrc_container = buf,
|
.rrc_container = buf,
|
||||||
.rrc_container_length = size,
|
.rrc_container_length = size,
|
||||||
.srb_id = srbid,
|
.srb_id = srbid,
|
||||||
.execute_duplication = 1,
|
|
||||||
.RAT_frequency_priority_information.en_dc = 0
|
|
||||||
};
|
};
|
||||||
rrc->mac_rrc.dl_rrc_message_transfer(ue_data.du_assoc_id, &dl_rrc);
|
rrc->mac_rrc.dl_rrc_message_transfer(ue_data.du_assoc_id, &dl_rrc);
|
||||||
|
/* release the created UE context, we rejected the UE */
|
||||||
|
rrc_remove_ue(rrc, ue_context_pP);
|
||||||
}
|
}
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
@@ -1135,10 +1134,17 @@ static void rrc_handle_RRCSetupRequest(gNB_RRC_INST *rrc,
|
|||||||
|
|
||||||
ue_context_p = rrc_gNB_create_ue_context(assoc_id, msg->crnti, rrc, random_value, msg->gNB_DU_ue_id);
|
ue_context_p = rrc_gNB_create_ue_context(assoc_id, msg->crnti, rrc, random_value, msg->gNB_DU_ue_id);
|
||||||
LOG_E(NR_RRC, "RRCSetupRequest without random UE identity or S-TMSI not supported, let's reject the UE %04x\n", msg->crnti);
|
LOG_E(NR_RRC, "RRCSetupRequest without random UE identity or S-TMSI not supported, let's reject the UE %04x\n", msg->crnti);
|
||||||
rrc_gNB_generate_RRCReject(0, ue_context_p);
|
rrc_gNB_generate_RRCReject(rrc, ue_context_p);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// If the DU to CU RRC Container IE is not included in the INITIAL UL RRC MESSAGE TRANSFER,
|
||||||
|
// the gNB-CU should reject the UE under the assumption that the gNB-DU is not able to serve such UE
|
||||||
|
if (msg->du2cu_rrc_container == NULL) {
|
||||||
|
// this will remove the UE context
|
||||||
|
rrc_gNB_generate_RRCReject(rrc, ue_context_p);
|
||||||
|
return;
|
||||||
|
}
|
||||||
NR_CellGroupConfig_t *cellGroupConfig = NULL;
|
NR_CellGroupConfig_t *cellGroupConfig = NULL;
|
||||||
asn_dec_rval_t dec_rval = uper_decode_complete(NULL,
|
asn_dec_rval_t dec_rval = uper_decode_complete(NULL,
|
||||||
&asn_DEF_NR_CellGroupConfig,
|
&asn_DEF_NR_CellGroupConfig,
|
||||||
|
|||||||
Reference in New Issue
Block a user