diff --git a/upf/pfcp.c b/upf/pfcp.c index 6cc4f78..96c699c 100644 --- a/upf/pfcp.c +++ b/upf/pfcp.c @@ -52,7 +52,7 @@ /*************************************************************************/ u8 * -format_flags (u8 *s, va_list *args) +format_pfcp_flags (u8 *s, va_list *args) { uint64_t flags = va_arg (*args, uint64_t); const char **atoms = va_arg (*args, const char **); @@ -76,7 +76,7 @@ format_flags (u8 *s, va_list *args) } u8 * -format_enum (u8 *s, va_list *args) +format_pfcp_enum (u8 *s, va_list *args) { uint64_t e = va_arg (*args, uint64_t); const char **atoms = va_arg (*args, const char **); @@ -89,7 +89,7 @@ format_enum (u8 *s, va_list *args) } u8 * -format_dns_labels (u8 *s, va_list *args) +format_pfcp_dns_labels (u8 *s, va_list *args) { u8 *p = va_arg (*args, u8 *); u8 i = 0; @@ -115,38 +115,39 @@ format_dns_labels (u8 *s, va_list *args) } u8 * -format_network_instance (u8 *s, va_list *args) +format_pfcp_ie_network_instance (u8 *s, va_list *args) { u8 **p = va_arg (*args, u8 **); - return p ? format (s, "%U", format_dns_labels, *p) : format (s, "invalid"); + return p ? format (s, "%U", format_pfcp_dns_labels, *p) : + format (s, "invalid"); } /*************************************************************************/ static const char *msg_desc[] = { - [PFCP_HEARTBEAT_REQUEST] = "Heartbeat Request", - [PFCP_HEARTBEAT_RESPONSE] = "Heartbeat Response", - [PFCP_PFD_MANAGEMENT_REQUEST] = "PFD Management Request", - [PFCP_PFD_MANAGEMENT_RESPONSE] = "PFD Management Response", - [PFCP_ASSOCIATION_SETUP_REQUEST] = "Association Setup Request", - [PFCP_ASSOCIATION_SETUP_RESPONSE] = "Association Setup Response", - [PFCP_ASSOCIATION_UPDATE_REQUEST] = "Association Update Request", - [PFCP_ASSOCIATION_UPDATE_RESPONSE] = "Association Update Response", - [PFCP_ASSOCIATION_RELEASE_REQUEST] = "Association Release Request", - [PFCP_ASSOCIATION_RELEASE_RESPONSE] = "Association Release Response", - [PFCP_VERSION_NOT_SUPPORTED_RESPONSE] = "Version Not Supported Response", - [PFCP_NODE_REPORT_REQUEST] = "Node Report Request", - [PFCP_NODE_REPORT_RESPONSE] = "Node Report Response", - [PFCP_SESSION_SET_DELETION_REQUEST] = "Session Set Deletion Request", - [PFCP_SESSION_SET_DELETION_RESPONSE] = "Session Set Deletion Response", - [PFCP_SESSION_ESTABLISHMENT_REQUEST] = "Session Establishment Request", - [PFCP_SESSION_ESTABLISHMENT_RESPONSE] = "Session Establishment Response", - [PFCP_SESSION_MODIFICATION_REQUEST] = "Session Modification Request", - [PFCP_SESSION_MODIFICATION_RESPONSE] = "Session Modification Response", - [PFCP_SESSION_DELETION_REQUEST] = "Session Deletion Request", - [PFCP_SESSION_DELETION_RESPONSE] = "Session Deletion Response", - [PFCP_SESSION_REPORT_REQUEST] = "Session Report Request", - [PFCP_SESSION_REPORT_RESPONSE] = "Session Report Response", + [PFCP_MSG_HEARTBEAT_REQUEST] = "Heartbeat Request", + [PFCP_MSG_HEARTBEAT_RESPONSE] = "Heartbeat Response", + [PFCP_MSG_PFD_MANAGEMENT_REQUEST] = "PFD Management Request", + [PFCP_MSG_PFD_MANAGEMENT_RESPONSE] = "PFD Management Response", + [PFCP_MSG_ASSOCIATION_SETUP_REQUEST] = "Association Setup Request", + [PFCP_MSG_ASSOCIATION_SETUP_RESPONSE] = "Association Setup Response", + [PFCP_MSG_ASSOCIATION_UPDATE_REQUEST] = "Association Update Request", + [PFCP_MSG_ASSOCIATION_UPDATE_RESPONSE] = "Association Update Response", + [PFCP_MSG_ASSOCIATION_RELEASE_REQUEST] = "Association Release Request", + [PFCP_MSG_ASSOCIATION_RELEASE_RESPONSE] = "Association Release Response", + [PFCP_MSG_VERSION_NOT_SUPPORTED_RESPONSE] = "Version Not Supported Response", + [PFCP_MSG_NODE_REPORT_REQUEST] = "Node Report Request", + [PFCP_MSG_NODE_REPORT_RESPONSE] = "Node Report Response", + [PFCP_MSG_SESSION_SET_DELETION_REQUEST] = "Session Set Deletion Request", + [PFCP_MSG_SESSION_SET_DELETION_RESPONSE] = "Session Set Deletion Response", + [PFCP_MSG_SESSION_ESTABLISHMENT_REQUEST] = "Session Establishment Request", + [PFCP_MSG_SESSION_ESTABLISHMENT_RESPONSE] = "Session Establishment Response", + [PFCP_MSG_SESSION_MODIFICATION_REQUEST] = "Session Modification Request", + [PFCP_MSG_SESSION_MODIFICATION_RESPONSE] = "Session Modification Response", + [PFCP_MSG_SESSION_DELETION_REQUEST] = "Session Deletion Request", + [PFCP_MSG_SESSION_DELETION_RESPONSE] = "Session Deletion Response", + [PFCP_MSG_SESSION_REPORT_REQUEST] = "Session Report Request", + [PFCP_MSG_SESSION_REPORT_RESPONSE] = "Session Report Response", }; u8 * @@ -159,9 +160,9 @@ format_pfcp_msg_type (u8 *s, va_list *args) } u8 * -format_pfcp_msg_hdr (u8 *s, va_list *args) +format_pfcp_msg_header (u8 *s, va_list *args) { - pfcp_header_t *pfcp = va_arg (*args, pfcp_header_t *); + pfcp_msg_header_t *pfcp = va_arg (*args, pfcp_msg_header_t *); u8 type = pfcp->type; if (type < ARRAY_LEN (msg_desc) && msg_desc[type]) @@ -178,21 +179,22 @@ format_pfcp_msg_hdr (u8 *s, va_list *args) /* message construction helpers */ -#define set_msg_hdr_version(V, VER) ((pfcp_header_t *) (V))->version = (VER) -#define set_msg_hdr_type(V, TYPE) ((pfcp_header_t *) (V))->type = (TYPE) +#define set_msg_hdr_version(V, VER) \ + ((pfcp_msg_header_t *) (V))->version = (VER) +#define set_msg_hdr_type(V, TYPE) ((pfcp_msg_header_t *) (V))->type = (TYPE) #define set_msg_hdr_seq(V, S) \ do \ { \ - ((pfcp_header_t *) (V))->msg_hdr.sequence[0] = (S >> 16) & 0xff; \ - ((pfcp_header_t *) (V))->msg_hdr.sequence[1] = (S >> 8) & 0xff; \ - ((pfcp_header_t *) (V))->msg_hdr.sequence[2] = S & 0xff; \ + ((pfcp_msg_header_t *) (V))->node_hdr.sequence[0] = (S >> 16) & 0xff; \ + ((pfcp_msg_header_t *) (V))->node_hdr.sequence[1] = (S >> 8) & 0xff; \ + ((pfcp_msg_header_t *) (V))->node_hdr.sequence[2] = S & 0xff; \ } \ while (0) #define set_session_hdr_seid(V, SEID) \ do \ { \ - ((pfcp_header_t *) (V))->s_flag = 1; \ - ((pfcp_header_t *) (V))->session_hdr.seid = \ + ((pfcp_msg_header_t *) (V))->s_flag = 1; \ + ((pfcp_msg_header_t *) (V))->session_hdr.seid = \ clib_host_to_net_u64 (SEID); \ } \ while (0) @@ -200,14 +202,15 @@ format_pfcp_msg_hdr (u8 *s, va_list *args) #define set_session_hdr_seq(V, S) \ do \ { \ - ((pfcp_header_t *) (V))->session_hdr.sequence[0] = (S >> 16) & 0xff; \ - ((pfcp_header_t *) (V))->session_hdr.sequence[1] = (S >> 8) & 0xff; \ - ((pfcp_header_t *) (V))->session_hdr.sequence[2] = S & 0xff; \ + ((pfcp_msg_header_t *) (V))->session_hdr.sequence[0] = \ + (S >> 16) & 0xff; \ + ((pfcp_msg_header_t *) (V))->session_hdr.sequence[1] = (S >> 8) & 0xff; \ + ((pfcp_msg_header_t *) (V))->session_hdr.sequence[2] = S & 0xff; \ } \ while (0) #define set_msg_hdr_length(V, LEN) \ - ((pfcp_header_t *) (V))->length = htons ((LEN)) + ((pfcp_msg_header_t *) (V))->length = htons ((LEN)) #define put_msg_response(V, REQ, TYPE, P) \ do \ @@ -613,17 +616,17 @@ free_simple_vec_ie (void *p) } static u8 * -format_volume_ie (u8 *s, va_list *args) +format_pfcp_ie_volume (u8 *s, va_list *args) { - pfcp_volume_ie_t *v = va_arg (*args, pfcp_volume_ie_t *); + pfcp_ie_volume_t *v = va_arg (*args, pfcp_ie_volume_t *); return format (s, "T:%d,U:%d,D:%d", v->total, v->ul, v->dl); } static int -decode_volume_ie (u8 *data, u16 length, void *p) +decode_pfcp_ie_volume (u8 *data, u16 length, void *p) { - pfcp_volume_ie_t *v = (pfcp_volume_ie_t *) p; + pfcp_ie_volume_t *v = (pfcp_ie_volume_t *) p; if (length < 1) return PFCP_CAUSE_INVALID_LENGTH; @@ -644,9 +647,9 @@ decode_volume_ie (u8 *data, u16 length, void *p) } static int -encode_volume_ie (void *p, u8 **vec) +encode_pfcp_ie_volume (void *p, u8 **vec) { - pfcp_volume_ie_t *v = (pfcp_volume_ie_t *) p; + pfcp_ie_volume_t *v = (pfcp_ie_volume_t *) p; put_u8 (*vec, v->fields); @@ -670,7 +673,7 @@ format_time_stamp (u8 *s, va_list *args) } static int -decode_time_stamp_ie (u8 *data, u16 length, void *p) +decode_time_stamp (u8 *data, u16 length, void *p) { u32 *v = (u32 *) p; @@ -687,7 +690,7 @@ decode_time_stamp_ie (u8 *data, u16 length, void *p) } static int -encode_time_stamp_ie (void *p, u8 **vec) +encode_time_stamp (void *p, u8 **vec) { u32 *v = (u32 *) p; @@ -700,9 +703,9 @@ encode_time_stamp_ie (void *p, u8 **vec) } static u8 * -format_timer_ie (u8 *s, va_list *args) +format_pfcp_ie_timer (u8 *s, va_list *args) { - pfcp_timer_ie_t *v = va_arg (*args, pfcp_timer_ie_t *); + pfcp_ie_timer_t *v = va_arg (*args, pfcp_ie_timer_t *); switch (v->unit) { @@ -730,9 +733,9 @@ format_timer_ie (u8 *s, va_list *args) } static int -decode_timer_ie (u8 *data, u16 length, void *p) +decode_pfcp_ie_timer (u8 *data, u16 length, void *p) { - pfcp_timer_ie_t *v = p; + pfcp_ie_timer_t *v = p; u8 t; if (length < 1) @@ -746,9 +749,9 @@ decode_timer_ie (u8 *data, u16 length, void *p) } static int -encode_timer_ie (void *p, u8 **vec) +encode_pfcp_ie_timer (void *p, u8 **vec) { - pfcp_timer_ie_t *v = p; + pfcp_ie_timer_t *v = p; put_u8 (*vec, ((v->unit & 0x0f) << 4) | (v->value & 0x0f)); @@ -799,7 +802,7 @@ format_sntp_time_stamp (u8 *s, va_list *args) } static int -decode_sntp_time_stamp_ie (u8 *data, u16 length, void *p) +decode_sntp_time_stamp (u8 *data, u16 length, void *p) { f64 *v = (f64 *) p; @@ -818,7 +821,7 @@ decode_sntp_time_stamp_ie (u8 *data, u16 length, void *p) } static int -encode_sntp_time_stamp_ie (void *p, u8 **vec) +encode_sntp_time_stamp (void *p, u8 **vec) { f64 *v = (f64 *) p; f64 fraction, seconds; @@ -837,9 +840,9 @@ encode_sntp_time_stamp_ie (void *p, u8 **vec) /* Information Elements */ -#define format_cause format_u8_ie -#define decode_cause decode_u8_ie -#define encode_cause encode_u8_ie +#define format_pfcp_ie_cause format_u8_ie +#define decode_pfcp_ie_cause decode_u8_ie +#define encode_pfcp_ie_cause encode_u8_ie static char *source_interface_name[] = { [0] = "Access", @@ -849,17 +852,17 @@ static char *source_interface_name[] = { }; static u8 * -format_source_interface (u8 *s, va_list *args) +format_pfcp_ie_source_interface (u8 *s, va_list *args) { - pfcp_source_interface_t *v = va_arg (*args, pfcp_source_interface_t *); + pfcp_ie_source_interface_t *v = va_arg (*args, pfcp_ie_source_interface_t *); return format (s, "%s", source_interface_name[*v]); } static int -decode_source_interface (u8 *data, u16 length, void *p) +decode_pfcp_ie_source_interface (u8 *data, u16 length, void *p) { - pfcp_source_interface_t *v = p; + pfcp_ie_source_interface_t *v = p; if (length < 1) return PFCP_CAUSE_INVALID_LENGTH; @@ -872,29 +875,29 @@ decode_source_interface (u8 *data, u16 length, void *p) } static int -encode_source_interface (void *p, u8 **vec) +encode_pfcp_ie_source_interface (void *p, u8 **vec) { - pfcp_source_interface_t *v = p; + pfcp_ie_source_interface_t *v = p; put_u8 (*vec, *v & 0x0f); return 0; } static u8 * -format_f_teid (u8 *s, va_list *args) +format_pfcp_ie_f_teid (u8 *s, va_list *args) { - pfcp_f_teid_t *v = va_arg (*args, pfcp_f_teid_t *); + pfcp_ie_f_teid_t *v = va_arg (*args, pfcp_ie_f_teid_t *); u16 flags = (v->flags & 0xf); - s = format (s, "CH:%d,CHID:%d,V4:%d,V6:%d,", !!(flags & F_TEID_CH), - !!(flags & F_TEID_CHID), !!(flags & F_TEID_V4), - !!(flags & F_TEID_V6)); + s = format (s, "CH:%d,CHID:%d,V4:%d,V6:%d,", !!(flags & PFCP_F_TEID_CH), + !!(flags & PFCP_F_TEID_CHID), !!(flags & PFCP_F_TEID_V4), + !!(flags & PFCP_F_TEID_V6)); - if ((v->flags & 0xf) == F_TEID_V4) + if ((v->flags & 0xf) == PFCP_F_TEID_V4) s = format (s, "TEID:%d,IPv4:%U", v->teid, format_ip4_address, &v->ip4); - else if ((v->flags & 0xf) == F_TEID_V6) + else if ((v->flags & 0xf) == PFCP_F_TEID_V6) s = format (s, "TEID:%d,IPv6:%U", v->teid, format_ip6_address, &v->ip6); - else if ((v->flags & 0xf) == (F_TEID_V4 | F_TEID_V6)) + else if ((v->flags & 0xf) == (PFCP_F_TEID_V4 | PFCP_F_TEID_V6)) s = format (s, "TEID:%d,IPv4:%U,IPv6:%U", v->teid, format_ip4_address, &v->ip4, format_ip6_address, &v->ip6); @@ -902,16 +905,16 @@ format_f_teid (u8 *s, va_list *args) } static int -decode_f_teid (u8 *data, u16 length, void *p) +decode_pfcp_ie_f_teid (u8 *data, u16 length, void *p) { - pfcp_f_teid_t *v = p; + pfcp_ie_f_teid_t *v = p; if (length < 1) return PFCP_CAUSE_INVALID_LENGTH; v->flags = get_u8 (data) & 0x0f; - if (!(v->flags & F_TEID_CH)) + if (!(v->flags & PFCP_F_TEID_CH)) { if (length < 4) return PFCP_CAUSE_INVALID_LENGTH; @@ -919,7 +922,7 @@ decode_f_teid (u8 *data, u16 length, void *p) v->teid = get_u32 (data); length -= 4; - if (v->flags & F_TEID_CHID) + if (v->flags & PFCP_F_TEID_CHID) { pfcp_debug ( "PFCP: F-TEID with invalid flags (CHID without CH): %02x.", @@ -927,13 +930,13 @@ decode_f_teid (u8 *data, u16 length, void *p) return -1; } - if (!(v->flags & (F_TEID_V4 | F_TEID_V6))) + if (!(v->flags & (PFCP_F_TEID_V4 | PFCP_F_TEID_V6))) { pfcp_debug ("PFCP: F-TEID without v4/v6 address: %02x.", v->flags); return -1; } - if (v->flags & F_TEID_V4) + if (v->flags & PFCP_F_TEID_V4) { if (length < 4) return PFCP_CAUSE_INVALID_LENGTH; @@ -942,7 +945,7 @@ decode_f_teid (u8 *data, u16 length, void *p) length -= 4; } - if (v->flags & F_TEID_V6) + if (v->flags & PFCP_F_TEID_V6) { if (length < 16) return PFCP_CAUSE_INVALID_LENGTH; @@ -956,7 +959,7 @@ decode_f_teid (u8 *data, u16 length, void *p) if (length < 1) return PFCP_CAUSE_INVALID_LENGTH; - if (!(v->flags & F_TEID_V6) && !(v->flags & F_TEID_V4)) + if (!(v->flags & PFCP_F_TEID_V6) && !(v->flags & PFCP_F_TEID_V4)) { pfcp_debug ( "PFCP: F-TEID with CH flag should have at least v4/v6 flag:%02x", @@ -971,39 +974,39 @@ decode_f_teid (u8 *data, u16 length, void *p) } static int -encode_f_teid (void *p, u8 **vec) +encode_pfcp_ie_f_teid (void *p, u8 **vec) { - pfcp_f_teid_t *v = p; + pfcp_ie_f_teid_t *v = p; put_u8 (*vec, v->flags); put_u32 (*vec, v->teid); - if (v->flags & F_TEID_V4) + if (v->flags & PFCP_F_TEID_V4) put_ip4 (*vec, v->ip4); - if (v->flags & F_TEID_V6) + if (v->flags & PFCP_F_TEID_V6) put_ip6 (*vec, v->ip6); - if (v->flags & F_TEID_CHID) + if (v->flags & PFCP_F_TEID_CHID) put_u8 (*vec, v->choose_id); return 0; } -#define decode_network_instance decode_simple_vec_ie -#define encode_network_instance encode_simple_vec_ie -#define free_network_instance free_simple_vec_ie +#define decode_pfcp_ie_network_instance decode_simple_vec_ie +#define encode_pfcp_ie_network_instance encode_simple_vec_ie +#define free_pfcp_ie_network_instance free_simple_vec_ie static u8 * -format_sdf_filter (u8 *s, va_list *args) +format_pfcp_ie_sdf_filter (u8 *s, va_list *args) { - pfcp_sdf_filter_t *v = va_arg (*args, pfcp_sdf_filter_t *); + pfcp_ie_sdf_filter_t *v = va_arg (*args, pfcp_ie_sdf_filter_t *); - if (v->flags & F_SDF_FD) + if (v->flags & PFCP_F_SDF_FD) s = format (s, "FD:%v,", v->flow); - if (v->flags & F_SDF_TTC) + if (v->flags & PFCP_F_SDF_TTC) s = format (s, "ToS/TC:0x%04x,", v->tos_traffic_class); - if (v->flags & F_SDF_SPI) + if (v->flags & PFCP_F_SDF_SPI) s = format (s, "SPI:%u,", v->spi); - if (v->flags & F_SDF_FL) + if (v->flags & PFCP_F_SDF_FL) s = format (s, "FL: %u,", v->flow_label); - if (v->flags & F_SDF_BID) + if (v->flags & PFCP_F_SDF_BID) s = format (s, "FltId: %u,", v->sdf_filter_id); if (v->flags) @@ -1015,9 +1018,9 @@ format_sdf_filter (u8 *s, va_list *args) } static int -decode_sdf_filter (u8 *data, u16 length, void *p) +decode_pfcp_ie_sdf_filter (u8 *data, u16 length, void *p) { - pfcp_sdf_filter_t *v = p; + pfcp_ie_sdf_filter_t *v = p; if (length < 2) return PFCP_CAUSE_INVALID_LENGTH; @@ -1026,7 +1029,7 @@ decode_sdf_filter (u8 *data, u16 length, void *p) data++; /* spare */ length -= 2; - if (v->flags & F_SDF_FD) + if (v->flags & PFCP_F_SDF_FD) { u16 flow_len; @@ -1043,7 +1046,7 @@ decode_sdf_filter (u8 *data, u16 length, void *p) length -= flow_len; } - if (v->flags & F_SDF_TTC) + if (v->flags & PFCP_F_SDF_TTC) { if (length < 2) return PFCP_CAUSE_INVALID_LENGTH; @@ -1052,7 +1055,7 @@ decode_sdf_filter (u8 *data, u16 length, void *p) length -= 2; } - if (v->flags & F_SDF_SPI) + if (v->flags & PFCP_F_SDF_SPI) { if (length < 4) return PFCP_CAUSE_INVALID_LENGTH; @@ -1061,7 +1064,7 @@ decode_sdf_filter (u8 *data, u16 length, void *p) length -= 4; } - if (v->flags & F_SDF_FL) + if (v->flags & PFCP_F_SDF_FL) { if (length < 3) return PFCP_CAUSE_INVALID_LENGTH; @@ -1070,7 +1073,7 @@ decode_sdf_filter (u8 *data, u16 length, void *p) length -= 3; } - if (v->flags & F_SDF_BID) + if (v->flags & PFCP_F_SDF_BID) { if (length < 4) return PFCP_CAUSE_INVALID_LENGTH; @@ -1083,59 +1086,60 @@ decode_sdf_filter (u8 *data, u16 length, void *p) } static int -encode_sdf_filter (void *p, u8 **vec) +encode_pfcp_ie_sdf_filter (void *p, u8 **vec) { - pfcp_sdf_filter_t *v = p; + pfcp_ie_sdf_filter_t *v = p; put_u8 (*vec, v->flags & 0x0f); put_u8 (*vec, 0); /* spare */ - if (v->flags & F_SDF_FD) + if (v->flags & PFCP_F_SDF_FD) { put_u16 (*vec, _vec_len (v->flow)); vec_append (*vec, v->flow); } - if (v->flags & F_SDF_TTC) + if (v->flags & PFCP_F_SDF_TTC) put_u16 (*vec, v->tos_traffic_class); - if (v->flags & F_SDF_SPI) + if (v->flags & PFCP_F_SDF_SPI) put_u32 (*vec, v->spi); - if (v->flags & F_SDF_FL) + if (v->flags & PFCP_F_SDF_FL) put_u24 (*vec, v->flow_label); - if (v->flags & F_SDF_BID) + if (v->flags & PFCP_F_SDF_BID) put_u32 (*vec, v->sdf_filter_id); return 0; } static void -free_sdf_filter (void *p) +free_pfcp_ie_sdf_filter (void *p) { - pfcp_sdf_filter_t *v = p; + pfcp_ie_sdf_filter_t *v = p; vec_free (v->flow); } -#define format_application_id format_simple_vec_ie -#define decode_application_id decode_simple_vec_ie -#define encode_application_id encode_simple_vec_ie -#define free_application_id free_simple_vec_ie +#define format_pfcp_ie_application_id format_simple_vec_ie +#define decode_pfcp_ie_application_id decode_simple_vec_ie +#define encode_pfcp_ie_application_id encode_simple_vec_ie +#define free_pfcp_ie_application_id free_simple_vec_ie static const char *gate_status_flags[] = { "OPEN", "CLOSED", NULL }; static u8 * -format_gate_status (u8 *s, va_list *args) +format_pfcp_ie_gate_status (u8 *s, va_list *args) { - pfcp_gate_status_t *v = va_arg (*args, pfcp_gate_status_t *); + pfcp_ie_gate_status_t *v = va_arg (*args, pfcp_ie_gate_status_t *); - return format (s, "UL:%U,DL:%U", format_enum, (u64) v->ul, gate_status_flags, - ARRAY_LEN (gate_status_flags), format_enum, (u64) v->dl, - gate_status_flags, ARRAY_LEN (gate_status_flags)); + return format (s, "UL:%U,DL:%U", format_pfcp_enum, (u64) v->ul, + gate_status_flags, ARRAY_LEN (gate_status_flags), + format_pfcp_enum, (u64) v->dl, gate_status_flags, + ARRAY_LEN (gate_status_flags)); } static int -decode_gate_status (u8 *data, u16 length, void *p) +decode_pfcp_ie_gate_status (u8 *data, u16 length, void *p) { - pfcp_gate_status_t *v = p; + pfcp_ie_gate_status_t *v = p; u8 status; if (length < 1) @@ -1151,9 +1155,9 @@ decode_gate_status (u8 *data, u16 length, void *p) } static int -encode_gate_status (void *p, u8 **vec) +encode_pfcp_ie_gate_status (void *p, u8 **vec) { - pfcp_gate_status_t *v = p; + pfcp_ie_gate_status_t *v = p; put_u8 (*vec, (v->dl & 0x03) | ((v->ul & 0x03) << 2)); @@ -1161,17 +1165,17 @@ encode_gate_status (void *p, u8 **vec) } static u8 * -format_bit_rate (u8 *s, va_list *args) +format_pfcp_ie_bit_rate (u8 *s, va_list *args) { - pfcp_bit_rate_t *v = va_arg (*args, pfcp_bit_rate_t *); + pfcp_ie_bit_rate_t *v = va_arg (*args, pfcp_ie_bit_rate_t *); return format (s, "UL:%u,DL:%u", v->ul, v->dl); } static int -decode_bit_rate (u8 *data, u16 length, void *p) +decode_pfcp_ie_bit_rate (u8 *data, u16 length, void *p) { - pfcp_bit_rate_t *v = p; + pfcp_ie_bit_rate_t *v = p; if (length < 10) return PFCP_CAUSE_INVALID_LENGTH; @@ -1183,9 +1187,9 @@ decode_bit_rate (u8 *data, u16 length, void *p) } static int -encode_bit_rate (void *p, u8 **vec) +encode_pfcp_ie_bit_rate (void *p, u8 **vec) { - pfcp_bit_rate_t *v = p; + pfcp_ie_bit_rate_t *v = p; put_u40 (*vec, v->ul); put_u40 (*vec, v->dl); @@ -1193,119 +1197,120 @@ encode_bit_rate (void *p, u8 **vec) return 0; } -#define format_mbr format_bit_rate -#define decode_mbr decode_bit_rate -#define encode_mbr encode_bit_rate +#define format_pfcp_ie_mbr format_pfcp_ie_bit_rate +#define decode_pfcp_ie_mbr decode_pfcp_ie_bit_rate +#define encode_pfcp_ie_mbr encode_pfcp_ie_bit_rate -#define format_gbr format_bit_rate -#define decode_gbr decode_bit_rate -#define encode_gbr encode_bit_rate +#define format_pfcp_ie_gbr format_pfcp_ie_bit_rate +#define decode_pfcp_ie_gbr decode_pfcp_ie_bit_rate +#define encode_pfcp_ie_gbr encode_pfcp_ie_bit_rate -#define format_qer_correlation_id format_u32_ie -#define decode_qer_correlation_id decode_u32_ie -#define encode_qer_correlation_id encode_u32_ie +#define format_pfcp_ie_qer_correlation_id format_u32_ie +#define decode_pfcp_ie_qer_correlation_id decode_u32_ie +#define encode_pfcp_ie_qer_correlation_id encode_u32_ie -#define format_precedence format_u32_ie -#define decode_precedence decode_u32_ie -#define encode_precedence encode_u32_ie +#define format_pfcp_ie_precedence format_u32_ie +#define decode_pfcp_ie_precedence decode_u32_ie +#define encode_pfcp_ie_precedence encode_u32_ie static u8 * -format_transport_level_marking (u8 *s, va_list *args) +format_pfcp_ie_transport_level_marking (u8 *s, va_list *args) { - pfcp_transport_level_marking_t *v = - va_arg (*args, pfcp_transport_level_marking_t *); + pfcp_ie_transport_level_marking_t *v = + va_arg (*args, pfcp_ie_transport_level_marking_t *); return format (s, "0x%04x", *v); } -#define decode_transport_level_marking decode_u16_ie -#define encode_transport_level_marking encode_u16_ie +#define decode_pfcp_ie_transport_level_marking decode_u16_ie +#define encode_pfcp_ie_transport_level_marking encode_u16_ie -#define format_volume_threshold format_volume_ie -#define decode_volume_threshold decode_volume_ie -#define encode_volume_threshold encode_volume_ie +#define format_pfcp_ie_volume_threshold format_pfcp_ie_volume +#define decode_pfcp_ie_volume_threshold decode_pfcp_ie_volume +#define encode_pfcp_ie_volume_threshold encode_pfcp_ie_volume -#define format_time_threshold format_u32_ie -#define decode_time_threshold decode_u32_ie -#define encode_time_threshold encode_u32_ie +#define format_pfcp_ie_time_threshold format_u32_ie +#define decode_pfcp_ie_time_threshold decode_u32_ie +#define encode_pfcp_ie_time_threshold encode_u32_ie -#define format_monitoring_time format_time_stamp -#define decode_monitoring_time decode_time_stamp_ie -#define encode_monitoring_time encode_time_stamp_ie +#define format_pfcp_ie_monitoring_time format_time_stamp +#define decode_pfcp_ie_monitoring_time decode_time_stamp +#define encode_pfcp_ie_monitoring_time encode_time_stamp -#define format_subsequent_volume_threshold format_volume_ie -#define decode_subsequent_volume_threshold decode_volume_ie -#define encode_subsequent_volume_threshold encode_volume_ie +#define format_pfcp_ie_subsequent_volume_threshold format_pfcp_ie_volume +#define decode_pfcp_ie_subsequent_volume_threshold decode_pfcp_ie_volume +#define encode_pfcp_ie_subsequent_volume_threshold encode_pfcp_ie_volume -#define format_subsequent_time_threshold format_u32_ie -#define decode_subsequent_time_threshold decode_u32_ie -#define encode_subsequent_time_threshold encode_u32_ie +#define format_pfcp_ie_subsequent_time_threshold format_u32_ie +#define decode_pfcp_ie_subsequent_time_threshold decode_u32_ie +#define encode_pfcp_ie_subsequent_time_threshold encode_u32_ie -#define format_inactivity_detection_time format_u32_ie -#define decode_inactivity_detection_time decode_u32_ie -#define encode_inactivity_detection_time encode_u32_ie +#define format_pfcp_ie_inactivity_detection_time format_u32_ie +#define decode_pfcp_ie_inactivity_detection_time decode_u32_ie +#define encode_pfcp_ie_inactivity_detection_time encode_u32_ie static u8 * -format_reporting_triggers (u8 *s, va_list *args) +format_pfcp_ie_reporting_triggers (u8 *s, va_list *args) { - pfcp_reporting_triggers_t *v = va_arg (*args, pfcp_reporting_triggers_t *); + pfcp_ie_reporting_triggers_t *v = + va_arg (*args, pfcp_ie_reporting_triggers_t *); s = format (s, "PERIO:%d,VOLTH:%d,TIMTH:%d,QUHTI:%d," "START:%d,STOPT:%d,DROTH:%d,LIUSA:%d," "VOLQU:%d,TIMQU:%d,ENVCL:%d,MACAR:%d," "EVETH:%d,EVEQU:%d,IPMJL:%d,QUVTI:%d", - !!(*v & REPORTING_TRIGGER_PERIODIC_REPORTING), - !!(*v & REPORTING_TRIGGER_VOLUME_THRESHOLD), - !!(*v & REPORTING_TRIGGER_TIME_THRESHOLD), - !!(*v & REPORTING_TRIGGER_QUOTA_HOLDING_TIME), - !!(*v & REPORTING_TRIGGER_START_OF_TRAFFIC), - !!(*v & REPORTING_TRIGGER_STOP_OF_TRAFFIC), - !!(*v & REPORTING_TRIGGER_DROPPED_DL_TRAFFIC_THRESHOLD), - !!(*v & REPORTING_TRIGGER_LINKED_USAGE_REPORTING), - !!(*v & REPORTING_TRIGGER_VOLUME_QUOTA), - !!(*v & REPORTING_TRIGGER_TIME_QUOTA), - !!(*v & REPORTING_TRIGGER_ENVELOPE_CLOSURE), - !!(*v & REPORTING_TRIGGER_MAC_ADDRESSES_REPORTING), - !!(*v & REPORTING_TRIGGER_EVENT_THRESHOLD), - !!(*v & REPORTING_TRIGGER_EVENT_QUOTA), - !!(*v & REPORTING_TRIGGER_IP_MULTICAST_JOIN_LEAVE), - !!(*v & REPORTING_TRIGGER_QUOTA_VALIDITY_TIME)); + !!(*v & PFCP_REPORTING_TRIGGER_PERIODIC_REPORTING), + !!(*v & PFCP_REPORTING_TRIGGER_VOLUME_THRESHOLD), + !!(*v & PFCP_REPORTING_TRIGGER_TIME_THRESHOLD), + !!(*v & PFCP_REPORTING_TRIGGER_QUOTA_HOLDING_TIME), + !!(*v & PFCP_REPORTING_TRIGGER_START_OF_TRAFFIC), + !!(*v & PFCP_REPORTING_TRIGGER_STOP_OF_TRAFFIC), + !!(*v & PFCP_REPORTING_TRIGGER_DROPPED_DL_TRAFFIC_THRESHOLD), + !!(*v & PFCP_REPORTING_TRIGGER_LINKED_USAGE_REPORTING), + !!(*v & PFCP_REPORTING_TRIGGER_VOLUME_QUOTA), + !!(*v & PFCP_REPORTING_TRIGGER_TIME_QUOTA), + !!(*v & PFCP_REPORTING_TRIGGER_ENVELOPE_CLOSURE), + !!(*v & PFCP_REPORTING_TRIGGER_MAC_ADDRESSES_REPORTING), + !!(*v & PFCP_REPORTING_TRIGGER_EVENT_THRESHOLD), + !!(*v & PFCP_REPORTING_TRIGGER_EVENT_QUOTA), + !!(*v & PFCP_REPORTING_TRIGGER_IP_MULTICAST_JOIN_LEAVE), + !!(*v & PFCP_REPORTING_TRIGGER_QUOTA_VALIDITY_TIME)); return s; } -#define decode_reporting_triggers decode_u16_little_ie -#define encode_reporting_triggers encode_u16_little_ie +#define decode_pfcp_ie_reporting_triggers decode_u16_little_ie +#define encode_pfcp_ie_reporting_triggers encode_u16_little_ie static char *redir_info_type[] = { - [REDIRECT_INFORMATION_IPv4] = "IPv4", - [REDIRECT_INFORMATION_IPv6] = "IPv6", - [REDIRECT_INFORMATION_HTTP] = "HTTP", - [REDIRECT_INFORMATION_SIP] = "SIP", + [PFCP_REDIRECT_INFORMATION_IPv4] = "IPv4", + [PFCP_REDIRECT_INFORMATION_IPv6] = "IPv6", + [PFCP_REDIRECT_INFORMATION_HTTP] = "HTTP", + [PFCP_REDIRECT_INFORMATION_SIP] = "SIP", }; u8 * -format_redirect_information (u8 *s, va_list *args) +format_pfcp_ie_redirect_information (u8 *s, va_list *args) { - pfcp_redirect_information_t *n = - va_arg (*args, pfcp_redirect_information_t *); + pfcp_ie_redirect_information_t *n = + va_arg (*args, pfcp_ie_redirect_information_t *); switch (n->type) { - case REDIRECT_INFORMATION_IPv4: - case REDIRECT_INFORMATION_IPv6: + case PFCP_REDIRECT_INFORMATION_IPv4: + case PFCP_REDIRECT_INFORMATION_IPv6: s = format (s, "%s to %U", redir_info_type[n->type], format_ip46_address, &n->ip, IP46_TYPE_ANY); break; - case REDIRECT_INFORMATION_IPv4v6: + case PFCP_REDIRECT_INFORMATION_IPv4v6: s = format (s, "%s to %U/%U", redir_info_type[n->type], format_ip46_address, &n->ip, IP46_TYPE_ANY, format_ip46_address, &n->other_ip, IP46_TYPE_ANY); break; - case REDIRECT_INFORMATION_HTTP: - case REDIRECT_INFORMATION_SIP: + case PFCP_REDIRECT_INFORMATION_HTTP: + case PFCP_REDIRECT_INFORMATION_SIP: s = format (s, "%s to %v", redir_info_type[n->type], n->uri); break; } @@ -1313,9 +1318,9 @@ format_redirect_information (u8 *s, va_list *args) } static int -decode_redirect_information (u8 *data, u16 length, void *p) +decode_pfcp_ie_redirect_information (u8 *data, u16 length, void *p) { - pfcp_redirect_information_t *v = p; + pfcp_ie_redirect_information_t *v = p; unformat_input_t input; u16 addr_len; int rv; @@ -1332,12 +1337,13 @@ decode_redirect_information (u8 *data, u16 length, void *p) switch (v->type) { - case REDIRECT_INFORMATION_IPv4: - case REDIRECT_INFORMATION_IPv6: + case PFCP_REDIRECT_INFORMATION_IPv4: + case PFCP_REDIRECT_INFORMATION_IPv6: unformat_init_string (&input, (char *) data, addr_len); - rv = unformat (&input, "%U", unformat_ip46_address, &v->ip, - v->type == REDIRECT_INFORMATION_IPv4 ? IP46_TYPE_IP4 : - IP46_TYPE_IP6); + rv = + unformat (&input, "%U", unformat_ip46_address, &v->ip, + v->type == PFCP_REDIRECT_INFORMATION_IPv4 ? IP46_TYPE_IP4 : + IP46_TYPE_IP6); unformat_free (&input); if (!rv) @@ -1345,7 +1351,7 @@ decode_redirect_information (u8 *data, u16 length, void *p) break; - case REDIRECT_INFORMATION_IPv4v6: + case PFCP_REDIRECT_INFORMATION_IPv4v6: unformat_init_string (&input, (char *) data, addr_len); rv = unformat (&input, "%U", unformat_ip46_address, &v->ip, IP46_TYPE_ANY); @@ -1375,8 +1381,8 @@ decode_redirect_information (u8 *data, u16 length, void *p) break; - case REDIRECT_INFORMATION_HTTP: - case REDIRECT_INFORMATION_SIP: + case PFCP_REDIRECT_INFORMATION_HTTP: + case PFCP_REDIRECT_INFORMATION_SIP: get_vec (v->uri, addr_len, data); length -= addr_len; break; @@ -1389,25 +1395,25 @@ decode_redirect_information (u8 *data, u16 length, void *p) } static int -encode_redirect_information (void *p, u8 **vec) +encode_pfcp_ie_redirect_information (void *p, u8 **vec) { - pfcp_redirect_information_t *v = p; + pfcp_ie_redirect_information_t *v = p; u8 *s; put_u8 (*vec, v->type); switch (v->type) { - case REDIRECT_INFORMATION_IPv4: - case REDIRECT_INFORMATION_IPv6: + case PFCP_REDIRECT_INFORMATION_IPv4: + case PFCP_REDIRECT_INFORMATION_IPv6: s = format (0, "%U", format_ip46_address, &v->ip, IP46_TYPE_ANY); put_u16 (*vec, vec_len (s)); vec_append (*vec, s); vec_free (s); break; - case REDIRECT_INFORMATION_HTTP: - case REDIRECT_INFORMATION_SIP: + case PFCP_REDIRECT_INFORMATION_HTTP: + case PFCP_REDIRECT_INFORMATION_SIP: put_u16 (*vec, vec_len (v->uri)); vec_append (*vec, v->uri); break; @@ -1417,66 +1423,68 @@ encode_redirect_information (void *p, u8 **vec) } void -cpy_redirect_information (pfcp_redirect_information_t *dst, - pfcp_redirect_information_t *src) +copy_pfcp_ie_redirect_information (pfcp_ie_redirect_information_t *dst, + pfcp_ie_redirect_information_t *src) { dst->type = src->type; switch (src->type) { - case REDIRECT_INFORMATION_IPv4: - case REDIRECT_INFORMATION_IPv6: + case PFCP_REDIRECT_INFORMATION_IPv4: + case PFCP_REDIRECT_INFORMATION_IPv6: dst->ip = src->ip; break; - case REDIRECT_INFORMATION_HTTP: - case REDIRECT_INFORMATION_SIP: + case PFCP_REDIRECT_INFORMATION_HTTP: + case PFCP_REDIRECT_INFORMATION_SIP: dst->uri = vec_dup (src->uri); break; } } void -free_redirect_information (void *p) +free_pfcp_ie_redirect_information (void *p) { - pfcp_redirect_information_t *v = p; + pfcp_ie_redirect_information_t *v = p; - if (v->type == REDIRECT_INFORMATION_HTTP || - v->type == REDIRECT_INFORMATION_SIP) + if (v->type == PFCP_REDIRECT_INFORMATION_HTTP || + v->type == PFCP_REDIRECT_INFORMATION_SIP) vec_free (v->uri); } static u8 * -format_report_type (u8 *s, va_list *args) +format_pfcp_ie_report_type (u8 *s, va_list *args) { - pfcp_report_type_t *v = va_arg (*args, pfcp_report_type_t *); + pfcp_ie_report_type_t *v = va_arg (*args, pfcp_ie_report_type_t *); - return format (s, "DLDR:%d,USAR:%d,ERIR:%d,UPIR:%d,PMIR:%d,SESR:%d,UISR:%d", - !!(*v & REPORT_TYPE_DLDR), !!(*v & REPORT_TYPE_USAR), - !!(*v & REPORT_TYPE_ERIR), !!(*v & REPORT_TYPE_UPIR), - !!(*v & REPORT_TYPE_PMIR), !!(*v & REPORT_TYPE_SESR), - !!(*v & REPORT_TYPE_UISR)); + return format ( + s, "DLDR:%d,USAR:%d,ERIR:%d,UPIR:%d,PMIR:%d,SESR:%d,UISR:%d", + !!(*v & PFCP_REPORT_TYPE_DLDR), !!(*v & PFCP_REPORT_TYPE_USAR), + !!(*v & PFCP_REPORT_TYPE_ERIR), !!(*v & PFCP_REPORT_TYPE_UPIR), + !!(*v & PFCP_REPORT_TYPE_PMIR), !!(*v & PFCP_REPORT_TYPE_SESR), + !!(*v & PFCP_REPORT_TYPE_UISR)); } -#define decode_report_type decode_u8_ie -#define encode_report_type encode_u8_ie +#define decode_pfcp_ie_report_type decode_u8_ie +#define encode_pfcp_ie_report_type encode_u8_ie -#define format_offending_ie format_u16_ie -#define decode_offending_ie decode_u16_ie -#define encode_offending_ie encode_u16_ie +#define format_pfcp_ie_offending_ie format_u16_ie +#define decode_pfcp_ie_offending_ie decode_u16_ie +#define encode_pfcp_ie_offending_ie encode_u16_ie static u8 * -format_forwarding_policy (u8 *s, va_list *args) +format_pfcp_ie_forwarding_policy (u8 *s, va_list *args) { - pfcp_forwarding_policy_t *v = va_arg (*args, pfcp_forwarding_policy_t *); + pfcp_ie_forwarding_policy_t *v = + va_arg (*args, pfcp_ie_forwarding_policy_t *); return format (s, "%v", v->identifier); } static int -decode_forwarding_policy (u8 *data, u16 length, void *p) +decode_pfcp_ie_forwarding_policy (u8 *data, u16 length, void *p) { - pfcp_forwarding_policy_t *v = p; + pfcp_ie_forwarding_policy_t *v = p; u8 fpi_len; if (length < 1) @@ -1494,9 +1502,9 @@ decode_forwarding_policy (u8 *data, u16 length, void *p) } static int -encode_forwarding_policy (void *p, u8 **vec) +encode_pfcp_ie_forwarding_policy (void *p, u8 **vec) { - pfcp_forwarding_policy_t *v = p; + pfcp_ie_forwarding_policy_t *v = p; put_u8 (*vec, vec_len (v->identifier)); vec_append (*vec, v->identifier); @@ -1505,9 +1513,9 @@ encode_forwarding_policy (void *p, u8 **vec) } void -free_forwarding_policy (void *p) +free_pfcp_ie_forwarding_policy (void *p) { - pfcp_forwarding_policy_t *v = p; + pfcp_ie_forwarding_policy_t *v = p; vec_free (v->identifier); } @@ -1523,71 +1531,76 @@ static char *destination_interface_name[] = { /* clang-format on */ static u8 * -format_destination_interface (u8 *s, va_list *args) +format_pfcp_ie_destination_interface (u8 *s, va_list *args) { - pfcp_destination_interface_t *v = - va_arg (*args, pfcp_destination_interface_t *); + pfcp_ie_destination_interface_t *v = + va_arg (*args, pfcp_ie_destination_interface_t *); return format (s, "%s", destination_interface_name[*v]); } static int -decode_destination_interface (u8 *data, u16 length, void *p) +decode_pfcp_ie_destination_interface (u8 *data, u16 length, void *p) { - pfcp_destination_interface_t *v = p; + pfcp_ie_destination_interface_t *v = p; if (length < 1) return PFCP_CAUSE_INVALID_LENGTH; *v = get_u8 (data) & 0x0f; - if (*v >= DST_INTF_NUM) + if (*v >= PFCP_DST_INTF_NUM) return PFCP_CAUSE_REQUEST_REJECTED; return 0; } static int -encode_destination_interface (void *p, u8 **vec) +encode_pfcp_ie_destination_interface (void *p, u8 **vec) { - pfcp_destination_interface_t *v = p; + pfcp_ie_destination_interface_t *v = p; put_u8 (*vec, *v); return 0; } static u8 * -format_up_function_features (u8 *s, va_list *args) +format_pfcp_ie_up_function_features (u8 *s, va_list *args) { - pfcp_up_function_features_t *v = - va_arg (*args, pfcp_up_function_features_t *); + pfcp_ie_up_function_features_t *v = + va_arg (*args, pfcp_ie_up_function_features_t *); - return format ( - s, - "BUCP:%d,DDND:%d,DLBD:%d,TRST:%d," - "FTUP:%d,PFDM:%d,HEEU:%d,TREU:%d," - "EMPU:%d,PDIU:%d,UDBC:%d,QUOAC:%d," - "TRACE:%d,FRRT:%d,PFDE:%d,EPFAR:%d," - "DPDRA:%d,ADPDP:%d,UEIP:%d,SSET:%d," - "MNOP:%d,MTE:%d,BUNDL:%d,GCOM:%d," - "MPAS:%d,RTTL:%d,VTIME:%d,NORP:%d," - "IPTV:%d,IP6PL:%d,TSCU:%d,MPTCP:%d," - "ATSSS-LL:%d,QFQM:%d,GPQM:%d", - !!(*v & F_UPFF_BUCP), !!(*v & F_UPFF_DDND), !!(*v & F_UPFF_DLBD), - !!(*v & F_UPFF_TRST), !!(*v & F_UPFF_FTUP), !!(*v & F_UPFF_PFDM), - !!(*v & F_UPFF_HEEU), !!(*v & F_UPFF_TREU), !!(*v & F_UPFF_EMPU), - !!(*v & F_UPFF_PDIU), !!(*v & F_UPFF_UDBC), !!(*v & F_UPFF_QUOAC), - !!(*v & F_UPFF_TRACE), !!(*v & F_UPFF_FRRT), !!(*v & F_UPFF_PFDE), - !!(*v & F_UPFF_EPFAR), !!(*v & F_UPFF_DPDRA), !!(*v & F_UPFF_ADPDP), - !!(*v & F_UPFF_UEIP), !!(*v & F_UPFF_SSET), !!(*v & F_UPFF_MNOP), - !!(*v & F_UPFF_MTE), !!(*v & F_UPFF_BUNDL), !!(*v & F_UPFF_GCOM), - !!(*v & F_UPFF_MPAS), !!(*v & F_UPFF_RTTL), !!(*v & F_UPFF_VTIME), - !!(*v & F_UPFF_NORP), !!(*v & F_UPFF_IPTV), !!(*v & F_UPFF_IP6PL), - !!(*v & F_UPFF_TSCU), !!(*v & F_UPFF_MPTCP), !!(*v & F_UPFF_ATSSS_LL), - !!(*v & F_UPFF_QFQM), !!(*v & F_UPFF_GPQM)); + return format (s, + "BUCP:%d,DDND:%d,DLBD:%d,TRST:%d," + "FTUP:%d,PFDM:%d,HEEU:%d,TREU:%d," + "EMPU:%d,PDIU:%d,UDBC:%d,QUOAC:%d," + "TRACE:%d,FRRT:%d,PFDE:%d,EPFAR:%d," + "DPDRA:%d,ADPDP:%d,UEIP:%d,SSET:%d," + "MNOP:%d,MTE:%d,BUNDL:%d,GCOM:%d," + "MPAS:%d,RTTL:%d,VTIME:%d,NORP:%d," + "IPTV:%d,IP6PL:%d,TSCU:%d,MPTCP:%d," + "ATSSS-LL:%d,QFQM:%d,GPQM:%d", + !!(*v & PFCP_F_UPFF_BUCP), !!(*v & PFCP_F_UPFF_DDND), + !!(*v & PFCP_F_UPFF_DLBD), !!(*v & PFCP_F_UPFF_TRST), + !!(*v & PFCP_F_UPFF_FTUP), !!(*v & PFCP_F_UPFF_PFDM), + !!(*v & PFCP_F_UPFF_HEEU), !!(*v & PFCP_F_UPFF_TREU), + !!(*v & PFCP_F_UPFF_EMPU), !!(*v & PFCP_F_UPFF_PDIU), + !!(*v & PFCP_F_UPFF_UDBC), !!(*v & PFCP_F_UPFF_QUOAC), + !!(*v & PFCP_F_UPFF_TRACE), !!(*v & PFCP_F_UPFF_FRRT), + !!(*v & PFCP_F_UPFF_PFDE), !!(*v & PFCP_F_UPFF_EPFAR), + !!(*v & PFCP_F_UPFF_DPDRA), !!(*v & PFCP_F_UPFF_ADPDP), + !!(*v & PFCP_F_UPFF_UEIP), !!(*v & PFCP_F_UPFF_SSET), + !!(*v & PFCP_F_UPFF_MNOP), !!(*v & PFCP_F_UPFF_MTE), + !!(*v & PFCP_F_UPFF_BUNDL), !!(*v & PFCP_F_UPFF_GCOM), + !!(*v & PFCP_F_UPFF_MPAS), !!(*v & PFCP_F_UPFF_RTTL), + !!(*v & PFCP_F_UPFF_VTIME), !!(*v & PFCP_F_UPFF_NORP), + !!(*v & PFCP_F_UPFF_IPTV), !!(*v & PFCP_F_UPFF_IP6PL), + !!(*v & PFCP_F_UPFF_TSCU), !!(*v & PFCP_F_UPFF_MPTCP), + !!(*v & PFCP_F_UPFF_ATSSS_LL), !!(*v & PFCP_F_UPFF_QFQM), + !!(*v & PFCP_F_UPFF_GPQM)); } static int -decode_up_function_features (u8 *data, u16 length, void *p) +decode_pfcp_ie_up_function_features (u8 *data, u16 length, void *p) { u64 *v = p; @@ -1615,7 +1628,7 @@ decode_up_function_features (u8 *data, u16 length, void *p) } static int -encode_up_function_features (void *p, u8 **vec) +encode_pfcp_ie_up_function_features (void *p, u8 **vec) { u64 *v = p; @@ -1627,32 +1640,32 @@ encode_up_function_features (void *p, u8 **vec) } static u8 * -format_apply_action (u8 *s, va_list *args) +format_pfcp_ie_apply_action (u8 *s, va_list *args) { - pfcp_apply_action_t *v = va_arg (*args, pfcp_apply_action_t *); + pfcp_ie_apply_action_t *v = va_arg (*args, pfcp_ie_apply_action_t *); return format (s, "DROP:%d,FORW:%d,BUFF:%d,NOCP:%d,DUPL:%d,IPMA:%d,IPMD:%d", - !!(*v & F_APPLY_DROP), !!(*v & F_APPLY_FORW), - !!(*v & F_APPLY_BUFF), !!(*v & F_APPLY_NOCP), - !!(*v & F_APPLY_DUPL), !!(*v & F_APPLY_IPMA), - !!(*v & F_APPLY_IPMD)); + !!(*v & PFCP_F_APPLY_DROP), !!(*v & PFCP_F_APPLY_FORW), + !!(*v & PFCP_F_APPLY_BUFF), !!(*v & PFCP_F_APPLY_NOCP), + !!(*v & PFCP_F_APPLY_DUPL), !!(*v & PFCP_F_APPLY_IPMA), + !!(*v & PFCP_F_APPLY_IPMD)); } -#define decode_apply_action decode_u8_ie -#define encode_apply_action encode_u8_ie +#define decode_pfcp_ie_apply_action decode_u8_ie +#define encode_pfcp_ie_apply_action encode_u8_ie static u8 * -format_downlink_data_service_information (u8 *s, va_list *args) +format_pfcp_ie_downlink_data_service_information (u8 *s, va_list *args) { - pfcp_downlink_data_service_information_t *v = - va_arg (*args, pfcp_downlink_data_service_information_t *); + pfcp_ie_downlink_data_service_information_t *v = + va_arg (*args, pfcp_ie_downlink_data_service_information_t *); - if (v->flags & F_DDSI_PPI) + if (v->flags & PFCP_F_DDSI_PPI) s = format (s, "PPI:0x%02x", v->paging_policy_indication); - if (v->flags & F_DDSI_QFII) + if (v->flags & PFCP_F_DDSI_QFII) { - if (v->flags & F_DDSI_PPI) + if (v->flags & PFCP_F_DDSI_PPI) vec_add1 (s, ','); s = format (s, "QFI:0x%02x", v->qfi); } @@ -1661,9 +1674,10 @@ format_downlink_data_service_information (u8 *s, va_list *args) } static int -decode_downlink_data_service_information (u8 *data, u16 length, void *p) +decode_pfcp_ie_downlink_data_service_information (u8 *data, u16 length, + void *p) { - pfcp_downlink_data_service_information_t *v = p; + pfcp_ie_downlink_data_service_information_t *v = p; if (length < 1) return PFCP_CAUSE_INVALID_LENGTH; @@ -1671,7 +1685,7 @@ decode_downlink_data_service_information (u8 *data, u16 length, void *p) v->flags = get_u8 (data) & 0x03; length--; - if (v->flags & F_DDSI_PPI) + if (v->flags & PFCP_F_DDSI_PPI) { if (length < 1) return PFCP_CAUSE_INVALID_LENGTH; @@ -1680,7 +1694,7 @@ decode_downlink_data_service_information (u8 *data, u16 length, void *p) length--; } - if (v->flags & F_DDSI_QFII) + if (v->flags & PFCP_F_DDSI_QFII) { if (length < 1) return PFCP_CAUSE_INVALID_LENGTH; @@ -1693,40 +1707,41 @@ decode_downlink_data_service_information (u8 *data, u16 length, void *p) } static int -encode_downlink_data_service_information (void *p, u8 **vec) +encode_pfcp_ie_downlink_data_service_information (void *p, u8 **vec) { - pfcp_downlink_data_service_information_t *v = p; + pfcp_ie_downlink_data_service_information_t *v = p; put_u8 (*vec, v->flags); - if (v->flags & F_DDSI_PPI) + if (v->flags & PFCP_F_DDSI_PPI) put_u8 (*vec, v->paging_policy_indication); - if (v->flags & F_DDSI_QFII) + if (v->flags & PFCP_F_DDSI_QFII) put_u8 (*vec, v->qfi); return 0; } -#define format_downlink_data_notification_delay format_u8_ie -#define decode_downlink_data_notification_delay decode_u8_ie -#define encode_downlink_data_notification_delay encode_u8_ie +#define format_pfcp_ie_downlink_data_notification_delay format_u8_ie +#define decode_pfcp_ie_downlink_data_notification_delay decode_u8_ie +#define encode_pfcp_ie_downlink_data_notification_delay encode_u8_ie -#define format_dl_buffering_duration format_timer_ie -#define decode_dl_buffering_duration decode_timer_ie -#define encode_dl_buffering_duration encode_timer_ie +#define format_pfcp_ie_dl_buffering_duration format_pfcp_ie_timer +#define decode_pfcp_ie_dl_buffering_duration decode_pfcp_ie_timer +#define encode_pfcp_ie_dl_buffering_duration encode_pfcp_ie_timer static u8 * -format_dl_buffering_suggested_packet_count (u8 *s, va_list *args) +format_pfcp_ie_dl_buffering_suggested_packet_count (u8 *s, va_list *args) { - pfcp_dl_buffering_suggested_packet_count_t *v = - va_arg (*args, pfcp_dl_buffering_suggested_packet_count_t *); + pfcp_ie_dl_buffering_suggested_packet_count_t *v = + va_arg (*args, pfcp_ie_dl_buffering_suggested_packet_count_t *); return format (s, "%u", v); } static int -decode_dl_buffering_suggested_packet_count (u8 *data, u16 length, void *p) +decode_pfcp_ie_dl_buffering_suggested_packet_count (u8 *data, u16 length, + void *p) { - pfcp_dl_buffering_suggested_packet_count_t *v = p; + pfcp_ie_dl_buffering_suggested_packet_count_t *v = p; switch (length) { @@ -1744,9 +1759,9 @@ decode_dl_buffering_suggested_packet_count (u8 *data, u16 length, void *p) } static int -encode_dl_buffering_suggested_packet_count (void *p, u8 **vec) +encode_pfcp_ie_dl_buffering_suggested_packet_count (void *p, u8 **vec) { - pfcp_dl_buffering_suggested_packet_count_t *v = p; + pfcp_ie_dl_buffering_suggested_packet_count_t *v = p; if (*v < 256) put_u8 (*vec, *v); @@ -1757,62 +1772,59 @@ encode_dl_buffering_suggested_packet_count (void *p, u8 **vec) } static u8 * -format_pfcpsmreq_flags (u8 *s, va_list *args) +format_pfcp_ie_pfcpsmreq_flags (u8 *s, va_list *args) { - pfcp_pfcpsmreq_flags_t *v = va_arg (*args, pfcp_pfcpsmreq_flags_t *); + pfcp_ie_pfcpsmreq_flags_t *v = va_arg (*args, pfcp_ie_pfcpsmreq_flags_t *); - return format (s, "DROBU:%d,SNDEM:%d,QUARR:%d", !!(*v & PFCPSMREQ_DROBU), - !!(*v & PFCPSMREQ_SNDEM), !!(*v & PFCPSMREQ_QAURR)); + return format (s, "DROBU:%d,SNDEM:%d,QUARR:%d", + !!(*v & PFCP_PFCPSMREQ_DROBU), !!(*v & PFCP_PFCPSMREQ_SNDEM), + !!(*v & PFCP_PFCPSMREQ_QAURR)); } -#define decode_pfcpsmreq_flags decode_u8_ie -#define encode_pfcpsmreq_flags encode_u8_ie +#define decode_pfcp_ie_pfcpsmreq_flags decode_u8_ie +#define encode_pfcp_ie_pfcpsmreq_flags encode_u8_ie static u8 * -format_pfcpsrrsp_flags (u8 *s, va_list *args) +format_pfcp_ie_pfcpsrrsp_flags (u8 *s, va_list *args) { - pfcp_pfcpsrrsp_flags_t *v = va_arg (*args, pfcp_pfcpsrrsp_flags_t *); + pfcp_ie_pfcpsrrsp_flags_t *v = va_arg (*args, pfcp_ie_pfcpsrrsp_flags_t *); - return format (s, "DROBU:%d", !!(*v & PFCPSRRSP_DROBU)); + return format (s, "DROBU:%d", !!(*v & PFCP_PFCPSRRSP_DROBU)); } -#define decode_pfcpsrrsp_flags decode_u8_ie -#define encode_pfcpsrrsp_flags encode_u8_ie - -#define format_sequence_number format_u32_ie -#define decode_sequence_number decode_u32_ie -#define encode_sequence_number encode_u32_ie +#define decode_pfcp_ie_pfcpsrrsp_flags decode_u8_ie +#define encode_pfcp_ie_pfcpsrrsp_flags encode_u8_ie -#define format_metric format_u8_ie -#define decode_metric decode_u8_ie -#define encode_metric encode_u8_ie +#define format_pfcp_ie_sequence_number format_u32_ie +#define decode_pfcp_ie_sequence_number decode_u32_ie +#define encode_pfcp_ie_sequence_number encode_u32_ie -#define format_timer format_timer_ie -#define decode_timer decode_timer_ie -#define encode_timer encode_timer_ie +#define format_pfcp_ie_metric format_u8_ie +#define decode_pfcp_ie_metric decode_u8_ie +#define encode_pfcp_ie_metric encode_u8_ie -#define format_pdr_id format_u16_ie -#define decode_pdr_id decode_u16_ie -#define encode_pdr_id encode_u16_ie +#define format_pfcp_ie_pdr_id format_u16_ie +#define decode_pfcp_ie_pdr_id decode_u16_ie +#define encode_pfcp_ie_pdr_id encode_u16_ie u8 * -format_f_seid (u8 *s, va_list *args) +format_pfcp_ie_f_seid (u8 *s, va_list *args) { - pfcp_f_seid_t *n = va_arg (*args, pfcp_f_seid_t *); + pfcp_ie_f_seid_t *n = va_arg (*args, pfcp_ie_f_seid_t *); s = format (s, "0x%016" PRIx64 "@", n->seid); - switch (n->flags & (IE_F_SEID_IP_ADDRESS_V4 | IE_F_SEID_IP_ADDRESS_V6)) + switch (n->flags & (PFCP_F_SEID_IP_ADDRESS_V4 | PFCP_F_SEID_IP_ADDRESS_V6)) { - case IE_F_SEID_IP_ADDRESS_V4: + case PFCP_F_SEID_IP_ADDRESS_V4: s = format (s, "%U", format_ip4_address, &n->ip4); break; - case IE_F_SEID_IP_ADDRESS_V6: + case PFCP_F_SEID_IP_ADDRESS_V6: s = format (s, "%U", format_ip6_address, &n->ip6); break; - case (IE_F_SEID_IP_ADDRESS_V4 | IE_F_SEID_IP_ADDRESS_V6): + case (PFCP_F_SEID_IP_ADDRESS_V4 | PFCP_F_SEID_IP_ADDRESS_V6): s = format (s, "%U,%U", format_ip4_address, &n->ip4, format_ip6_address, &n->ip6); break; @@ -1822,9 +1834,9 @@ format_f_seid (u8 *s, va_list *args) } static int -decode_f_seid (u8 *data, u16 length, void *p) +decode_pfcp_ie_f_seid (u8 *data, u16 length, void *p) { - pfcp_f_seid_t *v = p; + pfcp_ie_f_seid_t *v = p; if (length < 9) return PFCP_CAUSE_INVALID_LENGTH; @@ -1838,7 +1850,7 @@ decode_f_seid (u8 *data, u16 length, void *p) v->seid = get_u64 (data); - if (v->flags & IE_F_SEID_IP_ADDRESS_V4) + if (v->flags & PFCP_F_SEID_IP_ADDRESS_V4) { if (length < 4) return PFCP_CAUSE_INVALID_LENGTH; @@ -1847,7 +1859,7 @@ decode_f_seid (u8 *data, u16 length, void *p) length -= 4; } - if (v->flags & IE_F_SEID_IP_ADDRESS_V6) + if (v->flags & PFCP_F_SEID_IP_ADDRESS_V6) { if (length < 16) return PFCP_CAUSE_INVALID_LENGTH; @@ -1859,45 +1871,45 @@ decode_f_seid (u8 *data, u16 length, void *p) } static int -encode_f_seid (void *p, u8 **vec) +encode_pfcp_ie_f_seid (void *p, u8 **vec) { - pfcp_f_seid_t *v = p; + pfcp_ie_f_seid_t *v = p; put_u8 (*vec, v->flags); put_u64 (*vec, v->seid); - if (v->flags & IE_F_SEID_IP_ADDRESS_V4) + if (v->flags & PFCP_F_SEID_IP_ADDRESS_V4) put_ip4 (*vec, v->ip4); - if (v->flags & IE_F_SEID_IP_ADDRESS_V6) + if (v->flags & PFCP_F_SEID_IP_ADDRESS_V6) put_ip6 (*vec, v->ip6); return 0; } u8 * -format_node_id (u8 *s, va_list *args) +format_pfcp_ie_node_id (u8 *s, va_list *args) { - pfcp_node_id_t *n = va_arg (*args, pfcp_node_id_t *); + pfcp_ie_node_id_t *n = va_arg (*args, pfcp_ie_node_id_t *); switch (n->type) { - case NID_IPv4: - case NID_IPv6: + case PFCP_NID_IPv4: + case PFCP_NID_IPv6: s = format (s, "%U", format_ip46_address, &n->ip, IP46_TYPE_ANY); break; - case NID_FQDN: - s = format (s, "%U", format_dns_labels, n->fqdn); + case PFCP_NID_FQDN: + s = format (s, "%U", format_pfcp_dns_labels, n->fqdn); break; } return s; } static int -decode_node_id (u8 *data, u16 length, void *p) +decode_pfcp_ie_node_id (u8 *data, u16 length, void *p) { - pfcp_node_id_t *v = p; + pfcp_ie_node_id_t *v = p; if (length < 1) return PFCP_CAUSE_INVALID_LENGTH; @@ -1907,19 +1919,19 @@ decode_node_id (u8 *data, u16 length, void *p) switch (v->type) { - case NID_IPv4: + case PFCP_NID_IPv4: if (length < 4) return PFCP_CAUSE_INVALID_LENGTH; get_ip46_ip4 (v->ip, data); break; - case NID_IPv6: + case PFCP_NID_IPv6: if (length < 16) return PFCP_CAUSE_INVALID_LENGTH; get_ip46_ip6 (v->ip, data); break; - case NID_FQDN: + case PFCP_NID_FQDN: get_vec (v->fqdn, length, data); break; @@ -1931,23 +1943,23 @@ decode_node_id (u8 *data, u16 length, void *p) } static int -encode_node_id (void *p, u8 **vec) +encode_pfcp_ie_node_id (void *p, u8 **vec) { - pfcp_node_id_t *v = p; + pfcp_ie_node_id_t *v = p; put_u8 (*vec, v->type); switch (v->type) { - case NID_IPv4: + case PFCP_NID_IPv4: put_ip46_ip4 (*vec, v->ip); break; - case NID_IPv6: + case PFCP_NID_IPv6: put_ip46_ip6 (*vec, v->ip); break; - case NID_FQDN: + case PFCP_NID_FQDN: vec_append (*vec, v->fqdn); break; } @@ -1956,18 +1968,18 @@ encode_node_id (void *p, u8 **vec) } void -free_node_id (void *p) +free_pfcp_ie_node_id (void *p) { - pfcp_node_id_t *v = p; + pfcp_ie_node_id_t *v = p; - if (v->type == NID_FQDN) + if (v->type == PFCP_NID_FQDN) vec_free (v->fqdn); } static u8 * -format_pfd_contents (u8 *s0, va_list *args) +format_pfcp_ie_pfd_contents (u8 *s0, va_list *args) { - pfcp_pfd_contents_t *v = va_arg (*args, pfcp_pfd_contents_t *); + pfcp_ie_pfd_contents_t *v = va_arg (*args, pfcp_ie_pfd_contents_t *); u8 *s = s0; if (vec_len (v->flow_description) > 0) @@ -1990,20 +2002,20 @@ format_pfd_contents (u8 *s0, va_list *args) } static int -decode_pfd_contents (u8 *data, u16 length, void *p) +decode_pfcp_ie_pfd_contents (u8 *data, u16 length, void *p) { - pfcp_pfd_contents_t *v = p; + pfcp_ie_pfd_contents_t *v = p; u8 flags; u16 len; if (length < 2) return PFCP_CAUSE_INVALID_LENGTH; - flags = get_u8 (data) & F_PFD_C_MASK; + flags = get_u8 (data) & PFCP_F_PFD_C_MASK; data++; /* spare */ length -= 2; - if (flags & F_PFD_C_FD) + if (flags & PFCP_F_PFD_C_FD) { if (length < 2) return PFCP_CAUSE_INVALID_LENGTH; @@ -2018,7 +2030,7 @@ decode_pfd_contents (u8 *data, u16 length, void *p) length -= len; } - if (flags & F_PFD_C_URL) + if (flags & PFCP_F_PFD_C_URL) { if (length < 2) return PFCP_CAUSE_INVALID_LENGTH; @@ -2033,7 +2045,7 @@ decode_pfd_contents (u8 *data, u16 length, void *p) length -= len; } - if (flags & F_PFD_C_DN) + if (flags & PFCP_F_PFD_C_DN) { if (length < 2) return PFCP_CAUSE_INVALID_LENGTH; @@ -2048,7 +2060,7 @@ decode_pfd_contents (u8 *data, u16 length, void *p) length -= len; } - if (flags & F_PFD_C_CP) + if (flags & PFCP_F_PFD_C_CP) { if (length < 2) return PFCP_CAUSE_INVALID_LENGTH; @@ -2063,7 +2075,7 @@ decode_pfd_contents (u8 *data, u16 length, void *p) length -= len; } - if (flags & F_PFD_C_DNP) + if (flags & PFCP_F_PFD_C_DNP) { if (length < 2) return PFCP_CAUSE_INVALID_LENGTH; @@ -2082,16 +2094,16 @@ decode_pfd_contents (u8 *data, u16 length, void *p) } static int -encode_pfd_contents (void *p, u8 **vec) +encode_pfcp_ie_pfd_contents (void *p, u8 **vec) { - pfcp_pfd_contents_t *v = p; + pfcp_ie_pfd_contents_t *v = p; u8 flags; - flags = ((vec_len (v->flow_description) > 0) ? F_PFD_C_FD : 0) | - ((vec_len (v->url) > 0) ? F_PFD_C_URL : 0) | - ((vec_len (v->domain) > 0) ? F_PFD_C_DN : 0) | - ((vec_len (v->custom) > 0) ? F_PFD_C_CP : 0) | - ((vec_len (v->dnp) > 0) ? F_PFD_C_DNP : 0); + flags = ((vec_len (v->flow_description) > 0) ? PFCP_F_PFD_C_FD : 0) | + ((vec_len (v->url) > 0) ? PFCP_F_PFD_C_URL : 0) | + ((vec_len (v->domain) > 0) ? PFCP_F_PFD_C_DN : 0) | + ((vec_len (v->custom) > 0) ? PFCP_F_PFD_C_CP : 0) | + ((vec_len (v->dnp) > 0) ? PFCP_F_PFD_C_DNP : 0); put_u8 (*vec, flags); if (vec_len (v->flow_description) > 0) @@ -2124,9 +2136,9 @@ encode_pfd_contents (void *p, u8 **vec) } static void -free_pfd_contents (void *p) +free_pfcp_ie_pfd_contents (void *p) { - pfcp_pfd_contents_t *v = p; + pfcp_ie_pfd_contents_t *v = p; vec_free (v->flow_description); vec_free (v->url); @@ -2136,56 +2148,59 @@ free_pfd_contents (void *p) } static u8 * -format_measurement_method (u8 *s, va_list *args) +format_pfcp_ie_measurement_method (u8 *s, va_list *args) { - pfcp_measurement_method_t *v = va_arg (*args, pfcp_measurement_method_t *); + pfcp_ie_measurement_method_t *v = + va_arg (*args, pfcp_ie_measurement_method_t *); - s = format ( - s, "DURAT:%d,VOLUM:%d,EVENT:%d", !!(*v & MEASUREMENT_METHOD_DURATION), - !!(*v & MEASUREMENT_METHOD_VOLUME), !!(*v & MEASUREMENT_METHOD_EVENT)); + s = format (s, "DURAT:%d,VOLUM:%d,EVENT:%d", + !!(*v & PFCP_MEASUREMENT_METHOD_DURATION), + !!(*v & PFCP_MEASUREMENT_METHOD_VOLUME), + !!(*v & PFCP_MEASUREMENT_METHOD_EVENT)); return s; } -#define decode_measurement_method decode_u8_ie -#define encode_measurement_method encode_u8_ie +#define decode_pfcp_ie_measurement_method decode_u8_ie +#define encode_pfcp_ie_measurement_method encode_u8_ie static u8 * -format_usage_report_trigger (u8 *s, va_list *args) +format_pfcp_ie_usage_report_trigger (u8 *s, va_list *args) { - pfcp_usage_report_trigger_t *v = - va_arg (*args, pfcp_usage_report_trigger_t *); + pfcp_ie_usage_report_trigger_t *v = + va_arg (*args, pfcp_ie_usage_report_trigger_t *); - s = format (s, - "PERIO:%d,VOLTH:%d,TIMTH:%d,QUHTI:%d," - "START:%d,STOPT:%d,DROTH:%d,IMMER:%d," - "VOLQU:%d,TIMQU:%d,LIUSA:%d,TERMR:%d," - "MONIT:%d,ENVCL:%d,MACAR:%d,EVETH:%d," - "EVEQU:%d,TEBUR:%d,IPMJL:%d,QUVTI:%d", - !!(*v & USAGE_REPORT_TRIGGER_PERIODIC_REPORTING), - !!(*v & USAGE_REPORT_TRIGGER_VOLUME_THRESHOLD), - !!(*v & USAGE_REPORT_TRIGGER_TIME_THRESHOLD), - !!(*v & USAGE_REPORT_TRIGGER_QUOTA_HOLDING_TIME), - !!(*v & USAGE_REPORT_TRIGGER_START_OF_TRAFFIC), - !!(*v & USAGE_REPORT_TRIGGER_STOP_OF_TRAFFIC), - !!(*v & USAGE_REPORT_TRIGGER_DROPPED_DL_TRAFFIC_THRESHOLD), - !!(*v & USAGE_REPORT_TRIGGER_IMMEDIATE_REPORT), - !!(*v & USAGE_REPORT_TRIGGER_VOLUME_QUOTA), - !!(*v & USAGE_REPORT_TRIGGER_TIME_QUOTA), - !!(*v & USAGE_REPORT_TRIGGER_LINKED_USAGE_REPORTING), - !!(*v & USAGE_REPORT_TRIGGER_TERMINATION_REPORT), - !!(*v & USAGE_REPORT_TRIGGER_MONITORING_TIME), - !!(*v & USAGE_REPORT_TRIGGER_ENVELOPE_CLOSURE), - !!(*v & USAGE_REPORT_TRIGGER_MAC_ADDRESSES_REPORTING), - !!(*v & USAGE_REPORT_TRIGGER_EVENT_THRESHOLD), - !!(*v & USAGE_REPORT_TRIGGER_EVENT_QUOTA), - !!(*v & USAGE_REPORT_TRIGGER_TERMINATION_BY_UP_FUNCTION_REPORT), - !!(*v & USAGE_REPORT_TRIGGER_IP_MULTICAST_JOIN_LEAVE), - !!(*v & USAGE_REPORT_TRIGGER_QUOTA_VALIDITY_TIME)); + s = format ( + s, + "PERIO:%d,VOLTH:%d,TIMTH:%d,QUHTI:%d," + "START:%d,STOPT:%d,DROTH:%d,IMMER:%d," + "VOLQU:%d,TIMQU:%d,LIUSA:%d,TERMR:%d," + "MONIT:%d,ENVCL:%d,MACAR:%d,EVETH:%d," + "EVEQU:%d,TEBUR:%d,IPMJL:%d,QUVTI:%d", + !!(*v & PFCP_USAGE_REPORT_TRIGGER_PERIODIC_REPORTING), + !!(*v & PFCP_USAGE_REPORT_TRIGGER_VOLUME_THRESHOLD), + !!(*v & PFCP_USAGE_REPORT_TRIGGER_TIME_THRESHOLD), + !!(*v & PFCP_USAGE_REPORT_TRIGGER_QUOTA_HOLDING_TIME), + !!(*v & PFCP_USAGE_REPORT_TRIGGER_START_OF_TRAFFIC), + !!(*v & PFCP_USAGE_REPORT_TRIGGER_STOP_OF_TRAFFIC), + !!(*v & PFCP_USAGE_REPORT_TRIGGER_DROPPED_DL_TRAFFIC_THRESHOLD), + !!(*v & PFCP_USAGE_REPORT_TRIGGER_IMMEDIATE_REPORT), + !!(*v & PFCP_USAGE_REPORT_TRIGGER_VOLUME_QUOTA), + !!(*v & PFCP_USAGE_REPORT_TRIGGER_TIME_QUOTA), + !!(*v & PFCP_USAGE_REPORT_TRIGGER_LINKED_USAGE_REPORTING), + !!(*v & PFCP_USAGE_REPORT_TRIGGER_TERMINATION_REPORT), + !!(*v & PFCP_USAGE_REPORT_TRIGGER_MONITORING_TIME), + !!(*v & PFCP_USAGE_REPORT_TRIGGER_ENVELOPE_CLOSURE), + !!(*v & PFCP_USAGE_REPORT_TRIGGER_MAC_ADDRESSES_REPORTING), + !!(*v & PFCP_USAGE_REPORT_TRIGGER_EVENT_THRESHOLD), + !!(*v & PFCP_USAGE_REPORT_TRIGGER_EVENT_QUOTA), + !!(*v & PFCP_USAGE_REPORT_TRIGGER_TERMINATION_BY_UP_FUNCTION_REPORT), + !!(*v & PFCP_USAGE_REPORT_TRIGGER_IP_MULTICAST_JOIN_LEAVE), + !!(*v & PFCP_USAGE_REPORT_TRIGGER_QUOTA_VALIDITY_TIME)); return s; } static int -decode_usage_report_trigger (u8 *data, u16 length, void *p) +decode_pfcp_ie_usage_report_trigger (u8 *data, u16 length, void *p) { u64 *v = p; @@ -2202,7 +2217,7 @@ decode_usage_report_trigger (u8 *data, u16 length, void *p) } static int -encode_usage_report_trigger (void *p, u8 **vec) +encode_pfcp_ie_usage_report_trigger (void *p, u8 **vec) { u32 *v = p; @@ -2212,24 +2227,24 @@ encode_usage_report_trigger (void *p, u8 **vec) return 0; } -#define format_measurement_period format_u32_ie -#define decode_measurement_period decode_u32_ie -#define encode_measurement_period encode_u32_ie +#define format_pfcp_ie_measurement_period format_u32_ie +#define decode_pfcp_ie_measurement_period decode_u32_ie +#define encode_pfcp_ie_measurement_period encode_u32_ie static u8 * -format_fq_csid (u8 *s, va_list *args) +format_pfcp_ie_fq_csid (u8 *s, va_list *args) { - pfcp_fq_csid_t *v = va_arg (*args, pfcp_fq_csid_t *); + pfcp_ie_fq_csid_t *v = va_arg (*args, pfcp_ie_fq_csid_t *); u16 *csid; switch (v->node_id_type) { - case FQ_CSID_NID_IP4: - case FQ_CSID_NID_IP6: + case PFCP_FQ_CSID_NID_IP4: + case PFCP_FQ_CSID_NID_IP6: s = format (s, "NID:%U,", format_ip46_address, &v->node_id.ip, IP46_TYPE_ANY); break; - case FQ_CSID_NID_NID: + case PFCP_FQ_CSID_NID_NID: s = format (s, "NID:MCC:%u,MNC:%u,NID:%u,", v->node_id.mcc, v->node_id.mnc, v->node_id.nid); break; @@ -2251,9 +2266,9 @@ format_fq_csid (u8 *s, va_list *args) } static int -decode_fq_csid (u8 *data, u16 length, void *p) +decode_pfcp_ie_fq_csid (u8 *data, u16 length, void *p) { - pfcp_fq_csid_t *v = p; + pfcp_ie_fq_csid_t *v = p; u32 id; u8 n; @@ -2268,21 +2283,21 @@ decode_fq_csid (u8 *data, u16 length, void *p) switch (v->node_id_type) { - case FQ_CSID_NID_IP4: + case PFCP_FQ_CSID_NID_IP4: if (length < 4) return PFCP_CAUSE_INVALID_LENGTH; get_ip46_ip4 (v->node_id.ip, data); length -= 4; break; - case FQ_CSID_NID_IP6: + case PFCP_FQ_CSID_NID_IP6: if (length < 16) return PFCP_CAUSE_INVALID_LENGTH; get_ip46_ip6 (v->node_id.ip, data); length -= 16; break; - case FQ_CSID_NID_NID: + case PFCP_FQ_CSID_NID_NID: if (length < 4) return PFCP_CAUSE_INVALID_LENGTH; @@ -2307,24 +2322,24 @@ decode_fq_csid (u8 *data, u16 length, void *p) } static int -encode_fq_csid (void *p, u8 **vec) +encode_pfcp_ie_fq_csid (void *p, u8 **vec) { - pfcp_fq_csid_t *v = p; + pfcp_ie_fq_csid_t *v = p; u16 *csid; put_u8 (*vec, (v->node_id_type << 4) | (vec_len (v->csid) & 0x0f)); switch (v->node_id_type) { - case FQ_CSID_NID_IP4: + case PFCP_FQ_CSID_NID_IP4: put_ip46_ip4 (*vec, v->node_id.ip); break; - case FQ_CSID_NID_IP6: + case PFCP_FQ_CSID_NID_IP6: put_ip46_ip6 (*vec, v->node_id.ip); break; - case FQ_CSID_NID_NID: + case PFCP_FQ_CSID_NID_NID: put_u32 (*vec, (v->node_id.mcc * 1000 + v->node_id.mnc) << 12 | (v->node_id.nid & 0x0fff)); break; @@ -2339,9 +2354,10 @@ encode_fq_csid (void *p, u8 **vec) } static u8 * -format_volume_measurement (u8 *s, va_list *args) +format_pfcp_ie_volume_measurement (u8 *s, va_list *args) { - pfcp_volume_measurement_t *v = va_arg (*args, pfcp_volume_measurement_t *); + pfcp_ie_volume_measurement_t *v = + va_arg (*args, pfcp_ie_volume_measurement_t *); return format (s, "V:[T:%d,U:%d,D:%d],P:[T:%d,U:%d,D:%d]", v->volume.total, v->volume.ul, v->volume.dl, v->packets.total, v->packets.ul, @@ -2349,9 +2365,9 @@ format_volume_measurement (u8 *s, va_list *args) } static int -decode_volume_measurement (u8 *data, u16 length, void *p) +decode_pfcp_ie_volume_measurement (u8 *data, u16 length, void *p) { - pfcp_volume_measurement_t *v = (pfcp_volume_measurement_t *) p; + pfcp_ie_volume_measurement_t *v = (pfcp_ie_volume_measurement_t *) p; if (length < 1) return PFCP_CAUSE_INVALID_LENGTH; @@ -2378,9 +2394,9 @@ decode_volume_measurement (u8 *data, u16 length, void *p) } static int -encode_volume_measurement (void *p, u8 **vec) +encode_pfcp_ie_volume_measurement (void *p, u8 **vec) { - pfcp_volume_measurement_t *v = (pfcp_volume_measurement_t *) p; + pfcp_ie_volume_measurement_t *v = (pfcp_ie_volume_measurement_t *) p; put_u8 (*vec, v->fields); @@ -2400,33 +2416,33 @@ encode_volume_measurement (void *p, u8 **vec) return 0; } -#define format_duration_measurement format_u32_ie -#define decode_duration_measurement decode_u32_ie -#define encode_duration_measurement encode_u32_ie +#define format_pfcp_ie_duration_measurement format_u32_ie +#define decode_pfcp_ie_duration_measurement decode_u32_ie +#define encode_pfcp_ie_duration_measurement encode_u32_ie -#define format_time_of_first_packet format_time_stamp -#define decode_time_of_first_packet decode_time_stamp_ie -#define encode_time_of_first_packet encode_time_stamp_ie +#define format_pfcp_ie_time_of_first_packet format_time_stamp +#define decode_pfcp_ie_time_of_first_packet decode_time_stamp +#define encode_pfcp_ie_time_of_first_packet encode_time_stamp -#define format_time_of_last_packet format_time_stamp -#define decode_time_of_last_packet decode_time_stamp_ie -#define encode_time_of_last_packet encode_time_stamp_ie +#define format_pfcp_ie_time_of_last_packet format_time_stamp +#define decode_pfcp_ie_time_of_last_packet decode_time_stamp +#define encode_pfcp_ie_time_of_last_packet encode_time_stamp -#define format_quota_holding_time format_u32_ie -#define decode_quota_holding_time decode_u32_ie -#define encode_quota_holding_time encode_u32_ie +#define format_pfcp_ie_quota_holding_time format_u32_ie +#define decode_pfcp_ie_quota_holding_time decode_u32_ie +#define encode_pfcp_ie_quota_holding_time encode_u32_ie static u8 * -format_dropped_dl_traffic_threshold (u8 *s, va_list *args) +format_pfcp_ie_dropped_dl_traffic_threshold (u8 *s, va_list *args) { - pfcp_dropped_dl_traffic_threshold_t *v = - va_arg (*args, pfcp_dropped_dl_traffic_threshold_t *); + pfcp_ie_dropped_dl_traffic_threshold_t *v = + va_arg (*args, pfcp_ie_dropped_dl_traffic_threshold_t *); - if (v->flags & DDTT_DLPA) + if (v->flags & PFCP_DDTT_DLPA) s = format (s, "DLPA:%lu", v->downlink_packets); - if (v->flags & DDTT_DLBY) + if (v->flags & PFCP_DDTT_DLBY) { - if (v->flags & DDTT_DLPA) + if (v->flags & PFCP_DDTT_DLPA) vec_add1 (s, ';'); s = format (s, "DLBY:%lu", v->downlink_volume); } @@ -2437,9 +2453,9 @@ format_dropped_dl_traffic_threshold (u8 *s, va_list *args) } static int -decode_dropped_dl_traffic_threshold (u8 *data, u16 length, void *p) +decode_pfcp_ie_dropped_dl_traffic_threshold (u8 *data, u16 length, void *p) { - pfcp_dropped_dl_traffic_threshold_t *v = p; + pfcp_ie_dropped_dl_traffic_threshold_t *v = p; if (length < 2) return PFCP_CAUSE_INVALID_LENGTH; @@ -2447,7 +2463,7 @@ decode_dropped_dl_traffic_threshold (u8 *data, u16 length, void *p) v->flags = get_u8 (data); length -= 1; - if (v->flags & DDTT_DLPA) + if (v->flags & PFCP_DDTT_DLPA) { if (length < 8) return PFCP_CAUSE_INVALID_LENGTH; @@ -2456,7 +2472,7 @@ decode_dropped_dl_traffic_threshold (u8 *data, u16 length, void *p) length -= 8; } - if (v->flags & DDTT_DLBY) + if (v->flags & PFCP_DDTT_DLBY) { if (length < 8) return PFCP_CAUSE_INVALID_LENGTH; @@ -2469,42 +2485,42 @@ decode_dropped_dl_traffic_threshold (u8 *data, u16 length, void *p) } static int -encode_dropped_dl_traffic_threshold (void *p, u8 **vec) +encode_pfcp_ie_dropped_dl_traffic_threshold (void *p, u8 **vec) { - pfcp_dropped_dl_traffic_threshold_t *v = p; + pfcp_ie_dropped_dl_traffic_threshold_t *v = p; put_u8 (*vec, v->flags); - if (v->flags & DDTT_DLBY) + if (v->flags & PFCP_DDTT_DLBY) put_u64 (*vec, v->downlink_packets); - if (v->flags & DDTT_DLPA) + if (v->flags & PFCP_DDTT_DLPA) put_u64 (*vec, v->downlink_packets); return 0; } -#define format_volume_quota format_volume_ie -#define decode_volume_quota decode_volume_ie -#define encode_volume_quota encode_volume_ie +#define format_pfcp_ie_volume_quota format_pfcp_ie_volume +#define decode_pfcp_ie_volume_quota decode_pfcp_ie_volume +#define encode_pfcp_ie_volume_quota encode_pfcp_ie_volume -#define format_time_quota format_u32_ie -#define decode_time_quota decode_u32_ie -#define encode_time_quota encode_u32_ie +#define format_pfcp_ie_time_quota format_u32_ie +#define decode_pfcp_ie_time_quota decode_u32_ie +#define encode_pfcp_ie_time_quota encode_u32_ie -#define format_start_time format_time_stamp -#define decode_start_time decode_time_stamp_ie -#define encode_start_time encode_time_stamp_ie +#define format_pfcp_ie_start_time format_time_stamp +#define decode_pfcp_ie_start_time decode_time_stamp +#define encode_pfcp_ie_start_time encode_time_stamp -#define format_end_time format_time_stamp -#define decode_end_time decode_time_stamp_ie -#define encode_end_time encode_time_stamp_ie +#define format_pfcp_ie_end_time format_time_stamp +#define decode_pfcp_ie_end_time decode_time_stamp +#define encode_pfcp_ie_end_time encode_time_stamp -#define format_urr_id format_u32_ie -#define decode_urr_id decode_u32_ie -#define encode_urr_id encode_u32_ie +#define format_pfcp_ie_urr_id format_u32_ie +#define decode_pfcp_ie_urr_id decode_u32_ie +#define encode_pfcp_ie_urr_id encode_u32_ie -#define format_linked_urr_id format_u32_ie -#define decode_linked_urr_id decode_u32_ie -#define encode_linked_urr_id encode_u32_ie +#define format_pfcp_ie_linked_urr_id format_u32_ie +#define decode_pfcp_ie_linked_urr_id decode_u32_ie +#define encode_pfcp_ie_linked_urr_id encode_u32_ie static const char *outer_header_creation_description_flags[] = { "GTP-U/UDP/IPv4", "GTP-U/UDP/IPv6", "UDP/IPv4", "UDP/IPv6", @@ -2513,33 +2529,33 @@ static const char *outer_header_creation_description_flags[] = { }; u8 * -format_outer_header_creation (u8 *s, va_list *args) +format_pfcp_ie_outer_header_creation (u8 *s, va_list *args) { - pfcp_outer_header_creation_t *v = - va_arg (*args, pfcp_outer_header_creation_t *); + pfcp_ie_outer_header_creation_t *v = + va_arg (*args, pfcp_ie_outer_header_creation_t *); - s = format (s, "%U", format_flags, (u64) v->description, + s = format (s, "%U", format_pfcp_flags, (u64) v->description, outer_header_creation_description_flags); - if (v->description & OUTER_HEADER_CREATION_GTP_ANY) + if (v->description & PFCP_OUTER_HEADER_CREATION_GTP_ANY) s = format (s, ",TEID:%08x", v->teid); - if (v->description & - (OUTER_HEADER_CREATION_ANY_IP4 | OUTER_HEADER_CREATION_ANY_IP6)) + if (v->description & (PFCP_OUTER_HEADER_CREATION_ANY_IP4 | + PFCP_OUTER_HEADER_CREATION_ANY_IP6)) s = format (s, ",IP:%U", format_ip46_address, &v->ip, IP46_TYPE_ANY); - if (v->description & OUTER_HEADER_CREATION_UDP_ANY) + if (v->description & PFCP_OUTER_HEADER_CREATION_UDP_ANY) s = format (s, ",Port:%d", v->port); - if (v->description & OUTER_HEADER_CREATION_C_TAG) + if (v->description & PFCP_OUTER_HEADER_CREATION_C_TAG) s = format (s, ",C-Tag:%d", v->c_tag); - if (v->description & OUTER_HEADER_CREATION_S_TAG) + if (v->description & PFCP_OUTER_HEADER_CREATION_S_TAG) s = format (s, ",S-Tag:%d", v->s_tag); return s; } uword -tbcd_len (u8 *in, uword n_bytes) +pfcp_tbcd_len (u8 *in, uword n_bytes) { uword l = n_bytes << 1; if (n_bytes && (in[n_bytes - 1] & 0xf0) == 0xf0) @@ -2548,7 +2564,7 @@ tbcd_len (u8 *in, uword n_bytes) } uword -decode_tbcd (u8 *in, uword n_bytes, u8 *out, uword n_out) +decode_pfcp_tbcd (u8 *in, uword n_bytes, u8 *out, uword n_out) { /* value 15 is an error, thus '?' */ static char *tbcd_chars = "0123456789*#abc?"; @@ -2566,7 +2582,7 @@ decode_tbcd (u8 *in, uword n_bytes, u8 *out, uword n_out) } u8 * -format_tbcd (u8 *s, va_list *args) +format_pfcp_tbcd (u8 *s, va_list *args) { u8 *bytes = va_arg (*args, u8 *); int n_bytes = va_arg (*args, int); @@ -2576,17 +2592,17 @@ format_tbcd (u8 *s, va_list *args) return s; l = vec_len (s); - n = tbcd_len (bytes, n_bytes); + n = pfcp_tbcd_len (bytes, n_bytes); vec_validate (s, l + n - 1); - decode_tbcd (bytes, n_bytes, s + l, n); + decode_pfcp_tbcd (bytes, n_bytes, s + l, n); return s; } static int -decode_outer_header_creation (u8 *data, u16 length, void *p) +decode_pfcp_ie_outer_header_creation (u8 *data, u16 length, void *p) { - pfcp_outer_header_creation_t *v = p; + pfcp_ie_outer_header_creation_t *v = p; if (length < 2) return PFCP_CAUSE_INVALID_LENGTH; @@ -2595,10 +2611,10 @@ decode_outer_header_creation (u8 *data, u16 length, void *p) length -= 2; if (v->description == 0 || - (!!(v->description & OUTER_HEADER_CREATION_GTP_ANY)) == - (!!(v->description & OUTER_HEADER_CREATION_UDP_ANY)) || - (v->description & OUTER_HEADER_CREATION_UDP_ANY) == - OUTER_HEADER_CREATION_UDP_ANY) + (!!(v->description & PFCP_OUTER_HEADER_CREATION_GTP_ANY)) == + (!!(v->description & PFCP_OUTER_HEADER_CREATION_UDP_ANY)) || + (v->description & PFCP_OUTER_HEADER_CREATION_UDP_ANY) == + PFCP_OUTER_HEADER_CREATION_UDP_ANY) { pfcp_debug ( "PFCP: invalid bit combination in Outer Header Creation: %04x.", @@ -2606,7 +2622,7 @@ decode_outer_header_creation (u8 *data, u16 length, void *p) return PFCP_CAUSE_REQUEST_REJECTED; } - if (v->description & OUTER_HEADER_CREATION_GTP_ANY) + if (v->description & PFCP_OUTER_HEADER_CREATION_GTP_ANY) { if (length < 4) return PFCP_CAUSE_INVALID_LENGTH; @@ -2614,7 +2630,7 @@ decode_outer_header_creation (u8 *data, u16 length, void *p) length -= 4; } - if (v->description & OUTER_HEADER_CREATION_ANY_IP4) + if (v->description & PFCP_OUTER_HEADER_CREATION_ANY_IP4) { if (length < 4) return PFCP_CAUSE_INVALID_LENGTH; @@ -2622,7 +2638,7 @@ decode_outer_header_creation (u8 *data, u16 length, void *p) length -= 4; } - if (v->description & OUTER_HEADER_CREATION_ANY_IP6) + if (v->description & PFCP_OUTER_HEADER_CREATION_ANY_IP6) { if (length < 16) return PFCP_CAUSE_INVALID_LENGTH; @@ -2630,21 +2646,21 @@ decode_outer_header_creation (u8 *data, u16 length, void *p) length -= 16; } - if (v->description & OUTER_HEADER_CREATION_UDP_ANY) + if (v->description & PFCP_OUTER_HEADER_CREATION_UDP_ANY) { if (length < 2) return PFCP_CAUSE_INVALID_LENGTH; v->port = get_u16 (data); } - if (v->description & OUTER_HEADER_CREATION_C_TAG) + if (v->description & PFCP_OUTER_HEADER_CREATION_C_TAG) { if (length < 3) return PFCP_CAUSE_INVALID_LENGTH; v->c_tag = get_u24 (data); } - if (v->description & OUTER_HEADER_CREATION_S_TAG) + if (v->description & PFCP_OUTER_HEADER_CREATION_S_TAG) { if (length < 3) return PFCP_CAUSE_INVALID_LENGTH; @@ -2655,94 +2671,95 @@ decode_outer_header_creation (u8 *data, u16 length, void *p) } static int -encode_outer_header_creation (void *p, u8 **vec) +encode_pfcp_ie_outer_header_creation (void *p, u8 **vec) { - pfcp_outer_header_creation_t *v = p; + pfcp_ie_outer_header_creation_t *v = p; put_u16_little (*vec, v->description); - if (v->description & OUTER_HEADER_CREATION_GTP_ANY) + if (v->description & PFCP_OUTER_HEADER_CREATION_GTP_ANY) put_u32 (*vec, v->teid); - if (v->description & OUTER_HEADER_CREATION_ANY_IP4) + if (v->description & PFCP_OUTER_HEADER_CREATION_ANY_IP4) put_ip46_ip4 (*vec, v->ip); - if (v->description & OUTER_HEADER_CREATION_ANY_IP6) + if (v->description & PFCP_OUTER_HEADER_CREATION_ANY_IP6) put_ip46_ip6 (*vec, v->ip); - if (v->description & OUTER_HEADER_CREATION_UDP_ANY) + if (v->description & PFCP_OUTER_HEADER_CREATION_UDP_ANY) put_u16 (*vec, v->port); - if (v->description & OUTER_HEADER_CREATION_C_TAG) + if (v->description & PFCP_OUTER_HEADER_CREATION_C_TAG) put_u24 (*vec, v->c_tag); - if (v->description & OUTER_HEADER_CREATION_S_TAG) + if (v->description & PFCP_OUTER_HEADER_CREATION_S_TAG) put_u24 (*vec, v->s_tag); return 0; } -#define format_bar_id format_u8_ie -#define decode_bar_id decode_u8_ie -#define encode_bar_id encode_u8_ie +#define format_pfcp_ie_bar_id format_u8_ie +#define decode_pfcp_ie_bar_id decode_u8_ie +#define encode_pfcp_ie_bar_id encode_u8_ie static u8 * -format_cp_function_features (u8 *s, va_list *args) +format_pfcp_ie_cp_function_features (u8 *s, va_list *args) { - pfcp_cp_function_features_t *v = - va_arg (*args, pfcp_cp_function_features_t *); + pfcp_ie_cp_function_features_t *v = + va_arg (*args, pfcp_ie_cp_function_features_t *); return format (s, "LOAD:%d,OVRL:%d,EPFAR:%d,SSET:%d," "BUNDL:%d,MPAS:%d,ARDR:%d", - !!(*v & F_CPFF_LOAD), !!(*v & F_CPFF_OVRL), - !!(*v & F_CPFF_EPFAR), !!(*v & F_CPFF_SSET), - !!(*v & F_CPFF_BUNDL), !!(*v & F_CPFF_MPAS), - !!(*v & F_CPFF_ARDR)); + !!(*v & PFCP_F_CPFF_LOAD), !!(*v & PFCP_F_CPFF_OVRL), + !!(*v & PFCP_F_CPFF_EPFAR), !!(*v & PFCP_F_CPFF_SSET), + !!(*v & PFCP_F_CPFF_BUNDL), !!(*v & PFCP_F_CPFF_MPAS), + !!(*v & PFCP_F_CPFF_ARDR)); } -#define decode_cp_function_features decode_u8_ie -#define encode_cp_function_features encode_u8_ie +#define decode_pfcp_ie_cp_function_features decode_u8_ie +#define encode_pfcp_ie_cp_function_features encode_u8_ie static u8 * -format_usage_information (u8 *s, va_list *args) +format_pfcp_ie_usage_information (u8 *s, va_list *args) { - pfcp_usage_information_t *v = va_arg (*args, pfcp_usage_information_t *); + pfcp_ie_usage_information_t *v = + va_arg (*args, pfcp_ie_usage_information_t *); s = format (s, "UBE:%d,UAE:%d,AFT:%d,BEF:%d", - !!(*v & USAGE_INFORMATION_BEFORE_QoS_ENFORCEMENT), - !!(*v & USAGE_INFORMATION_AFTER_QoS_ENFORCEMENT), - !!(*v & USAGE_INFORMATION_AFTER), - !!(*v & USAGE_INFORMATION_BEFORE)); + !!(*v & PFCP_USAGE_INFORMATION_BEFORE_QoS_ENFORCEMENT), + !!(*v & PFCP_USAGE_INFORMATION_AFTER_QoS_ENFORCEMENT), + !!(*v & PFCP_USAGE_INFORMATION_AFTER), + !!(*v & PFCP_USAGE_INFORMATION_BEFORE)); return s; } -#define decode_usage_information decode_u8_ie -#define encode_usage_information encode_u8_ie +#define decode_pfcp_ie_usage_information decode_u8_ie +#define encode_pfcp_ie_usage_information encode_u8_ie -#define format_application_instance_id format_simple_vec_ie -#define decode_application_instance_id decode_simple_vec_ie -#define encode_application_instance_id encode_simple_vec_ie -#define free_application_instance_id free_simple_vec_ie +#define format_pfcp_ie_application_instance_id format_simple_vec_ie +#define decode_pfcp_ie_application_instance_id decode_simple_vec_ie +#define encode_pfcp_ie_application_instance_id encode_simple_vec_ie +#define free_pfcp_ie_application_instance_id free_simple_vec_ie static const char *flow_direction[] = { "Unspecified", "Downlink", "Uplink", "Bidirectional", NULL }; static u8 * -format_flow_information (u8 *s, va_list *args) +format_pfcp_ie_flow_information (u8 *s, va_list *args) { - pfcp_flow_information_t *v = va_arg (*args, pfcp_flow_information_t *); + pfcp_ie_flow_information_t *v = va_arg (*args, pfcp_ie_flow_information_t *); - return format (s, "Direction:%U,FD:%v", format_enum, (u64) v->direction, + return format (s, "Direction:%U,FD:%v", format_pfcp_enum, (u64) v->direction, flow_direction, ARRAY_LEN (flow_direction), v->flow_description); } static int -decode_flow_information (u8 *data, u16 length, void *p) +decode_pfcp_ie_flow_information (u8 *data, u16 length, void *p) { - pfcp_flow_information_t *v = p; + pfcp_ie_flow_information_t *v = p; u16 len; if (length < 3) @@ -2762,9 +2779,9 @@ decode_flow_information (u8 *data, u16 length, void *p) } static int -encode_flow_information (void *p, u8 **vec) +encode_pfcp_ie_flow_information (void *p, u8 **vec) { - pfcp_flow_information_t *v = p; + pfcp_ie_flow_information_t *v = p; put_u8 (*vec, v->direction); put_u16 (*vec, vec_len (v->flow_description)); @@ -2774,39 +2791,40 @@ encode_flow_information (void *p, u8 **vec) } static void -free_flow_information (void *p) +free_pfcp_ie_flow_information (void *p) { - pfcp_flow_information_t *v = p; + pfcp_ie_flow_information_t *v = p; vec_free (v->flow_description); } u8 * -format_ue_ip_address (u8 *s, va_list *args) +format_pfcp_ie_ue_ip_address (u8 *s, va_list *args) { - pfcp_ue_ip_address_t *v = va_arg (*args, pfcp_ue_ip_address_t *); + pfcp_ie_ue_ip_address_t *v = va_arg (*args, pfcp_ie_ue_ip_address_t *); - s = format (s, "S/D:%d,CHv4:%d,CHv6:%d", !!(v->flags & IE_UE_IP_ADDRESS_SD), - !!(v->flags & IE_UE_IP_ADDRESS_CHV4), - !!(v->flags & IE_UE_IP_ADDRESS_CHV6)); + s = + format (s, "S/D:%d,CHv4:%d,CHv6:%d", !!(v->flags & PFCP_UE_IP_ADDRESS_SD), + !!(v->flags & PFCP_UE_IP_ADDRESS_CHV4), + !!(v->flags & PFCP_UE_IP_ADDRESS_CHV6)); - if (v->flags & IE_UE_IP_ADDRESS_V4) + if (v->flags & PFCP_UE_IP_ADDRESS_V4) s = format (s, ",IPv4:%U", format_ip4_address, &v->ip4); - if (v->flags & IE_UE_IP_ADDRESS_V6) + if (v->flags & PFCP_UE_IP_ADDRESS_V6) s = format (s, ",IPv6:%U", format_ip6_address, &v->ip6); - if (v->flags & IE_UE_IP_ADDRESS_IPv6D) + if (v->flags & PFCP_UE_IP_ADDRESS_IPv6D) s = format (s, ",v6-PD:/%d", v->prefix_delegation_length); - if (v->flags & IE_UE_IP_ADDRESS_IP6PL) + if (v->flags & PFCP_UE_IP_ADDRESS_IP6PL) s = format (s, ",v6-Prefix:/%d", v->prefix_length); return s; } static int -decode_ue_ip_address (u8 *data, u16 length, void *p) +decode_pfcp_ie_ue_ip_address (u8 *data, u16 length, void *p) { - pfcp_ue_ip_address_t *v = p; + pfcp_ie_ue_ip_address_t *v = p; if (length < 1) return PFCP_CAUSE_INVALID_LENGTH; @@ -2814,7 +2832,7 @@ decode_ue_ip_address (u8 *data, u16 length, void *p) v->flags = get_u8 (data); length--; - if (v->flags & IE_UE_IP_ADDRESS_V4) + if (v->flags & PFCP_UE_IP_ADDRESS_V4) { if (length < 4) return PFCP_CAUSE_INVALID_LENGTH; @@ -2823,7 +2841,7 @@ decode_ue_ip_address (u8 *data, u16 length, void *p) length -= 4; } - if (v->flags & IE_UE_IP_ADDRESS_V6) + if (v->flags & PFCP_UE_IP_ADDRESS_V6) { if (length < 16) return PFCP_CAUSE_INVALID_LENGTH; @@ -2832,7 +2850,7 @@ decode_ue_ip_address (u8 *data, u16 length, void *p) length -= 16; } - if (v->flags & IE_UE_IP_ADDRESS_IPv6D) + if (v->flags & PFCP_UE_IP_ADDRESS_IPv6D) { if (length < 1) return PFCP_CAUSE_INVALID_LENGTH; @@ -2841,7 +2859,7 @@ decode_ue_ip_address (u8 *data, u16 length, void *p) length--; } - if (v->flags & IE_UE_IP_ADDRESS_IP6PL) + if (v->flags & PFCP_UE_IP_ADDRESS_IP6PL) { if (length < 1) return PFCP_CAUSE_INVALID_LENGTH; @@ -2853,28 +2871,28 @@ decode_ue_ip_address (u8 *data, u16 length, void *p) } static int -encode_ue_ip_address (void *p, u8 **vec) +encode_pfcp_ie_ue_ip_address (void *p, u8 **vec) { - pfcp_ue_ip_address_t *v = p; + pfcp_ie_ue_ip_address_t *v = p; put_u8 (*vec, v->flags); - if (v->flags & IE_UE_IP_ADDRESS_V4) + if (v->flags & PFCP_UE_IP_ADDRESS_V4) put_ip4 (*vec, v->ip4); - if (v->flags & IE_UE_IP_ADDRESS_V6) + if (v->flags & PFCP_UE_IP_ADDRESS_V6) put_ip6 (*vec, v->ip6); - if (v->flags & IE_UE_IP_ADDRESS_IPv6D) + if (v->flags & PFCP_UE_IP_ADDRESS_IPv6D) put_u8 (*vec, v->prefix_delegation_length); - if (v->flags & IE_UE_IP_ADDRESS_IP6PL) + if (v->flags & PFCP_UE_IP_ADDRESS_IP6PL) put_u8 (*vec, v->prefix_length); return 0; } static u8 * -format_packet_rate_t (u8 *s, va_list *args) +format_pfcp_ie_packet_rate_t (u8 *s, va_list *args) { - packet_rate_t *v = va_arg (*args, packet_rate_t *); + pfcp_packet_rate_t *v = va_arg (*args, pfcp_packet_rate_t *); switch (v->unit) { @@ -2899,30 +2917,30 @@ format_packet_rate_t (u8 *s, va_list *args) } static u8 * -format_packet_rate (u8 *s, va_list *args) +format_pfcp_ie_packet_rate (u8 *s, va_list *args) { - pfcp_packet_rate_t *v = va_arg (*args, pfcp_packet_rate_t *); + pfcp_ie_packet_rate_t *v = va_arg (*args, pfcp_ie_packet_rate_t *); - s = format (s, "RCSR:%d", !!(v->flags & PACKET_RATE_RCSR)); + s = format (s, "RCSR:%d", !!(v->flags & PFCP_PACKET_RATE_RCSR)); - if (v->flags & PACKET_RATE_ULPR) - s = format (s, ",UL:%U", format_packet_rate_t, &v->ul); - if (v->flags & PACKET_RATE_DLPR) - s = format (s, ",DL:%U", format_packet_rate_t, &v->dl); - if (v->flags & PACKET_RATE_APRC) + if (v->flags & PFCP_PACKET_RATE_ULPR) + s = format (s, ",UL:%U", format_pfcp_ie_packet_rate_t, &v->ul); + if (v->flags & PFCP_PACKET_RATE_DLPR) + s = format (s, ",DL:%U", format_pfcp_ie_packet_rate_t, &v->dl); + if (v->flags & PFCP_PACKET_RATE_APRC) { - if (v->flags & PACKET_RATE_ULPR) - s = format (s, ",A-UL:%U", format_packet_rate_t, &v->a_ul); - if (v->flags & PACKET_RATE_DLPR) - s = format (s, ",A-DL:%U", format_packet_rate_t, &v->a_dl); + if (v->flags & PFCP_PACKET_RATE_ULPR) + s = format (s, ",A-UL:%U", format_pfcp_ie_packet_rate_t, &v->a_ul); + if (v->flags & PFCP_PACKET_RATE_DLPR) + s = format (s, ",A-DL:%U", format_pfcp_ie_packet_rate_t, &v->a_dl); } return s; } static int -decode_packet_rate (u8 *data, u16 length, void *p) +decode_pfcp_ie_packet_rate (u8 *data, u16 length, void *p) { - pfcp_packet_rate_t *v = p; + pfcp_ie_packet_rate_t *v = p; if (length < 1) return PFCP_CAUSE_INVALID_LENGTH; @@ -2930,7 +2948,7 @@ decode_packet_rate (u8 *data, u16 length, void *p) v->flags = get_u8 (data) & 0x03; length--; - if (v->flags & PACKET_RATE_ULPR) + if (v->flags & PFCP_PACKET_RATE_ULPR) { if (length < 3) return PFCP_CAUSE_INVALID_LENGTH; @@ -2940,7 +2958,7 @@ decode_packet_rate (u8 *data, u16 length, void *p) length -= 3; } - if (v->flags & PACKET_RATE_DLPR) + if (v->flags & PFCP_PACKET_RATE_DLPR) { if (length < 3) return PFCP_CAUSE_INVALID_LENGTH; @@ -2950,9 +2968,9 @@ decode_packet_rate (u8 *data, u16 length, void *p) length -= 3; } - if (v->flags & PACKET_RATE_APRC) + if (v->flags & PFCP_PACKET_RATE_APRC) { - if (v->flags & PACKET_RATE_ULPR) + if (v->flags & PFCP_PACKET_RATE_ULPR) { if (length < 3) return PFCP_CAUSE_INVALID_LENGTH; @@ -2962,7 +2980,7 @@ decode_packet_rate (u8 *data, u16 length, void *p) length -= 3; } - if (v->flags & PACKET_RATE_DLPR) + if (v->flags & PFCP_PACKET_RATE_DLPR) { if (length < 3) return PFCP_CAUSE_INVALID_LENGTH; @@ -2977,29 +2995,29 @@ decode_packet_rate (u8 *data, u16 length, void *p) } static int -encode_packet_rate (void *p, u8 **vec) +encode_pfcp_ie_packet_rate (void *p, u8 **vec) { - pfcp_packet_rate_t *v = p; + pfcp_ie_packet_rate_t *v = p; put_u8 (*vec, v->flags); - if (v->flags & PACKET_RATE_ULPR) + if (v->flags & PFCP_PACKET_RATE_ULPR) { put_u8 (*vec, v->ul.unit); put_u16 (*vec, v->ul.max); } - if (v->flags & PACKET_RATE_DLPR) + if (v->flags & PFCP_PACKET_RATE_DLPR) { put_u8 (*vec, v->dl.unit); put_u16 (*vec, v->dl.max); } - if (v->flags & PACKET_RATE_APRC) + if (v->flags & PFCP_PACKET_RATE_APRC) { - if (v->flags & PACKET_RATE_ULPR) + if (v->flags & PFCP_PACKET_RATE_ULPR) { put_u8 (*vec, v->a_ul.unit); put_u16 (*vec, v->a_ul.max); } - if (v->flags & PACKET_RATE_DLPR) + if (v->flags & PFCP_PACKET_RATE_DLPR) { put_u8 (*vec, v->a_dl.unit); put_u16 (*vec, v->a_dl.max); @@ -3009,33 +3027,33 @@ encode_packet_rate (void *p, u8 **vec) } static u8 * -format_outer_header_removal (u8 *s, va_list *args) +format_pfcp_ie_outer_header_removal (u8 *s, va_list *args) { - pfcp_outer_header_removal_t *v = - va_arg (*args, pfcp_outer_header_removal_t *); + pfcp_ie_outer_header_removal_t *v = + va_arg (*args, pfcp_ie_outer_header_removal_t *); return format (s, "%s", *v ? "true" : "false"); } -#define decode_outer_header_removal decode_u8_ie -#define encode_outer_header_removal encode_u8_ie +#define decode_pfcp_ie_outer_header_removal decode_u8_ie +#define encode_pfcp_ie_outer_header_removal encode_u8_ie -#define format_recovery_time_stamp format_time_stamp -#define decode_recovery_time_stamp decode_time_stamp_ie -#define encode_recovery_time_stamp encode_time_stamp_ie +#define format_pfcp_ie_recovery_time_stamp format_time_stamp +#define decode_pfcp_ie_recovery_time_stamp decode_time_stamp +#define encode_pfcp_ie_recovery_time_stamp encode_time_stamp static u8 * -format_dl_flow_level_marking (u8 *s, va_list *args) +format_pfcp_ie_dl_flow_level_marking (u8 *s, va_list *args) { - pfcp_dl_flow_level_marking_t *v = - va_arg (*args, pfcp_dl_flow_level_marking_t *); + pfcp_ie_dl_flow_level_marking_t *v = + va_arg (*args, pfcp_ie_dl_flow_level_marking_t *); - if (v->flags & DL_FLM_TTC) + if (v->flags & PFCP_DL_FLM_TTC) { s = format (s, "ToS/TC:0x%04x,", v->tos_traffic_class); } - if (v->flags & DL_FLM_SCI) + if (v->flags & PFCP_DL_FLM_SCI) { s = format (s, "SCI:0x%04x,", v->service_class_indicator); } @@ -3047,9 +3065,9 @@ format_dl_flow_level_marking (u8 *s, va_list *args) } static int -decode_dl_flow_level_marking (u8 *data, u16 length, void *p) +decode_pfcp_ie_dl_flow_level_marking (u8 *data, u16 length, void *p) { - pfcp_dl_flow_level_marking_t *v = p; + pfcp_ie_dl_flow_level_marking_t *v = p; if (length < 1) return PFCP_CAUSE_INVALID_LENGTH; @@ -3057,7 +3075,7 @@ decode_dl_flow_level_marking (u8 *data, u16 length, void *p) v->flags = get_u8 (data) & 0x03; length--; - if (v->flags & DL_FLM_TTC) + if (v->flags & PFCP_DL_FLM_TTC) { if (length < 2) return PFCP_CAUSE_INVALID_LENGTH; @@ -3066,7 +3084,7 @@ decode_dl_flow_level_marking (u8 *data, u16 length, void *p) length -= 2; } - if (v->flags & DL_FLM_SCI) + if (v->flags & PFCP_DL_FLM_SCI) { if (length < 2) return PFCP_CAUSE_INVALID_LENGTH; @@ -3078,16 +3096,16 @@ decode_dl_flow_level_marking (u8 *data, u16 length, void *p) } static int -encode_dl_flow_level_marking (void *p, u8 **vec) +encode_pfcp_ie_dl_flow_level_marking (void *p, u8 **vec) { - pfcp_dl_flow_level_marking_t *v = p; + pfcp_ie_dl_flow_level_marking_t *v = p; put_u8 (*vec, v->flags); - if (v->flags & DL_FLM_TTC) + if (v->flags & PFCP_DL_FLM_TTC) put_u16 (*vec, v->tos_traffic_class); - if (v->flags & DL_FLM_SCI) + if (v->flags & PFCP_DL_FLM_SCI) put_u16 (*vec, v->service_class_indicator); return 0; @@ -3096,19 +3114,20 @@ encode_dl_flow_level_marking (void *p, u8 **vec) static const char *header_type_enum[] = { "HTTP", NULL }; static u8 * -format_header_enrichment (u8 *s, va_list *args) +format_pfcp_ie_header_enrichment (u8 *s, va_list *args) { - pfcp_header_enrichment_t *v = va_arg (*args, pfcp_header_enrichment_t *); + pfcp_ie_header_enrichment_t *v = + va_arg (*args, pfcp_ie_header_enrichment_t *); - return format (s, "%U,Name:%v,Value:%v", format_enum, (u64) v->type, + return format (s, "%U,Name:%v,Value:%v", format_pfcp_enum, (u64) v->type, header_type_enum, ARRAY_LEN (header_type_enum), v->name, v->value); } static int -decode_header_enrichment (u8 *data, u16 length, void *p) +decode_pfcp_ie_header_enrichment (u8 *data, u16 length, void *p) { - pfcp_header_enrichment_t *v = p; + pfcp_ie_header_enrichment_t *v = p; u16 len; if (length < 1) @@ -3145,9 +3164,9 @@ decode_header_enrichment (u8 *data, u16 length, void *p) } static int -encode_header_enrichment (void *p, u8 **vec) +encode_pfcp_ie_header_enrichment (void *p, u8 **vec) { - pfcp_header_enrichment_t *v = p; + pfcp_ie_header_enrichment_t *v = p; put_u8 (*vec, v->type); put_u16 (*vec, vec_len (v->name)); @@ -3159,36 +3178,36 @@ encode_header_enrichment (void *p, u8 **vec) } static u8 * -format_measurement_information (u8 *s, va_list *args) +format_pfcp_ie_measurement_information (u8 *s, va_list *args) { - pfcp_measurement_information_t *v = - va_arg (*args, pfcp_measurement_information_t *); + pfcp_ie_measurement_information_t *v = + va_arg (*args, pfcp_ie_measurement_information_t *); return format (s, "MBQE:%d,INAM:%d,RADI:%d,ISTM:%d,MNOP:%d", - !!(v->flags & MEASUREMENT_INFORMATION_MBQE), - !!(v->flags & MEASUREMENT_INFORMATION_INAM), - !!(v->flags & MEASUREMENT_INFORMATION_RADI), - !!(v->flags & MEASUREMENT_INFORMATION_ISTM), - !!(v->flags & MEASUREMENT_INFORMATION_MNOP)); + !!(v->flags & PFCP_MEASUREMENT_INFORMATION_MBQE), + !!(v->flags & PFCP_MEASUREMENT_INFORMATION_INAM), + !!(v->flags & PFCP_MEASUREMENT_INFORMATION_RADI), + !!(v->flags & PFCP_MEASUREMENT_INFORMATION_ISTM), + !!(v->flags & PFCP_MEASUREMENT_INFORMATION_MNOP)); } static int -decode_measurement_information (u8 *data, u16 length, void *p) +decode_pfcp_ie_measurement_information (u8 *data, u16 length, void *p) { - pfcp_measurement_information_t *v = p; + pfcp_ie_measurement_information_t *v = p; if (length < 1) return PFCP_CAUSE_INVALID_LENGTH; - v->flags = get_u8 (data) & MEASUREMENT_INFORMATION_MASK; + v->flags = get_u8 (data) & PFCP_MEASUREMENT_INFORMATION_MASK; return 0; } static int -encode_measurement_information (void *p, u8 **vec) +encode_pfcp_ie_measurement_information (void *p, u8 **vec) { - pfcp_measurement_information_t *v = p; + pfcp_ie_measurement_information_t *v = p; put_u8 (*vec, v->flags); @@ -3196,34 +3215,34 @@ encode_measurement_information (void *p, u8 **vec) } static u8 * -format_node_report_type (u8 *s, va_list *args) +format_pfcp_ie_node_report_type (u8 *s, va_list *args) { - pfcp_node_report_type_t *v = va_arg (*args, pfcp_node_report_type_t *); + pfcp_ie_node_report_type_t *v = va_arg (*args, pfcp_ie_node_report_type_t *); return format (s, "UPFR:%d,UPRR:%d,GKDR:%d,GPQR", - !!(v->flags & NRT_USER_PLANE_PATH_FAILURE_REPORT), - !!(v->flags & NRT_USER_PLANE_PATH_RECOVERY_REPORT), - !!(v->flags & NRT_CLOCK_DRIFT_REPORT), - !!(v->flags & NRT_GTP_U_PATH_QOS_REPORT)); + !!(v->flags & PFCP_NRT_USER_PLANE_PATH_FAILURE_REPORT), + !!(v->flags & PFCP_NRT_USER_PLANE_PATH_RECOVERY_REPORT), + !!(v->flags & PFCP_NRT_CLOCK_DRIFT_REPORT), + !!(v->flags & PFCP_NRT_GTP_U_PATH_QOS_REPORT)); } static int -decode_node_report_type (u8 *data, u16 length, void *p) +decode_pfcp_ie_node_report_type (u8 *data, u16 length, void *p) { - pfcp_node_report_type_t *v = p; + pfcp_ie_node_report_type_t *v = p; if (length < 1) return PFCP_CAUSE_INVALID_LENGTH; - v->flags = get_u8 (data) & NRT_MASK; + v->flags = get_u8 (data) & PFCP_NRT_MASK; return 0; } static int -encode_node_report_type (void *p, u8 **vec) +encode_pfcp_ie_node_report_type (void *p, u8 **vec) { - pfcp_node_report_type_t *v = p; + pfcp_ie_node_report_type_t *v = p; put_u8 (*vec, v->flags); @@ -3231,24 +3250,25 @@ encode_node_report_type (void *p, u8 **vec) } static u8 * -format_remote_gtp_u_peer (u8 *s, va_list *args) +format_pfcp_ie_remote_gtp_u_peer (u8 *s, va_list *args) { - pfcp_remote_gtp_u_peer_t *v = va_arg (*args, pfcp_remote_gtp_u_peer_t *); + pfcp_ie_remote_gtp_u_peer_t *v = + va_arg (*args, pfcp_ie_remote_gtp_u_peer_t *); s = format (s, "%U", format_ip46_address, &v->ip, IP46_TYPE_ANY); - if (v->destination_interface < DST_INTF_NUM) - s = format (s, ",DI:%U", format_destination_interface, + if (v->destination_interface < PFCP_DST_INTF_NUM) + s = format (s, ",DI:%U", format_pfcp_ie_destination_interface, v->destination_interface); if (vec_len (v->network_instance) > 0) - s = format (s, ",NI: %U", format_dns_labels, v->network_instance); + s = format (s, ",NI: %U", format_pfcp_dns_labels, v->network_instance); return s; } static int -decode_remote_gtp_u_peer (u8 *data, u16 length, void *p) +decode_pfcp_ie_remote_gtp_u_peer (u8 *data, u16 length, void *p) { - pfcp_remote_gtp_u_peer_t *v = p; + pfcp_ie_remote_gtp_u_peer_t *v = p; u8 flags; if (length < 1) @@ -3257,14 +3277,14 @@ decode_remote_gtp_u_peer (u8 *data, u16 length, void *p) flags = get_u8 (data); length--; - if (flags & REMOTE_GTP_U_PEER_IP6) + if (flags & PFCP_REMOTE_GTP_U_PEER_IP6) { if (length < 16) return PFCP_CAUSE_INVALID_LENGTH; get_ip46_ip6 (v->ip, data); length -= 16; } - else if (flags & REMOTE_GTP_U_PEER_IP4) + else if (flags & PFCP_REMOTE_GTP_U_PEER_IP4) { if (length < 4) return PFCP_CAUSE_INVALID_LENGTH; @@ -3273,7 +3293,7 @@ decode_remote_gtp_u_peer (u8 *data, u16 length, void *p) } v->destination_interface = ~0; - if (flags & REMOTE_GTP_U_PEER_DI) + if (flags & PFCP_REMOTE_GTP_U_PEER_DI) { u16 di_len; @@ -3289,11 +3309,11 @@ decode_remote_gtp_u_peer (u8 *data, u16 length, void *p) v->destination_interface = get_u8 (data) & 0x0f; length -= di_len; - if (v->destination_interface >= DST_INTF_NUM) + if (v->destination_interface >= PFCP_DST_INTF_NUM) return PFCP_CAUSE_REQUEST_REJECTED; } - if (flags & REMOTE_GTP_U_PEER_NI) + if (flags & PFCP_REMOTE_GTP_U_PEER_NI) { u16 ni_len; @@ -3314,22 +3334,23 @@ decode_remote_gtp_u_peer (u8 *data, u16 length, void *p) } static int -encode_remote_gtp_u_peer (void *p, u8 **vec) +encode_pfcp_ie_remote_gtp_u_peer (void *p, u8 **vec) { - pfcp_remote_gtp_u_peer_t *v = p; + pfcp_ie_remote_gtp_u_peer_t *v = p; u8 flags; - flags = (v->destination_interface != (u8) ~0 ? REMOTE_GTP_U_PEER_DI : 0) | - (vec_len (v->network_instance) > 0 ? REMOTE_GTP_U_PEER_NI : 0); + flags = + (v->destination_interface != (u8) ~0 ? PFCP_REMOTE_GTP_U_PEER_DI : 0) | + (vec_len (v->network_instance) > 0 ? PFCP_REMOTE_GTP_U_PEER_NI : 0); if (ip46_address_is_ip4 (&v->ip)) { - put_u8 (*vec, flags | REMOTE_GTP_U_PEER_IP4); + put_u8 (*vec, flags | PFCP_REMOTE_GTP_U_PEER_IP4); put_ip46_ip4 (*vec, v->ip); } else { - put_u8 (*vec, flags | REMOTE_GTP_U_PEER_IP6); + put_u8 (*vec, flags | PFCP_REMOTE_GTP_U_PEER_IP6); put_ip46_ip6 (*vec, v->ip); } @@ -3348,40 +3369,41 @@ encode_remote_gtp_u_peer (void *p, u8 **vec) return 0; } -#define format_ur_seqn format_u32_ie -#define decode_ur_seqn decode_u32_ie -#define encode_ur_seqn encode_u32_ie +#define format_pfcp_ie_ur_seqn format_u32_ie +#define decode_pfcp_ie_ur_seqn decode_u32_ie +#define encode_pfcp_ie_ur_seqn encode_u32_ie -#define format_activate_predefined_rules format_simple_vec_ie -#define decode_activate_predefined_rules decode_simple_vec_ie -#define encode_activate_predefined_rules encode_simple_vec_ie -#define free_activate_predefined_rules free_simple_vec_ie +#define format_pfcp_ie_activate_predefined_rules format_simple_vec_ie +#define decode_pfcp_ie_activate_predefined_rules decode_simple_vec_ie +#define encode_pfcp_ie_activate_predefined_rules encode_simple_vec_ie +#define free_pfcp_ie_activate_predefined_rules free_simple_vec_ie -#define format_deactivate_predefined_rules format_simple_vec_ie -#define decode_deactivate_predefined_rules decode_simple_vec_ie -#define encode_deactivate_predefined_rules encode_simple_vec_ie -#define free_deactivate_predefined_rules free_simple_vec_ie +#define format_pfcp_ie_deactivate_predefined_rules format_simple_vec_ie +#define decode_pfcp_ie_deactivate_predefined_rules decode_simple_vec_ie +#define encode_pfcp_ie_deactivate_predefined_rules encode_simple_vec_ie +#define free_pfcp_ie_deactivate_predefined_rules free_simple_vec_ie -#define format_far_id format_u32_ie -#define decode_far_id decode_u32_ie -#define encode_far_id encode_u32_ie +#define format_pfcp_ie_far_id format_u32_ie +#define decode_pfcp_ie_far_id decode_u32_ie +#define encode_pfcp_ie_far_id encode_u32_ie -#define format_qer_id format_u32_ie -#define decode_qer_id decode_u32_ie -#define encode_qer_id encode_u32_ie +#define format_pfcp_ie_qer_id format_u32_ie +#define decode_pfcp_ie_qer_id decode_u32_ie +#define encode_pfcp_ie_qer_id encode_u32_ie static u8 * -format_oci_flags (u8 *s, va_list *args) +format_pfcp_ie_oci_flags (u8 *s, va_list *args) { - pfcp_oci_flags_t *v = va_arg (*args, pfcp_oci_flags_t *); + pfcp_ie_oci_flags_t *v = va_arg (*args, pfcp_ie_oci_flags_t *); - return format (s, "AOCI:%d", !!(v->flags & OCI_ASSOCIATE_OCI_WITH_NODE_ID)); + return format (s, "AOCI:%d", + !!(v->flags & PFCP_OCI_ASSOCIATE_OCI_WITH_NODE_ID)); } static int -decode_oci_flags (u8 *data, u16 length, void *p) +decode_pfcp_ie_oci_flags (u8 *data, u16 length, void *p) { - pfcp_oci_flags_t *v = p; + pfcp_ie_oci_flags_t *v = p; if (length < 1) return PFCP_CAUSE_INVALID_LENGTH; @@ -3392,9 +3414,9 @@ decode_oci_flags (u8 *data, u16 length, void *p) } static int -encode_oci_flags (void *p, u8 **vec) +encode_pfcp_ie_oci_flags (void *p, u8 **vec) { - pfcp_oci_flags_t *v = p; + pfcp_ie_oci_flags_t *v = p; put_u8 (*vec, v->flags); @@ -3402,62 +3424,62 @@ encode_oci_flags (void *p, u8 **vec) } static u8 * -format_pfcp_association_release_request (u8 *s, va_list *args) +format_pfcp_ie_pfcp_association_release_request (u8 *s, va_list *args) { - pfcp_pfcp_association_release_request_t *v = - va_arg (*args, pfcp_pfcp_association_release_request_t *); + pfcp_ie_pfcp_association_release_request_t *v = + va_arg (*args, pfcp_ie_pfcp_association_release_request_t *); return format (s, "SARR:%d,URSS:%d", - !!(v->flags & F_PFCP_ASSOCIATION_RELEASE_REQUEST_SARR), - !!(v->flags & F_PFCP_ASSOCIATION_RELEASE_REQUEST_URSS)); + !!(v->flags & PFCP_F_PFCP_ASSOCIATION_RELEASE_REQUEST_SARR), + !!(v->flags & PFCP_F_PFCP_ASSOCIATION_RELEASE_REQUEST_URSS)); } static int -decode_pfcp_association_release_request (u8 *data, u16 length, void *p) +decode_pfcp_ie_pfcp_association_release_request (u8 *data, u16 length, void *p) { - pfcp_pfcp_association_release_request_t *v = p; + pfcp_ie_pfcp_association_release_request_t *v = p; if (length < 1) return PFCP_CAUSE_INVALID_LENGTH; - v->flags = get_u8 (data) & F_PFCP_ASSOCIATION_RELEASE_REQUEST_MASK; + v->flags = get_u8 (data) & PFCP_F_PFCP_ASSOCIATION_RELEASE_REQUEST_MASK; return 0; } static int -encode_pfcp_association_release_request (void *p, u8 **vec) +encode_pfcp_ie_pfcp_association_release_request (void *p, u8 **vec) { - pfcp_pfcp_association_release_request_t *v = p; + pfcp_ie_pfcp_association_release_request_t *v = p; put_u8 (*vec, v->flags); return 0; } -#define format_graceful_release_period format_timer_ie -#define decode_graceful_release_period decode_timer_ie -#define encode_graceful_release_period encode_timer_ie +#define format_pfcp_ie_graceful_release_period format_pfcp_ie_timer +#define decode_pfcp_ie_graceful_release_period decode_pfcp_ie_timer +#define encode_pfcp_ie_graceful_release_period encode_pfcp_ie_timer static char *pdn_type[] = { - [PDN_TYPE_IPv4] = "IPv4", [PDN_TYPE_IPv6] = "IPv6", - [PDN_TYPE_IPv4v6] = "IPv4v6", [PDN_TYPE_NON_IP] = "Non-IP", - [PDN_TYPE_ETHERNET] = "Ethernet", + [PFCP_PDN_TYPE_IPv4] = "IPv4", [PFCP_PDN_TYPE_IPv6] = "IPv6", + [PFCP_PDN_TYPE_IPv4v6] = "IPv4v6", [PFCP_PDN_TYPE_NON_IP] = "Non-IP", + [PFCP_PDN_TYPE_ETHERNET] = "Ethernet", }; static u8 * -format_pdn_type (u8 *s, va_list *args) +format_pfcp_ie_pdn_type (u8 *s, va_list *args) { - pfcp_pdn_type_t *v = va_arg (*args, pfcp_pdn_type_t *); + pfcp_ie_pdn_type_t *v = va_arg (*args, pfcp_ie_pdn_type_t *); - return format (s, "%U", format_enum, (u64) v->type, pdn_type, + return format (s, "%U", format_pfcp_enum, (u64) v->type, pdn_type, ARRAY_LEN (pdn_type)); } static int -decode_pdn_type (u8 *data, u16 length, void *p) +decode_pfcp_ie_pdn_type (u8 *data, u16 length, void *p) { - pfcp_pdn_type_t *v = p; + pfcp_ie_pdn_type_t *v = p; if (length < 1) return PFCP_CAUSE_INVALID_LENGTH; @@ -3468,9 +3490,9 @@ decode_pdn_type (u8 *data, u16 length, void *p) } static int -encode_pdn_type (void *p, u8 **vec) +encode_pfcp_ie_pdn_type (void *p, u8 **vec) { - pfcp_pdn_type_t *v = p; + pfcp_ie_pdn_type_t *v = p; put_u8 (*vec, v->type); @@ -3478,24 +3500,24 @@ encode_pdn_type (void *p, u8 **vec) } static char *failed_rule_type[] = { - [FAILED_RULE_TYPE_PDR] = "PDR", [FAILED_RULE_TYPE_FAR] = "FAR", - [FAILED_RULE_TYPE_QER] = "QER", [FAILED_RULE_TYPE_URR] = "URR", - [FAILED_RULE_TYPE_BAR] = "BAR", + [PFCP_FAILED_RULE_TYPE_PDR] = "PDR", [PFCP_FAILED_RULE_TYPE_FAR] = "FAR", + [PFCP_FAILED_RULE_TYPE_QER] = "QER", [PFCP_FAILED_RULE_TYPE_URR] = "URR", + [PFCP_FAILED_RULE_TYPE_BAR] = "BAR", }; static u8 * -format_failed_rule_id (u8 *s, va_list *args) +format_pfcp_ie_failed_rule_id (u8 *s, va_list *args) { - pfcp_failed_rule_id_t *n = va_arg (*args, pfcp_failed_rule_id_t *); + pfcp_ie_failed_rule_id_t *n = va_arg (*args, pfcp_ie_failed_rule_id_t *); - return format (s, "%U: %u", format_enum, (u64) n->type, failed_rule_type, - ARRAY_LEN (failed_rule_type), n->id); + return format (s, "%U: %u", format_pfcp_enum, (u64) n->type, + failed_rule_type, ARRAY_LEN (failed_rule_type), n->id); } static int -decode_failed_rule_id (u8 *data, u16 length, void *p) +decode_pfcp_ie_failed_rule_id (u8 *data, u16 length, void *p) { - pfcp_failed_rule_id_t *v = p; + pfcp_ie_failed_rule_id_t *v = p; if (length < 1) return PFCP_CAUSE_INVALID_LENGTH; @@ -3505,31 +3527,31 @@ decode_failed_rule_id (u8 *data, u16 length, void *p) switch (v->type) { - case FAILED_RULE_TYPE_PDR: + case PFCP_FAILED_RULE_TYPE_PDR: if (length < 2) return PFCP_CAUSE_INVALID_LENGTH; v->id = get_u16 (data); break; - case FAILED_RULE_TYPE_FAR: + case PFCP_FAILED_RULE_TYPE_FAR: if (length < 4) return PFCP_CAUSE_INVALID_LENGTH; v->id = get_u32 (data); break; - case FAILED_RULE_TYPE_QER: + case PFCP_FAILED_RULE_TYPE_QER: if (length < 4) return PFCP_CAUSE_INVALID_LENGTH; v->id = get_u32 (data); break; - case FAILED_RULE_TYPE_URR: + case PFCP_FAILED_RULE_TYPE_URR: if (length < 4) return PFCP_CAUSE_INVALID_LENGTH; v->id = get_u32 (data); break; - case FAILED_RULE_TYPE_BAR: + case PFCP_FAILED_RULE_TYPE_BAR: if (length < 1) return PFCP_CAUSE_INVALID_LENGTH; v->id = get_u8 (data); @@ -3545,30 +3567,30 @@ decode_failed_rule_id (u8 *data, u16 length, void *p) } static int -encode_failed_rule_id (void *p, u8 **vec) +encode_pfcp_ie_failed_rule_id (void *p, u8 **vec) { - pfcp_failed_rule_id_t *v = p; + pfcp_ie_failed_rule_id_t *v = p; put_u8 (*vec, v->type); switch (v->type) { - case FAILED_RULE_TYPE_PDR: + case PFCP_FAILED_RULE_TYPE_PDR: put_u16 (*vec, v->id); break; - case FAILED_RULE_TYPE_FAR: + case PFCP_FAILED_RULE_TYPE_FAR: put_u32 (*vec, v->id); break; - case FAILED_RULE_TYPE_QER: + case PFCP_FAILED_RULE_TYPE_QER: put_u32 (*vec, v->id); break; - case FAILED_RULE_TYPE_URR: + case PFCP_FAILED_RULE_TYPE_URR: put_u32 (*vec, v->id); break; - case FAILED_RULE_TYPE_BAR: + case PFCP_FAILED_RULE_TYPE_BAR: put_u8 (*vec, v->id); break; @@ -3582,20 +3604,20 @@ encode_failed_rule_id (void *p, u8 **vec) static const char *base_time_interval_type[] = { "CTP", "DTP", NULL }; static u8 * -format_time_quota_mechanism (u8 *s, va_list *args) +format_pfcp_ie_time_quota_mechanism (u8 *s, va_list *args) { - pfcp_time_quota_mechanism_t *v = - va_arg (*args, pfcp_time_quota_mechanism_t *); + pfcp_ie_time_quota_mechanism_t *v = + va_arg (*args, pfcp_ie_time_quota_mechanism_t *); - return format (s, "%U,%u", format_enum, (u64) v->base_time_interval_type, - base_time_interval_type, ARRAY_LEN (base_time_interval_type), - v->base_time_interval); + return format (s, "%U,%u", format_pfcp_enum, + (u64) v->base_time_interval_type, base_time_interval_type, + ARRAY_LEN (base_time_interval_type), v->base_time_interval); } static int -decode_time_quota_mechanism (u8 *data, u16 length, void *p) +decode_pfcp_ie_time_quota_mechanism (u8 *data, u16 length, void *p) { - pfcp_time_quota_mechanism_t *v = p; + pfcp_ie_time_quota_mechanism_t *v = p; if (length < 3) return PFCP_CAUSE_INVALID_LENGTH; @@ -3607,9 +3629,9 @@ decode_time_quota_mechanism (u8 *data, u16 length, void *p) } static int -encode_time_quota_mechanism (void *p, u8 **vec) +encode_pfcp_ie_time_quota_mechanism (void *p, u8 **vec) { - pfcp_time_quota_mechanism_t *v = p; + pfcp_ie_time_quota_mechanism_t *v = p; put_u8 (*vec, v->base_time_interval_type); put_u32 (*vec, v->base_time_interval); @@ -3618,18 +3640,18 @@ encode_time_quota_mechanism (void *p, u8 **vec) } u8 * -format_user_plane_ip_resource_information (u8 *s, va_list *args) +format_pfcp_ie_user_plane_ip_resource_information (u8 *s, va_list *args) { - pfcp_user_plane_ip_resource_information_t *v = - va_arg (*args, pfcp_user_plane_ip_resource_information_t *); + pfcp_ie_user_plane_ip_resource_information_t *v = + va_arg (*args, pfcp_ie_user_plane_ip_resource_information_t *); if (v->network_instance) - s = format (s, "Network Instance: %U, ", format_dns_labels, + s = format (s, "Network Instance: %U, ", format_pfcp_dns_labels, v->network_instance); - if (v->flags & USER_PLANE_IP_RESOURCE_INFORMATION_V4) + if (v->flags & PFCP_USER_PLANE_IP_RESOURCE_INFORMATION_V4) s = format (s, "%U, ", format_ip4_address, &v->ip4); - if (v->flags & USER_PLANE_IP_RESOURCE_INFORMATION_V6) + if (v->flags & PFCP_USER_PLANE_IP_RESOURCE_INFORMATION_V6) s = format (s, "%U, ", format_ip6_address, &v->ip6); if (v->teid_range_indication != 0) @@ -3642,16 +3664,17 @@ format_user_plane_ip_resource_information (u8 *s, va_list *args) } static int -decode_user_plane_ip_resource_information (u8 *data, u16 length, void *p) +decode_pfcp_ie_user_plane_ip_resource_information (u8 *data, u16 length, + void *p) { - pfcp_user_plane_ip_resource_information_t *v = p; + pfcp_ie_user_plane_ip_resource_information_t *v = p; u8 flags; if (length < 1) return PFCP_CAUSE_INVALID_LENGTH; flags = get_u8 (data); - v->flags = flags & USER_PLANE_IP_RESOURCE_INFORMATION_MASK; + v->flags = flags & PFCP_USER_PLANE_IP_RESOURCE_INFORMATION_MASK; length--; v->teid_range_indication = (flags >> 2) & 0x07; @@ -3664,7 +3687,7 @@ decode_user_plane_ip_resource_information (u8 *data, u16 length, void *p) length--; } - if (flags & USER_PLANE_IP_RESOURCE_INFORMATION_V4) + if (flags & PFCP_USER_PLANE_IP_RESOURCE_INFORMATION_V4) { if (length < 4) return PFCP_CAUSE_INVALID_LENGTH; @@ -3672,7 +3695,7 @@ decode_user_plane_ip_resource_information (u8 *data, u16 length, void *p) length -= 4; } - if (flags & USER_PLANE_IP_RESOURCE_INFORMATION_V6) + if (flags & PFCP_USER_PLANE_IP_RESOURCE_INFORMATION_V6) { if (length < 16) return PFCP_CAUSE_INVALID_LENGTH; @@ -3680,70 +3703,71 @@ decode_user_plane_ip_resource_information (u8 *data, u16 length, void *p) length -= 16; } - if (flags & USER_PLANE_IP_RESOURCE_INFORMATION_ASSONI) + if (flags & PFCP_USER_PLANE_IP_RESOURCE_INFORMATION_ASSONI) get_vec (v->network_instance, length, data); - if (flags & USER_PLANE_IP_RESOURCE_INFORMATION_ASSOSI) + if (flags & PFCP_USER_PLANE_IP_RESOURCE_INFORMATION_ASSOSI) v->source_intf = get_u8 (data) & 0x0f; return 0; } static int -encode_user_plane_ip_resource_information (void *p, u8 **vec) +encode_pfcp_ie_user_plane_ip_resource_information (void *p, u8 **vec) { - pfcp_user_plane_ip_resource_information_t *v = p; + pfcp_ie_user_plane_ip_resource_information_t *v = p; u8 flags; - flags = v->flags & USER_PLANE_IP_RESOURCE_INFORMATION_MASK; + flags = v->flags & PFCP_USER_PLANE_IP_RESOURCE_INFORMATION_MASK; flags |= (v->teid_range_indication & 0x07) << 2; - flags |= v->network_instance ? USER_PLANE_IP_RESOURCE_INFORMATION_ASSONI : 0; + flags |= + v->network_instance ? PFCP_USER_PLANE_IP_RESOURCE_INFORMATION_ASSONI : 0; put_u8 (*vec, flags); if (v->teid_range_indication != 0) put_u8 (*vec, v->teid_range); - if (v->flags & USER_PLANE_IP_RESOURCE_INFORMATION_V4) + if (v->flags & PFCP_USER_PLANE_IP_RESOURCE_INFORMATION_V4) put_ip4 (*vec, v->ip4); - if (v->flags & USER_PLANE_IP_RESOURCE_INFORMATION_V6) + if (v->flags & PFCP_USER_PLANE_IP_RESOURCE_INFORMATION_V6) put_ip6 (*vec, v->ip6); if (v->network_instance) vec_append (*vec, v->network_instance); - if (v->flags & USER_PLANE_IP_RESOURCE_INFORMATION_ASSOSI) + if (v->flags & PFCP_USER_PLANE_IP_RESOURCE_INFORMATION_ASSOSI) put_u8 (*vec, v->source_intf & 0x0f); return 0; } static void -free_user_plane_ip_resource_information (void *p) +free_pfcp_ie_user_plane_ip_resource_information (void *p) { - pfcp_user_plane_ip_resource_information_t *v = p; + pfcp_ie_user_plane_ip_resource_information_t *v = p; vec_free (v->network_instance); } -#define format_user_plane_inactivity_timer format_u32_ie -#define decode_user_plane_inactivity_timer decode_u32_ie -#define encode_user_plane_inactivity_timer encode_u32_ie +#define format_pfcp_ie_user_plane_inactivity_timer format_u32_ie +#define decode_pfcp_ie_user_plane_inactivity_timer decode_u32_ie +#define encode_pfcp_ie_user_plane_inactivity_timer encode_u32_ie static u8 * -format_multiplier (u8 *s, va_list *args) +format_pfcp_ie_multiplier (u8 *s, va_list *args) { - pfcp_multiplier_t *v = va_arg (*args, pfcp_multiplier_t *); + pfcp_ie_multiplier_t *v = va_arg (*args, pfcp_ie_multiplier_t *); return format (s, "%ldE%d (%f)", v->digits, v->exponent, v->digits * pow (10, v->exponent)); } static int -decode_multiplier (u8 *data, u16 length, void *p) +decode_pfcp_ie_multiplier (u8 *data, u16 length, void *p) { - pfcp_multiplier_t *v = p; + pfcp_ie_multiplier_t *v = p; if (length < 12) return PFCP_CAUSE_INVALID_LENGTH; @@ -3755,9 +3779,9 @@ decode_multiplier (u8 *data, u16 length, void *p) } static int -encode_multiplier (void *p, u8 **vec) +encode_pfcp_ie_multiplier (void *p, u8 **vec) { - pfcp_multiplier_t *v = p; + pfcp_ie_multiplier_t *v = p; put_u64 (*vec, (u64) v->digits); put_u32 (*vec, (u32) v->exponent); @@ -3765,30 +3789,30 @@ encode_multiplier (void *p, u8 **vec) return 0; } -#define format_aggregated_urr_id format_u32_ie -#define decode_aggregated_urr_id decode_u32_ie -#define encode_aggregated_urr_id encode_u32_ie +#define format_pfcp_ie_aggregated_urr_id format_u32_ie +#define decode_pfcp_ie_aggregated_urr_id decode_u32_ie +#define encode_pfcp_ie_aggregated_urr_id encode_u32_ie -#define format_subsequent_volume_quota format_volume_ie -#define decode_subsequent_volume_quota decode_volume_ie -#define encode_subsequent_volume_quota encode_volume_ie +#define format_pfcp_ie_subsequent_volume_quota format_pfcp_ie_volume +#define decode_pfcp_ie_subsequent_volume_quota decode_pfcp_ie_volume +#define encode_pfcp_ie_subsequent_volume_quota encode_pfcp_ie_volume -#define format_subsequent_time_quota format_u32_ie -#define decode_subsequent_time_quota decode_u32_ie -#define encode_subsequent_time_quota encode_u32_ie +#define format_pfcp_ie_subsequent_time_quota format_u32_ie +#define decode_pfcp_ie_subsequent_time_quota decode_u32_ie +#define encode_pfcp_ie_subsequent_time_quota encode_u32_ie static u8 * -format_rqi (u8 *s, va_list *args) +format_pfcp_ie_rqi (u8 *s, va_list *args) { - pfcp_rqi_t *v = va_arg (*args, pfcp_rqi_t *); + pfcp_ie_rqi_t *v = va_arg (*args, pfcp_ie_rqi_t *); - return format (s, "RQI:%d", !!(v->flags & RQI_FLAG)); + return format (s, "RQI:%d", !!(v->flags & PFCP_RQI_FLAG)); } static int -decode_rqi (u8 *data, u16 length, void *p) +decode_pfcp_ie_rqi (u8 *data, u16 length, void *p) { - pfcp_rqi_t *v = p; + pfcp_ie_rqi_t *v = p; if (length < 1) return PFCP_CAUSE_INVALID_LENGTH; @@ -3799,30 +3823,30 @@ decode_rqi (u8 *data, u16 length, void *p) } static int -encode_rqi (void *p, u8 **vec) +encode_pfcp_ie_rqi (void *p, u8 **vec) { - pfcp_rqi_t *v = p; + pfcp_ie_rqi_t *v = p; put_u8 (*vec, v->flags); return 0; } -#define format_qfi format_u8_ie -#define decode_qfi decode_u8_ie -#define encode_qfi encode_u8_ie +#define format_pfcp_ie_qfi format_u8_ie +#define decode_pfcp_ie_qfi decode_u8_ie +#define encode_pfcp_ie_qfi encode_u8_ie -#define format_query_urr_reference format_u32_ie -#define decode_query_urr_reference decode_u32_ie -#define encode_query_urr_reference encode_u32_ie +#define format_pfcp_ie_query_urr_reference format_u32_ie +#define decode_pfcp_ie_query_urr_reference decode_u32_ie +#define encode_pfcp_ie_query_urr_reference encode_u32_ie static u8 * -format_additional_usage_reports_information (u8 *s, va_list *args) +format_pfcp_ie_additional_usage_reports_information (u8 *s, va_list *args) { - pfcp_additional_usage_reports_information_t *v = - va_arg (*args, pfcp_additional_usage_reports_information_t *); + pfcp_ie_additional_usage_reports_information_t *v = + va_arg (*args, pfcp_ie_additional_usage_reports_information_t *); - if (*v & AURI_FLAG) + if (*v & PFCP_AURI_FLAG) s = format (s, "AURI:true"); else s = format (s, "%u", *v); @@ -3830,25 +3854,25 @@ format_additional_usage_reports_information (u8 *s, va_list *args) return s; } -#define decode_additional_usage_reports_information decode_u16_ie -#define encode_additional_usage_reports_information encode_u16_ie +#define decode_pfcp_ie_additional_usage_reports_information decode_u16_ie +#define encode_pfcp_ie_additional_usage_reports_information encode_u16_ie -#define format_traffic_endpoint_id format_u8_ie -#define decode_traffic_endpoint_id decode_u8_ie -#define encode_traffic_endpoint_id encode_u8_ie +#define format_pfcp_ie_traffic_endpoint_id format_u8_ie +#define decode_pfcp_ie_traffic_endpoint_id decode_u8_ie +#define encode_pfcp_ie_traffic_endpoint_id encode_u8_ie static u8 * -format_pfcp_mac_address (u8 *s, va_list *args) +format_pfcp_ie_mac_address (u8 *s, va_list *args) { - pfcp_mac_address_t *v = va_arg (*args, pfcp_mac_address_t *); + pfcp_ie_mac_address_t *v = va_arg (*args, pfcp_ie_mac_address_t *); - if (v->flags & F_SOURCE_MAC) + if (v->flags & PFCP_MAC_F_SOURCE_MAC) s = format (s, "SRC:%U,", format_mac_address_t, v->src_mac); - if (v->flags & F_DESTINATION_MAC) + if (v->flags & PFCP_MAC_F_DESTINATION_MAC) s = format (s, "DST:%U,", format_mac_address_t, v->dst_mac); - if (v->flags & F_UPPER_SOURCE_MAC) + if (v->flags & PFCP_MAC_F_UPPER_SOURCE_MAC) s = format (s, "USRC:%U,", format_mac_address_t, v->upper_src_mac); - if (v->flags & F_UPPER_DESTINATION_MAC) + if (v->flags & PFCP_MAC_F_UPPER_DESTINATION_MAC) s = format (s, "UDST:%U,", format_mac_address_t, v->upper_dst_mac); if (v->flags) @@ -3858,9 +3882,9 @@ format_pfcp_mac_address (u8 *s, va_list *args) } static int -decode_pfcp_mac_address (u8 *data, u16 length, void *p) +decode_pfcp_ie_mac_address (u8 *data, u16 length, void *p) { - pfcp_mac_address_t *v = p; + pfcp_ie_mac_address_t *v = p; if (length < 1) return PFCP_CAUSE_INVALID_LENGTH; @@ -3868,7 +3892,7 @@ decode_pfcp_mac_address (u8 *data, u16 length, void *p) v->flags = get_u8 (data); length--; - if (v->flags & F_SOURCE_MAC) + if (v->flags & PFCP_MAC_F_SOURCE_MAC) { if (length < 6) return PFCP_CAUSE_INVALID_LENGTH; @@ -3878,7 +3902,7 @@ decode_pfcp_mac_address (u8 *data, u16 length, void *p) length -= 6; } - if (v->flags & F_DESTINATION_MAC) + if (v->flags & PFCP_MAC_F_DESTINATION_MAC) { if (length < 6) return PFCP_CAUSE_INVALID_LENGTH; @@ -3888,7 +3912,7 @@ decode_pfcp_mac_address (u8 *data, u16 length, void *p) length -= 6; } - if (v->flags & F_UPPER_SOURCE_MAC) + if (v->flags & PFCP_MAC_F_UPPER_SOURCE_MAC) { if (length < 6) return PFCP_CAUSE_INVALID_LENGTH; @@ -3898,7 +3922,7 @@ decode_pfcp_mac_address (u8 *data, u16 length, void *p) length -= 6; } - if (v->flags & F_UPPER_DESTINATION_MAC) + if (v->flags & PFCP_MAC_F_UPPER_DESTINATION_MAC) { if (length < 6) return PFCP_CAUSE_INVALID_LENGTH; @@ -3912,42 +3936,43 @@ decode_pfcp_mac_address (u8 *data, u16 length, void *p) } static int -encode_pfcp_mac_address (void *p, u8 **vec) +encode_pfcp_ie_mac_address (void *p, u8 **vec) { - pfcp_mac_address_t *v = p; + pfcp_ie_mac_address_t *v = p; put_u8 (*vec, v->flags); - if (v->flags & F_SOURCE_MAC) + if (v->flags & PFCP_MAC_F_SOURCE_MAC) vec_add (*vec, &v->src_mac, 6); - if (v->flags & F_DESTINATION_MAC) + if (v->flags & PFCP_MAC_F_DESTINATION_MAC) vec_add (*vec, &v->dst_mac, 6); - if (v->flags & F_UPPER_SOURCE_MAC) + if (v->flags & PFCP_MAC_F_UPPER_SOURCE_MAC) vec_add (*vec, &v->upper_src_mac, 6); - if (v->flags & F_UPPER_DESTINATION_MAC) + if (v->flags & PFCP_MAC_F_UPPER_DESTINATION_MAC) vec_add (*vec, &v->upper_dst_mac, 6); return 0; } static u8 * -format_vlan_tag (u8 *s, va_list *args) +format_pfcp_ie_vlan_tag (u8 *s, va_list *args) { - pfcp_vlan_tag_t *v = va_arg (*args, pfcp_vlan_tag_t *); + pfcp_ie_vlan_tag_t *v = va_arg (*args, pfcp_ie_vlan_tag_t *); return format (s, "0x%04x/0x%04", v->tci, v->mask); } static int -decode_vlan_tag (u8 *data, u16 length, void *p) +decode_pfcp_ie_vlan_tag (u8 *data, u16 length, void *p) { - pfcp_vlan_tag_t *v = p; + pfcp_ie_vlan_tag_t *v = p; if (length < 3) return PFCP_CAUSE_INVALID_LENGTH; - v->mask = clib_host_to_net_u16 (((data[0] & BIT (0)) ? VLAN_MASK_PCP : 0) | - ((data[0] & BIT (1)) ? VLAN_MASK_DEI : 0) | - ((data[0] & BIT (2)) ? VLAN_MASK_VID : 0)); + v->mask = + clib_host_to_net_u16 (((data[0] & BIT (0)) ? PFCP_VLAN_MASK_PCP : 0) | + ((data[0] & BIT (1)) ? PFCP_VLAN_MASK_DEI : 0) | + ((data[0] & BIT (2)) ? PFCP_VLAN_MASK_VID : 0)); v->tci = clib_host_to_net_u16 (((data[1] & 0x07) << 5) | ((data[1] & 0x08) << 1) | ((data[1] & 0xf0) << 4) | data[2]); @@ -3959,45 +3984,46 @@ decode_vlan_tag (u8 *data, u16 length, void *p) } static int -encode_vlan_tag (void *p, u8 **vec) +encode_pfcp_ie_vlan_tag (void *p, u8 **vec) { - pfcp_vlan_tag_t *v = p; + pfcp_ie_vlan_tag_t *v = p; u16 mask = clib_net_to_host_u16 (v->mask); u16 tci = clib_net_to_host_u16 (v->tci); - put_u8 (*vec, (((mask & VLAN_MASK_PCP) ? BIT (0) : 0) | - ((mask & VLAN_MASK_DEI) ? BIT (1) : 0) | - ((mask & VLAN_MASK_VID) ? BIT (2) : 0))); - put_u16 (*vec, (((tci & VLAN_MASK_PCP) >> 5) | ((tci & VLAN_MASK_DEI) >> 1) | - ((tci & 0x0f00) << 4) | (tci & 0x00ff))); + put_u8 (*vec, (((mask & PFCP_VLAN_MASK_PCP) ? BIT (0) : 0) | + ((mask & PFCP_VLAN_MASK_DEI) ? BIT (1) : 0) | + ((mask & PFCP_VLAN_MASK_VID) ? BIT (2) : 0))); + put_u16 (*vec, (((tci & PFCP_VLAN_MASK_PCP) >> 5) | + ((tci & PFCP_VLAN_MASK_DEI) >> 1) | ((tci & 0x0f00) << 4) | + (tci & 0x00ff))); return 0; } -#define format_c_tag format_vlan_tag -#define decode_c_tag decode_vlan_tag -#define encode_c_tag encode_vlan_tag +#define format_pfcp_ie_c_tag format_pfcp_ie_vlan_tag +#define decode_pfcp_ie_c_tag decode_pfcp_ie_vlan_tag +#define encode_pfcp_ie_c_tag encode_pfcp_ie_vlan_tag -#define format_s_tag format_vlan_tag -#define decode_s_tag decode_vlan_tag -#define encode_s_tag encode_vlan_tag +#define format_pfcp_ie_s_tag format_pfcp_ie_vlan_tag +#define decode_pfcp_ie_s_tag decode_pfcp_ie_vlan_tag +#define encode_pfcp_ie_s_tag encode_pfcp_ie_vlan_tag -#define format_ethertype format_u16_ie -#define decode_ethertype decode_u16_ie -#define encode_ethertype encode_u16_ie +#define format_pfcp_ie_ethertype format_u16_ie +#define decode_pfcp_ie_ethertype decode_u16_ie +#define encode_pfcp_ie_ethertype encode_u16_ie static u8 * -format_proxying (u8 *s, va_list *args) +format_pfcp_ie_proxying (u8 *s, va_list *args) { - pfcp_proxying_t *v = va_arg (*args, pfcp_proxying_t *); + pfcp_ie_proxying_t *v = va_arg (*args, pfcp_ie_proxying_t *); - return format (s, "ARP:%d,INS:%d", !!(v->flags & F_PROXY_ARP), - !!(v->flags & F_PROXY_IP6_NS)); + return format (s, "ARP:%d,INS:%d", !!(v->flags & PFCP_F_PROXY_ARP), + !!(v->flags & PFCP_F_PROXY_IP6_NS)); } static int -decode_proxying (u8 *data, u16 length, void *p) +decode_pfcp_ie_proxying (u8 *data, u16 length, void *p) { - pfcp_proxying_t *v = p; + pfcp_ie_proxying_t *v = p; if (length < 1) return PFCP_CAUSE_INVALID_LENGTH; @@ -4008,32 +4034,32 @@ decode_proxying (u8 *data, u16 length, void *p) } static int -encode_proxying (void *p, u8 **vec) +encode_pfcp_ie_proxying (void *p, u8 **vec) { - pfcp_proxying_t *v = p; + pfcp_ie_proxying_t *v = p; put_u8 (*vec, v->flags); return 0; } -#define format_ethernet_filter_id format_u32_ie -#define decode_ethernet_filter_id decode_u32_ie -#define encode_ethernet_filter_id encode_u32_ie +#define format_pfcp_ie_ethernet_filter_id format_u32_ie +#define decode_pfcp_ie_ethernet_filter_id decode_u32_ie +#define encode_pfcp_ie_ethernet_filter_id encode_u32_ie static u8 * -format_ethernet_filter_properties (u8 *s, va_list *args) +format_pfcp_ie_ethernet_filter_properties (u8 *s, va_list *args) { - pfcp_ethernet_filter_properties_t *v = - va_arg (*args, pfcp_ethernet_filter_properties_t *); + pfcp_ie_ethernet_filter_properties_t *v = + va_arg (*args, pfcp_ie_ethernet_filter_properties_t *); return format (s, "BIDE:%d", !!(v->flags & F_BIDIRECTIONAL_ETHERNET_FILTER)); } static int -decode_ethernet_filter_properties (u8 *data, u16 length, void *p) +decode_pfcp_ie_ethernet_filter_properties (u8 *data, u16 length, void *p) { - pfcp_ethernet_filter_properties_t *v = p; + pfcp_ie_ethernet_filter_properties_t *v = p; if (length < 1) return PFCP_CAUSE_INVALID_LENGTH; @@ -4044,31 +4070,31 @@ decode_ethernet_filter_properties (u8 *data, u16 length, void *p) } static int -encode_ethernet_filter_properties (void *p, u8 **vec) +encode_pfcp_ie_ethernet_filter_properties (void *p, u8 **vec) { - pfcp_ethernet_filter_properties_t *v = p; + pfcp_ie_ethernet_filter_properties_t *v = p; put_u8 (*vec, v->flags); return 0; } -#define format_suggested_buffering_packets_count format_u8_ie -#define decode_suggested_buffering_packets_count decode_u8_ie -#define encode_suggested_buffering_packets_count encode_u8_ie +#define format_pfcp_ie_suggested_buffering_packets_count format_u8_ie +#define decode_pfcp_ie_suggested_buffering_packets_count decode_u8_ie +#define encode_pfcp_ie_suggested_buffering_packets_count encode_u8_ie u8 * -format_user_id (u8 *s0, va_list *args) +format_pfcp_ie_user_id (u8 *s0, va_list *args) { - pfcp_user_id_t *v = va_arg (*args, pfcp_user_id_t *); + pfcp_ie_user_id_t *v = va_arg (*args, pfcp_ie_user_id_t *); u8 *s = s0; if (v->imsi_len > 0) - s = format (s, "IMSI:%U,", format_tbcd, v->imsi, v->imsi_len); + s = format (s, "IMSI:%U,", format_pfcp_tbcd, v->imsi, v->imsi_len); if (v->imei_len > 0) - s = format (s0, "IMEI:%U,", format_tbcd, v->imei, v->imei_len); + s = format (s0, "IMEI:%U,", format_pfcp_tbcd, v->imei, v->imei_len); if (v->msisdn_len > 0) - s = format (s, "MSISDN:%U,", format_tbcd, v->msisdn, v->msisdn_len); + s = format (s, "MSISDN:%U,", format_pfcp_tbcd, v->msisdn, v->msisdn_len); if (vec_len (v->nai) > 0) s = format (s, "NAI:%v,", v->nai); @@ -4079,9 +4105,9 @@ format_user_id (u8 *s0, va_list *args) } static int -decode_user_id (u8 *data, u16 length, void *p) +decode_pfcp_ie_user_id (u8 *data, u16 length, void *p) { - pfcp_user_id_t *v = p; + pfcp_ie_user_id_t *v = p; u8 flags; if (length < 1) @@ -4092,7 +4118,7 @@ decode_user_id (u8 *data, u16 length, void *p) flags = get_u8 (data); length--; - if (flags & USER_ID_IMSI) + if (flags & PFCP_USER_ID_IMSI) { if (length < 1) return PFCP_CAUSE_INVALID_LENGTH; @@ -4108,7 +4134,7 @@ decode_user_id (u8 *data, u16 length, void *p) length -= v->imsi_len; } - if (flags & USER_ID_IMEI) + if (flags & PFCP_USER_ID_IMEI) { if (length < 1) return PFCP_CAUSE_INVALID_LENGTH; @@ -4124,7 +4150,7 @@ decode_user_id (u8 *data, u16 length, void *p) length -= v->imei_len; } - if (flags & USER_ID_MSISDN) + if (flags & PFCP_USER_ID_MSISDN) { if (length < 1) return PFCP_CAUSE_INVALID_LENGTH; @@ -4140,7 +4166,7 @@ decode_user_id (u8 *data, u16 length, void *p) length -= v->msisdn_len; } - if (flags & USER_ID_NAI) + if (flags & PFCP_USER_ID_NAI) { u8 len; @@ -4161,15 +4187,15 @@ decode_user_id (u8 *data, u16 length, void *p) } static int -encode_user_id (void *p, u8 **vec) +encode_pfcp_ie_user_id (void *p, u8 **vec) { - pfcp_user_id_t *v = p; + pfcp_ie_user_id_t *v = p; u8 flags; - flags = ((v->imei_len > 0) ? USER_ID_IMEI : 0) | - ((v->imsi_len > 0) ? USER_ID_IMSI : 0) | - ((v->msisdn_len > 0) ? USER_ID_MSISDN : 0) | - ((vec_len (v->nai) > 0) ? USER_ID_NAI : 0); + flags = ((v->imei_len > 0) ? PFCP_USER_ID_IMEI : 0) | + ((v->imsi_len > 0) ? PFCP_USER_ID_IMSI : 0) | + ((v->msisdn_len > 0) ? PFCP_USER_ID_MSISDN : 0) | + ((vec_len (v->nai) > 0) ? PFCP_USER_ID_NAI : 0); put_u8 (*vec, flags); @@ -4201,26 +4227,26 @@ encode_user_id (void *p, u8 **vec) } void -free_user_id (void *p) +free_pfcp_ie_user_id (void *p) { - pfcp_user_id_t *v = p; + pfcp_ie_user_id_t *v = p; vec_free (v->nai); } static u8 * -format_ethernet_pdu_session_information (u8 *s, va_list *args) +format_pfcp_ie_ethernet_pdu_session_information (u8 *s, va_list *args) { - pfcp_ethernet_pdu_session_information_t *v = - va_arg (*args, pfcp_ethernet_pdu_session_information_t *); + pfcp_ie_ethernet_pdu_session_information_t *v = + va_arg (*args, pfcp_ie_ethernet_pdu_session_information_t *); - return format (s, "ETHI:%d", !!(v->flags & F_ETHERNET_INDICATION)); + return format (s, "ETHI:%d", !!(v->flags & PFCP_F_ETHERNET_INDICATION)); } static int -decode_ethernet_pdu_session_information (u8 *data, u16 length, void *p) +decode_pfcp_ie_ethernet_pdu_session_information (u8 *data, u16 length, void *p) { - pfcp_ethernet_pdu_session_information_t *v = p; + pfcp_ie_ethernet_pdu_session_information_t *v = p; if (length < 1) return PFCP_CAUSE_INVALID_LENGTH; @@ -4231,9 +4257,9 @@ decode_ethernet_pdu_session_information (u8 *data, u16 length, void *p) } static int -encode_ethernet_pdu_session_information (void *p, u8 **vec) +encode_pfcp_ie_ethernet_pdu_session_information (void *p, u8 **vec) { - pfcp_ethernet_pdu_session_information_t *v = p; + pfcp_ie_ethernet_pdu_session_information_t *v = p; put_u8 (*vec, v->flags); @@ -4241,7 +4267,7 @@ encode_ethernet_pdu_session_information (void *p, u8 **vec) } static u8 * -format_mac_addresses_vec (u8 *s, va_list *args) +format_pfcp_mac_addresses_vec (u8 *s, va_list *args) { pfcp_mac_addresses_vec_t *v = va_arg (*args, pfcp_mac_addresses_vec_t *); mac_address_t *mac; @@ -4259,7 +4285,7 @@ format_mac_addresses_vec (u8 *s, va_list *args) } static int -decode_mac_addresses_vec (u8 *data, u16 length, void *p) +decode_pfcp_mac_addresses_vec (u8 *data, u16 length, void *p) { pfcp_mac_addresses_vec_t *v = p; u8 cnt; @@ -4279,7 +4305,7 @@ decode_mac_addresses_vec (u8 *data, u16 length, void *p) } static int -encode_mac_addresses_vec (void *p, u8 **vec) +encode_pfcp_mac_addresses_vec (void *p, u8 **vec) { pfcp_mac_addresses_vec_t *v = p; mac_address_t *mac; @@ -4295,42 +4321,42 @@ encode_mac_addresses_vec (void *p, u8 **vec) } static void -free_mac_addresses_vec (void *p) +free_pfcp_mac_addresses_vec (void *p) { pfcp_mac_addresses_vec_t *v = p; vec_free (*v); } -#define format_mac_addresses_detected format_mac_addresses_vec -#define decode_mac_addresses_detected decode_mac_addresses_vec -#define encode_mac_addresses_detected encode_mac_addresses_vec -#define free_mac_addresses_detected free_mac_addresses_vec +#define format_pfcp_ie_mac_addresses_detected format_pfcp_mac_addresses_vec +#define decode_pfcp_ie_mac_addresses_detected decode_pfcp_mac_addresses_vec +#define encode_pfcp_ie_mac_addresses_detected encode_pfcp_mac_addresses_vec +#define free_pfcp_ie_mac_addresses_detected free_pfcp_mac_addresses_vec -#define format_mac_addresses_removed format_mac_addresses_vec -#define decode_mac_addresses_removed decode_mac_addresses_vec -#define encode_mac_addresses_removed encode_mac_addresses_vec -#define free_mac_addresses_removed free_mac_addresses_vec +#define format_pfcp_ie_mac_addresses_removed format_pfcp_mac_addresses_vec +#define decode_pfcp_ie_mac_addresses_removed decode_pfcp_mac_addresses_vec +#define encode_pfcp_ie_mac_addresses_removed encode_pfcp_mac_addresses_vec +#define free_pfcp_ie_mac_addresses_removed free_pfcp_mac_addresses_vec -#define format_ethernet_inactivity_timer format_u32_ie -#define decode_ethernet_inactivity_timer decode_u32_ie -#define encode_ethernet_inactivity_timer encode_u32_ie +#define format_pfcp_ie_ethernet_inactivity_timer format_u32_ie +#define decode_pfcp_ie_ethernet_inactivity_timer decode_u32_ie +#define encode_pfcp_ie_ethernet_inactivity_timer encode_u32_ie -#define format_event_quota format_u32_ie -#define decode_event_quota decode_u32_ie -#define encode_event_quota encode_u32_ie +#define format_pfcp_ie_event_quota format_u32_ie +#define decode_pfcp_ie_event_quota decode_u32_ie +#define encode_pfcp_ie_event_quota encode_u32_ie -#define format_event_threshold format_u32_ie -#define decode_event_threshold decode_u32_ie -#define encode_event_threshold encode_u32_ie +#define format_pfcp_ie_event_threshold format_u32_ie +#define decode_pfcp_ie_event_threshold decode_u32_ie +#define encode_pfcp_ie_event_threshold encode_u32_ie -#define format_subsequent_event_quota format_u32_ie -#define decode_subsequent_event_quota decode_u32_ie -#define encode_subsequent_event_quota encode_u32_ie +#define format_pfcp_ie_subsequent_event_quota format_u32_ie +#define decode_pfcp_ie_subsequent_event_quota decode_u32_ie +#define encode_pfcp_ie_subsequent_event_quota encode_u32_ie -#define format_subsequent_event_threshold format_u32_ie -#define decode_subsequent_event_threshold decode_u32_ie -#define encode_subsequent_event_threshold encode_u32_ie +#define format_pfcp_ie_subsequent_event_threshold format_u32_ie +#define decode_pfcp_ie_subsequent_event_threshold decode_u32_ie +#define encode_pfcp_ie_subsequent_event_threshold encode_u32_ie static u8 * format_digit (u8 *s, u8 c) @@ -4363,9 +4389,10 @@ format_mccmcn (u8 *s, va_list *args) } static u8 * -format_trace_information (u8 *s, va_list *args) +format_pfcp_ie_trace_information (u8 *s, va_list *args) { - pfcp_trace_information_t *v = va_arg (*args, pfcp_trace_information_t *); + pfcp_ie_trace_information_t *v = + va_arg (*args, pfcp_ie_trace_information_t *); u8 *i; s = format (s, "MCC/MNC:%U,Id:0x%08x,Evs:", format_mccmcn, &v->mccmnc[0], @@ -4382,9 +4409,9 @@ format_trace_information (u8 *s, va_list *args) } static int -decode_trace_information (u8 *data, u16 length, void *p) +decode_pfcp_ie_trace_information (u8 *data, u16 length, void *p) { - pfcp_trace_information_t *v = p; + pfcp_ie_trace_information_t *v = p; u8 len; if (length < 8) @@ -4444,9 +4471,9 @@ decode_trace_information (u8 *data, u16 length, void *p) } static int -encode_trace_information (void *p, u8 **vec) +encode_pfcp_ie_trace_information (void *p, u8 **vec) { - pfcp_trace_information_t *v = p; + pfcp_ie_trace_information_t *v = p; put_u8 (*vec, v->mccmnc[0]); put_u8 (*vec, v->mccmnc[1]); @@ -4476,42 +4503,42 @@ encode_trace_information (void *p, u8 **vec) } static void -free_trace_information (void *p) +free_pfcp_ie_trace_information (void *p) { - pfcp_trace_information_t *v = p; + pfcp_ie_trace_information_t *v = p; vec_free (v->triggering_events); vec_free (v->interfaces); } -#define format_framed_route format_simple_vec_ie -#define decode_framed_route decode_simple_vec_ie -#define encode_framed_route encode_simple_vec_ie +#define format_pfcp_ie_framed_route format_simple_vec_ie +#define decode_pfcp_ie_framed_route decode_simple_vec_ie +#define encode_pfcp_ie_framed_route encode_simple_vec_ie -#define format_framed_routing format_u8_ie -#define decode_framed_routing decode_u8_ie -#define encode_framed_routing encode_u8_ie +#define format_pfcp_ie_framed_routing format_u8_ie +#define decode_pfcp_ie_framed_routing decode_u8_ie +#define encode_pfcp_ie_framed_routing encode_u8_ie -#define format_framed_ipv6_route format_simple_vec_ie -#define decode_framed_ipv6_route decode_simple_vec_ie -#define encode_framed_ipv6_route encode_simple_vec_ie +#define format_pfcp_ie_framed_ipv6_route format_simple_vec_ie +#define decode_pfcp_ie_framed_ipv6_route decode_simple_vec_ie +#define encode_pfcp_ie_framed_ipv6_route encode_simple_vec_ie -#define format_event_time_stamp format_time_stamp -#define decode_event_time_stamp decode_time_stamp_ie -#define encode_event_time_stamp encode_time_stamp_ie +#define format_pfcp_ie_event_time_stamp format_time_stamp +#define decode_pfcp_ie_event_time_stamp decode_time_stamp +#define encode_pfcp_ie_event_time_stamp encode_time_stamp -#define format_averaging_window format_u32_ie -#define decode_averaging_window decode_u32_ie -#define encode_averaging_window encode_u32_ie +#define format_pfcp_ie_averaging_window format_u32_ie +#define decode_pfcp_ie_averaging_window decode_u32_ie +#define encode_pfcp_ie_averaging_window encode_u32_ie -#define format_paging_policy_indicator format_u8_ie -#define decode_paging_policy_indicator decode_u8_ie -#define encode_paging_policy_indicator encode_u8_ie +#define format_pfcp_ie_paging_policy_indicator format_u8_ie +#define decode_pfcp_ie_paging_policy_indicator decode_u8_ie +#define encode_pfcp_ie_paging_policy_indicator encode_u8_ie -#define format_apn_dnn format_simple_vec_ie -#define decode_apn_dnn decode_simple_vec_ie -#define encode_apn_dnn encode_simple_vec_ie -#define free_apn_dnn free_simple_vec_ie +#define format_pfcp_ie_apn_dnn format_simple_vec_ie +#define decode_pfcp_ie_apn_dnn decode_simple_vec_ie +#define encode_pfcp_ie_apn_dnn encode_simple_vec_ie +#define free_pfcp_ie_apn_dnn free_simple_vec_ie static char *tgpp_interface_type[] = { [0] = "S1-U", @@ -4536,117 +4563,118 @@ static char *tgpp_interface_type[] = { }; static u8 * -format_tgpp_interface_type (u8 *s, va_list *args) +format_pfcp_ie_tgpp_interface_type (u8 *s, va_list *args) { - pfcp_tgpp_interface_type_t *v = va_arg (*args, pfcp_tgpp_interface_type_t *); + pfcp_ie_tgpp_interface_type_t *v = + va_arg (*args, pfcp_ie_tgpp_interface_type_t *); - return format (s, "%U", format_enum, (u64) *v, tgpp_interface_type, + return format (s, "%U", format_pfcp_enum, (u64) *v, tgpp_interface_type, ARRAY_LEN (tgpp_interface_type)); } -#define decode_tgpp_interface_type decode_u8_ie -#define encode_tgpp_interface_type encode_u8_ie +#define decode_pfcp_ie_tgpp_interface_type decode_u8_ie +#define encode_pfcp_ie_tgpp_interface_type encode_u8_ie static u8 * -format_pfcpsrreq_flags (u8 *s, va_list *args) +format_pfcp_ie_pfcpsrreq_flags (u8 *s, va_list *args) { - pfcp_pfcpsrreq_flags_t *v = va_arg (*args, pfcp_pfcpsrreq_flags_t *); + pfcp_ie_pfcpsrreq_flags_t *v = va_arg (*args, pfcp_ie_pfcpsrreq_flags_t *); - return format (s, "PSDBU:%d", !!(*v & PFCPSRREQ_PSDBU)); + return format (s, "PSDBU:%d", !!(*v & PFCP_PFCPSRREQ_PSDBU)); } -#define decode_pfcpsrreq_flags decode_u8_ie -#define encode_pfcpsrreq_flags encode_u8_ie +#define decode_pfcp_ie_pfcpsrreq_flags decode_u8_ie +#define encode_pfcp_ie_pfcpsrreq_flags encode_u8_ie static u8 * -format_pfcpaureq_flags (u8 *s, va_list *args) +format_pfcp_ie_pfcpaureq_flags (u8 *s, va_list *args) { - pfcp_pfcpaureq_flags_t *v = va_arg (*args, pfcp_pfcpaureq_flags_t *); + pfcp_ie_pfcpaureq_flags_t *v = va_arg (*args, pfcp_ie_pfcpaureq_flags_t *); - return format (s, "PARPS:%d", !!(*v & PFCPAUREQ_PARPS)); + return format (s, "PARPS:%d", !!(*v & PFCP_PFCPAUREQ_PARPS)); } -#define decode_pfcpaureq_flags decode_u8_ie -#define encode_pfcpaureq_flags encode_u8_ie +#define decode_pfcp_ie_pfcpaureq_flags decode_u8_ie +#define encode_pfcp_ie_pfcpaureq_flags encode_u8_ie -#define format_activation_time format_time_stamp -#define decode_activation_time decode_time_stamp_ie -#define encode_activation_time encode_time_stamp_ie +#define format_pfcp_ie_activation_time format_time_stamp +#define decode_pfcp_ie_activation_time decode_time_stamp +#define encode_pfcp_ie_activation_time encode_time_stamp -#define format_deactivation_time format_time_stamp -#define decode_deactivation_time decode_time_stamp_ie -#define encode_deactivation_time encode_time_stamp_ie +#define format_pfcp_ie_deactivation_time format_time_stamp +#define decode_pfcp_ie_deactivation_time decode_time_stamp +#define encode_pfcp_ie_deactivation_time encode_time_stamp -#define format_mar_id format_u16_ie -#define decode_mar_id decode_u16_ie -#define encode_mar_id encode_u16_ie +#define format_pfcp_ie_mar_id format_u16_ie +#define decode_pfcp_ie_mar_id decode_u16_ie +#define encode_pfcp_ie_mar_id encode_u16_ie static char *steering_functionality[] = { - [STEERING_FUNCTIONALITY_ATSSS_LL] = "ATSSS-LL", - [STEERING_FUNCTIONALITY_MPTCP] = "MPTCP", + [PFCP_STEERING_FUNCTIONALITY_ATSSS_LL] = "ATSSS-LL", + [PFCP_STEERING_FUNCTIONALITY_MPTCP] = "MPTCP", }; static u8 * -format_steering_functionality (u8 *s, va_list *args) +format_pfcp_ie_steering_functionality (u8 *s, va_list *args) { - pfcp_steering_functionality_t *v = - va_arg (*args, pfcp_steering_functionality_t *); + pfcp_ie_steering_functionality_t *v = + va_arg (*args, pfcp_ie_steering_functionality_t *); - return format (s, "%U", format_enum, (u64) *v, steering_functionality, + return format (s, "%U", format_pfcp_enum, (u64) *v, steering_functionality, ARRAY_LEN (steering_functionality)); } -#define decode_steering_functionality decode_u8_ie -#define encode_steering_functionality encode_u8_ie +#define decode_pfcp_ie_steering_functionality decode_u8_ie +#define encode_pfcp_ie_steering_functionality encode_u8_ie static char *steering_mode[] = { - [STEERING_MODE_ACTIVE_STANDBY] = "Active-Standby", - [STEERING_MODE_SMALLEST_DELAY] = "Smallest Delay", - [STEERING_MODE_LOAD_BALANCING] = "Load Balancing", - [STEERING_MODE_PRIORITY_BASED] = "Priority-based", + [PFCP_STEERING_MODE_ACTIVE_STANDBY] = "Active-Standby", + [PFCP_STEERING_MODE_SMALLEST_DELAY] = "Smallest Delay", + [PFCP_STEERING_MODE_LOAD_BALANCING] = "Load Balancing", + [PFCP_STEERING_MODE_PFCP_PRIORITY_BASED] = "Priority-based", }; static u8 * -format_steering_mode (u8 *s, va_list *args) +format_pfcp_ie_steering_mode (u8 *s, va_list *args) { - pfcp_steering_mode_t *v = va_arg (*args, pfcp_steering_mode_t *); + pfcp_ie_steering_mode_t *v = va_arg (*args, pfcp_ie_steering_mode_t *); - return format (s, "%U", format_enum, (u64) *v, steering_mode, + return format (s, "%U", format_pfcp_enum, (u64) *v, steering_mode, ARRAY_LEN (steering_mode)); } -#define decode_steering_mode decode_u8_ie -#define encode_steering_mode encode_u8_ie +#define decode_pfcp_ie_steering_mode decode_u8_ie +#define encode_pfcp_ie_steering_mode encode_u8_ie -#define format_weight format_u8_ie -#define decode_weight decode_u8_ie -#define encode_weight encode_u8_ie +#define format_pfcp_ie_weight format_u8_ie +#define decode_pfcp_ie_weight decode_u8_ie +#define encode_pfcp_ie_weight encode_u8_ie static char *priority[] = { - [PRIORITY_ACTIVE] = "Active", - [PRIORITY_STANDBY] = "Standby", - [PRIORITY_HIGH] = "High", - [PRIORITY_LOW] = "Low", + [PFCP_PRIORITY_ACTIVE] = "Active", + [PFCP_PRIORITY_STANDBY] = "Standby", + [PFCP_PRIORITY_HIGH] = "High", + [PFCP_PRIORITY_LOW] = "Low", }; static u8 * -format_priority (u8 *s, va_list *args) +format_pfcp_ie_priority (u8 *s, va_list *args) { - pfcp_priority_t *v = va_arg (*args, pfcp_priority_t *); + pfcp_ie_priority_t *v = va_arg (*args, pfcp_ie_priority_t *); - return format (s, "%U", format_enum, (u64) *v, priority, + return format (s, "%U", format_pfcp_enum, (u64) *v, priority, ARRAY_LEN (priority)); } -#define decode_priority decode_u8_ie -#define encode_priority encode_u8_ie +#define decode_pfcp_ie_priority decode_u8_ie +#define encode_pfcp_ie_priority encode_u8_ie -#define format_ue_ip_address_pool_identity format_simple_vec_ie +#define format_pfcp_ie_ue_ip_address_pool_identity format_simple_vec_ie static int -decode_ue_ip_address_pool_identity (u8 *data, u16 length, void *p) +decode_pfcp_ie_ue_ip_address_pool_identity (u8 *data, u16 length, void *p) { - pfcp_ue_ip_address_pool_identity_t *v = p; + pfcp_ie_ue_ip_address_pool_identity_t *v = p; u16 id_len = 0; if (length < 2) @@ -4664,10 +4692,10 @@ decode_ue_ip_address_pool_identity (u8 *data, u16 length, void *p) } static int -encode_ue_ip_address_pool_identity (void *p, u8 **vec) +encode_pfcp_ie_ue_ip_address_pool_identity (void *p, u8 **vec) { - pfcp_ue_ip_address_pool_identity_t *v = - (pfcp_ue_ip_address_pool_identity_t *) p; + pfcp_ie_ue_ip_address_pool_identity_t *v = + (pfcp_ie_ue_ip_address_pool_identity_t *) p; put_u16 (*vec, vec_len (*v)); vec_append (*vec, *v); @@ -4676,23 +4704,24 @@ encode_ue_ip_address_pool_identity (void *p, u8 **vec) } static u8 * -format_alternative_smf_ip_address (u8 *s, va_list *args) +format_pfcp_ie_alternative_smf_ip_address (u8 *s, va_list *args) { - pfcp_alternative_smf_ip_address_t *n = - va_arg (*args, pfcp_alternative_smf_ip_address_t *); + pfcp_ie_alternative_smf_ip_address_t *n = + va_arg (*args, pfcp_ie_alternative_smf_ip_address_t *); - switch (n->flags & - (ALTERNATIVE_SMF_IP_ADDRESS_V4 | ALTERNATIVE_SMF_IP_ADDRESS_V6)) + switch (n->flags & (PFCP_ALTERNATIVE_SMF_IP_ADDRESS_V4 | + PFCP_ALTERNATIVE_SMF_IP_ADDRESS_V6)) { - case ALTERNATIVE_SMF_IP_ADDRESS_V4: + case PFCP_ALTERNATIVE_SMF_IP_ADDRESS_V4: s = format (s, "%U", format_ip4_address, &n->ip4); break; - case ALTERNATIVE_SMF_IP_ADDRESS_V6: + case PFCP_ALTERNATIVE_SMF_IP_ADDRESS_V6: s = format (s, "%U", format_ip6_address, &n->ip6); break; - case (ALTERNATIVE_SMF_IP_ADDRESS_V4 | ALTERNATIVE_SMF_IP_ADDRESS_V6): + case (PFCP_ALTERNATIVE_SMF_IP_ADDRESS_V4 | + PFCP_ALTERNATIVE_SMF_IP_ADDRESS_V6): s = format (s, "%U,%U", format_ip4_address, &n->ip4, format_ip6_address, &n->ip6); break; @@ -4702,9 +4731,9 @@ format_alternative_smf_ip_address (u8 *s, va_list *args) } static int -decode_alternative_smf_ip_address (u8 *data, u16 length, void *p) +decode_pfcp_ie_alternative_smf_ip_address (u8 *data, u16 length, void *p) { - pfcp_alternative_smf_ip_address_t *v = p; + pfcp_ie_alternative_smf_ip_address_t *v = p; if (length < 9) return PFCP_CAUSE_INVALID_LENGTH; @@ -4718,7 +4747,7 @@ decode_alternative_smf_ip_address (u8 *data, u16 length, void *p) return -1; } - if (v->flags & ALTERNATIVE_SMF_IP_ADDRESS_V4) + if (v->flags & PFCP_ALTERNATIVE_SMF_IP_ADDRESS_V4) { if (length < 4) return PFCP_CAUSE_INVALID_LENGTH; @@ -4727,7 +4756,7 @@ decode_alternative_smf_ip_address (u8 *data, u16 length, void *p) length -= 4; } - if (v->flags & ALTERNATIVE_SMF_IP_ADDRESS_V6) + if (v->flags & PFCP_ALTERNATIVE_SMF_IP_ADDRESS_V6) { if (length < 16) return PFCP_CAUSE_INVALID_LENGTH; @@ -4739,33 +4768,33 @@ decode_alternative_smf_ip_address (u8 *data, u16 length, void *p) } static int -encode_alternative_smf_ip_address (void *p, u8 **vec) +encode_pfcp_ie_alternative_smf_ip_address (void *p, u8 **vec) { - pfcp_alternative_smf_ip_address_t *v = p; + pfcp_ie_alternative_smf_ip_address_t *v = p; put_u8 (*vec, v->flags); - if (v->flags & ALTERNATIVE_SMF_IP_ADDRESS_V4) + if (v->flags & PFCP_ALTERNATIVE_SMF_IP_ADDRESS_V4) put_ip4 (*vec, v->ip4); - if (v->flags & ALTERNATIVE_SMF_IP_ADDRESS_V6) + if (v->flags & PFCP_ALTERNATIVE_SMF_IP_ADDRESS_V6) put_ip6 (*vec, v->ip6); return 0; } u8 * -format_smf_set_id (u8 *s, va_list *args) +format_pfcp_ie_smf_set_id (u8 *s, va_list *args) { - pfcp_smf_set_id_t *n = va_arg (*args, pfcp_smf_set_id_t *); + pfcp_ie_smf_set_id_t *n = va_arg (*args, pfcp_ie_smf_set_id_t *); - return format (s, "%U", format_dns_labels, n->fqdn); + return format (s, "%U", format_pfcp_dns_labels, n->fqdn); } static int -decode_smf_set_id (u8 *data, u16 length, void *p) +decode_pfcp_ie_smf_set_id (u8 *data, u16 length, void *p) { - pfcp_smf_set_id_t *v = p; + pfcp_ie_smf_set_id_t *v = p; get_u8 (data); // skip spare length--; @@ -4776,9 +4805,9 @@ decode_smf_set_id (u8 *data, u16 length, void *p) } static int -encode_smf_set_id (void *p, u8 **vec) +encode_pfcp_ie_smf_set_id (void *p, u8 **vec) { - pfcp_smf_set_id_t *v = p; + pfcp_ie_smf_set_id_t *v = p; put_u8 (*vec, 0); // spare vec_append (*vec, v->fqdn); @@ -4787,71 +4816,71 @@ encode_smf_set_id (void *p, u8 **vec) } static void -free_smf_set_id (void *p) +free_pfcp_ie_smf_set_id (void *p) { - pfcp_smf_set_id_t *v = p; + pfcp_ie_smf_set_id_t *v = p; vec_free (v->fqdn); } -#define format_quota_validity_time format_u32_ie -#define decode_quota_validity_time decode_u32_ie -#define encode_quota_validity_time encode_u32_ie +#define format_pfcp_ie_quota_validity_time format_u32_ie +#define decode_pfcp_ie_quota_validity_time decode_u32_ie +#define encode_pfcp_ie_quota_validity_time encode_u32_ie -#define format_tp_packet_measurement format_volume_ie -#define decode_tp_packet_measurement decode_volume_ie -#define encode_tp_packet_measurement encode_volume_ie +#define format_pfcp_ie_tp_packet_measurement format_pfcp_ie_volume +#define decode_pfcp_ie_tp_packet_measurement decode_pfcp_ie_volume +#define encode_pfcp_ie_tp_packet_measurement encode_pfcp_ie_volume -#define format_tp_build_id format_simple_vec_ie -#define decode_tp_build_id decode_simple_vec_ie -#define encode_tp_build_id encode_simple_vec_ie -#define free_tp_build_id free_simple_vec_ie +#define format_pfcp_ie_tp_build_id format_simple_vec_ie +#define decode_pfcp_ie_tp_build_id decode_simple_vec_ie +#define encode_pfcp_ie_tp_build_id encode_simple_vec_ie +#define free_pfcp_ie_tp_build_id free_simple_vec_ie -#define format_tp_now format_sntp_time_stamp -#define decode_tp_now decode_sntp_time_stamp_ie -#define encode_tp_now encode_sntp_time_stamp_ie +#define format_pfcp_ie_tp_now format_sntp_time_stamp +#define decode_pfcp_ie_tp_now decode_sntp_time_stamp +#define encode_pfcp_ie_tp_now encode_sntp_time_stamp -#define format_tp_start_time format_sntp_time_stamp -#define decode_tp_start_time decode_sntp_time_stamp_ie -#define encode_tp_start_time encode_sntp_time_stamp_ie +#define format_pfcp_ie_tp_start_time format_sntp_time_stamp +#define decode_pfcp_ie_tp_start_time decode_sntp_time_stamp +#define encode_pfcp_ie_tp_start_time encode_sntp_time_stamp -#define format_tp_end_time format_sntp_time_stamp -#define decode_tp_end_time decode_sntp_time_stamp_ie -#define encode_tp_end_time encode_sntp_time_stamp_ie +#define format_pfcp_ie_tp_end_time format_sntp_time_stamp +#define decode_pfcp_ie_tp_end_time decode_sntp_time_stamp +#define encode_pfcp_ie_tp_end_time encode_sntp_time_stamp -#define format_tp_error_message format_simple_vec_ie -#define decode_tp_error_message decode_simple_vec_ie -#define encode_tp_error_message encode_simple_vec_ie -#define free_tp_error_message free_simple_vec_ie +#define format_pfcp_ie_tp_error_message format_simple_vec_ie +#define decode_pfcp_ie_tp_error_message decode_simple_vec_ie +#define encode_pfcp_ie_tp_error_message encode_simple_vec_ie +#define free_pfcp_ie_tp_error_message free_simple_vec_ie -#define format_tp_file_name format_simple_vec_ie -#define decode_tp_file_name decode_simple_vec_ie -#define encode_tp_file_name encode_simple_vec_ie -#define free_tp_file_name free_simple_vec_ie +#define format_pfcp_ie_tp_file_name format_simple_vec_ie +#define decode_pfcp_ie_tp_file_name decode_simple_vec_ie +#define encode_pfcp_ie_tp_file_name encode_simple_vec_ie +#define free_pfcp_ie_tp_file_name free_simple_vec_ie -#define format_tp_line_number format_u32_ie -#define decode_tp_line_number decode_u32_ie -#define encode_tp_line_number encode_u32_ie +#define format_pfcp_ie_tp_line_number format_u32_ie +#define decode_pfcp_ie_tp_line_number decode_u32_ie +#define encode_pfcp_ie_tp_line_number encode_u32_ie -#define format_tp_ipfix_policy format_simple_vec_ie -#define decode_tp_ipfix_policy decode_simple_vec_ie -#define encode_tp_ipfix_policy encode_simple_vec_ie -#define free_tp_ipfix_policy free_simple_vec_ie +#define format_pfcp_ie_tp_ipfix_policy format_simple_vec_ie +#define decode_pfcp_ie_tp_ipfix_policy decode_simple_vec_ie +#define encode_pfcp_ie_tp_ipfix_policy encode_simple_vec_ie +#define free_pfcp_ie_tp_ipfix_policy free_simple_vec_ie /* BBF Encoder-decoder */ // BBF NAT port block -#define format_bbf_nat_port_block format_simple_vec_ie -#define decode_bbf_nat_port_block decode_simple_vec_ie -#define encode_bbf_nat_port_block encode_simple_vec_ie -#define free_bbf_nat_port_block free_simple_vec_ie +#define format_pfcp_ie_bbf_nat_port_block format_simple_vec_ie +#define decode_pfcp_ie_bbf_nat_port_block decode_simple_vec_ie +#define encode_pfcp_ie_bbf_nat_port_block encode_simple_vec_ie +#define free_pfcp_ie_bbf_nat_port_block free_simple_vec_ie // BBF NAT outside address static u8 * -format_bbf_nat_outside_address (u8 *s, va_list *args) +format_pfcp_ie_bbf_nat_outside_address (u8 *s, va_list *args) { - pfcp_bbf_nat_outside_address_t *n = - va_arg (*args, pfcp_bbf_nat_outside_address_t *); + pfcp_ie_bbf_nat_outside_address_t *n = + va_arg (*args, pfcp_ie_bbf_nat_outside_address_t *); s = format (s, "%U", format_ip4_address, n); @@ -4859,9 +4888,9 @@ format_bbf_nat_outside_address (u8 *s, va_list *args) } static int -decode_bbf_nat_outside_address (u8 *data, u16 length, void *p) +decode_pfcp_ie_bbf_nat_outside_address (u8 *data, u16 length, void *p) { - pfcp_bbf_nat_outside_address_t *v = p; + pfcp_ie_bbf_nat_outside_address_t *v = p; if (length < 4) return PFCP_CAUSE_INVALID_LENGTH; @@ -4872,9 +4901,9 @@ decode_bbf_nat_outside_address (u8 *data, u16 length, void *p) } static int -encode_bbf_nat_outside_address (void *p, u8 **vec) +encode_pfcp_ie_bbf_nat_outside_address (void *p, u8 **vec) { - pfcp_bbf_nat_outside_address_t *v = p; + pfcp_ie_bbf_nat_outside_address_t *v = p; put_ip4 (*vec, *v); @@ -4884,19 +4913,19 @@ encode_bbf_nat_outside_address (void *p, u8 **vec) // BBF NAT external port range static u8 * -format_bbf_nat_external_port_range (u8 *s, va_list *args) +format_pfcp_ie_bbf_nat_external_port_range (u8 *s, va_list *args) { - pfcp_bbf_nat_external_port_range_t *n = - va_arg (*args, pfcp_bbf_nat_external_port_range_t *); + pfcp_ie_bbf_nat_external_port_range_t *n = + va_arg (*args, pfcp_ie_bbf_nat_external_port_range_t *); s = format (s, "Start:%u End:%u", n->start_port, n->end_port); return s; } static int -decode_bbf_nat_external_port_range (u8 *data, u16 length, void *p) +decode_pfcp_ie_bbf_nat_external_port_range (u8 *data, u16 length, void *p) { - pfcp_bbf_nat_external_port_range_t *v = p; + pfcp_ie_bbf_nat_external_port_range_t *v = p; if (length < 4) return PFCP_CAUSE_INVALID_LENGTH; @@ -4909,9 +4938,9 @@ decode_bbf_nat_external_port_range (u8 *data, u16 length, void *p) } static int -encode_bbf_nat_external_port_range (void *p, u8 **vec) +encode_pfcp_ie_bbf_nat_external_port_range (void *p, u8 **vec) { - pfcp_bbf_nat_external_port_range_t *v = p; + pfcp_ie_bbf_nat_external_port_range_t *v = p; put_u16 (*vec, v->start_port); put_u16 (*vec, v->end_port); @@ -4920,17 +4949,17 @@ encode_bbf_nat_external_port_range (void *p, u8 **vec) // BBF UE Function Features static u8 * -format_bbf_up_function_features (u8 *s, va_list *args) +format_pfcp_ie_bbf_up_function_features (u8 *s, va_list *args) { - pfcp_bbf_up_function_features_t *n = - va_arg (*args, pfcp_bbf_up_function_features_t *); + pfcp_ie_bbf_up_function_features_t *n = + va_arg (*args, pfcp_ie_bbf_up_function_features_t *); - s = format (s, "NAT:%u", !!(*n & BBF_UP_NAT)); + s = format (s, "NAT:%u", !!(*n & PFCP_BBF_UP_NAT)); return s; } static int -decode_bbf_up_function_features (u8 *data, u16 length, void *p) +decode_pfcp_ie_bbf_up_function_features (u8 *data, u16 length, void *p) { u32 *v = p; @@ -4946,7 +4975,7 @@ decode_bbf_up_function_features (u8 *data, u16 length, void *p) } static int -encode_bbf_up_function_features (void *p, u8 **vec) +encode_pfcp_ie_bbf_up_function_features (void *p, u8 **vec) { u32 *v = p; @@ -4956,9 +4985,9 @@ encode_bbf_up_function_features (void *p, u8 **vec) } // BBF BBF Apply Action -#define format_bbf_apply_action format_u8_ie -#define decode_bbf_apply_action decode_u8_ie -#define encode_bbf_apply_action encode_u8_ie +#define format_pfcp_ie_bbf_apply_action format_u8_ie +#define decode_pfcp_ie_bbf_apply_action decode_u8_ie +#define encode_pfcp_ie_bbf_apply_action encode_u8_ie /* Grouped Information Elements */ @@ -4969,49 +4998,49 @@ static struct pfcp_group_ie_def pfcp_create_pdr_group[] = { [CREATE_PDR_PDR_ID] = { .type = PFCP_IE_PDR_ID, - .offset = offsetof(pfcp_create_pdr_t, pdr_id) + .offset = offsetof(pfcp_ie_create_pdr_t, pdr_id) }, [CREATE_PDR_PRECEDENCE] = { .type = PFCP_IE_PRECEDENCE, - .offset = offsetof(pfcp_create_pdr_t, precedence) + .offset = offsetof(pfcp_ie_create_pdr_t, precedence) }, [CREATE_PDR_PDI] = { .type = PFCP_IE_PDI, - .offset = offsetof(pfcp_create_pdr_t, pdi) + .offset = offsetof(pfcp_ie_create_pdr_t, pdi) }, [CREATE_PDR_OUTER_HEADER_REMOVAL] = { .type = PFCP_IE_OUTER_HEADER_REMOVAL, - .offset = offsetof(pfcp_create_pdr_t, outer_header_removal) + .offset = offsetof(pfcp_ie_create_pdr_t, outer_header_removal) }, [CREATE_PDR_FAR_ID] = { .type = PFCP_IE_FAR_ID, - .offset = offsetof(pfcp_create_pdr_t, far_id) + .offset = offsetof(pfcp_ie_create_pdr_t, far_id) }, [CREATE_PDR_URR_ID] = { .type = PFCP_IE_URR_ID, .is_array = true, - .offset = offsetof(pfcp_create_pdr_t, urr_id) + .offset = offsetof(pfcp_ie_create_pdr_t, urr_id) }, [CREATE_PDR_QER_ID] = { .type = PFCP_IE_QER_ID, .is_array = true, - .offset = offsetof(pfcp_create_pdr_t, qer_id) + .offset = offsetof(pfcp_ie_create_pdr_t, qer_id) }, [CREATE_PDR_ACTIVATE_PREDEFINED_RULES] = { .type = PFCP_IE_ACTIVATE_PREDEFINED_RULES, - .offset = offsetof(pfcp_create_pdr_t, activate_predefined_rules) + .offset = offsetof(pfcp_ie_create_pdr_t, activate_predefined_rules) }, [CREATE_PDR_ACTIVATION_TIME] = { .type = PFCP_IE_ACTIVATION_TIME, - .offset = offsetof(pfcp_create_pdr_t, activation_time) + .offset = offsetof(pfcp_ie_create_pdr_t, activation_time) }, [CREATE_PDR_DEACTIVATION_TIME] = { .type = PFCP_IE_DEACTIVATION_TIME, - .offset = offsetof(pfcp_create_pdr_t, deactivation_time) + .offset = offsetof(pfcp_ie_create_pdr_t, deactivation_time) }, [CREATE_PDR_MAR_ID] = { .type = PFCP_IE_MAR_ID, - .offset = offsetof(pfcp_create_pdr_t, mar_id) + .offset = offsetof(pfcp_ie_create_pdr_t, mar_id) }, }; @@ -5019,58 +5048,58 @@ static struct pfcp_group_ie_def pfcp_pdi_group[] = { [PDI_SOURCE_INTERFACE] = { .type = PFCP_IE_SOURCE_INTERFACE, - .offset = offsetof(pfcp_pdi_t, source_interface) + .offset = offsetof(pfcp_ie_pdi_t, source_interface) }, [PDI_F_TEID] = { .type = PFCP_IE_F_TEID, - .offset = offsetof(pfcp_pdi_t, f_teid) + .offset = offsetof(pfcp_ie_pdi_t, f_teid) }, [PDI_NETWORK_INSTANCE] = { .type = PFCP_IE_NETWORK_INSTANCE, - .offset = offsetof(pfcp_pdi_t, network_instance) + .offset = offsetof(pfcp_ie_pdi_t, network_instance) }, [PDI_UE_IP_ADDRESS] = { .type = PFCP_IE_UE_IP_ADDRESS, - .offset = offsetof(pfcp_pdi_t, ue_ip_address) + .offset = offsetof(pfcp_ie_pdi_t, ue_ip_address) }, [PDI_SDF_FILTER] = { .type = PFCP_IE_SDF_FILTER, .is_array = true, - .offset = offsetof(pfcp_pdi_t, sdf_filter) + .offset = offsetof(pfcp_ie_pdi_t, sdf_filter) }, [PDI_APPLICATION_ID] = { .type = PFCP_IE_APPLICATION_ID, - .offset = offsetof(pfcp_pdi_t, application_id) + .offset = offsetof(pfcp_ie_pdi_t, application_id) }, [PDI_ETHERNET_PDU_SESSION_INFORMATION] = { .type = PFCP_IE_ETHERNET_PDU_SESSION_INFORMATION, - .offset = offsetof(pfcp_pdi_t, ethernet_pdu_session_information) + .offset = offsetof(pfcp_ie_pdi_t, ethernet_pdu_session_information) }, [PDI_ETHERNET_PACKET_FILTER] = { .type = PFCP_IE_ETHERNET_PACKET_FILTER, - .offset = offsetof(pfcp_pdi_t, ethernet_packet_filter) + .offset = offsetof(pfcp_ie_pdi_t, ethernet_packet_filter) }, [PDI_QFI] = { .type = PFCP_IE_QFI, - .offset = offsetof(pfcp_pdi_t, qfi) + .offset = offsetof(pfcp_ie_pdi_t, qfi) }, [PDI_FRAMED_ROUTE] = { .type = PFCP_IE_FRAMED_ROUTE, .is_array = true, - .offset = offsetof(pfcp_pdi_t, framed_route) + .offset = offsetof(pfcp_ie_pdi_t, framed_route) }, [PDI_FRAMED_ROUTING] = { .type = PFCP_IE_FRAMED_ROUTING, - .offset = offsetof(pfcp_pdi_t, framed_routing) + .offset = offsetof(pfcp_ie_pdi_t, framed_routing) }, [PDI_FRAMED_IPV6_ROUTE] = { .type = PFCP_IE_FRAMED_IPV6_ROUTE, .is_array = true, - .offset = offsetof(pfcp_pdi_t, framed_ipv6_route) + .offset = offsetof(pfcp_ie_pdi_t, framed_ipv6_route) }, [PDI_SOURCE_INTERFACE_TYPE] = { .type = PFCP_IE_TGPP_INTERFACE_TYPE, - .offset = offsetof(pfcp_pdi_t, source_interface_type) + .offset = offsetof(pfcp_ie_pdi_t, source_interface_type) }, }; @@ -5078,28 +5107,28 @@ static struct pfcp_group_ie_def pfcp_create_far_group[] = { [CREATE_FAR_FAR_ID] = { .type = PFCP_IE_FAR_ID, - .offset = offsetof(pfcp_create_far_t, far_id) + .offset = offsetof(pfcp_ie_create_far_t, far_id) }, [CREATE_FAR_APPLY_ACTION] = { .type = PFCP_IE_APPLY_ACTION, - .offset = offsetof(pfcp_create_far_t, apply_action) + .offset = offsetof(pfcp_ie_create_far_t, apply_action) }, [CREATE_FAR_FORWARDING_PARAMETERS] = { .type = PFCP_IE_FORWARDING_PARAMETERS, - .offset = offsetof(pfcp_create_far_t, forwarding_parameters) + .offset = offsetof(pfcp_ie_create_far_t, forwarding_parameters) }, [CREATE_FAR_DUPLICATING_PARAMETERS] = { .type = PFCP_IE_DUPLICATING_PARAMETERS, - .offset = offsetof(pfcp_create_far_t, duplicating_parameters) + .offset = offsetof(pfcp_ie_create_far_t, duplicating_parameters) }, [CREATE_FAR_BAR_ID] = { .type = PFCP_IE_BAR_ID, - .offset = offsetof(pfcp_create_far_t, bar_id) + .offset = offsetof(pfcp_ie_create_far_t, bar_id) }, [CREATE_FAR_TP_IPFIX_POLICY] = { .type = PFCP_IE_TP_IPFIX_POLICY, - .vendor = VENDOR_TRAVELPING, - .offset = offsetof(pfcp_create_far_t, ipfix_policy) + .vendor = PFCP_VENDOR_TRAVELPING, + .offset = offsetof(pfcp_ie_create_far_t, ipfix_policy) }, }; @@ -5107,53 +5136,53 @@ static struct pfcp_group_ie_def pfcp_forwarding_parameters_group[] = { [FORWARDING_PARAMETERS_DESTINATION_INTERFACE] = { .type = PFCP_IE_DESTINATION_INTERFACE, - .offset = offsetof(pfcp_forwarding_parameters_t, destination_interface) + .offset = offsetof(pfcp_ie_forwarding_parameters_t, destination_interface) }, [FORWARDING_PARAMETERS_NETWORK_INSTANCE] = { .type = PFCP_IE_NETWORK_INSTANCE, - .offset = offsetof(pfcp_forwarding_parameters_t, network_instance) + .offset = offsetof(pfcp_ie_forwarding_parameters_t, network_instance) }, [FORWARDING_PARAMETERS_REDIRECT_INFORMATION] = { .type = PFCP_IE_REDIRECT_INFORMATION, - .offset = offsetof(pfcp_forwarding_parameters_t, redirect_information) + .offset = offsetof(pfcp_ie_forwarding_parameters_t, redirect_information) }, [FORWARDING_PARAMETERS_OUTER_HEADER_CREATION] = { .type = PFCP_IE_OUTER_HEADER_CREATION, - .offset = offsetof(pfcp_forwarding_parameters_t, outer_header_creation) + .offset = offsetof(pfcp_ie_forwarding_parameters_t, outer_header_creation) }, [FORWARDING_PARAMETERS_TRANSPORT_LEVEL_MARKING] = { .type = PFCP_IE_TRANSPORT_LEVEL_MARKING, - .offset = offsetof(pfcp_forwarding_parameters_t, transport_level_marking) + .offset = offsetof(pfcp_ie_forwarding_parameters_t, transport_level_marking) }, [FORWARDING_PARAMETERS_FORWARDING_POLICY] = { .type = PFCP_IE_FORWARDING_POLICY, - .offset = offsetof(pfcp_forwarding_parameters_t, forwarding_policy) + .offset = offsetof(pfcp_ie_forwarding_parameters_t, forwarding_policy) }, [FORWARDING_PARAMETERS_HEADER_ENRICHMENT] = { .type = PFCP_IE_HEADER_ENRICHMENT, - .offset = offsetof(pfcp_forwarding_parameters_t, header_enrichment) + .offset = offsetof(pfcp_ie_forwarding_parameters_t, header_enrichment) }, [FORWARDING_PARAMETERS_LINKED_TRAFFIC_ENDPOINT_ID] = { .type = PFCP_IE_TRAFFIC_ENDPOINT_ID, - .offset = offsetof(pfcp_forwarding_parameters_t, linked_traffic_endpoint_id) + .offset = offsetof(pfcp_ie_forwarding_parameters_t, linked_traffic_endpoint_id) }, [FORWARDING_PARAMETERS_PROXYING] = { .type = PFCP_IE_PROXYING, - .offset = offsetof(pfcp_forwarding_parameters_t, proxying) + .offset = offsetof(pfcp_ie_forwarding_parameters_t, proxying) }, [FORWARDING_PARAMETERS_DESTINATION_INTERFACE_TYPE] = { .type = PFCP_IE_TGPP_INTERFACE_TYPE, - .offset = offsetof(pfcp_forwarding_parameters_t, destination_interface_type) + .offset = offsetof(pfcp_ie_forwarding_parameters_t, destination_interface_type) }, [FORWARDING_PARAMETERS_BBF_APPLY_ACTION] = { .type = PFCP_IE_BBF_APPLY_ACTION, - .vendor = VENDOR_BBF, - .offset = offsetof(pfcp_forwarding_parameters_t, bbf_apply_action) + .vendor = PFCP_VENDOR_BBF, + .offset = offsetof(pfcp_ie_forwarding_parameters_t, bbf_apply_action) }, [FORWARDING_PARAMETERS_BBF_NAT_PORT_BLOCK] = { .type = PFCP_IE_BBF_NAT_PORT_BLOCK, - .vendor = VENDOR_BBF, - .offset = offsetof(pfcp_forwarding_parameters_t, nat_port_block) + .vendor = PFCP_VENDOR_BBF, + .offset = offsetof(pfcp_ie_forwarding_parameters_t, nat_port_block) }, }; @@ -5161,19 +5190,19 @@ static struct pfcp_group_ie_def pfcp_duplicating_parameters_group[] = { [DUPLICATING_PARAMETERS_DESTINATION_INTERFACE] = { .type = PFCP_IE_DESTINATION_INTERFACE, - .offset = offsetof(pfcp_duplicating_parameters_t, destination_interface) + .offset = offsetof(pfcp_ie_duplicating_parameters_t, destination_interface) }, [DUPLICATING_PARAMETERS_OUTER_HEADER_CREATION] = { .type = PFCP_IE_OUTER_HEADER_CREATION, - .offset = offsetof(pfcp_duplicating_parameters_t, outer_header_creation) + .offset = offsetof(pfcp_ie_duplicating_parameters_t, outer_header_creation) }, [DUPLICATING_PARAMETERS_TRANSPORT_LEVEL_MARKING] = { .type = PFCP_IE_TRANSPORT_LEVEL_MARKING, - .offset = offsetof(pfcp_duplicating_parameters_t, transport_level_marking) + .offset = offsetof(pfcp_ie_duplicating_parameters_t, transport_level_marking) }, [DUPLICATING_PARAMETERS_FORWARDING_POLICY] = { .type = PFCP_IE_FORWARDING_POLICY, - .offset = offsetof(pfcp_duplicating_parameters_t, forwarding_policy) + .offset = offsetof(pfcp_ie_duplicating_parameters_t, forwarding_policy) }, }; @@ -5181,93 +5210,93 @@ static struct pfcp_group_ie_def pfcp_create_urr_group[] = { [CREATE_URR_URR_ID] = { .type = PFCP_IE_URR_ID, - .offset = offsetof(pfcp_create_urr_t, urr_id) + .offset = offsetof(pfcp_ie_create_urr_t, urr_id) }, [CREATE_URR_MEASUREMENT_METHOD] = { .type = PFCP_IE_MEASUREMENT_METHOD, - .offset = offsetof(pfcp_create_urr_t, measurement_method) + .offset = offsetof(pfcp_ie_create_urr_t, measurement_method) }, [CREATE_URR_REPORTING_TRIGGERS] = { .type = PFCP_IE_REPORTING_TRIGGERS, - .offset = offsetof(pfcp_create_urr_t, reporting_triggers) + .offset = offsetof(pfcp_ie_create_urr_t, reporting_triggers) }, [CREATE_URR_MEASUREMENT_PERIOD] = { .type = PFCP_IE_MEASUREMENT_PERIOD, - .offset = offsetof(pfcp_create_urr_t, measurement_period) + .offset = offsetof(pfcp_ie_create_urr_t, measurement_period) }, [CREATE_URR_VOLUME_THRESHOLD] = { .type = PFCP_IE_VOLUME_THRESHOLD, - .offset = offsetof(pfcp_create_urr_t, volume_threshold) + .offset = offsetof(pfcp_ie_create_urr_t, volume_threshold) }, [CREATE_URR_VOLUME_QUOTA] = { .type = PFCP_IE_VOLUME_QUOTA, - .offset = offsetof(pfcp_create_urr_t, volume_quota) + .offset = offsetof(pfcp_ie_create_urr_t, volume_quota) }, [CREATE_URR_TIME_THRESHOLD] = { .type = PFCP_IE_TIME_THRESHOLD, - .offset = offsetof(pfcp_create_urr_t, time_threshold) + .offset = offsetof(pfcp_ie_create_urr_t, time_threshold) }, [CREATE_URR_TIME_QUOTA] = { .type = PFCP_IE_TIME_QUOTA, - .offset = offsetof(pfcp_create_urr_t, time_quota) + .offset = offsetof(pfcp_ie_create_urr_t, time_quota) }, [CREATE_URR_QUOTA_HOLDING_TIME] = { .type = PFCP_IE_QUOTA_HOLDING_TIME, - .offset = offsetof(pfcp_create_urr_t, quota_holding_time) + .offset = offsetof(pfcp_ie_create_urr_t, quota_holding_time) }, [CREATE_URR_DROPPED_DL_TRAFFIC_THRESHOLD] = { .type = PFCP_IE_DROPPED_DL_TRAFFIC_THRESHOLD, - .offset = offsetof(pfcp_create_urr_t, dropped_dl_traffic_threshold) + .offset = offsetof(pfcp_ie_create_urr_t, dropped_dl_traffic_threshold) }, [CREATE_URR_QUOTA_VALIDITY_TIME] = { .type = PFCP_IE_QUOTA_VALIDITY_TIME, - .offset = offsetof(pfcp_create_urr_t, quota_validity_time) + .offset = offsetof(pfcp_ie_create_urr_t, quota_validity_time) }, [CREATE_URR_MONITORING_TIME] = { .type = PFCP_IE_MONITORING_TIME, - .offset = offsetof(pfcp_create_urr_t, monitoring_time) + .offset = offsetof(pfcp_ie_create_urr_t, monitoring_time) }, [CREATE_URR_SUBSEQUENT_VOLUME_THRESHOLD] = { .type = PFCP_IE_SUBSEQUENT_VOLUME_THRESHOLD, - .offset = offsetof(pfcp_create_urr_t, subsequent_volume_threshold) + .offset = offsetof(pfcp_ie_create_urr_t, subsequent_volume_threshold) }, [CREATE_URR_SUBSEQUENT_TIME_THRESHOLD] = { .type = PFCP_IE_SUBSEQUENT_TIME_THRESHOLD, - .offset = offsetof(pfcp_create_urr_t, subsequent_time_threshold) + .offset = offsetof(pfcp_ie_create_urr_t, subsequent_time_threshold) }, [CREATE_URR_INACTIVITY_DETECTION_TIME] = { .type = PFCP_IE_INACTIVITY_DETECTION_TIME, - .offset = offsetof(pfcp_create_urr_t, inactivity_detection_time) + .offset = offsetof(pfcp_ie_create_urr_t, inactivity_detection_time) }, [CREATE_URR_LINKED_URR_ID] = { .type = PFCP_IE_LINKED_URR_ID, .is_array = true, - .offset = offsetof(pfcp_create_urr_t, linked_urr_id) + .offset = offsetof(pfcp_ie_create_urr_t, linked_urr_id) }, [CREATE_URR_MEASUREMENT_INFORMATION] = { .type = PFCP_IE_MEASUREMENT_INFORMATION, - .offset = offsetof(pfcp_create_urr_t, measurement_information) + .offset = offsetof(pfcp_ie_create_urr_t, measurement_information) }, [CREATE_URR_TIME_QUOTA_MECHANISM] = { .type = PFCP_IE_TIME_QUOTA_MECHANISM, - .offset = offsetof(pfcp_create_urr_t, time_quota_mechanism) + .offset = offsetof(pfcp_ie_create_urr_t, time_quota_mechanism) }, [CREATE_URR_AGGREGATED_URRS] = { .type = PFCP_IE_AGGREGATED_URRS, - .offset = offsetof(pfcp_create_urr_t, aggregated_urrs) + .offset = offsetof(pfcp_ie_create_urr_t, aggregated_urrs) }, [CREATE_URR_FAR_ID_FOR_QUOTE_ACTION] = { .type = PFCP_IE_FAR_ID, - .offset = offsetof(pfcp_create_urr_t, far_id_for_quota_action) + .offset = offsetof(pfcp_ie_create_urr_t, far_id_for_quota_action) }, [CREATE_URR_ETHERNET_INACTIVITY_TIMER] = { .type = PFCP_IE_ETHERNET_INACTIVITY_TIMER, - .offset = offsetof(pfcp_create_urr_t, ethernet_inactivity_timer) + .offset = offsetof(pfcp_ie_create_urr_t, ethernet_inactivity_timer) }, [CREATE_URR_ADDITIONAL_MONITORING_TIME] = { .type = PFCP_IE_ADDITIONAL_MONITORING_TIME, .is_array = true, - .offset = offsetof(pfcp_create_urr_t, additional_monitoring_time) + .offset = offsetof(pfcp_ie_create_urr_t, additional_monitoring_time) }, }; @@ -5275,47 +5304,47 @@ static struct pfcp_group_ie_def pfcp_create_qer_group[] = { [CREATE_QER_QER_ID] = { .type = PFCP_IE_QER_ID, - .offset = offsetof(pfcp_create_qer_t, qer_id) + .offset = offsetof(pfcp_ie_create_qer_t, qer_id) }, [CREATE_QER_QER_CORRELATION_ID] = { .type = PFCP_IE_QER_CORRELATION_ID, - .offset = offsetof(pfcp_create_qer_t, qer_correlation_id) + .offset = offsetof(pfcp_ie_create_qer_t, qer_correlation_id) }, [CREATE_QER_GATE_STATUS] = { .type = PFCP_IE_GATE_STATUS, - .offset = offsetof(pfcp_create_qer_t, gate_status) + .offset = offsetof(pfcp_ie_create_qer_t, gate_status) }, [CREATE_QER_MBR] = { .type = PFCP_IE_MBR, - .offset = offsetof(pfcp_create_qer_t, mbr) + .offset = offsetof(pfcp_ie_create_qer_t, mbr) }, [CREATE_QER_GBR] = { .type = PFCP_IE_GBR, - .offset = offsetof(pfcp_create_qer_t, gbr) + .offset = offsetof(pfcp_ie_create_qer_t, gbr) }, [CREATE_QER_PACKET_RATE] = { .type = PFCP_IE_PACKET_RATE, - .offset = offsetof(pfcp_create_qer_t, packet_rate) + .offset = offsetof(pfcp_ie_create_qer_t, packet_rate) }, [CREATE_QER_DL_FLOW_LEVEL_MARKING] = { .type = PFCP_IE_DL_FLOW_LEVEL_MARKING, - .offset = offsetof(pfcp_create_qer_t, dl_flow_level_marking) + .offset = offsetof(pfcp_ie_create_qer_t, dl_flow_level_marking) }, [CREATE_QER_QOS_FLOW_IDENTIFIER] = { .type = PFCP_IE_QFI, - .offset = offsetof(pfcp_create_qer_t, qos_flow_identifier) + .offset = offsetof(pfcp_ie_create_qer_t, qos_flow_identifier) }, [CREATE_QER_REFLECTIVE_QOS] = { .type = PFCP_IE_RQI, - .offset = offsetof(pfcp_create_qer_t, reflective_qos) + .offset = offsetof(pfcp_ie_create_qer_t, reflective_qos) }, [CREATE_QER_PAGING_POLICY_INDICATOR] = { .type = PFCP_IE_PAGING_POLICY_INDICATOR, - .offset = offsetof(pfcp_create_qer_t, paging_policy_indicator) + .offset = offsetof(pfcp_ie_create_qer_t, paging_policy_indicator) }, [CREATE_QER_AVERAGING_WINDOW] = { .type = PFCP_IE_AVERAGING_WINDOW, - .offset = offsetof(pfcp_create_qer_t, averaging_window) + .offset = offsetof(pfcp_ie_create_qer_t, averaging_window) }, }; @@ -5323,15 +5352,15 @@ static struct pfcp_group_ie_def pfcp_created_pdr_group[] = { [CREATED_PDR_PDR_ID] = { .type = PFCP_IE_PDR_ID, - .offset = offsetof(pfcp_created_pdr_t, pdr_id) + .offset = offsetof(pfcp_ie_created_pdr_t, pdr_id) }, [CREATED_PDR_F_TEID] = { .type = PFCP_IE_F_TEID, - .offset = offsetof(pfcp_created_pdr_t, f_teid) + .offset = offsetof(pfcp_ie_created_pdr_t, f_teid) }, [CREATED_PDR_UE_IP_ADDRESS] = { .type = PFCP_IE_UE_IP_ADDRESS, - .offset = offsetof(pfcp_created_pdr_t, ue_ip_address) + .offset = offsetof(pfcp_ie_created_pdr_t, ue_ip_address) }, }; @@ -5339,49 +5368,49 @@ static struct pfcp_group_ie_def pfcp_update_pdr_group[] = { [UPDATE_PDR_PDR_ID] = { .type = PFCP_IE_PDR_ID, - .offset = offsetof(pfcp_update_pdr_t, pdr_id) + .offset = offsetof(pfcp_ie_update_pdr_t, pdr_id) }, [UPDATE_PDR_OUTER_HEADER_REMOVAL] = { .type = PFCP_IE_OUTER_HEADER_REMOVAL, - .offset = offsetof(pfcp_update_pdr_t, outer_header_removal) + .offset = offsetof(pfcp_ie_update_pdr_t, outer_header_removal) }, [UPDATE_PDR_PRECEDENCE] = { .type = PFCP_IE_PRECEDENCE, - .offset = offsetof(pfcp_update_pdr_t, precedence) + .offset = offsetof(pfcp_ie_update_pdr_t, precedence) }, [UPDATE_PDR_PDI] = { .type = PFCP_IE_PDI, - .offset = offsetof(pfcp_update_pdr_t, pdi) + .offset = offsetof(pfcp_ie_update_pdr_t, pdi) }, [UPDATE_PDR_FAR_ID] = { .type = PFCP_IE_FAR_ID, - .offset = offsetof(pfcp_update_pdr_t, far_id) + .offset = offsetof(pfcp_ie_update_pdr_t, far_id) }, [UPDATE_PDR_URR_ID] = { .type = PFCP_IE_URR_ID, .is_array = true, - .offset = offsetof(pfcp_update_pdr_t, urr_id) + .offset = offsetof(pfcp_ie_update_pdr_t, urr_id) }, [UPDATE_PDR_QER_ID] = { .type = PFCP_IE_QER_ID, .is_array = true, - .offset = offsetof(pfcp_update_pdr_t, qer_id) + .offset = offsetof(pfcp_ie_update_pdr_t, qer_id) }, [UPDATE_PDR_ACTIVATE_PREDEFINED_RULES] = { .type = PFCP_IE_ACTIVATE_PREDEFINED_RULES, - .offset = offsetof(pfcp_update_pdr_t, activate_predefined_rules) + .offset = offsetof(pfcp_ie_update_pdr_t, activate_predefined_rules) }, [UPDATE_PDR_DEACTIVATE_PREDEFINED_RULES] = { .type = PFCP_IE_DEACTIVATE_PREDEFINED_RULES, - .offset = offsetof(pfcp_update_pdr_t, deactivate_predefined_rules) + .offset = offsetof(pfcp_ie_update_pdr_t, deactivate_predefined_rules) }, [UPDATE_PDR_ACTIVATION_TIME] = { .type = PFCP_IE_ACTIVATION_TIME, - .offset = offsetof(pfcp_update_pdr_t, activation_time) + .offset = offsetof(pfcp_ie_update_pdr_t, activation_time) }, [UPDATE_PDR_DEACTIVATION_TIME] = { .type = PFCP_IE_DEACTIVATION_TIME, - .offset = offsetof(pfcp_update_pdr_t, deactivation_time) + .offset = offsetof(pfcp_ie_update_pdr_t, deactivation_time) }, }; @@ -5389,28 +5418,28 @@ static struct pfcp_group_ie_def pfcp_update_far_group[] = { [UPDATE_FAR_FAR_ID] = { .type = PFCP_IE_FAR_ID, - .offset = offsetof(pfcp_update_far_t, far_id) + .offset = offsetof(pfcp_ie_update_far_t, far_id) }, [UPDATE_FAR_APPLY_ACTION] = { .type = PFCP_IE_APPLY_ACTION, - .offset = offsetof(pfcp_update_far_t, apply_action) + .offset = offsetof(pfcp_ie_update_far_t, apply_action) }, [UPDATE_FAR_UPDATE_FORWARDING_PARAMETERS] = { .type = PFCP_IE_UPDATE_FORWARDING_PARAMETERS, - .offset = offsetof(pfcp_update_far_t, update_forwarding_parameters) + .offset = offsetof(pfcp_ie_update_far_t, update_forwarding_parameters) }, [UPDATE_FAR_UPDATE_DUPLICATING_PARAMETERS] = { .type = PFCP_IE_UPDATE_DUPLICATING_PARAMETERS, - .offset = offsetof(pfcp_update_far_t, update_duplicating_parameters) + .offset = offsetof(pfcp_ie_update_far_t, update_duplicating_parameters) }, [UPDATE_FAR_BAR_ID] = { .type = PFCP_IE_BAR_ID, - .offset = offsetof(pfcp_update_far_t, bar_id) + .offset = offsetof(pfcp_ie_update_far_t, bar_id) }, [UPDATE_FAR_TP_IPFIX_POLICY] = { .type = PFCP_IE_TP_IPFIX_POLICY, - .vendor = VENDOR_TRAVELPING, - .offset = offsetof(pfcp_update_far_t, ipfix_policy) + .vendor = PFCP_VENDOR_TRAVELPING, + .offset = offsetof(pfcp_ie_update_far_t, ipfix_policy) }, }; @@ -5418,43 +5447,43 @@ static struct pfcp_group_ie_def pfcp_update_forwarding_parameters_group[] = { [UPDATE_FORWARDING_PARAMETERS_DESTINATION_INTERFACE] = { .type = PFCP_IE_DESTINATION_INTERFACE, - .offset = offsetof(pfcp_update_forwarding_parameters_t, destination_interface) + .offset = offsetof(pfcp_ie_update_forwarding_parameters_t, destination_interface) }, [UPDATE_FORWARDING_PARAMETERS_NETWORK_INSTANCE] = { .type = PFCP_IE_NETWORK_INSTANCE, - .offset = offsetof(pfcp_update_forwarding_parameters_t, network_instance) + .offset = offsetof(pfcp_ie_update_forwarding_parameters_t, network_instance) }, [UPDATE_FORWARDING_PARAMETERS_REDIRECT_INFORMATION] = { .type = PFCP_IE_REDIRECT_INFORMATION, - .offset = offsetof(pfcp_update_forwarding_parameters_t, redirect_information) + .offset = offsetof(pfcp_ie_update_forwarding_parameters_t, redirect_information) }, [UPDATE_FORWARDING_PARAMETERS_OUTER_HEADER_CREATION] = { .type = PFCP_IE_OUTER_HEADER_CREATION, - .offset = offsetof(pfcp_update_forwarding_parameters_t, outer_header_creation) + .offset = offsetof(pfcp_ie_update_forwarding_parameters_t, outer_header_creation) }, [UPDATE_FORWARDING_PARAMETERS_TRANSPORT_LEVEL_MARKING] = { .type = PFCP_IE_TRANSPORT_LEVEL_MARKING, - .offset = offsetof(pfcp_update_forwarding_parameters_t, transport_level_marking) + .offset = offsetof(pfcp_ie_update_forwarding_parameters_t, transport_level_marking) }, [UPDATE_FORWARDING_PARAMETERS_FORWARDING_POLICY] = { .type = PFCP_IE_FORWARDING_POLICY, - .offset = offsetof(pfcp_update_forwarding_parameters_t, forwarding_policy) + .offset = offsetof(pfcp_ie_update_forwarding_parameters_t, forwarding_policy) }, [UPDATE_FORWARDING_PARAMETERS_HEADER_ENRICHMENT] = { .type = PFCP_IE_HEADER_ENRICHMENT, - .offset = offsetof(pfcp_update_forwarding_parameters_t, header_enrichment) + .offset = offsetof(pfcp_ie_update_forwarding_parameters_t, header_enrichment) }, [UPDATE_FORWARDING_PARAMETERS_PFCPSMREQ_FLAGS] = { .type = PFCP_IE_PFCPSMREQ_FLAGS, - .offset = offsetof(pfcp_update_forwarding_parameters_t, pfcpsmreq_flags) + .offset = offsetof(pfcp_ie_update_forwarding_parameters_t, pfcpsmreq_flags) }, [UPDATE_FORWARDING_PARAMETERS_LINKED_TRAFFIC_ENDPOINT_ID] = { .type = PFCP_IE_TRAFFIC_ENDPOINT_ID, - .offset = offsetof(pfcp_update_forwarding_parameters_t, linked_traffic_endpoint_id) + .offset = offsetof(pfcp_ie_update_forwarding_parameters_t, linked_traffic_endpoint_id) }, [UPDATE_FORWARDING_PARAMETERS_DESTINATION_INTERFACE_TYPE] = { .type = PFCP_IE_TGPP_INTERFACE_TYPE, - .offset = offsetof(pfcp_update_forwarding_parameters_t, destination_interface_type) + .offset = offsetof(pfcp_ie_update_forwarding_parameters_t, destination_interface_type) }, }; @@ -5462,23 +5491,23 @@ static struct pfcp_group_ie_def pfcp_update_bar_response_group[] = { [UPDATE_BAR_RESPONSE_BAR_ID] = { .type = PFCP_IE_BAR_ID, - .offset = offsetof(pfcp_update_bar_response_t, bar_id) + .offset = offsetof(pfcp_ie_update_bar_response_t, bar_id) }, [UPDATE_BAR_RESPONSE_DOWNLINK_DATA_NOTIFICATION_DELAY] = { .type = PFCP_IE_DOWNLINK_DATA_NOTIFICATION_DELAY, - .offset = offsetof(pfcp_update_bar_response_t, downlink_data_notification_delay) + .offset = offsetof(pfcp_ie_update_bar_response_t, downlink_data_notification_delay) }, [UPDATE_BAR_RESPONSE_DL_BUFFERING_DURATION] = { .type = PFCP_IE_DL_BUFFERING_DURATION, - .offset = offsetof(pfcp_update_bar_response_t, dl_buffering_duration) + .offset = offsetof(pfcp_ie_update_bar_response_t, dl_buffering_duration) }, [UPDATE_BAR_RESPONSE_DL_BUFFERING_SUGGESTED_PACKET_COUNT] = { .type = PFCP_IE_DL_BUFFERING_SUGGESTED_PACKET_COUNT, - .offset = offsetof(pfcp_update_bar_response_t, dl_buffering_suggested_packet_count) + .offset = offsetof(pfcp_ie_update_bar_response_t, dl_buffering_suggested_packet_count) }, [UPDATE_BAR_RESPONSE_SUGGESTED_BUFFERING_PACKETS_COUNT] = { .type = PFCP_IE_SUGGESTED_BUFFERING_PACKETS_COUNT, - .offset = offsetof(pfcp_update_bar_response_t, suggested_buffering_packets_count) + .offset = offsetof(pfcp_ie_update_bar_response_t, suggested_buffering_packets_count) }, }; @@ -5486,88 +5515,88 @@ static struct pfcp_group_ie_def pfcp_update_urr_group[] = { [UPDATE_URR_URR_ID] = { .type = PFCP_IE_URR_ID, - .offset = offsetof(pfcp_update_urr_t, urr_id) + .offset = offsetof(pfcp_ie_update_urr_t, urr_id) }, [UPDATE_URR_MEASUREMENT_METHOD] = { .type = PFCP_IE_MEASUREMENT_METHOD, - .offset = offsetof(pfcp_update_urr_t, measurement_method) + .offset = offsetof(pfcp_ie_update_urr_t, measurement_method) }, [UPDATE_URR_REPORTING_TRIGGERS] = { .type = PFCP_IE_REPORTING_TRIGGERS, - .offset = offsetof(pfcp_update_urr_t, reporting_triggers) + .offset = offsetof(pfcp_ie_update_urr_t, reporting_triggers) }, [UPDATE_URR_MEASUREMENT_PERIOD] = { .type = PFCP_IE_MEASUREMENT_PERIOD, - .offset = offsetof(pfcp_update_urr_t, measurement_period) + .offset = offsetof(pfcp_ie_update_urr_t, measurement_period) }, [UPDATE_URR_VOLUME_THRESHOLD] = { .type = PFCP_IE_VOLUME_THRESHOLD, - .offset = offsetof(pfcp_update_urr_t, volume_threshold) + .offset = offsetof(pfcp_ie_update_urr_t, volume_threshold) }, [UPDATE_URR_VOLUME_QUOTA] = { .type = PFCP_IE_VOLUME_QUOTA, - .offset = offsetof(pfcp_update_urr_t, volume_quota) + .offset = offsetof(pfcp_ie_update_urr_t, volume_quota) }, [UPDATE_URR_TIME_THRESHOLD] = { .type = PFCP_IE_TIME_THRESHOLD, - .offset = offsetof(pfcp_update_urr_t, time_threshold) + .offset = offsetof(pfcp_ie_update_urr_t, time_threshold) }, [UPDATE_URR_TIME_QUOTA] = { .type = PFCP_IE_TIME_QUOTA, - .offset = offsetof(pfcp_update_urr_t, time_quota) + .offset = offsetof(pfcp_ie_update_urr_t, time_quota) }, [UPDATE_URR_QUOTA_HOLDING_TIME] = { .type = PFCP_IE_QUOTA_HOLDING_TIME, - .offset = offsetof(pfcp_update_urr_t, quota_holding_time) + .offset = offsetof(pfcp_ie_update_urr_t, quota_holding_time) }, [UPDATE_URR_DROPPED_DL_TRAFFIC_THRESHOLD] = { .type = PFCP_IE_DROPPED_DL_TRAFFIC_THRESHOLD, - .offset = offsetof(pfcp_update_urr_t, dropped_dl_traffic_threshold) + .offset = offsetof(pfcp_ie_update_urr_t, dropped_dl_traffic_threshold) }, [UPDATE_URR_QUOTA_VALIDITY_TIME] = { .type = PFCP_IE_QUOTA_VALIDITY_TIME, - .offset = offsetof(pfcp_update_urr_t, quota_validity_time) + .offset = offsetof(pfcp_ie_update_urr_t, quota_validity_time) }, [UPDATE_URR_MONITORING_TIME] = { .type = PFCP_IE_MONITORING_TIME, - .offset = offsetof(pfcp_update_urr_t, monitoring_time) + .offset = offsetof(pfcp_ie_update_urr_t, monitoring_time) }, [UPDATE_URR_SUBSEQUENT_VOLUME_THRESHOLD] = { .type = PFCP_IE_SUBSEQUENT_VOLUME_THRESHOLD, - .offset = offsetof(pfcp_update_urr_t, subsequent_volume_threshold) + .offset = offsetof(pfcp_ie_update_urr_t, subsequent_volume_threshold) }, [UPDATE_URR_SUBSEQUENT_TIME_THRESHOLD] = { .type = PFCP_IE_SUBSEQUENT_TIME_THRESHOLD, - .offset = offsetof(pfcp_update_urr_t, subsequent_time_threshold) + .offset = offsetof(pfcp_ie_update_urr_t, subsequent_time_threshold) }, [UPDATE_URR_INACTIVITY_DETECTION_TIME] = { .type = PFCP_IE_INACTIVITY_DETECTION_TIME, - .offset = offsetof(pfcp_update_urr_t, inactivity_detection_time) + .offset = offsetof(pfcp_ie_update_urr_t, inactivity_detection_time) }, [UPDATE_URR_LINKED_URR_ID] = { .type = PFCP_IE_LINKED_URR_ID, .is_array = true, - .offset = offsetof(pfcp_update_urr_t, linked_urr_id) + .offset = offsetof(pfcp_ie_update_urr_t, linked_urr_id) }, [UPDATE_URR_MEASUREMENT_INFORMATION] = { .type = PFCP_IE_MEASUREMENT_INFORMATION, - .offset = offsetof(pfcp_update_urr_t, measurement_information) + .offset = offsetof(pfcp_ie_update_urr_t, measurement_information) }, [UPDATE_URR_TIME_QUOTA_MECHANISM] = { .type = PFCP_IE_TIME_QUOTA_MECHANISM, - .offset = offsetof(pfcp_update_urr_t, time_quota_mechanism) + .offset = offsetof(pfcp_ie_update_urr_t, time_quota_mechanism) }, [UPDATE_URR_AGGREGATED_URRS] = { .type = PFCP_IE_AGGREGATED_URRS, - .offset = offsetof(pfcp_update_urr_t, aggregated_urrs) + .offset = offsetof(pfcp_ie_update_urr_t, aggregated_urrs) }, [UPDATE_URR_FAR_ID_FOR_QUOTE_ACTION] = { .type = PFCP_IE_FAR_ID, - .offset = offsetof(pfcp_update_urr_t, far_id_for_quota_action) + .offset = offsetof(pfcp_ie_update_urr_t, far_id_for_quota_action) }, [UPDATE_URR_ETHERNET_INACTIVITY_TIMER] = { .type = PFCP_IE_ETHERNET_INACTIVITY_TIMER, - .offset = offsetof(pfcp_update_urr_t, ethernet_inactivity_timer) + .offset = offsetof(pfcp_ie_update_urr_t, ethernet_inactivity_timer) }, }; @@ -5575,47 +5604,47 @@ static struct pfcp_group_ie_def pfcp_update_qer_group[] = { [UPDATE_QER_QER_ID] = { .type = PFCP_IE_QER_ID, - .offset = offsetof(pfcp_update_qer_t, qer_id) + .offset = offsetof(pfcp_ie_update_qer_t, qer_id) }, [UPDATE_QER_QER_CORRELATION_ID] = { .type = PFCP_IE_QER_CORRELATION_ID, - .offset = offsetof(pfcp_update_qer_t, qer_correlation_id) + .offset = offsetof(pfcp_ie_update_qer_t, qer_correlation_id) }, [UPDATE_QER_GATE_STATUS] = { .type = PFCP_IE_GATE_STATUS, - .offset = offsetof(pfcp_update_qer_t, gate_status) + .offset = offsetof(pfcp_ie_update_qer_t, gate_status) }, [UPDATE_QER_MBR] = { .type = PFCP_IE_MBR, - .offset = offsetof(pfcp_update_qer_t, mbr) + .offset = offsetof(pfcp_ie_update_qer_t, mbr) }, [UPDATE_QER_GBR] = { .type = PFCP_IE_GBR, - .offset = offsetof(pfcp_update_qer_t, gbr) + .offset = offsetof(pfcp_ie_update_qer_t, gbr) }, [UPDATE_QER_PACKET_RATE] = { .type = PFCP_IE_PACKET_RATE, - .offset = offsetof(pfcp_update_qer_t, packet_rate) + .offset = offsetof(pfcp_ie_update_qer_t, packet_rate) }, [UPDATE_QER_DL_FLOW_LEVEL_MARKING] = { .type = PFCP_IE_DL_FLOW_LEVEL_MARKING, - .offset = offsetof(pfcp_update_qer_t, dl_flow_level_marking) + .offset = offsetof(pfcp_ie_update_qer_t, dl_flow_level_marking) }, [UPDATE_QER_QOS_FLOW_IDENTIFIER] = { .type = PFCP_IE_QFI, - .offset = offsetof(pfcp_update_qer_t, qos_flow_identifier) + .offset = offsetof(pfcp_ie_update_qer_t, qos_flow_identifier) }, [UPDATE_QER_REFLECTIVE_QOS] = { .type = PFCP_IE_RQI, - .offset = offsetof(pfcp_update_qer_t, reflective_qos) + .offset = offsetof(pfcp_ie_update_qer_t, reflective_qos) }, [UPDATE_QER_PAGING_POLICY_INDICATOR] = { .type = PFCP_IE_PAGING_POLICY_INDICATOR, - .offset = offsetof(pfcp_update_qer_t, paging_policy_indicator) + .offset = offsetof(pfcp_ie_update_qer_t, paging_policy_indicator) }, [UPDATE_QER_AVERAGING_WINDOW] = { .type = PFCP_IE_AVERAGING_WINDOW, - .offset = offsetof(pfcp_update_qer_t, averaging_window) + .offset = offsetof(pfcp_ie_update_qer_t, averaging_window) }, }; @@ -5623,7 +5652,7 @@ static struct pfcp_group_ie_def pfcp_remove_pdr_group[] = { [REMOVE_PDR_PDR_ID] = { .type = PFCP_IE_PDR_ID, - .offset = offsetof(pfcp_remove_pdr_t, pdr_id) + .offset = offsetof(pfcp_ie_remove_pdr_t, pdr_id) }, }; @@ -5631,7 +5660,7 @@ static struct pfcp_group_ie_def pfcp_remove_far_group[] = { [REMOVE_FAR_FAR_ID] = { .type = PFCP_IE_FAR_ID, - .offset = offsetof(pfcp_remove_far_t, far_id) + .offset = offsetof(pfcp_ie_remove_far_t, far_id) }, }; @@ -5639,7 +5668,7 @@ static struct pfcp_group_ie_def pfcp_remove_urr_group[] = { [REMOVE_URR_URR_ID] = { .type = PFCP_IE_URR_ID, - .offset = offsetof(pfcp_remove_urr_t, urr_id) + .offset = offsetof(pfcp_ie_remove_urr_t, urr_id) }, }; @@ -5647,7 +5676,7 @@ static struct pfcp_group_ie_def pfcp_remove_qer_group[] = { [REMOVE_QER_QER_ID] = { .type = PFCP_IE_QER_ID, - .offset = offsetof(pfcp_remove_qer_t, qer_id) + .offset = offsetof(pfcp_ie_remove_qer_t, qer_id) }, }; @@ -5655,11 +5684,11 @@ static struct pfcp_group_ie_def pfcp_load_control_information_group[] = { [LOAD_CONTROL_INFORMATION_SEQUENCE_NUMBER] = { .type = PFCP_IE_SEQUENCE_NUMBER, - .offset = offsetof(pfcp_load_control_information_t, sequence_number) + .offset = offsetof(pfcp_ie_load_control_information_t, sequence_number) }, [LOAD_CONTROL_INFORMATION_METRIC] = { .type = PFCP_IE_METRIC, - .offset = offsetof(pfcp_load_control_information_t, metric) + .offset = offsetof(pfcp_ie_load_control_information_t, metric) }, }; @@ -5667,19 +5696,19 @@ static struct pfcp_group_ie_def pfcp_overload_control_information_group[] = { [OVERLOAD_CONTROL_INFORMATION_SEQUENCE_NUMBER] = { .type = PFCP_IE_SEQUENCE_NUMBER, - .offset = offsetof(pfcp_overload_control_information_t, sequence_number) + .offset = offsetof(pfcp_ie_overload_control_information_t, sequence_number) }, [OVERLOAD_CONTROL_INFORMATION_METRIC] = { .type = PFCP_IE_METRIC, - .offset = offsetof(pfcp_overload_control_information_t, metric) + .offset = offsetof(pfcp_ie_overload_control_information_t, metric) }, [OVERLOAD_CONTROL_INFORMATION_TIMER] = { .type = PFCP_IE_TIMER, - .offset = offsetof(pfcp_overload_control_information_t, timer) + .offset = offsetof(pfcp_ie_overload_control_information_t, timer) }, [OVERLOAD_CONTROL_INFORMATION_OCI_FLAGS] = { .type = PFCP_IE_OCI_FLAGS, - .offset = offsetof(pfcp_overload_control_information_t, oci_flags) + .offset = offsetof(pfcp_ie_overload_control_information_t, oci_flags) }, }; @@ -5687,12 +5716,12 @@ static struct pfcp_group_ie_def pfcp_application_id_pfds_group[] = { [APPLICATION_ID_PFDS_APPLICATION_ID] = { .type = PFCP_IE_APPLICATION_ID, - .offset = offsetof(pfcp_application_id_pfds_t, application_id) + .offset = offsetof(pfcp_ie_application_id_pfds_t, application_id) }, [APPLICATION_ID_PFDS_PFD] = { .type = PFCP_IE_PFD, .is_array = true, - .offset = offsetof(pfcp_application_id_pfds_t, pfd) + .offset = offsetof(pfcp_ie_application_id_pfds_t, pfd) }, }; @@ -5701,7 +5730,7 @@ static struct pfcp_group_ie_def pfcp_pfd_group[] = [PFD_PFD_CONTENTS] = { .type = PFCP_IE_PFD_CONTENTS, .is_array = true, - .offset = offsetof(pfcp_pfd_t, pfd_contents) + .offset = offsetof(pfcp_ie_pfd_t, pfd_contents) }, }; @@ -5709,15 +5738,15 @@ static struct pfcp_group_ie_def pfcp_application_detection_information_group[] = { [APPLICATION_DETECTION_INFORMATION_APPLICATION_ID] = { .type = PFCP_IE_APPLICATION_ID, - .offset = offsetof(pfcp_application_detection_information_t, application_id) + .offset = offsetof(pfcp_ie_application_detection_information_t, application_id) }, [APPLICATION_DETECTION_INFORMATION_APPLICATION_INSTANCE_ID] = { .type = PFCP_IE_APPLICATION_INSTANCE_ID, - .offset = offsetof(pfcp_application_detection_information_t, application_instance_id) + .offset = offsetof(pfcp_ie_application_detection_information_t, application_instance_id) }, [APPLICATION_DETECTION_INFORMATION_FLOW_INFORMATION] = { .type = PFCP_IE_FLOW_INFORMATION, - .offset = offsetof(pfcp_application_detection_information_t, flow_information) + .offset = offsetof(pfcp_ie_application_detection_information_t, flow_information) }, }; @@ -5725,7 +5754,7 @@ static struct pfcp_group_ie_def pfcp_query_urr_group[] = { [QUERY_URR_URR_ID] = { .type = PFCP_IE_URR_ID, - .offset = offsetof(pfcp_query_urr_t, urr_id) + .offset = offsetof(pfcp_ie_query_urr_t, urr_id) }, }; @@ -5733,71 +5762,71 @@ static struct pfcp_group_ie_def pfcp_usage_report_smr_group[] = { [USAGE_REPORT_URR_ID] = { .type = PFCP_IE_URR_ID, - .offset = offsetof(pfcp_usage_report_t, urr_id) + .offset = offsetof(pfcp_ie_usage_report_t, urr_id) }, [USAGE_REPORT_UR_SEQN] = { .type = PFCP_IE_UR_SEQN, - .offset = offsetof(pfcp_usage_report_t, ur_seqn) + .offset = offsetof(pfcp_ie_usage_report_t, ur_seqn) }, [USAGE_REPORT_USAGE_REPORT_TRIGGER] = { .type = PFCP_IE_USAGE_REPORT_TRIGGER, - .offset = offsetof(pfcp_usage_report_t, usage_report_trigger) + .offset = offsetof(pfcp_ie_usage_report_t, usage_report_trigger) }, [USAGE_REPORT_START_TIME] = { .type = PFCP_IE_START_TIME, - .offset = offsetof(pfcp_usage_report_t, start_time) + .offset = offsetof(pfcp_ie_usage_report_t, start_time) }, [USAGE_REPORT_END_TIME] = { .type = PFCP_IE_END_TIME, - .offset = offsetof(pfcp_usage_report_t, end_time) + .offset = offsetof(pfcp_ie_usage_report_t, end_time) }, [USAGE_REPORT_VOLUME_MEASUREMENT] = { .type = PFCP_IE_VOLUME_MEASUREMENT, - .offset = offsetof(pfcp_usage_report_t, volume_measurement) + .offset = offsetof(pfcp_ie_usage_report_t, volume_measurement) }, [USAGE_REPORT_DURATION_MEASUREMENT] = { .type = PFCP_IE_DURATION_MEASUREMENT, - .offset = offsetof(pfcp_usage_report_t, duration_measurement) + .offset = offsetof(pfcp_ie_usage_report_t, duration_measurement) }, [USAGE_REPORT_TIME_OF_FIRST_PACKET] = { .type = PFCP_IE_TIME_OF_FIRST_PACKET, - .offset = offsetof(pfcp_usage_report_t, time_of_first_packet) + .offset = offsetof(pfcp_ie_usage_report_t, time_of_first_packet) }, [USAGE_REPORT_TIME_OF_LAST_PACKET] = { .type = PFCP_IE_TIME_OF_LAST_PACKET, - .offset = offsetof(pfcp_usage_report_t, time_of_last_packet) + .offset = offsetof(pfcp_ie_usage_report_t, time_of_last_packet) }, [USAGE_REPORT_USAGE_INFORMATION] = { .type = PFCP_IE_USAGE_INFORMATION, - .offset = offsetof(pfcp_usage_report_t, usage_information) + .offset = offsetof(pfcp_ie_usage_report_t, usage_information) }, [USAGE_REPORT_QUERY_URR_REFERENCE] = { .type = PFCP_IE_QUERY_URR_REFERENCE, - .offset = offsetof(pfcp_usage_report_t, query_urr_reference) + .offset = offsetof(pfcp_ie_usage_report_t, query_urr_reference) }, [USAGE_REPORT_EVENT_TIME_STAMP] = { .type = PFCP_IE_EVENT_TIME_STAMP, .is_array = true, - .offset = offsetof(pfcp_usage_report_t, event_time_stamp) + .offset = offsetof(pfcp_ie_usage_report_t, event_time_stamp) }, [USAGE_REPORT_ETHERNET_TRAFFIC_INFORMATION] = { .type = PFCP_IE_ETHERNET_TRAFFIC_INFORMATION, - .offset = offsetof(pfcp_usage_report_t, ethernet_traffic_information) + .offset = offsetof(pfcp_ie_usage_report_t, ethernet_traffic_information) }, [USAGE_REPORT_TP_NOW] = { .type = PFCP_IE_TP_NOW, - .vendor = VENDOR_TRAVELPING, - .offset = offsetof(pfcp_usage_report_t, tp_now) + .vendor = PFCP_VENDOR_TRAVELPING, + .offset = offsetof(pfcp_ie_usage_report_t, tp_now) }, [USAGE_REPORT_TP_START_TIME] = { .type = PFCP_IE_TP_START_TIME, - .vendor = VENDOR_TRAVELPING, - .offset = offsetof(pfcp_usage_report_t, tp_start_time) + .vendor = PFCP_VENDOR_TRAVELPING, + .offset = offsetof(pfcp_ie_usage_report_t, tp_start_time) }, [USAGE_REPORT_TP_END_TIME] = { .type = PFCP_IE_TP_END_TIME, - .vendor = VENDOR_TRAVELPING, - .offset = offsetof(pfcp_usage_report_t, tp_end_time) + .vendor = PFCP_VENDOR_TRAVELPING, + .offset = offsetof(pfcp_ie_usage_report_t, tp_end_time) }, }; @@ -5805,62 +5834,62 @@ static struct pfcp_group_ie_def pfcp_usage_report_sdr_group[] = { [USAGE_REPORT_URR_ID] = { .type = PFCP_IE_URR_ID, - .offset = offsetof(pfcp_usage_report_t, urr_id) + .offset = offsetof(pfcp_ie_usage_report_t, urr_id) }, [USAGE_REPORT_UR_SEQN] = { .type = PFCP_IE_UR_SEQN, - .offset = offsetof(pfcp_usage_report_t, ur_seqn) + .offset = offsetof(pfcp_ie_usage_report_t, ur_seqn) }, [USAGE_REPORT_USAGE_REPORT_TRIGGER] = { .type = PFCP_IE_USAGE_REPORT_TRIGGER, - .offset = offsetof(pfcp_usage_report_t, usage_report_trigger) + .offset = offsetof(pfcp_ie_usage_report_t, usage_report_trigger) }, [USAGE_REPORT_START_TIME] = { .type = PFCP_IE_START_TIME, - .offset = offsetof(pfcp_usage_report_t, start_time) + .offset = offsetof(pfcp_ie_usage_report_t, start_time) }, [USAGE_REPORT_END_TIME] = { .type = PFCP_IE_END_TIME, - .offset = offsetof(pfcp_usage_report_t, end_time) + .offset = offsetof(pfcp_ie_usage_report_t, end_time) }, [USAGE_REPORT_VOLUME_MEASUREMENT] = { .type = PFCP_IE_VOLUME_MEASUREMENT, - .offset = offsetof(pfcp_usage_report_t, volume_measurement) + .offset = offsetof(pfcp_ie_usage_report_t, volume_measurement) }, [USAGE_REPORT_DURATION_MEASUREMENT] = { .type = PFCP_IE_DURATION_MEASUREMENT, - .offset = offsetof(pfcp_usage_report_t, duration_measurement) + .offset = offsetof(pfcp_ie_usage_report_t, duration_measurement) }, [USAGE_REPORT_TIME_OF_FIRST_PACKET] = { .type = PFCP_IE_TIME_OF_FIRST_PACKET, - .offset = offsetof(pfcp_usage_report_t, time_of_first_packet) + .offset = offsetof(pfcp_ie_usage_report_t, time_of_first_packet) }, [USAGE_REPORT_TIME_OF_LAST_PACKET] = { .type = PFCP_IE_TIME_OF_LAST_PACKET, - .offset = offsetof(pfcp_usage_report_t, time_of_last_packet) + .offset = offsetof(pfcp_ie_usage_report_t, time_of_last_packet) }, [USAGE_REPORT_USAGE_INFORMATION] = { .type = PFCP_IE_USAGE_INFORMATION, - .offset = offsetof(pfcp_usage_report_t, usage_information) + .offset = offsetof(pfcp_ie_usage_report_t, usage_information) }, [USAGE_REPORT_ETHERNET_TRAFFIC_INFORMATION] = { .type = PFCP_IE_ETHERNET_TRAFFIC_INFORMATION, - .offset = offsetof(pfcp_usage_report_t, ethernet_traffic_information) + .offset = offsetof(pfcp_ie_usage_report_t, ethernet_traffic_information) }, [USAGE_REPORT_TP_NOW] = { .type = PFCP_IE_TP_NOW, - .vendor = VENDOR_TRAVELPING, - .offset = offsetof(pfcp_usage_report_t, tp_now) + .vendor = PFCP_VENDOR_TRAVELPING, + .offset = offsetof(pfcp_ie_usage_report_t, tp_now) }, [USAGE_REPORT_TP_START_TIME] = { .type = PFCP_IE_TP_START_TIME, - .vendor = VENDOR_TRAVELPING, - .offset = offsetof(pfcp_usage_report_t, tp_start_time) + .vendor = PFCP_VENDOR_TRAVELPING, + .offset = offsetof(pfcp_ie_usage_report_t, tp_start_time) }, [USAGE_REPORT_TP_END_TIME] = { .type = PFCP_IE_TP_END_TIME, - .vendor = VENDOR_TRAVELPING, - .offset = offsetof(pfcp_usage_report_t, tp_end_time) + .vendor = PFCP_VENDOR_TRAVELPING, + .offset = offsetof(pfcp_ie_usage_report_t, tp_end_time) }, }; @@ -5868,78 +5897,78 @@ static struct pfcp_group_ie_def pfcp_usage_report_srr_group[] = { [USAGE_REPORT_URR_ID] = { .type = PFCP_IE_URR_ID, - .offset = offsetof(pfcp_usage_report_t, urr_id) + .offset = offsetof(pfcp_ie_usage_report_t, urr_id) }, [USAGE_REPORT_UR_SEQN] = { .type = PFCP_IE_UR_SEQN, - .offset = offsetof(pfcp_usage_report_t, ur_seqn) + .offset = offsetof(pfcp_ie_usage_report_t, ur_seqn) }, [USAGE_REPORT_USAGE_REPORT_TRIGGER] = { .type = PFCP_IE_USAGE_REPORT_TRIGGER, - .offset = offsetof(pfcp_usage_report_t, usage_report_trigger) + .offset = offsetof(pfcp_ie_usage_report_t, usage_report_trigger) }, [USAGE_REPORT_START_TIME] = { .type = PFCP_IE_START_TIME, - .offset = offsetof(pfcp_usage_report_t, start_time) + .offset = offsetof(pfcp_ie_usage_report_t, start_time) }, [USAGE_REPORT_END_TIME] = { .type = PFCP_IE_END_TIME, - .offset = offsetof(pfcp_usage_report_t, end_time) + .offset = offsetof(pfcp_ie_usage_report_t, end_time) }, [USAGE_REPORT_VOLUME_MEASUREMENT] = { .type = PFCP_IE_VOLUME_MEASUREMENT, - .offset = offsetof(pfcp_usage_report_t, volume_measurement) + .offset = offsetof(pfcp_ie_usage_report_t, volume_measurement) }, [USAGE_REPORT_DURATION_MEASUREMENT] = { .type = PFCP_IE_DURATION_MEASUREMENT, - .offset = offsetof(pfcp_usage_report_t, duration_measurement) + .offset = offsetof(pfcp_ie_usage_report_t, duration_measurement) }, [USAGE_REPORT_APPLICATION_DETECTION_INFORMATION] = { .type = PFCP_IE_APPLICATION_DETECTION_INFORMATION, - .offset = offsetof(pfcp_usage_report_t, application_detection_information) + .offset = offsetof(pfcp_ie_usage_report_t, application_detection_information) }, [USAGE_REPORT_UE_IP_ADDRESS] = { .type = PFCP_IE_UE_IP_ADDRESS, - .offset = offsetof(pfcp_usage_report_t, ue_ip_address) + .offset = offsetof(pfcp_ie_usage_report_t, ue_ip_address) }, [USAGE_REPORT_NETWORK_INSTANCE] = { .type = PFCP_IE_NETWORK_INSTANCE, - .offset = offsetof(pfcp_usage_report_t, network_instance) + .offset = offsetof(pfcp_ie_usage_report_t, network_instance) }, [USAGE_REPORT_TIME_OF_FIRST_PACKET] = { .type = PFCP_IE_TIME_OF_FIRST_PACKET, - .offset = offsetof(pfcp_usage_report_t, time_of_first_packet) + .offset = offsetof(pfcp_ie_usage_report_t, time_of_first_packet) }, [USAGE_REPORT_TIME_OF_LAST_PACKET] = { .type = PFCP_IE_TIME_OF_LAST_PACKET, - .offset = offsetof(pfcp_usage_report_t, time_of_last_packet) + .offset = offsetof(pfcp_ie_usage_report_t, time_of_last_packet) }, [USAGE_REPORT_USAGE_INFORMATION] = { .type = PFCP_IE_USAGE_INFORMATION, - .offset = offsetof(pfcp_usage_report_t, usage_information) + .offset = offsetof(pfcp_ie_usage_report_t, usage_information) }, [USAGE_REPORT_QUERY_URR_REFERENCE] = { .type = PFCP_IE_QUERY_URR_REFERENCE, - .offset = offsetof(pfcp_usage_report_t, query_urr_reference) + .offset = offsetof(pfcp_ie_usage_report_t, query_urr_reference) }, [USAGE_REPORT_ETHERNET_TRAFFIC_INFORMATION] = { .type = PFCP_IE_ETHERNET_TRAFFIC_INFORMATION, - .offset = offsetof(pfcp_usage_report_t, ethernet_traffic_information) + .offset = offsetof(pfcp_ie_usage_report_t, ethernet_traffic_information) }, [USAGE_REPORT_TP_NOW] = { .type = PFCP_IE_TP_NOW, - .vendor = VENDOR_TRAVELPING, - .offset = offsetof(pfcp_usage_report_t, tp_now) + .vendor = PFCP_VENDOR_TRAVELPING, + .offset = offsetof(pfcp_ie_usage_report_t, tp_now) }, [USAGE_REPORT_TP_START_TIME] = { .type = PFCP_IE_TP_START_TIME, - .vendor = VENDOR_TRAVELPING, - .offset = offsetof(pfcp_usage_report_t, tp_start_time) + .vendor = PFCP_VENDOR_TRAVELPING, + .offset = offsetof(pfcp_ie_usage_report_t, tp_start_time) }, [USAGE_REPORT_TP_END_TIME] = { .type = PFCP_IE_TP_END_TIME, - .vendor = VENDOR_TRAVELPING, - .offset = offsetof(pfcp_usage_report_t, tp_end_time) + .vendor = PFCP_VENDOR_TRAVELPING, + .offset = offsetof(pfcp_ie_usage_report_t, tp_end_time) }, }; @@ -5948,12 +5977,12 @@ static struct pfcp_group_ie_def pfcp_downlink_data_report_group[] = [DOWNLINK_DATA_REPORT_PDR_ID] = { .type = PFCP_IE_PDR_ID, .is_array = true, - .offset = offsetof(pfcp_downlink_data_report_t, pdr_id) + .offset = offsetof(pfcp_ie_downlink_data_report_t, pdr_id) }, [DOWNLINK_DATA_REPORT_DOWNLINK_DATA_SERVICE_INFORMATION] = { .type = PFCP_IE_DOWNLINK_DATA_SERVICE_INFORMATION, .is_array = true, - .offset = offsetof(pfcp_downlink_data_report_t, downlink_data_service_information) + .offset = offsetof(pfcp_ie_downlink_data_report_t, downlink_data_service_information) }, }; @@ -5961,15 +5990,15 @@ static struct pfcp_group_ie_def pfcp_create_bar_group[] = { [CREATE_BAR_BAR_ID] = { .type = PFCP_IE_BAR_ID, - .offset = offsetof(pfcp_create_bar_t, bar_id) + .offset = offsetof(pfcp_ie_create_bar_t, bar_id) }, [CREATE_BAR_DOWNLINK_DATA_NOTIFICATION_DELAY] = { .type = PFCP_IE_DOWNLINK_DATA_NOTIFICATION_DELAY, - .offset = offsetof(pfcp_create_bar_t, downlink_data_notification_delay) + .offset = offsetof(pfcp_ie_create_bar_t, downlink_data_notification_delay) }, [CREATE_BAR_SUGGESTED_BUFFERING_PACKETS_COUNT] = { .type = PFCP_IE_SUGGESTED_BUFFERING_PACKETS_COUNT, - .offset = offsetof(pfcp_create_bar_t, suggested_buffering_packets_count) + .offset = offsetof(pfcp_ie_create_bar_t, suggested_buffering_packets_count) }, }; @@ -5977,15 +6006,15 @@ static struct pfcp_group_ie_def pfcp_update_bar_request_group[] = { [UPDATE_BAR_REQUEST_BAR_ID] = { .type = PFCP_IE_BAR_ID, - .offset = offsetof(pfcp_update_bar_request_t, bar_id) + .offset = offsetof(pfcp_ie_update_bar_request_t, bar_id) }, [UPDATE_BAR_REQUEST_DOWNLINK_DATA_NOTIFICATION_DELAY] = { .type = PFCP_IE_DOWNLINK_DATA_NOTIFICATION_DELAY, - .offset = offsetof(pfcp_update_bar_request_t, downlink_data_notification_delay) + .offset = offsetof(pfcp_ie_update_bar_request_t, downlink_data_notification_delay) }, [UPDATE_BAR_REQUEST_SUGGESTED_BUFFERING_PACKETS_COUNT] = { .type = PFCP_IE_SUGGESTED_BUFFERING_PACKETS_COUNT, - .offset = offsetof(pfcp_update_bar_request_t, suggested_buffering_packets_count) + .offset = offsetof(pfcp_ie_update_bar_request_t, suggested_buffering_packets_count) }, }; @@ -5993,7 +6022,7 @@ static struct pfcp_group_ie_def pfcp_remove_bar_group[] = { [REMOVE_BAR_BAR_ID] = { .type = PFCP_IE_BAR_ID, - .offset = offsetof(pfcp_remove_bar_t, bar_id) + .offset = offsetof(pfcp_ie_remove_bar_t, bar_id) }, }; @@ -6002,7 +6031,7 @@ static struct pfcp_group_ie_def pfcp_error_indication_report_group[] = [ERROR_INDICATION_REPORT_F_TEID] = { .type = PFCP_IE_F_TEID, .is_array = true, - .offset = offsetof(pfcp_error_indication_report_t, f_teid) + .offset = offsetof(pfcp_ie_error_indication_report_t, f_teid) }, }; @@ -6011,7 +6040,7 @@ static struct pfcp_group_ie_def pfcp_user_plane_path_failure_report_group[] = [USER_PLANE_PATH_FAILURE_REPORT_REMOTE_GTP_U_PEER] = { .type = PFCP_IE_REMOTE_GTP_U_PEER, .is_array = true, - .offset = offsetof(pfcp_user_plane_path_failure_report_t, remote_gtp_u_peer) + .offset = offsetof(pfcp_ie_user_plane_path_failure_report_t, remote_gtp_u_peer) }, }; @@ -6019,19 +6048,19 @@ static struct pfcp_group_ie_def pfcp_update_duplicating_parameters_group[] = { [UPDATE_DUPLICATING_PARAMETERS_DESTINATION_INTERFACE] = { .type = PFCP_IE_DESTINATION_INTERFACE, - .offset = offsetof(pfcp_update_duplicating_parameters_t, destination_interface) + .offset = offsetof(pfcp_ie_update_duplicating_parameters_t, destination_interface) }, [UPDATE_DUPLICATING_PARAMETERS_OUTER_HEADER_CREATION] = { .type = PFCP_IE_OUTER_HEADER_CREATION, - .offset = offsetof(pfcp_update_duplicating_parameters_t, outer_header_creation) + .offset = offsetof(pfcp_ie_update_duplicating_parameters_t, outer_header_creation) }, [UPDATE_DUPLICATING_PARAMETERS_TRANSPORT_LEVEL_MARKING] = { .type = PFCP_IE_TRANSPORT_LEVEL_MARKING, - .offset = offsetof(pfcp_update_duplicating_parameters_t, transport_level_marking) + .offset = offsetof(pfcp_ie_update_duplicating_parameters_t, transport_level_marking) }, [UPDATE_DUPLICATING_PARAMETERS_FORWARDING_POLICY] = { .type = PFCP_IE_FORWARDING_POLICY, - .offset = offsetof(pfcp_update_duplicating_parameters_t, forwarding_policy) + .offset = offsetof(pfcp_ie_update_duplicating_parameters_t, forwarding_policy) }, }; @@ -6039,11 +6068,11 @@ static struct pfcp_group_ie_def pfcp_aggregated_urrs_group[] = { [AGGREGATED_URRS_AGGREGATED_URR_ID] = { .type = PFCP_IE_AGGREGATED_URR_ID, - .offset = offsetof(pfcp_aggregated_urrs_t, aggregated_urr_id) + .offset = offsetof(pfcp_ie_aggregated_urrs_t, aggregated_urr_id) }, [AGGREGATED_URRS_MULTIPLIER] = { .type = PFCP_IE_MULTIPLIER, - .offset = offsetof(pfcp_aggregated_urrs_t, multiplier) + .offset = offsetof(pfcp_ie_aggregated_urrs_t, multiplier) }, }; @@ -6051,37 +6080,37 @@ static struct pfcp_group_ie_def pfcp_create_traffic_endpoint_group[] = { [CREATE_TRAFFIC_ENDPOINT_TRAFFIC_ENDPOINT_ID] = { .type = PFCP_IE_TRAFFIC_ENDPOINT_ID, - .offset = offsetof(pfcp_create_traffic_endpoint_t, traffic_endpoint_id) + .offset = offsetof(pfcp_ie_create_traffic_endpoint_t, traffic_endpoint_id) }, [CREATE_TRAFFIC_ENDPOINT_F_TEID] = { .type = PFCP_IE_F_TEID, - .offset = offsetof(pfcp_create_traffic_endpoint_t, f_teid) + .offset = offsetof(pfcp_ie_create_traffic_endpoint_t, f_teid) }, [CREATE_TRAFFIC_ENDPOINT_NETWORK_INSTANCE] = { .type = PFCP_IE_NETWORK_INSTANCE, - .offset = offsetof(pfcp_create_traffic_endpoint_t, network_instance) + .offset = offsetof(pfcp_ie_create_traffic_endpoint_t, network_instance) }, [CREATE_TRAFFIC_ENDPOINT_UE_IP_ADDRESS] = { .type = PFCP_IE_UE_IP_ADDRESS, - .offset = offsetof(pfcp_create_traffic_endpoint_t, ue_ip_address) + .offset = offsetof(pfcp_ie_create_traffic_endpoint_t, ue_ip_address) }, [CREATE_TRAFFIC_ENDPOINT_ETHERNET_PDU_SESSION_INFORMATION] = { .type = PFCP_IE_ETHERNET_PDU_SESSION_INFORMATION, - .offset = offsetof(pfcp_create_traffic_endpoint_t, ethernet_pdu_session_information) + .offset = offsetof(pfcp_ie_create_traffic_endpoint_t, ethernet_pdu_session_information) }, [CREATE_TRAFFIC_ENDPOINT_FRAMED_ROUTE] = { .type = PFCP_IE_FRAMED_ROUTE, .is_array = true, - .offset = offsetof(pfcp_create_traffic_endpoint_t, framed_route) + .offset = offsetof(pfcp_ie_create_traffic_endpoint_t, framed_route) }, [CREATE_TRAFFIC_ENDPOINT_FRAMED_ROUTING] = { .type = PFCP_IE_FRAMED_ROUTING, - .offset = offsetof(pfcp_create_traffic_endpoint_t, framed_routing) + .offset = offsetof(pfcp_ie_create_traffic_endpoint_t, framed_routing) }, [CREATE_TRAFFIC_ENDPOINT_FRAMED_IPV6_ROUTE] = { .type = PFCP_IE_FRAMED_IPV6_ROUTE, .is_array = true, - .offset = offsetof(pfcp_create_traffic_endpoint_t, framed_ipv6_route) + .offset = offsetof(pfcp_ie_create_traffic_endpoint_t, framed_ipv6_route) }, }; @@ -6089,15 +6118,15 @@ static struct pfcp_group_ie_def pfcp_created_traffic_endpoint_group[] = { [CREATED_TRAFFIC_ENDPOINT_TRAFFIC_ENDPOINT_ID] = { .type = PFCP_IE_TRAFFIC_ENDPOINT_ID, - .offset = offsetof(pfcp_created_traffic_endpoint_t, traffic_endpoint_id) + .offset = offsetof(pfcp_ie_created_traffic_endpoint_t, traffic_endpoint_id) }, [CREATED_TRAFFIC_ENDPOINT_F_TEID] = { .type = PFCP_IE_F_TEID, - .offset = offsetof(pfcp_created_traffic_endpoint_t, f_teid) + .offset = offsetof(pfcp_ie_created_traffic_endpoint_t, f_teid) }, [CREATED_TRAFFIC_ENDPOINT_UE_IP_ADDRESS] = { .type = PFCP_IE_UE_IP_ADDRESS, - .offset = offsetof(pfcp_created_traffic_endpoint_t, ue_ip_address) + .offset = offsetof(pfcp_ie_created_traffic_endpoint_t, ue_ip_address) }, }; @@ -6105,33 +6134,33 @@ static struct pfcp_group_ie_def pfcp_update_traffic_endpoint_group[] = { [UPDATE_TRAFFIC_ENDPOINT_TRAFFIC_ENDPOINT_ID] = { .type = PFCP_IE_TRAFFIC_ENDPOINT_ID, - .offset = offsetof(pfcp_update_traffic_endpoint_t, traffic_endpoint_id) + .offset = offsetof(pfcp_ie_update_traffic_endpoint_t, traffic_endpoint_id) }, [UPDATE_TRAFFIC_ENDPOINT_F_TEID] = { .type = PFCP_IE_F_TEID, - .offset = offsetof(pfcp_update_traffic_endpoint_t, f_teid) + .offset = offsetof(pfcp_ie_update_traffic_endpoint_t, f_teid) }, [UPDATE_TRAFFIC_ENDPOINT_NETWORK_INSTANCE] = { .type = PFCP_IE_NETWORK_INSTANCE, - .offset = offsetof(pfcp_update_traffic_endpoint_t, network_instance) + .offset = offsetof(pfcp_ie_update_traffic_endpoint_t, network_instance) }, [UPDATE_TRAFFIC_ENDPOINT_UE_IP_ADDRESS] = { .type = PFCP_IE_UE_IP_ADDRESS, - .offset = offsetof(pfcp_update_traffic_endpoint_t, ue_ip_address) + .offset = offsetof(pfcp_ie_update_traffic_endpoint_t, ue_ip_address) }, [UPDATE_TRAFFIC_ENDPOINT_FRAMED_ROUTE] = { .type = PFCP_IE_FRAMED_ROUTE, .is_array = true, - .offset = offsetof(pfcp_update_traffic_endpoint_t, framed_route) + .offset = offsetof(pfcp_ie_update_traffic_endpoint_t, framed_route) }, [UPDATE_TRAFFIC_ENDPOINT_FRAMED_ROUTING] = { .type = PFCP_IE_FRAMED_ROUTING, - .offset = offsetof(pfcp_update_traffic_endpoint_t, framed_routing) + .offset = offsetof(pfcp_ie_update_traffic_endpoint_t, framed_routing) }, [UPDATE_TRAFFIC_ENDPOINT_FRAMED_IPV6_ROUTE] = { .type = PFCP_IE_FRAMED_IPV6_ROUTE, .is_array = true, - .offset = offsetof(pfcp_update_traffic_endpoint_t, framed_ipv6_route) + .offset = offsetof(pfcp_ie_update_traffic_endpoint_t, framed_ipv6_route) }, }; @@ -6139,7 +6168,7 @@ static struct pfcp_group_ie_def pfcp_remove_traffic_endpoint_group[] = { [REMOVE_TRAFFIC_ENDPOINT_TRAFFIC_ENDPOINT_ID] = { .type = PFCP_IE_TRAFFIC_ENDPOINT_ID, - .offset = offsetof(pfcp_remove_traffic_endpoint_t, traffic_endpoint_id) + .offset = offsetof(pfcp_ie_remove_traffic_endpoint_t, traffic_endpoint_id) }, }; @@ -6147,32 +6176,32 @@ static struct pfcp_group_ie_def pfcp_ethernet_packet_filter_group[] = { [ETHERNET_PACKET_FILTER_ETHERNET_FILTER_ID] = { .type = PFCP_IE_ETHERNET_FILTER_ID, - .offset = offsetof(pfcp_ethernet_packet_filter_t, ethernet_filter_id) + .offset = offsetof(pfcp_ie_ethernet_packet_filter_t, ethernet_filter_id) }, [ETHERNET_PACKET_FILTER_ETHERNET_FILTER_PROPERTIES] = { .type = PFCP_IE_ETHERNET_FILTER_PROPERTIES, - .offset = offsetof(pfcp_ethernet_packet_filter_t, ethernet_filter_properties) + .offset = offsetof(pfcp_ie_ethernet_packet_filter_t, ethernet_filter_properties) }, [ETHERNET_PACKET_FILTER_MAC_ADDRESS] = { .type = PFCP_IE_MAC_ADDRESS, - .offset = offsetof(pfcp_ethernet_packet_filter_t, mac_address) + .offset = offsetof(pfcp_ie_ethernet_packet_filter_t, mac_address) }, [ETHERNET_PACKET_FILTER_ETHERTYPE] = { .type = PFCP_IE_ETHERTYPE, - .offset = offsetof(pfcp_ethernet_packet_filter_t, ethertype) + .offset = offsetof(pfcp_ie_ethernet_packet_filter_t, ethertype) }, [ETHERNET_PACKET_FILTER_C_TAG] = { .type = PFCP_IE_C_TAG, - .offset = offsetof(pfcp_ethernet_packet_filter_t, c_tag) + .offset = offsetof(pfcp_ie_ethernet_packet_filter_t, c_tag) }, [ETHERNET_PACKET_FILTER_S_TAG] = { .type = PFCP_IE_S_TAG, - .offset = offsetof(pfcp_ethernet_packet_filter_t, s_tag) + .offset = offsetof(pfcp_ie_ethernet_packet_filter_t, s_tag) }, [ETHERNET_PACKET_FILTER_SDF_FILTER] = { .type = PFCP_IE_SDF_FILTER, .is_array = true, - .offset = offsetof(pfcp_ethernet_packet_filter_t, sdf_filter) + .offset = offsetof(pfcp_ie_ethernet_packet_filter_t, sdf_filter) }, }; @@ -6180,11 +6209,11 @@ static struct pfcp_group_ie_def pfcp_ethernet_traffic_information_group[] = { [ETHERNET_TRAFFIC_INFORMATION_MAC_ADDRESSES_DETECTED] = { .type = PFCP_IE_MAC_ADDRESSES_DETECTED, - .offset = offsetof(pfcp_ethernet_traffic_information_t, mac_addresses_detected) + .offset = offsetof(pfcp_ie_ethernet_traffic_information_t, mac_addresses_detected) }, [ETHERNET_TRAFFIC_INFORMATION_MAC_ADDRESSES_REMOVED] = { .type = PFCP_IE_MAC_ADDRESSES_REMOVED, - .offset = offsetof(pfcp_ethernet_traffic_information_t, mac_addresses_removed) + .offset = offsetof(pfcp_ie_ethernet_traffic_information_t, mac_addresses_removed) }, }; @@ -6192,23 +6221,23 @@ static struct pfcp_group_ie_def pfcp_additional_monitoring_time_group[] = { [ADDITIONAL_MONITORING_TIME_MONITORING_TIME] = { .type = PFCP_IE_MONITORING_TIME, - .offset = offsetof(pfcp_additional_monitoring_time_t, monitoring_time) + .offset = offsetof(pfcp_ie_additional_monitoring_time_t, monitoring_time) }, [ADDITIONAL_MONITORING_TIME_SUBSEQUENT_VOLUME_THRESHOLD] = { .type = PFCP_IE_SUBSEQUENT_VOLUME_THRESHOLD, - .offset = offsetof(pfcp_additional_monitoring_time_t, subsequent_volume_threshold) + .offset = offsetof(pfcp_ie_additional_monitoring_time_t, subsequent_volume_threshold) }, [ADDITIONAL_MONITORING_TIME_SUBSEQUENT_TIME_THRESHOLD] = { .type = PFCP_IE_SUBSEQUENT_TIME_THRESHOLD, - .offset = offsetof(pfcp_additional_monitoring_time_t, subsequent_time_threshold) + .offset = offsetof(pfcp_ie_additional_monitoring_time_t, subsequent_time_threshold) }, [ADDITIONAL_MONITORING_TIME_SUBSEQUENT_VOLUME_QUOTA] = { .type = PFCP_IE_SUBSEQUENT_VOLUME_QUOTA, - .offset = offsetof(pfcp_additional_monitoring_time_t, subsequent_volume_quota) + .offset = offsetof(pfcp_ie_additional_monitoring_time_t, subsequent_volume_quota) }, [ADDITIONAL_MONITORING_TIME_SUBSEQUENT_TIME_QUOTA] = { .type = PFCP_IE_SUBSEQUENT_TIME_QUOTA, - .offset = offsetof(pfcp_additional_monitoring_time_t, subsequent_time_quota) + .offset = offsetof(pfcp_ie_additional_monitoring_time_t, subsequent_time_quota) }, }; @@ -6216,23 +6245,23 @@ static struct pfcp_group_ie_def pfcp_create_mar_group[] = { [CREATE_MAR_MAR_ID] = { .type = PFCP_IE_MAR_ID, - .offset = offsetof(pfcp_create_mar_t, mar_id) + .offset = offsetof(pfcp_ie_create_mar_t, mar_id) }, [CREATE_MAR_STEERING_FUNCTIONALITY] = { .type = PFCP_IE_STEERING_FUNCTIONALITY, - .offset = offsetof(pfcp_create_mar_t, steering_functionality) + .offset = offsetof(pfcp_ie_create_mar_t, steering_functionality) }, [CREATE_MAR_STEERING_MODE] = { .type = PFCP_IE_STEERING_MODE, - .offset = offsetof(pfcp_create_mar_t, steering_mode) + .offset = offsetof(pfcp_ie_create_mar_t, steering_mode) }, [CREATE_MAR_ACCESS_FORWARDING_ACTION_INFORMATION_1] = { .type = PFCP_IE_ACCESS_FORWARDING_ACTION_INFORMATION_1, - .offset = offsetof(pfcp_create_mar_t, access_forwarding_action_information_1) + .offset = offsetof(pfcp_ie_create_mar_t, access_forwarding_action_information_1) }, [CREATE_MAR_ACCESS_FORWARDING_ACTION_INFORMATION_2] = { .type = PFCP_IE_ACCESS_FORWARDING_ACTION_INFORMATION_2, - .offset = offsetof(pfcp_create_mar_t, access_forwarding_action_information_2) + .offset = offsetof(pfcp_ie_create_mar_t, access_forwarding_action_information_2) }, }; @@ -6240,19 +6269,19 @@ static struct pfcp_group_ie_def pfcp_access_forwarding_action_information_group[ { [ACCESS_FORWARDING_ACTION_INFORMATION_FAR_ID] = { .type = PFCP_IE_FAR_ID, - .offset = offsetof(pfcp_access_forwarding_action_information_t, far_id) + .offset = offsetof(pfcp_ie_access_forwarding_action_information_t, far_id) }, [ACCESS_FORWARDING_ACTION_INFORMATION_WEIGHT] = { .type = PFCP_IE_WEIGHT, - .offset = offsetof(pfcp_access_forwarding_action_information_t, weight) + .offset = offsetof(pfcp_ie_access_forwarding_action_information_t, weight) }, [ACCESS_FORWARDING_ACTION_INFORMATION_PRIORITY] = { .type = PFCP_IE_PRIORITY, - .offset = offsetof(pfcp_access_forwarding_action_information_t, priority) + .offset = offsetof(pfcp_ie_access_forwarding_action_information_t, priority) }, [ACCESS_FORWARDING_ACTION_INFORMATION_URR_ID] = { .type = PFCP_IE_URR_ID, - .offset = offsetof(pfcp_access_forwarding_action_information_t, urr_id) + .offset = offsetof(pfcp_ie_access_forwarding_action_information_t, urr_id) }, }; @@ -6260,7 +6289,7 @@ static struct pfcp_group_ie_def pfcp_remove_mar_group[] = { [REMOVE_MAR_MAR_ID] = { .type = PFCP_IE_MAR_ID, - .offset = offsetof(pfcp_remove_mar_t, mar_id) + .offset = offsetof(pfcp_ie_remove_mar_t, mar_id) }, }; @@ -6268,31 +6297,31 @@ static struct pfcp_group_ie_def pfcp_update_mar_group[] = { [UPDATE_MAR_MAR_ID] = { .type = PFCP_IE_MAR_ID, - .offset = offsetof(pfcp_update_mar_t, mar_id) + .offset = offsetof(pfcp_ie_update_mar_t, mar_id) }, [UPDATE_MAR_STEERING_FUNCTIONALITY] = { .type = PFCP_IE_STEERING_FUNCTIONALITY, - .offset = offsetof(pfcp_update_mar_t, steering_functionality) + .offset = offsetof(pfcp_ie_update_mar_t, steering_functionality) }, [UPDATE_MAR_STEERING_MODE] = { .type = PFCP_IE_STEERING_MODE, - .offset = offsetof(pfcp_update_mar_t, steering_mode) + .offset = offsetof(pfcp_ie_update_mar_t, steering_mode) }, [UPDATE_MAR_UPDATE_ACCESS_FORWARDING_ACTION_INFORMATION_1] = { .type = PFCP_IE_UPDATE_ACCESS_FORWARDING_ACTION_INFORMATION_1, - .offset = offsetof(pfcp_update_mar_t, update_access_forwarding_action_information_1) + .offset = offsetof(pfcp_ie_update_mar_t, update_access_forwarding_action_information_1) }, [UPDATE_MAR_UPDATE_ACCESS_FORWARDING_ACTION_INFORMATION_2] = { .type = PFCP_IE_UPDATE_ACCESS_FORWARDING_ACTION_INFORMATION_2, - .offset = offsetof(pfcp_update_mar_t, update_access_forwarding_action_information_2) + .offset = offsetof(pfcp_ie_update_mar_t, update_access_forwarding_action_information_2) }, [UPDATE_MAR_ACCESS_FORWARDING_ACTION_INFORMATION_1] = { .type = PFCP_IE_ACCESS_FORWARDING_ACTION_INFORMATION_1, - .offset = offsetof(pfcp_update_mar_t, access_forwarding_action_information_1) + .offset = offsetof(pfcp_ie_update_mar_t, access_forwarding_action_information_1) }, [UPDATE_MAR_ACCESS_FORWARDING_ACTION_INFORMATION_2] = { .type = PFCP_IE_ACCESS_FORWARDING_ACTION_INFORMATION_2, - .offset = offsetof(pfcp_update_mar_t, access_forwarding_action_information_2) + .offset = offsetof(pfcp_ie_update_mar_t, access_forwarding_action_information_2) }, }; @@ -6300,19 +6329,19 @@ static struct pfcp_group_ie_def pfcp_update_access_forwarding_action_information { [UPDATE_ACCESS_FORWARDING_ACTION_INFORMATION_FAR_ID] = { .type = PFCP_IE_FAR_ID, - .offset = offsetof(pfcp_update_access_forwarding_action_information_t, far_id) + .offset = offsetof(pfcp_ie_update_access_forwarding_action_information_t, far_id) }, [UPDATE_ACCESS_FORWARDING_ACTION_INFORMATION_WEIGHT] = { .type = PFCP_IE_WEIGHT, - .offset = offsetof(pfcp_update_access_forwarding_action_information_t, weight) + .offset = offsetof(pfcp_ie_update_access_forwarding_action_information_t, weight) }, [UPDATE_ACCESS_FORWARDING_ACTION_INFORMATION_PRIORITY] = { .type = PFCP_IE_PRIORITY, - .offset = offsetof(pfcp_update_access_forwarding_action_information_t, priority) + .offset = offsetof(pfcp_ie_update_access_forwarding_action_information_t, priority) }, [UPDATE_ACCESS_FORWARDING_ACTION_INFORMATION_URR_ID] = { .type = PFCP_IE_URR_ID, - .offset = offsetof(pfcp_update_access_forwarding_action_information_t, urr_id) + .offset = offsetof(pfcp_ie_update_access_forwarding_action_information_t, urr_id) }, }; @@ -6320,47 +6349,47 @@ static struct pfcp_group_ie_def pfcp_ue_ip_address_pool_group[] = { [UE_IP_ADDRESS_POOL_INFORMATION_POOL_IDENTIFY] = { .type = PFCP_IE_UE_IP_ADDRESS_POOL_IDENTITY, - .offset = offsetof(pfcp_ue_ip_address_pool_information_t, + .offset = offsetof(pfcp_ie_ue_ip_address_pool_information_t, ue_ip_address_pool_identity) }, [UE_IP_ADDRESS_POOL_INFORMATION_NETWORK_INSTANCE] = { .type = PFCP_IE_NETWORK_INSTANCE, - .offset = offsetof(pfcp_ue_ip_address_pool_information_t, + .offset = offsetof(pfcp_ie_ue_ip_address_pool_information_t, network_instance) }, [UE_IP_ADDRESS_POOL_INFORMATION_IP_VERSION] = { .type = PFCP_IE_IP_VERSION, - .offset = offsetof(pfcp_ue_ip_address_pool_information_t, + .offset = offsetof(pfcp_ie_ue_ip_address_pool_information_t, ip_version) }, [UE_IP_ADDRESS_POOL_INFORMATION_BBF_NAT_PORT_BLOCK] = { .type = PFCP_IE_BBF_NAT_PORT_BLOCK, - .vendor = VENDOR_BBF, + .vendor = PFCP_VENDOR_BBF, .is_array = true, - .offset = offsetof(pfcp_ue_ip_address_pool_information_t, + .offset = offsetof(pfcp_ie_ue_ip_address_pool_information_t, port_blocks) }, }; static u8 * -format_ip_version (u8 * s, va_list * args) +format_pfcp_ie_ip_version (u8 * s, va_list * args) { - pfcp_ip_version_t *v = va_arg (*args, pfcp_ip_version_t *); + pfcp_ie_ip_version_t *v = va_arg (*args, pfcp_ie_ip_version_t *); - s = format (s, "IPv4:%u IPv6 %u", !!(*v & IP_VERSION_4), - !!(*v & IP_VERSION_6)); + s = format (s, "IPv4:%u IPv6 %u", !!(*v & PFCP_IP_VERSION_4), + !!(*v & PFCP_IP_VERSION_6)); return s; } static int -decode_ip_version (u8 * data, u16 length, void *p) +decode_pfcp_ie_ip_version (u8 * data, u16 length, void *p) { - pfcp_ip_version_t *v = p; + pfcp_ie_ip_version_t *v = p; *v = get_u8 (data); - if (!(*v & IP_VERSION_4) && !(*v & IP_VERSION_6)) + if (!(*v & PFCP_IP_VERSION_4) && !(*v & PFCP_IP_VERSION_6)) { pfcp_debug ("PFCP: IP Version should have at least IPv4 or IPv6 bits set"); @@ -6371,11 +6400,11 @@ decode_ip_version (u8 * data, u16 length, void *p) } static int -encode_ip_version (void *p, u8 ** vec) +encode_pfcp_ie_ip_version (void *p, u8 ** vec) { - pfcp_ip_version_t *v = p; + pfcp_ie_ip_version_t *v = p; - if (!(*v & IP_VERSION_4) && !(*v & IP_VERSION_6)) + if (!(*v & PFCP_IP_VERSION_4) && !(*v & PFCP_IP_VERSION_6)) { pfcp_debug ("PFCP: IP Version should have at least IPv4 or IPv6 bits set"); @@ -6390,18 +6419,18 @@ static struct pfcp_group_ie_def pfcp_tp_error_report_group[] = { [TP_ERROR_REPORT_TP_ERROR_MESSAGE] = { .type = PFCP_IE_TP_ERROR_MESSAGE, - .vendor = VENDOR_TRAVELPING, - .offset = offsetof(pfcp_tp_error_report_t, error_message) + .vendor = PFCP_VENDOR_TRAVELPING, + .offset = offsetof(pfcp_ie_tp_error_report_t, error_message) }, [TP_ERROR_REPORT_TP_FILE_NAME] = { .type = PFCP_IE_TP_FILE_NAME, - .vendor = VENDOR_TRAVELPING, - .offset = offsetof(pfcp_tp_error_report_t, file_name) + .vendor = PFCP_VENDOR_TRAVELPING, + .offset = offsetof(pfcp_ie_tp_error_report_t, file_name) }, [TP_ERROR_REPORT_TP_LINE_NUMBER] = { .type = PFCP_IE_TP_LINE_NUMBER, - .vendor = VENDOR_TRAVELPING, - .offset = offsetof(pfcp_tp_error_report_t, line_number) + .vendor = PFCP_VENDOR_TRAVELPING, + .offset = offsetof(pfcp_ie_tp_error_report_t, line_number) }, }; @@ -6409,18 +6438,18 @@ static struct pfcp_group_ie_def pfcp_tp_created_binding_group[] = { [TP_CREATED_BINDING_NAT_PORT_BLOCK] = { .type = PFCP_IE_BBF_NAT_PORT_BLOCK, - .vendor = VENDOR_BBF, - .offset = offsetof(pfcp_tp_created_binding_t, block) + .vendor = PFCP_VENDOR_BBF, + .offset = offsetof(pfcp_ie_tp_created_binding_t, block) }, [TP_CREATED_BINDING_NAT_OUTSIDE_ADDRESS] = { .type = PFCP_IE_BBF_NAT_OUTSIDE_ADDRESS, - .vendor = VENDOR_BBF, - .offset = offsetof(pfcp_tp_created_binding_t, outside_addr) + .vendor = PFCP_VENDOR_BBF, + .offset = offsetof(pfcp_ie_tp_created_binding_t, outside_addr) }, [TP_CREATED_BINDING_NAT_EXTERNAL_PORT_RANGE] = { .type = PFCP_IE_BBF_NAT_EXTERNAL_PORT_RANGE, - .vendor = VENDOR_BBF, - .offset = offsetof(pfcp_tp_created_binding_t, port_range) + .vendor = PFCP_VENDOR_BBF, + .offset = offsetof(pfcp_ie_tp_created_binding_t, port_range) }, }; @@ -6429,20 +6458,20 @@ static struct pfcp_group_ie_def pfcp_tp_created_binding_group[] = #define SIMPLE_IE(IE, TYPE, NAME) \ [IE] = { \ .name = NAME, \ - .length = sizeof(pfcp_ ## TYPE ## _t), \ - .format = format_ ## TYPE, \ - .decode = decode_ ## TYPE, \ - .encode = encode_ ## TYPE, \ + .length = sizeof(pfcp_ie_ ## TYPE ## _t), \ + .format = format_pfcp_ie_ ## TYPE, \ + .decode = decode_pfcp_ie_ ## TYPE, \ + .encode = encode_pfcp_ie_ ## TYPE, \ } #define SIMPLE_IE_FREE(IE, TYPE, NAME) \ [IE] = { \ .name = NAME, \ - .length = sizeof(pfcp_ ## TYPE ## _t), \ - .format = format_ ## TYPE, \ - .decode = decode_ ## TYPE, \ - .encode = encode_ ## TYPE, \ - .free = free_ ## TYPE, \ + .length = sizeof(pfcp_ie_ ## TYPE ## _t), \ + .format = format_pfcp_ie_ ## TYPE, \ + .decode = decode_pfcp_ie_ ## TYPE, \ + .encode = encode_pfcp_ie_ ## TYPE, \ + .free = free_pfcp_ie_ ## TYPE, \ } static struct pfcp_ie_def tgpp_specs[] = @@ -6450,7 +6479,7 @@ static struct pfcp_ie_def tgpp_specs[] = [PFCP_IE_CREATE_PDR] = { .name = "Create PDR", - .length = sizeof(pfcp_create_pdr_t), + .length = sizeof(pfcp_ie_create_pdr_t), .mandatory = (BIT(CREATE_PDR_PDR_ID) | BIT(CREATE_PDR_PRECEDENCE) | BIT(CREATE_PDR_PDI)), @@ -6460,7 +6489,7 @@ static struct pfcp_ie_def tgpp_specs[] = [PFCP_IE_PDI] = { .name = "PDI", - .length = sizeof(pfcp_pdi_t), + .length = sizeof(pfcp_ie_pdi_t), .mandatory = BIT(PDI_SOURCE_INTERFACE), .size = ARRAY_LEN(pfcp_pdi_group), .group = pfcp_pdi_group, @@ -6468,7 +6497,7 @@ static struct pfcp_ie_def tgpp_specs[] = [PFCP_IE_CREATE_FAR] = { .name = "Create FAR", - .length = sizeof(pfcp_create_far_t), + .length = sizeof(pfcp_ie_create_far_t), .mandatory = (BIT(CREATE_FAR_FAR_ID) | BIT(CREATE_FAR_APPLY_ACTION)), .size = ARRAY_LEN(pfcp_create_far_group), @@ -6477,7 +6506,7 @@ static struct pfcp_ie_def tgpp_specs[] = [PFCP_IE_FORWARDING_PARAMETERS] = { .name = "Forwarding Parameters", - .length = sizeof(pfcp_forwarding_parameters_t), + .length = sizeof(pfcp_ie_forwarding_parameters_t), .mandatory = BIT(FORWARDING_PARAMETERS_DESTINATION_INTERFACE), .size = ARRAY_LEN(pfcp_forwarding_parameters_group), .group = pfcp_forwarding_parameters_group, @@ -6485,7 +6514,7 @@ static struct pfcp_ie_def tgpp_specs[] = [PFCP_IE_DUPLICATING_PARAMETERS] = { .name = "Duplicating Parameters", - .length = sizeof(pfcp_duplicating_parameters_t), + .length = sizeof(pfcp_ie_duplicating_parameters_t), .mandatory = BIT(DUPLICATING_PARAMETERS_DESTINATION_INTERFACE), .size = ARRAY_LEN(pfcp_duplicating_parameters_group), .group = pfcp_duplicating_parameters_group, @@ -6493,7 +6522,7 @@ static struct pfcp_ie_def tgpp_specs[] = [PFCP_IE_CREATE_URR] = { .name = "Create URR", - .length = sizeof(pfcp_create_urr_t), + .length = sizeof(pfcp_ie_create_urr_t), .mandatory = (BIT(CREATE_URR_URR_ID) | BIT(CREATE_URR_MEASUREMENT_METHOD) | BIT(CREATE_URR_REPORTING_TRIGGERS)), @@ -6503,7 +6532,7 @@ static struct pfcp_ie_def tgpp_specs[] = [PFCP_IE_CREATE_QER] = { .name = "Create QER", - .length = sizeof(pfcp_create_qer_t), + .length = sizeof(pfcp_ie_create_qer_t), .mandatory = (BIT(CREATE_QER_QER_ID) | BIT(CREATE_QER_GATE_STATUS)), .size = ARRAY_LEN(pfcp_create_qer_group), @@ -6512,7 +6541,7 @@ static struct pfcp_ie_def tgpp_specs[] = [PFCP_IE_CREATED_PDR] = { .name = "Created PDR", - .length = sizeof(pfcp_created_pdr_t), + .length = sizeof(pfcp_ie_created_pdr_t), .mandatory = BIT(CREATED_PDR_PDR_ID), .size = ARRAY_LEN(pfcp_created_pdr_group), .group = pfcp_created_pdr_group, @@ -6520,7 +6549,7 @@ static struct pfcp_ie_def tgpp_specs[] = [PFCP_IE_UPDATE_PDR] = { .name = "Update PDR", - .length = sizeof(pfcp_update_pdr_t), + .length = sizeof(pfcp_ie_update_pdr_t), .mandatory = BIT(UPDATE_PDR_PDR_ID), .size = ARRAY_LEN(pfcp_update_pdr_group), .group = pfcp_update_pdr_group, @@ -6528,7 +6557,7 @@ static struct pfcp_ie_def tgpp_specs[] = [PFCP_IE_UPDATE_FAR] = { .name = "Update FAR", - .length = sizeof(pfcp_update_far_t), + .length = sizeof(pfcp_ie_update_far_t), .mandatory = BIT(UPDATE_FAR_FAR_ID), .size = ARRAY_LEN(pfcp_update_far_group), .group = pfcp_update_far_group, @@ -6536,14 +6565,14 @@ static struct pfcp_ie_def tgpp_specs[] = [PFCP_IE_UPDATE_FORWARDING_PARAMETERS] = { .name = "Update Forwarding Parameters", - .length = sizeof(pfcp_update_forwarding_parameters_t), + .length = sizeof(pfcp_ie_update_forwarding_parameters_t), .size = ARRAY_LEN(pfcp_update_forwarding_parameters_group), .group = pfcp_update_forwarding_parameters_group, }, [PFCP_IE_UPDATE_BAR_RESPONSE] = { .name = "Update BAR Response", - .length = sizeof(pfcp_update_bar_response_t), + .length = sizeof(pfcp_ie_update_bar_response_t), .mandatory = BIT(UPDATE_BAR_RESPONSE_BAR_ID), .size = ARRAY_LEN(pfcp_update_bar_response_group), .group = pfcp_update_bar_response_group, @@ -6551,7 +6580,7 @@ static struct pfcp_ie_def tgpp_specs[] = [PFCP_IE_UPDATE_URR] = { .name = "Update URR", - .length = sizeof(pfcp_update_urr_t), + .length = sizeof(pfcp_ie_update_urr_t), .mandatory = BIT(UPDATE_URR_URR_ID), .size = ARRAY_LEN(pfcp_update_urr_group), .group = pfcp_update_urr_group, @@ -6559,7 +6588,7 @@ static struct pfcp_ie_def tgpp_specs[] = [PFCP_IE_UPDATE_QER] = { .name = "Update QER", - .length = sizeof(pfcp_update_qer_t), + .length = sizeof(pfcp_ie_update_qer_t), .mandatory = BIT(UPDATE_QER_QER_ID), .size = ARRAY_LEN(pfcp_update_qer_group), .group = pfcp_update_qer_group, @@ -6567,7 +6596,7 @@ static struct pfcp_ie_def tgpp_specs[] = [PFCP_IE_REMOVE_PDR] = { .name = "Remove PDR", - .length = sizeof(pfcp_remove_pdr_t), + .length = sizeof(pfcp_ie_remove_pdr_t), .mandatory = BIT(REMOVE_PDR_PDR_ID), .size = ARRAY_LEN(pfcp_remove_pdr_group), .group = pfcp_remove_pdr_group, @@ -6575,7 +6604,7 @@ static struct pfcp_ie_def tgpp_specs[] = [PFCP_IE_REMOVE_FAR] = { .name = "Remove FAR", - .length = sizeof(pfcp_remove_far_t), + .length = sizeof(pfcp_ie_remove_far_t), .mandatory = BIT(REMOVE_FAR_FAR_ID), .size = ARRAY_LEN(pfcp_remove_far_group), .group = pfcp_remove_far_group, @@ -6583,7 +6612,7 @@ static struct pfcp_ie_def tgpp_specs[] = [PFCP_IE_REMOVE_URR] = { .name = "Remove URR", - .length = sizeof(pfcp_remove_urr_t), + .length = sizeof(pfcp_ie_remove_urr_t), .mandatory = BIT(REMOVE_URR_URR_ID), .size = ARRAY_LEN(pfcp_remove_urr_group), .group = pfcp_remove_urr_group, @@ -6591,7 +6620,7 @@ static struct pfcp_ie_def tgpp_specs[] = [PFCP_IE_REMOVE_QER] = { .name = "Remove QER", - .length = sizeof(pfcp_remove_qer_t), + .length = sizeof(pfcp_ie_remove_qer_t), .mandatory = BIT(REMOVE_QER_QER_ID), .size = ARRAY_LEN(pfcp_remove_qer_group), .group = pfcp_remove_qer_group, @@ -6640,7 +6669,7 @@ static struct pfcp_ie_def tgpp_specs[] = [PFCP_IE_LOAD_CONTROL_INFORMATION] = { .name = "Load Control Information", - .length = sizeof(pfcp_load_control_information_t), + .length = sizeof(pfcp_ie_load_control_information_t), .mandatory = (BIT(LOAD_CONTROL_INFORMATION_SEQUENCE_NUMBER) | BIT(LOAD_CONTROL_INFORMATION_METRIC)), .size = ARRAY_LEN(pfcp_load_control_information_group), @@ -6651,7 +6680,7 @@ static struct pfcp_ie_def tgpp_specs[] = [PFCP_IE_OVERLOAD_CONTROL_INFORMATION] = { .name = "Overload Control Information", - .length = sizeof(pfcp_overload_control_information_t), + .length = sizeof(pfcp_ie_overload_control_information_t), .mandatory = (BIT(OVERLOAD_CONTROL_INFORMATION_SEQUENCE_NUMBER) | BIT(OVERLOAD_CONTROL_INFORMATION_METRIC) | BIT(OVERLOAD_CONTROL_INFORMATION_TIMER)), @@ -6664,7 +6693,7 @@ static struct pfcp_ie_def tgpp_specs[] = [PFCP_IE_APPLICATION_ID_PFDS] = { .name = "Application ID PFDs", - .length = sizeof(pfcp_application_id_pfds_t), + .length = sizeof(pfcp_ie_application_id_pfds_t), .mandatory = BIT(APPLICATION_ID_PFDS_APPLICATION_ID), .size = ARRAY_LEN(pfcp_application_id_pfds_group), .group = pfcp_application_id_pfds_group, @@ -6672,7 +6701,7 @@ static struct pfcp_ie_def tgpp_specs[] = [PFCP_IE_PFD] = { .name = "PFD", - .length = sizeof(pfcp_pfd_t), + .length = sizeof(pfcp_ie_pfd_t), .mandatory = BIT(PFD_PFD_CONTENTS), .size = ARRAY_LEN(pfcp_pfd_group), .group = pfcp_pfd_group, @@ -6688,7 +6717,7 @@ static struct pfcp_ie_def tgpp_specs[] = [PFCP_IE_APPLICATION_DETECTION_INFORMATION] = { .name = "Application Detection Information", - .length = sizeof(pfcp_application_detection_information_t), + .length = sizeof(pfcp_ie_application_detection_information_t), .mandatory = BIT(APPLICATION_DETECTION_INFORMATION_APPLICATION_ID), .size = ARRAY_LEN(pfcp_application_detection_information_group), .group = pfcp_application_detection_information_group, @@ -6705,7 +6734,7 @@ static struct pfcp_ie_def tgpp_specs[] = [PFCP_IE_QUERY_URR] = { .name = "Query URR", - .length = sizeof(pfcp_query_urr_t), + .length = sizeof(pfcp_ie_query_urr_t), .mandatory = BIT(QUERY_URR_URR_ID), .size = ARRAY_LEN(pfcp_query_urr_group), .group = pfcp_query_urr_group, @@ -6713,7 +6742,7 @@ static struct pfcp_ie_def tgpp_specs[] = [PFCP_IE_USAGE_REPORT_SMR] = { .name = "Usage Report SMR", - .length = sizeof(pfcp_usage_report_t), + .length = sizeof(pfcp_ie_usage_report_t), .mandatory = (BIT(USAGE_REPORT_URR_ID) | BIT(USAGE_REPORT_UR_SEQN) | BIT(USAGE_REPORT_USAGE_REPORT_TRIGGER)), @@ -6723,7 +6752,7 @@ static struct pfcp_ie_def tgpp_specs[] = [PFCP_IE_USAGE_REPORT_SDR] = { .name = "Usage Report SDR", - .length = sizeof(pfcp_usage_report_t), + .length = sizeof(pfcp_ie_usage_report_t), .mandatory = (BIT(USAGE_REPORT_URR_ID) | BIT(USAGE_REPORT_UR_SEQN) | BIT(USAGE_REPORT_USAGE_REPORT_TRIGGER)), @@ -6733,7 +6762,7 @@ static struct pfcp_ie_def tgpp_specs[] = [PFCP_IE_USAGE_REPORT_SRR] = { .name = "Usage Report SRR", - .length = sizeof(pfcp_usage_report_t), + .length = sizeof(pfcp_ie_usage_report_t), .mandatory = (BIT(USAGE_REPORT_URR_ID) | BIT(USAGE_REPORT_UR_SEQN) | BIT(USAGE_REPORT_USAGE_REPORT_TRIGGER)), @@ -6745,7 +6774,7 @@ static struct pfcp_ie_def tgpp_specs[] = [PFCP_IE_DOWNLINK_DATA_REPORT] = { .name = "Downlink Data Report", - .length = sizeof(pfcp_downlink_data_report_t), + .length = sizeof(pfcp_ie_downlink_data_report_t), .mandatory = BIT(DOWNLINK_DATA_REPORT_PDR_ID), .size = ARRAY_LEN(pfcp_downlink_data_report_group), .group = pfcp_downlink_data_report_group, @@ -6754,7 +6783,7 @@ static struct pfcp_ie_def tgpp_specs[] = [PFCP_IE_CREATE_BAR] = { .name = "Create BAR", - .length = sizeof(pfcp_create_bar_t), + .length = sizeof(pfcp_ie_create_bar_t), .mandatory = BIT(CREATE_BAR_BAR_ID), .size = ARRAY_LEN(pfcp_create_bar_group), .group = pfcp_create_bar_group, @@ -6762,7 +6791,7 @@ static struct pfcp_ie_def tgpp_specs[] = [PFCP_IE_UPDATE_BAR_REQUEST] = { .name = "Update BAR Request", - .length = sizeof(pfcp_update_bar_request_t), + .length = sizeof(pfcp_ie_update_bar_request_t), .mandatory = BIT(UPDATE_BAR_REQUEST_BAR_ID), .size = ARRAY_LEN(pfcp_update_bar_request_group), .group = pfcp_update_bar_request_group, @@ -6770,7 +6799,7 @@ static struct pfcp_ie_def tgpp_specs[] = [PFCP_IE_REMOVE_BAR] = { .name = "Remove BAR", - .length = sizeof(pfcp_remove_bar_t), + .length = sizeof(pfcp_ie_remove_bar_t), .mandatory = BIT(REMOVE_BAR_BAR_ID), .size = ARRAY_LEN(pfcp_remove_bar_group), .group = pfcp_remove_bar_group, @@ -6790,7 +6819,7 @@ static struct pfcp_ie_def tgpp_specs[] = [PFCP_IE_ERROR_INDICATION_REPORT] = { .name = "Error Indication Report", - .length = sizeof(pfcp_error_indication_report_t), + .length = sizeof(pfcp_ie_error_indication_report_t), .mandatory = BIT(ERROR_INDICATION_REPORT_F_TEID), .size = ARRAY_LEN(pfcp_error_indication_report_group), .group = pfcp_error_indication_report_group, @@ -6801,7 +6830,7 @@ static struct pfcp_ie_def tgpp_specs[] = [PFCP_IE_USER_PLANE_PATH_FAILURE_REPORT] = { .name = "User Plane Path Failure Report", - .length = sizeof(pfcp_user_plane_path_failure_report_t), + .length = sizeof(pfcp_ie_user_plane_path_failure_report_t), .mandatory = BIT(USER_PLANE_PATH_FAILURE_REPORT_REMOTE_GTP_U_PEER), .size = ARRAY_LEN(pfcp_user_plane_path_failure_report_group), .group = pfcp_user_plane_path_failure_report_group, @@ -6811,7 +6840,7 @@ static struct pfcp_ie_def tgpp_specs[] = [PFCP_IE_UPDATE_DUPLICATING_PARAMETERS] = { .name = "Update Duplicating Parameters", - .length = sizeof(pfcp_update_duplicating_parameters_t), + .length = sizeof(pfcp_ie_update_duplicating_parameters_t), .size = ARRAY_LEN(pfcp_update_duplicating_parameters_group), .group = pfcp_update_duplicating_parameters_group, }, @@ -6836,7 +6865,7 @@ static struct pfcp_ie_def tgpp_specs[] = [PFCP_IE_AGGREGATED_URRS] = { .name = "Aggregated URRs", - .length = sizeof(pfcp_aggregated_urrs_t), + .length = sizeof(pfcp_ie_aggregated_urrs_t), .mandatory = (BIT(AGGREGATED_URRS_AGGREGATED_URR_ID) | BIT(AGGREGATED_URRS_MULTIPLIER)), .size = ARRAY_LEN(pfcp_aggregated_urrs_group), @@ -6855,7 +6884,7 @@ static struct pfcp_ie_def tgpp_specs[] = [PFCP_IE_CREATE_TRAFFIC_ENDPOINT] = { .name = "Create Traffic Endpoint", - .length = sizeof(pfcp_create_traffic_endpoint_t), + .length = sizeof(pfcp_ie_create_traffic_endpoint_t), .mandatory = BIT(CREATE_TRAFFIC_ENDPOINT_TRAFFIC_ENDPOINT_ID), .size = ARRAY_LEN(pfcp_create_traffic_endpoint_group), .group = pfcp_create_traffic_endpoint_group, @@ -6863,7 +6892,7 @@ static struct pfcp_ie_def tgpp_specs[] = [PFCP_IE_CREATED_TRAFFIC_ENDPOINT] = { .name = "Created Traffic Endpoint", - .length = sizeof(pfcp_created_traffic_endpoint_t), + .length = sizeof(pfcp_ie_created_traffic_endpoint_t), .mandatory = BIT(CREATED_TRAFFIC_ENDPOINT_TRAFFIC_ENDPOINT_ID), .size = ARRAY_LEN(pfcp_created_traffic_endpoint_group), .group = pfcp_created_traffic_endpoint_group, @@ -6871,7 +6900,7 @@ static struct pfcp_ie_def tgpp_specs[] = [PFCP_IE_UPDATE_TRAFFIC_ENDPOINT] = { .name = "Update Traffic Endpoint", - .length = sizeof(pfcp_update_traffic_endpoint_t), + .length = sizeof(pfcp_ie_update_traffic_endpoint_t), .mandatory = BIT(UPDATE_TRAFFIC_ENDPOINT_TRAFFIC_ENDPOINT_ID), .size = ARRAY_LEN(pfcp_update_traffic_endpoint_group), .group = pfcp_update_traffic_endpoint_group, @@ -6879,7 +6908,7 @@ static struct pfcp_ie_def tgpp_specs[] = [PFCP_IE_REMOVE_TRAFFIC_ENDPOINT] = { .name = "Remove Traffic Endpoint", - .length = sizeof(pfcp_remove_traffic_endpoint_t), + .length = sizeof(pfcp_ie_remove_traffic_endpoint_t), .mandatory = BIT(REMOVE_TRAFFIC_ENDPOINT_TRAFFIC_ENDPOINT_ID), .size = ARRAY_LEN(pfcp_remove_traffic_endpoint_group), .group = pfcp_remove_traffic_endpoint_group, @@ -6888,17 +6917,11 @@ static struct pfcp_ie_def tgpp_specs[] = [PFCP_IE_ETHERNET_PACKET_FILTER] = { .name = "Ethernet Packet Filter", - .length = sizeof(pfcp_ethernet_packet_filter_t), + .length = sizeof(pfcp_ie_ethernet_packet_filter_t), .size = ARRAY_LEN(pfcp_ethernet_packet_filter_group), .group = pfcp_ethernet_packet_filter_group, }, - [PFCP_IE_MAC_ADDRESS] = { - .name = "MAC address", - .length = sizeof(pfcp_mac_address_t), - .format = format_pfcp_mac_address, - .decode = decode_pfcp_mac_address, - .encode = encode_pfcp_mac_address, - }, + SIMPLE_IE(PFCP_IE_MAC_ADDRESS, mac_address, "MAC address"), SIMPLE_IE(PFCP_IE_C_TAG, c_tag, "C-TAG"), SIMPLE_IE(PFCP_IE_S_TAG, s_tag, "S-TAG"), SIMPLE_IE(PFCP_IE_ETHERTYPE, ethertype, "Ethertype"), @@ -6914,7 +6937,7 @@ static struct pfcp_ie_def tgpp_specs[] = [PFCP_IE_ETHERNET_TRAFFIC_INFORMATION] = { .name = "Ethernet Traffic Information", - .length = sizeof(pfcp_ethernet_traffic_information_t), + .length = sizeof(pfcp_ie_ethernet_traffic_information_t), .size = ARRAY_LEN(pfcp_ethernet_traffic_information_group), .group = pfcp_ethernet_traffic_information_group, }, @@ -6927,7 +6950,7 @@ static struct pfcp_ie_def tgpp_specs[] = [PFCP_IE_ADDITIONAL_MONITORING_TIME] = { .name = "Additional Monitoring Time", - .length = sizeof(pfcp_additional_monitoring_time_t), + .length = sizeof(pfcp_ie_additional_monitoring_time_t), .size = ARRAY_LEN(pfcp_additional_monitoring_time_group), .group = pfcp_additional_monitoring_time_group, }, @@ -6951,35 +6974,35 @@ static struct pfcp_ie_def tgpp_specs[] = [PFCP_IE_CREATE_MAR] = { .name = "Create MAR", - .length = sizeof(pfcp_create_mar_t), + .length = sizeof(pfcp_ie_create_mar_t), .size = ARRAY_LEN(pfcp_create_mar_group), .group = pfcp_create_mar_group, }, [PFCP_IE_ACCESS_FORWARDING_ACTION_INFORMATION_1] = { .name = "Access Forwarding Action Information 1", - .length = sizeof(pfcp_access_forwarding_action_information_t), + .length = sizeof(pfcp_ie_access_forwarding_action_information_t), .size = ARRAY_LEN(pfcp_access_forwarding_action_information_group), .group = pfcp_access_forwarding_action_information_group, }, [PFCP_IE_ACCESS_FORWARDING_ACTION_INFORMATION_2] = { .name = "Access Forwarding Action Information 2", - .length = sizeof(pfcp_access_forwarding_action_information_t), + .length = sizeof(pfcp_ie_access_forwarding_action_information_t), .size = ARRAY_LEN(pfcp_access_forwarding_action_information_group), .group = pfcp_access_forwarding_action_information_group, }, [PFCP_IE_REMOVE_MAR] = { .name = "Remove MAR", - .length = sizeof(pfcp_remove_mar_t), + .length = sizeof(pfcp_ie_remove_mar_t), .size = ARRAY_LEN(pfcp_remove_mar_group), .group = pfcp_remove_mar_group, }, [PFCP_IE_UPDATE_MAR] = { .name = "Update MAR", - .length = sizeof(pfcp_update_mar_t), + .length = sizeof(pfcp_ie_update_mar_t), .size = ARRAY_LEN(pfcp_update_mar_group), .group = pfcp_update_mar_group, }, @@ -6991,14 +7014,14 @@ static struct pfcp_ie_def tgpp_specs[] = [PFCP_IE_UPDATE_ACCESS_FORWARDING_ACTION_INFORMATION_1] = { .name = "Update Access Forwarding Action Information 1", - .length = sizeof(pfcp_update_access_forwarding_action_information_t), + .length = sizeof(pfcp_ie_update_access_forwarding_action_information_t), .size = ARRAY_LEN(pfcp_update_access_forwarding_action_information_group), .group = pfcp_update_access_forwarding_action_information_group, }, [PFCP_IE_UPDATE_ACCESS_FORWARDING_ACTION_INFORMATION_2] = { .name = "Update Access Forwarding Action Information 2", - .length = sizeof(pfcp_update_access_forwarding_action_information_t), + .length = sizeof(pfcp_ie_update_access_forwarding_action_information_t), .size = ARRAY_LEN(pfcp_update_access_forwarding_action_information_group), .group = pfcp_update_access_forwarding_action_information_group, }, @@ -7009,7 +7032,7 @@ static struct pfcp_ie_def tgpp_specs[] = [PFCP_IE_UE_IP_ADDRESS_POOL_INFORMATION] = { .name = "UE IP Address Pool Information", - .length = sizeof(pfcp_ue_ip_address_pool_information_t), + .length = sizeof(pfcp_ie_ue_ip_address_pool_information_t), .size = ARRAY_LEN(pfcp_ue_ip_address_pool_group), .group = (pfcp_ue_ip_address_pool_group), }, @@ -7026,7 +7049,7 @@ static struct pfcp_ie_def vendor_tp_specs[] = [PFCP_IE_TP_ERROR_REPORT] = { .name = "TP: Error Report", - .length = sizeof(pfcp_tp_error_report_t), + .length = sizeof(pfcp_ie_tp_error_report_t), .mandatory = BIT(TP_ERROR_REPORT_TP_ERROR_MESSAGE), .size = ARRAY_LEN(pfcp_tp_error_report_group), .group = pfcp_tp_error_report_group, @@ -7034,7 +7057,7 @@ static struct pfcp_ie_def vendor_tp_specs[] = [PFCP_IE_TP_CREATED_NAT_BINDING] = { .name = "TP: Created Binding", - .length = sizeof(pfcp_tp_created_binding_t), + .length = sizeof(pfcp_ie_tp_created_binding_t), .size = ARRAY_LEN(pfcp_tp_created_binding_group), .group = pfcp_tp_created_binding_group, }, @@ -7068,14 +7091,14 @@ format_pfcp_ie (u8 * s, va_list * args) type &= ~0x8000; - if (vendor == VENDOR_BBF && + if (vendor == PFCP_VENDOR_BBF && type < ARRAY_LEN (vendor_bbf_specs) && vendor_bbf_specs[type].name) { return format (s, "IE: %s (%d:%d), Length: %d.", vendor_bbf_specs[type].name, vendor, type, clib_net_to_host_u16 (ie->length)); } - else if (vendor == VENDOR_TRAVELPING && + else if (vendor == PFCP_VENDOR_TRAVELPING && type < ARRAY_LEN (vendor_tp_specs) && vendor_tp_specs[type].name) { return format (s, "IE: %s (%d:%d), Length: %d.", @@ -7116,7 +7139,7 @@ static struct pfcp_group_ie_def pfcp_simple_response_group[] = }, [PFCP_RESPONSE_TP_ERROR_REPORT] = { .type = PFCP_IE_TP_ERROR_REPORT, - .vendor = VENDOR_TRAVELPING, + .vendor = PFCP_VENDOR_TRAVELPING, .offset = offsetof(pfcp_simple_response_t, response.tp_error_report) }, }; @@ -7125,7 +7148,7 @@ static struct pfcp_group_ie_def pfcp_heartbeat_request_group[] = { [HEARTBEAT_REQUEST_RECOVERY_TIME_STAMP] = { .type = PFCP_IE_RECOVERY_TIME_STAMP, - .offset = offsetof(pfcp_heartbeat_request_t, recovery_time_stamp) + .offset = offsetof(pfcp_msg_heartbeat_request_t, recovery_time_stamp) }, }; @@ -7134,7 +7157,7 @@ static struct pfcp_group_ie_def pfcp_pfd_management_request_group[] = [PFD_MANAGEMENT_REQUEST_APPLICATION_ID_PFDS] = { .type = PFCP_IE_APPLICATION_ID_PFDS, .is_array = true, - .offset = offsetof(pfcp_pfd_management_request_t, application_id_pfds) + .offset = offsetof(pfcp_msg_pfd_management_request_t, application_id_pfds) }, }; @@ -7142,43 +7165,43 @@ static struct pfcp_group_ie_def pfcp_association_setup_request_group[] = { [ASSOCIATION_SETUP_REQUEST_NODE_ID] = { .type = PFCP_IE_NODE_ID, - .offset = offsetof(pfcp_association_setup_request_t, request.node_id) + .offset = offsetof(pfcp_msg_association_setup_request_t, request.node_id) }, [ASSOCIATION_SETUP_REQUEST_RECOVERY_TIME_STAMP] = { .type = PFCP_IE_RECOVERY_TIME_STAMP, - .offset = offsetof(pfcp_association_setup_request_t, recovery_time_stamp) + .offset = offsetof(pfcp_msg_association_setup_request_t, recovery_time_stamp) }, [ASSOCIATION_SETUP_REQUEST_CP_FUNCTION_FEATURES] = { .type = PFCP_IE_CP_FUNCTION_FEATURES, - .offset = offsetof(pfcp_association_setup_request_t, cp_function_features) + .offset = offsetof(pfcp_msg_association_setup_request_t, cp_function_features) }, [ASSOCIATION_SETUP_REQUEST_UP_FUNCTION_FEATURES] = { .type = PFCP_IE_UP_FUNCTION_FEATURES, - .offset = offsetof(pfcp_association_setup_request_t, up_function_features) + .offset = offsetof(pfcp_msg_association_setup_request_t, up_function_features) }, [ASSOCIATION_SETUP_REQUEST_USER_PLANE_IP_RESOURCE_INFORMATION] = { .type = PFCP_IE_USER_PLANE_IP_RESOURCE_INFORMATION, .is_array = true, - .offset = offsetof(pfcp_association_setup_request_t, user_plane_ip_resource_information) + .offset = offsetof(pfcp_msg_association_setup_request_t, user_plane_ip_resource_information) }, [ASSOCIATION_SETUP_REQUEST_TP_BUILD_ID] = { .type = PFCP_IE_TP_BUILD_ID, - .vendor = VENDOR_TRAVELPING, - .offset = offsetof(pfcp_association_setup_request_t, tp_build_id) + .vendor = PFCP_VENDOR_TRAVELPING, + .offset = offsetof(pfcp_msg_association_setup_request_t, tp_build_id) }, [ASSOCIATION_SETUP_REQUEST_UE_IP_ADDRESS_POOL_INFORMATION] = { .type = PFCP_IE_UE_IP_ADDRESS_POOL_INFORMATION, .is_array = true, - .offset = offsetof(pfcp_association_setup_request_t, ue_ip_address_pool_information) + .offset = offsetof(pfcp_msg_association_setup_request_t, ue_ip_address_pool_information) }, [ASSOCIATION_SETUP_REQUEST_ALTERNATIVE_SMF_IP_ADDRESS] = { .type = PFCP_IE_ALTERNATIVE_SMF_IP_ADDRESS, .is_array = true, - .offset = offsetof(pfcp_association_setup_request_t, alternative_smf_ip_address) + .offset = offsetof(pfcp_msg_association_setup_request_t, alternative_smf_ip_address) }, [ASSOCIATION_SETUP_REQUEST_SMF_SET_ID] = { .type = PFCP_IE_SMF_SET_ID, - .offset = offsetof(pfcp_association_setup_request_t, smf_set_id) + .offset = offsetof(pfcp_msg_association_setup_request_t, smf_set_id) }, }; @@ -7186,52 +7209,52 @@ static struct pfcp_group_ie_def pfcp_association_setup_response_group[] = { [ASSOCIATION_PROCEDURE_RESPONSE_NODE_ID] = { .type = PFCP_IE_NODE_ID, - .offset = offsetof(pfcp_association_procedure_response_t, node_id) + .offset = offsetof(pfcp_msg_association_procedure_response_t, node_id) }, [ASSOCIATION_PROCEDURE_RESPONSE_CAUSE] = { .type = PFCP_IE_CAUSE, - .offset = offsetof(pfcp_association_procedure_response_t, cause) + .offset = offsetof(pfcp_msg_association_procedure_response_t, cause) }, [ASSOCIATION_PROCEDURE_RESPONSE_TP_ERROR_REPORT] = { .type = PFCP_IE_TP_ERROR_REPORT, - .vendor = VENDOR_TRAVELPING, - .offset = offsetof(pfcp_association_procedure_response_t, tp_error_report) + .vendor = PFCP_VENDOR_TRAVELPING, + .offset = offsetof(pfcp_msg_association_procedure_response_t, tp_error_report) }, [ASSOCIATION_PROCEDURE_RESPONSE_RECOVERY_TIME_STAMP] = { .type = PFCP_IE_RECOVERY_TIME_STAMP, - .offset = offsetof(pfcp_association_procedure_response_t, recovery_time_stamp) + .offset = offsetof(pfcp_msg_association_procedure_response_t, recovery_time_stamp) }, [ASSOCIATION_PROCEDURE_RESPONSE_CP_FUNCTION_FEATURES] = { .type = PFCP_IE_CP_FUNCTION_FEATURES, - .offset = offsetof(pfcp_association_procedure_response_t, cp_function_features) + .offset = offsetof(pfcp_msg_association_procedure_response_t, cp_function_features) }, [ASSOCIATION_PROCEDURE_RESPONSE_UP_FUNCTION_FEATURES] = { .type = PFCP_IE_UP_FUNCTION_FEATURES, - .offset = offsetof(pfcp_association_procedure_response_t, up_function_features) + .offset = offsetof(pfcp_msg_association_procedure_response_t, up_function_features) }, [ASSOCIATION_PROCEDURE_RESPONSE_BBF_UP_FUNCTION_FEATURES] = { .type = PFCP_IE_BBF_UP_FUNCTION_FEATURES, - .vendor = VENDOR_BBF, - .offset = offsetof(pfcp_association_procedure_response_t, bbf_up_function_features) + .vendor = PFCP_VENDOR_BBF, + .offset = offsetof(pfcp_msg_association_procedure_response_t, bbf_up_function_features) }, [ASSOCIATION_PROCEDURE_RESPONSE_USER_PLANE_IP_RESOURCE_INFORMATION] = { .type = PFCP_IE_USER_PLANE_IP_RESOURCE_INFORMATION, .is_array = true, - .offset = offsetof(pfcp_association_procedure_response_t, user_plane_ip_resource_information) + .offset = offsetof(pfcp_msg_association_procedure_response_t, user_plane_ip_resource_information) }, [ASSOCIATION_PROCEDURE_RESPONSE_TP_BUILD_ID] = { .type = PFCP_IE_TP_BUILD_ID, - .vendor = VENDOR_TRAVELPING, - .offset = offsetof(pfcp_association_procedure_response_t, tp_build_id) + .vendor = PFCP_VENDOR_TRAVELPING, + .offset = offsetof(pfcp_msg_association_procedure_response_t, tp_build_id) }, [ASSOCIATION_PROCEDURE_RESPONSE_UE_IP_ADDRESS_POOL_INFORMATION] = { .type = PFCP_IE_UE_IP_ADDRESS_POOL_INFORMATION, .is_array = true, - .offset = offsetof(pfcp_association_procedure_response_t, ue_ip_address_pool_information) + .offset = offsetof(pfcp_msg_association_procedure_response_t, ue_ip_address_pool_information) }, [ASSOCIATION_PROCEDURE_RESPONSE_SMF_SET_ID] = { .type = PFCP_IE_SMF_SET_ID, - .offset = offsetof(pfcp_association_procedure_response_t, smf_set_id) + .offset = offsetof(pfcp_msg_association_procedure_response_t, smf_set_id) }, }; @@ -7239,46 +7262,46 @@ static struct pfcp_group_ie_def pfcp_association_update_request_group[] = { [ASSOCIATION_UPDATE_REQUEST_NODE_ID] = { .type = PFCP_IE_NODE_ID, - .offset = offsetof(pfcp_association_update_request_t, request.node_id) + .offset = offsetof(pfcp_msg_association_update_request_t, request.node_id) }, [ASSOCIATION_UPDATE_REQUEST_CP_FUNCTION_FEATURES] = { .type = PFCP_IE_CP_FUNCTION_FEATURES, - .offset = offsetof(pfcp_association_update_request_t, cp_function_features) + .offset = offsetof(pfcp_msg_association_update_request_t, cp_function_features) }, [ASSOCIATION_UPDATE_REQUEST_UP_FUNCTION_FEATURES] = { .type = PFCP_IE_UP_FUNCTION_FEATURES, - .offset = offsetof(pfcp_association_update_request_t, up_function_features) + .offset = offsetof(pfcp_msg_association_update_request_t, up_function_features) }, [ASSOCIATION_UPDATE_REQUEST_PFCP_ASSOCIATION_RELEASE_REQUEST] = { .type = PFCP_IE_PFCP_ASSOCIATION_RELEASE_REQUEST, - .offset = offsetof(pfcp_association_update_request_t, pfcp_association_release_request) + .offset = offsetof(pfcp_msg_association_update_request_t, pfcp_association_release_request) }, [ASSOCIATION_UPDATE_REQUEST_GRACEFUL_RELEASE_PERIOD] = { .type = PFCP_IE_GRACEFUL_RELEASE_PERIOD, - .offset = offsetof(pfcp_association_update_request_t, graceful_release_period) + .offset = offsetof(pfcp_msg_association_update_request_t, graceful_release_period) }, [ASSOCIATION_UPDATE_REQUEST_USER_PLANE_IP_RESOURCE_INFORMATION] = { .type = PFCP_IE_USER_PLANE_IP_RESOURCE_INFORMATION, .is_array = true, - .offset = offsetof(pfcp_association_update_request_t, user_plane_ip_resource_information) + .offset = offsetof(pfcp_msg_association_update_request_t, user_plane_ip_resource_information) }, [ASSOCIATION_UPDATE_REQUEST_PFCPAUREQ_FLAGS] = { .type = PFCP_IE_PFCPAUREQ_FLAGS, - .offset = offsetof(pfcp_association_update_request_t, pfcpaureq_flags) + .offset = offsetof(pfcp_msg_association_update_request_t, pfcpaureq_flags) }, [ASSOCIATION_UPDATE_REQUEST_UE_IP_ADDRESS_POOL_INFORMATION] = { .type = PFCP_IE_UE_IP_ADDRESS_POOL_INFORMATION, .is_array = true, - .offset = offsetof(pfcp_association_update_request_t, ue_ip_address_pool_information) + .offset = offsetof(pfcp_msg_association_update_request_t, ue_ip_address_pool_information) }, [ASSOCIATION_UPDATE_REQUEST_ALTERNATIVE_SMF_IP_ADDRESS] = { .type = PFCP_IE_ALTERNATIVE_SMF_IP_ADDRESS, .is_array = true, - .offset = offsetof(pfcp_association_update_request_t, alternative_smf_ip_address) + .offset = offsetof(pfcp_msg_association_update_request_t, alternative_smf_ip_address) }, [ASSOCIATION_UPDATE_REQUEST_SMF_SET_ID] = { .type = PFCP_IE_SMF_SET_ID, - .offset = offsetof(pfcp_association_update_request_t, smf_set_id) + .offset = offsetof(pfcp_msg_association_update_request_t, smf_set_id) }, }; @@ -7286,24 +7309,24 @@ static struct pfcp_group_ie_def pfcp_association_update_response_group[] = { [ASSOCIATION_PROCEDURE_RESPONSE_NODE_ID] = { .type = PFCP_IE_NODE_ID, - .offset = offsetof(pfcp_association_procedure_response_t, node_id) + .offset = offsetof(pfcp_msg_association_procedure_response_t, node_id) }, [ASSOCIATION_PROCEDURE_RESPONSE_CAUSE] = { .type = PFCP_IE_CAUSE, - .offset = offsetof(pfcp_association_procedure_response_t, cause) + .offset = offsetof(pfcp_msg_association_procedure_response_t, cause) }, [ASSOCIATION_PROCEDURE_RESPONSE_TP_ERROR_REPORT] = { .type = PFCP_IE_TP_ERROR_REPORT, - .vendor = VENDOR_TRAVELPING, - .offset = offsetof(pfcp_association_procedure_response_t, tp_error_report) + .vendor = PFCP_VENDOR_TRAVELPING, + .offset = offsetof(pfcp_msg_association_procedure_response_t, tp_error_report) }, [ASSOCIATION_PROCEDURE_RESPONSE_CP_FUNCTION_FEATURES] = { .type = PFCP_IE_CP_FUNCTION_FEATURES, - .offset = offsetof(pfcp_association_procedure_response_t, cp_function_features) + .offset = offsetof(pfcp_msg_association_procedure_response_t, cp_function_features) }, [ASSOCIATION_PROCEDURE_RESPONSE_UP_FUNCTION_FEATURES] = { .type = PFCP_IE_UP_FUNCTION_FEATURES, - .offset = offsetof(pfcp_association_procedure_response_t, up_function_features) + .offset = offsetof(pfcp_msg_association_procedure_response_t, up_function_features) }, }; @@ -7311,7 +7334,7 @@ static struct pfcp_group_ie_def pfcp_association_release_request_group[] = { [ASSOCIATION_RELEASE_REQUEST_NODE_ID] = { .type = PFCP_IE_NODE_ID, - .offset = offsetof(pfcp_association_release_request_t, request.node_id) + .offset = offsetof(pfcp_msg_association_release_request_t, request.node_id) }, }; @@ -7319,15 +7342,15 @@ static struct pfcp_group_ie_def pfcp_node_report_request_group[] = { [NODE_REPORT_REQUEST_NODE_ID] = { .type = PFCP_IE_NODE_ID, - .offset = offsetof(pfcp_node_report_request_t, request.node_id) + .offset = offsetof(pfcp_msg_node_report_request_t, request.node_id) }, [NODE_REPORT_REQUEST_NODE_REPORT_TYPE] = { .type = PFCP_IE_NODE_REPORT_TYPE, - .offset = offsetof(pfcp_node_report_request_t, node_report_type) + .offset = offsetof(pfcp_msg_node_report_request_t, node_report_type) }, [NODE_REPORT_REQUEST_USER_PLANE_PATH_FAILURE_REPORT] = { .type = PFCP_IE_USER_PLANE_PATH_FAILURE_REPORT, - .offset = offsetof(pfcp_node_report_request_t, user_plane_path_failure_report) + .offset = offsetof(pfcp_msg_node_report_request_t, user_plane_path_failure_report) }, }; @@ -7335,12 +7358,12 @@ static struct pfcp_group_ie_def pfcp_session_set_deletion_request_group[] = { [SESSION_SET_DELETION_REQUEST_NODE_ID] = { .type = PFCP_IE_NODE_ID, - .offset = offsetof(pfcp_session_set_deletion_request_t, request.node_id) + .offset = offsetof(pfcp_msg_session_set_deletion_request_t, request.node_id) }, [SESSION_SET_DELETION_REQUEST_FQ_CSID] = { .type = PFCP_IE_FQ_CSID, .is_array = true, - .offset = offsetof(pfcp_session_set_deletion_request_t, fq_csid) + .offset = offsetof(pfcp_msg_session_set_deletion_request_t, fq_csid) }, }; @@ -7348,71 +7371,71 @@ static struct pfcp_group_ie_def pfcp_session_establishment_request_group[] = { [SESSION_ESTABLISHMENT_REQUEST_NODE_ID] = { .type = PFCP_IE_NODE_ID, - .offset = offsetof(pfcp_session_establishment_request_t, request.node_id) + .offset = offsetof(pfcp_msg_session_establishment_request_t, request.node_id) }, [SESSION_ESTABLISHMENT_REQUEST_F_SEID] = { .type = PFCP_IE_F_SEID, - .offset = offsetof(pfcp_session_establishment_request_t, f_seid) + .offset = offsetof(pfcp_msg_session_establishment_request_t, f_seid) }, [SESSION_ESTABLISHMENT_REQUEST_CREATE_PDR] = { .type = PFCP_IE_CREATE_PDR, .is_array = true, - .offset = offsetof(pfcp_session_establishment_request_t, create_pdr) + .offset = offsetof(pfcp_msg_session_establishment_request_t, create_pdr) }, [SESSION_ESTABLISHMENT_REQUEST_CREATE_FAR] = { .type = PFCP_IE_CREATE_FAR, .is_array = true, - .offset = offsetof(pfcp_session_establishment_request_t, create_far) + .offset = offsetof(pfcp_msg_session_establishment_request_t, create_far) }, [SESSION_ESTABLISHMENT_REQUEST_CREATE_URR] = { .type = PFCP_IE_CREATE_URR, .is_array = true, - .offset = offsetof(pfcp_session_establishment_request_t, create_urr) + .offset = offsetof(pfcp_msg_session_establishment_request_t, create_urr) }, [SESSION_ESTABLISHMENT_REQUEST_CREATE_QER] = { .type = PFCP_IE_CREATE_QER, .is_array = true, - .offset = offsetof(pfcp_session_establishment_request_t, create_qer) + .offset = offsetof(pfcp_msg_session_establishment_request_t, create_qer) }, [SESSION_ESTABLISHMENT_REQUEST_CREATE_BAR] = { .type = PFCP_IE_CREATE_BAR, .is_array = true, - .offset = offsetof(pfcp_session_establishment_request_t, create_bar) + .offset = offsetof(pfcp_msg_session_establishment_request_t, create_bar) }, [SESSION_ESTABLISHMENT_REQUEST_CREATE_TRAFFIC_ENDPOINT] = { .type = PFCP_IE_CREATE_TRAFFIC_ENDPOINT, .is_array = true, - .offset = offsetof(pfcp_session_establishment_request_t, create_traffic_endpoint) + .offset = offsetof(pfcp_msg_session_establishment_request_t, create_traffic_endpoint) }, [SESSION_ESTABLISHMENT_REQUEST_PDN_TYPE] = { .type = PFCP_IE_PDN_TYPE, - .offset = offsetof(pfcp_session_establishment_request_t, pdn_type) + .offset = offsetof(pfcp_msg_session_establishment_request_t, pdn_type) }, [SESSION_ESTABLISHMENT_REQUEST_FQ_CSID] = { .type = PFCP_IE_FQ_CSID, .is_array = true, - .offset = offsetof(pfcp_session_establishment_request_t, fq_csid) + .offset = offsetof(pfcp_msg_session_establishment_request_t, fq_csid) }, [SESSION_ESTABLISHMENT_REQUEST_USER_PLANE_INACTIVITY_TIMER] = { .type = PFCP_IE_USER_PLANE_INACTIVITY_TIMER, - .offset = offsetof(pfcp_session_establishment_request_t, user_plane_inactivity_timer) + .offset = offsetof(pfcp_msg_session_establishment_request_t, user_plane_inactivity_timer) }, [SESSION_ESTABLISHMENT_REQUEST_USER_ID] = { .type = PFCP_IE_USER_ID, - .offset = offsetof(pfcp_session_establishment_request_t, user_id) + .offset = offsetof(pfcp_msg_session_establishment_request_t, user_id) }, [SESSION_ESTABLISHMENT_REQUEST_TRACE_INFORMATION] = { .type = PFCP_IE_TRACE_INFORMATION, - .offset = offsetof(pfcp_session_establishment_request_t, trace_information) + .offset = offsetof(pfcp_msg_session_establishment_request_t, trace_information) }, [SESSION_ESTABLISHMENT_REQUEST_APN_DNN] = { .type = PFCP_IE_APN_DNN, - .offset = offsetof(pfcp_session_establishment_request_t, apn_dnn) + .offset = offsetof(pfcp_msg_session_establishment_request_t, apn_dnn) }, [SESSION_ESTABLISHMENT_REQUEST_CREATE_MAR] = { .type = PFCP_IE_CREATE_MAR, .is_array = true, - .offset = offsetof(pfcp_session_establishment_request_t, create_mar) + .offset = offsetof(pfcp_msg_session_establishment_request_t, create_mar) }, }; @@ -7420,56 +7443,56 @@ static struct pfcp_group_ie_def pfcp_session_establishment_response_group[] = { [SESSION_PROCEDURE_RESPONSE_NODE_ID] = { .type = PFCP_IE_NODE_ID, - .offset = offsetof(pfcp_session_procedure_response_t, node_id) + .offset = offsetof(pfcp_msg_session_procedure_response_t, node_id) }, [SESSION_PROCEDURE_RESPONSE_CAUSE] = { .type = PFCP_IE_CAUSE, - .offset = offsetof(pfcp_session_procedure_response_t, cause) + .offset = offsetof(pfcp_msg_session_procedure_response_t, cause) }, [SESSION_PROCEDURE_RESPONSE_OFFENDING_IE] = { .type = PFCP_IE_OFFENDING_IE, - .offset = offsetof(pfcp_session_procedure_response_t, offending_ie) + .offset = offsetof(pfcp_msg_session_procedure_response_t, offending_ie) }, [SESSION_PROCEDURE_RESPONSE_TP_ERROR_REPORT] = { .type = PFCP_IE_TP_ERROR_REPORT, - .vendor = VENDOR_TRAVELPING, - .offset = offsetof(pfcp_session_procedure_response_t, tp_error_report) + .vendor = PFCP_VENDOR_TRAVELPING, + .offset = offsetof(pfcp_msg_session_procedure_response_t, tp_error_report) }, [SESSION_PROCEDURE_RESPONSE_UP_F_SEID] = { .type = PFCP_IE_F_SEID, - .offset = offsetof(pfcp_session_procedure_response_t, up_f_seid) + .offset = offsetof(pfcp_msg_session_procedure_response_t, up_f_seid) }, [SESSION_PROCEDURE_RESPONSE_CREATED_PDR] = { .type = PFCP_IE_CREATED_PDR, .is_array = true, - .offset = offsetof(pfcp_session_procedure_response_t, created_pdr) + .offset = offsetof(pfcp_msg_session_procedure_response_t, created_pdr) }, [SESSION_PROCEDURE_RESPONSE_LOAD_CONTROL_INFORMATION] = { .type = PFCP_IE_LOAD_CONTROL_INFORMATION, - .offset = offsetof(pfcp_session_procedure_response_t, load_control_information) + .offset = offsetof(pfcp_msg_session_procedure_response_t, load_control_information) }, [SESSION_PROCEDURE_RESPONSE_OVERLOAD_CONTROL_INFORMATION] = { .type = PFCP_IE_OVERLOAD_CONTROL_INFORMATION, - .offset = offsetof(pfcp_session_procedure_response_t, overload_control_information) + .offset = offsetof(pfcp_msg_session_procedure_response_t, overload_control_information) }, [SESSION_PROCEDURE_RESPONSE_FQ_CSID] = { .type = PFCP_IE_FQ_CSID, .is_array = true, - .offset = offsetof(pfcp_session_procedure_response_t, fq_csid) + .offset = offsetof(pfcp_msg_session_procedure_response_t, fq_csid) }, [SESSION_PROCEDURE_RESPONSE_FAILED_RULE_ID] = { .type = PFCP_IE_FAILED_RULE_ID, - .offset = offsetof(pfcp_session_procedure_response_t, failed_rule_id) + .offset = offsetof(pfcp_msg_session_procedure_response_t, failed_rule_id) }, [SESSION_PROCEDURE_RESPONSE_CREATED_TRAFFIC_ENDPOINT] = { .type = PFCP_IE_CREATED_TRAFFIC_ENDPOINT, .is_array = true, - .offset = offsetof(pfcp_session_procedure_response_t, created_traffic_endpoint) + .offset = offsetof(pfcp_msg_session_procedure_response_t, created_traffic_endpoint) }, [SESSION_PROCEDURE_RESPONSE_TP_CREATED_BINDING] = { .type = PFCP_IE_TP_CREATED_NAT_BINDING, - .vendor = VENDOR_TRAVELPING, - .offset = offsetof(pfcp_session_procedure_response_t, created_binding) + .vendor = PFCP_VENDOR_TRAVELPING, + .offset = offsetof(pfcp_msg_session_procedure_response_t, created_binding) }, }; @@ -7477,138 +7500,138 @@ static struct pfcp_group_ie_def pfcp_session_modification_request_group[] = { [SESSION_MODIFICATION_REQUEST_F_SEID] = { .type = PFCP_IE_F_SEID, - .offset = offsetof(pfcp_session_modification_request_t, f_seid) + .offset = offsetof(pfcp_msg_session_modification_request_t, f_seid) }, [SESSION_MODIFICATION_REQUEST_REMOVE_PDR] = { .type = PFCP_IE_REMOVE_PDR, .is_array = true, - .offset = offsetof(pfcp_session_modification_request_t, remove_pdr) + .offset = offsetof(pfcp_msg_session_modification_request_t, remove_pdr) }, [SESSION_MODIFICATION_REQUEST_REMOVE_FAR] = { .type = PFCP_IE_REMOVE_FAR, .is_array = true, - .offset = offsetof(pfcp_session_modification_request_t, remove_far) + .offset = offsetof(pfcp_msg_session_modification_request_t, remove_far) }, [SESSION_MODIFICATION_REQUEST_REMOVE_URR] = { .type = PFCP_IE_REMOVE_URR, .is_array = true, - .offset = offsetof(pfcp_session_modification_request_t, remove_urr) + .offset = offsetof(pfcp_msg_session_modification_request_t, remove_urr) }, [SESSION_MODIFICATION_REQUEST_REMOVE_QER] = { .type = PFCP_IE_REMOVE_QER, .is_array = true, - .offset = offsetof(pfcp_session_modification_request_t, remove_qer) + .offset = offsetof(pfcp_msg_session_modification_request_t, remove_qer) }, [SESSION_MODIFICATION_REQUEST_REMOVE_BAR] = { .type = PFCP_IE_REMOVE_BAR, .is_array = true, - .offset = offsetof(pfcp_session_modification_request_t, remove_bar) + .offset = offsetof(pfcp_msg_session_modification_request_t, remove_bar) }, [SESSION_MODIFICATION_REQUEST_REMOVE_TRAFFIC_ENDPOINT] = { .type = PFCP_IE_REMOVE_TRAFFIC_ENDPOINT, .is_array = true, - .offset = offsetof(pfcp_session_modification_request_t, remove_traffic_endpoint) + .offset = offsetof(pfcp_msg_session_modification_request_t, remove_traffic_endpoint) }, [SESSION_MODIFICATION_REQUEST_CREATE_PDR] = { .type = PFCP_IE_CREATE_PDR, .is_array = true, - .offset = offsetof(pfcp_session_modification_request_t, create_pdr) + .offset = offsetof(pfcp_msg_session_modification_request_t, create_pdr) }, [SESSION_MODIFICATION_REQUEST_CREATE_FAR] = { .type = PFCP_IE_CREATE_FAR, .is_array = true, - .offset = offsetof(pfcp_session_modification_request_t, create_far) + .offset = offsetof(pfcp_msg_session_modification_request_t, create_far) }, [SESSION_MODIFICATION_REQUEST_CREATE_URR] = { .type = PFCP_IE_CREATE_URR, .is_array = true, - .offset = offsetof(pfcp_session_modification_request_t, create_urr) + .offset = offsetof(pfcp_msg_session_modification_request_t, create_urr) }, [SESSION_MODIFICATION_REQUEST_CREATE_QER] = { .type = PFCP_IE_CREATE_QER, .is_array = true, - .offset = offsetof(pfcp_session_modification_request_t, create_qer) + .offset = offsetof(pfcp_msg_session_modification_request_t, create_qer) }, [SESSION_MODIFICATION_REQUEST_CREATE_BAR] = { .type = PFCP_IE_CREATE_BAR, .is_array = true, - .offset = offsetof(pfcp_session_modification_request_t, create_bar) + .offset = offsetof(pfcp_msg_session_modification_request_t, create_bar) }, [SESSION_MODIFICATION_REQUEST_CREATE_TRAFFIC_ENDPOINT] = { .type = PFCP_IE_CREATE_TRAFFIC_ENDPOINT, .is_array = true, - .offset = offsetof(pfcp_session_modification_request_t, create_traffic_endpoint) + .offset = offsetof(pfcp_msg_session_modification_request_t, create_traffic_endpoint) }, [SESSION_MODIFICATION_REQUEST_UPDATE_PDR] = { .type = PFCP_IE_UPDATE_PDR, .is_array = true, - .offset = offsetof(pfcp_session_modification_request_t, update_pdr) + .offset = offsetof(pfcp_msg_session_modification_request_t, update_pdr) }, [SESSION_MODIFICATION_REQUEST_UPDATE_FAR] = { .type = PFCP_IE_UPDATE_FAR, .is_array = true, - .offset = offsetof(pfcp_session_modification_request_t, update_far) + .offset = offsetof(pfcp_msg_session_modification_request_t, update_far) }, [SESSION_MODIFICATION_REQUEST_UPDATE_URR] = { .type = PFCP_IE_UPDATE_URR, .is_array = true, - .offset = offsetof(pfcp_session_modification_request_t, update_urr) + .offset = offsetof(pfcp_msg_session_modification_request_t, update_urr) }, [SESSION_MODIFICATION_REQUEST_UPDATE_QER] = { .type = PFCP_IE_UPDATE_QER, .is_array = true, - .offset = offsetof(pfcp_session_modification_request_t, update_qer) + .offset = offsetof(pfcp_msg_session_modification_request_t, update_qer) }, [SESSION_MODIFICATION_REQUEST_UPDATE_BAR] = { .type = PFCP_IE_UPDATE_BAR_REQUEST, .is_array = true, - .offset = offsetof(pfcp_session_modification_request_t, update_bar) + .offset = offsetof(pfcp_msg_session_modification_request_t, update_bar) }, [SESSION_MODIFICATION_REQUEST_UPDATE_TRAFFIC_ENDPOINT] = { .type = PFCP_IE_UPDATE_TRAFFIC_ENDPOINT, .is_array = true, - .offset = offsetof(pfcp_session_modification_request_t, update_traffic_endpoint) + .offset = offsetof(pfcp_msg_session_modification_request_t, update_traffic_endpoint) }, [SESSION_MODIFICATION_REQUEST_PFCPSMREQ_FLAGS] = { .type = PFCP_IE_PFCPSMREQ_FLAGS, - .offset = offsetof(pfcp_session_modification_request_t, pfcpsmreq_flags) + .offset = offsetof(pfcp_msg_session_modification_request_t, pfcpsmreq_flags) }, [SESSION_MODIFICATION_REQUEST_QUERY_URR] = { .type = PFCP_IE_QUERY_URR, .is_array = true, - .offset = offsetof(pfcp_session_modification_request_t, query_urr) + .offset = offsetof(pfcp_msg_session_modification_request_t, query_urr) }, [SESSION_MODIFICATION_REQUEST_FQ_CSID] = { .type = PFCP_IE_FQ_CSID, .is_array = true, - .offset = offsetof(pfcp_session_modification_request_t, fq_csid) + .offset = offsetof(pfcp_msg_session_modification_request_t, fq_csid) }, [SESSION_MODIFICATION_REQUEST_USER_PLANE_INACTIVITY_TIMER] = { .type = PFCP_IE_USER_PLANE_INACTIVITY_TIMER, - .offset = offsetof(pfcp_session_modification_request_t, user_plane_inactivity_timer) + .offset = offsetof(pfcp_msg_session_modification_request_t, user_plane_inactivity_timer) }, [SESSION_MODIFICATION_REQUEST_QUERY_URR_REFERENCE] = { .type = PFCP_IE_QUERY_URR_REFERENCE, - .offset = offsetof(pfcp_session_modification_request_t, query_urr_reference) + .offset = offsetof(pfcp_msg_session_modification_request_t, query_urr_reference) }, [SESSION_MODIFICATION_REQUEST_TRACE_INFORMATION] = { .type = PFCP_IE_TRACE_INFORMATION, - .offset = offsetof(pfcp_session_modification_request_t, trace_information) + .offset = offsetof(pfcp_msg_session_modification_request_t, trace_information) }, [SESSION_MODIFICATION_REQUEST_REMOVE_MAR] = { .type = PFCP_IE_REMOVE_MAR, .is_array = true, - .offset = offsetof(pfcp_session_modification_request_t, remove_mar) + .offset = offsetof(pfcp_msg_session_modification_request_t, remove_mar) }, [SESSION_MODIFICATION_REQUEST_UPDATE_MAR] = { .type = PFCP_IE_UPDATE_MAR, .is_array = true, - .offset = offsetof(pfcp_session_modification_request_t, update_mar) + .offset = offsetof(pfcp_msg_session_modification_request_t, update_mar) }, [SESSION_MODIFICATION_REQUEST_CREATE_MAR] = { .type = PFCP_IE_CREATE_MAR, .is_array = true, - .offset = offsetof(pfcp_session_modification_request_t, create_mar) + .offset = offsetof(pfcp_msg_session_modification_request_t, create_mar) }, }; @@ -7616,47 +7639,47 @@ static struct pfcp_group_ie_def pfcp_session_modification_response_group[] = { [SESSION_PROCEDURE_RESPONSE_CAUSE] = { .type = PFCP_IE_CAUSE, - .offset = offsetof(pfcp_session_procedure_response_t, cause) + .offset = offsetof(pfcp_msg_session_procedure_response_t, cause) }, [SESSION_PROCEDURE_RESPONSE_OFFENDING_IE] = { .type = PFCP_IE_OFFENDING_IE, - .offset = offsetof(pfcp_session_procedure_response_t, offending_ie) + .offset = offsetof(pfcp_msg_session_procedure_response_t, offending_ie) }, [SESSION_PROCEDURE_RESPONSE_TP_ERROR_REPORT] = { .type = PFCP_IE_TP_ERROR_REPORT, - .vendor = VENDOR_TRAVELPING, - .offset = offsetof(pfcp_session_procedure_response_t, tp_error_report) + .vendor = PFCP_VENDOR_TRAVELPING, + .offset = offsetof(pfcp_msg_session_procedure_response_t, tp_error_report) }, [SESSION_PROCEDURE_RESPONSE_CREATED_PDR] = { .type = PFCP_IE_CREATED_PDR, .is_array = true, - .offset = offsetof(pfcp_session_procedure_response_t, created_pdr) + .offset = offsetof(pfcp_msg_session_procedure_response_t, created_pdr) }, [SESSION_PROCEDURE_RESPONSE_LOAD_CONTROL_INFORMATION] = { .type = PFCP_IE_LOAD_CONTROL_INFORMATION, - .offset = offsetof(pfcp_session_procedure_response_t, load_control_information) + .offset = offsetof(pfcp_msg_session_procedure_response_t, load_control_information) }, [SESSION_PROCEDURE_RESPONSE_OVERLOAD_CONTROL_INFORMATION] = { .type = PFCP_IE_OVERLOAD_CONTROL_INFORMATION, - .offset = offsetof(pfcp_session_procedure_response_t, overload_control_information) + .offset = offsetof(pfcp_msg_session_procedure_response_t, overload_control_information) }, [SESSION_PROCEDURE_RESPONSE_USAGE_REPORT] = { .type = PFCP_IE_USAGE_REPORT_SMR, .is_array = true, - .offset = offsetof(pfcp_session_procedure_response_t, usage_report) + .offset = offsetof(pfcp_msg_session_procedure_response_t, usage_report) }, [SESSION_PROCEDURE_RESPONSE_FAILED_RULE_ID] = { .type = PFCP_IE_FAILED_RULE_ID, - .offset = offsetof(pfcp_session_procedure_response_t, failed_rule_id) + .offset = offsetof(pfcp_msg_session_procedure_response_t, failed_rule_id) }, [SESSION_PROCEDURE_RESPONSE_ADDITIONAL_USAGE_REPORTS_INFORMATION] = { .type = PFCP_IE_ADDITIONAL_USAGE_REPORTS_INFORMATION, - .offset = offsetof(pfcp_session_procedure_response_t, additional_usage_reports_information) + .offset = offsetof(pfcp_msg_session_procedure_response_t, additional_usage_reports_information) }, [SESSION_PROCEDURE_RESPONSE_CREATED_TRAFFIC_ENDPOINT] = { .type = PFCP_IE_CREATED_TRAFFIC_ENDPOINT, .is_array = true, - .offset = offsetof(pfcp_session_procedure_response_t, created_traffic_endpoint) + .offset = offsetof(pfcp_msg_session_procedure_response_t, created_traffic_endpoint) }, }; @@ -7664,29 +7687,29 @@ static struct pfcp_group_ie_def pfcp_session_deletion_response_group[] = { [SESSION_PROCEDURE_RESPONSE_CAUSE] = { .type = PFCP_IE_CAUSE, - .offset = offsetof(pfcp_session_procedure_response_t, cause) + .offset = offsetof(pfcp_msg_session_procedure_response_t, cause) }, [SESSION_PROCEDURE_RESPONSE_OFFENDING_IE] = { .type = PFCP_IE_OFFENDING_IE, - .offset = offsetof(pfcp_session_procedure_response_t, offending_ie) + .offset = offsetof(pfcp_msg_session_procedure_response_t, offending_ie) }, [SESSION_PROCEDURE_RESPONSE_TP_ERROR_REPORT] = { .type = PFCP_IE_TP_ERROR_REPORT, - .vendor = VENDOR_TRAVELPING, - .offset = offsetof(pfcp_session_procedure_response_t, tp_error_report) + .vendor = PFCP_VENDOR_TRAVELPING, + .offset = offsetof(pfcp_msg_session_procedure_response_t, tp_error_report) }, [SESSION_PROCEDURE_RESPONSE_LOAD_CONTROL_INFORMATION] = { .type = PFCP_IE_LOAD_CONTROL_INFORMATION, - .offset = offsetof(pfcp_session_procedure_response_t, load_control_information) + .offset = offsetof(pfcp_msg_session_procedure_response_t, load_control_information) }, [SESSION_PROCEDURE_RESPONSE_OVERLOAD_CONTROL_INFORMATION] = { .type = PFCP_IE_OVERLOAD_CONTROL_INFORMATION, - .offset = offsetof(pfcp_session_procedure_response_t, overload_control_information) + .offset = offsetof(pfcp_msg_session_procedure_response_t, overload_control_information) }, [SESSION_PROCEDURE_RESPONSE_USAGE_REPORT] = { .type = PFCP_IE_USAGE_REPORT_SDR, .is_array = true, - .offset = offsetof(pfcp_session_procedure_response_t, usage_report) + .offset = offsetof(pfcp_msg_session_procedure_response_t, usage_report) }, }; @@ -7694,40 +7717,40 @@ static struct pfcp_group_ie_def pfcp_session_report_request_group[] = { [SESSION_REPORT_REQUEST_REPORT_TYPE] = { .type = PFCP_IE_REPORT_TYPE, - .offset = offsetof(pfcp_session_report_request_t, report_type) + .offset = offsetof(pfcp_msg_session_report_request_t, report_type) }, [SESSION_REPORT_REQUEST_DOWNLINK_DATA_REPORT] = { .type = PFCP_IE_DOWNLINK_DATA_REPORT, - .offset = offsetof(pfcp_session_report_request_t, downlink_data_report) + .offset = offsetof(pfcp_msg_session_report_request_t, downlink_data_report) }, [SESSION_REPORT_REQUEST_USAGE_REPORT] = { .type = PFCP_IE_USAGE_REPORT_SRR, .is_array = true, - .offset = offsetof(pfcp_session_report_request_t, usage_report) + .offset = offsetof(pfcp_msg_session_report_request_t, usage_report) }, [SESSION_REPORT_REQUEST_ERROR_INDICATION_REPORT] = { .type = PFCP_IE_ERROR_INDICATION_REPORT, - .offset = offsetof(pfcp_session_report_request_t, error_indication_report) + .offset = offsetof(pfcp_msg_session_report_request_t, error_indication_report) }, [SESSION_REPORT_REQUEST_LOAD_CONTROL_INFORMATION] = { .type = PFCP_IE_LOAD_CONTROL_INFORMATION, - .offset = offsetof(pfcp_session_report_request_t, load_control_information) + .offset = offsetof(pfcp_msg_session_report_request_t, load_control_information) }, [SESSION_REPORT_REQUEST_OVERLOAD_CONTROL_INFORMATION] = { .type = PFCP_IE_OVERLOAD_CONTROL_INFORMATION, - .offset = offsetof(pfcp_session_report_request_t, overload_control_information) + .offset = offsetof(pfcp_msg_session_report_request_t, overload_control_information) }, [SESSION_REPORT_REQUEST_ADDITIONAL_USAGE_REPORTS_INFORMATION] = { .type = PFCP_IE_ADDITIONAL_USAGE_REPORTS_INFORMATION, - .offset = offsetof(pfcp_session_report_request_t, additional_usage_reports_information) + .offset = offsetof(pfcp_msg_session_report_request_t, additional_usage_reports_information) }, [SESSION_REPORT_REQUEST_PFCPSRREQ_FLAGS] = { .type = PFCP_IE_PFCPSRREQ_FLAGS, - .offset = offsetof(pfcp_session_report_request_t, pfcpsrreq_flags) + .offset = offsetof(pfcp_msg_session_report_request_t, pfcpsrreq_flags) }, [SESSION_REPORT_REQUEST_OLD_CP_F_SEID] = { .type = PFCP_IE_F_SEID, - .offset = offsetof(pfcp_session_report_request_t, old_cp_f_seid) + .offset = offsetof(pfcp_msg_session_report_request_t, old_cp_f_seid) }, }; @@ -7735,48 +7758,48 @@ static struct pfcp_group_ie_def pfcp_session_report_response_group[] = { [SESSION_REPORT_RESPONSE_CAUSE] = { .type = PFCP_IE_CAUSE, - .offset = offsetof(pfcp_session_report_response_t, response.cause) + .offset = offsetof(pfcp_msg_session_report_response_t, response.cause) }, [SESSION_REPORT_RESPONSE_OFFENDING_IE] = { .type = PFCP_IE_OFFENDING_IE, - .offset = offsetof(pfcp_session_report_response_t, response.offending_ie) + .offset = offsetof(pfcp_msg_session_report_response_t, response.offending_ie) }, [SESSION_REPORT_RESPONSE_TP_ERROR_REPORT] = { .type = PFCP_IE_TP_ERROR_REPORT, - .vendor = VENDOR_TRAVELPING, - .offset = offsetof(pfcp_session_report_response_t, response.tp_error_report) + .vendor = PFCP_VENDOR_TRAVELPING, + .offset = offsetof(pfcp_msg_session_report_response_t, response.tp_error_report) }, [SESSION_REPORT_RESPONSE_UPDATE_BAR] = { .type = PFCP_IE_UPDATE_BAR_RESPONSE, .is_array = true, - .offset = offsetof(pfcp_session_report_response_t, update_bar) + .offset = offsetof(pfcp_msg_session_report_response_t, update_bar) }, [SESSION_REPORT_RESPONSE_PFCPSRRSP_FLAGS] = { .type = PFCP_IE_PFCPSRRSP_FLAGS, - .offset = offsetof(pfcp_session_report_response_t, pfcpsrrsp_flags) + .offset = offsetof(pfcp_msg_session_report_response_t, pfcpsrrsp_flags) }, [SESSION_REPORT_RESPONSE_CP_F_SEID] = { .type = PFCP_IE_F_SEID, - .offset = offsetof(pfcp_session_report_response_t, cp_f_seid) + .offset = offsetof(pfcp_msg_session_report_response_t, cp_f_seid) }, [SESSION_REPORT_RESPONSE_N4_u_F_TEID] = { .type = PFCP_IE_F_TEID, - .offset = offsetof(pfcp_session_report_response_t, n4_u_f_teid) + .offset = offsetof(pfcp_msg_session_report_response_t, n4_u_f_teid) }, }; static struct pfcp_ie_def msg_specs[] = { - [PFCP_HEARTBEAT_REQUEST] = + [PFCP_MSG_HEARTBEAT_REQUEST] = { - .length = sizeof(pfcp_heartbeat_request_t), + .length = sizeof(pfcp_msg_heartbeat_request_t), .mandatory = BIT(HEARTBEAT_REQUEST_RECOVERY_TIME_STAMP), .size = ARRAY_LEN(pfcp_heartbeat_request_group), .group = pfcp_heartbeat_request_group, }, - [PFCP_HEARTBEAT_RESPONSE] = + [PFCP_MSG_HEARTBEAT_RESPONSE] = { .length = sizeof(pfcp_simple_response_t), .mandatory = BIT(PFCP_RESPONSE_RECOVERY_TIME_STAMP), @@ -7784,25 +7807,25 @@ static struct pfcp_ie_def msg_specs[] = .group = pfcp_simple_response_group, }, - [PFCP_PFD_MANAGEMENT_REQUEST] = + [PFCP_MSG_PFD_MANAGEMENT_REQUEST] = { - .length = sizeof(pfcp_pfd_management_request_t), + .length = sizeof(pfcp_msg_pfd_management_request_t), .size = ARRAY_LEN(pfcp_pfd_management_request_group), .group = pfcp_pfd_management_request_group, }, - [PFCP_ASSOCIATION_SETUP_REQUEST] = + [PFCP_MSG_ASSOCIATION_SETUP_REQUEST] = { - .length = sizeof(pfcp_association_setup_request_t), + .length = sizeof(pfcp_msg_association_setup_request_t), .mandatory = (BIT(ASSOCIATION_SETUP_REQUEST_NODE_ID) | BIT(ASSOCIATION_SETUP_REQUEST_RECOVERY_TIME_STAMP)), .size = ARRAY_LEN(pfcp_association_setup_request_group), .group = pfcp_association_setup_request_group, }, - [PFCP_ASSOCIATION_SETUP_RESPONSE] = + [PFCP_MSG_ASSOCIATION_SETUP_RESPONSE] = { - .length = sizeof(pfcp_association_procedure_response_t), + .length = sizeof(pfcp_msg_association_procedure_response_t), .mandatory = (BIT(ASSOCIATION_PROCEDURE_RESPONSE_NODE_ID) | BIT(ASSOCIATION_PROCEDURE_RESPONSE_CAUSE) | BIT(ASSOCIATION_PROCEDURE_RESPONSE_RECOVERY_TIME_STAMP)), @@ -7810,32 +7833,32 @@ static struct pfcp_ie_def msg_specs[] = .group = pfcp_association_setup_response_group, }, - [PFCP_ASSOCIATION_UPDATE_REQUEST] = + [PFCP_MSG_ASSOCIATION_UPDATE_REQUEST] = { - .length = sizeof(pfcp_association_update_request_t), + .length = sizeof(pfcp_msg_association_update_request_t), .mandatory = BIT(ASSOCIATION_UPDATE_REQUEST_NODE_ID), .size = ARRAY_LEN(pfcp_association_update_request_group), .group = pfcp_association_update_request_group, }, - [PFCP_ASSOCIATION_UPDATE_RESPONSE] = + [PFCP_MSG_ASSOCIATION_UPDATE_RESPONSE] = { - .length = sizeof(pfcp_association_procedure_response_t), + .length = sizeof(pfcp_msg_association_procedure_response_t), .mandatory = (BIT(ASSOCIATION_PROCEDURE_RESPONSE_NODE_ID) | BIT(ASSOCIATION_PROCEDURE_RESPONSE_CAUSE)), .size = ARRAY_LEN(pfcp_association_update_response_group), .group = pfcp_association_update_response_group, }, - [PFCP_ASSOCIATION_RELEASE_REQUEST] = + [PFCP_MSG_ASSOCIATION_RELEASE_REQUEST] = { - .length = sizeof(pfcp_association_release_request_t), + .length = sizeof(pfcp_msg_association_release_request_t), .mandatory = BIT(ASSOCIATION_RELEASE_REQUEST_NODE_ID), .size = ARRAY_LEN(pfcp_association_release_request_group), .group = pfcp_association_release_request_group, }, - [PFCP_ASSOCIATION_RELEASE_RESPONSE] = + [PFCP_MSG_ASSOCIATION_RELEASE_RESPONSE] = { .length = sizeof(pfcp_simple_response_t), .mandatory = (BIT(PFCP_RESPONSE_NODE_ID) | @@ -7844,16 +7867,16 @@ static struct pfcp_ie_def msg_specs[] = .group = pfcp_simple_response_group, }, - [PFCP_NODE_REPORT_REQUEST] = + [PFCP_MSG_NODE_REPORT_REQUEST] = { - .length = sizeof(pfcp_node_report_request_t), + .length = sizeof(pfcp_msg_node_report_request_t), .mandatory = (BIT(NODE_REPORT_REQUEST_NODE_ID) | BIT(NODE_REPORT_REQUEST_NODE_REPORT_TYPE)), .size = ARRAY_LEN(pfcp_node_report_request_group), .group = pfcp_node_report_request_group, }, - [PFCP_NODE_REPORT_RESPONSE] = + [PFCP_MSG_NODE_REPORT_RESPONSE] = { .length = sizeof(pfcp_simple_response_t), .mandatory = (BIT(PFCP_RESPONSE_NODE_ID) | @@ -7862,15 +7885,15 @@ static struct pfcp_ie_def msg_specs[] = .group = pfcp_simple_response_group, }, - [PFCP_SESSION_SET_DELETION_REQUEST] = + [PFCP_MSG_SESSION_SET_DELETION_REQUEST] = { - .length = sizeof(pfcp_session_set_deletion_request_t), + .length = sizeof(pfcp_msg_session_set_deletion_request_t), .mandatory = BIT(SESSION_SET_DELETION_REQUEST_NODE_ID), .size = ARRAY_LEN(pfcp_session_set_deletion_request_group), .group = pfcp_session_set_deletion_request_group, }, - [PFCP_SESSION_SET_DELETION_RESPONSE] = + [PFCP_MSG_SESSION_SET_DELETION_RESPONSE] = { .length = sizeof(pfcp_simple_response_t), .mandatory = (BIT(PFCP_RESPONSE_NODE_ID) | @@ -7879,9 +7902,9 @@ static struct pfcp_ie_def msg_specs[] = .group = pfcp_simple_response_group, }, - [PFCP_SESSION_ESTABLISHMENT_REQUEST] = + [PFCP_MSG_SESSION_ESTABLISHMENT_REQUEST] = { - .length = sizeof(pfcp_session_establishment_request_t), + .length = sizeof(pfcp_msg_session_establishment_request_t), .mandatory = (BIT(SESSION_ESTABLISHMENT_REQUEST_NODE_ID) | BIT(SESSION_ESTABLISHMENT_REQUEST_F_SEID) | BIT(SESSION_ESTABLISHMENT_REQUEST_CREATE_PDR) | @@ -7890,9 +7913,9 @@ static struct pfcp_ie_def msg_specs[] = .group = pfcp_session_establishment_request_group, }, - [PFCP_SESSION_ESTABLISHMENT_RESPONSE] = + [PFCP_MSG_SESSION_ESTABLISHMENT_RESPONSE] = { - .length = sizeof(pfcp_session_procedure_response_t), + .length = sizeof(pfcp_msg_session_procedure_response_t), .mandatory = (BIT(SESSION_PROCEDURE_RESPONSE_NODE_ID) | BIT(SESSION_PROCEDURE_RESPONSE_CAUSE) | BIT(SESSION_PROCEDURE_RESPONSE_UP_F_SEID)), @@ -7900,47 +7923,47 @@ static struct pfcp_ie_def msg_specs[] = .group = pfcp_session_establishment_response_group, }, - [PFCP_SESSION_MODIFICATION_REQUEST] = + [PFCP_MSG_SESSION_MODIFICATION_REQUEST] = { - .length = sizeof(pfcp_session_modification_request_t), + .length = sizeof(pfcp_msg_session_modification_request_t), .size = ARRAY_LEN(pfcp_session_modification_request_group), .group = pfcp_session_modification_request_group, }, - [PFCP_SESSION_MODIFICATION_RESPONSE] = + [PFCP_MSG_SESSION_MODIFICATION_RESPONSE] = { - .length = sizeof(pfcp_session_procedure_response_t), + .length = sizeof(pfcp_msg_session_procedure_response_t), .mandatory = BIT(SESSION_PROCEDURE_RESPONSE_CAUSE), .size = ARRAY_LEN(pfcp_session_modification_response_group), .group = pfcp_session_modification_response_group, }, - [PFCP_SESSION_DELETION_REQUEST] = + [PFCP_MSG_SESSION_DELETION_REQUEST] = { - .length = sizeof(pfcp_session_deletion_request_t), + .length = sizeof(pfcp_msg_session_deletion_request_t), }, - [PFCP_SESSION_DELETION_RESPONSE] = + [PFCP_MSG_SESSION_DELETION_RESPONSE] = { - .length = sizeof(pfcp_session_procedure_response_t), + .length = sizeof(pfcp_msg_session_procedure_response_t), .mandatory = BIT(SESSION_PROCEDURE_RESPONSE_CAUSE), .size = ARRAY_LEN(pfcp_session_deletion_response_group), .group = pfcp_session_deletion_response_group, }, - [PFCP_SESSION_REPORT_REQUEST] = + [PFCP_MSG_SESSION_REPORT_REQUEST] = { - .length = sizeof(pfcp_session_report_request_t), + .length = sizeof(pfcp_msg_session_report_request_t), .mandatory = BIT(SESSION_REPORT_REQUEST_REPORT_TYPE), .size = ARRAY_LEN(pfcp_session_report_request_group), .group = pfcp_session_report_request_group, }, - [PFCP_SESSION_REPORT_RESPONSE] = + [PFCP_MSG_SESSION_REPORT_RESPONSE] = { - .length = sizeof(pfcp_session_report_response_t), + .length = sizeof(pfcp_msg_session_report_response_t), .mandatory = BIT(SESSION_REPORT_RESPONSE_CAUSE), .size = ARRAY_LEN(pfcp_session_report_response_group), .group = pfcp_session_report_response_group, @@ -7967,10 +7990,10 @@ get_ie_def (const struct pfcp_group_ie_def *item) case 0: return &tgpp_specs[item->type]; - case VENDOR_BBF: + case PFCP_VENDOR_BBF: return &vendor_bbf_specs[item->type]; - case VENDOR_TRAVELPING: + case PFCP_VENDOR_TRAVELPING: return &vendor_tp_specs[item->type]; } @@ -7978,11 +8001,11 @@ get_ie_def (const struct pfcp_group_ie_def *item) } static int decode_group (u8 *p, int len, const struct pfcp_ie_def *grp_def, - struct pfcp_group *grp, pfcp_offending_ie_t **err); + struct pfcp_group *grp, pfcp_ie_offending_ie_t **err); static int decode_ie (const struct pfcp_ie_def *def, u8 *ie, u16 length, void *p, - pfcp_offending_ie_t **err) + pfcp_ie_offending_ie_t **err) { int r; @@ -8001,7 +8024,7 @@ decode_ie (const struct pfcp_ie_def *def, u8 *ie, u16 length, void *p, static int decode_vector_ie (const struct pfcp_ie_def *def, u8 *ie, u16 length, void *p, - pfcp_offending_ie_t **err) + pfcp_ie_offending_ie_t **err) { u8 **v = (u8 **) p; uword vl; @@ -8026,7 +8049,7 @@ decode_vector_ie (const struct pfcp_ie_def *def, u8 *ie, u16 length, void *p, static int decode_group (u8 *p, int len, const struct pfcp_ie_def *grp_def, - struct pfcp_group *grp, pfcp_offending_ie_t **err) + struct pfcp_group *grp, pfcp_ie_offending_ie_t **err) { int r = 0, pos = 0; @@ -8056,10 +8079,10 @@ decode_group (u8 *p, int len, const struct pfcp_ie_def *grp_def, switch (vendor) { - case VENDOR_BBF: + case PFCP_VENDOR_BBF: ie_def = &vendor_bbf_specs[type]; break; - case VENDOR_TRAVELPING: + case PFCP_VENDOR_TRAVELPING: ie_def = &vendor_tp_specs[type]; break; default: @@ -8245,7 +8268,7 @@ pfcp_is_session_msg (u16 type) int pfcp_decode_msg (u8 *p, int len, pfcp_decoded_msg_t *dmsg, - pfcp_offending_ie_t **err) + pfcp_ie_offending_ie_t **err) { u16 type, msg_len; int is_session_msg; @@ -8327,7 +8350,7 @@ pfcp_encode_version_not_supported_response (u8 **vec) *vec = vec_new (u8, NODE_MSG_HDR_LEN); clib_memset (*vec, 0, NODE_MSG_HDR_LEN); set_msg_hdr_version (*vec, 1); - set_msg_hdr_type (*vec, PFCP_VERSION_NOT_SUPPORTED_RESPONSE); + set_msg_hdr_type (*vec, PFCP_MSG_VERSION_NOT_SUPPORTED_RESPONSE); set_msg_hdr_length (*vec, NODE_MSG_HDR_LEN - 4); } @@ -8458,7 +8481,7 @@ format_group (u8 *s, va_list *args) } u8 * -format_dmsg (u8 *s, va_list *args) +format_pfcp_dmsg (u8 *s, va_list *args) { pfcp_decoded_msg_t *dmsg = va_arg (*args, pfcp_decoded_msg_t *); diff --git a/upf/pfcp.h b/upf/pfcp.h index 4753a6d..899674f 100644 --- a/upf/pfcp.h +++ b/upf/pfcp.h @@ -56,13 +56,13 @@ typedef struct __attribute__ ((packed)) u16 length; /* length in octets of the payload */ union { - pfcp_node_msg_header_t msg_hdr; + pfcp_node_msg_header_t node_hdr; pfcp_session_msg_header_t session_hdr; }; -} pfcp_header_t; +} pfcp_msg_header_t; -#define NODE_MSG_HDR_LEN (offsetof (pfcp_header_t, msg_hdr.ies)) -#define SESSION_MSG_HDR_LEN (offsetof (pfcp_header_t, session_hdr.ies)) +#define NODE_MSG_HDR_LEN (offsetof (pfcp_msg_header_t, node_hdr.ies)) +#define SESSION_MSG_HDR_LEN (offsetof (pfcp_msg_header_t, session_hdr.ies)) typedef struct __attribute__ ((packed)) { @@ -119,7 +119,7 @@ typedef struct u64 total; u64 ul; u64 dl; -} pfcp_volume_ie_t; +} pfcp_ie_volume_t; #define PFCP_VOLUME_TOVOL BIT (0) #define PFCP_VOLUME_ULVOL BIT (1) @@ -139,7 +139,7 @@ typedef struct { u8 unit; u8 value; -} pfcp_timer_ie_t; +} pfcp_ie_timer_t; /* PFCP Information Elements */ @@ -163,146 +163,146 @@ typedef struct #define PFCP_IE_REMOVE_QER 18 #define PFCP_IE_CAUSE 19 -typedef u8 pfcp_cause_t; -#define PFCP_CAUSE_RESERVED 0 -#define PFCP_CAUSE_REQUEST_ACCEPTED 1 -#define PFCP_CAUSE_REQUEST_REJECTED 64 -#define PFCP_CAUSE_SESSION_CONTEXT_NOT_FOUND 65 -#define PFCP_CAUSE_MANDATORY_IE_MISSING 66 -#define PFCP_CAUSE_CONDITIONAL_IE_MISSING 67 -#define PFCP_CAUSE_INVALID_LENGTH 68 -#define PFCP_CAUSE_MANDATORY_IE_INCORRECT 69 -#define PFCP_CAUSE_INVALID_FORWARDING_POLICY 70 -#define PFCP_CAUSE_INVALID_F_TEID_ALLOCATION_OPTION 71 -#define PFCP_CAUSE_NO_ESTABLISHED_PFCP_ASSOCIATION 72 -#define PFCP_CAUSE_RULE_CREATION_MODIFICATION_FAILURE 73 -#define PFCP_CAUSE_PFCP_ENTITY_IN_CONGESTION 74 -#define PFCP_CAUSE_NO_RESOURCES_AVAILABLE 75 -#define PFCP_CAUSE_SERVICE_NOT_SUPPORTED 76 -#define PFCP_CAUSE_SYSTEM_FAILURE 77 +typedef u8 pfcp_ie_cause_t; +#define PFCP_CAUSE_RESERVED 0 +#define PFCP_CAUSE_REQUEST_ACCEPTED 1 +#define PFCP_CAUSE_REQUEST_REJECTED 64 +#define PFCP_CAUSE_SESSION_CONTEXT_NOT_FOUND 65 +#define PFCP_CAUSE_MANDATORY_IE_MISSING 66 +#define PFCP_CAUSE_CONDITIONAL_IE_MISSING 67 +#define PFCP_CAUSE_INVALID_LENGTH 68 +#define PFCP_CAUSE_MANDATORY_IE_INCORRECT 69 +#define PFCP_CAUSE_INVALID_FORWARDING_POLICY 70 +#define PFCP_CAUSE_INVALID_PFCP_F_TEIDALLOCATION_OPTION 71 +#define PFCP_CAUSE_NO_ESTABLISHED_PFCP_ASSOCIATION 72 +#define PFCP_CAUSE_RULE_CREATION_MODIFICATION_FAILURE 73 +#define PFCP_CAUSE_PFCP_ENTITY_IN_CONGESTION 74 +#define PFCP_CAUSE_NO_RESOURCES_AVAILABLE 75 +#define PFCP_CAUSE_SERVICE_NOT_SUPPORTED 76 +#define PFCP_CAUSE_SYSTEM_FAILURE 77 #define PFCP_IE_SOURCE_INTERFACE 20 -typedef u8 pfcp_source_interface_t; +typedef u8 pfcp_ie_source_interface_t; -#define SRC_INTF_ACCESS 0 -#define SRC_INTF_CORE 1 -#define SRC_INTF_SGI_LAN 2 -#define SRC_INTF_CP 3 -#define SRC_INTF_NUM (SRC_INTF_CP + 1) +#define PFCP_SRC_INTF_ACCESS 0 +#define PFCP_SRC_INTF_CORE 1 +#define PFCP_SRC_INTF_SGI_LAN 2 +#define PFCP_SRC_INTF_CP 3 +#define PFCP_SRC_INTF_NUM (PFCP_SRC_INTF_CP + 1) #define PFCP_IE_F_TEID 21 typedef struct { u8 flags; -#define F_TEID_V4 BIT (0) -#define F_TEID_V6 BIT (1) -#define F_TEID_CH BIT (2) -#define F_TEID_CHID BIT (3) +#define PFCP_F_TEID_V4 BIT (0) +#define PFCP_F_TEID_V6 BIT (1) +#define PFCP_F_TEID_CH BIT (2) +#define PFCP_F_TEID_CHID BIT (3) u32 teid; ip4_address_t ip4; ip6_address_t ip6; u8 choose_id; -} pfcp_f_teid_t; +} pfcp_ie_f_teid_t; #define PFCP_IE_NETWORK_INSTANCE 22 -typedef u8 *pfcp_network_instance_t; +typedef u8 *pfcp_ie_network_instance_t; #define PFCP_IE_SDF_FILTER 23 typedef struct { u8 flags; -#define F_SDF_FD BIT (0) -#define F_SDF_TTC BIT (1) -#define F_SDF_SPI BIT (2) -#define F_SDF_FL BIT (3) -#define F_SDF_BID BIT (4) +#define PFCP_F_SDF_FD BIT (0) +#define PFCP_F_SDF_TTC BIT (1) +#define PFCP_F_SDF_SPI BIT (2) +#define PFCP_F_SDF_FL BIT (3) +#define PFCP_F_SDF_BID BIT (4) u8 *flow; u16 tos_traffic_class; u32 spi; u32 flow_label; u32 sdf_filter_id; -} pfcp_sdf_filter_t; +} pfcp_ie_sdf_filter_t; #define PFCP_IE_APPLICATION_ID 24 -typedef u8 *pfcp_application_id_t; +typedef u8 *pfcp_ie_application_id_t; #define PFCP_IE_GATE_STATUS 25 typedef struct { u8 ul; u8 dl; -} pfcp_gate_status_t; +} pfcp_ie_gate_status_t; typedef struct { u64 ul; u64 dl; -} pfcp_bit_rate_t; +} pfcp_ie_bit_rate_t; #define PFCP_IE_MBR 26 -typedef pfcp_bit_rate_t pfcp_mbr_t; +typedef pfcp_ie_bit_rate_t pfcp_ie_mbr_t; #define PFCP_IE_GBR 27 -typedef pfcp_bit_rate_t pfcp_gbr_t; +typedef pfcp_ie_bit_rate_t pfcp_ie_gbr_t; #define PFCP_IE_QER_CORRELATION_ID 28 -typedef u32 pfcp_qer_correlation_id_t; +typedef u32 pfcp_ie_qer_correlation_id_t; #define PFCP_IE_PRECEDENCE 29 -typedef u32 pfcp_precedence_t; +typedef u32 pfcp_ie_precedence_t; #define PFCP_IE_TRANSPORT_LEVEL_MARKING 30 -typedef u16 pfcp_transport_level_marking_t; +typedef u16 pfcp_ie_transport_level_marking_t; #define PFCP_IE_VOLUME_THRESHOLD 31 -typedef pfcp_volume_ie_t pfcp_volume_threshold_t; +typedef pfcp_ie_volume_t pfcp_ie_volume_threshold_t; #define PFCP_IE_TIME_THRESHOLD 32 -typedef u32 pfcp_time_threshold_t; +typedef u32 pfcp_ie_time_threshold_t; #define PFCP_IE_MONITORING_TIME 33 -typedef u32 pfcp_monitoring_time_t; +typedef u32 pfcp_ie_monitoring_time_t; #define PFCP_IE_SUBSEQUENT_VOLUME_THRESHOLD 34 -typedef pfcp_volume_ie_t pfcp_subsequent_volume_threshold_t; +typedef pfcp_ie_volume_t pfcp_ie_subsequent_volume_threshold_t; #define PFCP_IE_SUBSEQUENT_TIME_THRESHOLD 35 -typedef u32 pfcp_subsequent_time_threshold_t; +typedef u32 pfcp_ie_subsequent_time_threshold_t; #define PFCP_IE_INACTIVITY_DETECTION_TIME 36 -typedef u32 pfcp_inactivity_detection_time_t; +typedef u32 pfcp_ie_inactivity_detection_time_t; #define PFCP_IE_REPORTING_TRIGGERS 37 -typedef u32 pfcp_reporting_triggers_t; - -#define REPORTING_TRIGGER_PERIODIC_REPORTING BIT (0) -#define REPORTING_TRIGGER_VOLUME_THRESHOLD BIT (1) -#define REPORTING_TRIGGER_TIME_THRESHOLD BIT (2) -#define REPORTING_TRIGGER_QUOTA_HOLDING_TIME BIT (3) -#define REPORTING_TRIGGER_START_OF_TRAFFIC BIT (4) -#define REPORTING_TRIGGER_STOP_OF_TRAFFIC BIT (5) -#define REPORTING_TRIGGER_DROPPED_DL_TRAFFIC_THRESHOLD BIT (6) -#define REPORTING_TRIGGER_LINKED_USAGE_REPORTING BIT (7) -#define REPORTING_TRIGGER_VOLUME_QUOTA BIT (8) -#define REPORTING_TRIGGER_TIME_QUOTA BIT (9) -#define REPORTING_TRIGGER_ENVELOPE_CLOSURE BIT (10) -#define REPORTING_TRIGGER_MAC_ADDRESSES_REPORTING BIT (11) -#define REPORTING_TRIGGER_EVENT_THRESHOLD BIT (12) -#define REPORTING_TRIGGER_EVENT_QUOTA BIT (13) -#define REPORTING_TRIGGER_IP_MULTICAST_JOIN_LEAVE BIT (14) -#define REPORTING_TRIGGER_QUOTA_VALIDITY_TIME BIT (15) +typedef u32 pfcp_ie_reporting_triggers_t; + +#define PFCP_REPORTING_TRIGGER_PERIODIC_REPORTING BIT (0) +#define PFCP_REPORTING_TRIGGER_VOLUME_THRESHOLD BIT (1) +#define PFCP_REPORTING_TRIGGER_TIME_THRESHOLD BIT (2) +#define PFCP_REPORTING_TRIGGER_QUOTA_HOLDING_TIME BIT (3) +#define PFCP_REPORTING_TRIGGER_START_OF_TRAFFIC BIT (4) +#define PFCP_REPORTING_TRIGGER_STOP_OF_TRAFFIC BIT (5) +#define PFCP_REPORTING_TRIGGER_DROPPED_DL_TRAFFIC_THRESHOLD BIT (6) +#define PFCP_REPORTING_TRIGGER_LINKED_USAGE_REPORTING BIT (7) +#define PFCP_REPORTING_TRIGGER_VOLUME_QUOTA BIT (8) +#define PFCP_REPORTING_TRIGGER_TIME_QUOTA BIT (9) +#define PFCP_REPORTING_TRIGGER_ENVELOPE_CLOSURE BIT (10) +#define PFCP_REPORTING_TRIGGER_MAC_ADDRESSES_REPORTING BIT (11) +#define PFCP_REPORTING_TRIGGER_EVENT_THRESHOLD BIT (12) +#define PFCP_REPORTING_TRIGGER_EVENT_QUOTA BIT (13) +#define PFCP_REPORTING_TRIGGER_IP_MULTICAST_JOIN_LEAVE BIT (14) +#define PFCP_REPORTING_TRIGGER_QUOTA_VALIDITY_TIME BIT (15) #define PFCP_IE_REDIRECT_INFORMATION 38 typedef struct { u8 type; -#define REDIRECT_INFORMATION_IPv4 0 -#define REDIRECT_INFORMATION_IPv6 1 -#define REDIRECT_INFORMATION_HTTP 2 -#define REDIRECT_INFORMATION_SIP 3 -#define REDIRECT_INFORMATION_IPv4v6 4 +#define PFCP_REDIRECT_INFORMATION_IPv4 0 +#define PFCP_REDIRECT_INFORMATION_IPv6 1 +#define PFCP_REDIRECT_INFORMATION_HTTP 2 +#define PFCP_REDIRECT_INFORMATION_SIP 3 +#define PFCP_REDIRECT_INFORMATION_IPv4v6 4 union { @@ -313,148 +313,147 @@ typedef struct }; u8 *uri; }; -} pfcp_redirect_information_t; +} pfcp_ie_redirect_information_t; #define PFCP_IE_REPORT_TYPE 39 -typedef u8 pfcp_report_type_t; +typedef u8 pfcp_ie_report_type_t; -#define REPORT_TYPE_DLDR BIT (0) -#define REPORT_TYPE_USAR BIT (1) -#define REPORT_TYPE_ERIR BIT (2) -#define REPORT_TYPE_UPIR BIT (3) -#define REPORT_TYPE_PMIR BIT (4) -#define REPORT_TYPE_SESR BIT (5) -#define REPORT_TYPE_UISR BIT (6) +#define PFCP_REPORT_TYPE_DLDR BIT (0) +#define PFCP_REPORT_TYPE_USAR BIT (1) +#define PFCP_REPORT_TYPE_ERIR BIT (2) +#define PFCP_REPORT_TYPE_UPIR BIT (3) +#define PFCP_REPORT_TYPE_PMIR BIT (4) +#define PFCP_REPORT_TYPE_SESR BIT (5) +#define PFCP_REPORT_TYPE_UISR BIT (6) #define PFCP_IE_OFFENDING_IE 40 -typedef u32 pfcp_offending_ie_t; +typedef u32 pfcp_ie_offending_ie_t; #define PFCP_IE_FORWARDING_POLICY 41 typedef struct { u8 *identifier; -} pfcp_forwarding_policy_t; +} pfcp_ie_forwarding_policy_t; #define PFCP_IE_DESTINATION_INTERFACE 42 -typedef u8 pfcp_destination_interface_t; +typedef u8 pfcp_ie_destination_interface_t; -#define DST_INTF_ACCESS 0 -#define DST_INTF_CORE 1 -#define DST_INTF_SGI_LAN 2 -#define DST_INTF_CP 3 -#define DST_INTF_LI 4 -#define DST_INTF_5G_VN 5 -#define DST_INTF_NUM (DST_INTF_5G_VN + 1) +#define PFCP_DST_INTF_ACCESS 0 +#define PFCP_DST_INTF_CORE 1 +#define PFCP_DST_INTF_SGI_LAN 2 +#define PFCP_DST_INTF_CP 3 +#define PFCP_DST_INTF_LI 4 +#define PFCP_DST_INTF_5G_VN 5 +#define PFCP_DST_INTF_NUM (PFCP_DST_INTF_5G_VN + 1) #define PFCP_IE_UP_FUNCTION_FEATURES 43 -typedef u64 pfcp_up_function_features_t; -#define F_UPFF_BUCP BIT (0) -#define F_UPFF_DDND BIT (1) -#define F_UPFF_DLBD BIT (2) -#define F_UPFF_TRST BIT (3) -#define F_UPFF_FTUP BIT (4) -#define F_UPFF_PFDM BIT (5) -#define F_UPFF_HEEU BIT (6) -#define F_UPFF_TREU BIT (7) - -#define F_UPFF_EMPU BIT (8) -#define F_UPFF_PDIU BIT (9) -#define F_UPFF_UDBC BIT (10) -#define F_UPFF_QUOAC BIT (11) -#define F_UPFF_TRACE BIT (12) -#define F_UPFF_FRRT BIT (13) -#define F_UPFF_PFDE BIT (14) -#define F_UPFF_EPFAR BIT (15) - -#define F_UPFF_DPDRA BIT (16) -#define F_UPFF_ADPDP BIT (17) -#define F_UPFF_UEIP BIT (18) -#define F_UPFF_SSET BIT (19) -#define F_UPFF_MNOP BIT (20) -#define F_UPFF_MTE BIT (21) -#define F_UPFF_BUNDL BIT (22) -#define F_UPFF_GCOM BIT (23) - -#define F_UPFF_MPAS BIT (24) -#define F_UPFF_RTTL BIT (25) -#define F_UPFF_VTIME BIT (26) -#define F_UPFF_NORP BIT (27) -#define F_UPFF_IPTV BIT (28) -#define F_UPFF_IP6PL BIT (29) -#define F_UPFF_TSCU BIT (30) -#define F_UPFF_MPTCP BIT (31) - -#define F_UPFF_ATSSS_LL BIT (32) -#define F_UPFF_QFQM BIT (33) -#define F_UPFF_GPQM BIT (34) +typedef u64 pfcp_ie_up_function_features_t; +#define PFCP_F_UPFF_BUCP BIT (0) +#define PFCP_F_UPFF_DDND BIT (1) +#define PFCP_F_UPFF_DLBD BIT (2) +#define PFCP_F_UPFF_TRST BIT (3) +#define PFCP_F_UPFF_FTUP BIT (4) +#define PFCP_F_UPFF_PFDM BIT (5) +#define PFCP_F_UPFF_HEEU BIT (6) +#define PFCP_F_UPFF_TREU BIT (7) + +#define PFCP_F_UPFF_EMPU BIT (8) +#define PFCP_F_UPFF_PDIU BIT (9) +#define PFCP_F_UPFF_UDBC BIT (10) +#define PFCP_F_UPFF_QUOAC BIT (11) +#define PFCP_F_UPFF_TRACE BIT (12) +#define PFCP_F_UPFF_FRRT BIT (13) +#define PFCP_F_UPFF_PFDE BIT (14) +#define PFCP_F_UPFF_EPFAR BIT (15) + +#define PFCP_F_UPFF_DPDRA BIT (16) +#define PFCP_F_UPFF_ADPDP BIT (17) +#define PFCP_F_UPFF_UEIP BIT (18) +#define PFCP_F_UPFF_SSET BIT (19) +#define PFCP_F_UPFF_MNOP BIT (20) +#define PFCP_F_UPFF_MTE BIT (21) +#define PFCP_F_UPFF_BUNDL BIT (22) +#define PFCP_F_UPFF_GCOM BIT (23) + +#define PFCP_F_UPFF_MPAS BIT (24) +#define PFCP_F_UPFF_RTTL BIT (25) +#define PFCP_F_UPFF_VTIME BIT (26) +#define PFCP_F_UPFF_NORP BIT (27) +#define PFCP_F_UPFF_IPTV BIT (28) +#define PFCP_F_UPFF_IP6PL BIT (29) +#define PFCP_F_UPFF_TSCU BIT (30) +#define PFCP_F_UPFF_MPTCP BIT (31) + +#define PFCP_F_UPFF_ATSSS_LL BIT (32) +#define PFCP_F_UPFF_QFQM BIT (33) +#define PFCP_F_UPFF_GPQM BIT (34) #define PFCP_IE_APPLY_ACTION 44 -typedef u8 pfcp_apply_action_t; -#define F_APPLY_DROP BIT (0) -#define F_APPLY_FORW BIT (1) -#define F_APPLY_BUFF BIT (2) -#define F_APPLY_NOCP BIT (3) -#define F_APPLY_DUPL BIT (4) -#define F_APPLY_IPMA BIT (5) -#define F_APPLY_IPMD BIT (6) +typedef u8 pfcp_ie_apply_action_t; +#define PFCP_F_APPLY_DROP BIT (0) +#define PFCP_F_APPLY_FORW BIT (1) +#define PFCP_F_APPLY_BUFF BIT (2) +#define PFCP_F_APPLY_NOCP BIT (3) +#define PFCP_F_APPLY_DUPL BIT (4) +#define PFCP_F_APPLY_IPMA BIT (5) +#define PFCP_F_APPLY_IPMD BIT (6) #define PFCP_IE_DOWNLINK_DATA_SERVICE_INFORMATION 45 typedef struct { u8 flags; -#define F_DDSI_PPI BIT (0) -#define F_DDSI_QFII BIT (1) +#define PFCP_F_DDSI_PPI BIT (0) +#define PFCP_F_DDSI_QFII BIT (1) u8 paging_policy_indication; u8 qfi; -} pfcp_downlink_data_service_information_t; +} pfcp_ie_downlink_data_service_information_t; #define PFCP_IE_DOWNLINK_DATA_NOTIFICATION_DELAY 46 -typedef u8 pfcp_downlink_data_notification_delay_t; +typedef u8 pfcp_ie_downlink_data_notification_delay_t; #define PFCP_IE_DL_BUFFERING_DURATION 47 -typedef pfcp_timer_ie_t pfcp_dl_buffering_duration_t; +typedef pfcp_ie_timer_t pfcp_ie_dl_buffering_duration_t; #define PFCP_IE_DL_BUFFERING_SUGGESTED_PACKET_COUNT 48 -typedef u16 pfcp_dl_buffering_suggested_packet_count_t; +typedef u16 pfcp_ie_dl_buffering_suggested_packet_count_t; #define PFCP_IE_PFCPSMREQ_FLAGS 49 -typedef u8 pfcp_pfcpsmreq_flags_t; -#define PFCPSMREQ_DROBU BIT (0) -#define PFCPSMREQ_SNDEM BIT (1) -#define PFCPSMREQ_QAURR BIT (2) +typedef u8 pfcp_ie_pfcpsmreq_flags_t; +#define PFCP_PFCPSMREQ_DROBU BIT (0) +#define PFCP_PFCPSMREQ_SNDEM BIT (1) +#define PFCP_PFCPSMREQ_QAURR BIT (2) #define PFCP_IE_PFCPSRRSP_FLAGS 50 -typedef u8 pfcp_pfcpsrrsp_flags_t; -#define PFCPSRRSP_DROBU BIT (0) +typedef u8 pfcp_ie_pfcpsrrsp_flags_t; +#define PFCP_PFCPSRRSP_DROBU BIT (0) #define PFCP_IE_LOAD_CONTROL_INFORMATION 51 #define PFCP_IE_SEQUENCE_NUMBER 52 -typedef u32 pfcp_sequence_number_t; +typedef u32 pfcp_ie_sequence_number_t; #define PFCP_IE_METRIC 53 -typedef u32 pfcp_metric_t; +typedef u32 pfcp_ie_metric_t; #define PFCP_IE_OVERLOAD_CONTROL_INFORMATION 54 #define PFCP_IE_TIMER 55 -typedef u32 pfcp_timer_t; #define PFCP_IE_PDR_ID 56 -typedef u16 pfcp_pdr_id_t; +typedef u16 pfcp_ie_pdr_id_t; #define PFCP_IE_F_SEID 57 typedef struct { u8 flags; -#define IE_F_SEID_IP_ADDRESS_V4 BIT (1) -#define IE_F_SEID_IP_ADDRESS_V6 BIT (0) +#define PFCP_F_SEID_IP_ADDRESS_V4 BIT (1) +#define PFCP_F_SEID_IP_ADDRESS_V6 BIT (0) u64 seid; ip4_address_t ip4; ip6_address_t ip6; -} pfcp_f_seid_t; +} pfcp_ie_f_seid_t; #define PFCP_IE_APPLICATION_ID_PFDS 58 #define PFCP_IE_PFD 59 @@ -463,9 +462,9 @@ typedef struct typedef struct { u8 type; -#define NID_IPv4 0 -#define NID_IPv6 1 -#define NID_FQDN 2 +#define PFCP_NID_IPv4 0 +#define PFCP_NID_IPv6 1 +#define PFCP_NID_FQDN 2 union { @@ -477,74 +476,75 @@ typedef struct ip46_address_t ip; u8 *fqdn; }; -} pfcp_node_id_t; +} pfcp_ie_node_id_t; #define PFCP_IE_PFD_CONTENTS 61 typedef struct { -#define F_PFD_C_FD BIT (0) -#define F_PFD_C_URL BIT (1) -#define F_PFD_C_DN BIT (2) -#define F_PFD_C_CP BIT (3) -#define F_PFD_C_DNP BIT (4) +#define PFCP_F_PFD_C_FD BIT (0) +#define PFCP_F_PFD_C_URL BIT (1) +#define PFCP_F_PFD_C_DN BIT (2) +#define PFCP_F_PFD_C_CP BIT (3) +#define PFCP_F_PFD_C_DNP BIT (4) /* not implemented - #define F_PFD_C_AFD BIT(5) - #define F_PFD_C_AURL BIT(6) - #define F_PFD_C_ADNP BIT(7) + #define PFCP_F_PFD_C_AFD BIT(5) + #define PFCP_F_PFD_C_AURL BIT(6) + #define PFCP_F_PFD_C_ADNP BIT(7) */ -#define F_PFD_C_MASK \ - (F_PFD_C_FD | F_PFD_C_URL | F_PFD_C_DN | F_PFD_C_CP | F_PFD_C_DNP) +#define PFCP_F_PFD_C_MASK \ + (PFCP_F_PFD_C_FD | PFCP_F_PFD_C_URL | PFCP_F_PFD_C_DN | PFCP_F_PFD_C_CP | \ + PFCP_F_PFD_C_DNP) u8 *flow_description; u8 *url; u8 *domain; u8 *custom; u8 *dnp; -} pfcp_pfd_contents_t; +} pfcp_ie_pfd_contents_t; #define PFCP_IE_MEASUREMENT_METHOD 62 -typedef u8 pfcp_measurement_method_t; +typedef u8 pfcp_ie_measurement_method_t; -#define MEASUREMENT_METHOD_DURATION BIT (0) -#define MEASUREMENT_METHOD_VOLUME BIT (1) -#define MEASUREMENT_METHOD_EVENT BIT (2) +#define PFCP_MEASUREMENT_METHOD_DURATION BIT (0) +#define PFCP_MEASUREMENT_METHOD_VOLUME BIT (1) +#define PFCP_MEASUREMENT_METHOD_EVENT BIT (2) #define PFCP_IE_USAGE_REPORT_TRIGGER 63 -typedef u32 pfcp_usage_report_trigger_t; - -#define USAGE_REPORT_TRIGGER_PERIODIC_REPORTING BIT (0) -#define USAGE_REPORT_TRIGGER_VOLUME_THRESHOLD BIT (1) -#define USAGE_REPORT_TRIGGER_TIME_THRESHOLD BIT (2) -#define USAGE_REPORT_TRIGGER_QUOTA_HOLDING_TIME BIT (3) -#define USAGE_REPORT_TRIGGER_START_OF_TRAFFIC BIT (4) -#define USAGE_REPORT_TRIGGER_STOP_OF_TRAFFIC BIT (5) -#define USAGE_REPORT_TRIGGER_DROPPED_DL_TRAFFIC_THRESHOLD BIT (6) -#define USAGE_REPORT_TRIGGER_IMMEDIATE_REPORT BIT (7) - -#define USAGE_REPORT_TRIGGER_VOLUME_QUOTA BIT (8) -#define USAGE_REPORT_TRIGGER_TIME_QUOTA BIT (9) -#define USAGE_REPORT_TRIGGER_LINKED_USAGE_REPORTING BIT (10) -#define USAGE_REPORT_TRIGGER_TERMINATION_REPORT BIT (11) -#define USAGE_REPORT_TRIGGER_MONITORING_TIME BIT (12) -#define USAGE_REPORT_TRIGGER_ENVELOPE_CLOSURE BIT (13) -#define USAGE_REPORT_TRIGGER_MAC_ADDRESSES_REPORTING BIT (14) -#define USAGE_REPORT_TRIGGER_EVENT_THRESHOLD BIT (15) - -#define USAGE_REPORT_TRIGGER_EVENT_QUOTA BIT (16) -#define USAGE_REPORT_TRIGGER_TERMINATION_BY_UP_FUNCTION_REPORT BIT (17) -#define USAGE_REPORT_TRIGGER_IP_MULTICAST_JOIN_LEAVE BIT (18) -#define USAGE_REPORT_TRIGGER_QUOTA_VALIDITY_TIME BIT (19) +typedef u32 pfcp_ie_usage_report_trigger_t; + +#define PFCP_USAGE_REPORT_TRIGGER_PERIODIC_REPORTING BIT (0) +#define PFCP_USAGE_REPORT_TRIGGER_VOLUME_THRESHOLD BIT (1) +#define PFCP_USAGE_REPORT_TRIGGER_TIME_THRESHOLD BIT (2) +#define PFCP_USAGE_REPORT_TRIGGER_QUOTA_HOLDING_TIME BIT (3) +#define PFCP_USAGE_REPORT_TRIGGER_START_OF_TRAFFIC BIT (4) +#define PFCP_USAGE_REPORT_TRIGGER_STOP_OF_TRAFFIC BIT (5) +#define PFCP_USAGE_REPORT_TRIGGER_DROPPED_DL_TRAFFIC_THRESHOLD BIT (6) +#define PFCP_USAGE_REPORT_TRIGGER_IMMEDIATE_REPORT BIT (7) + +#define PFCP_USAGE_REPORT_TRIGGER_VOLUME_QUOTA BIT (8) +#define PFCP_USAGE_REPORT_TRIGGER_TIME_QUOTA BIT (9) +#define PFCP_USAGE_REPORT_TRIGGER_LINKED_USAGE_REPORTING BIT (10) +#define PFCP_USAGE_REPORT_TRIGGER_TERMINATION_REPORT BIT (11) +#define PFCP_USAGE_REPORT_TRIGGER_MONITORING_TIME BIT (12) +#define PFCP_USAGE_REPORT_TRIGGER_ENVELOPE_CLOSURE BIT (13) +#define PFCP_USAGE_REPORT_TRIGGER_MAC_ADDRESSES_REPORTING BIT (14) +#define PFCP_USAGE_REPORT_TRIGGER_EVENT_THRESHOLD BIT (15) + +#define PFCP_USAGE_REPORT_TRIGGER_EVENT_QUOTA BIT (16) +#define PFCP_USAGE_REPORT_TRIGGER_TERMINATION_BY_UP_FUNCTION_REPORT BIT (17) +#define PFCP_USAGE_REPORT_TRIGGER_IP_MULTICAST_JOIN_LEAVE BIT (18) +#define PFCP_USAGE_REPORT_TRIGGER_QUOTA_VALIDITY_TIME BIT (19) #define PFCP_IE_MEASUREMENT_PERIOD 64 -typedef u32 pfcp_measurement_period_t; +typedef u32 pfcp_ie_measurement_period_t; #define PFCP_IE_FQ_CSID 65 typedef struct { u8 node_id_type; -#define FQ_CSID_NID_IP4 0 -#define FQ_CSID_NID_IP6 1 -#define FQ_CSID_NID_NID 2 +#define PFCP_FQ_CSID_NID_IP4 0 +#define PFCP_FQ_CSID_NID_IP6 1 +#define PFCP_FQ_CSID_NID_NID 2 union { ip46_address_t ip; @@ -556,7 +556,7 @@ typedef struct }; } node_id; u16 *csid; -} pfcp_fq_csid_t; +} pfcp_ie_fq_csid_t; #define PFCP_IE_VOLUME_MEASUREMENT 66 typedef struct @@ -574,44 +574,44 @@ typedef struct u64 ul; u64 dl; } packets; -} pfcp_volume_measurement_t; +} pfcp_ie_volume_measurement_t; #define PFCP_IE_DURATION_MEASUREMENT 67 -typedef u32 pfcp_duration_measurement_t; +typedef u32 pfcp_ie_duration_measurement_t; #define PFCP_IE_APPLICATION_DETECTION_INFORMATION 68 #define PFCP_IE_TIME_OF_FIRST_PACKET 69 -typedef u32 pfcp_time_of_first_packet_t; +typedef u32 pfcp_ie_time_of_first_packet_t; #define PFCP_IE_TIME_OF_LAST_PACKET 70 -typedef u32 pfcp_time_of_last_packet_t; +typedef u32 pfcp_ie_time_of_last_packet_t; #define PFCP_IE_QUOTA_HOLDING_TIME 71 -typedef u32 pfcp_quota_holding_time_t; +typedef u32 pfcp_ie_quota_holding_time_t; #define PFCP_IE_DROPPED_DL_TRAFFIC_THRESHOLD 72 typedef struct { u8 flags; -#define DDTT_DLPA BIT (0) -#define DDTT_DLBY BIT (1) +#define PFCP_DDTT_DLPA BIT (0) +#define PFCP_DDTT_DLBY BIT (1) u64 downlink_packets; u64 downlink_volume; -} pfcp_dropped_dl_traffic_threshold_t; +} pfcp_ie_dropped_dl_traffic_threshold_t; #define PFCP_IE_VOLUME_QUOTA 73 -typedef pfcp_volume_ie_t pfcp_volume_quota_t; +typedef pfcp_ie_volume_t pfcp_ie_volume_quota_t; #define PFCP_IE_TIME_QUOTA 74 -typedef u32 pfcp_time_quota_t; +typedef u32 pfcp_ie_time_quota_t; #define PFCP_IE_START_TIME 75 -typedef u32 pfcp_start_time_t; +typedef u32 pfcp_ie_start_time_t; #define PFCP_IE_END_TIME 76 -typedef u32 pfcp_end_time_t; +typedef u32 pfcp_ie_end_time_t; #define PFCP_IE_QUERY_URR 77 #define PFCP_IE_USAGE_REPORT_SMR 78 @@ -619,10 +619,10 @@ typedef u32 pfcp_end_time_t; #define PFCP_IE_USAGE_REPORT_SRR 80 #define PFCP_IE_URR_ID 81 -typedef u32 pfcp_urr_id_t; +typedef u32 pfcp_ie_urr_id_t; #define PFCP_IE_LINKED_URR_ID 82 -typedef u32 pfcp_linked_urr_id_t; +typedef u32 pfcp_ie_linked_urr_id_t; #define PFCP_IE_DOWNLINK_DATA_REPORT 83 @@ -630,133 +630,133 @@ typedef u32 pfcp_linked_urr_id_t; typedef struct { u16 description; -#define OUTER_HEADER_CREATION_GTP_IP4 BIT (0) -#define OUTER_HEADER_CREATION_GTP_IP6 BIT (1) -#define OUTER_HEADER_CREATION_UDP_IP4 BIT (2) -#define OUTER_HEADER_CREATION_UDP_IP6 BIT (3) -#define OUTER_HEADER_CREATION_IP4 BIT (4) -#define OUTER_HEADER_CREATION_IP6 BIT (5) -#define OUTER_HEADER_CREATION_C_TAG BIT (6) -#define OUTER_HEADER_CREATION_S_TAG BIT (7) -#define OUTER_HEADER_CREATION_N19_IND BIT (8) -#define OUTER_HEADER_CREATION_N6_IND BIT (9) -#define OUTER_HEADER_CREATION_GTP_ANY \ - (OUTER_HEADER_CREATION_GTP_IP4 | OUTER_HEADER_CREATION_GTP_IP6) -#define OUTER_HEADER_CREATION_UDP_ANY \ - (OUTER_HEADER_CREATION_UDP_IP4 | OUTER_HEADER_CREATION_UDP_IP6) -#define OUTER_HEADER_CREATION_ANY_IP4 \ - (OUTER_HEADER_CREATION_GTP_IP4 | OUTER_HEADER_CREATION_UDP_IP4 | \ - OUTER_HEADER_CREATION_IP4) -#define OUTER_HEADER_CREATION_ANY_IP6 \ - (OUTER_HEADER_CREATION_GTP_IP6 | OUTER_HEADER_CREATION_UDP_IP6 | \ - OUTER_HEADER_CREATION_IP4) +#define PFCP_OUTER_HEADER_CREATION_GTP_IP4 BIT (0) +#define PFCP_OUTER_HEADER_CREATION_GTP_IP6 BIT (1) +#define PFCP_OUTER_HEADER_CREATION_UDP_IP4 BIT (2) +#define PFCP_OUTER_HEADER_CREATION_UDP_IP6 BIT (3) +#define PFCP_OUTER_HEADER_CREATION_IP4 BIT (4) +#define PFCP_OUTER_HEADER_CREATION_IP6 BIT (5) +#define PFCP_OUTER_HEADER_CREATION_C_TAG BIT (6) +#define PFCP_OUTER_HEADER_CREATION_S_TAG BIT (7) +#define PFCP_OUTER_HEADER_CREATION_N19_IND BIT (8) +#define PFCP_OUTER_HEADER_CREATION_N6_IND BIT (9) +#define PFCP_OUTER_HEADER_CREATION_GTP_ANY \ + (PFCP_OUTER_HEADER_CREATION_GTP_IP4 | PFCP_OUTER_HEADER_CREATION_GTP_IP6) +#define PFCP_OUTER_HEADER_CREATION_UDP_ANY \ + (PFCP_OUTER_HEADER_CREATION_UDP_IP4 | PFCP_OUTER_HEADER_CREATION_UDP_IP6) +#define PFCP_OUTER_HEADER_CREATION_ANY_IP4 \ + (PFCP_OUTER_HEADER_CREATION_GTP_IP4 | PFCP_OUTER_HEADER_CREATION_UDP_IP4 | \ + PFCP_OUTER_HEADER_CREATION_IP4) +#define PFCP_OUTER_HEADER_CREATION_ANY_IP6 \ + (PFCP_OUTER_HEADER_CREATION_GTP_IP6 | PFCP_OUTER_HEADER_CREATION_UDP_IP6 | \ + PFCP_OUTER_HEADER_CREATION_IP4) u32 teid; ip46_address_t ip; u16 port; u32 c_tag; u32 s_tag; -} pfcp_outer_header_creation_t; +} pfcp_ie_outer_header_creation_t; #define PFCP_IE_CREATE_BAR 85 #define PFCP_IE_UPDATE_BAR_REQUEST 86 #define PFCP_IE_REMOVE_BAR 87 #define PFCP_IE_BAR_ID 88 -typedef u8 pfcp_bar_id_t; +typedef u8 pfcp_ie_bar_id_t; #define PFCP_IE_CP_FUNCTION_FEATURES 89 -typedef u8 pfcp_cp_function_features_t; -#define F_CPFF_LOAD BIT (0) -#define F_CPFF_OVRL BIT (1) -#define F_CPFF_EPFAR BIT (2) -#define F_CPFF_SSET BIT (3) -#define F_CPFF_BUNDL BIT (4) -#define F_CPFF_MPAS BIT (5) -#define F_CPFF_ARDR BIT (6) +typedef u8 pfcp_ie_cp_function_features_t; +#define PFCP_F_CPFF_LOAD BIT (0) +#define PFCP_F_CPFF_OVRL BIT (1) +#define PFCP_F_CPFF_EPFAR BIT (2) +#define PFCP_F_CPFF_SSET BIT (3) +#define PFCP_F_CPFF_BUNDL BIT (4) +#define PFCP_F_CPFF_MPAS BIT (5) +#define PFCP_F_CPFF_ARDR BIT (6) #define PFCP_IE_USAGE_INFORMATION 90 -typedef u8 pfcp_usage_information_t; -#define USAGE_INFORMATION_BEFORE BIT (0) -#define USAGE_INFORMATION_AFTER BIT (1) -#define USAGE_INFORMATION_AFTER_QoS_ENFORCEMENT BIT (2) -#define USAGE_INFORMATION_BEFORE_QoS_ENFORCEMENT BIT (3) +typedef u8 pfcp_ie_usage_information_t; +#define PFCP_USAGE_INFORMATION_BEFORE BIT (0) +#define PFCP_USAGE_INFORMATION_AFTER BIT (1) +#define PFCP_USAGE_INFORMATION_AFTER_QoS_ENFORCEMENT BIT (2) +#define PFCP_USAGE_INFORMATION_BEFORE_QoS_ENFORCEMENT BIT (3) #define PFCP_IE_APPLICATION_INSTANCE_ID 91 -typedef u8 *pfcp_application_instance_id_t; +typedef u8 *pfcp_ie_application_instance_id_t; #define PFCP_IE_FLOW_INFORMATION 92 typedef struct { u8 direction; u8 *flow_description; -} pfcp_flow_information_t; +} pfcp_ie_flow_information_t; #define PFCP_IE_UE_IP_ADDRESS 93 typedef struct { u8 flags; -#define IE_UE_IP_ADDRESS_V6 BIT (0) -#define IE_UE_IP_ADDRESS_V4 BIT (1) -#define IE_UE_IP_ADDRESS_SD BIT (2) -#define IE_UE_IP_ADDRESS_IPv6D BIT (3) -#define IE_UE_IP_ADDRESS_CHV4 BIT (4) -#define IE_UE_IP_ADDRESS_CHV6 BIT (5) -#define IE_UE_IP_ADDRESS_IP6PL BIT (6) +#define PFCP_UE_IP_ADDRESS_V6 BIT (0) +#define PFCP_UE_IP_ADDRESS_V4 BIT (1) +#define PFCP_UE_IP_ADDRESS_SD BIT (2) +#define PFCP_UE_IP_ADDRESS_IPv6D BIT (3) +#define PFCP_UE_IP_ADDRESS_CHV4 BIT (4) +#define PFCP_UE_IP_ADDRESS_CHV6 BIT (5) +#define PFCP_UE_IP_ADDRESS_IP6PL BIT (6) ip4_address_t ip4; ip6_address_t ip6; u8 prefix_delegation_length; u8 prefix_length; -} pfcp_ue_ip_address_t; +} pfcp_ie_ue_ip_address_t; typedef struct { u8 unit; u16 max; -} packet_rate_t; +} pfcp_packet_rate_t; #define PFCP_IE_PACKET_RATE 94 typedef struct { u8 flags; -#define PACKET_RATE_ULPR BIT (0) -#define PACKET_RATE_DLPR BIT (1) -#define PACKET_RATE_RCSR BIT (2) -#define PACKET_RATE_APRC BIT (3) - - packet_rate_t ul; - packet_rate_t dl; - packet_rate_t a_ul; - packet_rate_t a_dl; -} pfcp_packet_rate_t; +#define PFCP_PACKET_RATE_ULPR BIT (0) +#define PFCP_PACKET_RATE_DLPR BIT (1) +#define PFCP_PACKET_RATE_RCSR BIT (2) +#define PFCP_PACKET_RATE_APRC BIT (3) + + pfcp_packet_rate_t ul; + pfcp_packet_rate_t dl; + pfcp_packet_rate_t a_ul; + pfcp_packet_rate_t a_dl; +} pfcp_ie_packet_rate_t; #define PFCP_IE_OUTER_HEADER_REMOVAL 95 -typedef u8 pfcp_outer_header_removal_t; - -#define OUTER_HEADER_REMOVAL_GTP_IP4 0 -#define OUTER_HEADER_REMOVAL_GTP_IP6 1 -#define OUTER_HEADER_REMOVAL_UDP_IP4 2 -#define OUTER_HEADER_REMOVAL_UDP_IP6 3 -#define OUTER_HEADER_REMOVAL_IP4 4 -#define OUTER_HEADER_REMOVAL_IP6 5 -#define OUTER_HEADER_REMOVAL_GTP 6 -#define OUTER_HEADER_REMOVAL_S_TAG 7 -#define OUTER_HEADER_REMOVAL_S_C_TAG 8 +typedef u8 pfcp_ie_outer_header_removal_t; + +#define PFCP_OUTER_HEADER_REMOVAL_GTP_IP4 0 +#define PFCP_OUTER_HEADER_REMOVAL_GTP_IP6 1 +#define PFCP_OUTER_HEADER_REMOVAL_UDP_IP4 2 +#define PFCP_OUTER_HEADER_REMOVAL_UDP_IP6 3 +#define PFCP_OUTER_HEADER_REMOVAL_IP4 4 +#define PFCP_OUTER_HEADER_REMOVAL_IP6 5 +#define PFCP_OUTER_HEADER_REMOVAL_GTP 6 +#define PFCP_OUTER_HEADER_REMOVAL_S_TAG 7 +#define PFCP_OUTER_HEADER_REMOVAL_S_C_TAG 8 #define PFCP_IE_RECOVERY_TIME_STAMP 96 -typedef u32 pfcp_recovery_time_stamp_t; +typedef u32 pfcp_ie_recovery_time_stamp_t; #define PFCP_IE_DL_FLOW_LEVEL_MARKING 97 typedef struct { u8 flags; -#define DL_FLM_TTC BIT (0) -#define DL_FLM_SCI BIT (1) +#define PFCP_DL_FLM_TTC BIT (0) +#define PFCP_DL_FLM_SCI BIT (1) u16 tos_traffic_class; u16 service_class_indicator; -} pfcp_dl_flow_level_marking_t; +} pfcp_ie_dl_flow_level_marking_t; #define PFCP_IE_HEADER_ENRICHMENT 98 typedef struct @@ -764,7 +764,7 @@ typedef struct u8 type; u8 *name; u8 *value; -} pfcp_header_enrichment_t; +} pfcp_ie_header_enrichment_t; #define PFCP_IE_ERROR_INDICATION_REPORT 99 @@ -772,138 +772,139 @@ typedef struct typedef struct { u8 flags; -#define MEASUREMENT_INFORMATION_MBQE BIT (0) -#define MEASUREMENT_INFORMATION_INAM BIT (1) -#define MEASUREMENT_INFORMATION_RADI BIT (2) -#define MEASUREMENT_INFORMATION_ISTM BIT (3) -#define MEASUREMENT_INFORMATION_MNOP BIT (4) -#define MEASUREMENT_INFORMATION_MASK \ - (MEASUREMENT_INFORMATION_MBQE | MEASUREMENT_INFORMATION_INAM | \ - MEASUREMENT_INFORMATION_RADI | MEASUREMENT_INFORMATION_ISTM | \ - MEASUREMENT_INFORMATION_MNOP) -} pfcp_measurement_information_t; +#define PFCP_MEASUREMENT_INFORMATION_MBQE BIT (0) +#define PFCP_MEASUREMENT_INFORMATION_INAM BIT (1) +#define PFCP_MEASUREMENT_INFORMATION_RADI BIT (2) +#define PFCP_MEASUREMENT_INFORMATION_ISTM BIT (3) +#define PFCP_MEASUREMENT_INFORMATION_MNOP BIT (4) +#define PFCP_MEASUREMENT_INFORMATION_MASK \ + (PFCP_MEASUREMENT_INFORMATION_MBQE | PFCP_MEASUREMENT_INFORMATION_INAM | \ + PFCP_MEASUREMENT_INFORMATION_RADI | PFCP_MEASUREMENT_INFORMATION_ISTM | \ + PFCP_MEASUREMENT_INFORMATION_MNOP) +} pfcp_ie_measurement_information_t; #define PFCP_IE_NODE_REPORT_TYPE 101 typedef struct { u8 flags; -#define NRT_USER_PLANE_PATH_FAILURE_REPORT BIT (0) -#define NRT_USER_PLANE_PATH_RECOVERY_REPORT BIT (1) -#define NRT_CLOCK_DRIFT_REPORT BIT (2) -#define NRT_GTP_U_PATH_QOS_REPORT BIT (3) -#define NRT_MASK \ - (NRT_USER_PLANE_PATH_FAILURE_REPORT | NRT_USER_PLANE_PATH_RECOVERY_REPORT | \ - NRT_CLOCK_DRIFT_REPORT | NRT_GTP_U_PATH_QOS_REPORT) -} pfcp_node_report_type_t; +#define PFCP_NRT_USER_PLANE_PATH_FAILURE_REPORT BIT (0) +#define PFCP_NRT_USER_PLANE_PATH_RECOVERY_REPORT BIT (1) +#define PFCP_NRT_CLOCK_DRIFT_REPORT BIT (2) +#define PFCP_NRT_GTP_U_PATH_QOS_REPORT BIT (3) +#define PFCP_NRT_MASK \ + (PFCP_NRT_USER_PLANE_PATH_FAILURE_REPORT | \ + PFCP_NRT_USER_PLANE_PATH_RECOVERY_REPORT | PFCP_NRT_CLOCK_DRIFT_REPORT | \ + PFCP_NRT_GTP_U_PATH_QOS_REPORT) +} pfcp_ie_node_report_type_t; #define PFCP_IE_USER_PLANE_PATH_FAILURE_REPORT 102 #define PFCP_IE_REMOTE_GTP_U_PEER 103 typedef struct { -#define REMOTE_GTP_U_PEER_IP6 BIT (0) -#define REMOTE_GTP_U_PEER_IP4 BIT (1) -#define REMOTE_GTP_U_PEER_DI BIT (2) -#define REMOTE_GTP_U_PEER_NI BIT (3) +#define PFCP_REMOTE_GTP_U_PEER_IP6 BIT (0) +#define PFCP_REMOTE_GTP_U_PEER_IP4 BIT (1) +#define PFCP_REMOTE_GTP_U_PEER_DI BIT (2) +#define PFCP_REMOTE_GTP_U_PEER_NI BIT (3) ip46_address_t ip; - pfcp_destination_interface_t destination_interface; - pfcp_network_instance_t network_instance; -} pfcp_remote_gtp_u_peer_t; + pfcp_ie_destination_interface_t destination_interface; + pfcp_ie_network_instance_t network_instance; +} pfcp_ie_remote_gtp_u_peer_t; #define PFCP_IE_UR_SEQN 104 -typedef u32 pfcp_ur_seqn_t; +typedef u32 pfcp_ie_ur_seqn_t; #define PFCP_IE_UPDATE_DUPLICATING_PARAMETERS 105 #define PFCP_IE_ACTIVATE_PREDEFINED_RULES 106 -typedef u8 *pfcp_activate_predefined_rules_t; +typedef u8 *pfcp_ie_activate_predefined_rules_t; #define PFCP_IE_DEACTIVATE_PREDEFINED_RULES 107 -typedef u8 *pfcp_deactivate_predefined_rules_t; +typedef u8 *pfcp_ie_deactivate_predefined_rules_t; #define PFCP_IE_FAR_ID 108 -typedef u32 pfcp_far_id_t; +typedef u32 pfcp_ie_far_id_t; #define PFCP_IE_QER_ID 109 -typedef u32 pfcp_qer_id_t; +typedef u32 pfcp_ie_qer_id_t; #define PFCP_IE_OCI_FLAGS 110 typedef struct { u8 flags; -#define OCI_ASSOCIATE_OCI_WITH_NODE_ID BIT (0) -} pfcp_oci_flags_t; +#define PFCP_OCI_ASSOCIATE_OCI_WITH_NODE_ID BIT (0) +} pfcp_ie_oci_flags_t; #define PFCP_IE_PFCP_ASSOCIATION_RELEASE_REQUEST 111 typedef struct { u8 flags; -#define F_PFCP_ASSOCIATION_RELEASE_REQUEST_SARR BIT (0) -#define F_PFCP_ASSOCIATION_RELEASE_REQUEST_URSS BIT (1) -#define F_PFCP_ASSOCIATION_RELEASE_REQUEST_MASK \ - (F_PFCP_ASSOCIATION_RELEASE_REQUEST_SARR | \ - F_PFCP_ASSOCIATION_RELEASE_REQUEST_URSS) -} pfcp_pfcp_association_release_request_t; +#define PFCP_F_PFCP_ASSOCIATION_RELEASE_REQUEST_SARR BIT (0) +#define PFCP_F_PFCP_ASSOCIATION_RELEASE_REQUEST_URSS BIT (1) +#define PFCP_F_PFCP_ASSOCIATION_RELEASE_REQUEST_MASK \ + (PFCP_F_PFCP_ASSOCIATION_RELEASE_REQUEST_SARR | \ + PFCP_F_PFCP_ASSOCIATION_RELEASE_REQUEST_URSS) +} pfcp_ie_pfcp_association_release_request_t; #define PFCP_IE_GRACEFUL_RELEASE_PERIOD 112 -typedef u32 pfcp_graceful_release_period_t; +typedef u32 pfcp_ie_graceful_release_period_t; #define PFCP_IE_PDN_TYPE 113 typedef struct { u8 type; -#define PDN_TYPE_IPv4 1 -#define PDN_TYPE_IPv6 2 -#define PDN_TYPE_IPv4v6 3 -#define PDN_TYPE_NON_IP 4 -#define PDN_TYPE_ETHERNET 5 -} pfcp_pdn_type_t; +#define PFCP_PDN_TYPE_IPv4 1 +#define PFCP_PDN_TYPE_IPv6 2 +#define PFCP_PDN_TYPE_IPv4v6 3 +#define PFCP_PDN_TYPE_NON_IP 4 +#define PFCP_PDN_TYPE_ETHERNET 5 +} pfcp_ie_pdn_type_t; #define PFCP_IE_FAILED_RULE_ID 114 typedef struct { u8 type; -#define FAILED_RULE_TYPE_PDR 0 -#define FAILED_RULE_TYPE_FAR 1 -#define FAILED_RULE_TYPE_QER 2 -#define FAILED_RULE_TYPE_URR 3 -#define FAILED_RULE_TYPE_BAR 4 +#define PFCP_FAILED_RULE_TYPE_PDR 0 +#define PFCP_FAILED_RULE_TYPE_FAR 1 +#define PFCP_FAILED_RULE_TYPE_QER 2 +#define PFCP_FAILED_RULE_TYPE_URR 3 +#define PFCP_FAILED_RULE_TYPE_BAR 4 u32 id; -} pfcp_failed_rule_id_t; +} pfcp_ie_failed_rule_id_t; #define PFCP_IE_TIME_QUOTA_MECHANISM 115 typedef struct { u8 base_time_interval_type; u32 base_time_interval; -} pfcp_time_quota_mechanism_t; +} pfcp_ie_time_quota_mechanism_t; #define PFCP_IE_USER_PLANE_IP_RESOURCE_INFORMATION 116 typedef struct { u8 flags; -#define USER_PLANE_IP_RESOURCE_INFORMATION_V4 BIT (0) -#define USER_PLANE_IP_RESOURCE_INFORMATION_V6 BIT (1) -#define USER_PLANE_IP_RESOURCE_INFORMATION_ASSONI BIT (5) -#define USER_PLANE_IP_RESOURCE_INFORMATION_ASSOSI BIT (6) -#define USER_PLANE_IP_RESOURCE_INFORMATION_MASK \ - (USER_PLANE_IP_RESOURCE_INFORMATION_V4 | \ - USER_PLANE_IP_RESOURCE_INFORMATION_V6 | \ - USER_PLANE_IP_RESOURCE_INFORMATION_ASSONI | \ - USER_PLANE_IP_RESOURCE_INFORMATION_ASSOSI) +#define PFCP_USER_PLANE_IP_RESOURCE_INFORMATION_V4 BIT (0) +#define PFCP_USER_PLANE_IP_RESOURCE_INFORMATION_V6 BIT (1) +#define PFCP_USER_PLANE_IP_RESOURCE_INFORMATION_ASSONI BIT (5) +#define PFCP_USER_PLANE_IP_RESOURCE_INFORMATION_ASSOSI BIT (6) +#define PFCP_USER_PLANE_IP_RESOURCE_INFORMATION_MASK \ + (PFCP_USER_PLANE_IP_RESOURCE_INFORMATION_V4 | \ + PFCP_USER_PLANE_IP_RESOURCE_INFORMATION_V6 | \ + PFCP_USER_PLANE_IP_RESOURCE_INFORMATION_ASSONI | \ + PFCP_USER_PLANE_IP_RESOURCE_INFORMATION_ASSOSI) u8 teid_range_indication; u8 teid_range; u8 source_intf; - pfcp_network_instance_t network_instance; + pfcp_ie_network_instance_t network_instance; ip4_address_t ip4; ip6_address_t ip6; -} pfcp_user_plane_ip_resource_information_t; +} pfcp_ie_user_plane_ip_resource_information_t; #define PFCP_IE_USER_PLANE_INACTIVITY_TIMER 117 -typedef u32 pfcp_user_plane_inactivity_timer_t; +typedef u32 pfcp_ie_user_plane_inactivity_timer_t; #define PFCP_IE_AGGREGATED_URRS 118 @@ -912,33 +913,33 @@ typedef struct { i64 digits; i32 exponent; -} pfcp_multiplier_t; +} pfcp_ie_multiplier_t; #define PFCP_IE_AGGREGATED_URR_ID 120 -typedef u32 pfcp_aggregated_urr_id_t; +typedef u32 pfcp_ie_aggregated_urr_id_t; #define PFCP_IE_SUBSEQUENT_VOLUME_QUOTA 121 -typedef pfcp_volume_ie_t pfcp_subsequent_volume_quota_t; +typedef pfcp_ie_volume_t pfcp_ie_subsequent_volume_quota_t; #define PFCP_IE_SUBSEQUENT_TIME_QUOTA 122 -typedef u32 pfcp_subsequent_time_quota_t; +typedef u32 pfcp_ie_subsequent_time_quota_t; #define PFCP_IE_RQI 123 typedef struct { u8 flags; -#define RQI_FLAG BIT (0) -} pfcp_rqi_t; +#define PFCP_RQI_FLAG BIT (0) +} pfcp_ie_rqi_t; #define PFCP_IE_QFI 124 -typedef u8 pfcp_qfi_t; +typedef u8 pfcp_ie_qfi_t; #define PFCP_IE_QUERY_URR_REFERENCE 125 -typedef u32 pfcp_query_urr_reference_t; +typedef u32 pfcp_ie_query_urr_reference_t; #define PFCP_IE_ADDITIONAL_USAGE_REPORTS_INFORMATION 126 -typedef u16 pfcp_additional_usage_reports_information_t; -#define AURI_FLAG BIT (15) +typedef u16 pfcp_ie_additional_usage_reports_information_t; +#define PFCP_AURI_FLAG BIT (15) #define PFCP_IE_CREATE_TRAFFIC_ENDPOINT 127 #define PFCP_IE_CREATED_TRAFFIC_ENDPOINT 128 @@ -946,7 +947,7 @@ typedef u16 pfcp_additional_usage_reports_information_t; #define PFCP_IE_REMOVE_TRAFFIC_ENDPOINT 130 #define PFCP_IE_TRAFFIC_ENDPOINT_ID 131 -typedef u8 pfcp_traffic_endpoint_id_t; +typedef u8 pfcp_ie_traffic_endpoint_id_t; #define PFCP_IE_ETHERNET_PACKET_FILTER 132 @@ -954,63 +955,63 @@ typedef u8 pfcp_traffic_endpoint_id_t; typedef struct { u8 flags; -#define F_SOURCE_MAC BIT (0) -#define F_DESTINATION_MAC BIT (1) -#define F_UPPER_SOURCE_MAC BIT (2) -#define F_UPPER_DESTINATION_MAC BIT (3) +#define PFCP_MAC_F_SOURCE_MAC BIT (0) +#define PFCP_MAC_F_DESTINATION_MAC BIT (1) +#define PFCP_MAC_F_UPPER_SOURCE_MAC BIT (2) +#define PFCP_MAC_F_UPPER_DESTINATION_MAC BIT (3) mac_address_t src_mac; mac_address_t dst_mac; mac_address_t upper_src_mac; mac_address_t upper_dst_mac; -} pfcp_mac_address_t; +} pfcp_ie_mac_address_t; typedef struct { u16 mask; -#define VLAN_MASK_PCP 0xe000 -#define VLAN_MASK_DEI 0x1000 -#define VLAN_MASK_VID 0x0fff +#define PFCP_VLAN_MASK_PCP 0xe000 +#define PFCP_VLAN_MASK_DEI 0x1000 +#define PFCP_VLAN_MASK_VID 0x0fff u16 tci; -} pfcp_vlan_tag_t; +} pfcp_ie_vlan_tag_t; #define PFCP_IE_C_TAG 134 -typedef pfcp_vlan_tag_t pfcp_c_tag_t; +typedef pfcp_ie_vlan_tag_t pfcp_ie_c_tag_t; #define PFCP_IE_S_TAG 135 -typedef pfcp_vlan_tag_t pfcp_s_tag_t; +typedef pfcp_ie_vlan_tag_t pfcp_ie_s_tag_t; #define PFCP_IE_ETHERTYPE 136 -typedef u16 pfcp_ethertype_t; +typedef u16 pfcp_ie_ethertype_t; #define PFCP_IE_PROXYING 137 typedef struct { u8 flags; -#define F_PROXY_ARP BIT (0) -#define F_PROXY_IP6_NS BIT (1) -} pfcp_proxying_t; +#define PFCP_F_PROXY_ARP BIT (0) +#define PFCP_F_PROXY_IP6_NS BIT (1) +} pfcp_ie_proxying_t; #define PFCP_IE_ETHERNET_FILTER_ID 138 -typedef u32 pfcp_ethernet_filter_id_t; +typedef u32 pfcp_ie_ethernet_filter_id_t; #define PFCP_IE_ETHERNET_FILTER_PROPERTIES 139 typedef struct { u8 flags; #define F_BIDIRECTIONAL_ETHERNET_FILTER BIT (0) -} pfcp_ethernet_filter_properties_t; +} pfcp_ie_ethernet_filter_properties_t; #define PFCP_IE_SUGGESTED_BUFFERING_PACKETS_COUNT 140 -typedef u8 pfcp_suggested_buffering_packets_count_t; +typedef u8 pfcp_ie_suggested_buffering_packets_count_t; #define PFCP_IE_USER_ID 141 typedef struct { -#define USER_ID_IMSI BIT (0) -#define USER_ID_IMEI BIT (1) -#define USER_ID_MSISDN BIT (2) -#define USER_ID_NAI BIT (3) +#define PFCP_USER_ID_IMSI BIT (0) +#define PFCP_USER_ID_IMEI BIT (1) +#define PFCP_USER_ID_MSISDN BIT (2) +#define PFCP_USER_ID_NAI BIT (3) u8 imei_len; /* length in bytes, not in digits */ u8 imei[8]; @@ -1019,41 +1020,41 @@ typedef struct u8 msisdn_len; /* length in bytes, not in digits */ u8 msisdn[8]; u8 *nai; -} pfcp_user_id_t; +} pfcp_ie_user_id_t; #define PFCP_IE_ETHERNET_PDU_SESSION_INFORMATION 142 typedef struct { u8 flags; -#define F_ETHERNET_INDICATION BIT (0) -} pfcp_ethernet_pdu_session_information_t; +#define PFCP_F_ETHERNET_INDICATION BIT (0) +} pfcp_ie_ethernet_pdu_session_information_t; #define PFCP_IE_ETHERNET_TRAFFIC_INFORMATION 143 typedef mac_address_t *pfcp_mac_addresses_vec_t; #define PFCP_IE_MAC_ADDRESSES_DETECTED 144 -typedef pfcp_mac_addresses_vec_t pfcp_mac_addresses_detected_t; +typedef pfcp_mac_addresses_vec_t pfcp_ie_mac_addresses_detected_t; #define PFCP_IE_MAC_ADDRESSES_REMOVED 145 -typedef pfcp_mac_addresses_vec_t pfcp_mac_addresses_removed_t; +typedef pfcp_mac_addresses_vec_t pfcp_ie_mac_addresses_removed_t; #define PFCP_IE_ETHERNET_INACTIVITY_TIMER 146 -typedef u32 pfcp_ethernet_inactivity_timer_t; +typedef u32 pfcp_ie_ethernet_inactivity_timer_t; #define PFCP_IE_ADDITIONAL_MONITORING_TIME 147 #define PFCP_IE_EVENT_QUOTA 148 -typedef u32 pfcp_event_quota_t; +typedef u32 pfcp_ie_event_quota_t; #define PFCP_IE_EVENT_THRESHOLD 149 -typedef u32 pfcp_event_threshold_t; +typedef u32 pfcp_ie_event_threshold_t; #define PFCP_IE_SUBSEQUENT_EVENT_QUOTA 150 -typedef u32 pfcp_subsequent_event_quota_t; +typedef u32 pfcp_ie_subsequent_event_quota_t; #define PFCP_IE_SUBSEQUENT_EVENT_THRESHOLD 151 -typedef u32 pfcp_subsequent_event_threshold_t; +typedef u32 pfcp_ie_subsequent_event_threshold_t; #define PFCP_IE_TRACE_INFORMATION 152 typedef struct @@ -1064,45 +1065,45 @@ typedef struct u8 trace_depth; u8 *interfaces; ip46_address_t collection_entity; -} pfcp_trace_information_t; +} pfcp_ie_trace_information_t; #define PFCP_IE_FRAMED_ROUTE 153 -typedef u8 *pfcp_framed_route_t; +typedef u8 *pfcp_ie_framed_route_t; #define PFCP_IE_FRAMED_ROUTING 154 -typedef u8 pfcp_framed_routing_t; +typedef u8 pfcp_ie_framed_routing_t; #define PFCP_IE_FRAMED_IPV6_ROUTE 155 -typedef u8 *pfcp_framed_ipv6_route_t; +typedef u8 *pfcp_ie_framed_ipv6_route_t; #define PFCP_IE_EVENT_TIME_STAMP 156 -typedef u32 pfcp_event_time_stamp_t; +typedef u32 pfcp_ie_event_time_stamp_t; #define PFCP_IE_AVERAGING_WINDOW 157 -typedef u32 pfcp_averaging_window_t; +typedef u32 pfcp_ie_averaging_window_t; #define PFCP_IE_PAGING_POLICY_INDICATOR 158 -typedef u8 pfcp_paging_policy_indicator_t; +typedef u8 pfcp_ie_paging_policy_indicator_t; #define PFCP_IE_APN_DNN 159 -typedef u8 *pfcp_apn_dnn_t; +typedef u8 *pfcp_ie_apn_dnn_t; #define PFCP_IE_TGPP_INTERFACE_TYPE 160 -typedef u8 pfcp_tgpp_interface_type_t; +typedef u8 pfcp_ie_tgpp_interface_type_t; #define PFCP_IE_PFCPSRREQ_FLAGS 161 -typedef u8 pfcp_pfcpsrreq_flags_t; -#define PFCPSRREQ_PSDBU BIT (0) +typedef u8 pfcp_ie_pfcpsrreq_flags_t; +#define PFCP_PFCPSRREQ_PSDBU BIT (0) #define PFCP_IE_PFCPAUREQ_FLAGS 162 -typedef u8 pfcp_pfcpaureq_flags_t; -#define PFCPAUREQ_PARPS BIT (0) +typedef u8 pfcp_ie_pfcpaureq_flags_t; +#define PFCP_PFCPAUREQ_PARPS BIT (0) #define PFCP_IE_ACTIVATION_TIME 163 -typedef u32 pfcp_activation_time_t; +typedef u32 pfcp_ie_activation_time_t; #define PFCP_IE_DEACTIVATION_TIME 164 -typedef u32 pfcp_deactivation_time_t; +typedef u32 pfcp_ie_deactivation_time_t; #define PFCP_IE_CREATE_MAR 165 #define PFCP_IE_ACCESS_FORWARDING_ACTION_INFORMATION_1 166 @@ -1111,121 +1112,121 @@ typedef u32 pfcp_deactivation_time_t; #define PFCP_IE_UPDATE_MAR 169 #define PFCP_IE_MAR_ID 170 -typedef u16 pfcp_mar_id_t; +typedef u16 pfcp_ie_mar_id_t; #define PFCP_IE_STEERING_FUNCTIONALITY 171 -typedef u8 pfcp_steering_functionality_t; -#define STEERING_FUNCTIONALITY_ATSSS_LL 0 -#define STEERING_FUNCTIONALITY_MPTCP 1 +typedef u8 pfcp_ie_steering_functionality_t; +#define PFCP_STEERING_FUNCTIONALITY_ATSSS_LL 0 +#define PFCP_STEERING_FUNCTIONALITY_MPTCP 1 #define PFCP_IE_STEERING_MODE 172 -typedef u8 pfcp_steering_mode_t; -#define STEERING_MODE_ACTIVE_STANDBY 0 -#define STEERING_MODE_SMALLEST_DELAY 1 -#define STEERING_MODE_LOAD_BALANCING 2 -#define STEERING_MODE_PRIORITY_BASED 3 +typedef u8 pfcp_ie_steering_mode_t; +#define PFCP_STEERING_MODE_ACTIVE_STANDBY 0 +#define PFCP_STEERING_MODE_SMALLEST_DELAY 1 +#define PFCP_STEERING_MODE_LOAD_BALANCING 2 +#define PFCP_STEERING_MODE_PFCP_PRIORITY_BASED 3 #define PFCP_IE_WEIGHT 173 -typedef u8 pfcp_weight_t; +typedef u8 pfcp_ie_weight_t; #define PFCP_IE_PRIORITY 174 -typedef u8 pfcp_priority_t; -#define PRIORITY_ACTIVE 0 -#define PRIORITY_STANDBY 1 -#define PRIORITY_HIGH 2 -#define PRIORITY_LOW 3 +typedef u8 pfcp_ie_priority_t; +#define PFCP_PRIORITY_ACTIVE 0 +#define PFCP_PRIORITY_STANDBY 1 +#define PFCP_PRIORITY_HIGH 2 +#define PFCP_PRIORITY_LOW 3 #define PFCP_IE_UPDATE_ACCESS_FORWARDING_ACTION_INFORMATION_1 175 #define PFCP_IE_UPDATE_ACCESS_FORWARDING_ACTION_INFORMATION_2 176 #define PFCP_IE_UE_IP_ADDRESS_POOL_IDENTITY 177 -typedef u8 *pfcp_ue_ip_address_pool_identity_t; +typedef u8 *pfcp_ie_ue_ip_address_pool_identity_t; #define PFCP_IE_ALTERNATIVE_SMF_IP_ADDRESS 178 typedef struct { u8 flags; -#define ALTERNATIVE_SMF_IP_ADDRESS_V4 BIT (0) -#define ALTERNATIVE_SMF_IP_ADDRESS_V6 BIT (1) +#define PFCP_ALTERNATIVE_SMF_IP_ADDRESS_V4 BIT (0) +#define PFCP_ALTERNATIVE_SMF_IP_ADDRESS_V6 BIT (1) ip4_address_t ip4; ip6_address_t ip6; -} pfcp_alternative_smf_ip_address_t; +} pfcp_ie_alternative_smf_ip_address_t; #define PFCP_IE_SMF_SET_ID 180 typedef struct { u8 *fqdn; -} pfcp_smf_set_id_t; +} pfcp_ie_smf_set_id_t; #define PFCP_IE_QUOTA_VALIDITY_TIME 181 -typedef u32 pfcp_quota_validity_time_t; +typedef u32 pfcp_ie_quota_validity_time_t; #define PFCP_IE_UE_IP_ADDRESS_POOL_INFORMATION 233 #define PFCP_IE_IP_VERSION 258 -typedef u8 pfcp_ip_version_t; -#define IP_VERSION_4 BIT (0) -#define IP_VERSION_6 BIT (1) +typedef u8 pfcp_ie_ip_version_t; +#define PFCP_IP_VERSION_4 BIT (0) +#define PFCP_IP_VERSION_6 BIT (1) -#define VENDOR_BBF 3561 +#define PFCP_VENDOR_BBF 3561 #define PFCP_IE_BBF_UP_FUNCTION_FEATURES 0 -typedef u32 pfcp_bbf_up_function_features_t; +typedef u32 pfcp_ie_bbf_up_function_features_t; -#define BBF_UP_NAT BIT (6) +#define PFCP_BBF_UP_NAT BIT (6) #define PFCP_IE_BBF_NAT_OUTSIDE_ADDRESS 14 -typedef ip4_address_t pfcp_bbf_nat_outside_address_t; +typedef ip4_address_t pfcp_ie_bbf_nat_outside_address_t; #define PFCP_IE_BBF_NAT_EXTERNAL_PORT_RANGE 16 typedef struct { u16 start_port; u16 end_port; -} pfcp_bbf_nat_external_port_range_t; +} pfcp_ie_bbf_nat_external_port_range_t; #define PFCP_IE_BBF_APPLY_ACTION 15 -#define BBF_APPLY_ACTION_NAT BIT (0) +#define PFCP_BBF_APPLY_ACTION_NAT BIT (0) -typedef u8 pfcp_bbf_apply_action_t; +typedef u8 pfcp_ie_bbf_apply_action_t; #define PFCP_IE_BBF_NAT_PORT_BLOCK 18 -typedef u8 *pfcp_bbf_nat_port_block_t; +typedef u8 *pfcp_ie_bbf_nat_port_block_t; -#define VENDOR_TRAVELPING 18681 +#define PFCP_VENDOR_TRAVELPING 18681 #define PFCP_IE_TP_PACKET_MEASUREMENT 1 -typedef pfcp_volume_threshold_t pfcp_tp_packet_measurement_t; +typedef pfcp_ie_volume_threshold_t pfcp_ie_tp_packet_measurement_t; #define PFCP_IE_TP_BUILD_ID 2 -typedef u8 *pfcp_tp_build_id_t; +typedef u8 *pfcp_ie_tp_build_id_t; #define PFCP_IE_TP_NOW 3 -typedef f64 pfcp_tp_now_t; +typedef f64 pfcp_ie_tp_now_t; #define PFCP_IE_TP_START_TIME 4 -typedef f64 pfcp_tp_start_time_t; +typedef f64 pfcp_ie_tp_start_time_t; #define PFCP_IE_TP_END_TIME 5 -typedef f64 pfcp_tp_end_time_t; +typedef f64 pfcp_ie_tp_end_time_t; #define PFCP_IE_TP_ERROR_REPORT 6 #define PFCP_IE_TP_ERROR_MESSAGE 7 -typedef u8 *pfcp_tp_error_message_t; +typedef u8 *pfcp_ie_tp_error_message_t; #define PFCP_IE_TP_FILE_NAME 8 -typedef u8 *pfcp_tp_file_name_t; +typedef u8 *pfcp_ie_tp_file_name_t; #define PFCP_IE_TP_LINE_NUMBER 9 -typedef u32 pfcp_tp_line_number_t; +typedef u32 pfcp_ie_tp_line_number_t; #define PFCP_IE_TP_CREATED_NAT_BINDING 10 #define PFCP_IE_TP_IPFIX_POLICY 11 -typedef u8 *pfcp_tp_ipfix_policy_t; +typedef u8 *pfcp_ie_tp_ipfix_policy_t; /* Grouped PFCP Information Elements */ @@ -1240,8 +1241,8 @@ typedef struct { struct pfcp_group grp; - pfcp_remote_gtp_u_peer_t *remote_gtp_u_peer; -} pfcp_user_plane_path_failure_report_t; + pfcp_ie_remote_gtp_u_peer_t *remote_gtp_u_peer; +} pfcp_ie_user_plane_path_failure_report_t; enum { @@ -1253,8 +1254,8 @@ typedef struct { struct pfcp_group grp; - pfcp_pfd_contents_t *pfd_contents; -} pfcp_pfd_t; + pfcp_ie_pfd_contents_t *pfd_contents; +} pfcp_ie_pfd_t; enum { @@ -1267,9 +1268,9 @@ typedef struct { struct pfcp_group grp; - pfcp_application_id_t application_id; - pfcp_pfd_t *pfd; -} pfcp_application_id_pfds_t; + pfcp_ie_application_id_t application_id; + pfcp_ie_pfd_t *pfd; +} pfcp_ie_application_id_pfds_t; enum { @@ -1281,8 +1282,8 @@ typedef struct { struct pfcp_group grp; - pfcp_urr_id_t urr_id; -} pfcp_query_urr_t; + pfcp_ie_urr_id_t urr_id; +} pfcp_ie_query_urr_t; /* load and overload control IEs */ enum @@ -1296,9 +1297,9 @@ typedef struct { struct pfcp_group grp; - pfcp_sequence_number_t sequence_number; - pfcp_metric_t metric; -} pfcp_load_control_information_t; + pfcp_ie_sequence_number_t sequence_number; + pfcp_ie_metric_t metric; +} pfcp_ie_load_control_information_t; enum { @@ -1313,11 +1314,11 @@ typedef struct { struct pfcp_group grp; - pfcp_sequence_number_t sequence_number; - pfcp_metric_t metric; - pfcp_timer_t timer; - pfcp_oci_flags_t oci_flags; -} pfcp_overload_control_information_t; + pfcp_ie_sequence_number_t sequence_number; + pfcp_ie_metric_t metric; + pfcp_ie_timer_t timer; + pfcp_ie_oci_flags_t oci_flags; +} pfcp_ie_overload_control_information_t; /* PDR related IEs */ @@ -1337,14 +1338,14 @@ typedef struct { struct pfcp_group grp; - pfcp_ethernet_filter_id_t ethernet_filter_id; - pfcp_ethernet_filter_properties_t ethernet_filter_properties; - pfcp_mac_address_t mac_address; - pfcp_ethertype_t ethertype; - pfcp_c_tag_t c_tag; - pfcp_s_tag_t s_tag; - pfcp_sdf_filter_t *sdf_filter; -} pfcp_ethernet_packet_filter_t; + pfcp_ie_ethernet_filter_id_t ethernet_filter_id; + pfcp_ie_ethernet_filter_properties_t ethernet_filter_properties; + pfcp_ie_mac_address_t mac_address; + pfcp_ie_ethertype_t ethertype; + pfcp_ie_c_tag_t c_tag; + pfcp_ie_s_tag_t s_tag; + pfcp_ie_sdf_filter_t *sdf_filter; +} pfcp_ie_ethernet_packet_filter_t; enum { @@ -1368,20 +1369,20 @@ typedef struct { struct pfcp_group grp; - pfcp_source_interface_t source_interface; - pfcp_f_teid_t f_teid; - pfcp_network_instance_t network_instance; - pfcp_ue_ip_address_t ue_ip_address; - pfcp_sdf_filter_t *sdf_filter; - pfcp_application_id_t application_id; - pfcp_ethernet_pdu_session_information_t ethernet_pdu_session_information; - pfcp_ethernet_packet_filter_t ethernet_packet_filter; - pfcp_qfi_t qfi; - pfcp_framed_route_t *framed_route; - pfcp_framed_routing_t framed_routing; - pfcp_framed_ipv6_route_t *framed_ipv6_route; - pfcp_tgpp_interface_type_t source_interface_type; -} pfcp_pdi_t; + pfcp_ie_source_interface_t source_interface; + pfcp_ie_f_teid_t f_teid; + pfcp_ie_network_instance_t network_instance; + pfcp_ie_ue_ip_address_t ue_ip_address; + pfcp_ie_sdf_filter_t *sdf_filter; + pfcp_ie_application_id_t application_id; + pfcp_ie_ethernet_pdu_session_information_t ethernet_pdu_session_information; + pfcp_ie_ethernet_packet_filter_t ethernet_packet_filter; + pfcp_ie_qfi_t qfi; + pfcp_ie_framed_route_t *framed_route; + pfcp_ie_framed_routing_t framed_routing; + pfcp_ie_framed_ipv6_route_t *framed_ipv6_route; + pfcp_ie_tgpp_interface_type_t source_interface_type; +} pfcp_ie_pdi_t; enum { @@ -1403,18 +1404,18 @@ typedef struct { struct pfcp_group grp; - pfcp_pdr_id_t pdr_id; - pfcp_precedence_t precedence; - pfcp_pdi_t pdi; - pfcp_outer_header_removal_t outer_header_removal; - pfcp_far_id_t far_id; - pfcp_urr_id_t *urr_id; - pfcp_qer_id_t *qer_id; - pfcp_activate_predefined_rules_t activate_predefined_rules; - pfcp_activation_time_t activation_time; - pfcp_deactivation_time_t deactivation_time; - pfcp_mar_id_t mar_id; -} pfcp_create_pdr_t; + pfcp_ie_pdr_id_t pdr_id; + pfcp_ie_precedence_t precedence; + pfcp_ie_pdi_t pdi; + pfcp_ie_outer_header_removal_t outer_header_removal; + pfcp_ie_far_id_t far_id; + pfcp_ie_urr_id_t *urr_id; + pfcp_ie_qer_id_t *qer_id; + pfcp_ie_activate_predefined_rules_t activate_predefined_rules; + pfcp_ie_activation_time_t activation_time; + pfcp_ie_deactivation_time_t deactivation_time; + pfcp_ie_mar_id_t mar_id; +} pfcp_ie_create_pdr_t; enum { @@ -1428,10 +1429,10 @@ typedef struct { struct pfcp_group grp; - pfcp_pdr_id_t pdr_id; - pfcp_f_teid_t f_teid; - pfcp_ue_ip_address_t ue_ip_address; -} pfcp_created_pdr_t; + pfcp_ie_pdr_id_t pdr_id; + pfcp_ie_f_teid_t f_teid; + pfcp_ie_ue_ip_address_t ue_ip_address; +} pfcp_ie_created_pdr_t; enum { @@ -1453,18 +1454,18 @@ typedef struct { struct pfcp_group grp; - pfcp_pdr_id_t pdr_id; - pfcp_outer_header_removal_t outer_header_removal; - pfcp_precedence_t precedence; - pfcp_pdi_t pdi; - pfcp_far_id_t far_id; - pfcp_urr_id_t *urr_id; - pfcp_qer_id_t *qer_id; - pfcp_activate_predefined_rules_t activate_predefined_rules; - pfcp_deactivate_predefined_rules_t deactivate_predefined_rules; - pfcp_activation_time_t activation_time; - pfcp_deactivation_time_t deactivation_time; -} pfcp_update_pdr_t; + pfcp_ie_pdr_id_t pdr_id; + pfcp_ie_outer_header_removal_t outer_header_removal; + pfcp_ie_precedence_t precedence; + pfcp_ie_pdi_t pdi; + pfcp_ie_far_id_t far_id; + pfcp_ie_urr_id_t *urr_id; + pfcp_ie_qer_id_t *qer_id; + pfcp_ie_activate_predefined_rules_t activate_predefined_rules; + pfcp_ie_deactivate_predefined_rules_t deactivate_predefined_rules; + pfcp_ie_activation_time_t activation_time; + pfcp_ie_deactivation_time_t deactivation_time; +} pfcp_ie_update_pdr_t; enum { @@ -1476,8 +1477,8 @@ typedef struct { struct pfcp_group grp; - pfcp_pdr_id_t pdr_id; -} pfcp_remove_pdr_t; + pfcp_ie_pdr_id_t pdr_id; +} pfcp_ie_remove_pdr_t; /* FAR related IEs */ @@ -1502,19 +1503,19 @@ typedef struct { struct pfcp_group grp; - pfcp_destination_interface_t destination_interface; - pfcp_network_instance_t network_instance; - pfcp_redirect_information_t redirect_information; - pfcp_outer_header_creation_t outer_header_creation; - pfcp_transport_level_marking_t transport_level_marking; - pfcp_forwarding_policy_t forwarding_policy; - pfcp_header_enrichment_t header_enrichment; - pfcp_traffic_endpoint_id_t linked_traffic_endpoint_id; - pfcp_proxying_t proxying; - pfcp_tgpp_interface_type_t destination_interface_type; - pfcp_bbf_apply_action_t bbf_apply_action; - pfcp_bbf_nat_port_block_t nat_port_block; -} pfcp_forwarding_parameters_t; + pfcp_ie_destination_interface_t destination_interface; + pfcp_ie_network_instance_t network_instance; + pfcp_ie_redirect_information_t redirect_information; + pfcp_ie_outer_header_creation_t outer_header_creation; + pfcp_ie_transport_level_marking_t transport_level_marking; + pfcp_ie_forwarding_policy_t forwarding_policy; + pfcp_ie_header_enrichment_t header_enrichment; + pfcp_ie_traffic_endpoint_id_t linked_traffic_endpoint_id; + pfcp_ie_proxying_t proxying; + pfcp_ie_tgpp_interface_type_t destination_interface_type; + pfcp_ie_bbf_apply_action_t bbf_apply_action; + pfcp_ie_bbf_nat_port_block_t nat_port_block; +} pfcp_ie_forwarding_parameters_t; enum { @@ -1536,17 +1537,17 @@ typedef struct { struct pfcp_group grp; - pfcp_destination_interface_t destination_interface; - pfcp_network_instance_t network_instance; - pfcp_redirect_information_t redirect_information; - pfcp_outer_header_creation_t outer_header_creation; - pfcp_transport_level_marking_t transport_level_marking; - pfcp_forwarding_policy_t forwarding_policy; - pfcp_header_enrichment_t header_enrichment; - pfcp_pfcpsmreq_flags_t pfcpsmreq_flags; - pfcp_traffic_endpoint_id_t linked_traffic_endpoint_id; - pfcp_tgpp_interface_type_t destination_interface_type; -} pfcp_update_forwarding_parameters_t; + pfcp_ie_destination_interface_t destination_interface; + pfcp_ie_network_instance_t network_instance; + pfcp_ie_redirect_information_t redirect_information; + pfcp_ie_outer_header_creation_t outer_header_creation; + pfcp_ie_transport_level_marking_t transport_level_marking; + pfcp_ie_forwarding_policy_t forwarding_policy; + pfcp_ie_header_enrichment_t header_enrichment; + pfcp_ie_pfcpsmreq_flags_t pfcpsmreq_flags; + pfcp_ie_traffic_endpoint_id_t linked_traffic_endpoint_id; + pfcp_ie_tgpp_interface_type_t destination_interface_type; +} pfcp_ie_update_forwarding_parameters_t; enum { @@ -1561,11 +1562,11 @@ typedef struct { struct pfcp_group grp; - pfcp_destination_interface_t destination_interface; - pfcp_outer_header_creation_t outer_header_creation; - pfcp_transport_level_marking_t transport_level_marking; - pfcp_forwarding_policy_t forwarding_policy; -} pfcp_duplicating_parameters_t; + pfcp_ie_destination_interface_t destination_interface; + pfcp_ie_outer_header_creation_t outer_header_creation; + pfcp_ie_transport_level_marking_t transport_level_marking; + pfcp_ie_forwarding_policy_t forwarding_policy; +} pfcp_ie_duplicating_parameters_t; enum { @@ -1581,11 +1582,11 @@ typedef struct { struct pfcp_group grp; - pfcp_destination_interface_t destination_interface; - pfcp_outer_header_creation_t outer_header_creation; - pfcp_transport_level_marking_t transport_level_marking; - pfcp_forwarding_policy_t forwarding_policy; -} pfcp_update_duplicating_parameters_t; + pfcp_ie_destination_interface_t destination_interface; + pfcp_ie_outer_header_creation_t outer_header_creation; + pfcp_ie_transport_level_marking_t transport_level_marking; + pfcp_ie_forwarding_policy_t forwarding_policy; +} pfcp_ie_update_duplicating_parameters_t; enum { @@ -1602,13 +1603,13 @@ typedef struct { struct pfcp_group grp; - pfcp_far_id_t far_id; - pfcp_apply_action_t apply_action; - pfcp_forwarding_parameters_t forwarding_parameters; - pfcp_duplicating_parameters_t duplicating_parameters; - pfcp_bar_id_t bar_id; - pfcp_tp_ipfix_policy_t ipfix_policy; -} pfcp_create_far_t; + pfcp_ie_far_id_t far_id; + pfcp_ie_apply_action_t apply_action; + pfcp_ie_forwarding_parameters_t forwarding_parameters; + pfcp_ie_duplicating_parameters_t duplicating_parameters; + pfcp_ie_bar_id_t bar_id; + pfcp_ie_tp_ipfix_policy_t ipfix_policy; +} pfcp_ie_create_far_t; enum { @@ -1625,13 +1626,13 @@ typedef struct { struct pfcp_group grp; - pfcp_far_id_t far_id; - pfcp_apply_action_t apply_action; - pfcp_update_forwarding_parameters_t update_forwarding_parameters; - pfcp_update_duplicating_parameters_t update_duplicating_parameters; - pfcp_bar_id_t bar_id; - pfcp_tp_ipfix_policy_t ipfix_policy; -} pfcp_update_far_t; + pfcp_ie_far_id_t far_id; + pfcp_ie_apply_action_t apply_action; + pfcp_ie_update_forwarding_parameters_t update_forwarding_parameters; + pfcp_ie_update_duplicating_parameters_t update_duplicating_parameters; + pfcp_ie_bar_id_t bar_id; + pfcp_ie_tp_ipfix_policy_t ipfix_policy; +} pfcp_ie_update_far_t; enum { @@ -1643,8 +1644,8 @@ typedef struct { struct pfcp_group grp; - pfcp_far_id_t far_id; -} pfcp_remove_far_t; + pfcp_ie_far_id_t far_id; +} pfcp_ie_remove_far_t; /* URR related IEs */ @@ -1659,9 +1660,9 @@ typedef struct { struct pfcp_group grp; - pfcp_aggregated_urr_id_t aggregated_urr_id; - pfcp_multiplier_t multiplier; -} pfcp_aggregated_urrs_t; + pfcp_ie_aggregated_urr_id_t aggregated_urr_id; + pfcp_ie_multiplier_t multiplier; +} pfcp_ie_aggregated_urrs_t; enum { @@ -1678,12 +1679,12 @@ typedef struct { struct pfcp_group grp; - pfcp_monitoring_time_t monitoring_time; - pfcp_subsequent_volume_threshold_t subsequent_volume_threshold; - pfcp_subsequent_time_threshold_t subsequent_time_threshold; - pfcp_subsequent_volume_quota_t subsequent_volume_quota; - pfcp_subsequent_time_quota_t subsequent_time_quota; -} pfcp_additional_monitoring_time_t; + pfcp_ie_monitoring_time_t monitoring_time; + pfcp_ie_subsequent_volume_threshold_t subsequent_volume_threshold; + pfcp_ie_subsequent_time_threshold_t subsequent_time_threshold; + pfcp_ie_subsequent_volume_quota_t subsequent_volume_quota; + pfcp_ie_subsequent_time_quota_t subsequent_time_quota; +} pfcp_ie_additional_monitoring_time_t; enum { @@ -1716,29 +1717,29 @@ typedef struct { struct pfcp_group grp; - pfcp_urr_id_t urr_id; - pfcp_measurement_method_t measurement_method; - pfcp_reporting_triggers_t reporting_triggers; - pfcp_measurement_period_t measurement_period; - pfcp_volume_threshold_t volume_threshold; - pfcp_volume_quota_t volume_quota; - pfcp_time_threshold_t time_threshold; - pfcp_time_quota_t time_quota; - pfcp_quota_holding_time_t quota_holding_time; - pfcp_dropped_dl_traffic_threshold_t dropped_dl_traffic_threshold; - pfcp_quota_validity_time_t quota_validity_time; - pfcp_monitoring_time_t monitoring_time; - pfcp_subsequent_volume_threshold_t subsequent_volume_threshold; - pfcp_subsequent_time_threshold_t subsequent_time_threshold; - pfcp_inactivity_detection_time_t inactivity_detection_time; - pfcp_linked_urr_id_t *linked_urr_id; - pfcp_measurement_information_t measurement_information; - pfcp_time_quota_mechanism_t time_quota_mechanism; - pfcp_aggregated_urrs_t aggregated_urrs; - pfcp_far_id_t far_id_for_quota_action; - pfcp_ethernet_inactivity_timer_t ethernet_inactivity_timer; - pfcp_additional_monitoring_time_t *additional_monitoring_time; -} pfcp_create_urr_t; + pfcp_ie_urr_id_t urr_id; + pfcp_ie_measurement_method_t measurement_method; + pfcp_ie_reporting_triggers_t reporting_triggers; + pfcp_ie_measurement_period_t measurement_period; + pfcp_ie_volume_threshold_t volume_threshold; + pfcp_ie_volume_quota_t volume_quota; + pfcp_ie_time_threshold_t time_threshold; + pfcp_ie_time_quota_t time_quota; + pfcp_ie_quota_holding_time_t quota_holding_time; + pfcp_ie_dropped_dl_traffic_threshold_t dropped_dl_traffic_threshold; + pfcp_ie_quota_validity_time_t quota_validity_time; + pfcp_ie_monitoring_time_t monitoring_time; + pfcp_ie_subsequent_volume_threshold_t subsequent_volume_threshold; + pfcp_ie_subsequent_time_threshold_t subsequent_time_threshold; + pfcp_ie_inactivity_detection_time_t inactivity_detection_time; + pfcp_ie_linked_urr_id_t *linked_urr_id; + pfcp_ie_measurement_information_t measurement_information; + pfcp_ie_time_quota_mechanism_t time_quota_mechanism; + pfcp_ie_aggregated_urrs_t aggregated_urrs; + pfcp_ie_far_id_t far_id_for_quota_action; + pfcp_ie_ethernet_inactivity_timer_t ethernet_inactivity_timer; + pfcp_ie_additional_monitoring_time_t *additional_monitoring_time; +} pfcp_ie_create_urr_t; enum { @@ -1771,29 +1772,29 @@ typedef struct { struct pfcp_group grp; - pfcp_urr_id_t urr_id; - pfcp_measurement_method_t measurement_method; - pfcp_reporting_triggers_t reporting_triggers; - pfcp_measurement_period_t measurement_period; - pfcp_volume_threshold_t volume_threshold; - pfcp_volume_quota_t volume_quota; - pfcp_time_threshold_t time_threshold; - pfcp_time_quota_t time_quota; - pfcp_quota_holding_time_t quota_holding_time; - pfcp_dropped_dl_traffic_threshold_t dropped_dl_traffic_threshold; - pfcp_quota_validity_time_t quota_validity_time; - pfcp_monitoring_time_t monitoring_time; - pfcp_subsequent_volume_threshold_t subsequent_volume_threshold; - pfcp_subsequent_time_threshold_t subsequent_time_threshold; - pfcp_inactivity_detection_time_t inactivity_detection_time; - pfcp_linked_urr_id_t *linked_urr_id; - pfcp_measurement_information_t measurement_information; - pfcp_time_quota_mechanism_t time_quota_mechanism; - pfcp_aggregated_urrs_t aggregated_urrs; - pfcp_far_id_t far_id_for_quota_action; - pfcp_ethernet_inactivity_timer_t ethernet_inactivity_timer; - pfcp_additional_monitoring_time_t *additional_monitoring_time; -} pfcp_update_urr_t; + pfcp_ie_urr_id_t urr_id; + pfcp_ie_measurement_method_t measurement_method; + pfcp_ie_reporting_triggers_t reporting_triggers; + pfcp_ie_measurement_period_t measurement_period; + pfcp_ie_volume_threshold_t volume_threshold; + pfcp_ie_volume_quota_t volume_quota; + pfcp_ie_time_threshold_t time_threshold; + pfcp_ie_time_quota_t time_quota; + pfcp_ie_quota_holding_time_t quota_holding_time; + pfcp_ie_dropped_dl_traffic_threshold_t dropped_dl_traffic_threshold; + pfcp_ie_quota_validity_time_t quota_validity_time; + pfcp_ie_monitoring_time_t monitoring_time; + pfcp_ie_subsequent_volume_threshold_t subsequent_volume_threshold; + pfcp_ie_subsequent_time_threshold_t subsequent_time_threshold; + pfcp_ie_inactivity_detection_time_t inactivity_detection_time; + pfcp_ie_linked_urr_id_t *linked_urr_id; + pfcp_ie_measurement_information_t measurement_information; + pfcp_ie_time_quota_mechanism_t time_quota_mechanism; + pfcp_ie_aggregated_urrs_t aggregated_urrs; + pfcp_ie_far_id_t far_id_for_quota_action; + pfcp_ie_ethernet_inactivity_timer_t ethernet_inactivity_timer; + pfcp_ie_additional_monitoring_time_t *additional_monitoring_time; +} pfcp_ie_update_urr_t; enum { @@ -1805,8 +1806,8 @@ typedef struct { struct pfcp_group grp; - pfcp_urr_id_t urr_id; -} pfcp_remove_urr_t; + pfcp_ie_urr_id_t urr_id; +} pfcp_ie_remove_urr_t; /* QER related IEs */ @@ -1830,18 +1831,18 @@ typedef struct { struct pfcp_group grp; - pfcp_qer_id_t qer_id; - pfcp_qer_correlation_id_t qer_correlation_id; - pfcp_gate_status_t gate_status; - pfcp_mbr_t mbr; - pfcp_gbr_t gbr; - pfcp_packet_rate_t packet_rate; - pfcp_dl_flow_level_marking_t dl_flow_level_marking; - pfcp_qfi_t qos_flow_identifier; - pfcp_rqi_t reflective_qos; - pfcp_paging_policy_indicator_t paging_policy_indicator; - pfcp_averaging_window_t averaging_window; -} pfcp_create_qer_t; + pfcp_ie_qer_id_t qer_id; + pfcp_ie_qer_correlation_id_t qer_correlation_id; + pfcp_ie_gate_status_t gate_status; + pfcp_ie_mbr_t mbr; + pfcp_ie_gbr_t gbr; + pfcp_ie_packet_rate_t packet_rate; + pfcp_ie_dl_flow_level_marking_t dl_flow_level_marking; + pfcp_ie_qfi_t qos_flow_identifier; + pfcp_ie_rqi_t reflective_qos; + pfcp_ie_paging_policy_indicator_t paging_policy_indicator; + pfcp_ie_averaging_window_t averaging_window; +} pfcp_ie_create_qer_t; enum { @@ -1863,18 +1864,18 @@ typedef struct { struct pfcp_group grp; - pfcp_qer_id_t qer_id; - pfcp_qer_correlation_id_t qer_correlation_id; - pfcp_gate_status_t gate_status; - pfcp_mbr_t mbr; - pfcp_gbr_t gbr; - pfcp_packet_rate_t packet_rate; - pfcp_dl_flow_level_marking_t dl_flow_level_marking; - pfcp_qfi_t qos_flow_identifier; - pfcp_rqi_t reflective_qos; - pfcp_paging_policy_indicator_t paging_policy_indicator; - pfcp_averaging_window_t averaging_window; -} pfcp_update_qer_t; + pfcp_ie_qer_id_t qer_id; + pfcp_ie_qer_correlation_id_t qer_correlation_id; + pfcp_ie_gate_status_t gate_status; + pfcp_ie_mbr_t mbr; + pfcp_ie_gbr_t gbr; + pfcp_ie_packet_rate_t packet_rate; + pfcp_ie_dl_flow_level_marking_t dl_flow_level_marking; + pfcp_ie_qfi_t qos_flow_identifier; + pfcp_ie_rqi_t reflective_qos; + pfcp_ie_paging_policy_indicator_t paging_policy_indicator; + pfcp_ie_averaging_window_t averaging_window; +} pfcp_ie_update_qer_t; enum { @@ -1886,8 +1887,8 @@ typedef struct { struct pfcp_group grp; - pfcp_qer_id_t qer_id; -} pfcp_remove_qer_t; + pfcp_ie_qer_id_t qer_id; +} pfcp_ie_remove_qer_t; /* BAR related IEs */ @@ -1903,10 +1904,11 @@ typedef struct { struct pfcp_group grp; - pfcp_bar_id_t bar_id; - pfcp_downlink_data_notification_delay_t downlink_data_notification_delay; - pfcp_suggested_buffering_packets_count_t suggested_buffering_packets_count; -} pfcp_create_bar_t; + pfcp_ie_bar_id_t bar_id; + pfcp_ie_downlink_data_notification_delay_t downlink_data_notification_delay; + pfcp_ie_suggested_buffering_packets_count_t + suggested_buffering_packets_count; +} pfcp_ie_create_bar_t; enum { @@ -1920,10 +1922,11 @@ typedef struct { struct pfcp_group grp; - pfcp_bar_id_t bar_id; - pfcp_downlink_data_notification_delay_t downlink_data_notification_delay; - pfcp_suggested_buffering_packets_count_t suggested_buffering_packets_count; -} pfcp_update_bar_request_t; + pfcp_ie_bar_id_t bar_id; + pfcp_ie_downlink_data_notification_delay_t downlink_data_notification_delay; + pfcp_ie_suggested_buffering_packets_count_t + suggested_buffering_packets_count; +} pfcp_ie_update_bar_request_t; enum { @@ -1940,13 +1943,14 @@ typedef struct { struct pfcp_group grp; - pfcp_bar_id_t bar_id; - pfcp_downlink_data_notification_delay_t downlink_data_notification_delay; - pfcp_dl_buffering_duration_t dl_buffering_duration; - pfcp_dl_buffering_suggested_packet_count_t + pfcp_ie_bar_id_t bar_id; + pfcp_ie_downlink_data_notification_delay_t downlink_data_notification_delay; + pfcp_ie_dl_buffering_duration_t dl_buffering_duration; + pfcp_ie_dl_buffering_suggested_packet_count_t dl_buffering_suggested_packet_count; - pfcp_suggested_buffering_packets_count_t suggested_buffering_packets_count; -} pfcp_update_bar_response_t; + pfcp_ie_suggested_buffering_packets_count_t + suggested_buffering_packets_count; +} pfcp_ie_update_bar_response_t; enum { @@ -1958,8 +1962,8 @@ typedef struct { struct pfcp_group grp; - pfcp_bar_id_t bar_id; -} pfcp_remove_bar_t; + pfcp_ie_bar_id_t bar_id; +} pfcp_ie_remove_bar_t; enum { @@ -1978,15 +1982,15 @@ typedef struct { struct pfcp_group grp; - pfcp_traffic_endpoint_id_t traffic_endpoint_id; - pfcp_f_teid_t f_teid; - pfcp_network_instance_t network_instance; - pfcp_ue_ip_address_t ue_ip_address; - pfcp_ethernet_pdu_session_information_t ethernet_pdu_session_information; - pfcp_framed_route_t *framed_route; - pfcp_framed_routing_t framed_routing; - pfcp_framed_ipv6_route_t *framed_ipv6_route; -} pfcp_create_traffic_endpoint_t; + pfcp_ie_traffic_endpoint_id_t traffic_endpoint_id; + pfcp_ie_f_teid_t f_teid; + pfcp_ie_network_instance_t network_instance; + pfcp_ie_ue_ip_address_t ue_ip_address; + pfcp_ie_ethernet_pdu_session_information_t ethernet_pdu_session_information; + pfcp_ie_framed_route_t *framed_route; + pfcp_ie_framed_routing_t framed_routing; + pfcp_ie_framed_ipv6_route_t *framed_ipv6_route; +} pfcp_ie_create_traffic_endpoint_t; enum { @@ -2000,10 +2004,10 @@ typedef struct { struct pfcp_group grp; - pfcp_traffic_endpoint_id_t traffic_endpoint_id; - pfcp_f_teid_t f_teid; - pfcp_ue_ip_address_t ue_ip_address; -} pfcp_created_traffic_endpoint_t; + pfcp_ie_traffic_endpoint_id_t traffic_endpoint_id; + pfcp_ie_f_teid_t f_teid; + pfcp_ie_ue_ip_address_t ue_ip_address; +} pfcp_ie_created_traffic_endpoint_t; enum { @@ -2021,14 +2025,14 @@ typedef struct { struct pfcp_group grp; - pfcp_traffic_endpoint_id_t traffic_endpoint_id; - pfcp_f_teid_t f_teid; - pfcp_network_instance_t network_instance; - pfcp_ue_ip_address_t ue_ip_address; - pfcp_framed_route_t *framed_route; - pfcp_framed_routing_t framed_routing; - pfcp_framed_ipv6_route_t *framed_ipv6_route; -} pfcp_update_traffic_endpoint_t; + pfcp_ie_traffic_endpoint_id_t traffic_endpoint_id; + pfcp_ie_f_teid_t f_teid; + pfcp_ie_network_instance_t network_instance; + pfcp_ie_ue_ip_address_t ue_ip_address; + pfcp_ie_framed_route_t *framed_route; + pfcp_ie_framed_routing_t framed_routing; + pfcp_ie_framed_ipv6_route_t *framed_ipv6_route; +} pfcp_ie_update_traffic_endpoint_t; enum { @@ -2040,8 +2044,8 @@ typedef struct { struct pfcp_group grp; - pfcp_traffic_endpoint_id_t traffic_endpoint_id; -} pfcp_remove_traffic_endpoint_t; + pfcp_ie_traffic_endpoint_id_t traffic_endpoint_id; +} pfcp_ie_remove_traffic_endpoint_t; /* PFCP Session Report IEs */ @@ -2058,10 +2062,10 @@ typedef struct { struct pfcp_group grp; - pfcp_application_id_t application_id; - pfcp_application_instance_id_t application_instance_id; - pfcp_flow_information_t flow_information; -} pfcp_application_detection_information_t; + pfcp_ie_application_id_t application_id; + pfcp_ie_application_instance_id_t application_instance_id; + pfcp_ie_flow_information_t flow_information; +} pfcp_ie_application_detection_information_t; enum { @@ -2075,9 +2079,10 @@ typedef struct { struct pfcp_group grp; - pfcp_pdr_id_t *pdr_id; - pfcp_downlink_data_service_information_t *downlink_data_service_information; -} pfcp_downlink_data_report_t; + pfcp_ie_pdr_id_t *pdr_id; + pfcp_ie_downlink_data_service_information_t + *downlink_data_service_information; +} pfcp_ie_downlink_data_report_t; enum { @@ -2089,8 +2094,8 @@ typedef struct { struct pfcp_group grp; - pfcp_f_teid_t *f_teid; -} pfcp_error_indication_report_t; + pfcp_ie_f_teid_t *f_teid; +} pfcp_ie_error_indication_report_t; enum { @@ -2104,9 +2109,9 @@ typedef struct { struct pfcp_group grp; - pfcp_mac_addresses_detected_t mac_addresses_detected; - pfcp_mac_addresses_removed_t mac_addresses_removed; -} pfcp_ethernet_traffic_information_t; + pfcp_ie_mac_addresses_detected_t mac_addresses_detected; + pfcp_ie_mac_addresses_removed_t mac_addresses_removed; +} pfcp_ie_ethernet_traffic_information_t; enum { @@ -2122,11 +2127,11 @@ typedef struct { struct pfcp_group grp; - pfcp_far_id_t far_id; - pfcp_weight_t weight; - pfcp_priority_t priority; - pfcp_urr_id_t urr_id; -} pfcp_access_forwarding_action_information_t; + pfcp_ie_far_id_t far_id; + pfcp_ie_weight_t weight; + pfcp_ie_priority_t priority; + pfcp_ie_urr_id_t urr_id; +} pfcp_ie_access_forwarding_action_information_t; enum { @@ -2142,14 +2147,14 @@ typedef struct { struct pfcp_group grp; - pfcp_mar_id_t mar_id; - pfcp_steering_functionality_t steering_functionality; - pfcp_steering_mode_t steering_mode; - pfcp_access_forwarding_action_information_t + pfcp_ie_mar_id_t mar_id; + pfcp_ie_steering_functionality_t steering_functionality; + pfcp_ie_steering_mode_t steering_mode; + pfcp_ie_access_forwarding_action_information_t access_forwarding_action_information_1; - pfcp_access_forwarding_action_information_t + pfcp_ie_access_forwarding_action_information_t access_forwarding_action_information_2; -} pfcp_create_mar_t; +} pfcp_ie_create_mar_t; enum { @@ -2161,8 +2166,8 @@ typedef struct { struct pfcp_group grp; - pfcp_mar_id_t mar_id; -} pfcp_remove_mar_t; + pfcp_ie_mar_id_t mar_id; +} pfcp_ie_remove_mar_t; enum { @@ -2178,11 +2183,11 @@ typedef struct { struct pfcp_group grp; - pfcp_far_id_t far_id; - pfcp_weight_t weight; - pfcp_priority_t priority; - pfcp_urr_id_t urr_id; -} pfcp_update_access_forwarding_action_information_t; + pfcp_ie_far_id_t far_id; + pfcp_ie_weight_t weight; + pfcp_ie_priority_t priority; + pfcp_ie_urr_id_t urr_id; +} pfcp_ie_update_access_forwarding_action_information_t; enum { @@ -2200,18 +2205,18 @@ typedef struct { struct pfcp_group grp; - pfcp_mar_id_t mar_id; - pfcp_steering_functionality_t steering_functionality; - pfcp_steering_mode_t steering_mode; - pfcp_update_access_forwarding_action_information_t + pfcp_ie_mar_id_t mar_id; + pfcp_ie_steering_functionality_t steering_functionality; + pfcp_ie_steering_mode_t steering_mode; + pfcp_ie_update_access_forwarding_action_information_t update_access_forwarding_action_information_1; - pfcp_update_access_forwarding_action_information_t + pfcp_ie_update_access_forwarding_action_information_t update_access_forwarding_action_information_2; - pfcp_access_forwarding_action_information_t + pfcp_ie_access_forwarding_action_information_t access_forwarding_action_information_1; - pfcp_access_forwarding_action_information_t + pfcp_ie_access_forwarding_action_information_t access_forwarding_action_information_2; -} pfcp_update_mar_t; +} pfcp_ie_update_mar_t; /* Usage Report IEs */ @@ -2243,26 +2248,27 @@ typedef struct { struct pfcp_group grp; - pfcp_urr_id_t urr_id; - pfcp_ur_seqn_t ur_seqn; - pfcp_usage_report_trigger_t usage_report_trigger; - pfcp_start_time_t start_time; - pfcp_end_time_t end_time; - pfcp_volume_measurement_t volume_measurement; - pfcp_duration_measurement_t duration_measurement; - pfcp_application_detection_information_t application_detection_information; - pfcp_ue_ip_address_t ue_ip_address; - pfcp_network_instance_t network_instance; - pfcp_time_of_first_packet_t time_of_first_packet; - pfcp_time_of_last_packet_t time_of_last_packet; - pfcp_usage_information_t usage_information; - pfcp_query_urr_reference_t query_urr_reference; - pfcp_event_time_stamp_t *event_time_stamp; - pfcp_ethernet_traffic_information_t ethernet_traffic_information; - pfcp_tp_now_t tp_now; - pfcp_tp_start_time_t tp_start_time; - pfcp_tp_end_time_t tp_end_time; -} pfcp_usage_report_t; + pfcp_ie_urr_id_t urr_id; + pfcp_ie_ur_seqn_t ur_seqn; + pfcp_ie_usage_report_trigger_t usage_report_trigger; + pfcp_ie_start_time_t start_time; + pfcp_ie_end_time_t end_time; + pfcp_ie_volume_measurement_t volume_measurement; + pfcp_ie_duration_measurement_t duration_measurement; + pfcp_ie_application_detection_information_t + application_detection_information; + pfcp_ie_ue_ip_address_t ue_ip_address; + pfcp_ie_network_instance_t network_instance; + pfcp_ie_time_of_first_packet_t time_of_first_packet; + pfcp_ie_time_of_last_packet_t time_of_last_packet; + pfcp_ie_usage_information_t usage_information; + pfcp_ie_query_urr_reference_t query_urr_reference; + pfcp_ie_event_time_stamp_t *event_time_stamp; + pfcp_ie_ethernet_traffic_information_t ethernet_traffic_information; + pfcp_ie_tp_now_t tp_now; + pfcp_ie_tp_start_time_t tp_start_time; + pfcp_ie_tp_end_time_t tp_end_time; +} pfcp_ie_usage_report_t; enum { @@ -2278,11 +2284,11 @@ typedef struct { struct pfcp_group grp; - pfcp_ue_ip_address_pool_identity_t ue_ip_address_pool_identity; - pfcp_network_instance_t network_instance; - pfcp_ip_version_t ip_version; - pfcp_bbf_nat_port_block_t *port_blocks; -} pfcp_ue_ip_address_pool_information_t; + pfcp_ie_ue_ip_address_pool_identity_t ue_ip_address_pool_identity; + pfcp_ie_network_instance_t network_instance; + pfcp_ie_ip_version_t ip_version; + pfcp_ie_bbf_nat_port_block_t *port_blocks; +} pfcp_ie_ue_ip_address_pool_information_t; enum { @@ -2296,10 +2302,10 @@ typedef struct { struct pfcp_group grp; - pfcp_tp_error_message_t error_message; - pfcp_tp_file_name_t file_name; - pfcp_tp_line_number_t line_number; -} pfcp_tp_error_report_t; + pfcp_ie_tp_error_message_t error_message; + pfcp_ie_tp_file_name_t file_name; + pfcp_ie_tp_line_number_t line_number; +} pfcp_ie_tp_error_report_t; enum { @@ -2313,36 +2319,36 @@ typedef struct { struct pfcp_group grp; - pfcp_bbf_nat_port_block_t block; - pfcp_bbf_nat_outside_address_t outside_addr; - pfcp_bbf_nat_external_port_range_t port_range; -} pfcp_tp_created_binding_t; + pfcp_ie_bbf_nat_port_block_t block; + pfcp_ie_bbf_nat_outside_address_t outside_addr; + pfcp_ie_bbf_nat_external_port_range_t port_range; +} pfcp_ie_tp_created_binding_t; /* PFCP Methods */ -#define PFCP_HEARTBEAT_REQUEST 1 -#define PFCP_HEARTBEAT_RESPONSE 2 -#define PFCP_PFD_MANAGEMENT_REQUEST 3 -#define PFCP_PFD_MANAGEMENT_RESPONSE 4 -#define PFCP_ASSOCIATION_SETUP_REQUEST 5 -#define PFCP_ASSOCIATION_SETUP_RESPONSE 6 -#define PFCP_ASSOCIATION_UPDATE_REQUEST 7 -#define PFCP_ASSOCIATION_UPDATE_RESPONSE 8 -#define PFCP_ASSOCIATION_RELEASE_REQUEST 9 -#define PFCP_ASSOCIATION_RELEASE_RESPONSE 10 -#define PFCP_VERSION_NOT_SUPPORTED_RESPONSE 11 -#define PFCP_NODE_REPORT_REQUEST 12 -#define PFCP_NODE_REPORT_RESPONSE 13 -#define PFCP_SESSION_SET_DELETION_REQUEST 14 -#define PFCP_SESSION_SET_DELETION_RESPONSE 15 -#define PFCP_SESSION_ESTABLISHMENT_REQUEST 50 -#define PFCP_SESSION_ESTABLISHMENT_RESPONSE 51 -#define PFCP_SESSION_MODIFICATION_REQUEST 52 -#define PFCP_SESSION_MODIFICATION_RESPONSE 53 -#define PFCP_SESSION_DELETION_REQUEST 54 -#define PFCP_SESSION_DELETION_RESPONSE 55 -#define PFCP_SESSION_REPORT_REQUEST 56 -#define PFCP_SESSION_REPORT_RESPONSE 57 +#define PFCP_MSG_HEARTBEAT_REQUEST 1 +#define PFCP_MSG_HEARTBEAT_RESPONSE 2 +#define PFCP_MSG_PFD_MANAGEMENT_REQUEST 3 +#define PFCP_MSG_PFD_MANAGEMENT_RESPONSE 4 +#define PFCP_MSG_ASSOCIATION_SETUP_REQUEST 5 +#define PFCP_MSG_ASSOCIATION_SETUP_RESPONSE 6 +#define PFCP_MSG_ASSOCIATION_UPDATE_REQUEST 7 +#define PFCP_MSG_ASSOCIATION_UPDATE_RESPONSE 8 +#define PFCP_MSG_ASSOCIATION_RELEASE_REQUEST 9 +#define PFCP_MSG_ASSOCIATION_RELEASE_RESPONSE 10 +#define PFCP_MSG_VERSION_NOT_SUPPORTED_RESPONSE 11 +#define PFCP_MSG_NODE_REPORT_REQUEST 12 +#define PFCP_MSG_NODE_REPORT_RESPONSE 13 +#define PFCP_MSG_SESSION_SET_DELETION_REQUEST 14 +#define PFCP_MSG_SESSION_SET_DELETION_RESPONSE 15 +#define PFCP_MSG_SESSION_ESTABLISHMENT_REQUEST 50 +#define PFCP_MSG_SESSION_ESTABLISHMENT_RESPONSE 51 +#define PFCP_MSG_SESSION_MODIFICATION_REQUEST 52 +#define PFCP_MSG_SESSION_MODIFICATION_RESPONSE 53 +#define PFCP_MSG_SESSION_DELETION_REQUEST 54 +#define PFCP_MSG_SESSION_DELETION_RESPONSE 55 +#define PFCP_MSG_SESSION_REPORT_REQUEST 56 +#define PFCP_MSG_SESSION_REPORT_RESPONSE 57 enum { @@ -2355,11 +2361,11 @@ enum struct pfcp_response { - pfcp_node_id_t node_id; - pfcp_cause_t cause; - pfcp_offending_ie_t offending_ie; - pfcp_recovery_time_stamp_t recovery_time_stamp; - pfcp_tp_error_report_t tp_error_report; + pfcp_ie_node_id_t node_id; + pfcp_ie_cause_t cause; + pfcp_ie_offending_ie_t offending_ie; + pfcp_ie_recovery_time_stamp_t recovery_time_stamp; + pfcp_ie_tp_error_report_t tp_error_report; }; enum @@ -2369,7 +2375,7 @@ enum struct pfcp_request { - pfcp_node_id_t node_id; + pfcp_ie_node_id_t node_id; }; typedef struct @@ -2388,8 +2394,8 @@ typedef struct { struct pfcp_group grp; - pfcp_recovery_time_stamp_t recovery_time_stamp; -} pfcp_heartbeat_request_t; + pfcp_ie_recovery_time_stamp_t recovery_time_stamp; +} pfcp_msg_heartbeat_request_t; enum { @@ -2401,8 +2407,8 @@ typedef struct { struct pfcp_group grp; - pfcp_application_id_pfds_t *application_id_pfds; -} pfcp_pfd_management_request_t; + pfcp_ie_application_id_pfds_t *application_id_pfds; +} pfcp_msg_pfd_management_request_t; enum { @@ -2423,16 +2429,16 @@ typedef struct struct pfcp_group grp; struct pfcp_request request; - pfcp_recovery_time_stamp_t recovery_time_stamp; - pfcp_cp_function_features_t cp_function_features; - pfcp_up_function_features_t up_function_features; - pfcp_ue_ip_address_pool_information_t *ue_ip_address_pool_information; - pfcp_user_plane_ip_resource_information_t + pfcp_ie_recovery_time_stamp_t recovery_time_stamp; + pfcp_ie_cp_function_features_t cp_function_features; + pfcp_ie_up_function_features_t up_function_features; + pfcp_ie_ue_ip_address_pool_information_t *ue_ip_address_pool_information; + pfcp_ie_user_plane_ip_resource_information_t *user_plane_ip_resource_information; - pfcp_tp_build_id_t tp_build_id; - pfcp_alternative_smf_ip_address_t *alternative_smf_ip_address; - pfcp_smf_set_id_t smf_set_id; -} pfcp_association_setup_request_t; + pfcp_ie_tp_build_id_t tp_build_id; + pfcp_ie_alternative_smf_ip_address_t *alternative_smf_ip_address; + pfcp_ie_smf_set_id_t smf_set_id; +} pfcp_msg_association_setup_request_t; enum { @@ -2455,17 +2461,17 @@ typedef struct struct pfcp_group grp; struct pfcp_request request; - pfcp_cp_function_features_t cp_function_features; - pfcp_up_function_features_t up_function_features; - pfcp_pfcp_association_release_request_t pfcp_association_release_request; - pfcp_graceful_release_period_t graceful_release_period; - pfcp_ue_ip_address_pool_information_t *ue_ip_address_pool_information; - pfcp_user_plane_ip_resource_information_t + pfcp_ie_cp_function_features_t cp_function_features; + pfcp_ie_up_function_features_t up_function_features; + pfcp_ie_pfcp_association_release_request_t pfcp_association_release_request; + pfcp_ie_graceful_release_period_t graceful_release_period; + pfcp_ie_ue_ip_address_pool_information_t *ue_ip_address_pool_information; + pfcp_ie_user_plane_ip_resource_information_t *user_plane_ip_resource_information; - pfcp_pfcpaureq_flags_t pfcpaureq_flags; - pfcp_alternative_smf_ip_address_t *alternative_smf_ip_address; - pfcp_smf_set_id_t smf_set_id; -} pfcp_association_update_request_t; + pfcp_ie_pfcpaureq_flags_t pfcpaureq_flags; + pfcp_ie_alternative_smf_ip_address_t *alternative_smf_ip_address; + pfcp_ie_smf_set_id_t smf_set_id; +} pfcp_msg_association_update_request_t; enum { @@ -2478,7 +2484,7 @@ typedef struct struct pfcp_group grp; struct pfcp_request request; -} pfcp_association_release_request_t; +} pfcp_msg_association_release_request_t; enum { @@ -2501,19 +2507,19 @@ typedef struct { struct pfcp_group grp; - pfcp_node_id_t node_id; - pfcp_cause_t cause; - pfcp_tp_error_report_t tp_error_report; - pfcp_recovery_time_stamp_t recovery_time_stamp; - pfcp_cp_function_features_t cp_function_features; - pfcp_up_function_features_t up_function_features; - pfcp_ue_ip_address_pool_information_t *ue_ip_address_pool_information; - pfcp_user_plane_ip_resource_information_t + pfcp_ie_node_id_t node_id; + pfcp_ie_cause_t cause; + pfcp_ie_tp_error_report_t tp_error_report; + pfcp_ie_recovery_time_stamp_t recovery_time_stamp; + pfcp_ie_cp_function_features_t cp_function_features; + pfcp_ie_up_function_features_t up_function_features; + pfcp_ie_ue_ip_address_pool_information_t *ue_ip_address_pool_information; + pfcp_ie_user_plane_ip_resource_information_t *user_plane_ip_resource_information; - pfcp_bbf_up_function_features_t bbf_up_function_features; - pfcp_tp_build_id_t tp_build_id; - pfcp_smf_set_id_t smf_set_id; -} pfcp_association_procedure_response_t; + pfcp_ie_bbf_up_function_features_t bbf_up_function_features; + pfcp_ie_tp_build_id_t tp_build_id; + pfcp_ie_smf_set_id_t smf_set_id; +} pfcp_msg_association_procedure_response_t; enum { @@ -2528,9 +2534,9 @@ typedef struct struct pfcp_group grp; struct pfcp_request request; - pfcp_node_report_type_t node_report_type; - pfcp_user_plane_path_failure_report_t user_plane_path_failure_report; -} pfcp_node_report_request_t; + pfcp_ie_node_report_type_t node_report_type; + pfcp_ie_user_plane_path_failure_report_t user_plane_path_failure_report; +} pfcp_msg_node_report_request_t; enum { @@ -2544,8 +2550,8 @@ typedef struct struct pfcp_group grp; struct pfcp_request request; - pfcp_fq_csid_t *fq_csid; -} pfcp_session_set_deletion_request_t; + pfcp_ie_fq_csid_t *fq_csid; +} pfcp_msg_session_set_deletion_request_t; enum { @@ -2572,21 +2578,21 @@ typedef struct struct pfcp_group grp; struct pfcp_request request; - pfcp_f_seid_t f_seid; - pfcp_create_pdr_t *create_pdr; - pfcp_create_far_t *create_far; - pfcp_create_urr_t *create_urr; - pfcp_create_qer_t *create_qer; - pfcp_create_bar_t *create_bar; - pfcp_create_traffic_endpoint_t *create_traffic_endpoint; - pfcp_pdn_type_t pdn_type; - pfcp_fq_csid_t *fq_csid; - pfcp_user_plane_inactivity_timer_t user_plane_inactivity_timer; - pfcp_user_id_t user_id; - pfcp_trace_information_t trace_information; - pfcp_apn_dnn_t apn_dnn; - pfcp_create_mar_t create_mar; -} pfcp_session_establishment_request_t; + pfcp_ie_f_seid_t f_seid; + pfcp_ie_create_pdr_t *create_pdr; + pfcp_ie_create_far_t *create_far; + pfcp_ie_create_urr_t *create_urr; + pfcp_ie_create_qer_t *create_qer; + pfcp_ie_create_bar_t *create_bar; + pfcp_ie_create_traffic_endpoint_t *create_traffic_endpoint; + pfcp_ie_pdn_type_t pdn_type; + pfcp_ie_fq_csid_t *fq_csid; + pfcp_ie_user_plane_inactivity_timer_t user_plane_inactivity_timer; + pfcp_ie_user_id_t user_id; + pfcp_ie_trace_information_t trace_information; + pfcp_ie_apn_dnn_t apn_dnn; + pfcp_ie_create_mar_t create_mar; +} pfcp_msg_session_establishment_request_t; enum { @@ -2625,40 +2631,40 @@ typedef struct { struct pfcp_group grp; - pfcp_f_seid_t f_seid; - pfcp_remove_pdr_t *remove_pdr; - pfcp_remove_far_t *remove_far; - pfcp_remove_urr_t *remove_urr; - pfcp_remove_qer_t *remove_qer; - pfcp_remove_bar_t *remove_bar; - pfcp_remove_traffic_endpoint_t *remove_traffic_endpoint; - pfcp_create_pdr_t *create_pdr; - pfcp_create_far_t *create_far; - pfcp_create_urr_t *create_urr; - pfcp_create_qer_t *create_qer; - pfcp_create_bar_t *create_bar; - pfcp_create_traffic_endpoint_t *create_traffic_endpoint; - pfcp_update_pdr_t *update_pdr; - pfcp_update_far_t *update_far; - pfcp_update_urr_t *update_urr; - pfcp_update_qer_t *update_qer; - pfcp_update_bar_request_t *update_bar; - pfcp_update_traffic_endpoint_t *update_traffic_endpoint; - pfcp_pfcpsmreq_flags_t pfcpsmreq_flags; - pfcp_query_urr_t *query_urr; - pfcp_fq_csid_t *fq_csid; - pfcp_user_plane_inactivity_timer_t user_plane_inactivity_timer; - pfcp_query_urr_reference_t query_urr_reference; - pfcp_trace_information_t trace_information; - pfcp_create_mar_t *remove_mar; - pfcp_create_mar_t *update_mar; - pfcp_create_mar_t *create_mar; -} pfcp_session_modification_request_t; + pfcp_ie_f_seid_t f_seid; + pfcp_ie_remove_pdr_t *remove_pdr; + pfcp_ie_remove_far_t *remove_far; + pfcp_ie_remove_urr_t *remove_urr; + pfcp_ie_remove_qer_t *remove_qer; + pfcp_ie_remove_bar_t *remove_bar; + pfcp_ie_remove_traffic_endpoint_t *remove_traffic_endpoint; + pfcp_ie_create_pdr_t *create_pdr; + pfcp_ie_create_far_t *create_far; + pfcp_ie_create_urr_t *create_urr; + pfcp_ie_create_qer_t *create_qer; + pfcp_ie_create_bar_t *create_bar; + pfcp_ie_create_traffic_endpoint_t *create_traffic_endpoint; + pfcp_ie_update_pdr_t *update_pdr; + pfcp_ie_update_far_t *update_far; + pfcp_ie_update_urr_t *update_urr; + pfcp_ie_update_qer_t *update_qer; + pfcp_ie_update_bar_request_t *update_bar; + pfcp_ie_update_traffic_endpoint_t *update_traffic_endpoint; + pfcp_ie_pfcpsmreq_flags_t pfcpsmreq_flags; + pfcp_ie_query_urr_t *query_urr; + pfcp_ie_fq_csid_t *fq_csid; + pfcp_ie_user_plane_inactivity_timer_t user_plane_inactivity_timer; + pfcp_ie_query_urr_reference_t query_urr_reference; + pfcp_ie_trace_information_t trace_information; + pfcp_ie_create_mar_t *remove_mar; + pfcp_ie_create_mar_t *update_mar; + pfcp_ie_create_mar_t *create_mar; +} pfcp_msg_session_modification_request_t; typedef struct { struct pfcp_group grp; -} pfcp_session_deletion_request_t; +} pfcp_msg_session_deletion_request_t; enum { @@ -2684,22 +2690,22 @@ typedef struct { struct pfcp_group grp; - pfcp_node_id_t node_id; - pfcp_cause_t cause; - pfcp_offending_ie_t offending_ie; - pfcp_tp_error_report_t tp_error_report; - pfcp_f_seid_t up_f_seid; - pfcp_created_pdr_t *created_pdr; - pfcp_load_control_information_t load_control_information; - pfcp_overload_control_information_t overload_control_information; - pfcp_usage_report_t *usage_report; - pfcp_fq_csid_t *fq_csid; - pfcp_failed_rule_id_t failed_rule_id; - pfcp_additional_usage_reports_information_t + pfcp_ie_node_id_t node_id; + pfcp_ie_cause_t cause; + pfcp_ie_offending_ie_t offending_ie; + pfcp_ie_tp_error_report_t tp_error_report; + pfcp_ie_f_seid_t up_f_seid; + pfcp_ie_created_pdr_t *created_pdr; + pfcp_ie_load_control_information_t load_control_information; + pfcp_ie_overload_control_information_t overload_control_information; + pfcp_ie_usage_report_t *usage_report; + pfcp_ie_fq_csid_t *fq_csid; + pfcp_ie_failed_rule_id_t failed_rule_id; + pfcp_ie_additional_usage_reports_information_t additional_usage_reports_information; - pfcp_created_traffic_endpoint_t *created_traffic_endpoint; - pfcp_tp_created_binding_t created_binding; -} pfcp_session_procedure_response_t; + pfcp_ie_created_traffic_endpoint_t *created_traffic_endpoint; + pfcp_ie_tp_created_binding_t created_binding; +} pfcp_msg_session_procedure_response_t; enum { @@ -2719,17 +2725,17 @@ typedef struct { struct pfcp_group grp; - pfcp_report_type_t report_type; - pfcp_downlink_data_report_t downlink_data_report; - pfcp_usage_report_t *usage_report; - pfcp_error_indication_report_t error_indication_report; - pfcp_load_control_information_t load_control_information; - pfcp_overload_control_information_t overload_control_information; - pfcp_additional_usage_reports_information_t + pfcp_ie_report_type_t report_type; + pfcp_ie_downlink_data_report_t downlink_data_report; + pfcp_ie_usage_report_t *usage_report; + pfcp_ie_error_indication_report_t error_indication_report; + pfcp_ie_load_control_information_t load_control_information; + pfcp_ie_overload_control_information_t overload_control_information; + pfcp_ie_additional_usage_reports_information_t additional_usage_reports_information; - pfcp_pfcpsrreq_flags_t pfcpsrreq_flags; - pfcp_f_seid_t old_cp_f_seid; -} pfcp_session_report_request_t; + pfcp_ie_pfcpsrreq_flags_t pfcpsrreq_flags; + pfcp_ie_f_seid_t old_cp_f_seid; +} pfcp_msg_session_report_request_t; enum { @@ -2748,11 +2754,11 @@ typedef struct struct pfcp_group grp; struct pfcp_response response; - pfcp_update_bar_response_t *update_bar; - pfcp_pfcpsrrsp_flags_t pfcpsrrsp_flags; - pfcp_f_seid_t cp_f_seid; - pfcp_f_teid_t n4_u_f_teid; -} pfcp_session_report_response_t; + pfcp_ie_update_bar_response_t *update_bar; + pfcp_ie_pfcpsrrsp_flags_t pfcpsrrsp_flags; + pfcp_ie_f_seid_t cp_f_seid; + pfcp_ie_f_teid_t n4_u_f_teid; +} pfcp_msg_session_report_response_t; typedef struct { @@ -2763,44 +2769,45 @@ typedef struct { struct pfcp_group grp; pfcp_simple_response_t simple_response; - pfcp_heartbeat_request_t heartbeat_request; - pfcp_pfd_management_request_t pfd_management_request; - pfcp_association_setup_request_t association_setup_request; - pfcp_association_update_request_t association_update_request; - pfcp_association_release_request_t association_release_request; - pfcp_association_procedure_response_t association_procedure_response; - /* pfcp_version_not_supported_response_t version_not_supported_response; */ - pfcp_node_report_request_t node_report_request; - - pfcp_session_set_deletion_request_t session_set_deletion_request; - pfcp_session_establishment_request_t session_establishment_request; - pfcp_session_modification_request_t session_modification_request; - pfcp_session_deletion_request_t session_deletion_request; - pfcp_session_procedure_response_t session_procedure_response; - pfcp_session_report_request_t session_report_request; - pfcp_session_report_response_t session_report_response; + pfcp_msg_heartbeat_request_t heartbeat_request; + pfcp_msg_pfd_management_request_t pfd_management_request; + pfcp_msg_association_setup_request_t association_setup_request; + pfcp_msg_association_update_request_t association_update_request; + pfcp_msg_association_release_request_t association_release_request; + pfcp_msg_association_procedure_response_t association_setup_response; + /* pfcp_msg_version_not_supported_response_t + * version_not_supported_response; */ + pfcp_msg_node_report_request_t node_report_request; + + pfcp_msg_session_set_deletion_request_t session_set_deletion_request; + pfcp_msg_session_establishment_request_t session_establishment_request; + pfcp_msg_session_modification_request_t session_modification_request; + pfcp_msg_session_deletion_request_t session_deletion_request; + pfcp_msg_session_procedure_response_t session_procedure_response; + pfcp_msg_session_report_request_t session_report_request; + pfcp_msg_session_report_response_t session_report_response; }; } pfcp_decoded_msg_t; /* Quick message accessors for use without decoding */ #define pfcp_node_msg_seq(V) \ - ((((pfcp_header_t *) (V))->msg_hdr.sequence[0] << 16) + \ - (((pfcp_header_t *) (V))->msg_hdr.sequence[1] << 8) + \ - ((pfcp_header_t *) (V))->msg_hdr.sequence[2]) + ((((pfcp_msg_header_t *) (V))->node_hdr.sequence[0] << 16) + \ + (((pfcp_msg_header_t *) (V))->node_hdr.sequence[1] << 8) + \ + ((pfcp_msg_header_t *) (V))->node_hdr.sequence[2]) #define pfcp_session_msg_seq(V) \ - ((((pfcp_header_t *) (V))->session_hdr.sequence[0] << 16) + \ - (((pfcp_header_t *) (V))->session_hdr.sequence[1] << 8) + \ - ((pfcp_header_t *) (V))->session_hdr.sequence[2]) + ((((pfcp_msg_header_t *) (V))->session_hdr.sequence[0] << 16) + \ + (((pfcp_msg_header_t *) (V))->session_hdr.sequence[1] << 8) + \ + ((pfcp_msg_header_t *) (V))->session_hdr.sequence[2]) #define pfcp_session_msg_seid(V) \ - be64toh (((pfcp_header_t *) (V))->session_hdr.seid) + be64toh (((pfcp_msg_header_t *) (V))->session_hdr.seid) -#define pfcp_msg_version(V) ((pfcp_header_t *) (V))->version -#define pfcp_msg_type(V) ((pfcp_header_t *) (V))->type +#define pfcp_msg_version(V) ((pfcp_msg_header_t *) (V))->version +#define pfcp_msg_type(V) ((pfcp_msg_header_t *) (V))->type #define pfcp_msg_length(V) \ - clib_net_to_host_u16 (((pfcp_header_t *) (V))->length) + clib_net_to_host_u16 (((pfcp_msg_header_t *) (V))->length) #define pfcp_msg_version_valid(V) (pfcp_msg_version (V) == 1) #define pfcp_msg_enough_len(V, L) \ @@ -2808,40 +2815,40 @@ typedef struct (L) >= (pfcp_msg_s_flag (V) ? SESSION_MSG_HDR_LEN : NODE_MSG_HDR_LEN)) #define pfcp_msg_seq(V) \ - (((pfcp_header_t *) (V))->s_flag ? pfcp_session_msg_seq (V) : \ - pfcp_node_msg_seq (V)) + (((pfcp_msg_header_t *) (V))->s_flag ? pfcp_session_msg_seq (V) : \ + pfcp_node_msg_seq (V)) -#define pfcp_msg_s_flag(V) (!!(((pfcp_header_t *) (V))->s_flag)) +#define pfcp_msg_s_flag(V) (!!(((pfcp_msg_header_t *) (V))->s_flag)) #define pfcp_msg_seid(V) (pfcp_msg_s_flag (V) ? pfcp_session_msg_seid (V) : ~0) -u8 *format_flags (u8 *s, va_list *args); -u8 *format_enum (u8 *s, va_list *args); -u8 *format_dns_labels (u8 *s, va_list *args); +u8 *format_pfcp_flags (u8 *s, va_list *args); +u8 *format_pfcp_enum (u8 *s, va_list *args); +u8 *format_pfcp_dns_labels (u8 *s, va_list *args); u8 *format_pfcp_msg_type (u8 *s, va_list *args); -u8 *format_pfcp_msg_hdr (u8 *s, va_list *args); -u8 *format_user_plane_ip_resource_information (u8 *s, va_list *args); -u8 *format_redirect_information (u8 *s, va_list *args); -u8 *format_ue_ip_address (u8 *s, va_list *args); -u8 *format_node_id (u8 *s, va_list *args); -u8 *format_f_seid (u8 *s, va_list *args); -u8 *format_smf_set_id (u8 *s, va_list *args); -u8 *format_outer_header_creation (u8 *s, va_list *args); -uword tbcd_len (u8 *in, uword n_bytes); -uword decode_tbcd (u8 *in, uword n_bytes, u8 *out, uword n_out); -u8 *format_tbcd (u8 *s, va_list *args); -u8 *format_dmsg (u8 *s, va_list *args); -u8 *format_user_id (u8 *s0, va_list *args); - -void free_node_id (void *p); -void free_user_id (void *p); - -void cpy_redirect_information (pfcp_redirect_information_t *dst, - pfcp_redirect_information_t *src); -void free_redirect_information (void *p); +u8 *format_pfcp_msg_header (u8 *s, va_list *args); +u8 *format_pfcp_ie_user_plane_ip_resource_information (u8 *s, va_list *args); +u8 *format_pfcp_ie_redirect_information (u8 *s, va_list *args); +u8 *format_pfcp_ie_ue_ip_address (u8 *s, va_list *args); +u8 *format_pfcp_ie_node_id (u8 *s, va_list *args); +u8 *format_pfcp_ie_f_seid (u8 *s, va_list *args); +u8 *format_pfcp_ie_smf_set_id (u8 *s, va_list *args); +u8 *format_pfcp_ie_outer_header_creation (u8 *s, va_list *args); +uword pfcp_tbcd_len (u8 *in, uword n_bytes); +uword decode_pfcp_tbcd (u8 *in, uword n_bytes, u8 *out, uword n_out); +u8 *format_pfcp_tbcd (u8 *s, va_list *args); +u8 *format_pfcp_dmsg (u8 *s, va_list *args); +u8 *format_pfcp_ie_user_id (u8 *s0, va_list *args); + +void free_pfcp_ie_node_id (void *p); +void free_pfcp_ie_user_id (void *p); + +void copy_pfcp_ie_redirect_information (pfcp_ie_redirect_information_t *dst, + pfcp_ie_redirect_information_t *src); +void free_pfcp_ie_redirect_information (void *p); int pfcp_decode_msg (u8 *p, int len, pfcp_decoded_msg_t *dmsg, - pfcp_offending_ie_t **err); + pfcp_ie_offending_ie_t **err); int pfcp_encode_msg (pfcp_decoded_msg_t *dmsg, u8 **vec); void pfcp_encode_version_not_supported_response (u8 **vec); void pfcp_free_dmsg_contents (pfcp_decoded_msg_t *dmsg); diff --git a/upf/unittest.c b/upf/unittest.c index 725bdea..1355d05 100644 --- a/upf/unittest.c +++ b/upf/unittest.c @@ -279,7 +279,7 @@ tbcd_test() int res = 0; u8 sample_value[] = { 0x09, 0x09, 0x60, 0x00, 0xa2, 0xcb, 0xed, 0xf9 }; u8 * expected = "909006002*#abc9"; - u8 * actual = format(0, "%U", format_tbcd, sample_value, sizeof(sample_value)); + u8 * actual = format(0, "%U", format_pfcp_tbcd, sample_value, sizeof(sample_value)); UPF_TEST (vec_len (actual) == strlen (expected) && !memcmp (actual, expected, strlen(expected)), diff --git a/upf/upf.c b/upf/upf.c index 9a6cf40..4367613 100644 --- a/upf/upf.c +++ b/upf/upf.c @@ -363,16 +363,16 @@ upf_tdf_ul_lookup_add_i (u32 tdf_ul_fib_index, const fib_prefix_t *pfx, } int -vnet_upf_node_id_set (const pfcp_node_id_t *node_id) +vnet_upf_node_id_set (const pfcp_ie_node_id_t *node_id) { upf_main_t *gtm = &upf_main; switch (node_id->type) { - case NID_IPv4: - case NID_IPv6: - case NID_FQDN: - free_node_id (>m->node_id); + case PFCP_NID_IPv4: + case PFCP_NID_IPv6: + case PFCP_NID_FQDN: + free_pfcp_ie_node_id (>m->node_id); gtm->node_id = *node_id; return 0; } @@ -635,7 +635,7 @@ upf_init (vlib_main_t *vm) vlib_zero_simple_counter (&sm->upf_simple_counters[UPF_##E], 0); foreach_upf_counter_name #undef _ - sm->node_id.type = NID_FQDN; + sm->node_id.type = PFCP_NID_FQDN; sm->node_id.fqdn = format (0, (char *) "\x03upg"); sm->nat_pool_index_by_name = diff --git a/upf/upf.h b/upf/upf.h index f483e1b..808aafe 100644 --- a/upf/upf.h +++ b/upf/upf.h @@ -457,7 +457,7 @@ typedef struct /* Packet Detection Information */ typedef struct { - pfcp_source_interface_t src_intf; + pfcp_ie_source_interface_t src_intf; u32 nwi_index; u32 fields; @@ -466,8 +466,8 @@ typedef struct #define F_PDI_SDF_FILTER 0x0008 #define F_PDI_APPLICATION_ID 0x0010 - pfcp_f_teid_t teid; - pfcp_ue_ip_address_t ue_addr; + pfcp_ie_f_teid_t teid; + pfcp_ie_ue_ip_address_t ue_addr; acl_rule_t *acl; adr_rule_t adr; } upf_pdi_t; @@ -493,13 +493,13 @@ typedef struct #define FAR_F_OUTER_HEADER_CREATION BIT (1) #define FAR_F_FORWARDING_POLICY BIT (2) - pfcp_destination_interface_t dst_intf; + pfcp_ie_destination_interface_t dst_intf; u32 dst_sw_if_index; u32 nwi_index; - pfcp_redirect_information_t redirect_information; - pfcp_outer_header_creation_t outer_header_creation; - pfcp_forwarding_policy_t forwarding_policy; + pfcp_ie_redirect_information_t redirect_information; + pfcp_ie_outer_header_creation_t outer_header_creation; + pfcp_ie_forwarding_policy_t forwarding_policy; uword fp_pool_index; u32 peer_idx; @@ -711,7 +711,7 @@ typedef struct uword *traffic_by_ue; urr_time_t traffic_timer; - pfcp_linked_urr_id_t *linked_urr_ids; + pfcp_ie_linked_urr_id_t *linked_urr_ids; uword *liusa_bitmap; } upf_urr_t; @@ -724,7 +724,7 @@ typedef struct policer_t policer[UPF_DIRECTION_MAX]; u64 ref_cnt; - pfcp_mbr_t mbr; + pfcp_ie_mbr_t mbr; } upf_qer_policer_t; typedef struct @@ -736,7 +736,7 @@ typedef struct u8 gate_status[UPF_DIRECTION_MAX]; - pfcp_mbr_t mbr; + pfcp_ie_mbr_t mbr; clib_bihash_kv_8_8_t policer; } upf_qer_t; @@ -823,7 +823,7 @@ typedef struct f64 unix_time_start; - pfcp_user_id_t user_id; + pfcp_ie_user_id_t user_id; session_flows_list_t flows; @@ -912,8 +912,8 @@ typedef struct /* Required for pool_get_aligned */ CLIB_CACHE_LINE_ALIGN_MARK (cacheline0); - pfcp_node_id_t node_id; - pfcp_recovery_time_stamp_t recovery_time_stamp; + pfcp_ie_node_id_t node_id; + pfcp_ie_recovery_time_stamp_t recovery_time_stamp; session_handle_t session_handle; ip46_address_t rmt_addr; @@ -1090,7 +1090,7 @@ typedef struct u32 pfcp_spec_version; u32 rand_base; - pfcp_node_id_t node_id; + pfcp_ie_node_id_t node_id; upf_nat_pool_t *nat_pools; uword *nat_pool_index_by_name; @@ -1159,7 +1159,7 @@ int vnet_upf_tdf_ul_enable_disable (fib_protocol_t fproto, u32 sw_if_index, int vnet_upf_tdf_ul_table_add_del (u32 vrf, fib_protocol_t fproto, u32 table_id, u8 add); -int vnet_upf_node_id_set (const pfcp_node_id_t *node_id); +int vnet_upf_node_id_set (const pfcp_ie_node_id_t *node_id); int vnet_upf_pfcp_heartbeat_config (u32 timeout, u32 retires); diff --git a/upf/upf_adf.c b/upf/upf_adf.c index f8eb367..9cec317 100644 --- a/upf/upf_adf.c +++ b/upf/upf_adf.c @@ -298,15 +298,15 @@ app_scan_for_uri (u8 *uri, flow_entry_t *flow, struct rules *active, addr = &flow->key.ip[direction ^ flow->is_reverse ^ - !!(pdr->pdi.ue_addr.flags & IE_UE_IP_ADDRESS_SD)]; + !!(pdr->pdi.ue_addr.flags & PFCP_UE_IP_ADDRESS_SD)]; upf_debug ("Using %U as UE IP, S/D: %u", format_ip46_address, addr, IP46_TYPE_ANY, - !!(pdr->pdi.ue_addr.flags & IE_UE_IP_ADDRESS_SD)); + !!(pdr->pdi.ue_addr.flags & PFCP_UE_IP_ADDRESS_SD)); if (ip46_address_is_ip4 (addr)) { - if (!(pdr->pdi.ue_addr.flags & IE_UE_IP_ADDRESS_V4)) + if (!(pdr->pdi.ue_addr.flags & PFCP_UE_IP_ADDRESS_V4)) { adf_debug ("skip PDR %u for no UE IPv4 address\n", pdr->id); continue; @@ -315,7 +315,8 @@ app_scan_for_uri (u8 *uri, flow_entry_t *flow, struct rules *active, { adf_debug ( "skip PDR %u for UE IPv4 mismatch, S/D: %u, %U != %U\n", - pdr->id, !!(pdr->pdi.ue_addr.flags & IE_UE_IP_ADDRESS_SD), + pdr->id, + !!(pdr->pdi.ue_addr.flags & PFCP_UE_IP_ADDRESS_SD), format_ip4_address, &pdr->pdi.ue_addr.ip4, format_ip46_address, addr, IP46_TYPE_ANY); continue; @@ -323,7 +324,7 @@ app_scan_for_uri (u8 *uri, flow_entry_t *flow, struct rules *active, } else { - if (!(pdr->pdi.ue_addr.flags & IE_UE_IP_ADDRESS_V6)) + if (!(pdr->pdi.ue_addr.flags & PFCP_UE_IP_ADDRESS_V6)) { adf_debug ("skip PDR %u for no UE IPv6 address\n", pdr->id); continue; @@ -334,7 +335,8 @@ app_scan_for_uri (u8 *uri, flow_entry_t *flow, struct rules *active, { adf_debug ( "skip PDR %u for UE IPv6 mismatch, S/D: %u, %U != %U\n", - pdr->id, !!(pdr->pdi.ue_addr.flags & IE_UE_IP_ADDRESS_SD), + pdr->id, + !!(pdr->pdi.ue_addr.flags & PFCP_UE_IP_ADDRESS_SD), format_ip6_address, &pdr->pdi.ue_addr.ip6, format_ip46_address, addr, IP46_TYPE_ANY); continue; diff --git a/upf/upf_api.c b/upf/upf_api.c index f44a25a..55b9cc0 100644 --- a/upf/upf_api.c +++ b/upf/upf_api.c @@ -254,14 +254,14 @@ vl_api_upf_pfcp_reencode_t_handler (vl_api_upf_pfcp_reencode_t *mp) upf_main_t *sm = &upf_main; vl_api_upf_pfcp_reencode_reply_t *rmp; pfcp_decoded_msg_t dmsg; - pfcp_offending_ie_t *err = 0; + pfcp_ie_offending_ie_t *err = 0; u8 *reply_data = 0; int rv = 0; int data_len = 0, packet_len = clib_net_to_host_u32 (mp->packet_len); if ((rv = pfcp_decode_msg (mp->packet, packet_len, &dmsg, &err)) != 0) { - pfcp_offending_ie_t *cur_err; + pfcp_ie_offending_ie_t *cur_err; vec_foreach (cur_err, err) { clib_warning ("offending IE: %d", *cur_err); @@ -294,15 +294,15 @@ vl_api_upf_pfcp_format_t_handler (vl_api_upf_pfcp_reencode_t *mp) upf_main_t *sm = &upf_main; vl_api_upf_pfcp_format_reply_t *rmp; pfcp_decoded_msg_t dmsg; - pfcp_offending_ie_t *err = 0; + pfcp_ie_offending_ie_t *err = 0; u8 *s; - /* pfcp_offending_ie_t *err = NULL; */ + /* pfcp_ie_offending_ie_t *err = NULL; */ int rv = 0; int text_len = 0, packet_len = clib_net_to_host_u32 (mp->packet_len); if ((rv = pfcp_decode_msg (mp->packet, packet_len, &dmsg, &err)) != 0) { - pfcp_offending_ie_t *cur_err; + pfcp_ie_offending_ie_t *cur_err; vec_foreach (cur_err, err) { clib_warning ("offending IE: %d", *cur_err); @@ -312,7 +312,7 @@ vl_api_upf_pfcp_format_t_handler (vl_api_upf_pfcp_reencode_t *mp) goto reply; } - s = format (0, "%U\n", format_dmsg, &dmsg); + s = format (0, "%U\n", format_pfcp_dmsg, &dmsg); text_len = vec_len (s); @@ -894,17 +894,17 @@ vl_api_upf_set_node_id_t_handler (vl_api_upf_set_node_id_t *mp) upf_main_t *sm = &upf_main; vl_api_upf_set_node_id_reply_t *rmp = NULL; - pfcp_node_id_t node_id = { 0 }; + pfcp_ie_node_id_t node_id = { 0 }; node_id.type = mp->type; switch (mp->type) { - case NID_IPv4: - case NID_IPv6: + case PFCP_NID_IPv4: + case PFCP_NID_IPv6: ip_address_decode (&mp->ip, &node_id.ip); break; - case NID_FQDN: + case PFCP_NID_FQDN: vec_validate (node_id.fqdn, mp->fqdn_len); memcpy (node_id.fqdn, mp->fqdn, mp->fqdn_len); break; @@ -932,12 +932,12 @@ vl_api_upf_get_node_id_t_handler (vl_api_upf_get_node_id_t *mp) vl_api_upf_get_node_id_reply_t *rmp = NULL; upf_main_t *sm = &upf_main; - pfcp_node_id_t *node = &sm->node_id; + pfcp_ie_node_id_t *node = &sm->node_id; switch (node->type) { - case NID_IPv4: - case NID_IPv6: + case PFCP_NID_IPv4: + case PFCP_NID_IPv6: { rmp = vl_msg_api_alloc (sizeof (*rmp)); clib_memset (rmp, 0, sizeof (*rmp)); @@ -945,7 +945,7 @@ vl_api_upf_get_node_id_t_handler (vl_api_upf_get_node_id_t *mp) ip_address_encode (&ip_addr_46 (node), IP46_TYPE_ANY, &rmp->ip); break; } - case NID_FQDN: + case PFCP_NID_FQDN: { u8 len; len = strlen (node->fqdn); diff --git a/upf/upf_cli.c b/upf/upf_cli.c index dc25436..6ad3bbe 100644 --- a/upf/upf_cli.c +++ b/upf/upf_cli.c @@ -549,7 +549,7 @@ upf_show_nwi_command_fn (vlib_main_t *vm, unformat_input_t *main_input, vlib_cli_output (vm, "%U, ip4-table-id %u, ip6-table-id %u, ipfix-policy " "%U, ipfix-collector-ip %U\n", - format_dns_labels, nwi->name, fib4->hash.table_id, + format_pfcp_dns_labels, nwi->name, fib4->hash.table_id, fib6->table_id, format_upf_ipfix_policy, nwi->ipfix_policy, format_ip_address, &nwi->ipfix_collector_ip); @@ -854,7 +854,7 @@ upf_node_id_command_fn (vlib_main_t *vm, unformat_input_t *main_input, unformat_input_t _line_input, *line_input = &_line_input; clib_error_t *error = NULL; u8 *fqdn = 0; - pfcp_node_id_t node_id = { .type = (u8) ~0 }; + pfcp_ie_node_id_t node_id = { .type = (u8) ~0 }; if (!unformat_user (main_input, unformat_line_input, line_input)) return 0; @@ -863,19 +863,19 @@ upf_node_id_command_fn (vlib_main_t *vm, unformat_input_t *main_input, { if (unformat (line_input, "fqdn %_%v%_", &fqdn)) { - node_id.type = NID_FQDN; + node_id.type = PFCP_NID_FQDN; node_id.fqdn = upf_name_to_labels (fqdn); vec_free (fqdn); } else if (unformat (line_input, "ip4 %U", unformat_ip46_address, &node_id.ip, IP46_TYPE_ANY)) { - node_id.type = NID_IPv4; + node_id.type = PFCP_NID_IPv4; } else if (unformat (line_input, "ip6 %U", unformat_ip46_address, &node_id.ip, IP46_TYPE_ANY)) { - node_id.type = NID_IPv6; + node_id.type = PFCP_NID_IPv6; } else { @@ -905,7 +905,7 @@ upf_show_node_id_command_fn (vlib_main_t *vm, unformat_input_t *main_input, vlib_cli_command_t *cmd) { upf_main_t *gtm = &upf_main; - vlib_cli_output (vm, "Node ID: %U", format_node_id, >m->node_id); + vlib_cli_output (vm, "Node ID: %U", format_pfcp_ie_node_id, >m->node_id); return NULL; } @@ -955,18 +955,18 @@ upf_gtpu_endpoint_add_del_command_fn (vlib_main_t *vm, vec_free (s); } else if (unformat (line_input, "intf access")) - intf = SRC_INTF_ACCESS; + intf = PFCP_SRC_INTF_ACCESS; else if (unformat (line_input, "intf core")) - intf = SRC_INTF_CORE; + intf = PFCP_SRC_INTF_CORE; else if (unformat (line_input, "intf sgi")) /* * WTF: the specification does permit that, * but what does that mean in terms * of the UPIP IE? */ - intf = SRC_INTF_SGI_LAN; + intf = PFCP_SRC_INTF_SGI_LAN; else if (unformat (line_input, "intf cp")) - intf = SRC_INTF_CP; + intf = PFCP_SRC_INTF_CP; else if (unformat (line_input, "teid %u/%u", &teid, &teidri)) { if (teidri > 7) @@ -1282,22 +1282,23 @@ upf_show_assoc_command_fn (vlib_main_t *vm, unformat_input_t *main_input, if (has_ip && has_fqdn) { - pfcp_node_id_t node_id; + pfcp_ie_node_id_t node_id; if (has_ip) { - node_id.type = ip46_address_is_ip4 (&node_ip) ? NID_IPv4 : NID_IPv6; + node_id.type = + ip46_address_is_ip4 (&node_ip) ? PFCP_NID_IPv4 : PFCP_NID_IPv6; node_id.ip = node_ip; } if (has_fqdn) { - node_id.type = NID_FQDN; + node_id.type = PFCP_NID_FQDN; node_id.fqdn = upf_name_to_labels (fqdn); } node = pfcp_get_association (&node_id); - if (node_id.type == NID_FQDN) + if (node_id.type == PFCP_NID_FQDN) vec_free (node_id.fqdn); if (!node) diff --git a/upf/upf_forward.c b/upf/upf_forward.c index 645f959..ba82e2a 100644 --- a/upf/upf_forward.c +++ b/upf/upf_forward.c @@ -191,12 +191,12 @@ upf_forward (vlib_main_t *vm, vlib_node_runtime_t *node, const char *node_name, { upf_debug ("OUTER HEADER CREATION"); if (far->forward.outer_header_creation.description & - OUTER_HEADER_CREATION_GTP_IP4) + PFCP_OUTER_HEADER_CREATION_GTP_IP4) { next = UPF_FORWARD_NEXT_GTP_IP4_ENCAP; } else if (far->forward.outer_header_creation.description & - OUTER_HEADER_CREATION_GTP_IP6) + PFCP_OUTER_HEADER_CREATION_GTP_IP6) { next = UPF_FORWARD_NEXT_GTP_IP6_ENCAP; } @@ -288,11 +288,11 @@ upf_forward (vlib_main_t *vm, vlib_node_runtime_t *node, const char *node_name, } #define IS_DL(_pdr, _far) \ - ((_pdr)->pdi.src_intf == SRC_INTF_CORE || \ - (_far)->forward.dst_intf == DST_INTF_ACCESS) + ((_pdr)->pdi.src_intf == PFCP_SRC_INTF_CORE || \ + (_far)->forward.dst_intf == PFCP_DST_INTF_ACCESS) #define IS_UL(_pdr, _far) \ - ((_pdr)->pdi.src_intf == SRC_INTF_ACCESS || \ - (_far)->forward.dst_intf == DST_INTF_CORE) + ((_pdr)->pdi.src_intf == PFCP_SRC_INTF_ACCESS || \ + (_far)->forward.dst_intf == PFCP_DST_INTF_CORE) if (!(upf_buffer_opaque (b)->gtpu.flags & BUFFER_FAR_ONLY)) { diff --git a/upf/upf_input.c b/upf/upf_input.c index e94fd52..27a5517 100644 --- a/upf/upf_input.c +++ b/upf/upf_input.c @@ -165,7 +165,7 @@ upf_input (vlib_main_t *vm, vlib_node_runtime_t *node, /* Outer Header Removal */ switch (pdr->outer_header_removal) { - case OUTER_HEADER_REMOVAL_GTP_IP4: /* GTP-U/UDP/IPv4 */ + case PFCP_OUTER_HEADER_REMOVAL_GTP_IP4: /* GTP-U/UDP/IPv4 */ if (PREDICT_FALSE ((upf_buffer_opaque (b)->gtpu.flags & BUFFER_HDR_MASK) != BUFFER_GTP_UDP_IP4)) { @@ -177,7 +177,7 @@ upf_input (vlib_main_t *vm, vlib_node_runtime_t *node, upf_vnet_buffer_l3_hdr_offset_is_current (b); break; - case OUTER_HEADER_REMOVAL_GTP_IP6: /* GTP-U/UDP/IPv6 */ + case PFCP_OUTER_HEADER_REMOVAL_GTP_IP6: /* GTP-U/UDP/IPv6 */ if (PREDICT_FALSE ((upf_buffer_opaque (b)->gtpu.flags & BUFFER_HDR_MASK) != BUFFER_GTP_UDP_IP6)) { @@ -189,7 +189,7 @@ upf_input (vlib_main_t *vm, vlib_node_runtime_t *node, upf_vnet_buffer_l3_hdr_offset_is_current (b); break; - case OUTER_HEADER_REMOVAL_UDP_IP4: /* UDP/IPv4 */ + case PFCP_OUTER_HEADER_REMOVAL_UDP_IP4: /* UDP/IPv4 */ if (PREDICT_FALSE ((upf_buffer_opaque (b)->gtpu.flags & BUFFER_HDR_MASK) != BUFFER_UDP_IP4)) { @@ -202,7 +202,7 @@ upf_input (vlib_main_t *vm, vlib_node_runtime_t *node, sizeof (udp_header_t)); break; - case OUTER_HEADER_REMOVAL_UDP_IP6: /* UDP/IPv6 */ + case PFCP_OUTER_HEADER_REMOVAL_UDP_IP6: /* UDP/IPv6 */ if (PREDICT_FALSE ((upf_buffer_opaque (b)->gtpu.flags & BUFFER_HDR_MASK) != BUFFER_UDP_IP6)) { @@ -215,7 +215,7 @@ upf_input (vlib_main_t *vm, vlib_node_runtime_t *node, sizeof (udp_header_t)); break; - case OUTER_HEADER_REMOVAL_GTP: /* GTP-U/UDP/IP */ + case PFCP_OUTER_HEADER_REMOVAL_GTP: /* GTP-U/UDP/IP */ switch (upf_buffer_opaque (b)->gtpu.flags & BUFFER_HDR_MASK) { case BUFFER_GTP_UDP_IP4: diff --git a/upf/upf_ipfix_templates.h b/upf/upf_ipfix_templates.h index 9548279..79d8aad 100644 --- a/upf/upf_ipfix_templates.h +++ b/upf/upf_ipfix_templates.h @@ -96,9 +96,9 @@ #define IPFIX_VALUE_MOBILE_IMSI(v, n, c) \ do { \ - uword l = tbcd_len (v, n); \ + uword l = pfcp_tbcd_len (v, n); \ to_b->data[offset++] = l; \ - decode_tbcd (v, n, to_b->data + offset, l); \ + decode_pfcp_tbcd (v, n, to_b->data + offset, l); \ offset += l; \ } while (0) diff --git a/upf/upf_pfcp.c b/upf/upf_pfcp.c index 8723b60..50e4f43 100644 --- a/upf/upf_pfcp.c +++ b/upf/upf_pfcp.c @@ -80,7 +80,7 @@ format_upf_device_name (u8 *s, va_list *args) upf_nwi_t *nwi; nwi = pool_elt_at_index (gtm->nwis, i); - s = format (s, "upf-nwi-%U", format_dns_labels, nwi->name); + s = format (s, "upf-nwi-%U", format_pfcp_dns_labels, nwi->name); return s; } @@ -383,19 +383,19 @@ pfcp_qer_id_compare (const void *p1, const void *p2) } upf_node_assoc_t * -pfcp_get_association (pfcp_node_id_t *node_id) +pfcp_get_association (pfcp_ie_node_id_t *node_id) { upf_main_t *gtm = &upf_main; uword *p = NULL; switch (node_id->type) { - case NID_IPv4: - case NID_IPv6: + case PFCP_NID_IPv4: + case PFCP_NID_IPv6: p = mhash_get (>m->node_index_by_ip, &node_id->ip); break; - case NID_FQDN: + case PFCP_NID_FQDN: p = hash_get_mem (gtm->node_index_by_fqdn, node_id->fqdn); break; } @@ -423,7 +423,7 @@ upf_init_association_policer () upf_node_assoc_t * pfcp_new_association (session_handle_t session_handle, ip46_address_t *lcl_addr, ip46_address_t *rmt_addr, - pfcp_node_id_t *node_id) + pfcp_ie_node_id_t *node_id) { upf_main_t *gtm = &upf_main; upf_node_assoc_t *n; @@ -439,12 +439,12 @@ pfcp_new_association (session_handle_t session_handle, switch (node_id->type) { - case NID_IPv4: - case NID_IPv6: + case PFCP_NID_IPv4: + case PFCP_NID_IPv6: mhash_set (>m->node_index_by_ip, &node_id->ip, n - gtm->nodes, NULL); break; - case NID_FQDN: + case PFCP_NID_FQDN: n->node_id.fqdn = vec_dup (node_id->fqdn); hash_set_mem (gtm->node_index_by_fqdn, n->node_id.fqdn, n - gtm->nodes); break; @@ -456,7 +456,7 @@ pfcp_new_association (session_handle_t session_handle, upf_pfcp_associnfo ( gtm, "PFCP Association established: node %U, local IP %U, remote IP %U\n", - format_node_id, &n->node_id, format_ip46_address, &n->lcl_addr, + format_pfcp_ie_node_id, &n->node_id, format_ip46_address, &n->lcl_addr, IP46_TYPE_ANY, format_ip46_address, &n->rmt_addr, IP46_TYPE_ANY); return n; } @@ -471,19 +471,19 @@ pfcp_release_association (upf_node_assoc_t *n) upf_pfcp_associnfo ( gtm, "PFCP Association released: node %U, local IP %U, remote IP %U\n", - format_node_id, &n->node_id, format_ip46_address, &n->lcl_addr, + format_pfcp_ie_node_id, &n->node_id, format_ip46_address, &n->lcl_addr, IP46_TYPE_ANY, format_ip46_address, &n->rmt_addr, IP46_TYPE_ANY); upf_pfcp_server_stop_heartbeat_timer (n); switch (n->node_id.type) { - case NID_IPv4: - case NID_IPv6: + case PFCP_NID_IPv4: + case PFCP_NID_IPv6: mhash_unset (>m->node_index_by_ip, &n->node_id.ip, NULL); break; - case NID_FQDN: + case PFCP_NID_FQDN: hash_unset_mem (gtm->node_index_by_fqdn, n->node_id.fqdn); vec_free (n->node_id.fqdn); break; @@ -701,7 +701,7 @@ pfcp_session_free_cp_fseid (upf_session_t *sx) } void -pfcp_session_set_cp_fseid (upf_session_t *sx, pfcp_f_seid_t *f_seid) +pfcp_session_set_cp_fseid (upf_session_t *sx, pfcp_ie_f_seid_t *f_seid) { upf_main_t *gtm = &upf_main; @@ -743,7 +743,7 @@ pfcp_session_set_cp_fseid (upf_session_t *sx, pfcp_f_seid_t *f_seid) } upf_session_t * -pfcp_create_session (upf_node_assoc_t *assoc, pfcp_f_seid_t *cp_f_seid, +pfcp_create_session (upf_node_assoc_t *assoc, pfcp_ie_f_seid_t *cp_f_seid, u64 up_seid) { pfcp_server_main_t *psm = &pfcp_server_main; @@ -871,8 +871,8 @@ const fib_node_vft_t upf_vft = { static uword peer_addr_ref (const upf_far_forward_t *fwd) { - u8 is_ip4 = - !!(fwd->outer_header_creation.description & OUTER_HEADER_CREATION_ANY_IP4); + u8 is_ip4 = !!(fwd->outer_header_creation.description & + PFCP_OUTER_HEADER_CREATION_ANY_IP4); upf_main_t *gtm = &upf_main; clib_bihash_kv_24_8_t kv, value; u32 fib_index; @@ -927,8 +927,8 @@ peer_addr_ref (const upf_far_forward_t *fwd) static uword peer_addr_unref (const upf_far_forward_t *fwd) { - u8 is_ip4 = - !!(fwd->outer_header_creation.description & OUTER_HEADER_CREATION_ANY_IP4); + u8 is_ip4 = !!(fwd->outer_header_creation.description & + PFCP_OUTER_HEADER_CREATION_ANY_IP4); upf_main_t *gtm = &upf_main; clib_bihash_kv_24_8_t kv, value; upf_peer_t *p = NULL; @@ -996,7 +996,7 @@ pfcp_free_far (upf_far_t *far) { vec_free (far->forward.rewrite); if (far->forward.flags & FAR_F_REDIRECT_INFORMATION) - free_redirect_information (&far->forward.redirect_information); + free_pfcp_ie_redirect_information (&far->forward.redirect_information); if (far->forward.flags & FAR_F_FORWARDING_POLICY) vec_free (far->forward.forwarding_policy.identifier); } @@ -1030,8 +1030,9 @@ pfcp_make_pending_far (upf_session_t *sx) if (old->forward.rewrite) new->forward.rewrite = vec_dup (old->forward.rewrite); if (old->forward.flags & FAR_F_REDIRECT_INFORMATION) - cpy_redirect_information (&new->forward.redirect_information, - &old->forward.redirect_information); + copy_pfcp_ie_redirect_information ( + &new->forward.redirect_information, + &old->forward.redirect_information); if (old->forward.flags & FAR_F_FORWARDING_POLICY) new->forward.forwarding_policy.identifier = vec_dup (old->forward.forwarding_policy.identifier); @@ -1358,7 +1359,7 @@ pfcp_free_session (upf_session_t *sx) if (sx->nat_addr) upf_delete_nat_binding (sx); - free_user_id (&sx->user_id); + free_pfcp_ie_user_id (&sx->user_id); if (sx->cached_fseid_idx != ~0) pfcp_session_free_cp_fseid (sx); @@ -1708,16 +1709,16 @@ compile_ue_ip (int is_ip4, const upf_pdr_t *pdr, upf_acl_t *acl) if (!(pdr->pdi.fields & F_PDI_UE_IP_ADDR)) return; - if (is_ip4 && pdr->pdi.ue_addr.flags & IE_UE_IP_ADDRESS_V4) + if (is_ip4 && pdr->pdi.ue_addr.flags & PFCP_UE_IP_ADDRESS_V4) { acl->match_ue_ip = - (pdr->pdi.src_intf == SRC_INTF_ACCESS) ? UPF_ACL_UL : UPF_ACL_DL; + (pdr->pdi.src_intf == PFCP_SRC_INTF_ACCESS) ? UPF_ACL_UL : UPF_ACL_DL; ip46_address_set_ip4 (&acl->ue_ip, &pdr->pdi.ue_addr.ip4); } - else if (!is_ip4 && pdr->pdi.ue_addr.flags & IE_UE_IP_ADDRESS_V6) + else if (!is_ip4 && pdr->pdi.ue_addr.flags & PFCP_UE_IP_ADDRESS_V6) { acl->match_ue_ip = - (pdr->pdi.src_intf == SRC_INTF_ACCESS) ? UPF_ACL_UL : UPF_ACL_DL; + (pdr->pdi.src_intf == PFCP_SRC_INTF_ACCESS) ? UPF_ACL_UL : UPF_ACL_DL; ip46_address_set_ip6 (&acl->ue_ip, &pdr->pdi.ue_addr.ip6); } } @@ -1729,13 +1730,13 @@ acl_set_ue_ip (ip46_address_t *ip, ip46_address_t *mask, int is_ip4, if (!(pdr->pdi.fields & F_PDI_UE_IP_ADDR)) return; - if (is_ip4 && pdr->pdi.ue_addr.flags & IE_UE_IP_ADDRESS_V4) + if (is_ip4 && pdr->pdi.ue_addr.flags & PFCP_UE_IP_ADDRESS_V4) { ip46_address_set_ip4 (ip, &pdr->pdi.ue_addr.ip4); ip46_address_mask_ip4 (mask); ip4_address_mask_from_width (&mask->ip4, 32); } - else if (!is_ip4 && pdr->pdi.ue_addr.flags & IE_UE_IP_ADDRESS_V6) + else if (!is_ip4 && pdr->pdi.ue_addr.flags & PFCP_UE_IP_ADDRESS_V6) { ip46_address_set_ip6 (ip, &pdr->pdi.ue_addr.ip6); ip6_address_mask_from_width (&mask->ip6, 64); @@ -1793,7 +1794,7 @@ compile_sdf (int is_ip4, const upf_pdr_t *pdr, const acl_rule_t *rule, switch (pdr->pdi.src_intf) { - case SRC_INTF_ACCESS: + case PFCP_SRC_INTF_ACCESS: ip_assign_address (UPF_ACL_FIELD_DST, IPFILTER_RULE_FIELD_SRC, is_ip4, pdr, rule, acl); ip_assign_address (UPF_ACL_FIELD_SRC, IPFILTER_RULE_FIELD_DST, is_ip4, @@ -1938,9 +1939,9 @@ build_pfcp_rules (upf_session_t *sx) pdr->pdi.fields & F_PDI_UE_IP_ADDR) { ue_ip_t ue_ip; - u8 is_dst = !!(pdr->pdi.ue_addr.flags & IE_UE_IP_ADDRESS_SD); + u8 is_dst = !!(pdr->pdi.ue_addr.flags & PFCP_UE_IP_ADDRESS_SD); - if (pdr->pdi.ue_addr.flags & IE_UE_IP_ADDRESS_V4) + if (pdr->pdi.ue_addr.flags & PFCP_UE_IP_ADDRESS_V4) { ip46_address_set_ip4 (&ue_ip.addr, &pdr->pdi.ue_addr.ip4); ue_ip.fib_index = @@ -1952,7 +1953,7 @@ build_pfcp_rules (upf_session_t *sx) rules_add_ue_ip (pending, FIB_PROTOCOL_IP4, &ue_ip, is_dst); } - if (pdr->pdi.ue_addr.flags & IE_UE_IP_ADDRESS_V6) + if (pdr->pdi.ue_addr.flags & PFCP_UE_IP_ADDRESS_V6) { ue_ip.addr.ip6 = pdr->pdi.ue_addr.ip6; ue_ip.fib_index = @@ -1966,11 +1967,11 @@ build_pfcp_rules (upf_session_t *sx) /* register Local F-TEIDs */ if (pdr->pdi.fields & F_PDI_LOCAL_F_TEID) { - if (pdr->pdi.teid.flags & F_TEID_V4) + if (pdr->pdi.teid.flags & PFCP_F_TEID_V4) rules_add_v4_teid (pending, &pdr->pdi.teid.ip4, pdr->pdi.teid.teid, idx); - if (pdr->pdi.teid.flags & F_TEID_V6) + if (pdr->pdi.teid.flags & PFCP_F_TEID_V6) rules_add_v6_teid (pending, &pdr->pdi.teid.ip6, pdr->pdi.teid.teid, idx); } @@ -2130,14 +2131,14 @@ pfcp_update_apply (upf_session_t *sx) far->forward.peer_idx = peer_addr_ref (&far->forward); if (far->forward.outer_header_creation.description & - OUTER_HEADER_CREATION_GTP_IP4) + PFCP_OUTER_HEADER_CREATION_GTP_IP4) { rules_add_v4_teid ( pending, &far->forward.outer_header_creation.ip.ip4, far->forward.outer_header_creation.teid, far->id); } else if (far->forward.outer_header_creation.description & - OUTER_HEADER_CREATION_GTP_IP6) + PFCP_OUTER_HEADER_CREATION_GTP_IP6) { rules_add_v6_teid ( pending, &far->forward.outer_header_creation.ip.ip6, @@ -2236,7 +2237,7 @@ pfcp_update_apply (upf_session_t *sx) continue; is_ip4 = !!(far->forward.outer_header_creation.description & - OUTER_HEADER_CREATION_ANY_IP4); + PFCP_OUTER_HEADER_CREATION_ANY_IP4); upf_debug ("TODO: send_end_marker for FAR %d", far->id); bi = upf_gtpu_end_marker (send_em->fib_index, send_em->dpoi_index, @@ -2252,7 +2253,7 @@ pfcp_update_apply (upf_session_t *sx) { upf_pfcp_session_start_stop_urr_time ( si, &urr->measurement_period, - !!(urr->triggers & REPORTING_TRIGGER_PERIODIC_REPORTING)); + !!(urr->triggers & PFCP_REPORTING_TRIGGER_PERIODIC_REPORTING)); } if ((urr->methods & PFCP_URR_TIME)) @@ -2261,7 +2262,7 @@ pfcp_update_apply (upf_session_t *sx) { upf_pfcp_session_start_stop_urr_time ( si, &urr->time_threshold, - !!(urr->triggers & REPORTING_TRIGGER_TIME_THRESHOLD)); + !!(urr->triggers & PFCP_REPORTING_TRIGGER_TIME_THRESHOLD)); } if (urr->update_flags & PFCP_URR_UPDATE_TIME_QUOTA) { @@ -2270,7 +2271,7 @@ pfcp_update_apply (upf_session_t *sx) now; upf_pfcp_session_start_stop_urr_time ( si, &urr->time_quota, - !!(urr->triggers & REPORTING_TRIGGER_TIME_QUOTA)); + !!(urr->triggers & PFCP_REPORTING_TRIGGER_TIME_QUOTA)); } } if (urr->update_flags & PFCP_URR_UPDATE_QUOTA_VALIDITY_TIME) @@ -2278,7 +2279,7 @@ pfcp_update_apply (upf_session_t *sx) urr->quota_validity_time.base = now; upf_pfcp_session_start_stop_urr_time ( si, &urr->quota_validity_time, - !!(urr->triggers & REPORTING_TRIGGER_QUOTA_VALIDITY_TIME)); + !!(urr->triggers & PFCP_REPORTING_TRIGGER_QUOTA_VALIDITY_TIME)); } } @@ -2398,7 +2399,7 @@ pfcp_lookup_cp_cached_f_seid (u32 cached_f_seid_idx, u64 cp_seid) } upf_session_t * -pfcp_lookup_cp_f_seid (pfcp_f_seid_t *f_seid) +pfcp_lookup_cp_f_seid (pfcp_ie_f_seid_t *f_seid) { upf_main_t *gtm = &upf_main; @@ -2666,7 +2667,7 @@ process_urrs (vlib_main_t *vm, upf_session_t *sess, const char *node_name, } if ((urr->methods & PFCP_URR_EVENT) && - (urr->triggers & REPORTING_TRIGGER_START_OF_TRAFFIC)) + (urr->triggers & PFCP_REPORTING_TRIGGER_START_OF_TRAFFIC)) { ip4_header_t *iph = (ip4_header_t *) (b->data + vnet_buffer (b)->l3_hdr_offset); @@ -2948,8 +2949,8 @@ format_upf_far (u8 *s, va_list *args) s = format (s, "FAR: %u @ %p\n", far->id, far); s = format (s, "%UApply Action: %08x == %U\n", format_white_space, - indent + 2, far->apply_action, format_flags, far->apply_action, - apply_action_flags); + indent + 2, far->apply_action, format_pfcp_flags, + far->apply_action, apply_action_flags); if (far->apply_action & FAR_FORWARD) { @@ -2960,22 +2961,22 @@ format_upf_far (u8 *s, va_list *args) "%UNetwork Instance: %U\n" "%UDestination Interface: %u\n", format_white_space, indent + 2, format_white_space, - indent + 4, format_dns_labels, nwi ? nwi->name : NULL, + indent + 4, format_pfcp_dns_labels, nwi ? nwi->name : NULL, format_white_space, indent + 4, ff->dst_intf); if (ff->flags & FAR_F_REDIRECT_INFORMATION) s = format (s, "%URedirect Information: %U\n", format_white_space, - indent + 4, format_redirect_information, + indent + 4, format_pfcp_ie_redirect_information, &ff->redirect_information); if (ff->flags & FAR_F_OUTER_HEADER_CREATION) { s = format (s, "%UOuter Header Creation: %U\n", format_white_space, - indent + 4, format_outer_header_creation, + indent + 4, format_pfcp_ie_outer_header_creation, &ff->outer_header_creation); if (debug && ff->rewrite) s = format (s, "%URewrite Header: %U\n", format_white_space, indent + 4, (ff->outer_header_creation.description & - OUTER_HEADER_CREATION_ANY_IP4) ? + PFCP_OUTER_HEADER_CREATION_ANY_IP4) ? format_ip4_header : format_ip6_header, ff->rewrite, vec_len (ff->rewrite)); @@ -3020,7 +3021,7 @@ format_pfcp_session (u8 *s, va_list *args) &assoc->lcl_addr, IP46_TYPE_ANY, format_ip4_address, &f_seid.ip4, format_ip6_address, &f_seid.ip6); - user_id_str = format (0, "%U", format_user_id, &sx->user_id); + user_id_str = format (0, "%U", format_pfcp_ie_user_id, &sx->user_id); if (user_id_str) s = format (s, "User ID: %v\n", user_id_str); @@ -3074,30 +3075,30 @@ format_pfcp_session (u8 *s, va_list *args) else s = format (s, " Source Interface: %d\n", pdr->pdi.src_intf); - s = format (s, " Network Instance: %U\n", format_dns_labels, + s = format (s, " Network Instance: %U\n", format_pfcp_dns_labels, nwi ? nwi->name : NULL); if (pdr->pdi.fields & F_PDI_LOCAL_F_TEID) { s = format (s, " Local F-TEID: %u (0x%08x)\n", pdr->pdi.teid.teid, pdr->pdi.teid.teid); - if (pdr->pdi.teid.flags & F_TEID_V4) + if (pdr->pdi.teid.flags & PFCP_F_TEID_V4) s = format (s, " IPv4: %U\n", format_ip4_address, &pdr->pdi.teid.ip4); - if (pdr->pdi.teid.flags & F_TEID_V6) + if (pdr->pdi.teid.flags & PFCP_F_TEID_V6) s = format (s, " IPv6: %U\n", format_ip6_address, &pdr->pdi.teid.ip6); } if (pdr->pdi.fields & F_PDI_UE_IP_ADDR) { s = format (s, " UE IP address (%s):\n", - pdr->pdi.ue_addr.flags & IE_UE_IP_ADDRESS_SD ? + pdr->pdi.ue_addr.flags & PFCP_UE_IP_ADDRESS_SD ? "destination" : "source"); - if (pdr->pdi.ue_addr.flags & IE_UE_IP_ADDRESS_V4) + if (pdr->pdi.ue_addr.flags & PFCP_UE_IP_ADDRESS_V4) s = format (s, " IPv4 address: %U\n", format_ip4_address, &pdr->pdi.ue_addr.ip4); - if (pdr->pdi.ue_addr.flags & IE_UE_IP_ADDRESS_V6) + if (pdr->pdi.ue_addr.flags & PFCP_UE_IP_ADDRESS_V6) s = format (s, " IPv6 address: %U\n", format_ip6_address, &pdr->pdi.ue_addr.ip6); } @@ -3153,12 +3154,12 @@ format_pfcp_session (u8 *s, va_list *args) s = format (s, " Measurement Method: %04x == %U\n" " Reporting Triggers: %04x == %U\n" " Status: %d == %U\n", - urr->methods, format_flags, (u64)urr->methods, urr_method_flags, - urr->triggers, format_flags, (u64)urr->triggers, urr_trigger_flags, - urr->status, format_flags, (u64)urr->status, urr_status_flags); + urr->methods, format_pfcp_flags, (u64)urr->methods, urr_method_flags, + urr->triggers, format_pfcp_flags, (u64)urr->triggers, urr_trigger_flags, + urr->status, format_pfcp_flags, (u64)urr->status, urr_status_flags); /* clang-format on */ - if (urr->triggers & REPORTING_TRIGGER_LINKED_USAGE_REPORTING) + if (urr->triggers & PFCP_REPORTING_TRIGGER_LINKED_USAGE_REPORTING) { u32 *id; @@ -3288,9 +3289,9 @@ format_pfcp_session (u8 *s, va_list *args) " DL Gate: %d == %U\n", qer->id, qer->gate_status[UPF_UL], - format_flags, (u64)qer->gate_status[UPF_UL], qer_gate_status_flags, + format_pfcp_flags, (u64)qer->gate_status[UPF_UL], qer_gate_status_flags, qer->gate_status[UPF_DL], - format_flags, (u64)qer->gate_status[UPF_DL], qer_gate_status_flags); + format_pfcp_flags, (u64)qer->gate_status[UPF_DL], qer_gate_status_flags); /* clang-format on */ } return s; @@ -3318,7 +3319,7 @@ format_pfcp_node_association (u8 *s, va_list *args) "Node: %U\n" " Recovery Time Stamp: %U\n" " Sessions: ", - format_node_id, &node->node_id, format_time_stamp, + format_pfcp_ie_node_id, &node->node_id, format_time_stamp, &node->recovery_time_stamp); if (verbose) @@ -3364,7 +3365,7 @@ format_network_instance_index (u8 *s, va_list *args) return format (s, "(@~0)"); upf_nwi_t *nwi = pool_elt_at_index (gtm->nwis, n); - return format (s, "(@%u) %U", n, format_dns_labels, nwi->name); + return format (s, "(@%u) %U", n, format_pfcp_dns_labels, nwi->name); } u8 * diff --git a/upf/upf_pfcp.h b/upf/upf_pfcp.h index 5e68e4b..97120a8 100644 --- a/upf/upf_pfcp.h +++ b/upf/upf_pfcp.h @@ -22,20 +22,20 @@ #define upf_pfcp_associnfo(gtm, ...) \ vlib_log_info ((gtm)->log_class, __VA_ARGS__) -upf_node_assoc_t *pfcp_get_association (pfcp_node_id_t *node_id); +upf_node_assoc_t *pfcp_get_association (pfcp_ie_node_id_t *node_id); upf_node_assoc_t *pfcp_new_association (session_handle_t session_handle, ip46_address_t *lcl_addr, ip46_address_t *rmt_addr, - pfcp_node_id_t *node_id); + pfcp_ie_node_id_t *node_id); void pfcp_release_association (upf_node_assoc_t *n); -void pfcp_session_set_cp_fseid (upf_session_t *sx, pfcp_f_seid_t *f_seid); +void pfcp_session_set_cp_fseid (upf_session_t *sx, pfcp_ie_f_seid_t *f_seid); void pfcp_node_enter_smf_set (upf_node_assoc_t *n, u8 *fqdn); u32 *pfcp_node_exit_smf_set (upf_node_assoc_t *n); upf_session_t *pfcp_create_session (upf_node_assoc_t *assoc, - pfcp_f_seid_t *cp_f_seid, u64 up_seid); + pfcp_ie_f_seid_t *cp_f_seid, u64 up_seid); void pfcp_update_session (upf_session_t *sx); void pfcp_disable_session (upf_session_t *sx); void pfcp_free_session (upf_session_t *sx); @@ -71,7 +71,7 @@ void pfcp_update_finish (upf_session_t *sx); upf_session_t *pfcp_lookup_up_seid (u64 up_seid); upf_session_t *pfcp_lookup_cp_cached_f_seid (u32 cached_f_seid_idx, u64 cp_seid); -upf_session_t *pfcp_lookup_cp_f_seid (pfcp_f_seid_t *f_seid); +upf_session_t *pfcp_lookup_cp_f_seid (pfcp_ie_f_seid_t *f_seid); static inline struct rules * pfcp_get_rules (upf_session_t *sx, int rules) diff --git a/upf/upf_pfcp_api.c b/upf/upf_pfcp_api.c index a6e9170..0063859 100644 --- a/upf/upf_pfcp_api.c +++ b/upf/upf_pfcp_api.c @@ -98,28 +98,28 @@ upf_pfcp_api_session_data_init (void *sxp, time_t start_time) } static void -init_response_node_id (pfcp_node_id_t *node_id) +init_response_node_id (pfcp_ie_node_id_t *node_id) { upf_main_t *gtm = &upf_main; *node_id = gtm->node_id; - if (gtm->node_id.type == NID_FQDN) + if (gtm->node_id.type == PFCP_NID_FQDN) { node_id->fqdn = vec_dup (gtm->node_id.fqdn); } } static void -init_response_up_f_seid (pfcp_f_seid_t *up_f_seid, ip46_address_t *address, +init_response_up_f_seid (pfcp_ie_f_seid_t *up_f_seid, ip46_address_t *address, bool is_ip4) { if (is_ip4) { - up_f_seid->flags |= IE_F_SEID_IP_ADDRESS_V4; + up_f_seid->flags |= PFCP_F_SEID_IP_ADDRESS_V4; up_f_seid->ip4 = address->ip4; } else { - up_f_seid->flags |= IE_F_SEID_IP_ADDRESS_V6; + up_f_seid->flags |= PFCP_F_SEID_IP_ADDRESS_V6; up_f_seid->ip6 = address->ip6; } } @@ -136,7 +136,7 @@ init_response_up_f_seid (pfcp_f_seid_t *up_f_seid, ip46_address_t *address, while (0) void -init_tp_error_report (pfcp_tp_error_report_t *report, const char *file, +init_tp_error_report (pfcp_ie_tp_error_report_t *report, const char *file, int line, char *fmt, ...) { #if CLIB_DEBUG > 1 @@ -173,7 +173,7 @@ init_tp_error_report (pfcp_tp_error_report_t *report, const char *file, static void build_ue_ip_address_information ( - pfcp_ue_ip_address_pool_information_t **ue_pool_info) + pfcp_ie_ue_ip_address_pool_information_t **ue_pool_info) { upf_main_t *gtm = &upf_main; upf_nat_pool_t *np; @@ -183,7 +183,7 @@ build_ue_ip_address_information ( pool_foreach (ue_p, gtm->ueip_pools) { - pfcp_ue_ip_address_pool_information_t *ueif; + pfcp_ie_ue_ip_address_pool_information_t *ueif; vec_add2 (*ue_pool_info, ueif, 1); ueif->ue_ip_address_pool_identity = vec_dup (ue_p->identity); @@ -199,7 +199,7 @@ build_ue_ip_address_information ( if (!(vec_is_equal (np->network_instance, ue_p->nwi_name))) continue; - pfcp_bbf_nat_port_block_t *block; + pfcp_ie_bbf_nat_port_block_t *block; vec_add2 (ueif->port_blocks, block, 1); *block = vec_dup (np->name); @@ -211,7 +211,7 @@ build_ue_ip_address_information ( static void build_user_plane_ip_resource_information ( - pfcp_user_plane_ip_resource_information_t **upip) + pfcp_ie_user_plane_ip_resource_information_t **upip) { upf_main_t *gtm = &upf_main; upf_upip_res_t *res; @@ -220,7 +220,7 @@ build_user_plane_ip_resource_information ( pool_foreach (res, gtm->upip_res) { - pfcp_user_plane_ip_resource_information_t *r; + pfcp_ie_user_plane_ip_resource_information_t *r; vec_add2 (*upip, r, 1); @@ -228,14 +228,14 @@ build_user_plane_ip_resource_information ( { upf_nwi_t *nwi = pool_elt_at_index (gtm->nwis, res->nwi_index); - r->flags |= USER_PLANE_IP_RESOURCE_INFORMATION_ASSONI; + r->flags |= PFCP_USER_PLANE_IP_RESOURCE_INFORMATION_ASSONI; r->network_instance = vec_dup (nwi->name); } if (INTF_INVALID != res->intf) { - r->flags |= USER_PLANE_IP_RESOURCE_INFORMATION_ASSOSI; + r->flags |= PFCP_USER_PLANE_IP_RESOURCE_INFORMATION_ASSOSI; r->source_intf = res->intf; } @@ -247,13 +247,13 @@ build_user_plane_ip_resource_information ( if (!is_zero_ip4_address (&res->ip4)) { - r->flags |= USER_PLANE_IP_RESOURCE_INFORMATION_V4; + r->flags |= PFCP_USER_PLANE_IP_RESOURCE_INFORMATION_V4; r->ip4 = res->ip4; } if (!is_zero_ip6_address (&res->ip6)) { - r->flags |= USER_PLANE_IP_RESOURCE_INFORMATION_V6; + r->flags |= PFCP_USER_PLANE_IP_RESOURCE_INFORMATION_V6; r->ip6 = res->ip6; } } @@ -265,7 +265,7 @@ static int handle_heartbeat_request (pfcp_msg_t *msg, pfcp_decoded_msg_t *dmsg) { pfcp_server_main_t *psm = &pfcp_server_main; - pfcp_decoded_msg_t resp_dmsg = { .type = PFCP_HEARTBEAT_RESPONSE }; + pfcp_decoded_msg_t resp_dmsg = { .type = PFCP_MSG_HEARTBEAT_RESPONSE }; pfcp_simple_response_t *resp = &resp_dmsg.simple_response; memset (resp, 0, sizeof (*resp)); @@ -286,7 +286,7 @@ handle_heartbeat_response (pfcp_msg_t *msg, pfcp_decoded_msg_t *dmsg) upf_main_t *gtm = &upf_main; pfcp_server_main_t *psm = &pfcp_server_main; upf_node_assoc_t *n; - pfcp_recovery_time_stamp_t ts = + pfcp_ie_recovery_time_stamp_t ts = dmsg->simple_response.response.recovery_time_stamp; if (msg->node == ~0 || pool_is_free_index (gtm->nodes, msg->node)) @@ -336,10 +336,11 @@ handle_association_setup_request (pfcp_msg_t *msg, pfcp_decoded_msg_t *dmsg) { pfcp_server_main_t *psm = &pfcp_server_main; upf_main_t *gtm = &upf_main; - pfcp_association_setup_request_t *req = &dmsg->association_setup_request; - pfcp_decoded_msg_t resp_dmsg = { .type = PFCP_ASSOCIATION_SETUP_RESPONSE }; - pfcp_association_procedure_response_t *resp = - &resp_dmsg.association_procedure_response; + pfcp_msg_association_setup_request_t *req = &dmsg->association_setup_request; + pfcp_decoded_msg_t resp_dmsg = { .type = + PFCP_MSG_ASSOCIATION_SETUP_RESPONSE }; + pfcp_msg_association_procedure_response_t *resp = + &resp_dmsg.association_setup_response; upf_node_assoc_t *n; int r = 0; @@ -387,12 +388,12 @@ handle_association_setup_request (pfcp_msg_t *msg, pfcp_decoded_msg_t *dmsg) UPF_SET_BIT (resp->grp.fields, ASSOCIATION_PROCEDURE_RESPONSE_UP_FUNCTION_FEATURES); - resp->up_function_features |= F_UPFF_EMPU; - resp->up_function_features |= F_UPFF_MPAS; + resp->up_function_features |= PFCP_F_UPFF_EMPU; + resp->up_function_features |= PFCP_F_UPFF_MPAS; if (gtm->pfcp_spec_version >= 16) { - resp->up_function_features |= F_UPFF_VTIME; - resp->up_function_features |= F_UPFF_FTUP; + resp->up_function_features |= PFCP_F_UPFF_VTIME; + resp->up_function_features |= PFCP_F_UPFF_FTUP; build_ue_ip_address_information (&resp->ue_ip_address_pool_information); if (vec_len (resp->ue_ip_address_pool_information) != 0) UPF_SET_BIT ( @@ -400,7 +401,7 @@ handle_association_setup_request (pfcp_msg_t *msg, pfcp_decoded_msg_t *dmsg) ASSOCIATION_PROCEDURE_RESPONSE_UE_IP_ADDRESS_POOL_INFORMATION); UPF_SET_BIT (resp->grp.fields, ASSOCIATION_PROCEDURE_RESPONSE_BBF_UP_FUNCTION_FEATURES); - resp->bbf_up_function_features |= BBF_UP_NAT; + resp->bbf_up_function_features |= PFCP_BBF_UP_NAT; } else { @@ -477,8 +478,8 @@ handle_node_report_response (pfcp_msg_t *msg, pfcp_decoded_msg_t *dmsg) /* this methods used for cases when incoming message decode is failed */ static void -send_simple_response (pfcp_msg_t *req, u8 type, pfcp_cause_t cause, - pfcp_offending_ie_t *err) +send_simple_response (pfcp_msg_t *req, u8 type, pfcp_ie_cause_t cause, + pfcp_ie_offending_ie_t *err) { pfcp_server_main_t *psm = &pfcp_server_main; pfcp_decoded_msg_t resp_dmsg = { @@ -492,11 +493,11 @@ send_simple_response (pfcp_msg_t *req, u8 type, pfcp_cause_t cause, switch (type) { - case PFCP_HEARTBEAT_RESPONSE: - case PFCP_PFD_MANAGEMENT_RESPONSE: - case PFCP_SESSION_MODIFICATION_RESPONSE: - case PFCP_SESSION_DELETION_RESPONSE: - case PFCP_SESSION_REPORT_RESPONSE: + case PFCP_MSG_HEARTBEAT_RESPONSE: + case PFCP_MSG_PFD_MANAGEMENT_RESPONSE: + case PFCP_MSG_SESSION_MODIFICATION_RESPONSE: + case PFCP_MSG_SESSION_DELETION_RESPONSE: + case PFCP_MSG_SESSION_REPORT_RESPONSE: break; default: @@ -507,8 +508,8 @@ send_simple_response (pfcp_msg_t *req, u8 type, pfcp_cause_t cause, switch (type) { - case PFCP_HEARTBEAT_RESPONSE: - case PFCP_ASSOCIATION_SETUP_RESPONSE: + case PFCP_MSG_HEARTBEAT_RESPONSE: + case PFCP_MSG_ASSOCIATION_SETUP_RESPONSE: UPF_SET_BIT (resp->grp.fields, PFCP_RESPONSE_RECOVERY_TIME_STAMP); resp->response.recovery_time_stamp = psm->start_time; break; @@ -611,9 +612,9 @@ process_teid_generation (upf_main_t *gtm, u8 chid, u32 flags, present in a UPIP res. It will always return UPF_GTPU_ERROR_NO_SUCH_TUNNEL for such cases */ - ok = (!(flags & F_TEID_V4) || + ok = (!(flags & PFCP_F_TEID_V4) || teid_v4_lookup_session_index (gtm, teid, &res->ip4) == ~0) && - (!(flags & F_TEID_V6) || + (!(flags & PFCP_F_TEID_V6) || teid_v6_lookup_session_index (gtm, teid, &res->ip6) == ~0); if (ok) @@ -625,7 +626,7 @@ process_teid_generation (upf_main_t *gtm, u8 chid, u32 flags, /* can't generate unique for given UPIP resource */ return 0; - if ((flags & F_TEID_CHID)) + if ((flags & PFCP_F_TEID_CHID)) { u32 *n = sparse_vec_validate (sx->teid_by_chid, chid); n[0] = teid; @@ -635,23 +636,23 @@ process_teid_generation (upf_main_t *gtm, u8 chid, u32 flags, } static int -handle_f_teid (upf_session_t *sx, upf_main_t *gtm, pfcp_pdi_t *pdi, - upf_pdr_t *process_pdr, pfcp_created_pdr_t **created_pdr_vec, +handle_f_teid (upf_session_t *sx, upf_main_t *gtm, pfcp_ie_pdi_t *pdi, + upf_pdr_t *process_pdr, pfcp_ie_created_pdr_t **created_pdr_vec, upf_upip_res_t *res, u8 create) { - pfcp_created_pdr_t *created_pdr; + pfcp_ie_created_pdr_t *created_pdr; u32 teid = 0; u32 sidx = ~0; process_pdr->pdi.fields |= F_PDI_LOCAL_F_TEID; // We only generate F_TEID if NWI is defined - if ((pdi->f_teid.flags & F_TEID_CH)) + if ((pdi->f_teid.flags & PFCP_F_TEID_CH)) { if (!res) return -1; - if ((pdi->f_teid.flags & F_TEID_CHID)) + if ((pdi->f_teid.flags & PFCP_F_TEID_CHID)) { uword i = sparse_vec_index (sx->teid_by_chid, pdi->f_teid.choose_id); if (i) @@ -672,16 +673,16 @@ handle_f_teid (upf_session_t *sx, upf_main_t *gtm, pfcp_pdi_t *pdi, process_pdr->pdi.teid.teid = teid; if ((!is_zero_ip4_address (&res->ip4)) && - (pdi->f_teid.flags & F_TEID_V4)) + (pdi->f_teid.flags & PFCP_F_TEID_V4)) { process_pdr->pdi.teid.ip4 = res->ip4; - process_pdr->pdi.teid.flags |= F_TEID_V4; + process_pdr->pdi.teid.flags |= PFCP_F_TEID_V4; } if ((!is_zero_ip6_address (&res->ip6)) && - (pdi->f_teid.flags & F_TEID_V6)) + (pdi->f_teid.flags & PFCP_F_TEID_V6)) { - process_pdr->pdi.teid.flags |= F_TEID_V6; + process_pdr->pdi.teid.flags |= PFCP_F_TEID_V6; process_pdr->pdi.teid.ip6 = res->ip6; } @@ -699,10 +700,10 @@ handle_f_teid (upf_session_t *sx, upf_main_t *gtm, pfcp_pdi_t *pdi, { /* CH == 0, check for conflicts with other sessions */ - if (pdi->f_teid.flags & F_TEID_V4) + if (pdi->f_teid.flags & PFCP_F_TEID_V4) sidx = teid_v4_lookup_session_index (gtm, pdi->f_teid.teid, &pdi->f_teid.ip4); - else if (pdi->f_teid.flags & F_TEID_V6) + else if (pdi->f_teid.flags & PFCP_F_TEID_V6) sidx = teid_v6_lookup_session_index (gtm, pdi->f_teid.teid, &pdi->f_teid.ip6); if (sidx != ~0 && sidx != sx - gtm->sessions) @@ -720,14 +721,14 @@ handle_f_teid (upf_session_t *sx, upf_main_t *gtm, pfcp_pdi_t *pdi, */ static void purge_conflicting_session (upf_session_t *sx_old, upf_session_t *sx_new, - pfcp_ue_ip_address_t *ue_addr) + pfcp_ie_ue_ip_address_t *ue_addr) { if (sx_old->assoc.node != sx_new->assoc.node) return; clib_warning ("UE IP conflict: deleting session CP SEID=0x%016" PRIx64 " %U " "due to attempt to create CP SEID=0x%0x16" PRIx64, - sx_old->cp_seid, format_ue_ip_address, ue_addr, + sx_old->cp_seid, format_pfcp_ie_ue_ip_address, ue_addr, sx_new->cp_seid); upf_pfcp_session_up_deletion_report (sx_old); @@ -738,13 +739,13 @@ purge_conflicting_session (upf_session_t *sx_old, upf_session_t *sx_new, static int resolve_ue_ip_conflicts (upf_session_t *sx, upf_nwi_t *nwi, - pfcp_ue_ip_address_t *ue_addr) + pfcp_ie_ue_ip_address_t *ue_addr) { upf_main_t *gtm = &upf_main; const dpo_id_t *dpo; int r = 0; - if (ue_addr->flags & IE_UE_IP_ADDRESS_V4) + if (ue_addr->flags & PFCP_UE_IP_ADDRESS_V4) { dpo = upf_get_session_dpo_ip4 (nwi, &ue_addr->ip4); if (dpo && dpo->dpoi_index != sx - gtm->sessions) @@ -755,7 +756,7 @@ resolve_ue_ip_conflicts (upf_session_t *sx, upf_nwi_t *nwi, } } - if (ue_addr->flags & IE_UE_IP_ADDRESS_V6) + if (ue_addr->flags & PFCP_UE_IP_ADDRESS_V6) { dpo = upf_get_session_dpo_ip6 (nwi, &ue_addr->ip6); if (dpo && dpo->dpoi_index != sx - gtm->sessions) @@ -797,9 +798,9 @@ get_nat_addr (upf_nat_pool_t *np) } int -upf_alloc_and_assign_nat_binding (upf_nat_pool_t *np, upf_nat_addr_t *addr, - ip4_address_t user_ip, upf_session_t *sx, - pfcp_tp_created_binding_t *created_binding) +upf_alloc_and_assign_nat_binding ( + upf_nat_pool_t *np, upf_nat_addr_t *addr, ip4_address_t user_ip, + upf_session_t *sx, pfcp_ie_tp_created_binding_t *created_binding) { u16 port_start, port_end; u16 (*upf_nat_create_binding) (ip4_address_t user_addr, @@ -833,11 +834,11 @@ upf_alloc_and_assign_nat_binding (upf_nat_pool_t *np, upf_nat_addr_t *addr, } static int -handle_create_pdr (upf_session_t *sx, pfcp_create_pdr_t *create_pdr, - pfcp_session_procedure_response_t *response) +handle_create_pdr (upf_session_t *sx, pfcp_ie_create_pdr_t *create_pdr, + pfcp_msg_session_procedure_response_t *response) { upf_main_t *gtm = &upf_main; - pfcp_create_pdr_t *pdr; + pfcp_ie_create_pdr_t *pdr; struct rules *rules; if (pfcp_make_pending_pdr (sx) != 0) @@ -911,7 +912,7 @@ handle_create_pdr (upf_session_t *sx, pfcp_create_pdr_t *create_pdr, { create->pdi.fields |= F_PDI_UE_IP_ADDR; create->pdi.ue_addr = pdr->pdi.ue_ip_address; - if (create->pdi.ue_addr.flags & IE_UE_IP_ADDRESS_V4) + if (create->pdi.ue_addr.flags & PFCP_UE_IP_ADDRESS_V4) sx->user_addr.as_u32 = create->pdi.ue_addr.ip4.as_u32; if (!ISSET_BIT (pdr->pdi.grp.fields, PDI_SDF_FILTER) && @@ -926,7 +927,7 @@ handle_create_pdr (upf_session_t *sx, pfcp_create_pdr_t *create_pdr, if (ISSET_BIT (pdr->pdi.grp.fields, PDI_SDF_FILTER)) { - pfcp_sdf_filter_t *sdf; + pfcp_ie_sdf_filter_t *sdf; create->pdi.fields |= F_PDI_SDF_FILTER; @@ -988,7 +989,7 @@ handle_create_pdr (upf_session_t *sx, pfcp_create_pdr_t *create_pdr, create->far_id = OPT (pdr, CREATE_PDR_FAR_ID, far_id, ~0); if (ISSET_BIT (pdr->grp.fields, CREATE_PDR_URR_ID)) { - pfcp_urr_id_t *urr_id; + pfcp_ie_urr_id_t *urr_id; vec_alloc (create->urr_ids, _vec_len (pdr->urr_id)); vec_foreach (urr_id, pdr->urr_id) @@ -999,7 +1000,7 @@ handle_create_pdr (upf_session_t *sx, pfcp_create_pdr_t *create_pdr, if (ISSET_BIT (pdr->grp.fields, CREATE_PDR_QER_ID)) { - pfcp_qer_id_t *qer_id; + pfcp_ie_qer_id_t *qer_id; vec_alloc (create->qer_ids, _vec_len (pdr->qer_id)); vec_foreach (qer_id, pdr->qer_id) @@ -1026,17 +1027,17 @@ handle_create_pdr (upf_session_t *sx, pfcp_create_pdr_t *create_pdr, UPF_SET_BIT (response->grp.fields, SESSION_PROCEDURE_RESPONSE_FAILED_RULE_ID); - response->failed_rule_id.type = FAILED_RULE_TYPE_PDR; + response->failed_rule_id.type = PFCP_FAILED_RULE_TYPE_PDR; return -1; } static int -handle_update_pdr (upf_session_t *sx, pfcp_update_pdr_t *update_pdr, - pfcp_session_procedure_response_t *response) +handle_update_pdr (upf_session_t *sx, pfcp_ie_update_pdr_t *update_pdr, + pfcp_msg_session_procedure_response_t *response) { upf_main_t *gtm = &upf_main; - pfcp_update_pdr_t *pdr; + pfcp_ie_update_pdr_t *pdr; if (pfcp_make_pending_pdr (sx) != 0) { @@ -1113,7 +1114,7 @@ handle_update_pdr (upf_session_t *sx, pfcp_update_pdr_t *update_pdr, if (ISSET_BIT (pdr->pdi.grp.fields, PDI_SDF_FILTER)) { - pfcp_sdf_filter_t *sdf; + pfcp_ie_sdf_filter_t *sdf; update->pdi.fields |= F_PDI_SDF_FILTER; @@ -1180,7 +1181,7 @@ handle_update_pdr (upf_session_t *sx, pfcp_update_pdr_t *update_pdr, update->far_id = OPT (pdr, UPDATE_PDR_FAR_ID, far_id, ~0); if (ISSET_BIT (pdr->grp.fields, UPDATE_PDR_URR_ID)) { - pfcp_urr_id_t *urr_id; + pfcp_ie_urr_id_t *urr_id; vec_reset_length (update->urr_ids); vec_alloc (update->urr_ids, _vec_len (pdr->urr_id)); @@ -1192,7 +1193,7 @@ handle_update_pdr (upf_session_t *sx, pfcp_update_pdr_t *update_pdr, if (ISSET_BIT (pdr->grp.fields, UPDATE_PDR_QER_ID)) { - pfcp_qer_id_t *qer_id; + pfcp_ie_qer_id_t *qer_id; vec_reset_length (update->qer_ids); vec_alloc (update->qer_ids, _vec_len (pdr->qer_id)); @@ -1219,16 +1220,16 @@ handle_update_pdr (upf_session_t *sx, pfcp_update_pdr_t *update_pdr, UPF_SET_BIT (response->grp.fields, SESSION_PROCEDURE_RESPONSE_FAILED_RULE_ID); - response->failed_rule_id.type = FAILED_RULE_TYPE_PDR; + response->failed_rule_id.type = PFCP_FAILED_RULE_TYPE_PDR; return -1; } static int -handle_remove_pdr (upf_session_t *sx, pfcp_remove_pdr_t *remove_pdr, - pfcp_session_procedure_response_t *response) +handle_remove_pdr (upf_session_t *sx, pfcp_ie_remove_pdr_t *remove_pdr, + pfcp_msg_session_procedure_response_t *response) { - pfcp_remove_pdr_t *pdr; + pfcp_ie_remove_pdr_t *pdr; if (pfcp_make_pending_pdr (sx) != 0) { @@ -1253,7 +1254,7 @@ handle_remove_pdr (upf_session_t *sx, pfcp_remove_pdr_t *remove_pdr, UPF_SET_BIT (response->grp.fields, SESSION_PROCEDURE_RESPONSE_FAILED_RULE_ID); - response->failed_rule_id.type = FAILED_RULE_TYPE_PDR; + response->failed_rule_id.type = PFCP_FAILED_RULE_TYPE_PDR; return -1; } @@ -1387,7 +1388,7 @@ ip_udp_gtpu_rewrite (upf_far_forward_t *ff, u32 fib_index, int is_ip4) static int handle_nat_binding_creation (upf_session_t *sx, u8 *nat_pool_name, - pfcp_session_procedure_response_t *response) + pfcp_msg_session_procedure_response_t *response) { upf_nat_pool_t *np; upf_nat_addr_t *ap; @@ -1418,11 +1419,11 @@ handle_nat_binding_creation (upf_session_t *sx, u8 *nat_pool_name, } static int -handle_create_far (upf_session_t *sx, pfcp_create_far_t *create_far, - pfcp_session_procedure_response_t *response) +handle_create_far (upf_session_t *sx, pfcp_ie_create_far_t *create_far, + pfcp_msg_session_procedure_response_t *response) { upf_main_t *gtm = &upf_main; - pfcp_create_far_t *far; + pfcp_ie_create_far_t *far; struct rules *rules; u8 *policy_id = NULL; uword *hash_ptr; @@ -1475,7 +1476,7 @@ handle_create_far (upf_session_t *sx, pfcp_create_far_t *create_far, FORWARDING_PARAMETERS_REDIRECT_INFORMATION)) { create->forward.flags |= FAR_F_REDIRECT_INFORMATION; - cpy_redirect_information ( + copy_pfcp_ie_redirect_information ( &create->forward.redirect_information, &far->forwarding_parameters.redirect_information); } @@ -1483,12 +1484,12 @@ handle_create_far (upf_session_t *sx, pfcp_create_far_t *create_far, if ((ISSET_BIT (far->forwarding_parameters.grp.fields, FORWARDING_PARAMETERS_BBF_APPLY_ACTION)) && (far->forwarding_parameters.bbf_apply_action & - BBF_APPLY_ACTION_NAT) && + PFCP_BBF_APPLY_ACTION_NAT) && (ISSET_BIT (far->forwarding_parameters.grp.fields, FORWARDING_PARAMETERS_BBF_NAT_PORT_BLOCK))) { int rc = 0; - pfcp_bbf_nat_port_block_t pool_name = + pfcp_ie_bbf_nat_port_block_t pool_name = vec_dup (far->forwarding_parameters.nat_port_block); rc = handle_nat_binding_creation (sx, pool_name, response); vec_free (pool_name); @@ -1504,11 +1505,11 @@ handle_create_far (upf_session_t *sx, pfcp_create_far_t *create_far, if (ISSET_BIT (far->forwarding_parameters.grp.fields, FORWARDING_PARAMETERS_OUTER_HEADER_CREATION)) { - pfcp_outer_header_creation_t *ohc = + pfcp_ie_outer_header_creation_t *ohc = &far->forwarding_parameters.outer_header_creation; u32 fib_index; int is_ip4 = - !!(ohc->description & OUTER_HEADER_CREATION_ANY_IP4); + !!(ohc->description & PFCP_OUTER_HEADER_CREATION_ANY_IP4); fib_protocol_t fproto = is_ip4 ? FIB_PROTOCOL_IP4 : FIB_PROTOCOL_IP6; @@ -1583,17 +1584,17 @@ handle_create_far (upf_session_t *sx, pfcp_create_far_t *create_far, out_cause_set: UPF_SET_BIT (response->grp.fields, SESSION_PROCEDURE_RESPONSE_FAILED_RULE_ID); - response->failed_rule_id.type = FAILED_RULE_TYPE_FAR; + response->failed_rule_id.type = PFCP_FAILED_RULE_TYPE_FAR; return -1; } static int -handle_update_far (upf_session_t *sx, pfcp_update_far_t *update_far, - pfcp_session_procedure_response_t *response) +handle_update_far (upf_session_t *sx, pfcp_ie_update_far_t *update_far, + pfcp_msg_session_procedure_response_t *response) { upf_main_t *gtm = &upf_main; - pfcp_update_far_t *far; + pfcp_ie_update_far_t *far; u8 *policy_id = NULL; uword *hash_ptr; upf_forwarding_policy_t *fp_entry; @@ -1651,9 +1652,9 @@ handle_update_far (upf_session_t *sx, pfcp_update_far_t *update_far, UPDATE_FORWARDING_PARAMETERS_REDIRECT_INFORMATION)) { update->forward.flags |= FAR_F_REDIRECT_INFORMATION; - free_redirect_information ( + free_pfcp_ie_redirect_information ( &update->forward.redirect_information); - cpy_redirect_information ( + copy_pfcp_ie_redirect_information ( &update->forward.redirect_information, &far->update_forwarding_parameters.redirect_information); } @@ -1661,18 +1662,18 @@ handle_update_far (upf_session_t *sx, pfcp_update_far_t *update_far, if (ISSET_BIT (far->update_forwarding_parameters.grp.fields, UPDATE_FORWARDING_PARAMETERS_OUTER_HEADER_CREATION)) { - pfcp_outer_header_creation_t *ohc = + pfcp_ie_outer_header_creation_t *ohc = &far->update_forwarding_parameters.outer_header_creation; u32 fib_index; int is_ip4 = - !!(ohc->description & OUTER_HEADER_CREATION_ANY_IP4); + !!(ohc->description & PFCP_OUTER_HEADER_CREATION_ANY_IP4); fib_protocol_t fproto = is_ip4 ? FIB_PROTOCOL_IP4 : FIB_PROTOCOL_IP6; if (ISSET_BIT (far->update_forwarding_parameters.grp.fields, UPDATE_FORWARDING_PARAMETERS_PFCPSMREQ_FLAGS) && far->update_forwarding_parameters.pfcpsmreq_flags & - PFCPSMREQ_SNDEM) + PFCP_PFCPSMREQ_SNDEM) pfcp_send_end_marker (sx, far->far_id); update->forward.flags |= FAR_F_OUTER_HEADER_CREATION; @@ -1747,16 +1748,16 @@ handle_update_far (upf_session_t *sx, pfcp_update_far_t *update_far, out_cause_set: UPF_SET_BIT (response->grp.fields, SESSION_PROCEDURE_RESPONSE_FAILED_RULE_ID); - response->failed_rule_id.type = FAILED_RULE_TYPE_FAR; + response->failed_rule_id.type = PFCP_FAILED_RULE_TYPE_FAR; return -1; } static int -handle_remove_far (upf_session_t *sx, pfcp_remove_far_t *remove_far, - pfcp_session_procedure_response_t *response) +handle_remove_far (upf_session_t *sx, pfcp_ie_remove_far_t *remove_far, + pfcp_msg_session_procedure_response_t *response) { - pfcp_remove_far_t *far; + pfcp_ie_remove_far_t *far; if (pfcp_make_pending_far (sx) != 0) { @@ -1781,7 +1782,7 @@ handle_remove_far (upf_session_t *sx, pfcp_remove_far_t *remove_far, UPF_SET_BIT (response->grp.fields, SESSION_PROCEDURE_RESPONSE_FAILED_RULE_ID); - response->failed_rule_id.type = FAILED_RULE_TYPE_FAR; + response->failed_rule_id.type = PFCP_FAILED_RULE_TYPE_FAR; return -1; } @@ -1798,11 +1799,11 @@ handle_remove_far (upf_session_t *sx, pfcp_remove_far_t *remove_far, while (0) static int -handle_create_urr (upf_session_t *sx, pfcp_create_urr_t *create_urr, f64 now, - pfcp_session_procedure_response_t *response) +handle_create_urr (upf_session_t *sx, pfcp_ie_create_urr_t *create_urr, + f64 now, pfcp_msg_session_procedure_response_t *response) { pfcp_server_main_t *psm = &pfcp_server_main; - pfcp_create_urr_t *urr; + pfcp_ie_create_urr_t *urr; struct rules *rules; if (pfcp_make_pending_urr (sx) != 0) @@ -1897,7 +1898,7 @@ handle_create_urr (upf_session_t *sx, pfcp_create_urr_t *create_urr, f64 now, // TODO: inactivity_detection_time; if (ISSET_BIT (urr->grp.fields, CREATE_URR_LINKED_URR_ID) && - create->triggers & REPORTING_TRIGGER_LINKED_USAGE_REPORTING) + create->triggers & PFCP_REPORTING_TRIGGER_LINKED_USAGE_REPORTING) create->linked_urr_ids = vec_dup (urr->linked_urr_id); // TODO: linked_urr_id; @@ -1910,11 +1911,11 @@ handle_create_urr (upf_session_t *sx, pfcp_create_urr_t *create_urr, f64 now, } static int -handle_update_urr (upf_session_t *sx, pfcp_update_urr_t *update_urr, f64 now, - pfcp_session_procedure_response_t *response) +handle_update_urr (upf_session_t *sx, pfcp_ie_update_urr_t *update_urr, + f64 now, pfcp_msg_session_procedure_response_t *response) { pfcp_server_main_t *psm = &pfcp_server_main; - pfcp_update_urr_t *urr; + pfcp_ie_update_urr_t *urr; if (pfcp_make_pending_urr (sx) != 0) { @@ -2011,7 +2012,7 @@ handle_update_urr (upf_session_t *sx, pfcp_update_urr_t *update_urr, f64 now, // TODO: inactivity_detection_time; if (ISSET_BIT (urr->grp.fields, UPDATE_URR_LINKED_URR_ID) && - update->triggers & REPORTING_TRIGGER_LINKED_USAGE_REPORTING) + update->triggers & PFCP_REPORTING_TRIGGER_LINKED_USAGE_REPORTING) update->linked_urr_ids = vec_dup (urr->linked_urr_id); else vec_free (update->linked_urr_ids); @@ -2027,16 +2028,16 @@ handle_update_urr (upf_session_t *sx, pfcp_update_urr_t *update_urr, f64 now, UPF_SET_BIT (response->grp.fields, SESSION_PROCEDURE_RESPONSE_FAILED_RULE_ID); - response->failed_rule_id.type = FAILED_RULE_TYPE_URR; + response->failed_rule_id.type = PFCP_FAILED_RULE_TYPE_URR; return -1; } static int -handle_remove_urr (upf_session_t *sx, pfcp_remove_urr_t *remove_urr, f64 now, - pfcp_session_procedure_response_t *response) +handle_remove_urr (upf_session_t *sx, pfcp_ie_remove_urr_t *remove_urr, + f64 now, pfcp_msg_session_procedure_response_t *response) { - pfcp_remove_urr_t *urr; + pfcp_ie_remove_urr_t *urr; if (pfcp_make_pending_urr (sx) != 0) { @@ -2061,7 +2062,7 @@ handle_remove_urr (upf_session_t *sx, pfcp_remove_urr_t *remove_urr, f64 now, UPF_SET_BIT (response->grp.fields, SESSION_PROCEDURE_RESPONSE_FAILED_RULE_ID); - response->failed_rule_id.type = FAILED_RULE_TYPE_URR; + response->failed_rule_id.type = PFCP_FAILED_RULE_TYPE_URR; return -1; } @@ -2078,11 +2079,11 @@ handle_remove_urr (upf_session_t *sx, pfcp_remove_urr_t *remove_urr, f64 now, while (0) static int -handle_create_qer (upf_session_t *sx, pfcp_create_qer_t *create_qer, f64 now, - pfcp_session_procedure_response_t *response) +handle_create_qer (upf_session_t *sx, pfcp_ie_create_qer_t *create_qer, + f64 now, pfcp_msg_session_procedure_response_t *response) { upf_main_t *gtm = &upf_main; - pfcp_create_qer_t *qer; + pfcp_ie_create_qer_t *qer; struct rules *rules; if (pfcp_make_pending_qer (sx) != 0) @@ -2129,11 +2130,11 @@ handle_create_qer (upf_session_t *sx, pfcp_create_qer_t *create_qer, f64 now, } static int -handle_update_qer (upf_session_t *sx, pfcp_update_qer_t *update_qer, f64 now, - pfcp_session_procedure_response_t *response) +handle_update_qer (upf_session_t *sx, pfcp_ie_update_qer_t *update_qer, + f64 now, pfcp_msg_session_procedure_response_t *response) { upf_main_t *gtm = &upf_main; - pfcp_update_qer_t *qer; + pfcp_ie_update_qer_t *qer; if (pfcp_make_pending_qer (sx) != 0) { @@ -2185,16 +2186,16 @@ handle_update_qer (upf_session_t *sx, pfcp_update_qer_t *update_qer, f64 now, UPF_SET_BIT (response->grp.fields, SESSION_PROCEDURE_RESPONSE_FAILED_RULE_ID); - response->failed_rule_id.type = FAILED_RULE_TYPE_QER; + response->failed_rule_id.type = PFCP_FAILED_RULE_TYPE_QER; return -1; } static int -handle_remove_qer (upf_session_t *sx, pfcp_remove_qer_t *remove_qer, f64 now, - pfcp_session_procedure_response_t *response) +handle_remove_qer (upf_session_t *sx, pfcp_ie_remove_qer_t *remove_qer, + f64 now, pfcp_msg_session_procedure_response_t *response) { - pfcp_remove_qer_t *qer; + pfcp_ie_remove_qer_t *qer; if (pfcp_make_pending_qer (sx) != 0) { @@ -2219,17 +2220,18 @@ handle_remove_qer (upf_session_t *sx, pfcp_remove_qer_t *remove_qer, f64 now, UPF_SET_BIT (response->grp.fields, SESSION_PROCEDURE_RESPONSE_FAILED_RULE_ID); - response->failed_rule_id.type = FAILED_RULE_TYPE_QER; + response->failed_rule_id.type = PFCP_FAILED_RULE_TYPE_QER; return -1; } #undef qer_error -static pfcp_usage_report_t * -init_usage_report (upf_urr_t *urr, u32 trigger, pfcp_usage_report_t **report) +static pfcp_ie_usage_report_t * +init_usage_report (upf_urr_t *urr, u32 trigger, + pfcp_ie_usage_report_t **report) { - pfcp_usage_report_t *r; + pfcp_ie_usage_report_t *r; vec_add2 (*report, r, 1); memset (r, 0, sizeof (*r)); @@ -2249,10 +2251,10 @@ init_usage_report (upf_urr_t *urr, u32 trigger, pfcp_usage_report_t **report) static void report_usage_ev (upf_session_t *sess, ip46_address_t *ue, upf_urr_t *urr, - u32 trigger, f64 now, pfcp_usage_report_t **report) + u32 trigger, f64 now, pfcp_ie_usage_report_t **report) { pfcp_server_main_t *psm = &pfcp_server_main; - pfcp_usage_report_t *r; + pfcp_ie_usage_report_t *r; urr_volume_t volume; u64 start_time, duration; f64 vnow = vlib_time_now (psm->vlib_main); @@ -2294,17 +2296,17 @@ report_usage_ev (upf_session_t *sess, ip46_address_t *ue, upf_urr_t *urr, if (urr->status & URR_AFTER_MONITORING_TIME) { - r = - init_usage_report (urr, USAGE_REPORT_TRIGGER_MONITORING_TIME, report); + r = init_usage_report (urr, PFCP_USAGE_REPORT_TRIGGER_MONITORING_TIME, + report); UPF_SET_BIT (r->grp.fields, USAGE_REPORT_USAGE_INFORMATION); - r->usage_information = USAGE_INFORMATION_BEFORE; + r->usage_information = PFCP_USAGE_INFORMATION_BEFORE; start_time = trunc (urr->usage_before_monitoring_time.start_time); duration = trunc (urr->start_time) - start_time; - if ((trigger & (USAGE_REPORT_TRIGGER_START_OF_TRAFFIC | - USAGE_REPORT_TRIGGER_STOP_OF_TRAFFIC)) == 0) + if ((trigger & (PFCP_USAGE_REPORT_TRIGGER_START_OF_TRAFFIC | + PFCP_USAGE_REPORT_TRIGGER_STOP_OF_TRAFFIC)) == 0) { UPF_SET_BIT (r->grp.fields, USAGE_REPORT_START_TIME); UPF_SET_BIT (r->grp.fields, USAGE_REPORT_END_TIME); @@ -2367,14 +2369,14 @@ report_usage_ev (upf_session_t *sess, ip46_address_t *ue, upf_urr_t *urr, if (urr->status & URR_AFTER_MONITORING_TIME) { UPF_SET_BIT (r->grp.fields, USAGE_REPORT_USAGE_INFORMATION); - r->usage_information = USAGE_INFORMATION_AFTER; + r->usage_information = PFCP_USAGE_INFORMATION_AFTER; } start_time = trunc (urr->start_time); duration = trunc (now) - start_time; - if ((trigger & (USAGE_REPORT_TRIGGER_START_OF_TRAFFIC | - USAGE_REPORT_TRIGGER_STOP_OF_TRAFFIC)) == 0) + if ((trigger & (PFCP_USAGE_REPORT_TRIGGER_START_OF_TRAFFIC | + PFCP_USAGE_REPORT_TRIGGER_STOP_OF_TRAFFIC)) == 0) { UPF_SET_BIT (r->grp.fields, USAGE_REPORT_START_TIME); UPF_SET_BIT (r->grp.fields, USAGE_REPORT_END_TIME); @@ -2405,25 +2407,25 @@ report_usage_ev (upf_session_t *sess, ip46_address_t *ue, upf_urr_t *urr, r->tp_end_time = urr->start_time + duration; } - if (((trigger & (USAGE_REPORT_TRIGGER_START_OF_TRAFFIC | - USAGE_REPORT_TRIGGER_STOP_OF_TRAFFIC)) != 0) && + if (((trigger & (PFCP_USAGE_REPORT_TRIGGER_START_OF_TRAFFIC | + PFCP_USAGE_REPORT_TRIGGER_STOP_OF_TRAFFIC)) != 0) && (ue != NULL)) { UPF_SET_BIT (r->grp.fields, USAGE_REPORT_UE_IP_ADDRESS); if (ip46_address_is_ip4 (ue)) { - r->ue_ip_address.flags = IE_UE_IP_ADDRESS_V4; + r->ue_ip_address.flags = PFCP_UE_IP_ADDRESS_V4; r->ue_ip_address.ip4 = ue->ip4; } else { - r->ue_ip_address.flags = IE_UE_IP_ADDRESS_V6; + r->ue_ip_address.flags = PFCP_UE_IP_ADDRESS_V6; r->ue_ip_address.ip6 = ue->ip6; } } - if ((trigger & USAGE_REPORT_TRIGGER_START_OF_TRAFFIC) == 0) + if ((trigger & PFCP_USAGE_REPORT_TRIGGER_START_OF_TRAFFIC) == 0) { UPF_SET_BIT (r->grp.fields, USAGE_REPORT_VOLUME_MEASUREMENT); r->volume_measurement.fields = PFCP_VOLUME_ALL; @@ -2455,7 +2457,7 @@ report_usage_ev (upf_session_t *sess, ip46_address_t *ue, upf_urr_t *urr, void upf_usage_report_build (upf_session_t *sx, ip46_address_t *ue, upf_urr_t *urr, f64 now, upf_usage_report_t *report, - pfcp_usage_report_t **usage_report) + pfcp_ie_usage_report_t **usage_report) { u32 idx; @@ -2475,8 +2477,8 @@ upf_usage_report_build (upf_session_t *sx, ip46_address_t *ue, upf_urr_t *urr, if (clib_bitmap_get (report->liusa_bitmap, idx)) report_usage_ev (sx, ue, vec_elt_at_index (urr, idx), - USAGE_REPORT_TRIGGER_LINKED_USAGE_REPORTING, now, - usage_report); + PFCP_USAGE_REPORT_TRIGGER_LINKED_USAGE_REPORTING, + now, usage_report); } } } @@ -2500,11 +2502,11 @@ handle_session_establishment_request (pfcp_msg_t *msg, { pfcp_server_main_t *psm = &pfcp_server_main; upf_main_t *gtm = &upf_main; - pfcp_session_establishment_request_t *req = + pfcp_msg_session_establishment_request_t *req = &dmsg->session_establishment_request; pfcp_decoded_msg_t resp_dmsg = { .type = - PFCP_SESSION_ESTABLISHMENT_RESPONSE }; - pfcp_session_procedure_response_t *resp = + PFCP_MSG_SESSION_ESTABLISHMENT_RESPONSE }; + pfcp_msg_session_procedure_response_t *resp = &resp_dmsg.session_procedure_response; upf_session_t *sess = NULL; upf_node_assoc_t *assoc; @@ -2609,7 +2611,7 @@ handle_session_establishment_request (pfcp_msg_t *msg, if (ISSET_BIT (req->grp.fields, SESSION_ESTABLISHMENT_REQUEST_USER_ID)) { - memcpy (&sess->user_id, &req->user_id, sizeof (pfcp_user_id_t)); + memcpy (&sess->user_id, &req->user_id, sizeof (pfcp_ie_user_id_t)); sess->user_id.nai = vec_dup (req->user_id.nai); } @@ -2659,19 +2661,19 @@ handle_session_modification_request (pfcp_msg_t *msg, pfcp_decoded_msg_t *dmsg) { pfcp_server_main_t *psm = &pfcp_server_main; upf_usage_report_t report; - pfcp_query_urr_t *qry; - pfcp_remove_urr_t *rurr; + pfcp_ie_query_urr_t *qry; + pfcp_ie_remove_urr_t *rurr; bool have_report = false; struct rules *active; upf_session_t *sess; f64 now = psm->now; int r = 0; - pfcp_session_modification_request_t *req = + pfcp_msg_session_modification_request_t *req = &dmsg->session_modification_request; pfcp_decoded_msg_t resp_dmsg = { - .type = PFCP_SESSION_MODIFICATION_RESPONSE, + .type = PFCP_MSG_SESSION_MODIFICATION_RESPONSE, }; - pfcp_session_procedure_response_t *resp = + pfcp_msg_session_procedure_response_t *resp = &resp_dmsg.session_procedure_response; memset (resp, 0, sizeof (*resp)); @@ -2713,7 +2715,7 @@ handle_session_modification_request (pfcp_msg_t *msg, pfcp_decoded_msg_t *dmsg) continue; upf_usage_report_trigger (&report, urr - active->urr, - USAGE_REPORT_TRIGGER_IMMEDIATE_REPORT, + PFCP_USAGE_REPORT_TRIGGER_IMMEDIATE_REPORT, urr->liusa_bitmap, now); } } @@ -2812,13 +2814,13 @@ handle_session_modification_request (pfcp_msg_t *msg, pfcp_decoded_msg_t *dmsg) continue; upf_usage_report_trigger (&report, urr - active->urr, - USAGE_REPORT_TRIGGER_IMMEDIATE_REPORT, + PFCP_USAGE_REPORT_TRIGGER_IMMEDIATE_REPORT, urr->liusa_bitmap, now); } } else if (ISSET_BIT (req->grp.fields, SESSION_MODIFICATION_REQUEST_PFCPSMREQ_FLAGS) && - req->pfcpsmreq_flags & PFCPSMREQ_QAURR) + req->pfcpsmreq_flags & PFCP_PFCPSMREQ_QAURR) { if (!have_report) { @@ -2829,8 +2831,8 @@ handle_session_modification_request (pfcp_msg_t *msg, pfcp_decoded_msg_t *dmsg) { UPF_SET_BIT (resp->grp.fields, SESSION_PROCEDURE_RESPONSE_USAGE_REPORT); - upf_usage_report_set (&report, USAGE_REPORT_TRIGGER_IMMEDIATE_REPORT, - now); + upf_usage_report_set ( + &report, PFCP_USAGE_REPORT_TRIGGER_IMMEDIATE_REPORT, now); } } @@ -2866,9 +2868,9 @@ handle_session_deletion_request (pfcp_msg_t *msg, pfcp_decoded_msg_t *dmsg) { pfcp_server_main_t *psm = &pfcp_server_main; pfcp_decoded_msg_t resp_dmsg = { - .type = PFCP_SESSION_DELETION_RESPONSE, + .type = PFCP_MSG_SESSION_DELETION_RESPONSE, }; - pfcp_session_procedure_response_t *resp = + pfcp_msg_session_procedure_response_t *resp = &resp_dmsg.session_procedure_response; struct rules *active; f64 now = psm->now; @@ -2900,8 +2902,8 @@ handle_session_deletion_request (pfcp_msg_t *msg, pfcp_decoded_msg_t *dmsg) UPF_SET_BIT (resp->grp.fields, SESSION_PROCEDURE_RESPONSE_USAGE_REPORT); upf_usage_report_init (&report, vec_len (active->urr)); - upf_usage_report_set (&report, USAGE_REPORT_TRIGGER_TERMINATION_REPORT, - now); + upf_usage_report_set (&report, + PFCP_USAGE_REPORT_TRIGGER_TERMINATION_REPORT, now); upf_usage_report_build (sess, NULL, active->urr, now, &report, &resp->usage_report); upf_usage_report_free (&report); @@ -2940,7 +2942,7 @@ static int handle_session_report_response (pfcp_msg_t *msg, pfcp_decoded_msg_t *dmsg) { upf_main_t *gtm = &upf_main; - pfcp_session_report_response_t *resp = &dmsg->session_report_response; + pfcp_msg_session_report_response_t *resp = &dmsg->session_report_response; if (msg->session.idx == ~0) { @@ -2983,7 +2985,8 @@ handle_session_report_response (pfcp_msg_t *msg, pfcp_decoded_msg_t *dmsg) if ((sx->flags & UPF_SESSION_LOST_CP) && (resp->grp.fields & SESSION_REPORT_RESPONSE_CP_F_SEID)) { - pfcp_f_seid_t *cp_f_seid = &dmsg->session_report_response.cp_f_seid; + pfcp_ie_f_seid_t *cp_f_seid = + &dmsg->session_report_response.cp_f_seid; sx->flags &= ~(UPF_SESSION_LOST_CP); pfcp_session_set_cp_fseid (sx, cp_f_seid); @@ -3000,13 +3003,13 @@ handle_session_report_response (pfcp_msg_t *msg, pfcp_decoded_msg_t *dmsg) void upf_pfcp_error_report (upf_session_t *sx, gtp_error_ind_t *error) { - pfcp_f_teid_t f_teid; - pfcp_decoded_msg_t dmsg = { .type = PFCP_SESSION_REPORT_REQUEST }; - pfcp_session_report_request_t *req = &dmsg.session_report_request; + pfcp_ie_f_teid_t f_teid; + pfcp_decoded_msg_t dmsg = { .type = PFCP_MSG_SESSION_REPORT_REQUEST }; + pfcp_msg_session_report_request_t *req = &dmsg.session_report_request; memset (req, 0, sizeof (*req)); UPF_SET_BIT (req->grp.fields, SESSION_REPORT_REQUEST_REPORT_TYPE); - req->report_type = REPORT_TYPE_ERIR; + req->report_type = PFCP_REPORT_TYPE_ERIR; UPF_SET_BIT (req->grp.fields, SESSION_REPORT_REQUEST_ERROR_INDICATION_REPORT); @@ -3016,12 +3019,12 @@ upf_pfcp_error_report (upf_session_t *sx, gtp_error_ind_t *error) f_teid.teid = error->teid; if (ip46_address_is_ip4 (&error->addr)) { - f_teid.flags = F_TEID_V4; + f_teid.flags = PFCP_F_TEID_V4; f_teid.ip4 = error->addr.ip4; } else { - f_teid.flags = F_TEID_V6; + f_teid.flags = PFCP_F_TEID_V6; f_teid.ip6 = error->addr.ip6; } @@ -3033,31 +3036,37 @@ upf_pfcp_error_report (upf_session_t *sx, gtp_error_ind_t *error) typedef int (*msg_handler_t) (pfcp_msg_t *msg, pfcp_decoded_msg_t *dmsg); static msg_handler_t msg_handlers[] = { - [PFCP_HEARTBEAT_REQUEST] = handle_heartbeat_request, - [PFCP_HEARTBEAT_RESPONSE] = handle_heartbeat_response, - [PFCP_PFD_MANAGEMENT_REQUEST] = handle_pfd_management_request, - [PFCP_PFD_MANAGEMENT_RESPONSE] = handle_pfd_management_response, - [PFCP_ASSOCIATION_SETUP_REQUEST] = handle_association_setup_request, - [PFCP_ASSOCIATION_SETUP_RESPONSE] = handle_association_setup_response, - [PFCP_ASSOCIATION_UPDATE_REQUEST] = handle_association_update_request, - [PFCP_ASSOCIATION_UPDATE_RESPONSE] = handle_association_update_response, - [PFCP_ASSOCIATION_RELEASE_REQUEST] = handle_association_release_request, - [PFCP_ASSOCIATION_RELEASE_RESPONSE] = handle_association_release_response, - [PFCP_VERSION_NOT_SUPPORTED_RESPONSE] = + [PFCP_MSG_HEARTBEAT_REQUEST] = handle_heartbeat_request, + [PFCP_MSG_HEARTBEAT_RESPONSE] = handle_heartbeat_response, + [PFCP_MSG_PFD_MANAGEMENT_REQUEST] = handle_pfd_management_request, + [PFCP_MSG_PFD_MANAGEMENT_RESPONSE] = handle_pfd_management_response, + [PFCP_MSG_ASSOCIATION_SETUP_REQUEST] = handle_association_setup_request, + [PFCP_MSG_ASSOCIATION_SETUP_RESPONSE] = handle_association_setup_response, + [PFCP_MSG_ASSOCIATION_UPDATE_REQUEST] = handle_association_update_request, + [PFCP_MSG_ASSOCIATION_UPDATE_RESPONSE] = handle_association_update_response, + [PFCP_MSG_ASSOCIATION_RELEASE_REQUEST] = handle_association_release_request, + [PFCP_MSG_ASSOCIATION_RELEASE_RESPONSE] = + handle_association_release_response, + [PFCP_MSG_VERSION_NOT_SUPPORTED_RESPONSE] = 0, /* handle_version_not_supported_response, */ - [PFCP_NODE_REPORT_REQUEST] = handle_node_report_request, - [PFCP_NODE_REPORT_RESPONSE] = handle_node_report_response, - [PFCP_SESSION_SET_DELETION_REQUEST] = handle_session_set_deletion_request, - [PFCP_SESSION_SET_DELETION_RESPONSE] = handle_session_set_deletion_response, - [PFCP_SESSION_ESTABLISHMENT_REQUEST] = handle_session_establishment_request, - [PFCP_SESSION_ESTABLISHMENT_RESPONSE] = + [PFCP_MSG_NODE_REPORT_REQUEST] = handle_node_report_request, + [PFCP_MSG_NODE_REPORT_RESPONSE] = handle_node_report_response, + [PFCP_MSG_SESSION_SET_DELETION_REQUEST] = + handle_session_set_deletion_request, + [PFCP_MSG_SESSION_SET_DELETION_RESPONSE] = + handle_session_set_deletion_response, + [PFCP_MSG_SESSION_ESTABLISHMENT_REQUEST] = + handle_session_establishment_request, + [PFCP_MSG_SESSION_ESTABLISHMENT_RESPONSE] = handle_session_establishment_response, - [PFCP_SESSION_MODIFICATION_REQUEST] = handle_session_modification_request, - [PFCP_SESSION_MODIFICATION_RESPONSE] = handle_session_modification_response, - [PFCP_SESSION_DELETION_REQUEST] = handle_session_deletion_request, - [PFCP_SESSION_DELETION_RESPONSE] = handle_session_deletion_response, - [PFCP_SESSION_REPORT_REQUEST] = handle_session_report_request, - [PFCP_SESSION_REPORT_RESPONSE] = handle_session_report_response, + [PFCP_MSG_SESSION_MODIFICATION_REQUEST] = + handle_session_modification_request, + [PFCP_MSG_SESSION_MODIFICATION_RESPONSE] = + handle_session_modification_response, + [PFCP_MSG_SESSION_DELETION_REQUEST] = handle_session_deletion_request, + [PFCP_MSG_SESSION_DELETION_RESPONSE] = handle_session_deletion_response, + [PFCP_MSG_SESSION_REPORT_REQUEST] = handle_session_report_request, + [PFCP_MSG_SESSION_REPORT_RESPONSE] = handle_session_report_response, }; /** @@ -3072,7 +3081,7 @@ int upf_pfcp_handle_msg (pfcp_msg_t *msg) { pfcp_decoded_msg_t dmsg; - pfcp_offending_ie_t *err = NULL; + pfcp_ie_offending_ie_t *err = NULL; u8 type = pfcp_msg_type (msg->data); int r; @@ -3099,16 +3108,16 @@ upf_pfcp_handle_msg (pfcp_msg_t *msg) upf_debug ("PFCP: error response %d", r); switch (dmsg.type) { - case PFCP_HEARTBEAT_REQUEST: - case PFCP_PFD_MANAGEMENT_REQUEST: - case PFCP_ASSOCIATION_SETUP_REQUEST: - case PFCP_ASSOCIATION_UPDATE_REQUEST: - case PFCP_ASSOCIATION_RELEASE_REQUEST: - case PFCP_SESSION_SET_DELETION_REQUEST: - case PFCP_SESSION_ESTABLISHMENT_REQUEST: - case PFCP_SESSION_MODIFICATION_REQUEST: - case PFCP_SESSION_DELETION_REQUEST: - case PFCP_SESSION_REPORT_REQUEST: + case PFCP_MSG_HEARTBEAT_REQUEST: + case PFCP_MSG_PFD_MANAGEMENT_REQUEST: + case PFCP_MSG_ASSOCIATION_SETUP_REQUEST: + case PFCP_MSG_ASSOCIATION_UPDATE_REQUEST: + case PFCP_MSG_ASSOCIATION_RELEASE_REQUEST: + case PFCP_MSG_SESSION_SET_DELETION_REQUEST: + case PFCP_MSG_SESSION_ESTABLISHMENT_REQUEST: + case PFCP_MSG_SESSION_MODIFICATION_REQUEST: + case PFCP_MSG_SESSION_DELETION_REQUEST: + case PFCP_MSG_SESSION_REPORT_REQUEST: send_simple_response (msg, dmsg.type + 1, r, err); break; diff --git a/upf/upf_pfcp_api.h b/upf/upf_pfcp_api.h index 4e503e6..36f2258 100644 --- a/upf/upf_pfcp_api.h +++ b/upf/upf_pfcp_api.h @@ -30,7 +30,7 @@ int upf_pfcp_handle_msg (pfcp_msg_t *msg); typedef struct { - pfcp_reporting_triggers_t triggers; + pfcp_ie_reporting_triggers_t triggers; f64 now; } upf_usage_report_ev_t; @@ -51,7 +51,7 @@ upf_usage_report_init (upf_usage_report_t *report, int n_urrs) static inline void upf_usage_report_set (upf_usage_report_t *report, - pfcp_reporting_triggers_t triggers, f64 now) + pfcp_ie_reporting_triggers_t triggers, f64 now) { ASSERT (report); @@ -70,7 +70,7 @@ upf_usage_report_free (upf_usage_report_t *report) static inline void upf_usage_report_trigger (upf_usage_report_t *report, u32 idx, - pfcp_reporting_triggers_t triggers, + pfcp_ie_reporting_triggers_t triggers, uword *liusa_bitmap, f64 now) { ASSERT (report); @@ -85,6 +85,6 @@ upf_usage_report_trigger (upf_usage_report_t *report, u32 idx, void upf_usage_report_build (upf_session_t *sx, ip46_address_t *ue, upf_urr_t *urr, f64 now, upf_usage_report_t *report, - pfcp_usage_report_t **usage_report); + pfcp_ie_usage_report_t **usage_report); #endif /* _UPF_PFCP_ERL_H */ diff --git a/upf/upf_pfcp_server.c b/upf/upf_pfcp_server.c index 0df41b2..e2979f4 100644 --- a/upf/upf_pfcp_server.c +++ b/upf/upf_pfcp_server.c @@ -227,7 +227,7 @@ encode_pfcp_session_msg (upf_session_t *sx, pfcp_decoded_msg_t *dmsg, msg->session.idx = sx - gtm->sessions; msg->up_seid = sx->up_seid; - if (dmsg->type == PFCP_SESSION_REPORT_REQUEST && + if (dmsg->type == PFCP_MSG_SESSION_REPORT_REQUEST && sx->flags & UPF_SESSION_LOST_CP) { upf_cached_f_seid_t *cached_f_seid = @@ -307,7 +307,7 @@ upf_pfcp_server_rx_msg (pfcp_msg_t *msg) if (len < 4) return -1; - upf_debug ("%U", format_pfcp_msg_hdr, (pfcp_header_t *) msg->data); + upf_debug ("%U", format_pfcp_msg_hdr, (pfcp_msg_header_t *) msg->data); if (!pfcp_msg_version_valid (msg->data)) { @@ -338,17 +338,17 @@ upf_pfcp_server_rx_msg (pfcp_msg_t *msg) switch (pfcp_msg_type (msg->data)) { - case PFCP_HEARTBEAT_REQUEST: - case PFCP_PFD_MANAGEMENT_REQUEST: - case PFCP_ASSOCIATION_SETUP_REQUEST: - case PFCP_ASSOCIATION_UPDATE_REQUEST: - case PFCP_ASSOCIATION_RELEASE_REQUEST: - case PFCP_NODE_REPORT_REQUEST: - case PFCP_SESSION_SET_DELETION_REQUEST: - case PFCP_SESSION_ESTABLISHMENT_REQUEST: - case PFCP_SESSION_MODIFICATION_REQUEST: - case PFCP_SESSION_DELETION_REQUEST: - case PFCP_SESSION_REPORT_REQUEST: + case PFCP_MSG_HEARTBEAT_REQUEST: + case PFCP_MSG_PFD_MANAGEMENT_REQUEST: + case PFCP_MSG_ASSOCIATION_SETUP_REQUEST: + case PFCP_MSG_ASSOCIATION_UPDATE_REQUEST: + case PFCP_MSG_ASSOCIATION_RELEASE_REQUEST: + case PFCP_MSG_NODE_REPORT_REQUEST: + case PFCP_MSG_SESSION_SET_DELETION_REQUEST: + case PFCP_MSG_SESSION_ESTABLISHMENT_REQUEST: + case PFCP_MSG_SESSION_MODIFICATION_REQUEST: + case PFCP_MSG_SESSION_DELETION_REQUEST: + case PFCP_MSG_SESSION_REPORT_REQUEST: { uword *p = NULL; @@ -368,18 +368,18 @@ upf_pfcp_server_rx_msg (pfcp_msg_t *msg) break; } - case PFCP_HEARTBEAT_RESPONSE: - case PFCP_PFD_MANAGEMENT_RESPONSE: - case PFCP_ASSOCIATION_SETUP_RESPONSE: - case PFCP_ASSOCIATION_UPDATE_RESPONSE: - case PFCP_ASSOCIATION_RELEASE_RESPONSE: - case PFCP_VERSION_NOT_SUPPORTED_RESPONSE: - case PFCP_NODE_REPORT_RESPONSE: - case PFCP_SESSION_SET_DELETION_RESPONSE: - case PFCP_SESSION_ESTABLISHMENT_RESPONSE: - case PFCP_SESSION_MODIFICATION_RESPONSE: - case PFCP_SESSION_DELETION_RESPONSE: - case PFCP_SESSION_REPORT_RESPONSE: + case PFCP_MSG_HEARTBEAT_RESPONSE: + case PFCP_MSG_PFD_MANAGEMENT_RESPONSE: + case PFCP_MSG_ASSOCIATION_SETUP_RESPONSE: + case PFCP_MSG_ASSOCIATION_UPDATE_RESPONSE: + case PFCP_MSG_ASSOCIATION_RELEASE_RESPONSE: + case PFCP_MSG_VERSION_NOT_SUPPORTED_RESPONSE: + case PFCP_MSG_NODE_REPORT_RESPONSE: + case PFCP_MSG_SESSION_SET_DELETION_RESPONSE: + case PFCP_MSG_SESSION_ESTABLISHMENT_RESPONSE: + case PFCP_MSG_SESSION_MODIFICATION_RESPONSE: + case PFCP_MSG_SESSION_DELETION_RESPONSE: + case PFCP_MSG_SESSION_REPORT_RESPONSE: { pfcp_msg_t *req; uword *p; @@ -520,12 +520,12 @@ request_t1_expired (u32 seq_no) /* make sure to resent reports to new peer if smfset peer is changed */ if (req->flags.is_migrated_in_smfset && req->session.idx != ~0 && - pfcp_msg_type (req->data) == PFCP_SESSION_REPORT_REQUEST) + pfcp_msg_type (req->data) == PFCP_MSG_SESSION_REPORT_REQUEST) { upf_session_t *sx = pool_elt_at_index (gtm->sessions, req->session.idx); pfcp_decoded_msg_t dmsg; - pfcp_offending_ie_t *err = NULL; + pfcp_ie_offending_ie_t *err = NULL; /* Decode request to dmesg so we can reencode it as new request */ pfcp_decode_msg (req->data, vec_len (req->data), &dmsg, &err); @@ -547,15 +547,16 @@ request_t1_expired (u32 seq_no) as soon as node is stopped. It should be easier to track since we can have only one heartbeat request at time */ - if (type == PFCP_HEARTBEAT_REQUEST && + if (type == PFCP_MSG_HEARTBEAT_REQUEST && !pool_is_free_index (gtm->nodes, req->node)) { upf_node_assoc_t *n = pool_elt_at_index (gtm->nodes, req->node); upf_pfcp_associnfo ( gtm, "PFCP Association unstable: node %U, local IP %U, remote IP %U\n", - format_node_id, &n->node_id, format_ip46_address, &n->lcl_addr, - IP46_TYPE_ANY, format_ip46_address, &n->rmt_addr, IP46_TYPE_ANY); + format_pfcp_ie_node_id, &n->node_id, format_ip46_address, + &n->lcl_addr, IP46_TYPE_ANY, format_ip46_address, &n->rmt_addr, + IP46_TYPE_ANY); } upf_debug ("resend...\n"); @@ -581,15 +582,16 @@ request_t1_expired (u32 seq_no) could track or requests of node and forget them as soon as association is lost */ - if (type == PFCP_HEARTBEAT_REQUEST && + if (type == PFCP_MSG_HEARTBEAT_REQUEST && !pool_is_free_index (gtm->nodes, node)) { upf_node_assoc_t *n = pool_elt_at_index (gtm->nodes, node); upf_pfcp_associnfo ( gtm, "PFCP Association lost: node %U, local IP %U, remote IP %U\n", - format_node_id, &n->node_id, format_ip46_address, &n->lcl_addr, - IP46_TYPE_ANY, format_ip46_address, &n->rmt_addr, IP46_TYPE_ANY); + format_pfcp_ie_node_id, &n->node_id, format_ip46_address, + &n->lcl_addr, IP46_TYPE_ANY, format_ip46_address, &n->rmt_addr, + IP46_TYPE_ANY); pfcp_release_association (n); } @@ -625,7 +627,7 @@ upf_pfcp_server_send_request (pfcp_msg_t *msg) { pfcp_server_main_t *psm = &pfcp_server_main; - if (pfcp_msg_type (msg->data) == PFCP_HEARTBEAT_REQUEST) + if (pfcp_msg_type (msg->data) == PFCP_MSG_HEARTBEAT_REQUEST) enqueue_request (msg, psm->hb_cfg.retries, psm->hb_cfg.timeout); else enqueue_request (msg, PFCP_DEFAULT_REQUEST_RETRIES, @@ -649,7 +651,7 @@ upf_pfcp_police_message (upf_session_t *sx, pfcp_decoded_msg_t *dmsg) upf_node_assoc_t *n = pool_elt_at_index (gtm->nodes, sx->assoc.node); policer_t *p = pool_elt_at_index (gtm->pfcp_policers, n->policer_idx); - if (dmsg->type != PFCP_SESSION_REPORT_REQUEST || + if (dmsg->type != PFCP_MSG_SESSION_REPORT_REQUEST || !dmsg->session_report_request.usage_report) return true; @@ -658,7 +660,7 @@ upf_pfcp_police_message (upf_session_t *sx, pfcp_decoded_msg_t *dmsg) !ISSET_BIT (dmsg->session_report_request.usage_report->grp.fields, USAGE_REPORT_UE_IP_ADDRESS) || !(dmsg->session_report_request.usage_report->usage_report_trigger & - USAGE_REPORT_TRIGGER_START_OF_TRAFFIC)) + PFCP_USAGE_REPORT_TRIGGER_START_OF_TRAFFIC)) return true; time_in_policer_periods = @@ -780,10 +782,10 @@ urr_check_counter (u64 bytes, u64 consumed, u64 threshold, u64 quota) u32 r = 0; if (quota != 0 && consumed >= quota) - r |= USAGE_REPORT_TRIGGER_VOLUME_QUOTA; + r |= PFCP_USAGE_REPORT_TRIGGER_VOLUME_QUOTA; if (threshold != 0 && bytes > threshold) - r |= USAGE_REPORT_TRIGGER_VOLUME_THRESHOLD; + r |= PFCP_USAGE_REPORT_TRIGGER_VOLUME_THRESHOLD; return r; } @@ -797,8 +799,8 @@ upf_pfcp_session_up_deletion_report (upf_session_t *sx) * the reason for session termination */ pfcp_server_main_t *psm = &pfcp_server_main; - pfcp_decoded_msg_t dmsg = { .type = PFCP_SESSION_REPORT_REQUEST }; - pfcp_session_report_request_t *req = &dmsg.session_report_request; + pfcp_decoded_msg_t dmsg = { .type = PFCP_MSG_SESSION_REPORT_REQUEST }; + pfcp_msg_session_report_request_t *req = &dmsg.session_report_request; struct rules *active; f64 now = psm->now; @@ -810,23 +812,24 @@ upf_pfcp_session_up_deletion_report (upf_session_t *sx) { upf_usage_report_t report; - req->report_type = REPORT_TYPE_USAR; + req->report_type = PFCP_REPORT_TYPE_USAR; UPF_SET_BIT (req->grp.fields, SESSION_REPORT_REQUEST_USAGE_REPORT); upf_usage_report_init (&report, vec_len (active->urr)); upf_usage_report_set ( - &report, USAGE_REPORT_TRIGGER_TERMINATION_BY_UP_FUNCTION_REPORT, now); + &report, PFCP_USAGE_REPORT_TRIGGER_TERMINATION_BY_UP_FUNCTION_REPORT, + now); upf_usage_report_build (sx, NULL, active->urr, now, &report, &req->usage_report); upf_usage_report_free (&report); } else - req->report_type = REPORT_TYPE_UISR; + req->report_type = PFCP_REPORT_TYPE_UISR; UPF_SET_BIT (req->grp.fields, SESSION_REPORT_REQUEST_PFCPSRREQ_FLAGS); /* PSDBU = PFCP Session Deleted By the UP function */ - req->pfcpsrreq_flags = PFCPSRREQ_PSDBU; + req->pfcpsrreq_flags = PFCP_PFCPSRREQ_PSDBU; upf_pfcp_server_send_session_request (sx, &dmsg); pfcp_free_dmsg_contents (&dmsg); @@ -836,8 +839,8 @@ static void upf_pfcp_session_usage_report (upf_session_t *sx, ip46_address_t *ue, upf_event_urr_data_t *uev, f64 now) { - pfcp_decoded_msg_t dmsg = { .type = PFCP_SESSION_REPORT_REQUEST }; - pfcp_session_report_request_t *req = &dmsg.session_report_request; + pfcp_decoded_msg_t dmsg = { .type = PFCP_MSG_SESSION_REPORT_REQUEST }; + pfcp_msg_session_report_request_t *req = &dmsg.session_report_request; upf_main_t *gtm = &upf_main; u32 si = sx - gtm->sessions; upf_event_urr_data_t *ev; @@ -856,7 +859,7 @@ upf_pfcp_session_usage_report (upf_session_t *sx, ip46_address_t *ue, memset (req, 0, sizeof (*req)); UPF_SET_BIT (req->grp.fields, SESSION_REPORT_REQUEST_REPORT_TYPE); - req->report_type = REPORT_TYPE_USAR; + req->report_type = PFCP_REPORT_TYPE_USAR; UPF_SET_BIT (req->grp.fields, SESSION_REPORT_REQUEST_USAGE_REPORT); @@ -871,7 +874,7 @@ upf_pfcp_session_usage_report (upf_session_t *sx, ip46_address_t *ue, if (ev->trigger & URR_START_OF_TRAFFIC) { upf_usage_report_trigger (&report, urr - active->urr, - USAGE_REPORT_TRIGGER_START_OF_TRAFFIC, + PFCP_USAGE_REPORT_TRIGGER_START_OF_TRAFFIC, urr->liusa_bitmap, now); send = 1; @@ -1019,8 +1022,8 @@ upf_pfcp_session_start_stop_urr_time (u32 si, urr_time_t *t, u8 start_it) static void upf_pfcp_session_urr_timer (upf_session_t *sx, f64 now) { - pfcp_decoded_msg_t dmsg = { .type = PFCP_SESSION_REPORT_REQUEST }; - pfcp_session_report_request_t *req = &dmsg.session_report_request; + pfcp_decoded_msg_t dmsg = { .type = PFCP_MSG_SESSION_REPORT_REQUEST }; + pfcp_msg_session_report_request_t *req = &dmsg.session_report_request; upf_main_t *gtm = &upf_main; u32 si = sx - gtm->sessions; upf_usage_report_t report; @@ -1050,7 +1053,7 @@ upf_pfcp_session_urr_timer (upf_session_t *sx, f64 now) active->inactivity_timer.period) { active->inactivity_timer.handle = ~0; - req->report_type |= REPORT_TYPE_UPIR; + req->report_type |= PFCP_REPORT_TYPE_UPIR; } else { @@ -1119,9 +1122,9 @@ upf_pfcp_session_urr_timer (upf_session_t *sx, f64 now) if (urr_check (urr->measurement_period, now)) { urr_check_late (urr->measurement_period, now); - if (urr->triggers & REPORTING_TRIGGER_PERIODIC_REPORTING) + if (urr->triggers & PFCP_REPORTING_TRIGGER_PERIODIC_REPORTING) { - trigger |= USAGE_REPORT_TRIGGER_PERIODIC_REPORTING; + trigger |= PFCP_USAGE_REPORT_TRIGGER_PERIODIC_REPORTING; trigger_now = clib_min (trigger_now, urr->measurement_period.expected); } @@ -1154,9 +1157,9 @@ upf_pfcp_session_urr_timer (upf_session_t *sx, f64 now) if (urr_check (urr->time_threshold, now)) { urr_check_late (urr->time_threshold, now); - if (urr->triggers & REPORTING_TRIGGER_TIME_THRESHOLD) + if (urr->triggers & PFCP_REPORTING_TRIGGER_TIME_THRESHOLD) { - trigger |= USAGE_REPORT_TRIGGER_TIME_THRESHOLD; + trigger |= PFCP_USAGE_REPORT_TRIGGER_TIME_THRESHOLD; trigger_now = clib_min (trigger_now, urr->time_threshold.expected); } @@ -1166,9 +1169,9 @@ upf_pfcp_session_urr_timer (upf_session_t *sx, f64 now) if (urr_check (urr->time_quota, now)) { urr_check_late (urr->time_quota, now); - if (urr->triggers & REPORTING_TRIGGER_TIME_QUOTA) + if (urr->triggers & PFCP_REPORTING_TRIGGER_TIME_QUOTA) { - trigger |= USAGE_REPORT_TRIGGER_TIME_QUOTA; + trigger |= PFCP_USAGE_REPORT_TRIGGER_TIME_QUOTA; trigger_now = clib_min (trigger_now, urr->time_quota.expected); } @@ -1179,9 +1182,9 @@ upf_pfcp_session_urr_timer (upf_session_t *sx, f64 now) if (urr_check (urr->quota_validity_time, now)) { urr_check_late (urr->quota_validity_time, now); - if (urr->triggers & REPORTING_TRIGGER_QUOTA_VALIDITY_TIME) + if (urr->triggers & PFCP_REPORTING_TRIGGER_QUOTA_VALIDITY_TIME) { - trigger |= USAGE_REPORT_TRIGGER_QUOTA_VALIDITY_TIME; + trigger |= PFCP_USAGE_REPORT_TRIGGER_QUOTA_VALIDITY_TIME; trigger_now = clib_min (trigger_now, urr->quota_validity_time.expected); } @@ -1223,7 +1226,7 @@ upf_pfcp_session_urr_timer (upf_session_t *sx, f64 now) if (trigger != 0) { - req->report_type |= REPORT_TYPE_USAR; + req->report_type |= PFCP_REPORT_TYPE_USAR; UPF_SET_BIT (req->grp.fields, SESSION_REPORT_REQUEST_USAGE_REPORT); upf_usage_report_trigger (&report, idx, trigger, urr->liusa_bitmap, @@ -1231,9 +1234,9 @@ upf_pfcp_session_urr_timer (upf_session_t *sx, f64 now) // clear reporting on the time based triggers, until rearmed by // update - urr->triggers &= - ~(REPORTING_TRIGGER_TIME_THRESHOLD | REPORTING_TRIGGER_TIME_QUOTA | - REPORTING_TRIGGER_QUOTA_VALIDITY_TIME); + urr->triggers &= ~(PFCP_REPORTING_TRIGGER_TIME_THRESHOLD | + PFCP_REPORTING_TRIGGER_TIME_QUOTA | + PFCP_REPORTING_TRIGGER_QUOTA_VALIDITY_TIME); } } @@ -1393,8 +1396,8 @@ void upf_server_handle_hb_timer (u32 node_idx) { pfcp_server_main_t *psm = &pfcp_server_main; - pfcp_decoded_msg_t dmsg = { .type = PFCP_HEARTBEAT_REQUEST }; - pfcp_heartbeat_request_t *req = &dmsg.heartbeat_request; + pfcp_decoded_msg_t dmsg = { .type = PFCP_MSG_HEARTBEAT_REQUEST }; + pfcp_msg_heartbeat_request_t *req = &dmsg.heartbeat_request; upf_main_t *gtm = &upf_main; upf_node_assoc_t *n; diff --git a/upf/upf_proxy_input.c b/upf/upf_proxy_input.c index e955e9c..645c082 100644 --- a/upf/upf_proxy_input.c +++ b/upf/upf_proxy_input.c @@ -454,11 +454,11 @@ upf_proxy_input (vlib_main_t *vm, vlib_node_runtime_t *node, } #define IS_DL(_pdr, _far) \ - ((_pdr)->pdi.src_intf == SRC_INTF_CORE || \ - (_far)->forward.dst_intf == DST_INTF_ACCESS) + ((_pdr)->pdi.src_intf == PFCP_SRC_INTF_CORE || \ + (_far)->forward.dst_intf == PFCP_DST_INTF_ACCESS) #define IS_UL(_pdr, _far) \ - ((_pdr)->pdi.src_intf == SRC_INTF_ACCESS || \ - (_far)->forward.dst_intf == DST_INTF_CORE) + ((_pdr)->pdi.src_intf == PFCP_SRC_INTF_ACCESS || \ + (_far)->forward.dst_intf == PFCP_DST_INTF_CORE) upf_debug ("pdr: %d, far: %d\n", pdr->id, far->id); if (!process_qers (vm, sess, active, pdr, b, IS_DL (pdr, far),