[PFCP] Handle Measurement Information in Create/Update URR IEs (#1453)

This commit is contained in:
Pau Espin 2022-03-25 16:33:32 +01:00 committed by GitHub
parent 89636fa8d3
commit 38e2dee17f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 26 additions and 3 deletions

View File

@ -628,6 +628,12 @@ void ogs_pfcp_build_create_urr(
message->quota_validity_time.presence = 1;
message->quota_validity_time.u32 = urr->quota_validity_time;
}
if (urr->meas_info.octet5) {
message->measurement_information.presence = 1;
message->measurement_information.data = &urr->meas_info.octet5;
message->measurement_information.len = 1;
}
}
static struct {

View File

@ -231,7 +231,7 @@ typedef struct ogs_pfcp_urr_s {
ogs_pfcp_measurement_method_t meas_method;
ogs_pfcp_reporting_triggers_t rep_triggers;
ogs_pfcp_measurement_information_t meas_info;
ogs_pfcp_measurement_period_t meas_period;
ogs_pfcp_volume_threshold_t vol_threshold;

View File

@ -1178,7 +1178,7 @@ ogs_pfcp_urr_t *ogs_pfcp_handle_create_urr(ogs_pfcp_sess_t *sess,
if (message->measurement_information.presence &&
message->measurement_information.len >= 1) {
urr->meas_info = *((unsigned char *)message->measurement_information.data);
urr->meas_info.octet5 = *((unsigned char *)message->measurement_information.data);
}
return urr;
@ -1270,7 +1270,7 @@ ogs_pfcp_urr_t *ogs_pfcp_handle_update_urr(ogs_pfcp_sess_t *sess,
if (message->measurement_information.presence &&
message->measurement_information.len >= 1) {
urr->meas_info = *((unsigned char *)message->measurement_information.data);
urr->meas_info.octet5 = *((unsigned char *)message->measurement_information.data);
}
return urr;

View File

@ -1255,6 +1255,23 @@ ED7(uint8_t spare:2;,
uint64_t downlink_n_packets;
} __attribute__ ((packed)) ogs_pfcp_volume_measurement_t;
/*
* 8.2.68 Measurement Information
*/
typedef struct ogs_pfcp_measurement_information_s {
union {
struct {
ED6(uint8_t spare:3;,
uint8_t mnop:1;,
uint8_t istm:1;,
uint8_t radi:1;,
uint8_t inam:1;,
uint8_t mbqe:1;)
};
uint8_t octet5;
};
} __attribute__ ((packed)) ogs_pfcp_measurement_information_t;
typedef struct ogs_pfcp_user_plane_report_s {
ogs_pfcp_report_type_t type;
struct {