Commit f64410e8 authored by aligungr's avatar aligungr

L3 RRC/NAS developments

parent b971397b
......@@ -100,4 +100,11 @@ void UeRrcTask::receiveRrcReject(int cellId, const ASN_RRC_RRCReject &msg)
m_logger->err("RRC Reject received");
}
void UeRrcTask::receiveRrcRelease(const ASN_RRC_RRCRelease &msg)
{
m_logger->debug("RRC Release received");
m_state = ERrcState::RRC_IDLE;
m_base->nasTask->push(new NwUeRrcToNas(NwUeRrcToNas::RRC_CONNECTION_RELEASE));
}
} // namespace nr::ue
......@@ -32,23 +32,6 @@
namespace nr::ue
{
void UeRrcTask::receiveDownlinkInformationTransfer(const ASN_RRC_DLInformationTransfer &msg)
{
OctetString nasPdu =
asn::GetOctetString(*msg.criticalExtensions.choice.dlInformationTransfer->dedicatedNAS_Message);
auto *nw = new NwUeRrcToNas(NwUeRrcToNas::NAS_DELIVERY);
nw->nasPdu = std::move(nasPdu);
m_base->nasTask->push(nw);
}
void UeRrcTask::receiveRrcRelease(const ASN_RRC_RRCRelease &msg)
{
m_logger->debug("RRC Release received");
m_state = ERrcState::RRC_IDLE;
m_base->nasTask->push(new NwUeRrcToNas(NwUeRrcToNas::RRC_CONNECTION_RELEASE));
}
void UeRrcTask::receivePaging(const ASN_RRC_Paging &msg)
{
std::vector<GutiMobileIdentity> tmsiIds{};
......
......@@ -12,6 +12,8 @@
#include <ue/nas/task.hpp>
#include <ue/nts.hpp>
#include <asn/rrc/ASN_RRC_DLInformationTransfer-IEs.h>
#include <asn/rrc/ASN_RRC_DLInformationTransfer.h>
#include <asn/rrc/ASN_RRC_ULInformationTransfer-IEs.h>
#include <asn/rrc/ASN_RRC_ULInformationTransfer.h>
......@@ -57,4 +59,14 @@ void UeRrcTask::deliverUplinkNas(uint32_t pduId, OctetString &&nasPdu)
sendRrcMessage(pdu);
}
void UeRrcTask::receiveDownlinkInformationTransfer(const ASN_RRC_DLInformationTransfer &msg)
{
OctetString nasPdu =
asn::GetOctetString(*msg.criticalExtensions.choice.dlInformationTransfer->dedicatedNAS_Message);
auto *nw = new NwUeRrcToNas(NwUeRrcToNas::NAS_DELIVERY);
nw->nasPdu = std::move(nasPdu);
m_base->nasTask->push(nw);
}
} // namespace nr::ue
\ No newline at end of file
......@@ -74,13 +74,11 @@ class UeRrcTask : public NtsTask
private:
/* Handlers */
void handleDownlinkRrc(int cellId, rrc::RrcChannel channel, const OctetString &pdu);
void receiveRrcRelease(const ASN_RRC_RRCRelease &msg);
void receiveDownlinkInformationTransfer(const ASN_RRC_DLInformationTransfer &msg);
void receivePaging(const ASN_RRC_Paging &msg);
void handleRadioLinkFailure();
/* RRC Message Transmission and Receive */
void handleDownlinkRrc(int cellId, rrc::RrcChannel channel, const OctetString &pdu);
void sendRrcMessage(int cellId, ASN_RRC_UL_CCCH_Message *msg);
void sendRrcMessage(int cellId, ASN_RRC_UL_CCCH1_Message *msg);
void sendRrcMessage(ASN_RRC_UL_DCCH_Message *msg);
......@@ -113,17 +111,20 @@ class UeRrcTask : public NtsTask
bool isActiveCell(int cellId);
void updateAvailablePlmns();
/* System Information */
/* System Information and Broadcast */
void receiveMib(int cellId, const ASN_RRC_MIB &msg);
void receiveSib1(int cellId, const ASN_RRC_SIB1 &msg);
/* NAS Transport */
void deliverUplinkNas(uint32_t pduId, OctetString &&nasPdu);
void receiveDownlinkInformationTransfer(const ASN_RRC_DLInformationTransfer &msg);
/* Connection Control */
void startConnectionSetup(OctetString &&nasPdu);
void receiveRrcSetup(int cellId, const ASN_RRC_RRCSetup &msg);
void receiveRrcReject(int cellId, const ASN_RRC_RRCReject &msg);
void receiveRrcRelease(const ASN_RRC_RRCRelease &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