Projects
osmocom:nightly
open5gs
Sign Up
Log In
Username
Password
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
Expand all
Collapse all
Changes of Revision 655
View file
open5gs_2.7.0.128.30648.202404052026.dsc
Deleted
@@ -1,39 +0,0 @@ -Format: 3.0 (native) -Source: open5gs -Binary: open5gs-common, open5gs-mme, open5gs-sgwc, open5gs-smf, open5gs-amf, open5gs-sgwu, open5gs-upf, open5gs-hss, open5gs-pcrf, open5gs-nrf, open5gs-scp, open5gs-sepp, open5gs-ausf, open5gs-udm, open5gs-pcf, open5gs-nssf, open5gs-bsf, open5gs-udr, open5gs, open5gs-dbg -Architecture: any -Version: 2.7.0.128.30648.202404052026 -Maintainer: Harald Welte <laforge@gnumonks.org> -Uploaders: Sukchan Lee <acetcom@gmail.com> -Homepage: https://open5gs.org -Standards-Version: 4.3.0 -Vcs-Browser: https://github.com/open5gs/open5gs -Vcs-Git: git://github.com/open5gs/open5gs -Build-Depends: debhelper (>= 11), git, pkg-config, meson (>= 0.43.0), cmake, flex, bison, libgnutls28-dev, libgcrypt-dev, libssl-dev, libidn11-dev, libmongoc-dev, libbson-dev, libsctp-dev, libyaml-dev, libmicrohttpd-dev, libcurl4-gnutls-dev, libnghttp2-dev, libtins-dev, libtalloc-dev -Package-List: - open5gs deb net optional arch=any - open5gs-amf deb net optional arch=any - open5gs-ausf deb net optional arch=any - open5gs-bsf deb net optional arch=any - open5gs-common deb net optional arch=any - open5gs-dbg deb net optional arch=any - open5gs-hss deb net optional arch=any - open5gs-mme deb net optional arch=any - open5gs-nrf deb net optional arch=any - open5gs-nssf deb net optional arch=any - open5gs-pcf deb net optional arch=any - open5gs-pcrf deb net optional arch=any - open5gs-scp deb net optional arch=any - open5gs-sepp deb net optional arch=any - open5gs-sgwc deb net optional arch=any - open5gs-sgwu deb net optional arch=any - open5gs-smf deb net optional arch=any - open5gs-udm deb net optional arch=any - open5gs-udr deb net optional arch=any - open5gs-upf deb net optional arch=any -Checksums-Sha1: - e2eef4ee2269878a50d13707d30bf4f6f669ae13 14488320 open5gs_2.7.0.128.30648.202404052026.tar.xz -Checksums-Sha256: - 11d6afe2e86d483f5ec478401e2a561373c3fed46480610352bd3db19a1e7874 14488320 open5gs_2.7.0.128.30648.202404052026.tar.xz -Files: - 7cd88d66dcad2d41d93706b0c0058ca6 14488320 open5gs_2.7.0.128.30648.202404052026.tar.xz
View file
open5gs_2.7.0.128.8484a.202404062026.dsc
Added
@@ -0,0 +1,39 @@ +Format: 3.0 (native) +Source: open5gs +Binary: open5gs-common, open5gs-mme, open5gs-sgwc, open5gs-smf, open5gs-amf, open5gs-sgwu, open5gs-upf, open5gs-hss, open5gs-pcrf, open5gs-nrf, open5gs-scp, open5gs-sepp, open5gs-ausf, open5gs-udm, open5gs-pcf, open5gs-nssf, open5gs-bsf, open5gs-udr, open5gs, open5gs-dbg +Architecture: any +Version: 2.7.0.128.8484a.202404062026 +Maintainer: Harald Welte <laforge@gnumonks.org> +Uploaders: Sukchan Lee <acetcom@gmail.com> +Homepage: https://open5gs.org +Standards-Version: 4.3.0 +Vcs-Browser: https://github.com/open5gs/open5gs +Vcs-Git: git://github.com/open5gs/open5gs +Build-Depends: debhelper (>= 11), git, pkg-config, meson (>= 0.43.0), cmake, flex, bison, libgnutls28-dev, libgcrypt-dev, libssl-dev, libidn11-dev, libmongoc-dev, libbson-dev, libsctp-dev, libyaml-dev, libmicrohttpd-dev, libcurl4-gnutls-dev, libnghttp2-dev, libtins-dev, libtalloc-dev +Package-List: + open5gs deb net optional arch=any + open5gs-amf deb net optional arch=any + open5gs-ausf deb net optional arch=any + open5gs-bsf deb net optional arch=any + open5gs-common deb net optional arch=any + open5gs-dbg deb net optional arch=any + open5gs-hss deb net optional arch=any + open5gs-mme deb net optional arch=any + open5gs-nrf deb net optional arch=any + open5gs-nssf deb net optional arch=any + open5gs-pcf deb net optional arch=any + open5gs-pcrf deb net optional arch=any + open5gs-scp deb net optional arch=any + open5gs-sepp deb net optional arch=any + open5gs-sgwc deb net optional arch=any + open5gs-sgwu deb net optional arch=any + open5gs-smf deb net optional arch=any + open5gs-udm deb net optional arch=any + open5gs-udr deb net optional arch=any + open5gs-upf deb net optional arch=any +Checksums-Sha1: + add8c1fc8139553dee3417ae0ab8776550829459 14488252 open5gs_2.7.0.128.8484a.202404062026.tar.xz +Checksums-Sha256: + 40c621a695d204f877a24886e96d81adc04d80c8d1d320f7251b9f4509208672 14488252 open5gs_2.7.0.128.8484a.202404062026.tar.xz +Files: + 4b8e3f9900cedee9fd327e6df236d553 14488252 open5gs_2.7.0.128.8484a.202404062026.tar.xz
View file
open5gs_2.7.0.128.30648.202404052026.tar.xz/.tarball-version -> open5gs_2.7.0.128.8484a.202404062026.tar.xz/.tarball-version
Changed
@@ -1 +1 @@ -2.7.0.128-30648.202404052026 +2.7.0.128-8484a.202404062026
View file
open5gs_2.7.0.128.30648.202404052026.tar.xz/debian/changelog -> open5gs_2.7.0.128.8484a.202404062026.tar.xz/debian/changelog
Changed
@@ -1,8 +1,8 @@ -open5gs (2.7.0.128.30648.202404052026) unstable; urgency=medium +open5gs (2.7.0.128.8484a.202404062026) unstable; urgency=medium * Automatically generated changelog entry for building the Osmocom nightly feed - -- Osmocom OBS scripts <info@osmocom.org> Fri, 05 Apr 2024 20:27:38 +0000 + -- Osmocom OBS scripts <info@osmocom.org> Sat, 06 Apr 2024 20:27:41 +0000 open5gs (2.7.0) unstable; urgency=medium
View file
open5gs_2.7.0.128.30648.202404052026.tar.xz/lib/gtp/util.c -> open5gs_2.7.0.128.8484a.202404062026.tar.xz/lib/gtp/util.c
Changed
@@ -180,3 +180,68 @@ return answer; } + +void ogs_gtp2_sender_f_teid( + ogs_gtp2_sender_f_teid_t *sender_f_teid, ogs_gtp2_message_t *message) +{ + ogs_gtp2_tlv_f_teid_t *tlv_f_teid = NULL; + ogs_gtp2_f_teid_t *f_teid = NULL; + + ogs_assert(sender_f_teid); + ogs_assert(message); + + memset(sender_f_teid, 0, sizeof(*sender_f_teid)); + + switch (message->h.type) { + case OGS_GTP2_CREATE_SESSION_REQUEST_TYPE: + tlv_f_teid = &message->create_session_request. + sender_f_teid_for_control_plane; + break; + case OGS_GTP2_CREATE_SESSION_RESPONSE_TYPE: + tlv_f_teid = &message->create_session_response. + sender_f_teid_for_control_plane; + break; + case OGS_GTP2_MODIFY_BEARER_REQUEST_TYPE: + tlv_f_teid = &message->modify_bearer_request. + sender_f_teid_for_control_plane; + break; + case OGS_GTP2_DELETE_SESSION_REQUEST_TYPE: + tlv_f_teid = &message->delete_session_request. + sender_f_teid_for_control_plane; + break; + case OGS_GTP2_MODIFY_BEARER_COMMAND_TYPE: + tlv_f_teid = &message->modify_bearer_command. + sender_f_teid_for_control_plane; + break; + case OGS_GTP2_DELETE_BEARER_COMMAND_TYPE: + tlv_f_teid = &message->delete_bearer_command. + sender_f_teid_for_control_plane; + break; + case OGS_GTP2_BEARER_RESOURCE_COMMAND_TYPE: + tlv_f_teid = &message->bearer_resource_command. + sender_f_teid_for_control_plane; + break; + case OGS_GTP2_CREATE_INDIRECT_DATA_FORWARDING_TUNNEL_REQUEST_TYPE: + tlv_f_teid = &message->create_indirect_data_forwarding_tunnel_request. + sender_f_teid_for_control_plane; + break; + case OGS_GTP2_CREATE_INDIRECT_DATA_FORWARDING_TUNNEL_RESPONSE_TYPE: + tlv_f_teid = &message->create_indirect_data_forwarding_tunnel_response. + sender_f_teid_for_control_plane; + break; + case OGS_GTP2_DOWNLINK_DATA_NOTIFICATION_TYPE: + tlv_f_teid = &message->downlink_data_notification. + sender_f_teid_for_control_plane; + break; + case OGS_GTP2_MODIFY_ACCESS_BEARERS_REQUEST_TYPE: + tlv_f_teid = &message->modify_access_bearers_request. + sender_f_teid_for_control_plane; + default: + break; + } + + if (tlv_f_teid && tlv_f_teid->presence && (f_teid = tlv_f_teid->data)) { + sender_f_teid->teid_presence = true; + sender_f_teid->teid = be32toh(f_teid->teid); + } +}
View file
open5gs_2.7.0.128.30648.202404052026.tar.xz/lib/gtp/util.h -> open5gs_2.7.0.128.8484a.202404062026.tar.xz/lib/gtp/util.h
Changed
@@ -32,6 +32,14 @@ ogs_gtp2_header_desc_t *header_desc, ogs_pkbuf_t *pkbuf); uint16_t ogs_in_cksum(uint16_t *addr, int len); +typedef struct ogs_gtp2_sender_f_teid_s { + bool teid_presence; + uint32_t teid; +} ogs_gtp2_sender_f_teid_t; + +void ogs_gtp2_sender_f_teid( + ogs_gtp2_sender_f_teid_t *sender_f_teid, ogs_gtp2_message_t *message); + #ifdef __cplusplus } #endif
View file
open5gs_2.7.0.128.30648.202404052026.tar.xz/src/mme/mme-s11-handler.c -> open5gs_2.7.0.128.8484a.202404062026.tar.xz/src/mme/mme-s11-handler.c
Changed
@@ -60,13 +60,9 @@ } void mme_s11_handle_echo_request( - ogs_gtp_xact_t *xact, ogs_gtp2_message_t *gtp2_message) + ogs_gtp_xact_t *xact, ogs_gtp2_echo_request_t *req) { - ogs_gtp2_echo_request_t *req = NULL; - ogs_assert(xact); - ogs_assert(gtp2_message); - req = >p2_message->echo_request; ogs_assert(req); ogs_debug("Receiving Echo Request"); @@ -76,14 +72,14 @@ } void mme_s11_handle_echo_response( - ogs_gtp_xact_t *xact, ogs_gtp2_message_t *gtp2_message) + ogs_gtp_xact_t *xact, ogs_gtp2_echo_response_t *rsp) { /* Not Implemented */ } void mme_s11_handle_create_session_response( ogs_gtp_xact_t *xact, mme_ue_t *mme_ue_from_teid, - ogs_gtp2_message_t *gtp2_message) + ogs_gtp2_create_session_response_t *rsp) { int i, r, rv; uint8_t cause_value = OGS_GTP2_CAUSE_UNDEFINED_VALUE; @@ -104,10 +100,6 @@ uint16_t decoded = 0; int create_action = 0; - ogs_gtp2_create_session_response_t *rsp = NULL; - - ogs_assert(gtp2_message); - rsp = >p2_message->create_session_response; ogs_assert(rsp); ogs_debug("Create Session Response"); @@ -480,7 +472,7 @@ void mme_s11_handle_modify_bearer_response( ogs_gtp_xact_t *xact, mme_ue_t *mme_ue_from_teid, - ogs_gtp2_message_t *gtp2_message) + ogs_gtp2_modify_bearer_response_t *rsp) { int r, rv; uint8_t cause_value = OGS_GTP2_CAUSE_UNDEFINED_VALUE; @@ -490,10 +482,6 @@ mme_ue_t *mme_ue = NULL; sgw_ue_t *sgw_ue = NULL; - ogs_gtp2_modify_bearer_response_t *rsp = NULL; - - ogs_assert(gtp2_message); - rsp = >p2_message->modify_bearer_response; ogs_assert(rsp); ogs_debug("Modify Bearer Response"); @@ -598,7 +586,7 @@ void mme_s11_handle_delete_session_response( ogs_gtp_xact_t *xact, mme_ue_t *mme_ue_from_teid, - ogs_gtp2_message_t *gtp2_message) + ogs_gtp2_delete_session_response_t *rsp) { int r, rv; uint8_t cause_value = OGS_GTP2_CAUSE_UNDEFINED_VALUE; @@ -607,10 +595,6 @@ mme_sess_t *sess = NULL; mme_ue_t *mme_ue = NULL; - ogs_gtp2_delete_session_response_t *rsp = NULL; - - ogs_assert(gtp2_message); - rsp = >p2_message->delete_session_response; ogs_assert(rsp); ogs_debug("Delete Session Response"); @@ -794,7 +778,7 @@ void mme_s11_handle_create_bearer_request( ogs_gtp_xact_t *xact, mme_ue_t *mme_ue, - ogs_gtp2_message_t *gtp2_message) + ogs_gtp2_create_bearer_request_t *req) { int r; uint8_t cause_value = OGS_GTP2_CAUSE_UNDEFINED_VALUE; @@ -806,11 +790,7 @@ ogs_gtp2_f_teid_t *pgw_s5u_teid = NULL; ogs_gtp2_bearer_qos_t bearer_qos; - ogs_gtp2_create_bearer_request_t *req = NULL; - ogs_assert(xact); - ogs_assert(gtp2_message); - req = >p2_message->create_bearer_request; ogs_assert(req); ogs_debug("Create Bearer Request"); @@ -843,8 +823,7 @@ } if (cause_value != OGS_GTP2_CAUSE_REQUEST_ACCEPTED) { - ogs_gtp2_send_error_message(xact, - sgw_ue ? sgw_ue->sgw_s11_teid : gtp2_message->h.teid, + ogs_gtp2_send_error_message(xact, sgw_ue ? sgw_ue->sgw_s11_teid : 0, OGS_GTP2_CREATE_BEARER_RESPONSE_TYPE, cause_value); return; } @@ -880,8 +859,7 @@ } if (cause_value != OGS_GTP2_CAUSE_REQUEST_ACCEPTED) { - ogs_gtp2_send_error_message(xact, - sgw_ue ? sgw_ue->sgw_s11_teid : gtp2_message->h.teid, + ogs_gtp2_send_error_message(xact, sgw_ue ? sgw_ue->sgw_s11_teid : 0, OGS_GTP2_CREATE_BEARER_RESPONSE_TYPE, cause_value); return; } @@ -1004,7 +982,7 @@ void mme_s11_handle_update_bearer_request( ogs_gtp_xact_t *xact, mme_ue_t *mme_ue, - ogs_gtp2_message_t *gtp2_message) + ogs_gtp2_update_bearer_request_t *req) { int r; uint8_t cause_value = OGS_GTP2_CAUSE_UNDEFINED_VALUE; @@ -1013,11 +991,7 @@ sgw_ue_t *sgw_ue = NULL; ogs_gtp2_bearer_qos_t bearer_qos; - ogs_gtp2_update_bearer_request_t *req = NULL; - ogs_assert(xact); - ogs_assert(gtp2_message); - req = >p2_message->update_bearer_request; ogs_assert(req); ogs_debug("Update Bearer Request"); @@ -1054,8 +1028,7 @@ } if (cause_value != OGS_GTP2_CAUSE_REQUEST_ACCEPTED) { - ogs_gtp2_send_error_message(xact, - sgw_ue ? sgw_ue->sgw_s11_teid : gtp2_message->h.teid, + ogs_gtp2_send_error_message(xact, sgw_ue ? sgw_ue->sgw_s11_teid : 0, OGS_GTP2_UPDATE_BEARER_RESPONSE_TYPE, cause_value); return; } @@ -1156,7 +1129,7 @@ void mme_s11_handle_delete_bearer_request( ogs_gtp_xact_t *xact, mme_ue_t *mme_ue, - ogs_gtp2_message_t *gtp2_message) + ogs_gtp2_delete_bearer_request_t *req) { int r; uint8_t cause_value = OGS_GTP2_CAUSE_UNDEFINED_VALUE; @@ -1165,11 +1138,7 @@ mme_sess_t *sess = NULL; sgw_ue_t *sgw_ue = NULL; - ogs_gtp2_delete_bearer_request_t *req = NULL; - ogs_assert(xact); - ogs_assert(gtp2_message); - req = >p2_message->delete_bearer_request; ogs_assert(req); ogs_debug("Delete Bearer Request"); @@ -1230,8 +1199,7 @@ } if (cause_value != OGS_GTP2_CAUSE_REQUEST_ACCEPTED) { - ogs_gtp2_send_error_message(xact, - sgw_ue ? sgw_ue->sgw_s11_teid : gtp2_message->h.teid, + ogs_gtp2_send_error_message(xact, sgw_ue ? sgw_ue->sgw_s11_teid : 0, OGS_GTP2_DELETE_BEARER_RESPONSE_TYPE, OGS_GTP2_CAUSE_CONTEXT_NOT_FOUND); return; @@ -1282,7 +1250,7 @@ void mme_s11_handle_release_access_bearers_response( ogs_gtp_xact_t *xact, mme_ue_t *mme_ue_from_teid, - ogs_gtp2_message_t *gtp2_message) + ogs_gtp2_release_access_bearers_response_t *rsp) { int r, rv; uint8_t cause_value = OGS_GTP2_CAUSE_UNDEFINED_VALUE; @@ -1294,10 +1262,6 @@ mme_sess_t *sess = NULL; mme_bearer_t *bearer = NULL; - ogs_gtp2_release_access_bearers_response_t *rsp = NULL; - - ogs_assert(gtp2_message); - rsp = >p2_message->release_access_bearers_response; ogs_assert(rsp); ogs_debug("Release Access Bearers Response"); @@ -1451,7 +1415,7 @@ void mme_s11_handle_downlink_data_notification( ogs_gtp_xact_t *xact, mme_ue_t *mme_ue, - ogs_gtp2_message_t *gtp2_message) + ogs_gtp2_downlink_data_notification_t *noti) { uint8_t cause_value = OGS_GTP2_CAUSE_UNDEFINED_VALUE; int r; @@ -1459,11 +1423,7 @@ mme_bearer_t *bearer = NULL; sgw_ue_t *sgw_ue = NULL; - ogs_gtp2_downlink_data_notification_t *noti = NULL; - ogs_assert(xact); - ogs_assert(gtp2_message); - noti = >p2_message->downlink_data_notification; ogs_assert(noti); ogs_debug("Downlink Data Notification"); @@ -1496,8 +1456,7 @@ } if (cause_value != OGS_GTP2_CAUSE_REQUEST_ACCEPTED) { - ogs_gtp2_send_error_message(xact, - sgw_ue ? sgw_ue->sgw_s11_teid : gtp2_message->h.teid, + ogs_gtp2_send_error_message(xact, sgw_ue ? sgw_ue->sgw_s11_teid : 0, OGS_GTP2_DOWNLINK_DATA_NOTIFICATION_ACKNOWLEDGE_TYPE, OGS_GTP2_CAUSE_CONTEXT_NOT_FOUND); return; @@ -1599,7 +1558,7 @@ void mme_s11_handle_create_indirect_data_forwarding_tunnel_response( ogs_gtp_xact_t *xact, mme_ue_t *mme_ue_from_teid, - ogs_gtp2_message_t *gtp2_message) + ogs_gtp2_create_indirect_data_forwarding_tunnel_response_t *rsp) { int i, r, rv; uint8_t cause_value = OGS_GTP2_CAUSE_UNDEFINED_VALUE; @@ -1611,10 +1570,6 @@ ogs_gtp2_f_teid_t *teid = NULL; - ogs_gtp2_create_indirect_data_forwarding_tunnel_response_t *rsp = NULL; - - ogs_assert(gtp2_message); - rsp = >p2_message->create_indirect_data_forwarding_tunnel_response; ogs_assert(rsp); ogs_debug("Create Indirect Data Forwarding Tunnel Response"); @@ -1739,7 +1694,7 @@ void mme_s11_handle_delete_indirect_data_forwarding_tunnel_response( ogs_gtp_xact_t *xact, mme_ue_t *mme_ue_from_teid, - ogs_gtp2_message_t *gtp2_message) + ogs_gtp2_delete_indirect_data_forwarding_tunnel_response_t *rsp) { int r, rv; uint8_t cause_value = OGS_GTP2_CAUSE_UNDEFINED_VALUE; @@ -1748,10 +1703,6 @@ mme_ue_t *mme_ue = NULL; sgw_ue_t *sgw_ue = NULL; - ogs_gtp2_delete_indirect_data_forwarding_tunnel_response_t *rsp = NULL; - - ogs_assert(gtp2_message); - rsp = >p2_message->delete_indirect_data_forwarding_tunnel_response; ogs_assert(rsp); ogs_debug("Delete Indirect Data Forwarding Tunnel Response"); @@ -1853,7 +1804,7 @@ void mme_s11_handle_bearer_resource_failure_indication( ogs_gtp_xact_t *xact, mme_ue_t *mme_ue_from_teid, - ogs_gtp2_message_t *gtp2_message) + ogs_gtp2_bearer_resource_failure_indication_t *ind) { int r, rv; uint8_t cause_value = OGS_GTP2_CAUSE_UNDEFINED_VALUE; @@ -1863,12 +1814,6 @@ mme_ue_t *mme_ue = NULL; sgw_ue_t *sgw_ue = NULL; - ogs_gtp2_bearer_resource_failure_indication_t *ind = NULL; - - ogs_assert(gtp2_message); - ind = >p2_message->bearer_resource_failure_indication; - ogs_assert(ind); - ogs_debug("Bearer Resource Failure Indication"); /********************
View file
open5gs_2.7.0.128.30648.202404052026.tar.xz/src/mme/mme-s11-handler.h -> open5gs_2.7.0.128.8484a.202404062026.tar.xz/src/mme/mme-s11-handler.h
Changed
@@ -27,44 +27,44 @@ #endif void mme_s11_handle_echo_request( - ogs_gtp_xact_t *xact, ogs_gtp2_message_t *gtp2_message); + ogs_gtp_xact_t *xact, ogs_gtp2_echo_request_t *req); void mme_s11_handle_echo_response( - ogs_gtp_xact_t *xact, ogs_gtp2_message_t *gtp2_message); + ogs_gtp_xact_t *xact, ogs_gtp2_echo_response_t *rsp); void mme_s11_handle_create_session_response( ogs_gtp_xact_t *xact, mme_ue_t *mme_ue, - ogs_gtp2_message_t *gtp2_message); + ogs_gtp2_create_session_response_t *rsp); void mme_s11_handle_modify_bearer_response( ogs_gtp_xact_t *xact, mme_ue_t *mme_ue, - ogs_gtp2_message_t *gtp2_message); + ogs_gtp2_modify_bearer_response_t *rsp); void mme_s11_handle_delete_session_response( ogs_gtp_xact_t *xact, mme_ue_t *mme_ue, - ogs_gtp2_message_t *gtp2_message); + ogs_gtp2_delete_session_response_t *rsp); void mme_s11_handle_create_bearer_request( ogs_gtp_xact_t *xact, mme_ue_t *mme_ue, - ogs_gtp2_message_t *gtp2_message); + ogs_gtp2_create_bearer_request_t *req); void mme_s11_handle_update_bearer_request( ogs_gtp_xact_t *xact, mme_ue_t *mme_ue, - ogs_gtp2_message_t *gtp2_message); + ogs_gtp2_update_bearer_request_t *req); void mme_s11_handle_delete_bearer_request( ogs_gtp_xact_t *xact, mme_ue_t *mme_ue, - ogs_gtp2_message_t *gtp2_message); + ogs_gtp2_delete_bearer_request_t *req); void mme_s11_handle_release_access_bearers_response( ogs_gtp_xact_t *xact, mme_ue_t *mme_ue, - ogs_gtp2_message_t *gtp2_message); + ogs_gtp2_release_access_bearers_response_t *rsp); void mme_s11_handle_downlink_data_notification( ogs_gtp_xact_t *xact, mme_ue_t *mme_ue, - ogs_gtp2_message_t *gtp2_message); + ogs_gtp2_downlink_data_notification_t *noti); void mme_s11_handle_create_indirect_data_forwarding_tunnel_response( ogs_gtp_xact_t *xact, mme_ue_t *mme_ue, - ogs_gtp2_message_t *gtp2_message); + ogs_gtp2_create_indirect_data_forwarding_tunnel_response_t *rsp); void mme_s11_handle_delete_indirect_data_forwarding_tunnel_response( ogs_gtp_xact_t *xact, mme_ue_t *mme_ue, - ogs_gtp2_message_t *gtp2_message); + ogs_gtp2_delete_indirect_data_forwarding_tunnel_response_t *rsp); void mme_s11_handle_bearer_resource_failure_indication( ogs_gtp_xact_t *xact, mme_ue_t *mme_ue, - ogs_gtp2_message_t *gtp2_message); + ogs_gtp2_bearer_resource_failure_indication_t *ind); #ifdef __cplusplus }
View file
open5gs_2.7.0.128.30648.202404052026.tar.xz/src/mme/mme-sm.c -> open5gs_2.7.0.128.8484a.202404062026.tar.xz/src/mme/mme-sm.c
Changed
@@ -79,7 +79,7 @@ ogs_gtp_node_t *gnode = NULL; ogs_gtp_xact_t *xact = NULL; - ogs_gtp2_message_t gtp2_message; + ogs_gtp2_message_t gtp_message; ogs_gtp1_message_t gtp1_message; mme_vlr_t *vlr = NULL; @@ -650,7 +650,7 @@ pkbuf = e->pkbuf; ogs_assert(pkbuf); - if (ogs_gtp2_parse_msg(>p2_message, pkbuf) != OGS_OK) { + if (ogs_gtp2_parse_msg(>p_message, pkbuf) != OGS_OK) { ogs_error("ogs_gtp2_parse_msg() failed"); ogs_pkbuf_free(pkbuf); break; @@ -659,7 +659,7 @@ gnode = e->gnode; ogs_assert(gnode); - rv = ogs_gtp_xact_receive(gnode, >p2_message.h, &xact); + rv = ogs_gtp_xact_receive(gnode, >p_message.h, &xact); if (rv != OGS_OK) { ogs_pkbuf_free(pkbuf); break; @@ -694,9 +694,9 @@ * However in this case, the cause code shall not be set to * "Context not found". */ - if (gtp2_message.h.teid_presence && gtp2_message.h.teid != 0) { + if (gtp_message.h.teid_presence && gtp_message.h.teid != 0) { /* Cause is not "Context not found" */ - mme_ue = mme_ue_find_by_s11_local_teid(gtp2_message.h.teid); + mme_ue = mme_ue_find_by_s11_local_teid(gtp_message.h.teid); } else if (xact->local_teid) { /* rx no TEID or TEID=0 */ /* 3GPP TS 29.274 5.5.2: we receive TEID=0 under some * conditions, such as cause "Session context not found". In those @@ -706,60 +706,69 @@ mme_ue = mme_ue_find_by_s11_local_teid(xact->local_teid); } - switch (gtp2_message.h.type) { + switch (gtp_message.h.type) { case OGS_GTP2_ECHO_REQUEST_TYPE: - mme_s11_handle_echo_request(xact, >p2_message); + mme_s11_handle_echo_request(xact, >p_message.echo_request); break; case OGS_GTP2_ECHO_RESPONSE_TYPE: - mme_s11_handle_echo_response(xact, >p2_message); + mme_s11_handle_echo_response(xact, >p_message.echo_response); break; case OGS_GTP2_CREATE_SESSION_RESPONSE_TYPE: - if (!gtp2_message.h.teid_presence) ogs_error("No TEID"); - mme_s11_handle_create_session_response(xact, mme_ue, >p2_message); + if (!gtp_message.h.teid_presence) ogs_error("No TEID"); + mme_s11_handle_create_session_response( + xact, mme_ue, >p_message.create_session_response); break; case OGS_GTP2_MODIFY_BEARER_RESPONSE_TYPE: - if (!gtp2_message.h.teid_presence) ogs_error("No TEID"); - mme_s11_handle_modify_bearer_response(xact, mme_ue, >p2_message); + if (!gtp_message.h.teid_presence) ogs_error("No TEID"); + mme_s11_handle_modify_bearer_response( + xact, mme_ue, >p_message.modify_bearer_response); break; case OGS_GTP2_DELETE_SESSION_RESPONSE_TYPE: - if (!gtp2_message.h.teid_presence) ogs_error("No TEID"); - mme_s11_handle_delete_session_response(xact, mme_ue, >p2_message); + if (!gtp_message.h.teid_presence) ogs_error("No TEID"); + mme_s11_handle_delete_session_response( + xact, mme_ue, >p_message.delete_session_response); break; case OGS_GTP2_CREATE_BEARER_REQUEST_TYPE: - mme_s11_handle_create_bearer_request(xact, mme_ue, >p2_message); + mme_s11_handle_create_bearer_request( + xact, mme_ue, >p_message.create_bearer_request); break; case OGS_GTP2_UPDATE_BEARER_REQUEST_TYPE: - mme_s11_handle_update_bearer_request(xact, mme_ue, >p2_message); + mme_s11_handle_update_bearer_request( + xact, mme_ue, >p_message.update_bearer_request); break; case OGS_GTP2_DELETE_BEARER_REQUEST_TYPE: - mme_s11_handle_delete_bearer_request(xact, mme_ue, >p2_message); + mme_s11_handle_delete_bearer_request( + xact, mme_ue, >p_message.delete_bearer_request); break; case OGS_GTP2_RELEASE_ACCESS_BEARERS_RESPONSE_TYPE: - if (!gtp2_message.h.teid_presence) ogs_error("No TEID"); + if (!gtp_message.h.teid_presence) ogs_error("No TEID"); mme_s11_handle_release_access_bearers_response( - xact, mme_ue, >p2_message); + xact, mme_ue, >p_message.release_access_bearers_response); break; case OGS_GTP2_DOWNLINK_DATA_NOTIFICATION_TYPE: mme_s11_handle_downlink_data_notification( - xact, mme_ue, >p2_message); + xact, mme_ue, >p_message.downlink_data_notification); break; case OGS_GTP2_CREATE_INDIRECT_DATA_FORWARDING_TUNNEL_RESPONSE_TYPE: - if (!gtp2_message.h.teid_presence) ogs_error("No TEID"); + if (!gtp_message.h.teid_presence) ogs_error("No TEID"); mme_s11_handle_create_indirect_data_forwarding_tunnel_response( - xact, mme_ue, >p2_message); + xact, mme_ue, + >p_message.create_indirect_data_forwarding_tunnel_response); break; case OGS_GTP2_DELETE_INDIRECT_DATA_FORWARDING_TUNNEL_RESPONSE_TYPE: - if (!gtp2_message.h.teid_presence) ogs_error("No TEID"); + if (!gtp_message.h.teid_presence) ogs_error("No TEID"); mme_s11_handle_delete_indirect_data_forwarding_tunnel_response( - xact, mme_ue, >p2_message); + xact, mme_ue, + >p_message.delete_indirect_data_forwarding_tunnel_response); break; case OGS_GTP2_BEARER_RESOURCE_FAILURE_INDICATION_TYPE: - if (!gtp2_message.h.teid_presence) ogs_error("No TEID"); + if (!gtp_message.h.teid_presence) ogs_error("No TEID"); mme_s11_handle_bearer_resource_failure_indication( - xact, mme_ue, >p2_message); + xact, mme_ue, + >p_message.bearer_resource_failure_indication); break; default: - ogs_warn("Not implemented(type:%d)", gtp2_message.h.type); + ogs_warn("Not implemented(type:%d)", gtp_message.h.type); break; } ogs_pkbuf_free(pkbuf);
View file
open5gs_2.7.0.128.30648.202404052026.tar.xz/src/sgwc/pfcp-sm.c -> open5gs_2.7.0.128.8484a.202404062026.tar.xz/src/sgwc/pfcp-sm.c
Changed
@@ -305,7 +305,8 @@ sess->sgwu_sxa_seid = be64toh(up_f_seid->seid); } else { sgwc_sxa_handle_session_establishment_response( - sess, xact, e->gtp_message, message); + sess, xact, e->gtp_message, + &message->pfcp_session_establishment_response); } break; @@ -313,20 +314,23 @@ if (!message->h.seid_presence) ogs_error("No SEID"); sgwc_sxa_handle_session_modification_response( - sess, xact, e->gtp_message, message); + sess, xact, e->gtp_message, + &message->pfcp_session_modification_response); break; case OGS_PFCP_SESSION_DELETION_RESPONSE_TYPE: if (!message->h.seid_presence) ogs_error("No SEID"); sgwc_sxa_handle_session_deletion_response( - sess, xact, e->gtp_message, message); + sess, xact, e->gtp_message, + &message->pfcp_session_deletion_response); break; case OGS_PFCP_SESSION_REPORT_REQUEST_TYPE: if (!message->h.seid_presence) ogs_error("No SEID"); - sgwc_sxa_handle_session_report_request(sess, xact, message); + sgwc_sxa_handle_session_report_request( + sess, xact, &message->pfcp_session_report_request); break; default:
View file
open5gs_2.7.0.128.30648.202404052026.tar.xz/src/sgwc/s11-handler.c -> open5gs_2.7.0.128.8484a.202404062026.tar.xz/src/sgwc/s11-handler.c
Changed
@@ -174,7 +174,7 @@ if (cause_value != OGS_GTP2_CAUSE_REQUEST_ACCEPTED) { ogs_gtp_send_error_message( - s11_xact, sgwc_ue ? sgwc_ue->mme_s11_teid : message->h.teid, + s11_xact, sgwc_ue ? sgwc_ue->mme_s11_teid : 0, OGS_GTP2_CREATE_SESSION_RESPONSE_TYPE, cause_value); return; } @@ -215,7 +215,7 @@ if (cause_value != OGS_GTP2_CAUSE_REQUEST_ACCEPTED) { ogs_gtp_send_error_message( - s11_xact, sgwc_ue ? sgwc_ue->mme_s11_teid : message->h.teid, + s11_xact, sgwc_ue ? sgwc_ue->mme_s11_teid : 0, OGS_GTP2_CREATE_SESSION_RESPONSE_TYPE, cause_value); return; } @@ -263,7 +263,7 @@ ogs_assert(sess->pfcp_node); if (!OGS_FSM_CHECK(&sess->pfcp_node->sm, sgwc_pfcp_state_associated)) { ogs_gtp_send_error_message( - s11_xact, sgwc_ue ? sgwc_ue->mme_s11_teid : message->h.teid, + s11_xact, sgwc_ue ? sgwc_ue->mme_s11_teid : 0, OGS_GTP2_CREATE_SESSION_RESPONSE_TYPE, OGS_GTP2_CAUSE_REMOTE_PEER_NOT_RESPONDING); return; @@ -424,7 +424,7 @@ if (cause_value != OGS_GTP2_CAUSE_REQUEST_ACCEPTED) { ogs_gtp_send_error_message( - s11_xact, sgwc_ue ? sgwc_ue->mme_s11_teid : message->h.teid, + s11_xact, sgwc_ue ? sgwc_ue->mme_s11_teid : 0, OGS_GTP2_MODIFY_BEARER_RESPONSE_TYPE, cause_value); return; } @@ -532,7 +532,7 @@ if (i == 0) { ogs_error("No Bearer"); ogs_gtp_send_error_message( - s11_xact, sgwc_ue ? sgwc_ue->mme_s11_teid : message->h.teid, + s11_xact, sgwc_ue ? sgwc_ue->mme_s11_teid : 0, OGS_GTP2_MODIFY_BEARER_RESPONSE_TYPE, cause_value); return; } @@ -610,7 +610,7 @@ if (cause_value != OGS_GTP2_CAUSE_REQUEST_ACCEPTED) { ogs_gtp_send_error_message( - s11_xact, sgwc_ue ? sgwc_ue->mme_s11_teid : message->h.teid, + s11_xact, sgwc_ue ? sgwc_ue->mme_s11_teid : 0, OGS_GTP2_DELETE_SESSION_RESPONSE_TYPE, cause_value); return; } @@ -630,7 +630,7 @@ indication->scope_indication == 1) { ogs_error("Invalid Indication"); ogs_gtp_send_error_message( - s11_xact, sgwc_ue ? sgwc_ue->mme_s11_teid : message->h.teid, + s11_xact, sgwc_ue ? sgwc_ue->mme_s11_teid : 0, OGS_GTP2_DELETE_SESSION_RESPONSE_TYPE, OGS_GTP2_CAUSE_INVALID_MESSAGE_FORMAT); return; @@ -1129,7 +1129,7 @@ if (cause_value != OGS_GTP2_CAUSE_REQUEST_ACCEPTED) { ogs_gtp_send_error_message( - s11_xact, sgwc_ue ? sgwc_ue->mme_s11_teid : message->h.teid, + s11_xact, sgwc_ue ? sgwc_ue->mme_s11_teid : 0, OGS_GTP2_RELEASE_ACCESS_BEARERS_RESPONSE_TYPE, cause_value); return; } @@ -1236,7 +1236,7 @@ if (cause_value != OGS_GTP2_CAUSE_REQUEST_ACCEPTED) { ogs_gtp_send_error_message( - s11_xact, sgwc_ue ? sgwc_ue->mme_s11_teid : message->h.teid, + s11_xact, sgwc_ue ? sgwc_ue->mme_s11_teid : 0, OGS_GTP2_CREATE_INDIRECT_DATA_FORWARDING_TUNNEL_RESPONSE_TYPE, cause_value); return; @@ -1254,7 +1254,7 @@ if (req->bearer_contextsi.eps_bearer_id.presence == 0) { ogs_error("No EBI"); ogs_gtp_send_error_message( - s11_xact, sgwc_ue ? sgwc_ue->mme_s11_teid : message->h.teid, + s11_xact, sgwc_ue ? sgwc_ue->mme_s11_teid : 0, OGS_GTP2_CREATE_INDIRECT_DATA_FORWARDING_TUNNEL_RESPONSE_TYPE, OGS_GTP2_CAUSE_MANDATORY_IE_MISSING); return; @@ -1277,7 +1277,7 @@ rv = ogs_gtp2_f_teid_to_ip(req_teid, &tunnel->remote_ip); if (rv != OGS_OK) { ogs_gtp_send_error_message(s11_xact, - sgwc_ue ? sgwc_ue->mme_s11_teid : message->h.teid, + sgwc_ue ? sgwc_ue->mme_s11_teid : 0, OGS_GTP2_CREATE_INDIRECT_DATA_FORWARDING_TUNNEL_RESPONSE_TYPE, OGS_GTP2_CAUSE_MANDATORY_IE_MISSING); return; @@ -1312,7 +1312,7 @@ rv = ogs_gtp2_f_teid_to_ip(req_teid, &tunnel->remote_ip); if (rv != OGS_OK) { ogs_gtp_send_error_message(s11_xact, - sgwc_ue ? sgwc_ue->mme_s11_teid : message->h.teid, + sgwc_ue ? sgwc_ue->mme_s11_teid : 0, OGS_GTP2_CREATE_INDIRECT_DATA_FORWARDING_TUNNEL_RESPONSE_TYPE, OGS_GTP2_CAUSE_MANDATORY_IE_MISSING); return; @@ -1346,13 +1346,12 @@ void sgwc_s11_handle_delete_indirect_data_forwarding_tunnel_request( sgwc_ue_t *sgwc_ue, ogs_gtp_xact_t *s11_xact, - ogs_pkbuf_t *gtpbuf, ogs_gtp2_message_t *message) + ogs_pkbuf_t *gtpbuf, ogs_gtp2_message_t *recv_message) { sgwc_sess_t *sess = NULL; uint8_t cause_value = 0; ogs_assert(s11_xact); - ogs_assert(message); ogs_debug("Delete Indirect Data Forwarding Tunnel Request"); @@ -1368,8 +1367,7 @@ if (cause_value != OGS_GTP2_CAUSE_REQUEST_ACCEPTED) { ogs_gtp_send_error_message( - s11_xact, - sgwc_ue ? sgwc_ue->mme_s11_teid : message->h.teid, + s11_xact, sgwc_ue ? sgwc_ue->mme_s11_teid : 0, OGS_GTP2_DELETE_INDIRECT_DATA_FORWARDING_TUNNEL_RESPONSE_TYPE, cause_value); return; @@ -1444,7 +1442,7 @@ if (cause_value != OGS_GTP2_CAUSE_REQUEST_ACCEPTED) { ogs_gtp_send_error_message( - s11_xact, sgwc_ue ? sgwc_ue->mme_s11_teid : message->h.teid, + s11_xact, sgwc_ue ? sgwc_ue->mme_s11_teid : 0, OGS_GTP2_BEARER_RESOURCE_FAILURE_INDICATION_TYPE, cause_value); return; } @@ -1465,7 +1463,7 @@ if (cause_value != OGS_GTP2_CAUSE_REQUEST_ACCEPTED) { ogs_gtp_send_error_message( - s11_xact, sgwc_ue ? sgwc_ue->mme_s11_teid : message->h.teid, + s11_xact, sgwc_ue ? sgwc_ue->mme_s11_teid : 0, OGS_GTP2_BEARER_RESOURCE_FAILURE_INDICATION_TYPE, cause_value); return; }
View file
open5gs_2.7.0.128.30648.202404052026.tar.xz/src/sgwc/s5c-handler.c -> open5gs_2.7.0.128.8484a.202404062026.tar.xz/src/sgwc/s5c-handler.c
Changed
@@ -573,8 +573,7 @@ } if (cause_value != OGS_GTP2_CAUSE_REQUEST_ACCEPTED) { - ogs_gtp_send_error_message(s5c_xact, - sess ? sess->pgw_s5c_teid : message->h.teid, + ogs_gtp_send_error_message(s5c_xact, sess ? sess->pgw_s5c_teid : 0, OGS_GTP2_CREATE_BEARER_RESPONSE_TYPE, cause_value); return; } @@ -602,8 +601,7 @@ } if (cause_value != OGS_GTP2_CAUSE_REQUEST_ACCEPTED) { - ogs_gtp_send_error_message(s5c_xact, - sess ? sess->pgw_s5c_teid : message->h.teid, + ogs_gtp_send_error_message(s5c_xact, sess ? sess->pgw_s5c_teid : 0, OGS_GTP2_CREATE_BEARER_RESPONSE_TYPE, cause_value); return; } @@ -633,8 +631,7 @@ rv = ogs_gtp2_f_teid_to_ip(pgw_s5u_teid, &ul_tunnel->remote_ip); if (rv != OGS_OK) { - ogs_gtp_send_error_message(s5c_xact, - sess ? sess->pgw_s5c_teid : message->h.teid, + ogs_gtp_send_error_message(s5c_xact, sess ? sess->pgw_s5c_teid : 0, OGS_GTP2_CREATE_BEARER_RESPONSE_TYPE, OGS_GTP2_CAUSE_MANDATORY_IE_MISSING); return; @@ -712,8 +709,7 @@ } if (cause_value != OGS_GTP2_CAUSE_REQUEST_ACCEPTED) { - ogs_gtp_send_error_message(s5c_xact, - sess ? sess->pgw_s5c_teid : message->h.teid, + ogs_gtp_send_error_message(s5c_xact, sess ? sess->pgw_s5c_teid : 0, OGS_GTP2_UPDATE_BEARER_RESPONSE_TYPE, cause_value); return; } @@ -854,8 +850,7 @@ } if (cause_value != OGS_GTP2_CAUSE_REQUEST_ACCEPTED) { - ogs_gtp_send_error_message(s5c_xact, - sess ? sess->pgw_s5c_teid : message->h.teid, + ogs_gtp_send_error_message(s5c_xact, sess ? sess->pgw_s5c_teid : 0, OGS_GTP2_DELETE_BEARER_RESPONSE_TYPE, cause_value); return; }
View file
open5gs_2.7.0.128.30648.202404052026.tar.xz/src/sgwc/sxa-handler.c -> open5gs_2.7.0.128.8484a.202404062026.tar.xz/src/sgwc/sxa-handler.c
Changed
@@ -127,7 +127,7 @@ void sgwc_sxa_handle_session_establishment_response( sgwc_sess_t *sess, ogs_pfcp_xact_t *pfcp_xact, ogs_gtp2_message_t *recv_message, - ogs_pfcp_message_t *pfcp_message) + ogs_pfcp_session_establishment_response_t *pfcp_rsp) { int rv; uint8_t cause_value = 0; @@ -155,13 +155,11 @@ ogs_gtp2_indication_t *indication = NULL; - ogs_pfcp_session_establishment_response_t *pfcp_rsp = NULL; - ogs_debug("Session Establishment Response"); ogs_assert(pfcp_xact); + ogs_assert(pfcp_rsp); ogs_assert(recv_message); - ogs_assert(pfcp_message); create_session_request = &recv_message->create_session_request; ogs_assert(create_session_request); @@ -169,9 +167,6 @@ s11_xact = pfcp_xact->assoc_xact; ogs_assert(s11_xact); - pfcp_rsp = &pfcp_message->pfcp_session_establishment_response; - ogs_assert(pfcp_rsp); - ogs_pfcp_xact_commit(pfcp_xact); cause_value = OGS_GTP2_CAUSE_REQUEST_ACCEPTED; @@ -251,8 +246,7 @@ if (cause_value != OGS_GTP2_CAUSE_REQUEST_ACCEPTED) { if (sess) sgwc_ue = sess->sgwc_ue; ogs_gtp_send_error_message( - s11_xact, - sgwc_ue ? sgwc_ue->mme_s11_teid : recv_message->h.teid, + s11_xact, sgwc_ue ? sgwc_ue->mme_s11_teid : 0, OGS_GTP2_CREATE_SESSION_RESPONSE_TYPE, cause_value); return; } @@ -276,8 +270,7 @@ if (dl_tunnel->local_addr == NULL && dl_tunnel->local_addr6 == NULL) { ogs_error("No UP F-TEID"); ogs_gtp_send_error_message( - s11_xact, - sgwc_ue ? sgwc_ue->mme_s11_teid : recv_message->h.teid, + s11_xact, sgwc_ue ? sgwc_ue->mme_s11_teid : 0, OGS_GTP2_CREATE_SESSION_RESPONSE_TYPE, OGS_GTP2_CAUSE_GRE_KEY_NOT_FOUND); return; @@ -451,7 +444,7 @@ void sgwc_sxa_handle_session_modification_response( sgwc_sess_t *sess, ogs_pfcp_xact_t *pfcp_xact, ogs_gtp2_message_t *recv_message, - ogs_pfcp_message_t *pfcp_message) + ogs_pfcp_session_modification_response_t *pfcp_rsp) { int i, rv, len = 0; uint8_t cause_value = 0; @@ -470,19 +463,14 @@ ogs_gtp2_cause_t cause; - ogs_pfcp_session_modification_response_t *pfcp_rsp = NULL; - ogs_debug("Session Modification Response"); ogs_assert(pfcp_xact); - ogs_assert(pfcp_message); + ogs_assert(pfcp_rsp); flags = pfcp_xact->modify_flags; ogs_assert(flags); - pfcp_rsp = &pfcp_message->pfcp_session_modification_response; - ogs_assert(pfcp_rsp); - cause_value = OGS_GTP2_CAUSE_REQUEST_ACCEPTED; if (flags & OGS_PFCP_MODIFY_SESSION) { @@ -609,15 +597,12 @@ } else if (flags & OGS_PFCP_MODIFY_ACTIVATE) { - ogs_assert(recv_message); - if (flags & OGS_PFCP_MODIFY_UL_ONLY) { s11_xact = pfcp_xact->assoc_xact; ogs_assert(s11_xact); ogs_gtp_send_error_message( - s11_xact, - sgwc_ue ? sgwc_ue->mme_s11_teid : recv_message->h.teid, + s11_xact, sgwc_ue ? sgwc_ue->mme_s11_teid : 0, OGS_GTP2_CREATE_SESSION_RESPONSE_TYPE, cause_value); } else if (flags & OGS_PFCP_MODIFY_DL_ONLY) { @@ -625,26 +610,19 @@ ogs_assert(s11_xact); ogs_gtp_send_error_message( - s11_xact, - sgwc_ue ? sgwc_ue->mme_s11_teid : recv_message->h.teid, + s11_xact, sgwc_ue ? sgwc_ue->mme_s11_teid : 0, OGS_GTP2_MODIFY_BEARER_RESPONSE_TYPE, cause_value); } else { ogs_fatal("Invalid modify_flags0x%llx", (long long)flags); ogs_assert_if_reached(); } } else if (flags & OGS_PFCP_MODIFY_DEACTIVATE) { - if (flags & OGS_PFCP_MODIFY_ERROR_INDICATION) { - } else { - ogs_assert(recv_message); - - s11_xact = pfcp_xact->assoc_xact; - ogs_assert(s11_xact); + s11_xact = pfcp_xact->assoc_xact; + ogs_assert(s11_xact); - ogs_gtp_send_error_message( - s11_xact, - sgwc_ue ? sgwc_ue->mme_s11_teid : recv_message->h.teid, - OGS_GTP2_RELEASE_ACCESS_BEARERS_RESPONSE_TYPE, cause_value); - } + ogs_gtp_send_error_message( + s11_xact, sgwc_ue ? sgwc_ue->mme_s11_teid : 0, + OGS_GTP2_RELEASE_ACCESS_BEARERS_RESPONSE_TYPE, cause_value); } ogs_pfcp_xact_commit(pfcp_xact); @@ -1011,7 +989,6 @@ s11_xact = pfcp_xact->assoc_xact; ogs_assert(s11_xact); - ogs_assert(recv_message); ogs_list_copy(&bearer_to_modify_list, &pfcp_xact->bearer_to_modify_list); @@ -1025,6 +1002,7 @@ ogs_gtp2_f_teid_t sgw_s1u_teidOGS_BEARER_PER_UE; int sgw_s1u_lenOGS_BEARER_PER_UE; + ogs_assert(recv_message); gtp_rsp = &recv_message->create_session_response; ogs_assert(gtp_rsp); @@ -1093,6 +1071,7 @@ ogs_gtp2_indication_t *indication = NULL; + ogs_assert(recv_message); gtp_req = &recv_message->modify_bearer_request; ogs_assert(gtp_req); @@ -1231,7 +1210,6 @@ } else { s11_xact = pfcp_xact->assoc_xact; ogs_assert(s11_xact); - ogs_assert(recv_message); ogs_pfcp_xact_commit(pfcp_xact); @@ -1282,7 +1260,7 @@ void sgwc_sxa_handle_session_deletion_response( sgwc_sess_t *sess, ogs_pfcp_xact_t *pfcp_xact, ogs_gtp2_message_t *gtp_message, - ogs_pfcp_message_t *pfcp_message) + ogs_pfcp_session_deletion_response_t *pfcp_rsp) { int rv; uint8_t cause_value = 0; @@ -1293,14 +1271,9 @@ ogs_gtp_xact_t *gtp_xact = NULL; ogs_pkbuf_t *pkbuf = NULL; - ogs_pfcp_session_deletion_response_t *pfcp_rsp = NULL; - ogs_debug("Session Deletion Response"); ogs_assert(pfcp_xact); - ogs_assert(pfcp_message); - - pfcp_rsp = &pfcp_message->pfcp_session_deletion_response; ogs_assert(pfcp_rsp); cause_value = OGS_GTP2_CAUSE_REQUEST_ACCEPTED; @@ -1342,7 +1315,7 @@ * 2. SMF sends Delete Session Response to SGW/MME. */ if (sess) sgwc_ue = sess->sgwc_ue; - teid = sgwc_ue ? sgwc_ue->mme_s11_teid : gtp_message->h.teid; + teid = sgwc_ue ? sgwc_ue->mme_s11_teid : 0; break; case OGS_GTP2_DELETE_BEARER_RESPONSE_TYPE: /* @@ -1412,7 +1385,7 @@ void sgwc_sxa_handle_session_report_request( sgwc_sess_t *sess, ogs_pfcp_xact_t *pfcp_xact, - ogs_pfcp_message_t *pfcp_message) + ogs_pfcp_session_report_request_t *pfcp_req) { sgwc_ue_t *sgwc_ue = NULL; sgwc_bearer_t *bearer = NULL; @@ -1423,14 +1396,9 @@ uint8_t cause_value = 0; uint16_t pdr_id = 0; - ogs_pfcp_session_report_request_t *pfcp_req = NULL; - ogs_debug("Session Report Request"); ogs_assert(pfcp_xact); - ogs_assert(pfcp_message); - - pfcp_req = &pfcp_message->pfcp_session_report_request; ogs_assert(pfcp_req); cause_value = OGS_GTP2_CAUSE_REQUEST_ACCEPTED; @@ -1451,8 +1419,7 @@ } if (cause_value != OGS_GTP2_CAUSE_REQUEST_ACCEPTED) { - ogs_pfcp_send_error_message( - pfcp_xact, sess ? sess->sgwu_sxa_seid : pfcp_message->h.seid, + ogs_pfcp_send_error_message(pfcp_xact, 0, OGS_PFCP_SESSION_REPORT_RESPONSE_TYPE, cause_value, 0); return; @@ -1464,8 +1431,7 @@ if (!sgwc_ue->gnode) { ogs_error("No SGWC-UE GTP Node"); - ogs_pfcp_send_error_message( - pfcp_xact, sess ? sess->sgwu_sxa_seid : pfcp_message->h.seid, + ogs_pfcp_send_error_message(pfcp_xact, sess ? sess->sgwu_sxa_seid : 0, OGS_PFCP_SESSION_REPORT_RESPONSE_TYPE, OGS_PFCP_CAUSE_SESSION_CONTEXT_NOT_FOUND, 0); return;
View file
open5gs_2.7.0.128.30648.202404052026.tar.xz/src/sgwc/sxa-handler.h -> open5gs_2.7.0.128.8484a.202404062026.tar.xz/src/sgwc/sxa-handler.h
Changed
@@ -29,18 +29,18 @@ void sgwc_sxa_handle_session_establishment_response( sgwc_sess_t *sess, ogs_pfcp_xact_t *pfcp_xact, ogs_gtp2_message_t *recv_message, - ogs_pfcp_message_t *pfcp_message); + ogs_pfcp_session_establishment_response_t *pfcp_rsp); void sgwc_sxa_handle_session_modification_response( sgwc_sess_t *sess, ogs_pfcp_xact_t *pfcp_xact, ogs_gtp2_message_t *recv_message, - ogs_pfcp_message_t *pfcp_message); + ogs_pfcp_session_modification_response_t *pfcp_rsp); void sgwc_sxa_handle_session_deletion_response( sgwc_sess_t *sess, ogs_pfcp_xact_t *pfcp_xact, ogs_gtp2_message_t *gtp_message, - ogs_pfcp_message_t *pfcp_message); + ogs_pfcp_session_deletion_response_t *pfcp_rsp); void sgwc_sxa_handle_session_report_request( sgwc_sess_t *sess, ogs_pfcp_xact_t *pfcp_xact, - ogs_pfcp_message_t *pfcp_message); + ogs_pfcp_session_report_request_t *pfcp_req); #ifdef __cplusplus }
View file
open5gs_2.7.0.128.30648.202404052026.tar.xz/src/sgwu/pfcp-sm.c -> open5gs_2.7.0.128.8484a.202404062026.tar.xz/src/sgwu/pfcp-sm.c
Changed
@@ -280,16 +280,20 @@ sess = sgwu_sess_add_by_message(message); if (sess) OGS_SETUP_PFCP_NODE(sess, node); - sgwu_sxa_handle_session_establishment_request(sess, xact, message); + sgwu_sxa_handle_session_establishment_request( + sess, xact, &message->pfcp_session_establishment_request); break; case OGS_PFCP_SESSION_MODIFICATION_REQUEST_TYPE: - sgwu_sxa_handle_session_modification_request(sess, xact, message); + sgwu_sxa_handle_session_modification_request( + sess, xact, &message->pfcp_session_modification_request); break; case OGS_PFCP_SESSION_DELETION_REQUEST_TYPE: - sgwu_sxa_handle_session_deletion_request(sess, xact, message); + sgwu_sxa_handle_session_deletion_request( + sess, xact, &message->pfcp_session_deletion_request); break; case OGS_PFCP_SESSION_REPORT_RESPONSE_TYPE: - sgwu_sxa_handle_session_report_response(sess, xact, message); + sgwu_sxa_handle_session_report_response( + sess, xact, &message->pfcp_session_report_response); break; default: ogs_error("Not implemented PFCP message type%d",
View file
open5gs_2.7.0.128.30648.202404052026.tar.xz/src/sgwu/sxa-handler.c -> open5gs_2.7.0.128.8484a.202404062026.tar.xz/src/sgwu/sxa-handler.c
Changed
@@ -22,7 +22,8 @@ #include "sxa-handler.h" void sgwu_sxa_handle_session_establishment_request( - sgwu_sess_t *sess, ogs_pfcp_xact_t *xact, ogs_pfcp_message_t *message) + sgwu_sess_t *sess, ogs_pfcp_xact_t *xact, + ogs_pfcp_session_establishment_request_t *req) { ogs_pfcp_pdr_t *pdr = NULL; ogs_pfcp_far_t *far = NULL; @@ -35,11 +36,7 @@ ogs_pfcp_sereq_flags_t sereq_flags; bool restoration_indication = false; - ogs_pfcp_session_establishment_request_t *req = NULL; - ogs_assert(xact); - ogs_assert(message); - req = &message->pfcp_session_establishment_request; ogs_assert(req); ogs_debug("Session Establishment Request"); @@ -48,8 +45,7 @@ if (!sess) { ogs_error("No Context"); - ogs_pfcp_send_error_message( - xact, sess ? sess->sgwc_sxa_f_seid.seid : message->h.seid, + ogs_pfcp_send_error_message(xact, 0, OGS_PFCP_SESSION_ESTABLISHMENT_RESPONSE_TYPE, OGS_PFCP_CAUSE_MANDATORY_IE_MISSING, 0); return; @@ -146,14 +142,14 @@ cleanup: ogs_pfcp_sess_clear(&sess->pfcp); - ogs_pfcp_send_error_message( - xact, sess ? sess->sgwc_sxa_f_seid.seid : message->h.seid, + ogs_pfcp_send_error_message(xact, sess ? sess->sgwu_sxa_seid : 0, OGS_PFCP_SESSION_ESTABLISHMENT_RESPONSE_TYPE, cause_value, offending_ie_value); } void sgwu_sxa_handle_session_modification_request( - sgwu_sess_t *sess, ogs_pfcp_xact_t *xact, ogs_pfcp_message_t *message) + sgwu_sess_t *sess, ogs_pfcp_xact_t *xact, + ogs_pfcp_session_modification_request_t *req) { ogs_pfcp_pdr_t *pdr = NULL; ogs_pfcp_far_t *far = NULL; @@ -163,11 +159,7 @@ uint8_t offending_ie_value = 0; int i; - ogs_pfcp_session_modification_request_t *req = NULL; - ogs_assert(xact); - ogs_assert(message); - req = &message->pfcp_session_modification_request; ogs_assert(req); ogs_debug("Session Modification Request"); @@ -176,8 +168,7 @@ if (!sess) { ogs_error("No Context"); - ogs_pfcp_send_error_message( - xact, sess ? sess->sgwc_sxa_f_seid.seid : message->h.seid, + ogs_pfcp_send_error_message(xact, 0, OGS_PFCP_SESSION_MODIFICATION_RESPONSE_TYPE, OGS_PFCP_CAUSE_SESSION_CONTEXT_NOT_FOUND, 0); return; @@ -318,28 +309,23 @@ cleanup: ogs_pfcp_sess_clear(&sess->pfcp); - ogs_pfcp_send_error_message( - xact, sess ? sess->sgwc_sxa_f_seid.seid : message->h.seid, + ogs_pfcp_send_error_message(xact, sess ? sess->sgwu_sxa_seid : 0, OGS_PFCP_SESSION_MODIFICATION_RESPONSE_TYPE, cause_value, offending_ie_value); } void sgwu_sxa_handle_session_deletion_request( - sgwu_sess_t *sess, ogs_pfcp_xact_t *xact, ogs_pfcp_message_t *message) + sgwu_sess_t *sess, ogs_pfcp_xact_t *xact, + ogs_pfcp_session_deletion_request_t *req) { - ogs_pfcp_session_deletion_request_t *req = NULL; - ogs_assert(xact); - ogs_assert(message); - req = &message->pfcp_session_deletion_request; ogs_assert(req); ogs_debug("Session Deletion Request"); if (!sess) { ogs_error("No Context"); - ogs_pfcp_send_error_message( - xact, sess ? sess->sgwc_sxa_f_seid.seid : message->h.seid, + ogs_pfcp_send_error_message(xact, 0, OGS_PFCP_SESSION_DELETION_RESPONSE_TYPE, OGS_PFCP_CAUSE_SESSION_CONTEXT_NOT_FOUND, 0); return; @@ -353,15 +339,12 @@ } void sgwu_sxa_handle_session_report_response( - sgwu_sess_t *sess, ogs_pfcp_xact_t *xact, ogs_pfcp_message_t *message) + sgwu_sess_t *sess, ogs_pfcp_xact_t *xact, + ogs_pfcp_session_report_response_t *rsp) { uint8_t cause_value = 0; - ogs_pfcp_session_report_response_t *rsp = NULL; - ogs_assert(xact); - ogs_assert(message); - rsp = &message->pfcp_session_report_response; ogs_assert(rsp); ogs_pfcp_xact_commit(xact);
View file
open5gs_2.7.0.128.30648.202404052026.tar.xz/src/sgwu/sxa-handler.h -> open5gs_2.7.0.128.8484a.202404062026.tar.xz/src/sgwu/sxa-handler.h
Changed
@@ -27,14 +27,18 @@ #endif void sgwu_sxa_handle_session_establishment_request( - sgwu_sess_t *sess, ogs_pfcp_xact_t *xact, ogs_pfcp_message_t *message); + sgwu_sess_t *sess, ogs_pfcp_xact_t *xact, + ogs_pfcp_session_establishment_request_t *req); void sgwu_sxa_handle_session_modification_request( - sgwu_sess_t *sess, ogs_pfcp_xact_t *xact, ogs_pfcp_message_t *message); + sgwu_sess_t *sess, ogs_pfcp_xact_t *xact, + ogs_pfcp_session_modification_request_t *req); void sgwu_sxa_handle_session_deletion_request( - sgwu_sess_t *sess, ogs_pfcp_xact_t *xact, ogs_pfcp_message_t *message); + sgwu_sess_t *sess, ogs_pfcp_xact_t *xact, + ogs_pfcp_session_deletion_request_t *req); void sgwu_sxa_handle_session_report_response( - sgwu_sess_t *sess, ogs_pfcp_xact_t *xact, ogs_pfcp_message_t *message); + sgwu_sess_t *sess, ogs_pfcp_xact_t *xact, + ogs_pfcp_session_report_response_t *rsp); #ifdef __cplusplus }
View file
open5gs_2.7.0.128.30648.202404052026.tar.xz/src/smf/gsm-sm.c -> open5gs_2.7.0.128.8484a.202404062026.tar.xz/src/smf/gsm-sm.c
Changed
@@ -218,7 +218,8 @@ switch(gtp2_message->h.type) { case OGS_GTP2_CREATE_SESSION_REQUEST_TYPE: gtp2_cause = smf_s5c_handle_create_session_request(sess, - e->gtp_xact, gtp2_message); + e->gtp_xact, + &e->gtp2_message->create_session_request); if (gtp2_cause != OGS_GTP2_CAUSE_REQUEST_ACCEPTED) { send_gtp_create_err_msg(sess, e->gtp_xact, gtp2_cause); return; @@ -620,7 +621,8 @@ ogs_assert(gtp_xact); pfcp_cause = smf_epc_n4_handle_session_establishment_response( - sess, pfcp_xact, pfcp_message); + sess, pfcp_xact, + &pfcp_message->pfcp_session_establishment_response); if (pfcp_cause != OGS_PFCP_CAUSE_REQUEST_ACCEPTED) { /* FIXME: tear down Gy and Gx */ gtp_cause = gtp_cause_from_pfcp( @@ -669,7 +671,8 @@ smf_bearer_binding(sess); } else { pfcp_cause = smf_5gc_n4_handle_session_establishment_response( - sess, pfcp_xact, pfcp_message); + sess, pfcp_xact, + &pfcp_message->pfcp_session_establishment_response); if (pfcp_cause != OGS_PFCP_CAUSE_REQUEST_ACCEPTED) { OGS_FSM_TRAN(s, smf_gsm_state_5gc_n1_n2_reject); return; @@ -781,7 +784,8 @@ switch(gtp2_message->h.type) { case OGS_GTP2_DELETE_SESSION_REQUEST_TYPE: gtp2_cause = smf_s5c_handle_delete_session_request( - sess, e->gtp_xact, gtp2_message); + sess, e->gtp_xact, + >p2_message->delete_session_request); if (gtp2_cause != OGS_GTP2_CAUSE_REQUEST_ACCEPTED) { ogs_gtp2_send_error_message(e->gtp_xact, sess->sgw_s5c_teid, OGS_GTP2_DELETE_SESSION_RESPONSE_TYPE, gtp2_cause); @@ -791,7 +795,7 @@ break; case OGS_GTP2_DELETE_BEARER_RESPONSE_TYPE: release = smf_s5c_handle_delete_bearer_response( - sess, e->gtp_xact, gtp2_message); + sess, e->gtp_xact, &e->gtp2_message->delete_bearer_response); if (release) { e->gtp_xact = NULL; OGS_FSM_TRAN(s, smf_gsm_state_wait_pfcp_deletion); @@ -1306,7 +1310,8 @@ gtp_xact = pfcp_xact->assoc_xact; pfcp_cause = smf_epc_n4_handle_session_deletion_response( - sess, pfcp_xact, pfcp_message); + sess, pfcp_xact, + &pfcp_message->pfcp_session_deletion_response); if (pfcp_cause != OGS_PFCP_CAUSE_REQUEST_ACCEPTED) { /* FIXME: tear down Gy and Gx */ ogs_assert(gtp_xact); @@ -1329,7 +1334,8 @@ ogs_pfcp_xact_commit(pfcp_xact); status = smf_5gc_n4_handle_session_deletion_response( - sess, stream, trigger, pfcp_message); + sess, stream, trigger, + &pfcp_message->pfcp_session_deletion_response); if (status != OGS_SBI_HTTP_STATUS_OK) { ogs_error( "%d smf_5gc_n4_handle_session_deletion_response() "
View file
open5gs_2.7.0.128.30648.202404052026.tar.xz/src/smf/n4-handler.c -> open5gs_2.7.0.128.8484a.202404062026.tar.xz/src/smf/n4-handler.c
Changed
@@ -144,7 +144,7 @@ * other cause value on failure */ uint8_t smf_5gc_n4_handle_session_establishment_response( smf_sess_t *sess, ogs_pfcp_xact_t *xact, - ogs_pfcp_message_t *pfcp_message) + ogs_pfcp_session_establishment_response_t *rsp) { int i; @@ -156,12 +156,8 @@ ogs_pfcp_pdr_t *pdr = NULL; ogs_pfcp_far_t *far = NULL; - ogs_pfcp_session_establishment_response_t *rsp = NULL; - ogs_assert(sess); ogs_assert(xact); - ogs_assert(pfcp_message); - rsp = &pfcp_message->pfcp_session_establishment_response; ogs_assert(rsp); ogs_debug("Session Establishment Response 5gc"); @@ -244,22 +240,18 @@ void smf_5gc_n4_handle_session_modification_response( smf_sess_t *sess, ogs_pfcp_xact_t *xact, - ogs_pfcp_message_t *pfcp_message) + ogs_pfcp_session_modification_response_t *rsp) { int status = 0; uint64_t flags = 0; ogs_sbi_stream_t *stream = NULL; smf_bearer_t *qos_flow = NULL; - ogs_pfcp_session_modification_response_t *rsp = NULL; - OGS_LIST(pdr_to_create_list); ogs_debug("Session Modification Response 5gc"); ogs_assert(xact); - ogs_assert(pfcp_message); - rsp = &pfcp_message->pfcp_session_modification_response; ogs_assert(rsp); flags = xact->modify_flags; @@ -673,16 +665,12 @@ int smf_5gc_n4_handle_session_deletion_response( smf_sess_t *sess, ogs_sbi_stream_t *stream, int trigger, - ogs_pfcp_message_t *pfcp_message) + ogs_pfcp_session_deletion_response_t *rsp) { int status = 0; - ogs_pfcp_session_deletion_response_t *rsp = NULL; - ogs_debug("Session Deletion Response 5gc"); - ogs_assert(pfcp_message); - rsp = &pfcp_message->pfcp_session_deletion_response; ogs_assert(rsp); ogs_assert(trigger); @@ -737,7 +725,7 @@ * other cause value on failure */ uint8_t smf_epc_n4_handle_session_establishment_response( smf_sess_t *sess, ogs_pfcp_xact_t *xact, - ogs_pfcp_message_t *pfcp_message) + ogs_pfcp_session_establishment_response_t *rsp) { uint8_t cause_value = OGS_PFCP_CAUSE_REQUEST_ACCEPTED; @@ -745,12 +733,8 @@ ogs_pfcp_f_seid_t *up_f_seid = NULL; - ogs_pfcp_session_establishment_response_t *rsp = NULL; - ogs_assert(sess); ogs_assert(xact); - ogs_assert(pfcp_message); - rsp = &pfcp_message->pfcp_session_establishment_response; ogs_assert(rsp); ogs_debug("Session Establishment Response epc"); @@ -844,7 +828,7 @@ void smf_epc_n4_handle_session_modification_response( smf_sess_t *sess, ogs_pfcp_xact_t *xact, ogs_gtp2_message_t *recv_message, - ogs_pfcp_message_t *pfcp_message) + ogs_pfcp_session_modification_response_t *rsp) { int i; @@ -860,13 +844,9 @@ ogs_pfcp_pdr_t *pdr = NULL; ogs_pfcp_far_t *far = NULL; - ogs_pfcp_session_modification_response_t *rsp = NULL; - OGS_LIST(pdr_to_create_list); ogs_assert(xact); - ogs_assert(pfcp_message); - rsp = &pfcp_message->pfcp_session_modification_response; ogs_assert(rsp); ogs_debug("Session Modification Response epc"); @@ -1113,17 +1093,13 @@ uint8_t smf_epc_n4_handle_session_deletion_response( smf_sess_t *sess, ogs_pfcp_xact_t *xact, - ogs_pfcp_message_t *pfcp_message) + ogs_pfcp_session_deletion_response_t *rsp) { smf_bearer_t *bearer = NULL; unsigned int i; - ogs_pfcp_session_deletion_response_t *rsp = NULL; - ogs_assert(sess); ogs_assert(xact); - ogs_assert(pfcp_message); - rsp = &pfcp_message->pfcp_session_deletion_response; ogs_assert(rsp); ogs_debug("Session Deletion Response epc"); @@ -1173,7 +1149,7 @@ void smf_n4_handle_session_report_request( smf_sess_t *sess, ogs_pfcp_xact_t *pfcp_xact, - ogs_pfcp_message_t *pfcp_message) + ogs_pfcp_session_report_request_t *pfcp_req) { smf_ue_t *smf_ue = NULL; smf_bearer_t *qos_flow = NULL; @@ -1186,13 +1162,9 @@ uint16_t pdr_id = 0; unsigned int i; - ogs_pfcp_session_report_request_t *pfcp_req = NULL; - smf_metrics_inst_global_inc(SMF_METR_GLOB_CTR_SM_N4SESSIONREPORT); ogs_assert(pfcp_xact); - ogs_assert(pfcp_message); - pfcp_req = &pfcp_message->pfcp_session_report_request; ogs_assert(pfcp_req); ogs_debug("Session Report Request"); @@ -1210,8 +1182,7 @@ } if (cause_value != OGS_PFCP_CAUSE_REQUEST_ACCEPTED) { - ogs_pfcp_send_error_message(pfcp_xact, - sess ? sess->upf_n4_seid : pfcp_message->h.seid, + ogs_pfcp_send_error_message(pfcp_xact, 0, OGS_PFCP_SESSION_REPORT_RESPONSE_TYPE, cause_value, 0); return; @@ -1251,8 +1222,7 @@ if (paging_policy_indication_value) { ogs_warn("Not implement - " "Paging Policy Indication Value"); - ogs_pfcp_send_error_message(pfcp_xact, - sess ? sess->upf_n4_seid : pfcp_message->h.seid, + ogs_pfcp_send_error_message(pfcp_xact, 0, OGS_PFCP_SESSION_REPORT_RESPONSE_TYPE, OGS_PFCP_CAUSE_SERVICE_NOT_SUPPORTED, 0); return; @@ -1262,8 +1232,7 @@ qos_flow = smf_qos_flow_find_by_qfi(sess, qfi); if (!qos_flow) { ogs_error("Cannot find the QoS Flow%d", qfi); - ogs_pfcp_send_error_message(pfcp_xact, - sess ? sess->upf_n4_seid : pfcp_message->h.seid, + ogs_pfcp_send_error_message(pfcp_xact, 0, OGS_PFCP_SESSION_REPORT_RESPONSE_TYPE, OGS_PFCP_CAUSE_SESSION_CONTEXT_NOT_FOUND, 0); return; @@ -1288,8 +1257,7 @@ if (!pdr) { ogs_error("No Context"); - ogs_pfcp_send_error_message(pfcp_xact, - sess ? sess->upf_n4_seid : pfcp_message->h.seid, + ogs_pfcp_send_error_message(pfcp_xact, 0, OGS_PFCP_SESSION_REPORT_RESPONSE_TYPE, OGS_PFCP_CAUSE_SESSION_CONTEXT_NOT_FOUND, 0); return;
View file
open5gs_2.7.0.128.30648.202404052026.tar.xz/src/smf/n4-handler.h -> open5gs_2.7.0.128.8484a.202404062026.tar.xz/src/smf/n4-handler.h
Changed
@@ -28,28 +28,28 @@ uint8_t smf_5gc_n4_handle_session_establishment_response( smf_sess_t *sess, ogs_pfcp_xact_t *xact, - ogs_pfcp_message_t *pfcp_message); + ogs_pfcp_session_establishment_response_t *rsp); void smf_5gc_n4_handle_session_modification_response( smf_sess_t *sess, ogs_pfcp_xact_t *xact, - ogs_pfcp_message_t *pfcp_message); + ogs_pfcp_session_modification_response_t *rsp); int smf_5gc_n4_handle_session_deletion_response( smf_sess_t *sess, ogs_sbi_stream_t *stream, int trigger, - ogs_pfcp_message_t *pfcp_message); + ogs_pfcp_session_deletion_response_t *rsp); uint8_t smf_epc_n4_handle_session_establishment_response( smf_sess_t *sess, ogs_pfcp_xact_t *xact, - ogs_pfcp_message_t *pfcp_message); + ogs_pfcp_session_establishment_response_t *rsp); void smf_epc_n4_handle_session_modification_response( smf_sess_t *sess, ogs_pfcp_xact_t *xact, ogs_gtp2_message_t *recv_message, - ogs_pfcp_message_t *pfcp_message); + ogs_pfcp_session_modification_response_t *rsp); uint8_t smf_epc_n4_handle_session_deletion_response( smf_sess_t *sess, ogs_pfcp_xact_t *xact, - ogs_pfcp_message_t *pfcp_message); + ogs_pfcp_session_deletion_response_t *rsp); void smf_n4_handle_session_report_request( smf_sess_t *sess, ogs_pfcp_xact_t *pfcp_xact, - ogs_pfcp_message_t *pfcp_message); + ogs_pfcp_session_report_request_t *pfcp_req); uint8_t gtp_cause_from_pfcp(uint8_t pfcp_cause, uint8_t gtp_version);
View file
open5gs_2.7.0.128.30648.202404052026.tar.xz/src/smf/pfcp-sm.c -> open5gs_2.7.0.128.8484a.202404062026.tar.xz/src/smf/pfcp-sm.c
Changed
@@ -337,10 +337,11 @@ if (xact->epc) smf_epc_n4_handle_session_modification_response( - sess, xact, e->gtp2_message, message); + sess, xact, e->gtp2_message, + &message->pfcp_session_modification_response); else smf_5gc_n4_handle_session_modification_response( - sess, xact, message); + sess, xact, &message->pfcp_session_modification_response); break; case OGS_PFCP_SESSION_DELETION_RESPONSE_TYPE: @@ -370,7 +371,7 @@ if (!message->h.seid_presence) ogs_error("No SEID"); smf_n4_handle_session_report_request( - sess, xact, message); + sess, xact, &message->pfcp_session_report_request); break; default:
View file
open5gs_2.7.0.128.30648.202404052026.tar.xz/src/smf/s5c-handler.c -> open5gs_2.7.0.128.8484a.202404062026.tar.xz/src/smf/s5c-handler.c
Changed
@@ -70,7 +70,7 @@ uint8_t smf_s5c_handle_create_session_request( smf_sess_t *sess, ogs_gtp_xact_t *xact, - ogs_gtp2_message_t *gtp2_message) + ogs_gtp2_create_session_request_t *req) { char buf1OGS_ADDRSTRLEN; char buf2OGS_ADDRSTRLEN; @@ -89,11 +89,8 @@ ogs_gtp2_ambr_t *ambr = NULL; uint16_t decoded = 0; - ogs_gtp2_create_session_request_t *req = NULL; - ogs_assert(sess); ogs_assert(xact); - req = >p2_message->create_session_request; ogs_assert(req); ogs_debug("Create Session Request"); @@ -107,18 +104,7 @@ if (req->sender_f_teid_for_control_plane.presence == 0) { ogs_error("No TEID"); cause_value = OGS_GTP2_CAUSE_MANDATORY_IE_MISSING; - } else { - /* Control Plane(DL) : SGW-S5C */ - sgw_s5c_teid = req->sender_f_teid_for_control_plane.data; - ogs_assert(sgw_s5c_teid); - sess->sgw_s5c_teid = be32toh(sgw_s5c_teid->teid); - rv = ogs_gtp2_f_teid_to_ip(sgw_s5c_teid, &sess->sgw_s5c_ip); - ogs_assert(rv == OGS_OK); - - ogs_debug(" SGW_S5C_TEID0x%x SMF_N4_TEID0x%x", - sess->sgw_s5c_teid, sess->smf_n4_teid); } - if (req->bearer_contexts_to_be_created0.presence == 0) { ogs_error("No Bearer"); cause_value = OGS_GTP2_CAUSE_MANDATORY_IE_MISSING; @@ -292,6 +278,17 @@ sess->ipv4 ? OGS_INET_NTOP(&sess->ipv4->addr, buf1) : "", sess->ipv6 ? OGS_INET6_NTOP(&sess->ipv6->addr, buf2) : ""); + /* Control Plane(DL) : SGW-S5C */ + sgw_s5c_teid = req->sender_f_teid_for_control_plane.data; + ogs_assert(sgw_s5c_teid); + /* sess->sgw_s5c_teid has already been updated in SMF-SM */ + ogs_assert(sess->sgw_s5c_teid == be32toh(sgw_s5c_teid->teid)); + rv = ogs_gtp2_f_teid_to_ip(sgw_s5c_teid, &sess->sgw_s5c_ip); + ogs_assert(rv == OGS_OK); + + ogs_debug(" SGW_S5C_TEID0x%x SMF_N4_TEID0x%x", + sess->sgw_s5c_teid, sess->smf_n4_teid); + /* Remove all previous bearer */ smf_bearer_remove_all(sess); @@ -426,14 +423,11 @@ uint8_t smf_s5c_handle_delete_session_request( smf_sess_t *sess, ogs_gtp_xact_t *xact, - ogs_gtp2_message_t *gtp2_message) + ogs_gtp2_delete_session_request_t *req) { - ogs_gtp2_delete_session_request_t *req = NULL; - ogs_debug("Delete Session Request"); ogs_assert(xact); - req = >p2_message->delete_session_request; ogs_assert(req); if (!ogs_diam_app_connected(OGS_DIAM_GX_APPLICATION_ID)) { @@ -486,7 +480,8 @@ void smf_s5c_handle_modify_bearer_request( smf_sess_t *sess, ogs_gtp_xact_t *gtp_xact, - ogs_pkbuf_t *gtpbuf, ogs_gtp2_message_t *gtp2_message) + ogs_pkbuf_t *gtpbuf, ogs_gtp2_modify_bearer_request_t *req, + ogs_gtp2_sender_f_teid_t *sender_f_teid) { int rv, i; uint8_t cause_value = 0; @@ -495,14 +490,11 @@ smf_ue_t *smf_ue = NULL; smf_bearer_t *bearer = NULL; - ogs_gtp2_modify_bearer_request_t *req = NULL; - ogs_debug("Modify Bearer Request"); ogs_assert(gtp_xact); - ogs_assert(gtp2_message); - req = >p2_message->modify_bearer_request; ogs_assert(req); + ogs_assert(sender_f_teid); /************************ * Check Session Context @@ -516,7 +508,9 @@ if (cause_value != OGS_GTP2_CAUSE_REQUEST_ACCEPTED) { ogs_gtp2_send_error_message(gtp_xact, - sess ? sess->sgw_s5c_teid : gtp2_message->h.teid, + sess ? sess->sgw_s5c_teid : + sender_f_teid->teid_presence == true ? + sender_f_teid->teid : 0, OGS_GTP2_MODIFY_BEARER_RESPONSE_TYPE, cause_value); return; } @@ -660,7 +654,7 @@ void smf_s5c_handle_create_bearer_response( smf_sess_t *sess, ogs_gtp_xact_t *xact, - ogs_gtp2_message_t *gtp2_message) + ogs_gtp2_create_bearer_response_t *rsp) { int rv; uint8_t cause_value; @@ -669,10 +663,7 @@ smf_bearer_t *bearer = NULL; ogs_pfcp_far_t *dl_far = NULL; - ogs_gtp2_create_bearer_response_t *rsp = NULL; - ogs_assert(sess); - rsp = >p2_message->create_bearer_response; ogs_assert(rsp); ogs_debug("Create Bearer Response"); @@ -837,7 +828,7 @@ void smf_s5c_handle_update_bearer_response( smf_sess_t *sess, ogs_gtp_xact_t *xact, - ogs_gtp2_message_t *gtp2_message) + ogs_gtp2_update_bearer_response_t *rsp) { int rv; uint8_t cause_value; @@ -846,10 +837,7 @@ uint64_t pfcp_flags = 0; smf_bearer_t *bearer = NULL; - ogs_gtp2_update_bearer_response_t *rsp = NULL; - ogs_assert(sess); - rsp = >p2_message->update_bearer_response; ogs_assert(rsp); ogs_debug("Update Bearer Response"); @@ -947,16 +935,13 @@ /* return true if entire session must be released */ bool smf_s5c_handle_delete_bearer_response( smf_sess_t *sess, ogs_gtp_xact_t *xact, - ogs_gtp2_message_t *gtp2_message) + ogs_gtp2_delete_bearer_response_t *rsp) { int rv; uint8_t cause_value; smf_bearer_t *bearer = NULL; - ogs_gtp2_delete_bearer_response_t *rsp = NULL; - ogs_assert(sess); - rsp = >p2_message->delete_bearer_response; ogs_assert(rsp); ogs_debug("Delete Bearer Response"); @@ -1153,7 +1138,8 @@ void smf_s5c_handle_bearer_resource_command( smf_sess_t *sess, ogs_gtp_xact_t *xact, - ogs_gtp2_message_t *gtp2_message) + ogs_gtp2_bearer_resource_command_t *cmd, + ogs_gtp2_sender_f_teid_t *sender_f_teid) { int rv; uint8_t cause_value = 0; @@ -1172,12 +1158,9 @@ int qos_update = 0; int tft_delete = 0; - ogs_gtp2_bearer_resource_command_t *cmd = NULL; - ogs_assert(xact); - ogs_assert(gtp2_message); - cmd = >p2_message->bearer_resource_command; ogs_assert(cmd); + ogs_assert(sender_f_teid); ogs_debug("Bearer Resource Command"); @@ -1212,7 +1195,9 @@ if (cause_value != OGS_GTP2_CAUSE_REQUEST_ACCEPTED) { ogs_gtp2_send_error_message(xact, - sess ? sess->sgw_s5c_teid : gtp2_message->h.teid, + sess ? sess->sgw_s5c_teid : + sender_f_teid->teid_presence == true ? + sender_f_teid->teid : 0, OGS_GTP2_BEARER_RESOURCE_FAILURE_INDICATION_TYPE, cause_value); return; } @@ -1237,8 +1222,7 @@ } if (cause_value != OGS_GTP2_CAUSE_REQUEST_ACCEPTED) { - ogs_gtp2_send_error_message(xact, - sess ? sess->sgw_s5c_teid : gtp2_message->h.teid, + ogs_gtp2_send_error_message(xact, sess ? sess->sgw_s5c_teid : 0, OGS_GTP2_BEARER_RESOURCE_FAILURE_INDICATION_TYPE, cause_value); return; } @@ -1268,7 +1252,7 @@ if (pf) { if (reconfigure_packet_filter(pf, &tft, i) < 0) { ogs_gtp2_send_error_message( - xact, sess ? sess->sgw_s5c_teid : gtp2_message->h.teid, + xact, sess ? sess->sgw_s5c_teid : 0, OGS_GTP2_BEARER_RESOURCE_FAILURE_INDICATION_TYPE, OGS_GTP2_CAUSE_SEMANTIC_ERRORS_IN_PACKET_FILTER); return; @@ -1337,7 +1321,7 @@ if (reconfigure_packet_filter(pf, &tft, i) < 0) { ogs_gtp2_send_error_message( - xact, sess ? sess->sgw_s5c_teid : gtp2_message->h.teid, + xact, sess ? sess->sgw_s5c_teid : 0, OGS_GTP2_BEARER_RESOURCE_FAILURE_INDICATION_TYPE, OGS_GTP2_CAUSE_SEMANTIC_ERRORS_IN_PACKET_FILTER); return; @@ -1423,8 +1407,7 @@ if (tft_update == 0 && tft_delete == 0 && qos_update == 0) { /* No modification */ - ogs_gtp2_send_error_message(xact, - sess ? sess->sgw_s5c_teid : gtp2_message->h.teid, + ogs_gtp2_send_error_message(xact, sess ? sess->sgw_s5c_teid : 0, OGS_GTP2_BEARER_RESOURCE_FAILURE_INDICATION_TYPE, OGS_GTP2_CAUSE_SERVICE_NOT_SUPPORTED); return;
View file
open5gs_2.7.0.128.30648.202404052026.tar.xz/src/smf/s5c-handler.h -> open5gs_2.7.0.128.8484a.202404062026.tar.xz/src/smf/s5c-handler.h
Changed
@@ -33,25 +33,27 @@ uint8_t smf_s5c_handle_create_session_request( smf_sess_t *sess, ogs_gtp_xact_t *xact, - ogs_gtp2_message_t *gtp2_message); + ogs_gtp2_create_session_request_t *req); uint8_t smf_s5c_handle_delete_session_request( smf_sess_t *sess, ogs_gtp_xact_t *xact, - ogs_gtp2_message_t *gtp2_message); + ogs_gtp2_delete_session_request_t *req); void smf_s5c_handle_modify_bearer_request( smf_sess_t *sess, ogs_gtp_xact_t *xact, - ogs_pkbuf_t *gtpbuf, ogs_gtp2_message_t *gtp2_message); + ogs_pkbuf_t *gtpbuf, ogs_gtp2_modify_bearer_request_t *req, + ogs_gtp2_sender_f_teid_t *sender_f_teid); void smf_s5c_handle_create_bearer_response( smf_sess_t *sess, ogs_gtp_xact_t *xact, - ogs_gtp2_message_t *gtp2_message); + ogs_gtp2_create_bearer_response_t *rsp); void smf_s5c_handle_update_bearer_response( smf_sess_t *sess, ogs_gtp_xact_t *xact, - ogs_gtp2_message_t *gtp2_message); + ogs_gtp2_update_bearer_response_t *rsp); bool smf_s5c_handle_delete_bearer_response( smf_sess_t *sess, ogs_gtp_xact_t *xact, - ogs_gtp2_message_t *gtp2_message); + ogs_gtp2_delete_bearer_response_t *rsp); void smf_s5c_handle_bearer_resource_command( smf_sess_t *sess, ogs_gtp_xact_t *xact, - ogs_gtp2_message_t *gtp2_message); + ogs_gtp2_bearer_resource_command_t *cmd, + ogs_gtp2_sender_f_teid_t *sender_f_teid); #ifdef __cplusplus }
View file
open5gs_2.7.0.128.30648.202404052026.tar.xz/src/smf/smf-sm.c -> open5gs_2.7.0.128.8484a.202404062026.tar.xz/src/smf/smf-sm.c
Changed
@@ -58,6 +58,7 @@ ogs_gtp_xact_t *gtp_xact = NULL; ogs_gtp2_message_t gtp2_message; + ogs_gtp2_sender_f_teid_t gtp2_sender_f_teid; ogs_gtp1_message_t gtp1_message; ogs_diam_gx_message_t *gx_message = NULL; @@ -108,6 +109,8 @@ } e->gtp2_message = >p2_message; + ogs_gtp2_sender_f_teid(>p2_sender_f_teid, >p2_message); + rv = ogs_gtp_xact_receive(smf_gnode->gnode, >p2_message.h, >p_xact); if (rv != OGS_OK) { ogs_pkbuf_free(recvbuf); @@ -144,11 +147,21 @@ } if (!sess) { ogs_error("No Session"); - ogs_gtp2_send_error_message(gtp_xact, gtp2_message.h.teid, + ogs_gtp2_send_error_message(gtp_xact, + gtp2_sender_f_teid.teid_presence == true ? + gtp2_sender_f_teid.teid : 0, OGS_GTP2_CREATE_SESSION_RESPONSE_TYPE, OGS_GTP2_CAUSE_CONTEXT_NOT_FOUND); break; } + + if (gtp2_sender_f_teid.teid_presence == true) + sess->sgw_s5c_teid = gtp2_sender_f_teid.teid; + + ogs_debug(" SGW_S5C_TEID0x%x, Sender F-TEID(%d)0x%x", + sess->sgw_s5c_teid, + gtp2_sender_f_teid.teid_presence, gtp2_sender_f_teid.teid); + e->sess = sess; ogs_fsm_dispatch(&sess->sm, e); break; @@ -158,28 +171,43 @@ smf_metrics_inst_gtp_node_inc(smf_gnode->metrics, SMF_METR_GTP_NODE_CTR_S5C_RX_DELETESESSIONREQ); if (!sess) { ogs_error("No Session"); - ogs_gtp2_send_error_message(gtp_xact, gtp2_message.h.teid, + ogs_gtp2_send_error_message(gtp_xact, + gtp2_sender_f_teid.teid_presence == true ? + gtp2_sender_f_teid.teid : 0, OGS_GTP2_DELETE_SESSION_RESPONSE_TYPE, OGS_GTP2_CAUSE_CONTEXT_NOT_FOUND); break; } + if (gtp2_sender_f_teid.teid_presence == true) { + if (sess->sgw_s5c_teid != gtp2_sender_f_teid.teid) { + ogs_error("Invalid Sender F-TEID 0x%x != 0x%x", + sess->sgw_s5c_teid, gtp2_sender_f_teid.teid); + ogs_gtp2_send_error_message(gtp_xact, + gtp2_sender_f_teid.teid_presence == true ? + gtp2_sender_f_teid.teid : 0, + OGS_GTP2_DELETE_SESSION_RESPONSE_TYPE, + OGS_GTP2_CAUSE_INVALID_MESSAGE_FORMAT); + break; + } + } e->sess = sess; ogs_fsm_dispatch(&sess->sm, e); break; case OGS_GTP2_MODIFY_BEARER_REQUEST_TYPE: if (!gtp2_message.h.teid_presence) ogs_error("No TEID"); smf_s5c_handle_modify_bearer_request( - sess, gtp_xact, recvbuf, >p2_message); + sess, gtp_xact, recvbuf, + >p2_message.modify_bearer_request, >p2_sender_f_teid); break; case OGS_GTP2_CREATE_BEARER_RESPONSE_TYPE: if (!gtp2_message.h.teid_presence) ogs_error("No TEID"); smf_s5c_handle_create_bearer_response( - sess, gtp_xact, >p2_message); + sess, gtp_xact, >p2_message.create_bearer_response); break; case OGS_GTP2_UPDATE_BEARER_RESPONSE_TYPE: if (!gtp2_message.h.teid_presence) ogs_error("No TEID"); smf_s5c_handle_update_bearer_response( - sess, gtp_xact, >p2_message); + sess, gtp_xact, >p2_message.update_bearer_response); break; case OGS_GTP2_DELETE_BEARER_RESPONSE_TYPE: if (!gtp2_message.h.teid_presence) ogs_error("No TEID"); @@ -194,7 +222,8 @@ case OGS_GTP2_BEARER_RESOURCE_COMMAND_TYPE: if (!gtp2_message.h.teid_presence) ogs_error("No TEID"); smf_s5c_handle_bearer_resource_command( - sess, gtp_xact, >p2_message); + sess, gtp_xact, + >p2_message.bearer_resource_command, >p2_sender_f_teid); break; default: ogs_warn("Not implemented(type:%d)", gtp2_message.h.type);
View file
open5gs_2.7.0.128.30648.202404052026.tar.xz/src/upf/n4-handler.c -> open5gs_2.7.0.128.8484a.202404062026.tar.xz/src/upf/n4-handler.c
Changed
@@ -44,7 +44,8 @@ } void upf_n4_handle_session_establishment_request( - upf_sess_t *sess, ogs_pfcp_xact_t *xact, ogs_pfcp_message_t *message) + upf_sess_t *sess, ogs_pfcp_xact_t *xact, + ogs_pfcp_session_establishment_request_t *req) { ogs_pfcp_pdr_t *pdr = NULL; ogs_pfcp_far_t *far = NULL; @@ -57,13 +58,9 @@ ogs_pfcp_sereq_flags_t sereq_flags; bool restoration_indication = false; - ogs_pfcp_session_establishment_request_t *req = NULL; - upf_metrics_inst_global_inc(UPF_METR_GLOB_CTR_SM_N4SESSIONESTABREQ); ogs_assert(xact); - ogs_assert(message); - req = &message->pfcp_session_establishment_request; ogs_assert(req); ogs_debug("Session Establishment Request"); @@ -72,8 +69,7 @@ if (!sess) { ogs_error("No Context"); - ogs_pfcp_send_error_message( - xact, sess ? sess->smf_n4_f_seid.seid : message->h.seid, + ogs_pfcp_send_error_message(xact, 0, OGS_PFCP_SESSION_ESTABLISHMENT_RESPONSE_TYPE, OGS_PFCP_CAUSE_MANDATORY_IE_MISSING, 0); upf_metrics_inst_by_cause_add(OGS_PFCP_CAUSE_MANDATORY_IE_MISSING, @@ -218,14 +214,14 @@ upf_metrics_inst_by_cause_add(cause_value, UPF_METR_CTR_SM_N4SESSIONESTABFAIL, 1); ogs_pfcp_sess_clear(&sess->pfcp); - ogs_pfcp_send_error_message( - xact, sess ? sess->smf_n4_f_seid.seid : message->h.seid, + ogs_pfcp_send_error_message(xact, sess ? sess->smf_n4_f_seid.seid : 0, OGS_PFCP_SESSION_ESTABLISHMENT_RESPONSE_TYPE, cause_value, offending_ie_value); } void upf_n4_handle_session_modification_request( - upf_sess_t *sess, ogs_pfcp_xact_t *xact, ogs_pfcp_message_t *message) + upf_sess_t *sess, ogs_pfcp_xact_t *xact, + ogs_pfcp_session_modification_request_t *req) { ogs_pfcp_pdr_t *pdr = NULL; ogs_pfcp_far_t *far = NULL; @@ -235,11 +231,7 @@ uint8_t offending_ie_value = 0; int i; - ogs_pfcp_session_modification_request_t *req = NULL; - ogs_assert(xact); - ogs_assert(message); - req = &message->pfcp_session_modification_request; ogs_assert(req); ogs_debug("Session Modification Request"); @@ -248,8 +240,7 @@ if (!sess) { ogs_error("No Context"); - ogs_pfcp_send_error_message( - xact, sess ? sess->smf_n4_f_seid.seid : message->h.seid, + ogs_pfcp_send_error_message(xact, 0, OGS_PFCP_SESSION_MODIFICATION_RESPONSE_TYPE, OGS_PFCP_CAUSE_SESSION_CONTEXT_NOT_FOUND, 0); return; @@ -422,30 +413,25 @@ cleanup: ogs_pfcp_sess_clear(&sess->pfcp); - ogs_pfcp_send_error_message( - xact, sess ? sess->smf_n4_f_seid.seid : message->h.seid, + ogs_pfcp_send_error_message(xact, sess ? sess->smf_n4_f_seid.seid : 0, OGS_PFCP_SESSION_MODIFICATION_RESPONSE_TYPE, cause_value, offending_ie_value); } void upf_n4_handle_session_deletion_request( - upf_sess_t *sess, ogs_pfcp_xact_t *xact, ogs_pfcp_message_t *message) + upf_sess_t *sess, ogs_pfcp_xact_t *xact, + ogs_pfcp_session_deletion_request_t *req) { ogs_pfcp_qer_t *qer = NULL; - ogs_pfcp_session_deletion_request_t *req = NULL; - ogs_assert(xact); - ogs_assert(message); - req = &message->pfcp_session_deletion_request; ogs_assert(req); ogs_debug("Session Deletion Request"); if (!sess) { ogs_error("No Context"); - ogs_pfcp_send_error_message(xact, - sess ? sess->smf_n4_f_seid.seid : message->h.seid, + ogs_pfcp_send_error_message(xact, 0, OGS_PFCP_SESSION_DELETION_RESPONSE_TYPE, OGS_PFCP_CAUSE_SESSION_CONTEXT_NOT_FOUND, 0); return; @@ -460,15 +446,12 @@ } void upf_n4_handle_session_report_response( - upf_sess_t *sess, ogs_pfcp_xact_t *xact, ogs_pfcp_message_t *message) + upf_sess_t *sess, ogs_pfcp_xact_t *xact, + ogs_pfcp_session_report_response_t *rsp) { uint8_t cause_value = 0; - ogs_pfcp_session_report_response_t *rsp = NULL; - ogs_assert(xact); - ogs_assert(message); - rsp = &message->pfcp_session_report_response; ogs_assert(rsp); ogs_pfcp_xact_commit(xact);
View file
open5gs_2.7.0.128.30648.202404052026.tar.xz/src/upf/n4-handler.h -> open5gs_2.7.0.128.8484a.202404062026.tar.xz/src/upf/n4-handler.h
Changed
@@ -27,14 +27,18 @@ #endif void upf_n4_handle_session_establishment_request( - upf_sess_t *sess, ogs_pfcp_xact_t *xact, ogs_pfcp_message_t *message); + upf_sess_t *sess, ogs_pfcp_xact_t *xact, + ogs_pfcp_session_establishment_request_t *req); void upf_n4_handle_session_modification_request( - upf_sess_t *sess, ogs_pfcp_xact_t *xact, ogs_pfcp_message_t *message); + upf_sess_t *sess, ogs_pfcp_xact_t *xact, + ogs_pfcp_session_modification_request_t *req); void upf_n4_handle_session_deletion_request( - upf_sess_t *sess, ogs_pfcp_xact_t *xact, ogs_pfcp_message_t *message); + upf_sess_t *sess, ogs_pfcp_xact_t *xact, + ogs_pfcp_session_deletion_request_t *req); void upf_n4_handle_session_report_response( - upf_sess_t *sess, ogs_pfcp_xact_t *xact, ogs_pfcp_message_t *message); + upf_sess_t *sess, ogs_pfcp_xact_t *xact, + ogs_pfcp_session_report_response_t *rsp); #ifdef __cplusplus }
View file
open5gs_2.7.0.128.30648.202404052026.tar.xz/src/upf/pfcp-sm.c -> open5gs_2.7.0.128.8484a.202404062026.tar.xz/src/upf/pfcp-sm.c
Changed
@@ -284,16 +284,20 @@ sess = upf_sess_add_by_message(message); if (sess) OGS_SETUP_PFCP_NODE(sess, node); - upf_n4_handle_session_establishment_request(sess, xact, message); + upf_n4_handle_session_establishment_request( + sess, xact, &message->pfcp_session_establishment_request); break; case OGS_PFCP_SESSION_MODIFICATION_REQUEST_TYPE: - upf_n4_handle_session_modification_request(sess, xact, message); + upf_n4_handle_session_modification_request( + sess, xact, &message->pfcp_session_modification_request); break; case OGS_PFCP_SESSION_DELETION_REQUEST_TYPE: - upf_n4_handle_session_deletion_request(sess, xact, message); + upf_n4_handle_session_deletion_request( + sess, xact, &message->pfcp_session_deletion_request); break; case OGS_PFCP_SESSION_REPORT_RESPONSE_TYPE: - upf_n4_handle_session_report_response(sess, xact, message); + upf_n4_handle_session_report_response( + sess, xact, &message->pfcp_session_report_response); break; default: ogs_error("Not implemented PFCP message type%d",
Locations
Projects
Search
Status Monitor
Help
Open Build Service
OBS Manuals
API Documentation
OBS Portal
Reporting a Bug
Contact
Mailing List
Forums
Chat (IRC)
Twitter
Open Build Service (OBS)
is an
openSUSE project
.