Commit a81b5ff7 authored by aligungr's avatar aligungr

Performance improvements

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