Commit a81b5ff7 authored by aligungr's avatar aligungr

Performance improvements

parent 5b87bb54
......@@ -95,6 +95,15 @@ void UeRlsTask::onLoop()
}
break;
}
case NtsMessageType::UDP_SERVER_RECEIVE: {
auto &w = dynamic_cast<udp::NwUdpServerReceive &>(*msg);
auto rlsMsg = rls::DecodeRlsMessage(OctetView{w.packet});
if (rlsMsg == nullptr)
m_logger->err("Unable to decode RLS message");
else
m_udpTask->receiveRlsPdu(w.fromAddress, std::move(rlsMsg));
break;
}
default:
m_logger->unhandledNts(*msg);
break;
......
......@@ -29,8 +29,6 @@ RlsUdpTask::RlsUdpTask(TaskBase *base, RlsSharedContext *shCtx)
{
m_logger = base->logBase->makeUniqueLogger(base->config->getLoggerPrefix() + "rls-udp");
m_server = std::make_unique<udp::UdpServerTask>(this);
for (auto &ip : base->config->gnbSearchList)
m_searchSpace.emplace_back(ip, cons::RadioLinkPort);
......@@ -39,6 +37,7 @@ RlsUdpTask::RlsUdpTask(TaskBase *base, RlsSharedContext *shCtx)
void RlsUdpTask::onStart()
{
m_server = std::make_unique<udp::UdpServerTask>(m_base->rlsTask);
m_server->start();
}
......@@ -50,21 +49,6 @@ void RlsUdpTask::onLoop()
m_lastLoop = current;
heartbeatCycle(current, m_simPos);
}
auto msg = take();
if (msg)
{
if (msg->msgType == NtsMessageType::UDP_SERVER_RECEIVE)
{
auto &w = dynamic_cast<udp::NwUdpServerReceive &>(*msg);
auto rlsMsg = rls::DecodeRlsMessage(OctetView{w.packet});
if (rlsMsg == nullptr)
m_logger->err("Unable to decode RLS message");
else
receiveRlsPdu(w.fromAddress, std::move(rlsMsg));
}
}
}
void RlsUdpTask::onQuit()
......
......@@ -57,12 +57,12 @@ class RlsUdpTask : public NtsTask
private:
void sendRlsPdu(const InetAddress &address, const rls::RlsMessage &msg);
void receiveRlsPdu(const InetAddress &address, std::unique_ptr<rls::RlsMessage> &&msg);
void onSignalChangeOrLost(int cellId);
void heartbeatCycle(uint64_t time, const Vector3 &simPos);
public:
void send(int cellId, const rls::RlsMessage &msg);
void receiveRlsPdu(const InetAddress &address, std::unique_ptr<rls::RlsMessage> &&msg);
};
} // namespace nr::ue
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