nas: remove EPS bearer before adding updating params
This commit is contained in:
parent
46a239fc61
commit
19bc65012b
|
@ -1150,9 +1150,20 @@ void nas::parse_activate_dedicated_eps_bearer_context_request(uint32_t lcid, uni
|
||||||
// check the a linked default bearer exists
|
// check the a linked default bearer exists
|
||||||
if (eps_bearer.find(request.linked_eps_bearer_id) == eps_bearer.end()) {
|
if (eps_bearer.find(request.linked_eps_bearer_id) == eps_bearer.end()) {
|
||||||
nas_log->error("No linked default EPS bearer found (%d).\n", request.linked_eps_bearer_id);
|
nas_log->error("No linked default EPS bearer found (%d).\n", request.linked_eps_bearer_id);
|
||||||
|
// FIXME: send reject according to 24.301 Sec 6.4.2.5 paragraph c
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// check if the dedicated EPS bearer already exists
|
||||||
|
if (eps_bearer.find(request.eps_bearer_id) != eps_bearer.end()) {
|
||||||
|
// according to 24.301 Sec 6.4.2.5 paragraph b) the existing bearer shall be deactived before proceeding
|
||||||
|
nas_log->error("EPS bearer already exists (%d). Removing it.\n", request.eps_bearer_id);
|
||||||
|
|
||||||
|
// remove bearer
|
||||||
|
eps_bearer_map_t::iterator it = eps_bearer.find(request.eps_bearer_id);
|
||||||
|
eps_bearer.erase(it);
|
||||||
|
}
|
||||||
|
|
||||||
// create new bearer
|
// create new bearer
|
||||||
eps_bearer_t bearer = {};
|
eps_bearer_t bearer = {};
|
||||||
bearer.type = DEDICATED_EPS_BEARER;
|
bearer.type = DEDICATED_EPS_BEARER;
|
||||||
|
|
Loading…
Reference in New Issue