Commit ee60a817 authored by aligungr's avatar aligungr

UE SRA dev.

parent 330ee886
......@@ -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
{
enum PR
......
......@@ -8,6 +8,7 @@
#include "task.hpp"
#include <cmath>
#include <gnb/rrc/task.hpp>
static int MIN_ALLOWED_DBM = -120;
......@@ -46,9 +47,16 @@ void GnbSraTask::handleCellInfoRequest(int ueId,const sra::SraCellInfoRequest &m
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
......@@ -46,12 +46,12 @@ class GnbSraTask : public NtsTask
void onQuit() override;
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);
private: /* Handler */
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 */
int updateUeInfo(const InetAddress &addr, uint64_t sti);
......
......@@ -11,7 +11,7 @@
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);
......@@ -22,7 +22,7 @@ void GnbSraTask::receiveSraMessage(const InetAddress &addr, const sra::SraMessag
break;
}
case sra::EMessageType::PDU_DELIVERY: {
handleUplinkPduDelivery(ueId, (const sra::SraPduDelivery &)msg);
handleUplinkPduDelivery(ueId, (sra::SraPduDelivery &)msg);
break;
}
default:
......
......@@ -36,6 +36,7 @@ enum class NtsMessageType
GNB_MR_TO_MR,
GNB_MR_TO_RRC,
GNB_SRA_TO_RRC,
GNB_RRC_TO_MR,
GNB_NGAP_TO_RRC,
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