Commit 16c056f8 authored by aligungr's avatar aligungr

L3 RRC/NAS developments

parent 85c8b727
...@@ -18,23 +18,28 @@ bool NasMm::hasEmergency() ...@@ -18,23 +18,28 @@ bool NasMm::hasEmergency()
{ {
// Indicates emergency services are required (even if registered for normal initial registration) // Indicates emergency services are required (even if registered for normal initial registration)
// This happens if it 'has' or 'need' some emergency PDU Session, as well. // This happens if it 'has' or 'need' some emergency PDU Session, as well.
if (m_rmState == ERmState::RM_REGISTERED && m_registeredForEmergency) if (m_rmState == ERmState::RM_REGISTERED && m_registeredForEmergency)
return true; return true;
if (m_mmState == EMmState::MM_REGISTERED_INITIATED && m_lastRegistrationRequest && if (m_mmState == EMmState::MM_REGISTERED_INITIATED && m_lastRegistrationRequest &&
m_lastRegistrationRequest->registrationType.registrationType == nas::ERegistrationType::EMERGENCY_REGISTRATION) m_lastRegistrationRequest->registrationType.registrationType == nas::ERegistrationType::EMERGENCY_REGISTRATION)
return true; return true;
if (m_procCtl.initialRegistration && m_procCtl.initialRegistration == EInitialRegCause::EMERGENCY_SERVICES) if (m_procCtl.initialRegistration && m_procCtl.initialRegistration == EInitialRegCause::EMERGENCY_SERVICES)
return true; return true;
if (m_procCtl.mobilityRegistration && m_procCtl.mobilityRegistration == ERegUpdateCause::EMERGENCY_CASE) if (m_procCtl.mobilityRegistration && m_procCtl.mobilityRegistration == ERegUpdateCause::EMERGENCY_CASE)
return true; return true;
if (m_procCtl.serviceRequest && m_procCtl.serviceRequest == EServiceReqCause::EMERGENCY_FALLBACK) if (m_procCtl.serviceRequest && m_procCtl.serviceRequest == EServiceReqCause::EMERGENCY_FALLBACK)
return true; return true;
// TODO: Other case which is an emergency PDU session need to be established (and wanted to be
// established soon)
if (m_sm->anyEmergencySession()) if (m_sm->anyEmergencySession())
return true; return true;
if (m_usim->m_emgIndication)
return true;
return false; return false;
} }
......
...@@ -35,7 +35,8 @@ class Usim ...@@ -35,7 +35,8 @@ class Usim
std::unique_ptr<SqnManager> m_sqnMng{}; std::unique_ptr<SqnManager> m_sqnMng{};
// Others // Others
bool m_isECallOnly{}; // todo: configurable bool m_isECallOnly = false; // todo: configurable
bool m_emgIndication = false; // todo: configurable
public: public:
void initialize(bool hasSupi, const UeConfig::Initials &initials); void initialize(bool hasSupi, const UeConfig::Initials &initials);
......
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