Commit ee60a817 authored by aligungr's avatar aligungr

UE SRA dev.

parent 330ee886
...@@ -45,6 +45,25 @@ struct NwGnbMrToRrc : NtsMessage ...@@ -45,6 +45,25 @@ struct NwGnbMrToRrc : NtsMessage
} }
}; };
struct NwGnbSraToRrc : NtsMessage
{
enum PR
{
RRC_PDU_DELIVERY,
} present;
// RRC_PDU_DELIVERY
int ueId{};
// RRC_PDU_DELIVERY
rrc::RrcChannel channel{};
OctetString pdu{};
explicit NwGnbSraToRrc(PR present) : NtsMessage(NtsMessageType::GNB_SRA_TO_RRC), present(present)
{
}
};
struct NwGnbRrcToMr : NtsMessage struct NwGnbRrcToMr : NtsMessage
{ {
enum PR enum PR
......
...@@ -8,6 +8,7 @@ ...@@ -8,6 +8,7 @@
#include "task.hpp" #include "task.hpp"
#include <cmath> #include <cmath>
#include <gnb/rrc/task.hpp>
static int MIN_ALLOWED_DBM = -120; static int MIN_ALLOWED_DBM = -120;
...@@ -46,9 +47,16 @@ void GnbSraTask::handleCellInfoRequest(int ueId,const sra::SraCellInfoRequest &m ...@@ -46,9 +47,16 @@ void GnbSraTask::handleCellInfoRequest(int ueId,const sra::SraCellInfoRequest &m
sendSraMessage(ueId, resp); sendSraMessage(ueId, resp);
} }
void GnbSraTask::handleUplinkPduDelivery(int ueId, const sra::SraPduDelivery &msg) void GnbSraTask::handleUplinkPduDelivery(int ueId, sra::SraPduDelivery &msg)
{ {
if (msg.pduType == sra::EPduType::RRC)
{
auto *nw = new NwGnbSraToRrc(NwGnbSraToRrc::RRC_PDU_DELIVERY);
nw->ueId = ueId;
nw->channel = static_cast<rrc::RrcChannel>(msg.payload.get4I(0));
nw->pdu = std::move(msg.pdu);
m_base->rrcTask->push(nw);
}
} }
} // namespace nr::gnb } // namespace nr::gnb
...@@ -46,12 +46,12 @@ class GnbSraTask : public NtsTask ...@@ -46,12 +46,12 @@ class GnbSraTask : public NtsTask
void onQuit() override; void onQuit() override;
private: /* Transport */ private: /* Transport */
void receiveSraMessage(const InetAddress &addr, const sra::SraMessage &msg); void receiveSraMessage(const InetAddress &addr, sra::SraMessage &msg);
void sendSraMessage(int ueId, const sra::SraMessage &msg); void sendSraMessage(int ueId, const sra::SraMessage &msg);
private: /* Handler */ private: /* Handler */
void handleCellInfoRequest(int ueId, const sra::SraCellInfoRequest &msg); void handleCellInfoRequest(int ueId, const sra::SraCellInfoRequest &msg);
void handleUplinkPduDelivery(int ueId, const sra::SraPduDelivery &msg); void handleUplinkPduDelivery(int ueId, sra::SraPduDelivery &msg);
private: /* UE Management */ private: /* UE Management */
int updateUeInfo(const InetAddress &addr, uint64_t sti); int updateUeInfo(const InetAddress &addr, uint64_t sti);
......
...@@ -11,7 +11,7 @@ ...@@ -11,7 +11,7 @@
namespace nr::gnb namespace nr::gnb
{ {
void GnbSraTask::receiveSraMessage(const InetAddress &addr, const sra::SraMessage &msg) void GnbSraTask::receiveSraMessage(const InetAddress &addr, sra::SraMessage &msg)
{ {
int ueId = updateUeInfo(addr, msg.sti); int ueId = updateUeInfo(addr, msg.sti);
...@@ -22,7 +22,7 @@ void GnbSraTask::receiveSraMessage(const InetAddress &addr, const sra::SraMessag ...@@ -22,7 +22,7 @@ void GnbSraTask::receiveSraMessage(const InetAddress &addr, const sra::SraMessag
break; break;
} }
case sra::EMessageType::PDU_DELIVERY: { case sra::EMessageType::PDU_DELIVERY: {
handleUplinkPduDelivery(ueId, (const sra::SraPduDelivery &)msg); handleUplinkPduDelivery(ueId, (sra::SraPduDelivery &)msg);
break; break;
} }
default: default:
......
...@@ -36,6 +36,7 @@ enum class NtsMessageType ...@@ -36,6 +36,7 @@ enum class NtsMessageType
GNB_MR_TO_MR, GNB_MR_TO_MR,
GNB_MR_TO_RRC, GNB_MR_TO_RRC,
GNB_SRA_TO_RRC,
GNB_RRC_TO_MR, GNB_RRC_TO_MR,
GNB_NGAP_TO_RRC, GNB_NGAP_TO_RRC,
GNB_RRC_TO_NGAP, GNB_RRC_TO_NGAP,
......
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