nas: allow starting a attach request procedure even if a PLMN is already selected

previously the NAS would cancel a attach request procedure if the PLMN
is already selected. PLMN selection, however, in not necessarily happening
before requesting RRC to establish a connection.
This commit is contained in:
Andre Puschmann 2020-03-29 12:29:09 +02:00
parent d8680cc9a8
commit f477c1d2e5
1 changed files with 19 additions and 3 deletions

View File

@ -405,10 +405,26 @@ void nas::start_attach_proc(srslte::proc_state_t* result, srslte::establishment_
}
});
} else {
nas_log->error("PLMN selected in state %s\n", emm_state_text[state]);
if (result != nullptr) {
result->set_error();
nas_log->info("PLMN selected in state %s\n", emm_state_text[state]);
if (not rrc_connector.launch(cause_, nullptr)) {
nas_log->error("Cannot initiate concurrent rrc connection procedures\n");
if (result != nullptr) {
result->set_error();
}
return;
}
rrc_connector.then([this, result](const proc_state_t& res) {
if (res.is_success()) {
nas_log->info("NAS attached successfully\n");
} else {
nas_log->error("Could not attach from attach_request\n");
}
if (result != nullptr) {
*result = res;
}
});
callbacks.add_proc(rrc_connector);
}
break;
case EMM_STATE_REGISTERED: