pfcp: Fix missing fields in ogs_pfcp_build_update_urr()

Flag bitmask check elements are reordered to follow same order as
IEs in 3GPP TS 29.244 7.5.4.4 "Update URR".
This commit is contained in:
Pau Espin 2024-04-04 15:47:15 +02:00 committed by Sukchan Lee
parent 74fcd9b9c6
commit 3ee4bb7d3c
1 changed files with 28 additions and 3 deletions

View File

@ -773,21 +773,23 @@ void ogs_pfcp_build_update_urr(
/* No change requested, skip. */
if (!(modify_flags & (OGS_PFCP_MODIFY_URR_MEAS_METHOD|
OGS_PFCP_MODIFY_URR_REPORT_TRIGGER|
OGS_PFCP_MODIFY_URR_QUOTA_VALIDITY_TIME|
OGS_PFCP_MODIFY_URR_VOLUME_QUOTA|
OGS_PFCP_MODIFY_URR_VOLUME_THRESH|
OGS_PFCP_MODIFY_URR_VOLUME_QUOTA|
OGS_PFCP_MODIFY_URR_TIME_THRESH|
OGS_PFCP_MODIFY_URR_TIME_QUOTA|
OGS_PFCP_MODIFY_URR_TIME_THRESH)))
OGS_PFCP_MODIFY_URR_QUOTA_VALIDITY_TIME)))
return;
/* Change request: Send only changed IEs */
message->presence = 1;
message->urr_id.presence = 1;
message->urr_id.u32 = urr->id;
if (modify_flags & OGS_PFCP_MODIFY_URR_MEAS_METHOD) {
message->measurement_method.presence = 1;
message->measurement_method.u8 = urr->meas_method;
}
if (modify_flags & OGS_PFCP_MODIFY_URR_REPORT_TRIGGER) {
message->reporting_triggers.presence = 1;
message->reporting_triggers.u24 = (urr->rep_triggers.reptri_5 << 16)
@ -804,12 +806,35 @@ void ogs_pfcp_build_update_urr(
}
}
if (modify_flags & OGS_PFCP_MODIFY_URR_VOLUME_QUOTA) {
if (urr->vol_quota.flags) {
message->volume_quota.presence = 1;
ogs_pfcp_build_volume(
&message->volume_quota, &urr->vol_quota,
&urrbuf[i].vol_quota, sizeof(urrbuf[i].vol_quota));
}
}
if (modify_flags & OGS_PFCP_MODIFY_URR_TIME_THRESH) {
if (urr->time_threshold) {
message->time_threshold.presence = 1;
message->time_threshold.u32 = urr->time_threshold;
}
}
if (modify_flags & OGS_PFCP_MODIFY_URR_TIME_QUOTA) {
if (urr->time_quota) {
message->time_quota.presence = 1;
message->time_quota.u32 = urr->time_quota;
}
}
if (modify_flags & OGS_PFCP_MODIFY_URR_QUOTA_VALIDITY_TIME) {
if (urr->quota_validity_time) {
message->quota_validity_time.presence = 1;
message->quota_validity_time.u32 = urr->quota_validity_time;
}
}
}
static struct {