Commit a8b4fdd0 authored by aligungr's avatar aligungr

Service request dev.

parent 8bee2c2b
......@@ -18,6 +18,18 @@ void NasMm::sendServiceRequest(EServiceReqCause reqCause)
m_logger->debug("Sending Service Request due to [%s]", ToJson(reqCause).str().c_str());
// 5.6.1.7 Abnormal cases in the UE
// a) Timer T3525
if (m_timers->t3525.isRunning())
{
if (reqCause != EServiceReqCause::IDLE_PAGING &&
reqCause != EServiceReqCause::CONNECTED_3GPP_NOTIFICATION_N3GPP &&
reqCause != EServiceReqCause::IDLE_3GPP_NOTIFICATION_N3GPP && !isHighPriority() && !hasEmergency() &&
reqCause != EServiceReqCause::EMERGENCY_FALLBACK)
{
m_logger->debug("Service Request canceled, T3346 is running");
return;
}
}
// c) Timer T3346 is running.
if (m_timers->t3346.isRunning())
{
......
......@@ -87,6 +87,27 @@ void NasMm::onTimerExpire(nas::NasTimer &timer)
}
break;
}
case 3517: {
if (m_mmState == EMmState::MM_SERVICE_REQUEST_INITIATED)
{
logExpired();
switchMmState(EMmState::MM_REGISTERED, EMmSubState::MM_REGISTERED_NA);
switchRmState(ERmState::RM_REGISTERED);
if (m_cmState == ECmState::CM_IDLE && m_lastServiceReqCause != EServiceReqCause::EMERGENCY_FALLBACK)
{
if (!hasEmergency() && !isHighPriority() && m_lastServiceReqCause != EServiceReqCause::IDLE_PAGING &&
m_lastServiceReqCause != EServiceReqCause::IDLE_3GPP_NOTIFICATION_N3GPP &&
m_lastServiceReqCause != EServiceReqCause::CONNECTED_3GPP_NOTIFICATION_N3GPP)
m_serCounter++;
if (m_serCounter >= 5)
m_timers->t3525.start();
}
}
break;
}
case 3519: {
m_usim->m_storedSuci = {};
break;
......
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