forked from acouzens/open5gs
[SMF] PFCP Session Report Req: Allow receiving multiple bits in Report Type (#1442)
3GPP TS 29.244 sec 8.2.21 "Report Type" states: At least one bit shall be set to "1". Several bits may be set to "1".
This commit is contained in:
parent
72ecd1c005
commit
ab5f47ef59
|
@ -1310,10 +1310,6 @@ void smf_n4_handle_session_report_request(
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
ogs_assert(OGS_OK ==
|
|
||||||
smf_pfcp_send_session_report_response(
|
|
||||||
pfcp_xact, sess, OGS_PFCP_CAUSE_REQUEST_ACCEPTED));
|
|
||||||
|
|
||||||
if (sess->paging.ue_requested_pdu_session_establishment_done == true) {
|
if (sess->paging.ue_requested_pdu_session_establishment_done == true) {
|
||||||
smf_n1_n2_message_transfer_param_t param;
|
smf_n1_n2_message_transfer_param_t param;
|
||||||
|
|
||||||
|
@ -1327,28 +1323,31 @@ void smf_n4_handle_session_report_request(
|
||||||
|
|
||||||
smf_namf_comm_send_n1_n2_message_transfer(sess, ¶m);
|
smf_namf_comm_send_n1_n2_message_transfer(sess, ¶m);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
} else if (report_type.error_indication_report) {
|
if (report_type.error_indication_report) {
|
||||||
smf_ue_t *smf_ue = sess->smf_ue;
|
smf_ue_t *smf_ue = sess->smf_ue;
|
||||||
smf_sess_t *error_indication_session = NULL;
|
smf_sess_t *error_indication_session = NULL;
|
||||||
ogs_assert(smf_ue);
|
ogs_assert(smf_ue);
|
||||||
|
|
||||||
ogs_assert(OGS_OK ==
|
|
||||||
smf_pfcp_send_session_report_response(
|
|
||||||
pfcp_xact, sess, OGS_PFCP_CAUSE_REQUEST_ACCEPTED));
|
|
||||||
|
|
||||||
error_indication_session = smf_sess_find_by_error_indication_report(
|
error_indication_session = smf_sess_find_by_error_indication_report(
|
||||||
smf_ue, &pfcp_req->error_indication_report);
|
smf_ue, &pfcp_req->error_indication_report);
|
||||||
|
|
||||||
if (!error_indication_session) return;
|
if (error_indication_session) {
|
||||||
|
ogs_assert(OGS_OK ==
|
||||||
|
smf_5gc_pfcp_send_session_modification_request(
|
||||||
|
error_indication_session, NULL,
|
||||||
|
OGS_PFCP_MODIFY_DL_ONLY|OGS_PFCP_MODIFY_DEACTIVATE|
|
||||||
|
OGS_PFCP_MODIFY_ERROR_INDICATION,
|
||||||
|
0));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* TS 29.244 sec 8.2.21: At least one bit shall be set to "1". Several bits may be set to "1". */
|
||||||
|
if (report_type.downlink_data_report || report_type.error_indication_report) {
|
||||||
ogs_assert(OGS_OK ==
|
ogs_assert(OGS_OK ==
|
||||||
smf_5gc_pfcp_send_session_modification_request(
|
smf_pfcp_send_session_report_response(
|
||||||
error_indication_session, NULL,
|
pfcp_xact, sess, OGS_PFCP_CAUSE_REQUEST_ACCEPTED));
|
||||||
OGS_PFCP_MODIFY_DL_ONLY|OGS_PFCP_MODIFY_DEACTIVATE|
|
|
||||||
OGS_PFCP_MODIFY_ERROR_INDICATION,
|
|
||||||
0));
|
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
ogs_error("Not supported Report Type[%d]", report_type.value);
|
ogs_error("Not supported Report Type[%d]", report_type.value);
|
||||||
ogs_assert(OGS_OK ==
|
ogs_assert(OGS_OK ==
|
||||||
|
|
Loading…
Reference in New Issue