Commit c486df5a authored by aligungr's avatar aligungr

L3 RRC/NAS developments

parent a720e5e1
......@@ -47,6 +47,9 @@ static void AssignCause(std::optional<EDeregCause> &oldCause, EDeregCause newCau
void NasMm::initialRegistrationRequired(EInitialRegCause cause)
{
if (m_mmState == EMmState::MM_NULL)
return;
if (m_procCtl.initialRegistration == cause)
return;
......@@ -58,6 +61,9 @@ void NasMm::initialRegistrationRequired(EInitialRegCause cause)
void NasMm::mobilityUpdatingRequired(ERegUpdateCause cause)
{
if (m_mmState == EMmState::MM_NULL)
return;
if (m_procCtl.mobilityRegistration == cause)
return;
......@@ -67,19 +73,11 @@ void NasMm::mobilityUpdatingRequired(ERegUpdateCause cause)
triggerMmCycle();
}
void NasMm::serviceRequestRequiredForSignalling()
{
serviceRequestRequired(EServiceReqCause::IDLE_UPLINK_SIGNAL_PENDING);
}
void NasMm::serviceRequestRequiredForData()
{
serviceRequestRequired(m_cmState == ECmState::CM_CONNECTED ? EServiceReqCause::CONNECTED_UPLINK_DATA_PENDING
: EServiceReqCause::IDLE_UPLINK_DATA_PENDING);
}
void NasMm::serviceRequestRequired(EServiceReqCause cause)
{
if (m_mmState == EMmState::MM_NULL)
return;
if (m_procCtl.serviceRequest == cause)
return;
......@@ -91,6 +89,9 @@ void NasMm::serviceRequestRequired(EServiceReqCause cause)
void NasMm::deregistrationRequired(EDeregCause cause)
{
if (m_mmState == EMmState::MM_NULL)
return;
if (m_procCtl.deregistration == cause)
return;
......@@ -100,6 +101,17 @@ void NasMm::deregistrationRequired(EDeregCause cause)
triggerMmCycle();
}
void NasMm::serviceRequestRequiredForSignalling()
{
serviceRequestRequired(EServiceReqCause::IDLE_UPLINK_SIGNAL_PENDING);
}
void NasMm::serviceRequestRequiredForData()
{
serviceRequestRequired(m_cmState == ECmState::CM_CONNECTED ? EServiceReqCause::CONNECTED_UPLINK_DATA_PENDING
: EServiceReqCause::IDLE_UPLINK_DATA_PENDING);
}
void NasMm::invokeProcedures()
{
auto activeCell = m_base->shCtx.currentCell.get();
......
......@@ -15,6 +15,9 @@ namespace nr::ue
void NasMm::handleRrcEvent(const NmUeRrcToNas &msg)
{
if (m_mmState == EMmState::MM_NULL)
return;
switch (msg.present)
{
case NmUeRrcToNas::RRC_CONNECTION_SETUP: {
......@@ -57,6 +60,9 @@ void NasMm::handleRrcEvent(const NmUeRrcToNas &msg)
void NasMm::handleNasEvent(const NmUeNasToNas &msg)
{
if (m_mmState == EMmState::MM_NULL)
return;
switch (msg.present)
{
case NmUeNasToNas::PERFORM_MM_CYCLE:
......
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