|
|
@ -214,7 +214,7 @@ int ngap::build_tai_cgi()
|
|
|
|
void ngap::initial_ue(uint16_t rnti,
|
|
|
|
void ngap::initial_ue(uint16_t rnti,
|
|
|
|
uint32_t gnb_cc_idx,
|
|
|
|
uint32_t gnb_cc_idx,
|
|
|
|
asn1::ngap_nr::rrcestablishment_cause_e cause,
|
|
|
|
asn1::ngap_nr::rrcestablishment_cause_e cause,
|
|
|
|
srsran::unique_byte_buffer_t pdu)
|
|
|
|
srsran::const_byte_span pdu)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
std::unique_ptr<ue> ue_ptr{new ue{this, rrc, gtpu, logger}};
|
|
|
|
std::unique_ptr<ue> ue_ptr{new ue{this, rrc, gtpu, logger}};
|
|
|
|
ue_ptr->ctxt.rnti = rnti;
|
|
|
|
ue_ptr->ctxt.rnti = rnti;
|
|
|
@ -224,13 +224,13 @@ void ngap::initial_ue(uint16_t rnti,
|
|
|
|
logger.error("Failed to add rnti=0x%x", rnti);
|
|
|
|
logger.error("Failed to add rnti=0x%x", rnti);
|
|
|
|
return;
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
u->send_initial_ue_message(cause, std::move(pdu), false);
|
|
|
|
u->send_initial_ue_message(cause, pdu, false);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void ngap::initial_ue(uint16_t rnti,
|
|
|
|
void ngap::initial_ue(uint16_t rnti,
|
|
|
|
uint32_t gnb_cc_idx,
|
|
|
|
uint32_t gnb_cc_idx,
|
|
|
|
asn1::ngap_nr::rrcestablishment_cause_e cause,
|
|
|
|
asn1::ngap_nr::rrcestablishment_cause_e cause,
|
|
|
|
srsran::unique_byte_buffer_t pdu,
|
|
|
|
srsran::const_byte_span pdu,
|
|
|
|
uint32_t s_tmsi)
|
|
|
|
uint32_t s_tmsi)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
std::unique_ptr<ue> ue_ptr{new ue{this, rrc, gtpu, logger}};
|
|
|
|
std::unique_ptr<ue> ue_ptr{new ue{this, rrc, gtpu, logger}};
|
|
|
@ -241,7 +241,7 @@ void ngap::initial_ue(uint16_t rnti,
|
|
|
|
logger.error("Failed to add rnti=0x%x", rnti);
|
|
|
|
logger.error("Failed to add rnti=0x%x", rnti);
|
|
|
|
return;
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
u->send_initial_ue_message(cause, std::move(pdu), true, s_tmsi);
|
|
|
|
u->send_initial_ue_message(cause, pdu, true, s_tmsi);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void ngap::ue_notify_rrc_reconf_complete(uint16_t rnti, bool outcome)
|
|
|
|
void ngap::ue_notify_rrc_reconf_complete(uint16_t rnti, bool outcome)
|
|
|
@ -253,16 +253,16 @@ void ngap::ue_notify_rrc_reconf_complete(uint16_t rnti, bool outcome)
|
|
|
|
u->notify_rrc_reconf_complete(outcome);
|
|
|
|
u->notify_rrc_reconf_complete(outcome);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void ngap::write_pdu(uint16_t rnti, srsran::unique_byte_buffer_t pdu)
|
|
|
|
void ngap::write_pdu(uint16_t rnti, srsran::const_byte_span pdu)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
logger.info(pdu->msg, pdu->N_bytes, "Received RRC SDU");
|
|
|
|
logger.info(pdu.data(), pdu.size(), "Received RRC SDU");
|
|
|
|
|
|
|
|
|
|
|
|
ue* u = users.find_ue_rnti(rnti);
|
|
|
|
ue* u = users.find_ue_rnti(rnti);
|
|
|
|
if (u == nullptr) {
|
|
|
|
if (u == nullptr) {
|
|
|
|
logger.info("The rnti=0x%x does not exist", rnti);
|
|
|
|
logger.info("The rnti=0x%x does not exist", rnti);
|
|
|
|
return;
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
u->send_ul_nas_transport(std::move(pdu));
|
|
|
|
u->send_ul_nas_transport(pdu);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/*********************************************************
|
|
|
|
/*********************************************************
|
|
|
|