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