forked from acouzens/open5gs
[PFCP] Fix wrong endianess enc of some URR values (#1433)
* [PFCP] Fix trailing whitespace * [PFCP] Fix wrong endianess enc of some URR values u32 tlvs are already converted to big endian automatically. Manually doing so ends up in double conversion and hence in wrong endianness being sent over the wire. Similar issue was also fixed recently in the PFCP decoding path. Related: https://github.com/open5gs/open5gs/issues/1349
This commit is contained in:
parent
5b81802be9
commit
dd5abb79b4
|
@ -573,7 +573,7 @@ void ogs_pfcp_build_create_urr(
|
|||
| (urr->rep_triggers.reptri_7);
|
||||
if (urr->meas_period) {
|
||||
message->measurement_period.presence = 1;
|
||||
message->measurement_period.u32 = htobe32(urr->meas_period);
|
||||
message->measurement_period.u32 = urr->meas_period;
|
||||
}
|
||||
|
||||
if (urr->vol_threshold.flags) {
|
||||
|
@ -592,27 +592,27 @@ void ogs_pfcp_build_create_urr(
|
|||
|
||||
if (urr->event_threshold) {
|
||||
message->event_threshold.presence = 1;
|
||||
message->event_threshold.u32 = htobe32(urr->event_threshold);
|
||||
message->event_threshold.u32 = urr->event_threshold;
|
||||
}
|
||||
|
||||
|
||||
if (urr->event_quota) {
|
||||
message->event_quota.presence = 1;
|
||||
message->event_quota.u32 = htobe32(urr->event_quota);
|
||||
message->event_quota.u32 = urr->event_quota;
|
||||
}
|
||||
|
||||
if (urr->time_threshold) {
|
||||
message->time_threshold.presence = 1;
|
||||
message->time_threshold.u32 = htobe32(urr->time_threshold);
|
||||
message->time_threshold.u32 = urr->time_threshold;
|
||||
}
|
||||
|
||||
|
||||
if (urr->time_quota) {
|
||||
message->time_quota.presence = 1;
|
||||
message->time_quota.u32 = htobe32(urr->time_quota);
|
||||
message->time_quota.u32 = urr->time_quota;
|
||||
}
|
||||
|
||||
if (urr->quota_holding_time) {
|
||||
message->quota_holding_time.presence = 1;
|
||||
message->quota_holding_time.u32 = htobe32(urr->quota_holding_time);
|
||||
message->quota_holding_time.u32 = urr->quota_holding_time;
|
||||
}
|
||||
|
||||
if (urr->dropped_dl_traffic_threshold.flags) {
|
||||
|
@ -626,7 +626,7 @@ void ogs_pfcp_build_create_urr(
|
|||
|
||||
if (urr->quota_validity_time) {
|
||||
message->quota_validity_time.presence = 1;
|
||||
message->quota_validity_time.u32 = htobe32(urr->quota_validity_time);
|
||||
message->quota_validity_time.u32 = urr->quota_validity_time;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -779,7 +779,7 @@ ogs_pkbuf_t *ogs_pfcp_build_session_report_request(
|
|||
(report->usage_report.rep_triggers.reptri_5 << 16)
|
||||
| (report->usage_report.rep_triggers.reptri_6 << 8)
|
||||
| (report->usage_report.rep_triggers.reptri_7);
|
||||
|
||||
|
||||
if (report->usage_report.start_time) {
|
||||
req->usage_report.start_time.presence = 1;
|
||||
req->usage_report.start_time.u32 = report->usage_report.start_time;
|
||||
|
@ -804,7 +804,7 @@ ogs_pkbuf_t *ogs_pfcp_build_session_report_request(
|
|||
req->usage_report.duration_measurement.u32 =
|
||||
report->usage_report.dur_measurement;
|
||||
}
|
||||
|
||||
|
||||
if (report->usage_report.time_of_first_packet) {
|
||||
req->usage_report.time_of_first_packet.presence = 1;
|
||||
req->usage_report.time_of_first_packet.u32 =
|
||||
|
|
|
@ -87,8 +87,8 @@ typedef struct ogs_pfcp_node_s {
|
|||
ogs_sock_t *sock; /* Socket Instance */
|
||||
ogs_sockaddr_t addr; /* Remote Address */
|
||||
|
||||
ogs_list_t local_list;
|
||||
ogs_list_t remote_list;
|
||||
ogs_list_t local_list;
|
||||
ogs_list_t remote_list;
|
||||
|
||||
ogs_fsm_t sm; /* A state machine */
|
||||
ogs_timer_t *t_association; /* timer to retry to associate peer node */
|
||||
|
|
|
@ -20,7 +20,7 @@
|
|||
#include "ogs-pfcp.h"
|
||||
|
||||
bool ogs_pfcp_handle_heartbeat_request(
|
||||
ogs_pfcp_node_t *node, ogs_pfcp_xact_t *xact,
|
||||
ogs_pfcp_node_t *node, ogs_pfcp_xact_t *xact,
|
||||
ogs_pfcp_heartbeat_request_t *req)
|
||||
{
|
||||
int rv;
|
||||
|
@ -33,7 +33,7 @@ bool ogs_pfcp_handle_heartbeat_request(
|
|||
}
|
||||
|
||||
bool ogs_pfcp_handle_heartbeat_response(
|
||||
ogs_pfcp_node_t *node, ogs_pfcp_xact_t *xact,
|
||||
ogs_pfcp_node_t *node, ogs_pfcp_xact_t *xact,
|
||||
ogs_pfcp_heartbeat_response_t *rsp)
|
||||
{
|
||||
ogs_assert(xact);
|
||||
|
@ -46,7 +46,7 @@ bool ogs_pfcp_handle_heartbeat_response(
|
|||
}
|
||||
|
||||
bool ogs_pfcp_cp_handle_association_setup_request(
|
||||
ogs_pfcp_node_t *node, ogs_pfcp_xact_t *xact,
|
||||
ogs_pfcp_node_t *node, ogs_pfcp_xact_t *xact,
|
||||
ogs_pfcp_association_setup_request_t *req)
|
||||
{
|
||||
int i;
|
||||
|
@ -93,7 +93,7 @@ bool ogs_pfcp_cp_handle_association_setup_request(
|
|||
}
|
||||
|
||||
bool ogs_pfcp_cp_handle_association_setup_response(
|
||||
ogs_pfcp_node_t *node, ogs_pfcp_xact_t *xact,
|
||||
ogs_pfcp_node_t *node, ogs_pfcp_xact_t *xact,
|
||||
ogs_pfcp_association_setup_response_t *rsp)
|
||||
{
|
||||
int i;
|
||||
|
@ -1087,7 +1087,7 @@ ogs_pfcp_urr_t *ogs_pfcp_handle_create_urr(ogs_pfcp_sess_t *sess,
|
|||
uint8_t *cause_value, uint8_t *offending_ie_value)
|
||||
{
|
||||
ogs_pfcp_urr_t *urr = NULL;
|
||||
|
||||
|
||||
ogs_assert(message);
|
||||
ogs_assert(sess);
|
||||
|
||||
|
@ -1184,7 +1184,7 @@ ogs_pfcp_urr_t *ogs_pfcp_handle_update_urr(ogs_pfcp_sess_t *sess,
|
|||
uint8_t *cause_value, uint8_t *offending_ie_value)
|
||||
{
|
||||
ogs_pfcp_urr_t *urr = NULL;
|
||||
|
||||
|
||||
ogs_assert(message);
|
||||
ogs_assert(sess);
|
||||
|
||||
|
|
Loading…
Reference in New Issue