forked from acouzens/open5gs
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:
parent
74fcd9b9c6
commit
3ee4bb7d3c
|
@ -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 {
|
||||
|
|
Loading…
Reference in New Issue