Compare commits

...

2 Commits

Author SHA1 Message Date
Sukchan Lee
a3c11ec2f6 update it 2025-10-06 19:04:13 +09:00
Sukchan Lee
5c532fec56 update it 2025-10-06 19:01:18 +09:00
2 changed files with 44 additions and 28 deletions

View File

@@ -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);
}

View File

@@ -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;
}
}