mirror of
https://github.com/open5gs/open5gs.git
synced 2025-10-22 23:31:57 +00:00
Compare commits
2 Commits
e893f34dc5
...
a3c11ec2f6
Author | SHA1 | Date | |
---|---|---|---|
|
a3c11ec2f6 | ||
|
5c532fec56 |
@@ -1605,7 +1605,7 @@ void sgwc_s11_handle_delete_indirect_data_forwarding_tunnel_request(
|
||||
sgwc_ue->mme_s11_teid, sgwc_ue->sgw_s11_teid);
|
||||
ogs_list_for_each(&sess->bearer_list, bearer) {
|
||||
ogs_error(" EBI[%d]", bearer->ebi);
|
||||
ogs_list_for_each(&bearer->tunnel_list, bearer) {
|
||||
ogs_list_for_each(&bearer->tunnel_list, tunnel) {
|
||||
ogs_error("TUNNEL[%d] INF[%d]",
|
||||
tunnel->id, tunnel->interface_type);
|
||||
}
|
||||
|
@@ -493,42 +493,58 @@ void sgwc_sxa_handle_session_modification_response(
|
||||
if (!sess) {
|
||||
ogs_pool_id_t sess_id = OGS_INVALID_POOL_ID;
|
||||
|
||||
ogs_error("No Context");
|
||||
ogs_error("No Session Context");
|
||||
|
||||
sess_id = OGS_POINTER_TO_UINT(pfcp_xact->data);
|
||||
ogs_assert(sess_id >= OGS_MIN_POOL_ID &&
|
||||
sess_id <= OGS_MAX_POOL_ID);
|
||||
|
||||
sess = sgwc_sess_find_by_id(sess_id);
|
||||
ogs_assert(sess);
|
||||
|
||||
cause_value = OGS_GTP2_CAUSE_CONTEXT_NOT_FOUND;
|
||||
if (sess_id >= OGS_MIN_POOL_ID && sess_id <= OGS_MAX_POOL_ID) {
|
||||
sess = sgwc_sess_find_by_id(sess_id);
|
||||
if (!sess) {
|
||||
ogs_error("Session not found [%d]", sess_id);
|
||||
cause_value = OGS_GTP2_CAUSE_CONTEXT_NOT_FOUND;
|
||||
}
|
||||
} else {
|
||||
ogs_error("Invalid session id: %u", sess_id);
|
||||
cause_value = OGS_GTP2_CAUSE_CONTEXT_NOT_FOUND;
|
||||
}
|
||||
}
|
||||
|
||||
sgwc_ue = sgwc_ue_find_by_id(sess->sgwc_ue_id);
|
||||
ogs_assert(sgwc_ue);
|
||||
if (sess && cause_value == OGS_GTP2_CAUSE_REQUEST_ACCEPTED) {
|
||||
sgwc_ue = sgwc_ue_find_by_id(sess->sgwc_ue_id);
|
||||
if (!sgwc_ue) {
|
||||
ogs_error("UE not found [%d]", sess->sgwc_ue_id);
|
||||
cause_value = OGS_GTP2_CAUSE_CONTEXT_NOT_FOUND;
|
||||
}
|
||||
}
|
||||
|
||||
} else {
|
||||
ogs_pool_id_t bearer_id = OGS_POINTER_TO_UINT(pfcp_xact->data);
|
||||
ogs_assert(bearer_id >= OGS_MIN_POOL_ID &&
|
||||
bearer_id <= OGS_MAX_POOL_ID);
|
||||
|
||||
bearer = sgwc_bearer_find_by_id(bearer_id);
|
||||
if (!bearer) {
|
||||
ogs_error("No Bearer Context");
|
||||
cause_value = OGS_GTP2_CAUSE_CONTEXT_NOT_FOUND;
|
||||
} else {
|
||||
if (!sess) {
|
||||
ogs_error("No Context");
|
||||
|
||||
sess = sgwc_sess_find_by_id(bearer->sess_id);
|
||||
ogs_assert(sess);
|
||||
|
||||
if (bearer_id >= OGS_MIN_POOL_ID && bearer_id <= OGS_MAX_POOL_ID) {
|
||||
bearer = sgwc_bearer_find_by_id(bearer_id);
|
||||
if (!bearer) {
|
||||
ogs_error("No Bearer Context [%d]", bearer_id);
|
||||
cause_value = OGS_GTP2_CAUSE_CONTEXT_NOT_FOUND;
|
||||
}
|
||||
} else {
|
||||
if (!sess) {
|
||||
ogs_error("No Session Context");
|
||||
|
||||
sgwc_ue = sgwc_ue_find_by_id(bearer->sgwc_ue_id);
|
||||
ogs_assert(sgwc_ue);
|
||||
sess = sgwc_sess_find_by_id(bearer->sess_id);
|
||||
if (!sess) {
|
||||
ogs_error("Session not found [%d]", bearer->sess_id);
|
||||
cause_value = OGS_GTP2_CAUSE_CONTEXT_NOT_FOUND;
|
||||
}
|
||||
}
|
||||
|
||||
if (sess && cause_value == OGS_GTP2_CAUSE_REQUEST_ACCEPTED) {
|
||||
sgwc_ue = sgwc_ue_find_by_id(sess->sgwc_ue_id);
|
||||
if (!sgwc_ue) {
|
||||
ogs_error("UE not found [%d]", sess->sgwc_ue_id);
|
||||
cause_value = OGS_GTP2_CAUSE_CONTEXT_NOT_FOUND;
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
ogs_error("Invalid bearer id: %u", bearer_id);
|
||||
cause_value = OGS_GTP2_CAUSE_CONTEXT_NOT_FOUND;
|
||||
}
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user