Commit e04f5926 authored by aligungr's avatar aligungr

L3 RRC/NAS developments

parent 75266085
......@@ -66,7 +66,7 @@ bool GnbCmdHandler::isAllPaused()
return true;
}
void GnbCmdHandler::handleCmd(NwGnbCliCommand &msg)
void GnbCmdHandler::handleCmd(NmGnbCliCommand &msg)
{
pauseTasks();
......@@ -97,7 +97,7 @@ void GnbCmdHandler::handleCmd(NwGnbCliCommand &msg)
unpauseTasks();
}
void GnbCmdHandler::handleCmdImpl(NwGnbCliCommand &msg)
void GnbCmdHandler::handleCmdImpl(NmGnbCliCommand &msg)
{
switch (msg.cmd->present)
{
......
......@@ -24,7 +24,7 @@ class GnbCmdHandler
{
}
void handleCmd(NwGnbCliCommand &msg);
void handleCmd(NmGnbCliCommand &msg);
private:
void pauseTasks();
......@@ -32,7 +32,7 @@ class GnbCmdHandler
bool isAllPaused();
private:
void handleCmdImpl(NwGnbCliCommand &msg);
void handleCmdImpl(NmGnbCliCommand &msg);
private:
void sendResult(const InetAddress &address, const std::string &output);
......
......@@ -32,17 +32,17 @@ void GnbAppTask::onLoop()
switch (msg->msgType)
{
case NtsMessageType::GNB_STATUS_UPDATE: {
auto *w = dynamic_cast<NwGnbStatusUpdate *>(msg);
auto *w = dynamic_cast<NmGnbStatusUpdate *>(msg);
switch (w->what)
{
case NwGnbStatusUpdate::NGAP_IS_UP:
case NmGnbStatusUpdate::NGAP_IS_UP:
m_statusInfo.isNgapUp = w->isNgapUp;
break;
}
break;
}
case NtsMessageType::GNB_CLI_COMMAND: {
auto *w = dynamic_cast<NwGnbCliCommand *>(msg);
auto *w = dynamic_cast<NmGnbCliCommand *>(msg);
GnbCmdHandler handler{m_base};
handler.handleCmd(*w);
break;
......
......@@ -70,7 +70,7 @@ void GNodeB::start()
void GNodeB::pushCommand(std::unique_ptr<app::GnbCliCommand> cmd, const InetAddress &address)
{
taskBase->appTask->push(new NwGnbCliCommand(std::move(cmd), address));
taskBase->appTask->push(new NmGnbCliCommand(std::move(cmd), address));
}
} // namespace nr::gnb
......@@ -55,22 +55,22 @@ void GtpTask::onLoop()
switch (msg->msgType)
{
case NtsMessageType::GNB_NGAP_TO_GTP: {
auto *w = dynamic_cast<NwGnbNgapToGtp *>(msg);
auto *w = dynamic_cast<NmGnbNgapToGtp *>(msg);
switch (w->present)
{
case NwGnbNgapToGtp::UE_CONTEXT_UPDATE: {
case NmGnbNgapToGtp::UE_CONTEXT_UPDATE: {
handleUeContextUpdate(*w->update);
break;
}
case NwGnbNgapToGtp::UE_CONTEXT_RELEASE: {
case NmGnbNgapToGtp::UE_CONTEXT_RELEASE: {
handleUeContextDelete(w->ueId);
break;
}
case NwGnbNgapToGtp::SESSION_CREATE: {
case NmGnbNgapToGtp::SESSION_CREATE: {
handleSessionCreate(w->resource);
break;
}
case NwGnbNgapToGtp::SESSION_RELEASE: {
case NmGnbNgapToGtp::SESSION_RELEASE: {
handleSessionRelease(w->ueId, w->psi);
break;
}
......@@ -78,10 +78,10 @@ void GtpTask::onLoop()
break;
}
case NtsMessageType::GNB_RLS_TO_GTP: {
auto *w = dynamic_cast<NwGnbRlsToGtp *>(msg);
auto *w = dynamic_cast<NmGnbRlsToGtp *>(msg);
switch (w->present)
{
case NwGnbRlsToGtp::DATA_PDU_DELIVERY: {
case NmGnbRlsToGtp::DATA_PDU_DELIVERY: {
handleUplinkData(w->ueId, w->psi, std::move(w->pdu));
break;
}
......@@ -240,7 +240,7 @@ void GtpTask::handleUdpReceive(const udp::NwUdpServerReceive &msg)
if (m_rateLimiter->allowDownlinkPacket(sessionInd, gtp->payload.length()))
{
auto *w = new NwGnbGtpToRls(NwGnbGtpToRls::DATA_PDU_DELIVERY);
auto *w = new NmGnbGtpToRls(NmGnbGtpToRls::DATA_PDU_DELIVERY);
w->ueId = GetUeId(sessionInd);
w->psi = GetPsi(sessionInd);
w->pdu = std::move(gtp->payload);
......
......@@ -53,7 +53,7 @@ void NgapTask::receiveInitialContextSetup(int amfId, ASN_NGAP_InitialContextSetu
if (ie)
deliverDownlinkNas(ue->ctxId, asn::GetOctetString(ie->NAS_PDU));
auto *w = new NwGnbNgapToGtp(NwGnbNgapToGtp::UE_CONTEXT_UPDATE);
auto *w = new NmGnbNgapToGtp(NmGnbNgapToGtp::UE_CONTEXT_UPDATE);
w->update = std::make_unique<GtpUeContextUpdate>(true, ue->ctxId, ue->ueAmbr);
m_base->gtpTask->push(w);
}
......@@ -67,12 +67,12 @@ void NgapTask::receiveContextRelease(int amfId, ASN_NGAP_UEContextReleaseCommand
return;
// Notify RRC task
auto *w1 = new NwGnbNgapToRrc(NwGnbNgapToRrc::AN_RELEASE);
auto *w1 = new NmGnbNgapToRrc(NmGnbNgapToRrc::AN_RELEASE);
w1->ueId = ue->ctxId;
m_base->rrcTask->push(w1);
// Notify GTP task
auto *w2 = new NwGnbNgapToGtp(NwGnbNgapToGtp::UE_CONTEXT_RELEASE);
auto *w2 = new NmGnbNgapToGtp(NmGnbNgapToGtp::UE_CONTEXT_RELEASE);
w2->ueId = ue->ctxId;
m_base->gtpTask->push(w2);
......@@ -108,7 +108,7 @@ void NgapTask::receiveContextModification(int amfId, ASN_NGAP_UEContextModificat
auto *response = asn::ngap::NewMessagePdu<ASN_NGAP_UEContextModificationResponse>({});
sendNgapUeAssociated(ue->ctxId, response);
auto *w = new NwGnbNgapToGtp(NwGnbNgapToGtp::UE_CONTEXT_UPDATE);
auto *w = new NmGnbNgapToGtp(NmGnbNgapToGtp::UE_CONTEXT_UPDATE);
w->update = std::make_unique<GtpUeContextUpdate>(false, ue->ctxId, ue->ueAmbr);
m_base->gtpTask->push(w);
}
......
......@@ -99,7 +99,7 @@ void NgapTask::handleAssociationShutdown(int amfId)
amf->state = EAmfState::NOT_CONNECTED;
auto *w = new NwGnbSctp(NwGnbSctp::CONNECTION_CLOSE);
auto *w = new NmGnbSctp(NmGnbSctp::CONNECTION_CLOSE);
w->clientId = amfId;
m_base->sctpTask->push(w);
......@@ -192,11 +192,11 @@ void NgapTask::receiveNgSetupResponse(int amfId, ASN_NGAP_NGSetupResponse *msg)
{
m_isInitialized = true;
auto *update = new NwGnbStatusUpdate(NwGnbStatusUpdate::NGAP_IS_UP);
auto *update = new NmGnbStatusUpdate(NmGnbStatusUpdate::NGAP_IS_UP);
update->isNgapUp = true;
m_base->appTask->push(update);
m_base->rrcTask->push(new NwGnbNgapToRrc(NwGnbNgapToRrc::RADIO_POWER_ON));
m_base->rrcTask->push(new NmGnbNgapToRrc(NmGnbNgapToRrc::RADIO_POWER_ON));
}
}
......
......@@ -78,7 +78,7 @@ void NgapTask::handleInitialNasTransport(int ueId, const OctetString &nasPdu, lo
void NgapTask::deliverDownlinkNas(int ueId, OctetString &&nasPdu)
{
auto *w = new NwGnbNgapToRrc(NwGnbNgapToRrc::NAS_DELIVERY);
auto *w = new NmGnbNgapToRrc(NmGnbNgapToRrc::NAS_DELIVERY);
w->ueId = ueId;
w->pdu = std::move(nasPdu);
m_base->rrcTask->push(w);
......
......@@ -22,7 +22,7 @@ namespace nr::gnb
void NgapTask::handleRadioLinkFailure(int ueId)
{
// Notify GTP task
auto *w2 = new NwGnbNgapToGtp(NwGnbNgapToGtp::UE_CONTEXT_RELEASE);
auto *w2 = new NmGnbNgapToGtp(NmGnbNgapToGtp::UE_CONTEXT_RELEASE);
w2->ueId = ueId;
m_base->gtpTask->push(w2);
......@@ -48,7 +48,7 @@ void NgapTask::receivePaging(int amfId, ASN_NGAP_Paging *msg)
return;
}
auto *w = new NwGnbNgapToRrc(NwGnbNgapToRrc::PAGING);
auto *w = new NmGnbNgapToRrc(NmGnbNgapToRrc::PAGING);
w->uePagingTmsi =
asn::UniqueCopy(*ieUePagingIdentity->UEPagingIdentity.choice.fiveG_S_TMSI, asn_DEF_ASN_NGAP_FiveG_S_TMSI);
w->taiListForPaging = asn::UniqueCopy(ieTaiListForPaging->TAIListForPaging, asn_DEF_ASN_NGAP_TAIListForPaging);
......
......@@ -236,7 +236,7 @@ std::optional<NgapCause> NgapTask::setupPduSessionResource(PduSessionResource *r
resource->downTunnel.address = utils::IpToOctetString(m_base->config->gtpIp);
resource->downTunnel.teid = ++m_downlinkTeidCounter;
auto *w = new NwGnbNgapToGtp(NwGnbNgapToGtp::SESSION_CREATE);
auto *w = new NmGnbNgapToGtp(NmGnbNgapToGtp::SESSION_CREATE);
w->resource = resource;
m_base->gtpTask->push(w);
......@@ -277,7 +277,7 @@ void NgapTask::receiveSessionResourceReleaseCommand(int amfId, ASN_NGAP_PDUSessi
// Perform release
for (auto &psi : psIds)
{
auto *w = new NwGnbNgapToGtp(NwGnbNgapToGtp::SESSION_RELEASE);
auto *w = new NmGnbNgapToGtp(NmGnbNgapToGtp::SESSION_RELEASE);
w->ueId = ue->ctxId;
w->psi = psi;
m_base->gtpTask->push(w);
......
......@@ -30,7 +30,7 @@ void NgapTask::onStart()
for (auto &amfCtx : m_amfCtx)
{
auto *msg = new NwGnbSctp(NwGnbSctp::CONNECTION_REQUEST);
auto *msg = new NmGnbSctp(NmGnbSctp::CONNECTION_REQUEST);
msg->clientId = amfCtx.second->ctxId;
msg->localAddress = m_base->config->ngapIp;
msg->localPort = 0;
......@@ -51,18 +51,18 @@ void NgapTask::onLoop()
switch (msg->msgType)
{
case NtsMessageType::GNB_RRC_TO_NGAP: {
auto *w = dynamic_cast<NwGnbRrcToNgap *>(msg);
auto *w = dynamic_cast<NmGnbRrcToNgap *>(msg);
switch (w->present)
{
case NwGnbRrcToNgap::INITIAL_NAS_DELIVERY: {
case NmGnbRrcToNgap::INITIAL_NAS_DELIVERY: {
handleInitialNasTransport(w->ueId, w->pdu, w->rrcEstablishmentCause);
break;
}
case NwGnbRrcToNgap::UPLINK_NAS_DELIVERY: {
case NmGnbRrcToNgap::UPLINK_NAS_DELIVERY: {
handleUplinkNasTransport(w->ueId, w->pdu);
break;
}
case NwGnbRrcToNgap::RADIO_LINK_FAILURE: {
case NmGnbRrcToNgap::RADIO_LINK_FAILURE: {
handleRadioLinkFailure(w->ueId);
break;
}
......@@ -70,16 +70,16 @@ void NgapTask::onLoop()
break;
}
case NtsMessageType::GNB_SCTP: {
auto *w = dynamic_cast<NwGnbSctp *>(msg);
auto *w = dynamic_cast<NmGnbSctp *>(msg);
switch (w->present)
{
case NwGnbSctp::ASSOCIATION_SETUP:
case NmGnbSctp::ASSOCIATION_SETUP:
handleAssociationSetup(w->clientId, w->associationId, w->inStreams, w->outStreams);
break;
case NwGnbSctp::RECEIVE_MESSAGE:
case NmGnbSctp::RECEIVE_MESSAGE:
handleSctpMessage(w->clientId, w->stream, w->buffer);
break;
case NwGnbSctp::ASSOCIATION_SHUTDOWN:
case NmGnbSctp::ASSOCIATION_SHUTDOWN:
handleAssociationShutdown(w->clientId);
break;
default:
......
......@@ -109,7 +109,7 @@ void NgapTask::sendNgapNonUe(int associatedAmf, ASN_NGAP_NGAP_PDU *pdu)
m_logger->err("NGAP APER encoding failed");
else
{
auto *msg = new NwGnbSctp(NwGnbSctp::SEND_MESSAGE);
auto *msg = new NmGnbSctp(NmGnbSctp::SEND_MESSAGE);
msg->clientId = amf->ctxId;
msg->stream = 0;
msg->buffer = UniqueBuffer{buffer, static_cast<size_t>(encoded)};
......@@ -200,7 +200,7 @@ void NgapTask::sendNgapUeAssociated(int ueId, ASN_NGAP_NGAP_PDU *pdu)
m_logger->err("NGAP APER encoding failed");
else
{
auto *msg = new NwGnbSctp(NwGnbSctp::SEND_MESSAGE);
auto *msg = new NmGnbSctp(NmGnbSctp::SEND_MESSAGE);
msg->clientId = amf->ctxId;
msg->stream = ue->uplinkStream;
msg->buffer = UniqueBuffer{buffer, static_cast<size_t>(encoded)};
......
......@@ -32,7 +32,7 @@ extern "C"
namespace nr::gnb
{
struct NwGnbRlsToRrc : NtsMessage
struct NmGnbRlsToRrc : NtsMessage
{
enum PR
{
......@@ -48,12 +48,12 @@ struct NwGnbRlsToRrc : NtsMessage
OctetString data;
rrc::RrcChannel rrcChannel{};
explicit NwGnbRlsToRrc(PR present) : NtsMessage(NtsMessageType::GNB_RLS_TO_RRC), present(present)
explicit NmGnbRlsToRrc(PR present) : NtsMessage(NtsMessageType::GNB_RLS_TO_RRC), present(present)
{
}
};
struct NwGnbRlsToGtp : NtsMessage
struct NmGnbRlsToGtp : NtsMessage
{
enum PR
{
......@@ -65,12 +65,12 @@ struct NwGnbRlsToGtp : NtsMessage
int psi{};
OctetString pdu;
explicit NwGnbRlsToGtp(PR present) : NtsMessage(NtsMessageType::GNB_RLS_TO_GTP), present(present)
explicit NmGnbRlsToGtp(PR present) : NtsMessage(NtsMessageType::GNB_RLS_TO_GTP), present(present)
{
}
};
struct NwGnbGtpToRls : NtsMessage
struct NmGnbGtpToRls : NtsMessage
{
enum PR
{
......@@ -82,12 +82,12 @@ struct NwGnbGtpToRls : NtsMessage
int psi{};
OctetString pdu{};
explicit NwGnbGtpToRls(PR present) : NtsMessage(NtsMessageType::GNB_GTP_TO_RLS), present(present)
explicit NmGnbGtpToRls(PR present) : NtsMessage(NtsMessageType::GNB_GTP_TO_RLS), present(present)
{
}
};
struct NwGnbRlsToRls : NtsMessage
struct NmGnbRlsToRls : NtsMessage
{
enum PR
{
......@@ -136,12 +136,12 @@ struct NwGnbRlsToRls : NtsMessage
// TRANSMISSION_FAILURE
std::vector<rls::PduInfo> pduList;
explicit NwGnbRlsToRls(PR present) : NtsMessage(NtsMessageType::GNB_RLS_TO_RLS), present(present)
explicit NmGnbRlsToRls(PR present) : NtsMessage(NtsMessageType::GNB_RLS_TO_RLS), present(present)
{
}
};
struct NwGnbRrcToRls : NtsMessage
struct NmGnbRrcToRls : NtsMessage
{
enum PR
{
......@@ -153,12 +153,12 @@ struct NwGnbRrcToRls : NtsMessage
rrc::RrcChannel channel{};
OctetString pdu{};
explicit NwGnbRrcToRls(PR present) : NtsMessage(NtsMessageType::GNB_RRC_TO_RLS), present(present)
explicit NmGnbRrcToRls(PR present) : NtsMessage(NtsMessageType::GNB_RRC_TO_RLS), present(present)
{
}
};
struct NwGnbNgapToRrc : NtsMessage
struct NmGnbNgapToRrc : NtsMessage
{
enum PR
{
......@@ -179,12 +179,12 @@ struct NwGnbNgapToRrc : NtsMessage
asn::Unique<ASN_NGAP_FiveG_S_TMSI> uePagingTmsi{};
asn::Unique<ASN_NGAP_TAIListForPaging> taiListForPaging{};
explicit NwGnbNgapToRrc(PR present) : NtsMessage(NtsMessageType::GNB_NGAP_TO_RRC), present(present)
explicit NmGnbNgapToRrc(PR present) : NtsMessage(NtsMessageType::GNB_NGAP_TO_RRC), present(present)
{
}
};
struct NwGnbRrcToNgap : NtsMessage
struct NmGnbRrcToNgap : NtsMessage
{
enum PR
{
......@@ -205,12 +205,12 @@ struct NwGnbRrcToNgap : NtsMessage
// INITIAL_NAS_DELIVERY
long rrcEstablishmentCause{};
explicit NwGnbRrcToNgap(PR present) : NtsMessage(NtsMessageType::GNB_RRC_TO_NGAP), present(present)
explicit NmGnbRrcToNgap(PR present) : NtsMessage(NtsMessageType::GNB_RRC_TO_NGAP), present(present)
{
}
};
struct NwGnbNgapToGtp : NtsMessage
struct NmGnbNgapToGtp : NtsMessage
{
enum PR
{
......@@ -233,12 +233,12 @@ struct NwGnbNgapToGtp : NtsMessage
// SESSION_RELEASE
int psi{};
explicit NwGnbNgapToGtp(PR present) : NtsMessage(NtsMessageType::GNB_NGAP_TO_GTP), present(present)
explicit NmGnbNgapToGtp(PR present) : NtsMessage(NtsMessageType::GNB_NGAP_TO_GTP), present(present)
{
}
};
struct NwGnbSctp : NtsMessage
struct NmGnbSctp : NtsMessage
{
enum PR
{
......@@ -278,12 +278,12 @@ struct NwGnbSctp : NtsMessage
UniqueBuffer buffer{};
uint16_t stream{};
explicit NwGnbSctp(PR present) : NtsMessage(NtsMessageType::GNB_SCTP), present(present)
explicit NmGnbSctp(PR present) : NtsMessage(NtsMessageType::GNB_SCTP), present(present)
{
}
};
struct NwGnbStatusUpdate : NtsMessage
struct NmGnbStatusUpdate : NtsMessage
{
static constexpr const int NGAP_IS_UP = 1;
......@@ -292,17 +292,17 @@ struct NwGnbStatusUpdate : NtsMessage
// NGAP_IS_UP
bool isNgapUp{};
explicit NwGnbStatusUpdate(const int what) : NtsMessage(NtsMessageType::GNB_STATUS_UPDATE), what(what)
explicit NmGnbStatusUpdate(const int what) : NtsMessage(NtsMessageType::GNB_STATUS_UPDATE), what(what)
{
}
};
struct NwGnbCliCommand : NtsMessage
struct NmGnbCliCommand : NtsMessage
{
std::unique_ptr<app::GnbCliCommand> cmd;
InetAddress address;
NwGnbCliCommand(std::unique_ptr<app::GnbCliCommand> cmd, InetAddress address)
NmGnbCliCommand(std::unique_ptr<app::GnbCliCommand> cmd, InetAddress address)
: NtsMessage(NtsMessageType::GNB_CLI_COMMAND), cmd(std::move(cmd)), address(address)
{
}
......
......@@ -50,22 +50,22 @@ void RlsControlTask::onLoop()
switch (msg->msgType)
{
case NtsMessageType::GNB_RLS_TO_RLS: {
auto *w = dynamic_cast<NwGnbRlsToRls *>(msg);
auto *w = dynamic_cast<NmGnbRlsToRls *>(msg);
switch (w->present)
{
case NwGnbRlsToRls::SIGNAL_DETECTED:
case NmGnbRlsToRls::SIGNAL_DETECTED:
handleSignalDetected(w->ueId);
break;
case NwGnbRlsToRls::SIGNAL_LOST:
case NmGnbRlsToRls::SIGNAL_LOST:
handleSignalLost(w->ueId);
break;
case NwGnbRlsToRls::RECEIVE_RLS_MESSAGE:
case NmGnbRlsToRls::RECEIVE_RLS_MESSAGE:
handleRlsMessage(w->ueId, *w->msg);
break;
case NwGnbRlsToRls::DOWNLINK_DATA:
case NmGnbRlsToRls::DOWNLINK_DATA:
handleDownlinkDataDelivery(w->ueId, w->psi, std::move(w->data));
break;
case NwGnbRlsToRls::DOWNLINK_RRC:
case NmGnbRlsToRls::DOWNLINK_RRC:
handleDownlinkRrcDelivery(w->ueId, w->pduId, w->rrcChannel, std::move(w->data));
break;
default:
......@@ -102,14 +102,14 @@ void RlsControlTask::onQuit()
void RlsControlTask::handleSignalDetected(int ueId)
{
auto *w = new NwGnbRlsToRls(NwGnbRlsToRls::SIGNAL_DETECTED);
auto *w = new NmGnbRlsToRls(NmGnbRlsToRls::SIGNAL_DETECTED);
w->ueId = ueId;
m_mainTask->push(w);
}
void RlsControlTask::handleSignalLost(int ueId)
{
auto *w = new NwGnbRlsToRls(NwGnbRlsToRls::SIGNAL_LOST);
auto *w = new NmGnbRlsToRls(NmGnbRlsToRls::SIGNAL_LOST);
w->ueId = ueId;
m_mainTask->push(w);
}
......@@ -130,7 +130,7 @@ void RlsControlTask::handleRlsMessage(int ueId, rls::RlsMessage &msg)
if (m.pduType == rls::EPduType::DATA)
{
auto *w = new NwGnbRlsToRls(NwGnbRlsToRls::UPLINK_DATA);
auto *w = new NmGnbRlsToRls(NmGnbRlsToRls::UPLINK_DATA);
w->ueId = ueId;
w->psi = static_cast<int>(m.payload);
w->data = std::move(m.pdu);
......@@ -138,7 +138,7 @@ void RlsControlTask::handleRlsMessage(int ueId, rls::RlsMessage &msg)
}
else if (m.pduType == rls::EPduType::RRC)
{
auto *w = new NwGnbRlsToRls(NwGnbRlsToRls::UPLINK_RRC);
auto *w = new NmGnbRlsToRls(NmGnbRlsToRls::UPLINK_RRC);
w->ueId = ueId;
w->rrcChannel = static_cast<rrc::RrcChannel>(m.payload);
w->data = std::move(m.pdu);
......@@ -169,7 +169,7 @@ void RlsControlTask::handleDownlinkRrcDelivery(int ueId, uint32_t pduId, rrc::Rr
{
m_pduMap.clear();
auto *w = new NwGnbRlsToRls(NwGnbRlsToRls::RADIO_LINK_FAILURE);
auto *w = new NmGnbRlsToRls(NmGnbRlsToRls::RADIO_LINK_FAILURE);
w->rlfCause = rls::ERlfCause::PDU_ID_EXISTS;
m_mainTask->push(w);
return;
......@@ -179,7 +179,7 @@ void RlsControlTask::handleDownlinkRrcDelivery(int ueId, uint32_t pduId, rrc::Rr
{
m_pduMap.clear();
auto *w = new NwGnbRlsToRls(NwGnbRlsToRls::RADIO_LINK_FAILURE);
auto *w = new NmGnbRlsToRls(NmGnbRlsToRls::RADIO_LINK_FAILURE);
w->rlfCause = rls::ERlfCause::PDU_ID_FULL;
m_mainTask->push(w);
return;
......@@ -234,7 +234,7 @@ void RlsControlTask::onAckControlTimerExpired()
if (!transmissionFailures.empty())
{
auto *w = new NwGnbRlsToRls(NwGnbRlsToRls::TRANSMISSION_FAILURE);
auto *w = new NmGnbRlsToRls(NmGnbRlsToRls::TRANSMISSION_FAILURE);
w->pduList = std::move(transmissionFailures);
m_mainTask->push(w);
}
......
......@@ -42,40 +42,40 @@ void GnbRlsTask::onLoop()
switch (msg->msgType)
{
case NtsMessageType::GNB_RLS_TO_RLS: {
auto *w = dynamic_cast<NwGnbRlsToRls *>(msg);
auto *w = dynamic_cast<NmGnbRlsToRls *>(msg);
switch (w->present)
{
case NwGnbRlsToRls::SIGNAL_DETECTED: {
auto *m = new NwGnbRlsToRrc(NwGnbRlsToRrc::SIGNAL_DETECTED);
case NmGnbRlsToRls::SIGNAL_DETECTED: {
auto *m = new NmGnbRlsToRrc(NmGnbRlsToRrc::SIGNAL_DETECTED);
m->ueId = w->ueId;
m_base->rrcTask->push(m);
break;
}
case NwGnbRlsToRls::SIGNAL_LOST: {
case NmGnbRlsToRls::SIGNAL_LOST: {
m_logger->debug("UE[%d] signal lost", w->ueId);
break;
}
case NwGnbRlsToRls::UPLINK_DATA: {
auto *m = new NwGnbRlsToGtp(NwGnbRlsToGtp::DATA_PDU_DELIVERY);
case NmGnbRlsToRls::UPLINK_DATA: {
auto *m = new NmGnbRlsToGtp(NmGnbRlsToGtp::DATA_PDU_DELIVERY);
m->ueId = w->ueId;
m->psi = w->psi;
m->pdu = std::move(w->data);
m_base->gtpTask->push(m);
break;
}
case NwGnbRlsToRls::UPLINK_RRC: {
auto *m = new NwGnbRlsToRrc(NwGnbRlsToRrc::UPLINK_RRC);
case NmGnbRlsToRls::UPLINK_RRC: {
auto *m = new NmGnbRlsToRrc(NmGnbRlsToRrc::UPLINK_RRC);
m->ueId = w->ueId;
m->rrcChannel = w->rrcChannel;
m->data = std::move(w->data);
m_base->rrcTask->push(m);
break;
}
case NwGnbRlsToRls::RADIO_LINK_FAILURE: {
case NmGnbRlsToRls::RADIO_LINK_FAILURE: {
m_logger->debug("radio link failure [%d]", (int)w->rlfCause);
break;
}
case NwGnbRlsToRls::TRANSMISSION_FAILURE: {
case NmGnbRlsToRls::TRANSMISSION_FAILURE: {
m_logger->debug("transmission failure [%s]", "");
break;
}
......@@ -87,11 +87,11 @@ void GnbRlsTask::onLoop()
break;
}
case NtsMessageType::GNB_RRC_TO_RLS: {
auto *w = dynamic_cast<NwGnbRrcToRls *>(msg);
auto *w = dynamic_cast<NmGnbRrcToRls *>(msg);
switch (w->present)
{
case NwGnbRrcToRls::RRC_PDU_DELIVERY: {
auto *m = new NwGnbRlsToRls(NwGnbRlsToRls::DOWNLINK_RRC);
case NmGnbRrcToRls::RRC_PDU_DELIVERY: {
auto *m = new NmGnbRlsToRls(NmGnbRlsToRls::DOWNLINK_RRC);
m->ueId = w->ueId;
m->rrcChannel = w->channel;
m->pduId = 0;
......@@ -103,11 +103,11 @@ void GnbRlsTask::onLoop()
break;
}
case NtsMessageType::GNB_GTP_TO_RLS: {
auto *w = dynamic_cast<NwGnbGtpToRls *>(msg);
auto *w = dynamic_cast<NmGnbGtpToRls *>(msg);
switch (w->present)
{
case NwGnbGtpToRls::DATA_PDU_DELIVERY: {
auto *m = new NwGnbRlsToRls(NwGnbRlsToRls::DOWNLINK_DATA);
case NmGnbGtpToRls::DATA_PDU_DELIVERY: {
auto *m = new NmGnbRlsToRls(NmGnbRlsToRls::DOWNLINK_DATA);
m->ueId = w->ueId;
m->psi = w->psi;
m->data = std::move(w->pdu);
......
......@@ -115,7 +115,7 @@ void RlsUdpTask::receiveRlsPdu(const InetAddress &addr, std::unique_ptr<rls::Rls
m_ueMap[ueId].address = addr;
m_ueMap[ueId].lastSeen = utils::CurrentTimeMillis();
auto *w = new NwGnbRlsToRls(NwGnbRlsToRls::SIGNAL_DETECTED);
auto *w = new NmGnbRlsToRls(NmGnbRlsToRls::SIGNAL_DETECTED);
w->ueId = ueId;
m_ctlTask->push(w);
}
......@@ -133,7 +133,7 @@ void RlsUdpTask::receiveRlsPdu(const InetAddress &addr, std::unique_ptr<rls::Rls
return;
}
auto *w = new NwGnbRlsToRls(NwGnbRlsToRls::RECEIVE_RLS_MESSAGE);
auto *w = new NmGnbRlsToRls(NmGnbRlsToRls::RECEIVE_RLS_MESSAGE);
w->ueId = m_stiToUe[msg->sti];
w->msg = std::move(msg);
m_ctlTask->push(w);
......@@ -169,7 +169,7 @@ void RlsUdpTask::heartbeatCycle(int64_t time)
for (int ueId : lostUeId)
{
auto *w = new NwGnbRlsToRls(NwGnbRlsToRls::SIGNAL_LOST);
auto *w = new NmGnbRlsToRls(NmGnbRlsToRls::SIGNAL_LOST);
w->ueId = ueId;
m_ctlTask->push(w);
}
......
......@@ -74,7 +74,7 @@ void GnbRrcTask::sendRrcMessage(ASN_RRC_BCCH_BCH_Message *msg)
return;
}
auto *w = new NwGnbRrcToRls(NwGnbRrcToRls::RRC_PDU_DELIVERY);
auto *w = new NmGnbRrcToRls(NmGnbRrcToRls::RRC_PDU_DELIVERY);
w->ueId = 0;
w->channel = rrc::RrcChannel::BCCH_BCH;
w->pdu = std::move(pdu);
......@@ -90,7 +90,7 @@ void GnbRrcTask::sendRrcMessage(ASN_RRC_BCCH_DL_SCH_Message *msg)
return;
}
auto *w = new NwGnbRrcToRls(NwGnbRrcToRls::RRC_PDU_DELIVERY);
auto *w = new NmGnbRrcToRls(NmGnbRrcToRls::RRC_PDU_DELIVERY);
w->ueId = 0;
w->channel = rrc::RrcChannel::BCCH_DL_SCH;
w->pdu = std::move(pdu);
......@@ -106,7 +106,7 @@ void GnbRrcTask::sendRrcMessage(int ueId, ASN_RRC_DL_CCCH_Message *msg)
return;
}
auto *w = new NwGnbRrcToRls(NwGnbRrcToRls::RRC_PDU_DELIVERY);
auto *w = new NmGnbRrcToRls(NmGnbRrcToRls::RRC_PDU_DELIVERY);
w->ueId = ueId;
w->channel = rrc::RrcChannel::DL_CCCH;
w->pdu = std::move(pdu);
......@@ -122,7 +122,7 @@ void GnbRrcTask::sendRrcMessage(int ueId, ASN_RRC_DL_DCCH_Message *msg)
return;
}
auto *w = new NwGnbRrcToRls(NwGnbRrcToRls::RRC_PDU_DELIVERY);
auto *w = new NmGnbRrcToRls(NmGnbRrcToRls::RRC_PDU_DELIVERY);
w->ueId = ueId;
w->channel = rrc::RrcChannel::DL_DCCH;
w->pdu = std::move(pdu);
......@@ -138,7 +138,7 @@ void GnbRrcTask::sendRrcMessage(ASN_RRC_PCCH_Message *msg)
return;
}
auto *w = new NwGnbRrcToRls(NwGnbRrcToRls::RRC_PDU_DELIVERY);
auto *w = new NmGnbRrcToRls(NmGnbRrcToRls::RRC_PDU_DELIVERY);
w->ueId = 0;
w->channel = rrc::RrcChannel::PCCH;
w->pdu = std::move(pdu);
......
......@@ -100,7 +100,7 @@ void GnbRrcTask::receiveRrcSetupComplete(int ueId, const ASN_RRC_RRCSetupComplet
auto setupComplete = msg.criticalExtensions.choice.rrcSetupComplete;
auto *w = new NwGnbRrcToNgap(NwGnbRrcToNgap::INITIAL_NAS_DELIVERY);
auto *w = new NmGnbRrcToNgap(NmGnbRrcToNgap::INITIAL_NAS_DELIVERY);
w->ueId = ueId;
w->pdu = asn::GetOctetString(setupComplete->dedicatedNAS_Message);
w->rrcEstablishmentCause = ue->establishmentCause;
......
......@@ -59,7 +59,7 @@ void GnbRrcTask::handleDownlinkNasDelivery(int ueId, const OctetString &nasPdu)
void GnbRrcTask::deliverUplinkNas(int ueId, OctetString &&nasPdu)
{
auto *w = new NwGnbRrcToNgap(NwGnbRrcToNgap::UPLINK_NAS_DELIVERY);
auto *w = new NmGnbRrcToNgap(NmGnbRrcToNgap::UPLINK_NAS_DELIVERY);
w->ueId = ueId;
w->pdu = std::move(nasPdu);
m_base->ngapTask->push(w);
......@@ -95,7 +95,7 @@ void GnbRrcTask::releaseConnection(int ueId)
void GnbRrcTask::handleRadioLinkFailure(int ueId)
{
// Notify NGAP task
auto *w = new NwGnbRrcToNgap(NwGnbRrcToNgap::RADIO_LINK_FAILURE);
auto *w = new NmGnbRrcToNgap(NmGnbRrcToNgap::RADIO_LINK_FAILURE);
w->ueId = ueId;
m_base->ngapTask->push(w);
......
......@@ -14,16 +14,16 @@
namespace nr::gnb
{
void GnbRrcTask::handleRlsSapMessage(NwGnbRlsToRrc &msg)
void GnbRrcTask::handleRlsSapMessage(NmGnbRlsToRrc &msg)
{
switch (msg.present)
{
case NwGnbRlsToRrc::SIGNAL_DETECTED: {
case NmGnbRlsToRrc::SIGNAL_DETECTED: {
m_logger->debug("UE[%d] new signal detected", msg.ueId);
triggerSysInfoBroadcast();
break;
}
case NwGnbRlsToRrc::UPLINK_RRC: {
case NmGnbRlsToRrc::UPLINK_RRC: {
handleUplinkRrc(msg.ueId, msg.rrcChannel, msg.data);
break;
}
......
......@@ -46,27 +46,27 @@ void GnbRrcTask::onLoop()
switch (msg->msgType)
{
case NtsMessageType::GNB_RLS_TO_RRC: {
handleRlsSapMessage(*dynamic_cast<NwGnbRlsToRrc *>(msg));
handleRlsSapMessage(*dynamic_cast<NmGnbRlsToRrc *>(msg));
break;
}
case NtsMessageType::GNB_NGAP_TO_RRC: {
auto *w = dynamic_cast<NwGnbNgapToRrc *>(msg);
auto *w = dynamic_cast<NmGnbNgapToRrc *>(msg);
switch (w->present)
{
case NwGnbNgapToRrc::RADIO_POWER_ON: {
case NmGnbNgapToRrc::RADIO_POWER_ON: {
m_isBarred = false;
triggerSysInfoBroadcast();
break;
}
case NwGnbNgapToRrc::NAS_DELIVERY: {
case NmGnbNgapToRrc::NAS_DELIVERY: {
handleDownlinkNasDelivery(w->ueId, w->pdu);
break;
}
case NwGnbNgapToRrc::AN_RELEASE: {
case NmGnbNgapToRrc::AN_RELEASE: {
releaseConnection(w->ueId);
break;
}
case NwGnbNgapToRrc::PAGING:
case NmGnbNgapToRrc::PAGING:
handlePaging(w->uePagingTmsi, w->taiListForPaging);
break;
}
......
......@@ -98,7 +98,7 @@ class GnbRrcTask : public NtsTask
void triggerSysInfoBroadcast();
/* Service Access Point */
void handleRlsSapMessage(NwGnbRlsToRrc &msg);
void handleRlsSapMessage(NmGnbRlsToRrc &msg);
/* UE Management */
RrcUeContext *createUe(int id);
......
......@@ -55,7 +55,7 @@ class SctpHandler : public sctp::ISctpHandler
private:
void onAssociationSetup(int associationId, int inStreams, int outStreams) override
{
auto *w = new NwGnbSctp(NwGnbSctp::ASSOCIATION_SETUP);
auto *w = new NmGnbSctp(NmGnbSctp::ASSOCIATION_SETUP);
w->clientId = clientId;
w->associationId = associationId;
w->inStreams = inStreams;
......@@ -65,7 +65,7 @@ class SctpHandler : public sctp::ISctpHandler
void onAssociationShutdown() override
{
auto *w = new NwGnbSctp(NwGnbSctp::ASSOCIATION_SHUTDOWN);
auto *w = new NmGnbSctp(NmGnbSctp::ASSOCIATION_SHUTDOWN);
w->clientId = clientId;
sctpTask->push(w);
}
......@@ -75,7 +75,7 @@ class SctpHandler : public sctp::ISctpHandler
auto *data = new uint8_t[length];
std::memcpy(data, buffer, length);
auto *w = new NwGnbSctp(NwGnbSctp::RECEIVE_MESSAGE);
auto *w = new NmGnbSctp(NmGnbSctp::RECEIVE_MESSAGE);
w->clientId = clientId;
w->buffer = UniqueBuffer{data, length};
w->stream = stream;
......@@ -84,7 +84,7 @@ class SctpHandler : public sctp::ISctpHandler
void onUnhandledNotification() override
{
auto *w = new NwGnbSctp(NwGnbSctp::UNHANDLED_NOTIFICATION);
auto *w = new NmGnbSctp(NmGnbSctp::UNHANDLED_NOTIFICATION);
w->clientId = clientId;
sctpTask->push(w);
}
......@@ -119,35 +119,35 @@ void SctpTask::onLoop()
switch (msg->msgType)
{
case NtsMessageType::GNB_SCTP: {
auto *w = dynamic_cast<NwGnbSctp *>(msg);
auto *w = dynamic_cast<NmGnbSctp *>(msg);
switch (w->present)
{
case NwGnbSctp::CONNECTION_REQUEST: {
case NmGnbSctp::CONNECTION_REQUEST: {
receiveSctpConnectionSetupRequest(w->clientId, w->localAddress, w->localPort, w->remoteAddress,
w->remotePort, w->ppid, w->associatedTask);
break;
}
case NwGnbSctp::CONNECTION_CLOSE: {
case NmGnbSctp::CONNECTION_CLOSE: {
receiveConnectionClose(w->clientId);
break;
}
case NwGnbSctp::ASSOCIATION_SETUP: {
case NmGnbSctp::ASSOCIATION_SETUP: {
receiveAssociationSetup(w->clientId, w->associationId, w->inStreams, w->outStreams);
break;
}
case NwGnbSctp::ASSOCIATION_SHUTDOWN: {
case NmGnbSctp::ASSOCIATION_SHUTDOWN: {
receiveAssociationShutdown(w->clientId);
break;
}
case NwGnbSctp::RECEIVE_MESSAGE: {
case NmGnbSctp::RECEIVE_MESSAGE: {
receiveClientReceive(w->clientId, w->stream, std::move(w->buffer));
break;
}
case NwGnbSctp::SEND_MESSAGE: {
case NmGnbSctp::SEND_MESSAGE: {
receiveSendMessage(w->clientId, w->stream, std::move(w->buffer));
break;
}
case NwGnbSctp::UNHANDLED_NOTIFICATION: {
case NmGnbSctp::UNHANDLED_NOTIFICATION: {
receiveUnhandledNotification(w->clientId);
break;
}
......@@ -242,7 +242,7 @@ void SctpTask::receiveAssociationSetup(int clientId, int associationId, int inSt
}
// Notify the relevant task
auto *msg = new NwGnbSctp(NwGnbSctp::ASSOCIATION_SETUP);
auto *msg = new NmGnbSctp(NmGnbSctp::ASSOCIATION_SETUP);
msg->clientId = clientId;
msg->associationId = associationId;
msg->inStreams = inStreams;
......@@ -262,7 +262,7 @@ void SctpTask::receiveAssociationShutdown(int clientId)
}
// Notify the relevant task
auto *msg = new NwGnbSctp(NwGnbSctp::ASSOCIATION_SHUTDOWN);
auto *msg = new NmGnbSctp(NmGnbSctp::ASSOCIATION_SHUTDOWN);
msg->clientId = clientId;
entry->associatedTask->push(msg);
}
......@@ -277,7 +277,7 @@ void SctpTask::receiveClientReceive(int clientId, uint16_t stream, UniqueBuffer
}
// Notify the relevant task
auto *msg = new NwGnbSctp(NwGnbSctp::RECEIVE_MESSAGE);
auto *msg = new NmGnbSctp(NmGnbSctp::RECEIVE_MESSAGE);
msg->clientId = clientId;
msg->stream = stream;
msg->buffer = std::move(buffer);
......
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