Commit 08e7344a authored by aligungr's avatar aligungr

L3 RRC/NAS developments

parent 9be407e9
...@@ -50,6 +50,11 @@ void NasMm::receiveConfigurationUpdate(const nas::ConfigurationUpdateCommand &ms ...@@ -50,6 +50,11 @@ void NasMm::receiveConfigurationUpdate(const nas::ConfigurationUpdateCommand &ms
{ {
hasNewConfig = true; hasNewConfig = true;
m_usim->m_taiList = *msg.taiList; m_usim->m_taiList = *msg.taiList;
Tai currentTai = m_base->shCtx.getCurrentTai();
if (currentTai.hasValue() &&
nas::utils::TaiListContains(m_usim->m_taiList, nas::VTrackingAreaIdentity{currentTai}))
m_storage->lastVisitedRegisteredTai->set(currentTai);
} }
// "If the UE receives a new service area list in the CONFIGURATION UPDATE COMMAND message, the UE shall consider // "If the UE receives a new service area list in the CONFIGURATION UPDATE COMMAND message, the UE shall consider
......
...@@ -235,6 +235,11 @@ void NasMm::receiveInitialRegistrationAccept(const nas::RegistrationAccept &msg) ...@@ -235,6 +235,11 @@ void NasMm::receiveInitialRegistrationAccept(const nas::RegistrationAccept &msg)
{ {
// Store the TAI list as a registration area // Store the TAI list as a registration area
m_usim->m_taiList = msg.taiList.value_or(nas::IE5gsTrackingAreaIdentityList{}); m_usim->m_taiList = msg.taiList.value_or(nas::IE5gsTrackingAreaIdentityList{});
Tai currentTai = m_base->shCtx.getCurrentTai();
if (currentTai.hasValue() &&
nas::utils::TaiListContains(m_usim->m_taiList, nas::VTrackingAreaIdentity{currentTai}))
m_storage->lastVisitedRegisteredTai->set(currentTai);
// Store the service area list // Store the service area list
m_storage->serviceAreaList->set(msg.serviceAreaList.value_or(nas::IEServiceAreaList{})); m_storage->serviceAreaList->set(msg.serviceAreaList.value_or(nas::IEServiceAreaList{}));
...@@ -342,8 +347,15 @@ void NasMm::receiveMobilityRegistrationAccept(const nas::RegistrationAccept &msg ...@@ -342,8 +347,15 @@ void NasMm::receiveMobilityRegistrationAccept(const nas::RegistrationAccept &msg
// "The UE, upon receiving a REGISTRATION ACCEPT message, shall delete its old TAI list and store the received TAI // "The UE, upon receiving a REGISTRATION ACCEPT message, shall delete its old TAI list and store the received TAI
// list. If there is no TAI list received, the UE shall consider the old TAI list as valid." // list. If there is no TAI list received, the UE shall consider the old TAI list as valid."
if (msg.taiList.has_value()) if (msg.taiList.has_value())
{
m_usim->m_taiList = *msg.taiList; m_usim->m_taiList = *msg.taiList;
Tai currentTai = m_base->shCtx.getCurrentTai();
if (currentTai.hasValue() &&
nas::utils::TaiListContains(m_usim->m_taiList, nas::VTrackingAreaIdentity{currentTai}))
m_storage->lastVisitedRegisteredTai->set(currentTai);
}
// Store the E-PLMN list and .. // Store the E-PLMN list and ..
m_usim->m_equivalentPlmnList = msg.equivalentPLMNs.value_or(nas::IEPlmnList{}); m_usim->m_equivalentPlmnList = msg.equivalentPLMNs.value_or(nas::IEPlmnList{});
// .. if the initial registration procedure is not for emergency services, the UE shall remove from the list any // .. if the initial registration procedure is not for emergency services, the UE shall remove from the list any
......
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