Upgrade PFCP to v16.9.1 (#1581)

This commit is contained in:
Sukchan Lee 2022-06-11 23:51:00 +09:00
parent b98c2c13f6
commit 12353178fb
30 changed files with 2398 additions and 220 deletions

View File

@ -118,6 +118,7 @@ def get_cells(cells):
presence = re.sub('\n', '', presence);
ie_value = re.sub('\s*\n*\s*\([^\)]*\)*', '', cells[0].text)
ie_value = re.sub('\\xa0', ' ', ie_value) # drop unicode char "No-Break Space" in "Higher bitrates than 16 Mbps flag"
ie_value = re.sub('\n', ' ', ie_value)
comment = cells[2].text.encode('ascii', 'ignore').decode('utf-8').rstrip()
comment = re.sub('\n|\"|\'|\\\\', '', comment);
if comment == 'GSN Address 7.7.32':
@ -234,6 +235,7 @@ else:
if key.find('Reserved') != -1:
continue
key = re.sub('\s*\n*\s*\([^\)]*\)*', '', key)
key = re.sub('\n', '', key)
msg_list[key] = { "type": type }
write_file(f, "msg_list[\"" + key + "\"] = { \"type\" : \"" + type + "\" }\n")
f.close()

View File

@ -1,5 +1,5 @@
/*
* Copyright (C) 2019 by Sukchan Lee <acetcom@gmail.com>
* Copyright (C) 2019-2022 by Sukchan Lee <acetcom@gmail.com>
*
* This file is part of Open5GS.
*
@ -20,7 +20,7 @@
/*******************************************************************************
* This file had been created by gtp-tlv.py script v0.1.0
* Please do not modify this file but regenerate it via script.
* Created on: 2022-05-01 15:20:04.462265 by acetcom
* Created on: 2022-06-11 20:06:47.872181 by acetcom
* from 29274-g30.docx
******************************************************************************/

View File

@ -1,5 +1,5 @@
/*
* Copyright (C) 2019 by Sukchan Lee <acetcom@gmail.com>
* Copyright (C) 2019-2022 by Sukchan Lee <acetcom@gmail.com>
*
* This file is part of Open5GS.
*
@ -20,7 +20,7 @@
/*******************************************************************************
* This file had been created by gtp-tlv.py script v0.1.0
* Please do not modify this file but regenerate it via script.
* Created on: 2022-05-01 15:20:04.456902 by acetcom
* Created on: 2022-06-11 20:06:47.866971 by acetcom
* from 29274-g30.docx
******************************************************************************/

View File

@ -1,4 +1,4 @@
# Copyright (C) 2019 by Sukchan Lee <acetcom@gmail.com>
# Copyright (C) 2019-2022 by Sukchan Lee <acetcom@gmail.com>
# This file is part of Open5GS.
@ -60,7 +60,7 @@ def write_file(f, string):
def output_header_to_file(f):
now = datetime.datetime.now()
f.write("""/*
* Copyright (C) 2019 by Sukchan Lee <acetcom@gmail.com>
* Copyright (C) 2019-2022 by Sukchan Lee <acetcom@gmail.com>
*
* This file is part of Open5GS.
*
@ -128,6 +128,7 @@ def get_cells(cells):
presence = cells[1].text
presence = re.sub('\n', '', presence);
ie_value = re.sub('\s*\n*\s*\([^\)]*\)*', '', cells[0].text)
ie_value = re.sub('\n', '', ie_value);
comment = cells[2].text.encode('ascii', 'ignore').decode('utf-8')
comment = re.sub('\n|\"|\'|\\\\', '', comment);
@ -241,6 +242,7 @@ else:
if key.find('Reserved') != -1:
continue
key = re.sub('\s*\n*\s*\([^\)]*\)*', '', key)
key = re.sub('\n', '', key);
msg_list[key] = { "type": type }
write_file(f, "msg_list[\"" + key + "\"] = { \"type\" : \"" + type + "\" }\n")
f.close()
@ -264,6 +266,9 @@ else:
for row in ie_table.rows[1:-5]:
key = row.cells[1].text
type = row.cells[0].text
if type.isdigit() is False:
continue
if key.find('Reserved') != -1:
continue
if key.find('MM Context') != -1:
@ -284,7 +289,7 @@ else:
key = re.sub('.*\(', '', row.cells[1].text)
key = re.sub('\)', '', key)
key = re.sub('\s*$', '', key)
type = row.cells[0].text
type_list[key] = { "type": type , "max_instance" : "0" }
write_file(f, "type_list[\"" + key + "\"] = { \"type\" : \"" + type)
write_file(f, "\", \"max_instance\" : \"0\" }\n")

File diff suppressed because it is too large Load Diff

View File

@ -1,5 +1,5 @@
/*
* Copyright (C) 2019 by Sukchan Lee <acetcom@gmail.com>
* Copyright (C) 2019-2022 by Sukchan Lee <acetcom@gmail.com>
*
* This file is part of Open5GS.
*
@ -20,8 +20,8 @@
/*******************************************************************************
* This file had been created by pfcp-tlv.py script v0.1.0
* Please do not modify this file but regenerate it via script.
* Created on: 2022-06-06 21:06:39.840383 by acetcom
* from 29244-g10.docx
* Created on: 2022-06-11 23:49:11.012732 by acetcom
* from 29244-g91-modified.docx
******************************************************************************/
#if !defined(OGS_PFCP_INSIDE) && !defined(OGS_PFCP_COMPILATION)
@ -243,7 +243,7 @@ typedef struct ogs_pfcp_header_s {
#define OGS_PFCP_FRAMED_ROUTE_TYPE 153
#define OGS_PFCP_FRAMED_ROUTING_TYPE 154
#define OGS_PFCP_FRAMED_IPV6_ROUTE_TYPE 155
#define OGS_PFCP_EVENT_TIME_STAMP_TYPE 156
#define OGS_PFCP_TIME_STAMP_TYPE 156
#define OGS_PFCP_AVERAGING_WINDOW_TYPE 157
#define OGS_PFCP_PAGING_POLICY_INDICATOR_TYPE 158
#define OGS_PFCP_APN_DNN_TYPE 159
@ -253,8 +253,8 @@ typedef struct ogs_pfcp_header_s {
#define OGS_PFCP_ACTIVATION_TIME_TYPE 163
#define OGS_PFCP_DEACTIVATION_TIME_TYPE 164
#define OGS_PFCP_CREATE_MAR_TYPE 165
#define OGS_PFCP_ACCESS_FORWARDING_ACTION_INFORMATION_1_TYPE 166
#define OGS_PFCP_ACCESS_FORWARDING_ACTION_INFORMATION_2_TYPE 167
#define OGS_PFCP__ACCESS_FORWARDING_ACTION_INFORMATION_TYPE 166
#define OGS_PFCP_NON__ACCESS_FORWARDING_ACTION_INFORMATION_TYPE 167
#define OGS_PFCP_REMOVE_MAR_TYPE 168
#define OGS_PFCP_UPDATE_MAR_TYPE 169
#define OGS_PFCP_MAR_ID_TYPE 170
@ -262,13 +262,103 @@ typedef struct ogs_pfcp_header_s {
#define OGS_PFCP_STEERING_MODE_TYPE 172
#define OGS_PFCP_WEIGHT_TYPE 173
#define OGS_PFCP_PRIORITY_TYPE 174
#define OGS_PFCP_UPDATE_ACCESS_FORWARDING_ACTION_INFORMATION_1_TYPE 175
#define OGS_PFCP_UPDATE_ACCESS_FORWARDING_ACTION_INFORMATION_2_TYPE 176
#define OGS_PFCP_UPDATE__ACCESS_FORWARDING_ACTION_INFORMATION_TYPE 175
#define OGS_PFCP_UPDATE_NON__ACCESS_FORWARDING_ACTION_INFORMATION_TYPE 176
#define OGS_PFCP_UE_IP_ADDRESS_POOL_IDENTITY_TYPE 177
#define OGS_PFCP_ALTERNATIVE_SMF_IP_ADDRESS_TYPE 178
#define OGS_PFCP_PACKET_REPLICATION_AND_DETECTION_CARRY_ON_INFORMATION_TYPE 179
#define OGS_PFCP_SMF_SET_ID_TYPE 180
#define OGS_PFCP_QUOTA_VALIDITY_TIME_TYPE 181
#define OGS_PFCP_NUMBER_OF_REPORTS_TYPE 182
#define OGS_PFCP_PFCP_SESSION_RETENTION_INFORMATION_WITHIN_PFCP_ASSOCIATION_SETUP_REQUEST_TYPE 183
#define OGS_PFCP_PFCPASRSP_FLAGS_TYPE 184
#define OGS_PFCP_CP_PFCP_ENTITY_IP_ADDRESS_TYPE 185
#define OGS_PFCP_PFCPSEREQ_FLAGS_TYPE 186
#define OGS_PFCP_USER_PLANE_PATH_RECOVERY_REPORT_TYPE 187
#define OGS_PFCP_IP_MULTICAST_ADDRESSING_INFO_WITHIN_PFCP_SESSION_ESTABLISHMENT_REQUEST_TYPE 188
#define OGS_PFCP_JOIN_IP_MULTICAST_INFORMATION_IE_WITHIN_USAGE_REPORT_TYPE 189
#define OGS_PFCP_LEAVE_IP_MULTICAST_INFORMATION_IE_WITHIN_USAGE_REPORT_TYPE 190
#define OGS_PFCP_IP_MULTICAST_ADDRESS_TYPE 191
#define OGS_PFCP_SOURCE_IP_ADDRESS_TYPE 192
#define OGS_PFCP_PACKET_RATE_STATUS_TYPE 193
#define OGS_PFCP_CREATE_BRIDGE_INFO_FOR_TSC_TYPE 194
#define OGS_PFCP_CREATED_BRIDGE_INFO_FOR_TSC_TYPE 195
#define OGS_PFCP_DS_TT_PORT_NUMBER_TYPE 196
#define OGS_PFCP_NW_TT_PORT_NUMBER_TYPE 197
#define OGS_PFCP_TSN_BRIDGE_ID_TYPE 198
#define OGS_PFCP_TSC_MANAGEMENT_INFORMATION_IE_WITHIN_PFCP_SESSION_MODIFICATION_REQUEST_TYPE 199
#define OGS_PFCP_TSC_MANAGEMENT_INFORMATION_IE_WITHIN_PFCP_SESSION_MODIFICATION_RESPONSE_TYPE 200
#define OGS_PFCP_TSC_MANAGEMENT_INFORMATION_IE_WITHIN_PFCP_SESSION_REPORT_REQUEST_TYPE 201
#define OGS_PFCP_PORT_MANAGEMENT_INFORMATION_CONTAINER_TYPE 202
#define OGS_PFCP_CLOCK_DRIFT_CONTROL_INFORMATION_TYPE 203
#define OGS_PFCP_REQUESTED_CLOCK_DRIFT_INFORMATION_TYPE 204
#define OGS_PFCP_CLOCK_DRIFT_REPORT_TYPE 205
#define OGS_PFCP_TSN_TIME_DOMAIN_NUMBER_TYPE 206
#define OGS_PFCP_TIME_OFFSET_THRESHOLD_TYPE 207
#define OGS_PFCP_CUMULATIVE_RATERATIO_THRESHOLD_TYPE 208
#define OGS_PFCP_TIME_OFFSET_MEASUREMENT_TYPE 209
#define OGS_PFCP_CUMULATIVE_RATERATIO_MEASUREMENT_TYPE 210
#define OGS_PFCP_REMOVE_SRR_TYPE 211
#define OGS_PFCP_CREATE_SRR_TYPE 212
#define OGS_PFCP_UPDATE_SRR_TYPE 213
#define OGS_PFCP_SESSION_REPORT_TYPE 214
#define OGS_PFCP_SRR_ID_TYPE 215
#define OGS_PFCP_ACCESS_AVAILABILITY_CONTROL_INFORMATION_TYPE 216
#define OGS_PFCP_REQUESTED_ACCESS_AVAILABILITY_INFORMATION_TYPE 217
#define OGS_PFCP_ACCESS_AVAILABILITY_REPORT_TYPE 218
#define OGS_PFCP_ACCESS_AVAILABILITY_INFORMATION_TYPE 219
#define OGS_PFCP_PROVIDE_ATSSS_CONTROL_INFORMATION_TYPE 220
#define OGS_PFCP_ATSSS_CONTROL_PARAMETERS_TYPE 221
#define OGS_PFCP_MPTCP_CONTROL_INFORMATION_TYPE 222
#define OGS_PFCP_ATSSS_LL_CONTROL_INFORMATION_TYPE 223
#define OGS_PFCP_PMF_CONTROL_INFORMATION_TYPE 224
#define OGS_PFCP_MPTCP_PARAMETERS_TYPE 225
#define OGS_PFCP_ATSSS_LL_PARAMETERS_TYPE 226
#define OGS_PFCP_PMF_PARAMETERS_TYPE 227
#define OGS_PFCP_MPTCP_ADDRESS_INFORMATION_TYPE 228
#define OGS_PFCP_UE_LINK_SPECIFIC_IP_ADDRESS_TYPE 229
#define OGS_PFCP_PMF_ADDRESS_INFORMATION_TYPE 230
#define OGS_PFCP_ATSSS_LL_INFORMATION_TYPE 231
#define OGS_PFCP_DATA_NETWORK_ACCESS_IDENTIFIER_TYPE 232
#define OGS_PFCP_UE_IP_ADDRESS_POOL_INFORMATION_TYPE 233
#define OGS_PFCP_AVERAGE_PACKET_DELAY_TYPE 234
#define OGS_PFCP_MINIMUM_PACKET_DELAY_TYPE 235
#define OGS_PFCP_MAXIMUM_PACKET_DELAY_TYPE 236
#define OGS_PFCP_QOS_REPORT_TRIGGER_TYPE 237
#define OGS_PFCP_GTP_U_PATH_QOS_CONTROL_INFORMATION_TYPE 238
#define OGS_PFCP_GTP_U_PATH_QOS_REPORT_PFCP_NODE_REPORT_REQUEST_TYPE 239
#define OGS_PFCP_QOS_INFORMATION_IN_GTP_U_PATH_QOS_REPORT_TYPE 240
#define OGS_PFCP_GTP_U_PATH_INTERFACE_TYPE_TYPE 241
#define OGS_PFCP_QOS_MONITORING_PER_QOS_FLOW_CONTROL_INFORMATION_TYPE 242
#define OGS_PFCP_REQUESTED_QOS_MONITORING_TYPE 243
#define OGS_PFCP_REPORTING_FREQUENCY_TYPE 244
#define OGS_PFCP_PACKET_DELAY_THRESHOLDS_TYPE 245
#define OGS_PFCP_MINIMUM_WAIT_TIME_TYPE 246
#define OGS_PFCP_QOS_MONITORING_REPORT_TYPE 247
#define OGS_PFCP_QOS_MONITORING_MEASUREMENT_TYPE 248
#define OGS_PFCP_MT_EDT_CONTROL_INFORMATION_TYPE 249
#define OGS_PFCP_DL_DATA_PACKETS_SIZE_TYPE 250
#define OGS_PFCP_QER_CONTROL_INDICATIONS_TYPE 251
#define OGS_PFCP_PACKET_RATE_STATUS_REPORT_TYPE 252
#define OGS_PFCP_NF_INSTANCE_ID_TYPE 253
#define OGS_PFCP_ETHERNET_CONTEXT_INFORMATION_TYPE 254
#define OGS_PFCP_REDUNDANT_TRANSMISSION_PARAMETERS_TYPE 255
#define OGS_PFCP_UPDATED_PDR_TYPE 256
#define OGS_PFCP_S_NSSAI_TYPE 257
#define OGS_PFCP_IP_VERSION_TYPE 258
#define OGS_PFCP_PFCPASREQ_FLAGS_TYPE 259
#define OGS_PFCP_DATA_STATUS_TYPE 260
#define OGS_PFCP_PROVIDE_RDS_CONFIGURATION_INFORMATION_TYPE 261
#define OGS_PFCP_RDS_CONFIGURATION_INFORMATION_TYPE 262
#define OGS_PFCP_QUERY_PACKET_RATE_STATUS_IE_WITHIN_PFCP_SESSION_MODIFICATION_REQUEST_TYPE 263
#define OGS_PFCP_PACKET_RATE_STATUS_REPORT_IE_WITHIN_PFCP_SESSION_MODIFICATION_RESPONSE_TYPE 264
#define OGS_PFCP_MPTCP_APPLICABLE_INDICATION_TYPE 265
#define OGS_PFCP_BRIDGE_MANAGEMENT_INFORMATION_CONTAINER_TYPE 266
#define OGS_PFCP_UE_IP_ADDRESS_USAGE_INFORMATION_TYPE 267
#define OGS_PFCP_NUMBER_OF_UE_IP_ADDRESSES_TYPE 268
#define OGS_PFCP_VALIDITY_TIMER_TYPE 269
#define OGS_PFCP_REDUNDANT_TRANSMISSION_FORWARDING_PARAMETERS_TYPE 270
#define OGS_PFCP_TRANSPORT_DELAY_REPORTING_TYPE 271
/* Information Element TLV Descriptor */
extern ogs_tlv_desc_t ogs_pfcp_tlv_desc_cause;
@ -387,7 +477,7 @@ extern ogs_tlv_desc_t ogs_pfcp_tlv_desc_trace_information;
extern ogs_tlv_desc_t ogs_pfcp_tlv_desc_framed_route;
extern ogs_tlv_desc_t ogs_pfcp_tlv_desc_framed_routing;
extern ogs_tlv_desc_t ogs_pfcp_tlv_desc_framed_ipv6_route;
extern ogs_tlv_desc_t ogs_pfcp_tlv_desc_event_time_stamp;
extern ogs_tlv_desc_t ogs_pfcp_tlv_desc_time_stamp;
extern ogs_tlv_desc_t ogs_pfcp_tlv_desc_averaging_window;
extern ogs_tlv_desc_t ogs_pfcp_tlv_desc_paging_policy_indicator;
extern ogs_tlv_desc_t ogs_pfcp_tlv_desc_apn_dnn;
@ -406,13 +496,72 @@ extern ogs_tlv_desc_t ogs_pfcp_tlv_desc_alternative_smf_ip_address;
extern ogs_tlv_desc_t ogs_pfcp_tlv_desc_packet_replication_and_detection_carry_on_information;
extern ogs_tlv_desc_t ogs_pfcp_tlv_desc_smf_set_id;
extern ogs_tlv_desc_t ogs_pfcp_tlv_desc_quota_validity_time;
extern ogs_tlv_desc_t ogs_pfcp_tlv_desc_number_of_reports;
extern ogs_tlv_desc_t ogs_pfcp_tlv_desc_pfcpasrsp_flags;
extern ogs_tlv_desc_t ogs_pfcp_tlv_desc_cp_pfcp_entity_ip_address;
extern ogs_tlv_desc_t ogs_pfcp_tlv_desc_pfcpsereq_flags;
extern ogs_tlv_desc_t ogs_pfcp_tlv_desc_ip_multicast_address;
extern ogs_tlv_desc_t ogs_pfcp_tlv_desc_source_ip_address;
extern ogs_tlv_desc_t ogs_pfcp_tlv_desc_packet_rate_status;
extern ogs_tlv_desc_t ogs_pfcp_tlv_desc_create_bridge_info_for_tsc;
extern ogs_tlv_desc_t ogs_pfcp_tlv_desc_ds_tt_port_number;
extern ogs_tlv_desc_t ogs_pfcp_tlv_desc_nw_tt_port_number;
extern ogs_tlv_desc_t ogs_pfcp_tlv_desc_tsn_bridge_id;
extern ogs_tlv_desc_t ogs_pfcp_tlv_desc_port_management_information_container;
extern ogs_tlv_desc_t ogs_pfcp_tlv_desc_requested_clock_drift_information;
extern ogs_tlv_desc_t ogs_pfcp_tlv_desc_tsn_time_domain_number;
extern ogs_tlv_desc_t ogs_pfcp_tlv_desc_time_offset_threshold;
extern ogs_tlv_desc_t ogs_pfcp_tlv_desc_cumulative_rateratio_threshold;
extern ogs_tlv_desc_t ogs_pfcp_tlv_desc_time_offset_measurement;
extern ogs_tlv_desc_t ogs_pfcp_tlv_desc_cumulative_rateratio_measurement;
extern ogs_tlv_desc_t ogs_pfcp_tlv_desc_srr_id;
extern ogs_tlv_desc_t ogs_pfcp_tlv_desc_access_availability_control_information;
extern ogs_tlv_desc_t ogs_pfcp_tlv_desc_requested_access_availability_information;
extern ogs_tlv_desc_t ogs_pfcp_tlv_desc_access_availability_information;
extern ogs_tlv_desc_t ogs_pfcp_tlv_desc_mptcp_control_information;
extern ogs_tlv_desc_t ogs_pfcp_tlv_desc_atsss_ll_control_information;
extern ogs_tlv_desc_t ogs_pfcp_tlv_desc_pmf_control_information;
extern ogs_tlv_desc_t ogs_pfcp_tlv_desc_mptcp_address_information;
extern ogs_tlv_desc_t ogs_pfcp_tlv_desc_ue_link_specific_ip_address;
extern ogs_tlv_desc_t ogs_pfcp_tlv_desc_pmf_address_information;
extern ogs_tlv_desc_t ogs_pfcp_tlv_desc_atsss_ll_information;
extern ogs_tlv_desc_t ogs_pfcp_tlv_desc_data_network_access_identifier;
extern ogs_tlv_desc_t ogs_pfcp_tlv_desc_average_packet_delay;
extern ogs_tlv_desc_t ogs_pfcp_tlv_desc_minimum_packet_delay;
extern ogs_tlv_desc_t ogs_pfcp_tlv_desc_maximum_packet_delay;
extern ogs_tlv_desc_t ogs_pfcp_tlv_desc_qos_report_trigger;
extern ogs_tlv_desc_t ogs_pfcp_tlv_desc_gtp_u_path_qos_control_information;
extern ogs_tlv_desc_t ogs_pfcp_tlv_desc_gtp_u_path_interface_type;
extern ogs_tlv_desc_t ogs_pfcp_tlv_desc_qos_monitoring_per_qos_flow_control_information;
extern ogs_tlv_desc_t ogs_pfcp_tlv_desc_requested_qos_monitoring;
extern ogs_tlv_desc_t ogs_pfcp_tlv_desc_reporting_frequency;
extern ogs_tlv_desc_t ogs_pfcp_tlv_desc_packet_delay_thresholds;
extern ogs_tlv_desc_t ogs_pfcp_tlv_desc_minimum_wait_time;
extern ogs_tlv_desc_t ogs_pfcp_tlv_desc_qos_monitoring_measurement;
extern ogs_tlv_desc_t ogs_pfcp_tlv_desc_mt_edt_control_information;
extern ogs_tlv_desc_t ogs_pfcp_tlv_desc_dl_data_packets_size;
extern ogs_tlv_desc_t ogs_pfcp_tlv_desc_qer_control_indications;
extern ogs_tlv_desc_t ogs_pfcp_tlv_desc_nf_instance_id;
extern ogs_tlv_desc_t ogs_pfcp_tlv_desc_s_nssai;
extern ogs_tlv_desc_t ogs_pfcp_tlv_desc_ip_version;
extern ogs_tlv_desc_t ogs_pfcp_tlv_desc_pfcpasreq_flags;
extern ogs_tlv_desc_t ogs_pfcp_tlv_desc_data_status;
extern ogs_tlv_desc_t ogs_pfcp_tlv_desc_rds_configuration_information;
extern ogs_tlv_desc_t ogs_pfcp_tlv_desc_mptcp_applicable_indication;
extern ogs_tlv_desc_t ogs_pfcp_tlv_desc_bridge_management_information_container;
extern ogs_tlv_desc_t ogs_pfcp_tlv_desc_number_of_ue_ip_addresses;
extern ogs_tlv_desc_t ogs_pfcp_tlv_desc_validity_timer;
/* Group Information Element TLV Descriptor */
extern ogs_tlv_desc_t ogs_pfcp_tlv_desc_ethernet_packet_filter;
extern ogs_tlv_desc_t ogs_pfcp_tlv_desc_redundant_transmission_parameters;
extern ogs_tlv_desc_t ogs_pfcp_tlv_desc_ip_multicast_addressing_info_within_pfcp_session_establishment_request;
extern ogs_tlv_desc_t ogs_pfcp_tlv_desc_pdi;
extern ogs_tlv_desc_t ogs_pfcp_tlv_desc_transport_delay_reporting;
extern ogs_tlv_desc_t ogs_pfcp_tlv_desc_create_pdr;
extern ogs_tlv_desc_t ogs_pfcp_tlv_desc_forwarding_parameters;
extern ogs_tlv_desc_t ogs_pfcp_tlv_desc_duplicating_parameters;
extern ogs_tlv_desc_t ogs_pfcp_tlv_desc_redundant_transmission_forwarding_parameters;
extern ogs_tlv_desc_t ogs_pfcp_tlv_desc_create_far;
extern ogs_tlv_desc_t ogs_pfcp_tlv_desc_update_forwarding_parameters;
extern ogs_tlv_desc_t ogs_pfcp_tlv_desc_update_duplicating_parameters;
@ -420,10 +569,17 @@ extern ogs_tlv_desc_t ogs_pfcp_tlv_desc_update_far;
extern ogs_tlv_desc_t ogs_pfcp_tlv_desc_pfd_context;
extern ogs_tlv_desc_t ogs_pfcp_tlv_desc_application_id_s_pfds;
extern ogs_tlv_desc_t ogs_pfcp_tlv_desc_ethernet_traffic_information;
extern ogs_tlv_desc_t ogs_pfcp_tlv_desc_access_forwarding_action_information_1;
extern ogs_tlv_desc_t ogs_pfcp_tlv_desc_access_forwarding_action_information_2;
extern ogs_tlv_desc_t ogs_pfcp_tlv_desc_update_access_forwarding_action_information_1;
extern ogs_tlv_desc_t ogs_pfcp_tlv_desc_update_access_forwarding_action_information_2;
extern ogs_tlv_desc_t ogs_pfcp_tlv_desc__access_forwarding_action_information;
extern ogs_tlv_desc_t ogs_pfcp_tlv_desc_non__access_forwarding_action_information;
extern ogs_tlv_desc_t ogs_pfcp_tlv_desc_update__access_forwarding_action_information;
extern ogs_tlv_desc_t ogs_pfcp_tlv_desc_update_non__access_forwarding_action_information;
extern ogs_tlv_desc_t ogs_pfcp_tlv_desc_access_availability_report;
extern ogs_tlv_desc_t ogs_pfcp_tlv_desc_qos_monitoring_report;
extern ogs_tlv_desc_t ogs_pfcp_tlv_desc_mptcp_parameters;
extern ogs_tlv_desc_t ogs_pfcp_tlv_desc_atsss_ll_parameters;
extern ogs_tlv_desc_t ogs_pfcp_tlv_desc_pmf_parameters;
extern ogs_tlv_desc_t ogs_pfcp_tlv_desc_join_ip_multicast_information_ie_within_usage_report;
extern ogs_tlv_desc_t ogs_pfcp_tlv_desc_leave_ip_multicast_information_ie_within_usage_report;
extern ogs_tlv_desc_t ogs_pfcp_tlv_desc_create_urr;
extern ogs_tlv_desc_t ogs_pfcp_tlv_desc_create_qer;
extern ogs_tlv_desc_t ogs_pfcp_tlv_desc_created_pdr;
@ -454,6 +610,30 @@ extern ogs_tlv_desc_t ogs_pfcp_tlv_desc_remove_traffic_endpoint;
extern ogs_tlv_desc_t ogs_pfcp_tlv_desc_create_mar;
extern ogs_tlv_desc_t ogs_pfcp_tlv_desc_remove_mar;
extern ogs_tlv_desc_t ogs_pfcp_tlv_desc_update_mar;
extern ogs_tlv_desc_t ogs_pfcp_tlv_desc_pfcp_session_retention_information_within_pfcp_association_setup_request;
extern ogs_tlv_desc_t ogs_pfcp_tlv_desc_user_plane_path_recovery_report;
extern ogs_tlv_desc_t ogs_pfcp_tlv_desc_created_bridge_info_for_tsc;
extern ogs_tlv_desc_t ogs_pfcp_tlv_desc_tsc_management_information_ie_within_pfcp_session_modification_request;
extern ogs_tlv_desc_t ogs_pfcp_tlv_desc_tsc_management_information_ie_within_pfcp_session_modification_response;
extern ogs_tlv_desc_t ogs_pfcp_tlv_desc_tsc_management_information_ie_within_pfcp_session_report_request;
extern ogs_tlv_desc_t ogs_pfcp_tlv_desc_clock_drift_control_information;
extern ogs_tlv_desc_t ogs_pfcp_tlv_desc_clock_drift_report;
extern ogs_tlv_desc_t ogs_pfcp_tlv_desc_remove_srr;
extern ogs_tlv_desc_t ogs_pfcp_tlv_desc_create_srr;
extern ogs_tlv_desc_t ogs_pfcp_tlv_desc_update_srr;
extern ogs_tlv_desc_t ogs_pfcp_tlv_desc_session_report;
extern ogs_tlv_desc_t ogs_pfcp_tlv_desc_provide_atsss_control_information;
extern ogs_tlv_desc_t ogs_pfcp_tlv_desc_atsss_control_parameters;
extern ogs_tlv_desc_t ogs_pfcp_tlv_desc_ue_ip_address_pool_information;
extern ogs_tlv_desc_t ogs_pfcp_tlv_desc_gtp_u_path_qos_report_pfcp_node_report_request;
extern ogs_tlv_desc_t ogs_pfcp_tlv_desc_qos_information_in_gtp_u_path_qos_report;
extern ogs_tlv_desc_t ogs_pfcp_tlv_desc_packet_rate_status_report;
extern ogs_tlv_desc_t ogs_pfcp_tlv_desc_ethernet_context_information;
extern ogs_tlv_desc_t ogs_pfcp_tlv_desc_updated_pdr;
extern ogs_tlv_desc_t ogs_pfcp_tlv_desc_provide_rds_configuration_information;
extern ogs_tlv_desc_t ogs_pfcp_tlv_desc_query_packet_rate_status_ie_within_pfcp_session_modification_request;
extern ogs_tlv_desc_t ogs_pfcp_tlv_desc_packet_rate_status_report_ie_within_pfcp_session_modification_response;
extern ogs_tlv_desc_t ogs_pfcp_tlv_desc_ue_ip_address_usage_information;
/* Message Descriptor */
extern ogs_tlv_desc_t ogs_pfcp_msg_desc_pfcp_heartbeat_request;
@ -597,7 +777,7 @@ typedef ogs_tlv_octet_t ogs_pfcp_tlv_trace_information_t;
typedef ogs_tlv_octet_t ogs_pfcp_tlv_framed_route_t;
typedef ogs_tlv_octet_t ogs_pfcp_tlv_framed_routing_t;
typedef ogs_tlv_octet_t ogs_pfcp_tlv_framed_ipv6_route_t;
typedef ogs_tlv_octet_t ogs_pfcp_tlv_event_time_stamp_t;
typedef ogs_tlv_octet_t ogs_pfcp_tlv_time_stamp_t;
typedef ogs_tlv_uint32_t ogs_pfcp_tlv_averaging_window_t;
typedef ogs_tlv_uint8_t ogs_pfcp_tlv_paging_policy_indicator_t;
typedef ogs_tlv_octet_t ogs_pfcp_tlv_apn_dnn_t;
@ -616,6 +796,61 @@ typedef ogs_tlv_octet_t ogs_pfcp_tlv_alternative_smf_ip_address_t;
typedef ogs_tlv_octet_t ogs_pfcp_tlv_packet_replication_and_detection_carry_on_information_t;
typedef ogs_tlv_octet_t ogs_pfcp_tlv_smf_set_id_t;
typedef ogs_tlv_uint32_t ogs_pfcp_tlv_quota_validity_time_t;
typedef ogs_tlv_octet_t ogs_pfcp_tlv_number_of_reports_t;
typedef ogs_tlv_octet_t ogs_pfcp_tlv_pfcpasrsp_flags_t;
typedef ogs_tlv_octet_t ogs_pfcp_tlv_cp_pfcp_entity_ip_address_t;
typedef ogs_tlv_octet_t ogs_pfcp_tlv_pfcpsereq_flags_t;
typedef ogs_tlv_octet_t ogs_pfcp_tlv_ip_multicast_address_t;
typedef ogs_tlv_octet_t ogs_pfcp_tlv_source_ip_address_t;
typedef ogs_tlv_octet_t ogs_pfcp_tlv_packet_rate_status_t;
typedef ogs_tlv_octet_t ogs_pfcp_tlv_create_bridge_info_for_tsc_t;
typedef ogs_tlv_octet_t ogs_pfcp_tlv_ds_tt_port_number_t;
typedef ogs_tlv_octet_t ogs_pfcp_tlv_nw_tt_port_number_t;
typedef ogs_tlv_octet_t ogs_pfcp_tlv_tsn_bridge_id_t;
typedef ogs_tlv_octet_t ogs_pfcp_tlv_port_management_information_container_t;
typedef ogs_tlv_octet_t ogs_pfcp_tlv_requested_clock_drift_information_t;
typedef ogs_tlv_octet_t ogs_pfcp_tlv_tsn_time_domain_number_t;
typedef ogs_tlv_octet_t ogs_pfcp_tlv_time_offset_threshold_t;
typedef ogs_tlv_octet_t ogs_pfcp_tlv_cumulative_rateratio_threshold_t;
typedef ogs_tlv_octet_t ogs_pfcp_tlv_time_offset_measurement_t;
typedef ogs_tlv_octet_t ogs_pfcp_tlv_cumulative_rateratio_measurement_t;
typedef ogs_tlv_octet_t ogs_pfcp_tlv_srr_id_t;
typedef ogs_tlv_octet_t ogs_pfcp_tlv_access_availability_control_information_t;
typedef ogs_tlv_octet_t ogs_pfcp_tlv_requested_access_availability_information_t;
typedef ogs_tlv_octet_t ogs_pfcp_tlv_access_availability_information_t;
typedef ogs_tlv_octet_t ogs_pfcp_tlv_mptcp_control_information_t;
typedef ogs_tlv_octet_t ogs_pfcp_tlv_atsss_ll_control_information_t;
typedef ogs_tlv_octet_t ogs_pfcp_tlv_pmf_control_information_t;
typedef ogs_tlv_octet_t ogs_pfcp_tlv_mptcp_address_information_t;
typedef ogs_tlv_octet_t ogs_pfcp_tlv_ue_link_specific_ip_address_t;
typedef ogs_tlv_octet_t ogs_pfcp_tlv_pmf_address_information_t;
typedef ogs_tlv_octet_t ogs_pfcp_tlv_atsss_ll_information_t;
typedef ogs_tlv_octet_t ogs_pfcp_tlv_data_network_access_identifier_t;
typedef ogs_tlv_octet_t ogs_pfcp_tlv_average_packet_delay_t;
typedef ogs_tlv_octet_t ogs_pfcp_tlv_minimum_packet_delay_t;
typedef ogs_tlv_octet_t ogs_pfcp_tlv_maximum_packet_delay_t;
typedef ogs_tlv_octet_t ogs_pfcp_tlv_qos_report_trigger_t;
typedef ogs_tlv_octet_t ogs_pfcp_tlv_gtp_u_path_qos_control_information_t;
typedef ogs_tlv_octet_t ogs_pfcp_tlv_gtp_u_path_interface_type_t;
typedef ogs_tlv_octet_t ogs_pfcp_tlv_qos_monitoring_per_qos_flow_control_information_t;
typedef ogs_tlv_octet_t ogs_pfcp_tlv_requested_qos_monitoring_t;
typedef ogs_tlv_octet_t ogs_pfcp_tlv_reporting_frequency_t;
typedef ogs_tlv_octet_t ogs_pfcp_tlv_packet_delay_thresholds_t;
typedef ogs_tlv_octet_t ogs_pfcp_tlv_minimum_wait_time_t;
typedef ogs_tlv_octet_t ogs_pfcp_tlv_qos_monitoring_measurement_t;
typedef ogs_tlv_octet_t ogs_pfcp_tlv_mt_edt_control_information_t;
typedef ogs_tlv_octet_t ogs_pfcp_tlv_dl_data_packets_size_t;
typedef ogs_tlv_octet_t ogs_pfcp_tlv_qer_control_indications_t;
typedef ogs_tlv_octet_t ogs_pfcp_tlv_nf_instance_id_t;
typedef ogs_tlv_octet_t ogs_pfcp_tlv_s_nssai_t;
typedef ogs_tlv_octet_t ogs_pfcp_tlv_ip_version_t;
typedef ogs_tlv_octet_t ogs_pfcp_tlv_pfcpasreq_flags_t;
typedef ogs_tlv_octet_t ogs_pfcp_tlv_data_status_t;
typedef ogs_tlv_octet_t ogs_pfcp_tlv_rds_configuration_information_t;
typedef ogs_tlv_octet_t ogs_pfcp_tlv_mptcp_applicable_indication_t;
typedef ogs_tlv_octet_t ogs_pfcp_tlv_bridge_management_information_container_t;
typedef ogs_tlv_octet_t ogs_pfcp_tlv_number_of_ue_ip_addresses_t;
typedef ogs_tlv_octet_t ogs_pfcp_tlv_validity_timer_t;
/* Structure for Group Information Element */
typedef struct ogs_pfcp_tlv_ethernet_packet_filter_s {
@ -629,11 +864,24 @@ typedef struct ogs_pfcp_tlv_ethernet_packet_filter_s {
ogs_pfcp_tlv_sdf_filter_t sdf_filter[8];
} ogs_pfcp_tlv_ethernet_packet_filter_t;
typedef struct ogs_pfcp_tlv_redundant_transmission_parameters_s {
ogs_tlv_presence_t presence;
ogs_pfcp_tlv_f_teid_t local_f_teid_for_redundant_transmission;
ogs_pfcp_tlv_network_instance_t network_instance_for_redundant_transmission;
} ogs_pfcp_tlv_redundant_transmission_parameters_t;
typedef struct ogs_pfcp_tlv_ip_multicast_addressing_info_within_pfcp_session_establishment_request_s {
ogs_tlv_presence_t presence;
ogs_pfcp_tlv_ip_multicast_address_t ip_multicast_address;
ogs_pfcp_tlv_source_ip_address_t source_ip_address;
} ogs_pfcp_tlv_ip_multicast_addressing_info_within_pfcp_session_establishment_request_t;
typedef struct ogs_pfcp_tlv_pdi_s {
ogs_tlv_presence_t presence;
ogs_pfcp_tlv_source_interface_t source_interface;
ogs_pfcp_tlv_f_teid_t local_f_teid;
ogs_pfcp_tlv_network_instance_t network_instance;
ogs_pfcp_tlv_redundant_transmission_parameters_t redundant_transmission_detection_parameters;
ogs_pfcp_tlv_ue_ip_address_t ue_ip_address;
ogs_pfcp_tlv_traffic_endpoint_id_t traffic_endpoint_id;
ogs_pfcp_tlv_sdf_filter_t sdf_filter[8];
@ -645,8 +893,15 @@ typedef struct ogs_pfcp_tlv_pdi_s {
ogs_pfcp_tlv_framed_routing_t framed_routing;
ogs_pfcp_tlv_framed_ipv6_route_t framed_ipv6_route;
ogs_pfcp_tlv__interface_type_t source_interface_type;
ogs_pfcp_tlv_ip_multicast_addressing_info_within_pfcp_session_establishment_request_t ip_multicast_addressing_info;
} ogs_pfcp_tlv_pdi_t;
typedef struct ogs_pfcp_tlv_transport_delay_reporting_s {
ogs_tlv_presence_t presence;
ogs_pfcp_tlv_remote_gtp_u_peer_t preceding_ul_gtp_u_peer;
ogs_pfcp_tlv_transport_level_marking_t dscp;
} ogs_pfcp_tlv_transport_delay_reporting_t;
typedef struct ogs_pfcp_tlv_create_pdr_s {
ogs_tlv_presence_t presence;
ogs_pfcp_tlv_pdr_id_t pdr_id;
@ -661,6 +916,10 @@ typedef struct ogs_pfcp_tlv_create_pdr_s {
ogs_pfcp_tlv_deactivation_time_t deactivation_time;
ogs_pfcp_tlv_mar_id_t mar_id;
ogs_pfcp_tlv_packet_replication_and_detection_carry_on_information_t packet_replication_and_detection_carry_on_information;
ogs_pfcp_tlv_ip_multicast_addressing_info_within_pfcp_session_establishment_request_t ip_multicast_addressing_info;
ogs_pfcp_tlv_ue_ip_address_t ue_ip_address_pool_identity;
ogs_pfcp_tlv_mptcp_applicable_indication_t mptcp_applicable_indication;
ogs_pfcp_tlv_transport_delay_reporting_t transport_delay_reporting;
} ogs_pfcp_tlv_create_pdr_t;
typedef struct ogs_pfcp_tlv_forwarding_parameters_s {
@ -675,6 +934,7 @@ typedef struct ogs_pfcp_tlv_forwarding_parameters_s {
ogs_pfcp_tlv_traffic_endpoint_id_t linked_traffic_endpoint_id;
ogs_pfcp_tlv_proxying_t proxying;
ogs_pfcp_tlv__interface_type_t destination_interface_type;
ogs_pfcp_tlv_data_network_access_identifier_t data_network_access_identifier;
} ogs_pfcp_tlv_forwarding_parameters_t;
typedef struct ogs_pfcp_tlv_duplicating_parameters_s {
@ -685,6 +945,12 @@ typedef struct ogs_pfcp_tlv_duplicating_parameters_s {
ogs_pfcp_tlv_forwarding_policy_t forwarding_policy;
} ogs_pfcp_tlv_duplicating_parameters_t;
typedef struct ogs_pfcp_tlv_redundant_transmission_forwarding_parameters_s {
ogs_tlv_presence_t presence;
ogs_pfcp_tlv_outer_header_creation_t outer_header_creation;
ogs_pfcp_tlv_network_instance_t network_instance_for_redundant_transmission;
} ogs_pfcp_tlv_redundant_transmission_forwarding_parameters_t;
typedef struct ogs_pfcp_tlv_create_far_s {
ogs_tlv_presence_t presence;
ogs_pfcp_tlv_far_id_t far_id;
@ -692,6 +958,7 @@ typedef struct ogs_pfcp_tlv_create_far_s {
ogs_pfcp_tlv_forwarding_parameters_t forwarding_parameters;
ogs_pfcp_tlv_duplicating_parameters_t duplicating_parameters;
ogs_pfcp_tlv_bar_id_t bar_id;
ogs_pfcp_tlv_redundant_transmission_forwarding_parameters_t redundant_transmission_forwarding_parameters;
} ogs_pfcp_tlv_create_far_t;
typedef struct ogs_pfcp_tlv_update_forwarding_parameters_s {
@ -706,6 +973,7 @@ typedef struct ogs_pfcp_tlv_update_forwarding_parameters_s {
ogs_pfcp_tlv_pfcpsmreq_flags_t pfcpsmreq_flags;
ogs_pfcp_tlv_traffic_endpoint_id_t linked_traffic_endpoint_id;
ogs_pfcp_tlv__interface_type_t destination_interface_type;
ogs_pfcp_tlv_data_network_access_identifier_t data_network_access_identifier;
} ogs_pfcp_tlv_update_forwarding_parameters_t;
typedef struct ogs_pfcp_tlv_update_duplicating_parameters_s {
@ -722,6 +990,7 @@ typedef struct ogs_pfcp_tlv_update_far_s {
ogs_pfcp_tlv_apply_action_t apply_action;
ogs_pfcp_tlv_update_forwarding_parameters_t update_forwarding_parameters;
ogs_pfcp_tlv_update_duplicating_parameters_t update_duplicating_parameters;
ogs_pfcp_tlv_redundant_transmission_forwarding_parameters_t redundant_transmission_forwarding_parameters;
ogs_pfcp_tlv_bar_id_t bar_id;
} ogs_pfcp_tlv_update_far_t;
@ -742,37 +1011,78 @@ typedef struct ogs_pfcp_tlv_ethernet_traffic_information_s {
ogs_pfcp_tlv_mac_addresses_removed_t mac_addresses_removed;
} ogs_pfcp_tlv_ethernet_traffic_information_t;
typedef struct ogs_pfcp_tlv_access_forwarding_action_information_1_s {
typedef struct ogs_pfcp_tlv__access_forwarding_action_information_s {
ogs_tlv_presence_t presence;
ogs_pfcp_tlv_far_id_t far_id;
ogs_pfcp_tlv_weight_t weight;
ogs_pfcp_tlv_priority_t priority;
ogs_pfcp_tlv_urr_id_t urr_id[8];
} ogs_pfcp_tlv_access_forwarding_action_information_1_t;
} ogs_pfcp_tlv__access_forwarding_action_information_t;
typedef struct ogs_pfcp_tlv_access_forwarding_action_information_2_s {
typedef struct ogs_pfcp_tlv_non__access_forwarding_action_information_s {
ogs_tlv_presence_t presence;
ogs_pfcp_tlv_far_id_t far_id;
ogs_pfcp_tlv_weight_t weight;
ogs_pfcp_tlv_priority_t priority;
ogs_pfcp_tlv_urr_id_t urr_id[8];
} ogs_pfcp_tlv_access_forwarding_action_information_2_t;
} ogs_pfcp_tlv_non__access_forwarding_action_information_t;
typedef struct ogs_pfcp_tlv_update_access_forwarding_action_information_1_s {
typedef struct ogs_pfcp_tlv_update__access_forwarding_action_information_s {
ogs_tlv_presence_t presence;
ogs_pfcp_tlv_far_id_t far_id;
ogs_pfcp_tlv_weight_t weight;
ogs_pfcp_tlv_priority_t priority;
ogs_pfcp_tlv_urr_id_t urr_id;
} ogs_pfcp_tlv_update_access_forwarding_action_information_1_t;
} ogs_pfcp_tlv_update__access_forwarding_action_information_t;
typedef struct ogs_pfcp_tlv_update_access_forwarding_action_information_2_s {
typedef struct ogs_pfcp_tlv_update_non__access_forwarding_action_information_s {
ogs_tlv_presence_t presence;
ogs_pfcp_tlv_far_id_t far_id;
ogs_pfcp_tlv_weight_t weight;
ogs_pfcp_tlv_priority_t priority;
ogs_pfcp_tlv_urr_id_t urr_id;
} ogs_pfcp_tlv_update_access_forwarding_action_information_2_t;
} ogs_pfcp_tlv_update_non__access_forwarding_action_information_t;
typedef struct ogs_pfcp_tlv_access_availability_report_s {
ogs_tlv_presence_t presence;
ogs_pfcp_tlv_access_availability_information_t access_availability_information;
} ogs_pfcp_tlv_access_availability_report_t;
typedef struct ogs_pfcp_tlv_qos_monitoring_report_s {
ogs_tlv_presence_t presence;
ogs_pfcp_tlv_qfi_t qfi;
ogs_pfcp_tlv_qos_monitoring_measurement_t qos_monitoring_measurement;
ogs_pfcp_tlv_time_stamp_t time_stamp;
ogs_pfcp_tlv_start_time_t start_time;
} ogs_pfcp_tlv_qos_monitoring_report_t;
typedef struct ogs_pfcp_tlv_mptcp_parameters_s {
ogs_tlv_presence_t presence;
ogs_pfcp_tlv_mptcp_address_information_t mptcp_address_information;
ogs_pfcp_tlv_ue_link_specific_ip_address_t ue_link_specific_ip_address;
} ogs_pfcp_tlv_mptcp_parameters_t;
typedef struct ogs_pfcp_tlv_atsss_ll_parameters_s {
ogs_tlv_presence_t presence;
ogs_pfcp_tlv_atsss_ll_information_t atsss_ll_information;
} ogs_pfcp_tlv_atsss_ll_parameters_t;
typedef struct ogs_pfcp_tlv_pmf_parameters_s {
ogs_tlv_presence_t presence;
ogs_pfcp_tlv_pmf_address_information_t pmf_address_information;
} ogs_pfcp_tlv_pmf_parameters_t;
typedef struct ogs_pfcp_tlv_join_ip_multicast_information_ie_within_usage_report_s {
ogs_tlv_presence_t presence;
ogs_pfcp_tlv_ip_multicast_address_t ip_multicast_address;
ogs_pfcp_tlv_source_ip_address_t source_ip_address;
} ogs_pfcp_tlv_join_ip_multicast_information_ie_within_usage_report_t;
typedef struct ogs_pfcp_tlv_leave_ip_multicast_information_ie_within_usage_report_s {
ogs_tlv_presence_t presence;
ogs_pfcp_tlv_ip_multicast_address_t ip_multicast_address;
ogs_pfcp_tlv_source_ip_address_t source_ip_address;
} ogs_pfcp_tlv_leave_ip_multicast_information_ie_within_usage_report_t;
typedef struct ogs_pfcp_tlv_create_urr_s {
ogs_tlv_presence_t presence;
@ -804,6 +1114,7 @@ typedef struct ogs_pfcp_tlv_create_urr_s {
ogs_pfcp_tlv_far_id_t far_id_for_quota_action;
ogs_pfcp_tlv_ethernet_inactivity_timer_t ethernet_inactivity_timer;
ogs_pfcp_tlv_additional_monitoring_time_t additional_monitoring_time;
ogs_pfcp_tlv_number_of_reports_t number_of_reports;
} ogs_pfcp_tlv_create_urr_t;
typedef struct ogs_pfcp_tlv_create_qer_s {
@ -814,17 +1125,20 @@ typedef struct ogs_pfcp_tlv_create_qer_s {
ogs_pfcp_tlv_mbr_t maximum_bitrate;
ogs_pfcp_tlv_gbr_t guaranteed_bitrate;
ogs_pfcp_tlv_packet_rate_t packet_rate;
ogs_pfcp_tlv_packet_rate_status_t packet_rate_status;
ogs_pfcp_tlv_dl_flow_level_marking_t dl_flow_level_marking;
ogs_pfcp_tlv_qfi_t qos_flow_identifier;
ogs_pfcp_tlv_rqi_t reflective_qos;
ogs_pfcp_tlv_paging_policy_indicator_t paging_policy_indicator;
ogs_pfcp_tlv_averaging_window_t averaging_window;
ogs_pfcp_tlv_qer_control_indications_t qer_control_indications;
} ogs_pfcp_tlv_create_qer_t;
typedef struct ogs_pfcp_tlv_created_pdr_s {
ogs_tlv_presence_t presence;
ogs_pfcp_tlv_pdr_id_t pdr_id;
ogs_pfcp_tlv_f_teid_t local_f_teid;
ogs_pfcp_tlv_f_teid_t local_f_teid_for_redundant_transmission;
ogs_pfcp_tlv_ue_ip_address_t ue_ip_address;
} ogs_pfcp_tlv_created_pdr_t;
@ -841,6 +1155,8 @@ typedef struct ogs_pfcp_tlv_update_pdr_s {
ogs_pfcp_tlv_deactivate_predefined_rules_t deactivate_predefined_rules;
ogs_pfcp_tlv_activation_time_t activation_time;
ogs_pfcp_tlv_deactivation_time_t deactivation_time;
ogs_pfcp_tlv_ip_multicast_addressing_info_within_pfcp_session_establishment_request_t ip_multicast_addressing_info;
ogs_pfcp_tlv_transport_delay_reporting_t transport_delay_reporting;
} ogs_pfcp_tlv_update_pdr_t;
typedef struct ogs_pfcp_tlv_update_bar_pfcp_session_report_response_s {
@ -882,6 +1198,7 @@ typedef struct ogs_pfcp_tlv_update_urr_s {
ogs_pfcp_tlv_far_id_t far_id_for_quota_action;
ogs_pfcp_tlv_ethernet_inactivity_timer_t ethernet_inactivity_timer;
ogs_pfcp_tlv_additional_monitoring_time_t additional_monitoring_time;
ogs_pfcp_tlv_number_of_reports_t number_of_reports;
} ogs_pfcp_tlv_update_urr_t;
typedef struct ogs_pfcp_tlv_update_qer_s {
@ -897,6 +1214,7 @@ typedef struct ogs_pfcp_tlv_update_qer_s {
ogs_pfcp_tlv_rqi_t reflective_qos;
ogs_pfcp_tlv_paging_policy_indicator_t paging_policy_indicator;
ogs_pfcp_tlv_averaging_window_t averaging_window;
ogs_pfcp_tlv_qer_control_indications_t qer_control_indications;
} ogs_pfcp_tlv_update_qer_t;
typedef struct ogs_pfcp_tlv_remove_pdr_s {
@ -938,6 +1256,7 @@ typedef struct ogs_pfcp_tlv_application_detection_information_s {
ogs_pfcp_tlv_application_id_t application_id;
ogs_pfcp_tlv_application_instance_id_t application_instance_id;
ogs_pfcp_tlv_flow_information_t flow_information;
ogs_pfcp_tlv_pdr_id_t pdr_id;
} ogs_pfcp_tlv_application_detection_information_t;
typedef struct ogs_pfcp_tlv_query_urr_s {
@ -992,14 +1311,18 @@ typedef struct ogs_pfcp_tlv_usage_report_session_report_request_s {
ogs_pfcp_tlv_time_of_last_packet_t time_of_last_packet;
ogs_pfcp_tlv_usage_information_t usage_information;
ogs_pfcp_tlv_query_urr_reference_t query_urr_reference;
ogs_pfcp_tlv_event_time_stamp_t event_time_stamp;
ogs_pfcp_tlv_time_stamp_t event_time_stamp;
ogs_pfcp_tlv_ethernet_traffic_information_t ethernet_traffic_information;
ogs_pfcp_tlv_join_ip_multicast_information_ie_within_usage_report_t join_ip_muticast_information;
ogs_pfcp_tlv_leave_ip_multicast_information_ie_within_usage_report_t leave_ip_muticast_information;
} ogs_pfcp_tlv_usage_report_session_report_request_t;
typedef struct ogs_pfcp_tlv_downlink_data_report_s {
ogs_tlv_presence_t presence;
ogs_pfcp_tlv_pdr_id_t pdr_id;
ogs_pfcp_tlv_downlink_data_service_information_t downlink_data_service_information;
ogs_pfcp_tlv_dl_data_packets_size_t dl_data_packets_size;
ogs_pfcp_tlv_data_status_t dl_data_status;
} ogs_pfcp_tlv_downlink_data_report_t;
typedef struct ogs_pfcp_tlv_create_bar_s {
@ -1007,6 +1330,7 @@ typedef struct ogs_pfcp_tlv_create_bar_s {
ogs_pfcp_tlv_bar_id_t bar_id;
ogs_pfcp_tlv_downlink_data_notification_delay_t downlink_data_notification_delay;
ogs_pfcp_tlv_suggested_buffering_packets_count_t suggested_buffering_packets_count;
ogs_pfcp_tlv_mt_edt_control_information_t mt_edt_control_information;
} ogs_pfcp_tlv_create_bar_t;
typedef struct ogs_pfcp_tlv_update_bar_session_modification_request_s {
@ -1014,6 +1338,7 @@ typedef struct ogs_pfcp_tlv_update_bar_session_modification_request_s {
ogs_pfcp_tlv_bar_id_t bar_id;
ogs_pfcp_tlv_downlink_data_notification_delay_t downlink_data_notification_delay;
ogs_pfcp_tlv_suggested_buffering_packets_count_t suggested_buffering_packets_count;
ogs_pfcp_tlv_mt_edt_control_information_t mt_edt_control_information;
} ogs_pfcp_tlv_update_bar_session_modification_request_t;
typedef struct ogs_pfcp_tlv_remove_bar_s {
@ -1028,7 +1353,7 @@ typedef struct ogs_pfcp_tlv_error_indication_report_s {
typedef struct ogs_pfcp_tlv_user_plane_path_failure_report_s {
ogs_tlv_presence_t presence;
ogs_pfcp_tlv_remote_gtp_u_peer_t remote_gtp_u_peer_;
ogs_pfcp_tlv_remote_gtp_u_peer_t remote_gtp_u_peer;
} ogs_pfcp_tlv_user_plane_path_failure_report_t;
typedef struct ogs_pfcp_tlv_create_traffic_endpoint_s {
@ -1036,18 +1361,21 @@ typedef struct ogs_pfcp_tlv_create_traffic_endpoint_s {
ogs_pfcp_tlv_traffic_endpoint_id_t traffic_endpoint_id;
ogs_pfcp_tlv_f_teid_t local_f_teid;
ogs_pfcp_tlv_network_instance_t network_instance;
ogs_pfcp_tlv_redundant_transmission_parameters_t redundant_transmission_detection_parameters;
ogs_pfcp_tlv_ue_ip_address_t ue_ip_address;
ogs_pfcp_tlv_ethernet_pdu_session_information_t ethernet_pdu_session_information;
ogs_pfcp_tlv_framed_route_t framed_route;
ogs_pfcp_tlv_framed_routing_t framed_routing;
ogs_pfcp_tlv_framed_ipv6_route_t framed_ipv6_route;
ogs_pfcp_tlv_qfi_t qfi;
ogs_pfcp_tlv__interface_type_t source_interface_type;
} ogs_pfcp_tlv_create_traffic_endpoint_t;
typedef struct ogs_pfcp_tlv_created_traffic_endpoint_s {
ogs_tlv_presence_t presence;
ogs_pfcp_tlv_traffic_endpoint_id_t traffic_endpoint_id;
ogs_pfcp_tlv_f_teid_t local_f_teid;
ogs_pfcp_tlv_f_teid_t local_f_teid_for_redundant_transmission;
ogs_pfcp_tlv_ue_ip_address_t ue_ip_address;
} ogs_pfcp_tlv_created_traffic_endpoint_t;
@ -1061,8 +1389,8 @@ typedef struct ogs_pfcp_tlv_create_mar_s {
ogs_pfcp_tlv_mar_id_t mar_id;
ogs_pfcp_tlv_steering_functionality_t steering_functionality;
ogs_pfcp_tlv_steering_mode_t steering_mode;
ogs_pfcp_tlv_access_forwarding_action_information_1_t access_forwarding_action_information_1;
ogs_pfcp_tlv_access_forwarding_action_information_2_t access_forwarding_action_information_2;
ogs_pfcp_tlv__access_forwarding_action_information_t _access_forwarding_action_information;
ogs_pfcp_tlv_non__access_forwarding_action_information_t non__access_forwarding_action_information;
} ogs_pfcp_tlv_create_mar_t;
typedef struct ogs_pfcp_tlv_remove_mar_s {
@ -1075,15 +1403,183 @@ typedef struct ogs_pfcp_tlv_update_mar_s {
ogs_pfcp_tlv_mar_id_t mar_id;
ogs_pfcp_tlv_steering_functionality_t steering_functionality;
ogs_pfcp_tlv_steering_mode_t steering_mode;
ogs_pfcp_tlv_update_access_forwarding_action_information_1_t update_access_forwarding_action_information_1;
ogs_pfcp_tlv_update_access_forwarding_action_information_2_t update_access_forwarding_action_information_2;
ogs_pfcp_tlv_access_forwarding_action_information_1_t access_forwarding_action_information_1;
ogs_pfcp_tlv_access_forwarding_action_information_2_t access_forwarding_action_information_2;
ogs_pfcp_tlv_update__access_forwarding_action_information_t update__access_forwarding_action_information;
ogs_pfcp_tlv_update_non__access_forwarding_action_information_t update_non__access_forwarding_action_information;
ogs_pfcp_tlv__access_forwarding_action_information_t _access_forwarding_action_information;
ogs_pfcp_tlv_non__access_forwarding_action_information_t non__access_forwarding_action_information;
} ogs_pfcp_tlv_update_mar_t;
typedef struct ogs_pfcp_tlv_pfcp_session_retention_information_within_pfcp_association_setup_request_s {
ogs_tlv_presence_t presence;
ogs_pfcp_tlv_cp_pfcp_entity_ip_address_t cp_pfcp_entity_ip_address;
} ogs_pfcp_tlv_pfcp_session_retention_information_within_pfcp_association_setup_request_t;
typedef struct ogs_pfcp_tlv_user_plane_path_recovery_report_s {
ogs_tlv_presence_t presence;
ogs_pfcp_tlv_remote_gtp_u_peer_t remote_gtp_u_peer;
} ogs_pfcp_tlv_user_plane_path_recovery_report_t;
typedef struct ogs_pfcp_tlv_created_bridge_info_for_tsc_s {
ogs_tlv_presence_t presence;
ogs_pfcp_tlv_ds_tt_port_number_t ds_tt_port_number;
ogs_pfcp_tlv_tsn_bridge_id_t tsn_bridge_id;
} ogs_pfcp_tlv_created_bridge_info_for_tsc_t;
typedef struct ogs_pfcp_tlv_tsc_management_information_ie_within_pfcp_session_modification_request_s {
ogs_tlv_presence_t presence;
ogs_pfcp_tlv_port_management_information_container_t port_management_information_container;
ogs_pfcp_tlv_bridge_management_information_container_t bridge_management_information_container;
ogs_pfcp_tlv_nw_tt_port_number_t nw_tt_port_number;
} ogs_pfcp_tlv_tsc_management_information_ie_within_pfcp_session_modification_request_t;
typedef struct ogs_pfcp_tlv_tsc_management_information_ie_within_pfcp_session_modification_response_s {
ogs_tlv_presence_t presence;
ogs_pfcp_tlv_port_management_information_container_t port_management_information_container;
ogs_pfcp_tlv_bridge_management_information_container_t bridge_management_information_container;
ogs_pfcp_tlv_nw_tt_port_number_t nw_tt_port_number;
} ogs_pfcp_tlv_tsc_management_information_ie_within_pfcp_session_modification_response_t;
typedef struct ogs_pfcp_tlv_tsc_management_information_ie_within_pfcp_session_report_request_s {
ogs_tlv_presence_t presence;
ogs_pfcp_tlv_port_management_information_container_t port_management_information_container;
ogs_pfcp_tlv_bridge_management_information_container_t bridge_management_information_container;
ogs_pfcp_tlv_nw_tt_port_number_t nw_tt_port_number;
} ogs_pfcp_tlv_tsc_management_information_ie_within_pfcp_session_report_request_t;
typedef struct ogs_pfcp_tlv_clock_drift_control_information_s {
ogs_tlv_presence_t presence;
ogs_pfcp_tlv_requested_clock_drift_information_t requested_clock_drift_information;
ogs_pfcp_tlv_tsn_time_domain_number_t tsn_time_domain_number;
ogs_pfcp_tlv_time_offset_threshold_t time_offset_threshold;
ogs_pfcp_tlv_cumulative_rateratio_threshold_t cumulative_rateratio_threshold;
} ogs_pfcp_tlv_clock_drift_control_information_t;
typedef struct ogs_pfcp_tlv_clock_drift_report_s {
ogs_tlv_presence_t presence;
ogs_pfcp_tlv_tsn_time_domain_number_t tsn_time_domain_number;
ogs_pfcp_tlv_time_offset_measurement_t time_offset_measurement;
ogs_pfcp_tlv_cumulative_rateratio_measurement_t cumulative_rateratio_measurement;
ogs_pfcp_tlv_time_stamp_t time_stamp;
} ogs_pfcp_tlv_clock_drift_report_t;
typedef struct ogs_pfcp_tlv_remove_srr_s {
ogs_tlv_presence_t presence;
ogs_pfcp_tlv_srr_id_t srr_id;
} ogs_pfcp_tlv_remove_srr_t;
typedef struct ogs_pfcp_tlv_create_srr_s {
ogs_tlv_presence_t presence;
ogs_pfcp_tlv_srr_id_t srr_id;
ogs_pfcp_tlv_access_availability_control_information_t access_availability_control_information;
ogs_pfcp_tlv_qos_monitoring_per_qos_flow_control_information_t qos_monitoring_per_qos_flow_control_information;
} ogs_pfcp_tlv_create_srr_t;
typedef struct ogs_pfcp_tlv_update_srr_s {
ogs_tlv_presence_t presence;
ogs_pfcp_tlv_srr_id_t srr_id;
ogs_pfcp_tlv_access_availability_control_information_t access_availability_control_information;
ogs_pfcp_tlv_qos_monitoring_per_qos_flow_control_information_t qos_monitoring_per_qos_flow_control_information;
} ogs_pfcp_tlv_update_srr_t;
typedef struct ogs_pfcp_tlv_session_report_s {
ogs_tlv_presence_t presence;
ogs_pfcp_tlv_srr_id_t srr_id;
ogs_pfcp_tlv_access_availability_report_t access_availability_report;
ogs_pfcp_tlv_qos_monitoring_report_t qos_monitoring_report;
} ogs_pfcp_tlv_session_report_t;
typedef struct ogs_pfcp_tlv_provide_atsss_control_information_s {
ogs_tlv_presence_t presence;
ogs_pfcp_tlv_mptcp_control_information_t mptcp_control_information;
ogs_pfcp_tlv_atsss_ll_control_information_t atsss_ll_control_information;
ogs_pfcp_tlv_pmf_control_information_t pmf_control_information;
} ogs_pfcp_tlv_provide_atsss_control_information_t;
typedef struct ogs_pfcp_tlv_atsss_control_parameters_s {
ogs_tlv_presence_t presence;
ogs_pfcp_tlv_mptcp_parameters_t mptcp_parameters;
ogs_pfcp_tlv_atsss_ll_parameters_t atsss_ll_parameters;
ogs_pfcp_tlv_pmf_parameters_t pmf_parameters;
} ogs_pfcp_tlv_atsss_control_parameters_t;
typedef struct ogs_pfcp_tlv_ue_ip_address_pool_information_s {
ogs_tlv_presence_t presence;
ogs_pfcp_tlv_ue_ip_address_t ue_ip_address_pool_identity;
ogs_pfcp_tlv_network_instance_t network_instance;
ogs_pfcp_tlv_s_nssai_t s_nssai;
ogs_pfcp_tlv_ip_version_t ip_version;
} ogs_pfcp_tlv_ue_ip_address_pool_information_t;
typedef struct ogs_pfcp_tlv_gtp_u_path_qos_report_pfcp_node_report_request_s {
ogs_tlv_presence_t presence;
ogs_pfcp_tlv_remote_gtp_u_peer_t remote_gtp_u_peer;
ogs_pfcp_tlv_gtp_u_path_interface_type_t gtp_u_path_interface_type;
ogs_pfcp_tlv_qos_report_trigger_t qos_report_trigger;
ogs_pfcp_tlv_transport_level_marking_t dscp;
ogs_pfcp_tlv_measurement_period_t measurement_period;
ogs_pfcp_tlv_average_packet_delay_t average_packet_delay_threshold;
ogs_pfcp_tlv_minimum_packet_delay_t minimum_packet_delay_threshold;
ogs_pfcp_tlv_maximum_packet_delay_t maximum_packet_delay_threshold;
ogs_pfcp_tlv_timer_t minimum_waiting_time;
} ogs_pfcp_tlv_gtp_u_path_qos_report_pfcp_node_report_request_t;
typedef struct ogs_pfcp_tlv_qos_information_in_gtp_u_path_qos_report_s {
ogs_tlv_presence_t presence;
ogs_pfcp_tlv_average_packet_delay_t average_packet_delay;
ogs_pfcp_tlv_minimum_packet_delay_t minimum_packet_delay;
ogs_pfcp_tlv_maximum_packet_delay_t maximum_packet_delay;
ogs_pfcp_tlv_transport_level_marking_t dscp;
} ogs_pfcp_tlv_qos_information_in_gtp_u_path_qos_report_t;
typedef struct ogs_pfcp_tlv_packet_rate_status_report_s {
ogs_tlv_presence_t presence;
ogs_pfcp_tlv_qer_id_t qer_id;
ogs_pfcp_tlv_packet_rate_status_t packet_rate_status;
} ogs_pfcp_tlv_packet_rate_status_report_t;
typedef struct ogs_pfcp_tlv_ethernet_context_information_s {
ogs_tlv_presence_t presence;
ogs_pfcp_tlv_mac_addresses_detected_t mac_addresses_detected;
} ogs_pfcp_tlv_ethernet_context_information_t;
typedef struct ogs_pfcp_tlv_updated_pdr_s {
ogs_tlv_presence_t presence;
ogs_pfcp_tlv_pdr_id_t pdr_id;
ogs_pfcp_tlv_f_teid_t local_f_teid_for_redundant_transmission;
ogs_pfcp_tlv_f_teid_t local_f_teid;
ogs_pfcp_tlv_ue_ip_address_t ue_ip_address;
} ogs_pfcp_tlv_updated_pdr_t;
typedef struct ogs_pfcp_tlv_provide_rds_configuration_information_s {
ogs_tlv_presence_t presence;
ogs_pfcp_tlv_rds_configuration_information_t rds_configuration_information;
} ogs_pfcp_tlv_provide_rds_configuration_information_t;
typedef struct ogs_pfcp_tlv_query_packet_rate_status_ie_within_pfcp_session_modification_request_s {
ogs_tlv_presence_t presence;
ogs_pfcp_tlv_qer_id_t qer_id;
} ogs_pfcp_tlv_query_packet_rate_status_ie_within_pfcp_session_modification_request_t;
typedef struct ogs_pfcp_tlv_packet_rate_status_report_ie_within_pfcp_session_modification_response_s {
ogs_tlv_presence_t presence;
ogs_pfcp_tlv_qer_id_t qer_id;
ogs_pfcp_tlv_packet_rate_status_t packet_rate_status;
} ogs_pfcp_tlv_packet_rate_status_report_ie_within_pfcp_session_modification_response_t;
typedef struct ogs_pfcp_tlv_ue_ip_address_usage_information_s {
ogs_tlv_presence_t presence;
ogs_pfcp_tlv_sequence_number_t ue_ip_address_usage_sequence_number;
ogs_pfcp_tlv_metric_t ue_ip_address_usage_metric;
ogs_pfcp_tlv_validity_timer_t validity_timer;
ogs_pfcp_tlv_number_of_ue_ip_addresses_t number_of_ue_ip_addresses;
ogs_pfcp_tlv_network_instance_t network_instance;
ogs_pfcp_tlv_ue_ip_address_t ue_ip_address_pool_id;
} ogs_pfcp_tlv_ue_ip_address_usage_information_t;
/* Structure for Message */
typedef struct ogs_pfcp_heartbeat_request_s {
ogs_pfcp_tlv_recovery_time_stamp_t recovery_time_stamp;
ogs_pfcp_tlv_source_ip_address_t source_ip_address;
} ogs_pfcp_heartbeat_request_t;
typedef struct ogs_pfcp_heartbeat_response_s {
@ -1092,11 +1588,13 @@ typedef struct ogs_pfcp_heartbeat_response_s {
typedef struct ogs_pfcp_pfd_management_request_s {
ogs_pfcp_tlv_application_id_s_pfds_t application_id_s_pfds;
ogs_pfcp_tlv_node_id_t node_id;
} ogs_pfcp_pfd_management_request_t;
typedef struct ogs_pfcp_pfd_management_response_s {
ogs_pfcp_tlv_cause_t cause;
ogs_pfcp_tlv_offending_ie_t offending_ie;
ogs_pfcp_tlv_node_id_t node_id;
} ogs_pfcp_pfd_management_response_t;
typedef struct ogs_pfcp_association_setup_request_s {
@ -1105,9 +1603,14 @@ typedef struct ogs_pfcp_association_setup_request_s {
ogs_pfcp_tlv_up_function_features_t up_function_features;
ogs_pfcp_tlv_cp_function_features_t cp_function_features;
ogs_pfcp_tlv_user_plane_ip_resource_information_t user_plane_ip_resource_information[4];
ogs_pfcp_tlv_ue_ip_address_t ue_ip_address_pool_identity;
ogs_pfcp_tlv_alternative_smf_ip_address_t alternative_smf_ip_address;
ogs_pfcp_tlv_smf_set_id_t smf_set_id;
ogs_pfcp_tlv_pfcp_session_retention_information_within_pfcp_association_setup_request_t pfcp_session_retention_information;
ogs_pfcp_tlv_ue_ip_address_t ue_ip_address_pool_information;
ogs_pfcp_tlv_gtp_u_path_qos_control_information_t gtp_u_path_qos_control_information;
ogs_pfcp_tlv_clock_drift_control_information_t clock_drift_control_information;
ogs_pfcp_tlv_nf_instance_id_t upf_instance_id;
ogs_pfcp_tlv_pfcpasreq_flags_t pfcpasreq_flags;
} ogs_pfcp_association_setup_request_t;
typedef struct ogs_pfcp_association_setup_response_s {
@ -1118,17 +1621,28 @@ typedef struct ogs_pfcp_association_setup_response_s {
ogs_pfcp_tlv_cp_function_features_t cp_function_features;
ogs_pfcp_tlv_user_plane_ip_resource_information_t user_plane_ip_resource_information[4];
ogs_pfcp_tlv_alternative_smf_ip_address_t alternative_smf_ip_address;
ogs_pfcp_tlv_smf_set_id_t smf_set_id;
ogs_pfcp_tlv_pfcpasrsp_flags_t pfcpasrsp_flags;
ogs_pfcp_tlv_clock_drift_control_information_t clock_drift_control_information;
ogs_pfcp_tlv_ue_ip_address_t ue_ip_address_pool_information;
ogs_pfcp_tlv_gtp_u_path_qos_control_information_t gtp_u_path_qos_control_information;
ogs_pfcp_tlv_nf_instance_id_t upf_instance_id;
} ogs_pfcp_association_setup_response_t;
typedef struct ogs_pfcp_association_update_request_s {
ogs_pfcp_tlv_node_id_t node_id;
ogs_pfcp_tlv_up_function_features_t up_function_features;
ogs_pfcp_tlv_cp_function_features_t cp_function_features;
ogs_pfcp_tlv_user_plane_ip_resource_information_t user_plane_ip_resource_information[4];
ogs_pfcp_tlv_pfcp_association_release_request_t pfcp_association_release_request;
ogs_pfcp_tlv_graceful_release_period_t graceful_release_period;
ogs_pfcp_tlv_user_plane_ip_resource_information_t user_plane_ip_resource_information[4];
ogs_pfcp_tlv_pfcpaureq_flags_t pfcpaureq_flags;
ogs_pfcp_tlv_alternative_smf_ip_address_t alternative_smf_ip_address;
ogs_pfcp_tlv_smf_set_id_t smf_set_id;
ogs_pfcp_tlv_clock_drift_control_information_t clock_drift_control_information;
ogs_pfcp_tlv_ue_ip_address_t ue_ip_address_pool_information;
ogs_pfcp_tlv_gtp_u_path_qos_control_information_t gtp_u_path_qos_control_information;
ogs_pfcp_tlv_ue_ip_address_usage_information_t ue_ip_address_usage_information;
} ogs_pfcp_association_update_request_t;
typedef struct ogs_pfcp_association_update_response_s {
@ -1136,6 +1650,7 @@ typedef struct ogs_pfcp_association_update_response_s {
ogs_pfcp_tlv_cause_t cause;
ogs_pfcp_tlv_up_function_features_t up_function_features;
ogs_pfcp_tlv_cp_function_features_t cp_function_features;
ogs_pfcp_tlv_ue_ip_address_usage_information_t ue_ip_address_usage_information;
} ogs_pfcp_association_update_response_t;
typedef struct ogs_pfcp_association_release_request_s {
@ -1154,6 +1669,9 @@ typedef struct ogs_pfcp_node_report_request_s {
ogs_pfcp_tlv_node_id_t node_id;
ogs_pfcp_tlv_node_report_type_t node_report_type;
ogs_pfcp_tlv_user_plane_path_failure_report_t user_plane_path_failure_report;
ogs_pfcp_tlv_user_plane_path_recovery_report_t user_plane_path_recovery_report;
ogs_pfcp_tlv_clock_drift_report_t clock_drift_report;
ogs_pfcp_tlv_gtp_u_path_qos_report_pfcp_node_report_request_t gtp_u_path_qos_report;
} ogs_pfcp_node_report_request_t;
typedef struct ogs_pfcp_node_report_response_s {
@ -1166,8 +1684,7 @@ typedef struct ogs_pfcp_session_set_deletion_request_s {
ogs_pfcp_tlv_node_id_t node_id;
ogs_pfcp_tlv_fq_csid_t sgw_c_fq_csid;
ogs_pfcp_tlv_fq_csid_t pgw_c_fq_csid;
ogs_pfcp_tlv_fq_csid_t sgw_u_fq_csid;
ogs_pfcp_tlv_fq_csid_t pgw_u_fq_csid;
ogs_pfcp_tlv_fq_csid_t pgw_u_sgw_u_fq_csid;
ogs_pfcp_tlv_fq_csid_t twan_fq_csid;
ogs_pfcp_tlv_fq_csid_t epdg_fq_csid;
ogs_pfcp_tlv_fq_csid_t mme_fq_csid;
@ -1199,6 +1716,13 @@ typedef struct ogs_pfcp_session_establishment_request_s {
ogs_pfcp_tlv_trace_information_t trace_information;
ogs_pfcp_tlv_apn_dnn_t apn_dnn;
ogs_pfcp_tlv_create_mar_t create_mar;
ogs_pfcp_tlv_pfcpsereq_flags_t pfcpsereq_flags;
ogs_pfcp_tlv_create_bridge_info_for_tsc_t create_bridge_info_for_tsc;
ogs_pfcp_tlv_create_srr_t create_srr;
ogs_pfcp_tlv_provide_atsss_control_information_t provide_atsss_control_information;
ogs_pfcp_tlv_recovery_time_stamp_t recovery_time_stamp;
ogs_pfcp_tlv_s_nssai_t s_nssai;
ogs_pfcp_tlv_provide_rds_configuration_information_t provide_rds_configuration_information;
} ogs_pfcp_session_establishment_request_t;
typedef struct ogs_pfcp_session_establishment_response_s {
@ -1209,10 +1733,12 @@ typedef struct ogs_pfcp_session_establishment_response_s {
ogs_pfcp_tlv_created_pdr_t created_pdr[8];
ogs_pfcp_tlv_load_control_information_t load_control_information;
ogs_pfcp_tlv_overload_control_information_t overload_control_information;
ogs_pfcp_tlv_fq_csid_t sgw_u_fq_csid;
ogs_pfcp_tlv_fq_csid_t pgw_u_fq_csid;
ogs_pfcp_tlv_fq_csid_t pgw_u_sgw_u_fq_csid;
ogs_pfcp_tlv_failed_rule_id_t failed_rule_id;
ogs_pfcp_tlv_created_traffic_endpoint_t created_traffic_endpoint;
ogs_pfcp_tlv_created_bridge_info_for_tsc_t created_bridge_info_for_tsc;
ogs_pfcp_tlv_atsss_control_parameters_t atsss_control_parameters;
ogs_pfcp_tlv_rds_configuration_information_t rds_configuration_information;
} ogs_pfcp_session_establishment_response_t;
typedef struct ogs_pfcp_session_modification_request_s {
@ -1249,6 +1775,15 @@ typedef struct ogs_pfcp_session_modification_request_s {
ogs_pfcp_tlv_update_mar_t update_mar;
ogs_pfcp_tlv_create_mar_t create_mar;
ogs_pfcp_tlv_node_id_t node_id;
ogs_pfcp_tlv_tsc_management_information_ie_within_pfcp_session_modification_request_t tsc_management_information;
ogs_pfcp_tlv_remove_srr_t remove_srr;
ogs_pfcp_tlv_create_srr_t create_srr;
ogs_pfcp_tlv_update_srr_t update_srr;
ogs_pfcp_tlv_provide_atsss_control_information_t provide_atsss_control_information;
ogs_pfcp_tlv_ethernet_context_information_t ethernet_context_information;
ogs_pfcp_tlv_access_availability_information_t access_availability_information;
ogs_pfcp_tlv_query_packet_rate_status_ie_within_pfcp_session_modification_request_t query_packet_rate_status;
ogs_pfcp_tlv_s_nssai_t s_nssai;
} ogs_pfcp_session_modification_request_t;
typedef struct ogs_pfcp_session_modification_response_s {
@ -1261,6 +1796,10 @@ typedef struct ogs_pfcp_session_modification_response_s {
ogs_pfcp_tlv_failed_rule_id_t failed_rule_id;
ogs_pfcp_tlv_additional_usage_reports_information_t additional_usage_reports_information;
ogs_pfcp_tlv_created_traffic_endpoint_t created_updated_traffic_endpoint;
ogs_pfcp_tlv_tsc_management_information_ie_within_pfcp_session_modification_response_t tsc_management_information;
ogs_pfcp_tlv_atsss_control_parameters_t atsss_control_parameters;
ogs_pfcp_tlv_updated_pdr_t updated_pdr;
ogs_pfcp_tlv_packet_rate_status_report_ie_within_pfcp_session_modification_response_t packet_rate_status_report;
} ogs_pfcp_session_modification_response_t;
typedef struct ogs_pfcp_session_deletion_request_s {
@ -1272,6 +1811,9 @@ typedef struct ogs_pfcp_session_deletion_response_s {
ogs_pfcp_tlv_load_control_information_t load_control_information;
ogs_pfcp_tlv_overload_control_information_t overload_control_information;
ogs_pfcp_tlv_usage_report_session_deletion_response_t usage_report[8];
ogs_pfcp_tlv_additional_usage_reports_information_t additional_usage_reports_information;
ogs_pfcp_tlv_packet_rate_status_report_t packet_rate_status_report;
ogs_pfcp_tlv_session_report_t session_report;
} ogs_pfcp_session_deletion_response_t;
typedef struct ogs_pfcp_session_report_request_s {
@ -1284,6 +1826,9 @@ typedef struct ogs_pfcp_session_report_request_s {
ogs_pfcp_tlv_additional_usage_reports_information_t additional_usage_reports_information;
ogs_pfcp_tlv_pfcpsrreq_flags_t pfcpsrreq_flags;
ogs_pfcp_tlv_f_seid_t old_cp_f_seid;
ogs_pfcp_tlv_packet_rate_status_report_t packet_rate_status_report;
ogs_pfcp_tlv_tsc_management_information_ie_within_pfcp_session_report_request_t tsc_management_information;
ogs_pfcp_tlv_session_report_t session_report;
} ogs_pfcp_session_report_request_t;
typedef struct ogs_pfcp_session_report_response_s {

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -9,4 +9,4 @@ user@host ~/Documents/git/open5gs/lib/pfcp/support$ \
* Generate TLV support files
user@host ~/Documents/git/open5gs/lib/pfcp/support$ \
python3 pfcp-tlv.py -f 29244-g10.docx -o ..
python3 pfcp-tlv.py -f 29244-g91-modified.docx -o ..

View File

@ -6,9 +6,58 @@ ies = []
ies.append({ "ie_type" : "PFD contents", "ie_value" : "PFD Contents", "presence" : "M", "tlv_more" : "0", "comment" : "This IE shall describe the PFD to be provisioned in the UP function. Several IEs with the same IE type may be present to provision multiple contents for this PFD. (NOTE 1)"})
group_list["PFD context"] = { "index" : "159", "type" : "59", "ies" : ies }
ies = []
ies.append({ "ie_type" : "Remote GTP-U Peer", "ie_value" : "Remote GTP-U Peer ", "presence" : "M", "tlv_more" : "0", "comment" : "This IE shall include the IP address of the remote GTP-U peer towards which a user plane path failure has been detected.More than one IE with this type may be included to represent multiple remote GTP-U peers towards which a user plane path failure has been detected."})
ies.append({ "ie_type" : "CP PFCP Entity IP Address", "ie_value" : "CP PFCP Entity IP Address", "presence" : "O", "tlv_more" : "0", "comment" : "This IE may be present to indicate the IP address of a CP PFCP entity for which the UP function shall retain the existing PFCP sessions, upon receipt of a PFCP association setup request with a Node ID for which a PFCP association was already established. See clause6.2.6.2.1Several IEs with the same IE type may be present to represent multiple CP PFCP entities for which PFCP sessions shall be retained.If no CP PFCP Entity IP Address IE is present in the PFCP Session Retention Information IE, all existing PFCP sessions shall be kept upon receipt of a PFCP association setup request with a Node ID for which a PFCP association was already established."})
group_list["PFCP Session Retention Information within PFCP Association Setup Request"] = { "index" : "283", "type" : "183", "ies" : ies }
ies = []
ies.append({ "ie_type" : "UE IP Address", "ie_value" : "UE IP address Pool Identity", "presence" : "M", "tlv_more" : "0", "comment" : "When present, this IE shall contain an UE IP address Pool IdentitySeveral IEs with the same IE type may be present to represent multiple UE IP address Pool Identities."})
ies.append({ "ie_type" : "Network Instance", "ie_value" : "Network Instance", "presence" : "O", "tlv_more" : "0", "comment" : "The IE may be present to indicate for which DNN/APN the UE IP Address Pool Identifies are configured."})
ies.append({ "ie_type" : "S-NSSAI", "ie_value" : "S-NSSAI", "presence" : "O", "tlv_more" : "0", "comment" : "The IE may be present to indicate for which S-NSSAI the UE IP Address Pool Identities are configured.Several IEs with the same IE type may be present to represent multiple S-NSSAIs."})
ies.append({ "ie_type" : "IP version", "ie_value" : "IP version", "presence" : "O", "tlv_more" : "0", "comment" : "The IE may be present to indicate for which IP version the UE IP Address Pool Identities are configured."})
group_list["UE IP address Pool Information"] = { "index" : "333", "type" : "233", "ies" : ies }
ies = []
ies.append({ "ie_type" : "Requested Clock Drift Information", "ie_value" : "Requested Clock Drift Information", "presence" : "M", "tlv_more" : "0", "comment" : "This IE shall indicate the requested clock drift information."})
ies.append({ "ie_type" : "TSN Time Domain Number", "ie_value" : "TSN Time Domain Number", "presence" : "C", "tlv_more" : "0", "comment" : "When present, this IE shall identifiy the TSN time domain(s) for which clock drift information is requested.More than one IE with this type may be included to represent multiple TSN Time Domain Numbers.The absence of this IE shall indicate that the request targets all the TSN time domains the UPF is connected to."})
ies.append({ "ie_type" : "Time Offset Threshold", "ie_value" : "Time Offset Threshold", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if Time Offset Reporting is requested.When present, it shall indicate the threshold to report the time offset, i.e. the offset shall be reported only when it exceeds the threshold compared to the previous report."})
ies.append({ "ie_type" : "Cumulative rateRatio Threshold", "ie_value" : "Cumulative rateRatio Threshold", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if Cumulative RateRatio Reporting is requested.When present, it shall indicate the threshold to report the cumulative rateRatio, i.e. the cumative rateRatio shall be reported only when it exceeds the threshold compared to the previous report."})
group_list["Clock Drift Control Information"] = { "index" : "303", "type" : "203", "ies" : ies }
ies = []
ies.append({ "ie_type" : "Remote GTP-U Peer", "ie_value" : "Remote GTP-U Peer", "presence" : "C", "tlv_more" : "0", "comment" : "When present, this IE shall include the IP address of the remote GTP-U peer for which QoS information is to be reported, and the network instance used towards the remote GTP-U peer if available.Several IEs with the same IE type may be present to represent multiple remote GTP-U peers.(NOTE)"})
ies.append({ "ie_type" : "GTP-U Path Interface Type", "ie_value" : "GTP-U Path Interface Type", "presence" : "C", "tlv_more" : "0", "comment" : "When present, this IE shall include the Interface Type of the GTP-U paths for which QoS information is to be reported.(NOTE)"})
ies.append({ "ie_type" : "QoS Report Trigger", "ie_value" : "QoS Report Trigger", "presence" : "M", "tlv_more" : "0", "comment" : "This IE shall indicate the trigger for reporting QoS information to the SMF."})
ies.append({ "ie_type" : "Transport Level Marking", "ie_value" : "DSCP", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present, if available. When present, it shall contain the value of the DSCP in the TOS/Traffic Class field to measure the packet delay.Several IEs with the same IE type may be present to represent multiple DSCP values to use for QoS monitoring."})
ies.append({ "ie_type" : "Measurement Period", "ie_value" : "Measurement Period", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if the QoS Report Trigger indicates periodic reporting. When present, it shall contain the time period for the QoS reports towards the SMF."})
ies.append({ "ie_type" : "Average Packet Delay", "ie_value" : "Average Packet Delay Threshold", "presence" : "C", "tlv_more" : "0", "comment" : "This IE may be present if the QoS Report Trigger indicates reporting based on thresholds. "})
ies.append({ "ie_type" : "Minimum Packet Delay", "ie_value" : "Minimum Packet Delay Threshold", "presence" : "C", "tlv_more" : "0", "comment" : "This IE may be present if the QoS Report Trigger indicates reporting based on thresholds. "})
ies.append({ "ie_type" : "Maximum Packet Delay", "ie_value" : "Maximum Packet Delay Threshold", "presence" : "C", "tlv_more" : "0", "comment" : "This IE may be present if the QoS Report Trigger indicates reporting based on thresholds. "})
ies.append({ "ie_type" : "Timer", "ie_value" : "Minimum Waiting Time", "presence" : "C", "tlv_more" : "0", "comment" : "This IE may be present if the QoS Report Trigger indicates reporting based on thresholds. When present, it shall contain the minimum waiting time between two consecutive reports for the same type of measurement and the same remote GTP-U peer. "})
group_list["GTP-U Path QoS Report PFCP Node Report Request"] = { "index" : "339", "type" : "239", "ies" : ies }
ies = []
ies.append({ "ie_type" : "Sequence Number", "ie_value" : "UE IP Address Usage Sequence Number", "presence" : "M", "tlv_more" : "0", "comment" : "This IE shall be used by the CP function to properly collate out-of-order UE IP Address Usage Information received for a given network instance and/or UE IP Address pool, e.g. due to PFCP retransmissions. This IE shall also be used by the receiver to determine whether the newly received UE IP Address Usage Information has changed compared to UE IP Address Usage Information previously received from the same node earlier."})
ies.append({ "ie_type" : "Metric", "ie_value" : "UE IP Address Usage Metric", "presence" : "M", "tlv_more" : "0", "comment" : "This IE shall represent the current ratio of occupied UE IP addresses in the UP function for the Network Instance indicated in the Network Instance IE, or for the Network Instance indicated in the Network Instance IE and the UE IP address Pool indicated by the UE IP Address Pool Id IE when this IE is present. The value shall be expressed as a percentage within the range of 0 to 100, where 0 means no or 0% usage and 100 means maximum or 100% usage reached (i.e. it is not desirable to receive further PFCP Session Establishment Requests)."})
ies.append({ "ie_type" : "Validity Timer", "ie_value" : "Validity Timer", "presence" : "M", "tlv_more" : "0", "comment" : "This IE shall represent the period of time during which the UE IP Address Usage Information shall be considered as valid."})
ies.append({ "ie_type" : "Number of UE IP Addresses", "ie_value" : "Number of UE IP Addresses", "presence" : "M", "tlv_more" : "0", "comment" : "This IE shall indicate the total number of UE IP addresses configured for the Network Instance or also for the IP address Pool, when this IE is present. (NOTE)"})
ies.append({ "ie_type" : "Network Instance", "ie_value" : "Network Instance", "presence" : "M", "tlv_more" : "0", "comment" : "This IE shall identify the associated Network instance."})
ies.append({ "ie_type" : "UE IP Address", "ie_value" : "UE IP Address Pool Id", "presence" : "O", "tlv_more" : "0", "comment" : "This IE may be present if UE IP Addresses Pools are configured in the UPF.When present, this IE shall contain the identity of the associated UE IP address Pool."})
group_list["UE IP Address Usage Information"] = { "index" : "367", "type" : "267", "ies" : ies }
ies = []
ies.append({ "ie_type" : "Remote GTP-U Peer", "ie_value" : "Remote GTP-U Peer", "presence" : "M", "tlv_more" : "0", "comment" : "This IE shall include the IP address of the remote GTP-U peer towards which a user plane path failure has been detected.More than one IE with this type may be included to represent multiple remote GTP-U peers towards which a user plane path failure has been detected."})
group_list["User Plane Path Failure Report"] = { "index" : "202", "type" : "102", "ies" : ies }
ies = []
ies.append({ "ie_type" : "Remote GTP-U Peer", "ie_value" : "Remote GTP-U Peer", "presence" : "M", "tlv_more" : "0", "comment" : "This IE shall include the IP address of the remote GTP-U peer towards which user plane path failure was reported and then the path has recovered within an operator configurable maximum path failure duration (see clause20.3.4 in 3GPPTS23.007[24] and clause5.4 in 3GPPTS23.527[40]).More than one IE with this type may be included to represent multiple remote GTP-U peers towards which a user plane path has recovered."})
group_list["User Plane Path Recovery Report"] = { "index" : "287", "type" : "187", "ies" : ies }
ies = []
ies.append({ "ie_type" : "TSN Time Domain Number", "ie_value" : "TSN Time Domain Number", "presence" : "M", "tlv_more" : "0", "comment" : "This IE shall identify the TSN Domain Number for which measurements are reported."})
ies.append({ "ie_type" : "Time Offset Measurement", "ie_value" : "Time Offset Measurement", "presence" : "O", "tlv_more" : "0", "comment" : "When present, this IE shall contain the time offset measurement."})
ies.append({ "ie_type" : "Cumulative rateRatio Measurement", "ie_value" : "Cumulative rateRatio Measurement", "presence" : "O", "tlv_more" : "0", "comment" : "When present, this IE shall contain the cumulative rateRatio measurement."})
ies.append({ "ie_type" : "Time Stamp", "ie_value" : "Time Stamp", "presence" : "O", "tlv_more" : "0", "comment" : "When present, this IE shall provide the timestamp when the collection of the information in this report was generated."})
group_list["Clock Drift Report"] = { "index" : "305", "type" : "205", "ies" : ies }
ies = []
ies.append({ "ie_type" : "Average Packet Delay", "ie_value" : "Average Packet Delay", "presence" : "M", "tlv_more" : "0", "comment" : "This IE shall indicate the average packet delay of the related GTP-U path. "})
ies.append({ "ie_type" : "Minimum Packet Delay", "ie_value" : "Minimum Packet Delay", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall indicate the minimum packet delay of the related GTP-U path, if available. "})
ies.append({ "ie_type" : "Maximum Packet Delay", "ie_value" : "Maximum Packet Delay", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall indicate the maximum packet delay of the related GTP-U path, if available."})
ies.append({ "ie_type" : "Transport Level Marking", "ie_value" : "DSCP", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present, if available. When present, it shall contain the value of the DSCP in the TOS/Traffic Class field used in Echo messages to measure the packet delay. "})
group_list["QoS Information in GTP-U Path QoS Report"] = { "index" : "340", "type" : "240", "ies" : ies }
ies = []
ies.append({ "ie_type" : "PDR ID", "ie_value" : "PDR ID", "presence" : "M", "tlv_more" : "0", "comment" : "This IE shall uniquely identify the PDR among all the PDRs configured for that PFCP session."})
ies.append({ "ie_type" : "Precedence", "ie_value" : "Precedence", "presence" : "M", "tlv_more" : "0", "comment" : "This IE shall indicate the PDRs precedence to be applied by the UP function among all PDRs of the PFCP session, when looking for a PDR matching an incoming packet."})
ies.append({ "ie_type" : "PDI", "ie_value" : "PDI", "presence" : "M", "tlv_more" : "0", "comment" : "This IE shall contain the PDI against which incoming packets will be matched.See Table 7.5.2.2-2."})
@ -22,11 +71,16 @@ ies.append({ "ie_type" : "Activation Time", "ie_value" : "Activation Time", "pre
ies.append({ "ie_type" : "Deactivation Time", "ie_value" : "Deactivation Time", "presence" : "O", "tlv_more" : "0", "comment" : "This IE may be present if the PDR deactivation shall be deferred. (NOTE 1)"})
ies.append({ "ie_type" : "MAR ID", "ie_value" : "MAR ID", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if the PDR is provisioned to match the downlink traffic towards the UE for a PFCP session established for a MA PDU session."})
ies.append({ "ie_type" : "Packet Replication and Detection Carry-On Information", "ie_value" : "Packet Replication and Detection Carry-On Information", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if the PDR is provisioned to match a broadcast packet. When present, it contains the information to instruct the UPF to replicate the packet and to carry-on the look-up of other PDRs of other PFCP sessions matching the packet (see clause 5.2.1)."})
ies.append({ "ie_type" : "IP Multicast Addressing Info within PFCP Session Establishment Request", "ie_value" : "IP Multicast Addressing Info", "presence" : "O", "tlv_more" : "0", "comment" : "This IE may be present in an UL PDR controlling UL IGMP/MLD traffic (see5.25).When present, it shall contain a (range of) IP multicast address(es), and optionally source specific address(es), identifying a set of IP multicast flows. See Table7.5.2.2-4.Several IEs with the same IE type may be present to represent multiple IP multicast flows. "})
ies.append({ "ie_type" : "UE IP Address", "ie_value" : "UE IP address Pool Identity", "presence" : "O", "tlv_more" : "0", "comment" : "This IE may be present if UE IP Addresses Pools are configured in the UPF.When present, this IE shall contain the identity of a UE IP address Pool configured in the UPF.Two IEs with the same IE type shall be present to represent UE IPv4 Address Pool Identity and UE IPv6 Address Pool Identity if different pool identities are used for UE IPv4 address and UE IPv6 address and both an UE IPv4 and an UE IPv6 address are requested to be assigned for the PFCP session. In this case, the UE IPv4 Address Pool Identity shall be encoded before the UE IPv6 Address Pool Identity."})
ies.append({ "ie_type" : "MPTCP Applicable Indication", "ie_value" : "MPTCP Applicable Indication", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if the PDR is used to detect UL user plane traffic for which MPTCP is applicable."})
ies.append({ "ie_type" : "Transport Delay Reporting", "ie_value" : "Transport Delay Reporting", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present to request the UPF to add the delay of the GTP-U path with the preceding uplink GTP-U entity to the N3/N9 Delay Result received in the GTP-U PDU Session Container extension header (see 3GPPTS38.415[34]) of the uplink packet, when monitoring the QoS of a PDU session based on GTP-U path monitoring (see clause5.24.5.3). See Table7.5.2.2-6."})
group_list["Create PDR"] = { "index" : "101", "type" : "1", "ies" : ies }
ies = []
ies.append({ "ie_type" : "Source Interface", "ie_value" : "Source Interface", "presence" : "M", "tlv_more" : "0", "comment" : "This IE shall identify the source interface of the incoming packet."})
ies.append({ "ie_type" : "F-TEID", "ie_value" : "Local F-TEID", "presence" : "O", "tlv_more" : "0", "comment" : "This IE shall not be present if Traffic Endpoint ID is present.If present, this IE shall identify the local F-TEID to match for an incoming packet.The CP function shall set the CHOOSE (CH) bit to 1 if the UP function supports the allocation of F-TEID and the CP function requests the UP function to assign a local F-TEID to the PDR."})
ies.append({ "ie_type" : "Network Instance", "ie_value" : "Network Instance", "presence" : "O", "tlv_more" : "0", "comment" : "This IE shall not be present if Traffic Endpoint ID is present. It shall be present if the CP function requests the UP function to allocate a UE IP address/prefix and the Traffic Endpoint ID is not present.If present, this IE shall identify the Network instance to match for the incoming packet. See NOTE 1, NOTE2."})
ies.append({ "ie_type" : "Redundant Transmission Parameters", "ie_value" : "Redundant Transmission Detection Parameters", "presence" : "O", "tlv_more" : "0", "comment" : "If present, this IE shall contain the information used for the reception of redundant uplink packets on N3/N9 interfaces."})
ies.append({ "ie_type" : "UE IP Address", "ie_value" : "UE IP address", "presence" : "O", "tlv_more" : "0", "comment" : "This IE shall not be present if Traffic Endpoint ID is present.If present, this IE shall identify the source or destination IP address to match for the incoming packet. (NOTE 5)The CP function shall set the CHOOSE (CH) bit to 1 if the UP function supports the allocation of UE IP address/ prefix and the CP function requests the UP function to assign a UE IP address/prefix to the PDR."})
ies.append({ "ie_type" : "Traffic Endpoint ID", "ie_value" : "Traffic Endpoint ID", "presence" : "C", "tlv_more" : "0", "comment" : "This IE may be present if the UP function has indicated the support of PDI optimization.If present, this IE shall uniquely identify the Traffic Endpoint for that PFCP session.Several IEs with the same IE type may be present to provision several Traffic Endpoints with different Traffic Endpoint IDs, from which the UPF may receive packets pertaining to the same service data flow, which is subject for the same FAR, QER and URR, if the UPF has indicated it supports MTE feature as specified in clause 8.2.25. See NOTE 6."})
type_list["SDF Filter"]["max_tlv_more"] = "7"
@ -39,10 +93,11 @@ ies.append({ "ie_type" : "Framed-Route", "ie_value" : "Framed-Route", "presence"
ies.append({ "ie_type" : "Framed-Routing", "ie_value" : "Framed-Routing", "presence" : "O", "tlv_more" : "0", "comment" : "This IE may be present for a DL PDR if the UPF indicated support of Framed Routing (see clause 8.2.25). If present, this IE shall describe a framed route. "})
ies.append({ "ie_type" : "Framed-IPv6-Route", "ie_value" : "Framed-IPv6-Route", "presence" : "O", "tlv_more" : "0", "comment" : "This IE may be present for a DL PDR if the UPF indicated support of Framed Routing (see clause 8.2.25). If present, this IE shall describe a framed IPv6 route.Several IEs with the same IE type may be present to provision a list of framed IPv6 routes. (NOTE 5)"})
ies.append({ "ie_type" : "3GPP Interface Type", "ie_value" : "Source Interface Type", "presence" : "O", "tlv_more" : "0", "comment" : "This IE may be present to indicate the 3GPP interface type of the source interface, if required by functionalities in the UP Function, e.g. for performance measurements."})
ies.append({ "ie_type" : "IP Multicast Addressing Info within PFCP Session Establishment Request", "ie_value" : "IP Multicast Addressing Info", "presence" : "O", "tlv_more" : "0", "comment" : "This IE may be present in a DL PDR controlling DL IP multicast traffic (see clause5.25).When present, it shall contain a (range of) IP multicast address(es), and optionally source specific address(es), identifying a set of IP multicast flows. See Table7.5.2.2-4.Several IEs with the same IE type may be present to represent multiple IP multicast flows."})
group_list["PDI"] = { "index" : "102", "type" : "2", "ies" : ies }
ies = []
ies.append({ "ie_type" : "Ethernet Filter ID", "ie_value" : "Ethernet Filter ID", "presence" : "C", "tlv_more" : "0", "comment" : "This shall be present if Bidirectional Ethernet filter is required. This IE shall uniquely identify an Ethernet Filter among all the Ethernet Filters provisioned for a given PFCP session."})
ies.append({ "ie_type" : "Ethernet Filter Properties", "ie_value" : "Ethernet Filter Properties", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present when provisioning a bidirectional Ethernet Filter the first time (see clause 5.13.4)."})
ies.append({ "ie_type" : "Ethernet Filter Properties", "ie_value" : "Ethernet Filter Properties", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present when provisioning a bidirectional Ethernet Filter the first time (see clause5.13.4)."})
ies.append({ "ie_type" : "MAC address", "ie_value" : "MAC address", "presence" : "O", "tlv_more" : "0", "comment" : "If present, this IE shall identify the MAC address.This IE may be present up to 16 times."})
ies.append({ "ie_type" : "Ethertype", "ie_value" : "Ethertype", "presence" : "O", "tlv_more" : "0", "comment" : "If present, this IE shall identify the Ethertype."})
ies.append({ "ie_type" : "C-TAG", "ie_value" : "C-TAG", "presence" : "O", "tlv_more" : "0", "comment" : "If present, this IE shall identify the Customer-VLAN tag."})
@ -50,23 +105,37 @@ ies.append({ "ie_type" : "S-TAG", "ie_value" : "S-TAG", "presence" : "O", "tlv_m
ies.append({ "ie_type" : "SDF Filter", "ie_value" : "SDF Filter", "presence" : "O", "tlv_more" : "7", "comment" : "If packet filtering is required, for Ethernet frames with Ethertype indicating IPv4 or IPv6 payload, this IE shall describe the IP Packet Filter Set.Several IEs with the same IE type may be present to represent a list of SDF filters."})
group_list["Ethernet Packet Filter"] = { "index" : "232", "type" : "132", "ies" : ies }
ies = []
ies.append({ "ie_type" : "IP Multicast Address", "ie_value" : "IP Multicast Address", "presence" : "M", "tlv_more" : "0", "comment" : "This IE shall contain the IP multicast address(es) of the DL multicast flow(s) or indicate any IP multicast address."})
ies.append({ "ie_type" : "Source IP Address", "ie_value" : "Source IP Address", "presence" : "O", "tlv_more" : "0", "comment" : "When present, this IE shall contain the source specific IP address of the DL multicast flow.Several IEs with the same IE type may be present to represent multiple source specific addresses.If this IE is not present, this indicates any source IP address."})
group_list["IP Multicast Addressing Info within PFCP Session Establishment Request"] = { "index" : "288", "type" : "188", "ies" : ies }
ies = []
ies.append({ "ie_type" : "F-TEID", "ie_value" : "Local F-TEID for Redundant Transmission", "presence" : "M", "tlv_more" : "0", "comment" : "This IE shall identify the local F-TEID to match for an incoming packet for redundant transmission.The CP function shall set the CHOOSE (CH) bit to 1 if it requests the UP function to assign a local F-TEID to the PDR."})
ies.append({ "ie_type" : "Network Instance", "ie_value" : "Network Instance for Redundant Transmission", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be included if the Local F-TEID for Redundant Transmission uses a different network Instance than the Network Instance used for the Local F-TEID for the primary GTP-U tunnel."})
group_list["Redundant Transmission Parameters"] = { "index" : "355", "type" : "255", "ies" : ies }
ies = []
ies.append({ "ie_type" : "Remote GTP-U Peer", "ie_value" : "Preceding UL GTP-U Peer", "presence" : "M", "tlv_more" : "0", "comment" : "This IE shall identify the preceding UL GTP-U peer."})
ies.append({ "ie_type" : "Transport Level Marking", "ie_value" : "DSCP", "presence" : "O", "tlv_more" : "0", "comment" : "If present, this IE shall contain the DSCP to use to measure the GTP-U path delay with the preceding UL GTP-U peer."})
group_list["Transport Delay Reporting"] = { "index" : "371", "type" : "271", "ies" : ies }
ies = []
ies.append({ "ie_type" : "FAR ID", "ie_value" : "FAR ID", "presence" : "M", "tlv_more" : "0", "comment" : "This IE shall uniquely identify the FAR among all the FARs configured for that PFCP session."})
ies.append({ "ie_type" : "Apply Action", "ie_value" : "Apply Action", "presence" : "M", "tlv_more" : "0", "comment" : "This IE shall indicate the action to apply to the packets, See clauses 5.2.1 and 5.2.3."})
ies.append({ "ie_type" : "Forwarding Parameters", "ie_value" : "Forwarding Parameters", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present when the Apply Action requests the packets to be forwarded. It may be present otherwise.When present, this IE shall contain the forwarding instructions to be applied by the UP function when the Apply Action requests the packets to be forwarded.See table 7.5.2.3-2."})
ies.append({ "ie_type" : "Duplicating Parameters", "ie_value" : "Duplicating Parameters", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present when the Apply Action requests the packets to be duplicated. It may be present otherwise.When present, this IE shall contain the forwarding instructions to be applied by the UP function for the traffic to be duplicated, when the Apply Action requests the packets to be duplicated.Several IEs with the same IE type may be present to represent to duplicate the packets to different destinations. See NOTE 1.See table 7.5.2.3-3."})
ies.append({ "ie_type" : "BAR ID", "ie_value" : "BAR ID", "presence" : "O", "tlv_more" : "0", "comment" : "When present, this IE shall contain the BAR ID of the BAR defining the buffering instructions to be applied by the UP function when the Apply Action requests the packets to be buffered. "})
ies.append({ "ie_type" : "Redundant Transmission Forwarding Parameters", "ie_value" : "Redundant Transmission Forwarding Parameters", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present when the Apply Action requests the packets to be duplicated for redundant transmission and the Forwarding Parameters IE is included. It may be present otherwise.When present, this IE shall contain the forwarding instructions to be applied by the UP function for the traffic to be duplicated, when the Apply Action requests the packets to be duplicated for redundant transmission. Except for the parameters included in the Redundant Transmission Parameters IE, the duplicated packets shall apply the same parameters as those indicated in the Forwarding Parameters IE.See table7.5.2.3-4."})
group_list["Create FAR"] = { "index" : "103", "type" : "3", "ies" : ies }
ies = []
ies.append({ "ie_type" : "Destination Interface", "ie_value" : "Destination Interface", "presence" : "M", "tlv_more" : "0", "comment" : "This IE shall identify the destination interface of the outgoing packet."})
ies.append({ "ie_type" : "Network Instance", "ie_value" : "Network Instance", "presence" : "O", "tlv_more" : "0", "comment" : "When present, this IE shall identify the Network instance towards which to send the outgoing packet. See NOTE 1."})
ies.append({ "ie_type" : "Redirect Information", "ie_value" : "Redirect Information", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if the UP function is required to enforce traffic redirection towards a redirect destination provided by the CP function. "})
ies.append({ "ie_type" : "Outer Header Creation", "ie_value" : "Outer Header Creation", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if the UP function is required to add one or more outer header(s) to the outgoing packet. If present, it shall contain the F-TEID of the remote GTP-U peer when adding a GTP-U/UDP/IP header, or the Destination IP address and/or Port Number when adding a UDP/IP header or an IP header or the C-TAG/S-TAG (for 5GC). See NOTE 2."})
ies.append({ "ie_type" : "Transport Level Marking", "ie_value" : "Transport Level Marking", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if the UP function is required to mark the IP header with the DSCP marking as defined by IETFRFC2474[22]. When present for EPC, it shall contain the value of the DSCP in the TOS/Traffic Class field set based on the QCI, and optionally the ARP priority level, of the associated EPS bearer, as described in clause 5.10 of 3GPPTS23.214[2]. When present for 5GC, it shall contain the value of the DSCP in the TOS/Traffic Class field set based on the 5QI, the Priority Level (if explicitly signalled), and optionally the ARP priority level, of the associated QoS flow, as described in clause 5.8.2.7 of 3GPPTS23.501[28],"})
ies.append({ "ie_type" : "Forwarding Policy", "ie_value" : "Forwarding Policy", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if a specific forwarding policy is required to be applied to the packets. It shall be present if the Destination Interface IE is set to SGi-LAN / N6-LAN. It may be present if the Destination Interface is set to Core, Access, or CP-Function. See NOTE 2.When present, it shall contain an Identifier of the Forwarding Policy locally configured in the UP function."})
ies.append({ "ie_type" : "Transport Level Marking", "ie_value" : "Transport Level Marking", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if the UP function is required to mark the IP header with the DSCP marking as defined by IETFRFC2474[22]. When present for EPC, it shall contain the value of the DSCP in the TOS/Traffic Class field set based on the QCI, and optionally the ARP priority level, of the associated EPS bearer, as described in clause5.10 of 3GPPTS23.214[2]. When present for 5GC, it shall contain the value of the DSCP in the TOS/Traffic Class field set based on the 5QI, the Priority Level (if explicitly signalled), and optionally the ARP priority level, of the associated QoS flow, as described in clause5.8.2.7 of 3GPPTS23.501[28],"})
ies.append({ "ie_type" : "Forwarding Policy", "ie_value" : "Forwarding Policy", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if a specific forwarding policy is required to be applied to the packets. It shall be present if the Destination Interface IE is set to SGi-LAN / N6-LAN. It may be present if the Destination Interface is set to Core, Access, or CP-Function. See NOTE 2.When present, it shall contain an Identifier of the Forwarding Policy locally configured in the UP function."})
ies.append({ "ie_type" : "Header Enrichment", "ie_value" : "Header Enrichment", "presence" : "O", "tlv_more" : "0", "comment" : "This IE may be present if the UP function indicated support of Header Enrichment of UL traffic. When present, it shall contain information for header enrichment."})
ies.append({ "ie_type" : "Traffic Endpoint ID", "ie_value" : "Linked Traffic Endpoint ID", "presence" : "C", "tlv_more" : "0", "comment" : "This IE may be present, if it is available and the UP function indicated support of the PDI optimisation feature, (see clause 8.2.25). When present, it shall identify the Traffic Endpoint ID allocated for this PFCP session to receive the traffic in the reverse direction (see clause 5.2.3.1)."})
ies.append({ "ie_type" : "Traffic Endpoint ID", "ie_value" : "Linked Traffic Endpoint ID", "presence" : "C", "tlv_more" : "0", "comment" : "This IE may be present, if it is available and the UP function indicated support of the PDI optimisation feature, (see clause8.2.25). When present, it shall identify the Traffic Endpoint ID allocated for this PFCP session to receive the traffic in the reverse direction (see clause5.2.3.1)."})
ies.append({ "ie_type" : "Proxying", "ie_value" : "Proxying", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if proxying is to be performed by the UP function.When present, this IE shall contain the information that the UPF shall respond to Address Resolution Protocol and / or IPv6 Neighbour Solicitation based on the local cache information for the Ethernet PDUs."})
ies.append({ "ie_type" : "3GPP Interface Type", "ie_value" : "Destination Interface Type", "presence" : "O", "tlv_more" : "0", "comment" : "This IE may be present to indicate the 3GPP interface type of the destination interface, if required by functionalities in the UP Function, e.g. for performance measurements."})
ies.append({ "ie_type" : "Data Network Access Identifier", "ie_value" : "Data Network Access Identifier", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present over N16a to link the UL FAR in an UL CL or BP towards a specific local PSA, if more than one local PSA has been inserted by an I-SMF. It may be present over N16a otherwise. This IE shall not be sent over N4.When present, it shall be set to the DNAI associated to the local PSA towards which the UL traffic shall be forwarded. "})
group_list["Forwarding Parameters"] = { "index" : "104", "type" : "4", "ies" : ies }
ies = []
ies.append({ "ie_type" : "Destination Interface", "ie_value" : "Destination Interface", "presence" : "M", "tlv_more" : "0", "comment" : "This IE shall identify the destination interface of the outgoing packet."})
@ -75,6 +144,10 @@ ies.append({ "ie_type" : "Transport Level Marking", "ie_value" : "Transport Leve
ies.append({ "ie_type" : "Forwarding Policy", "ie_value" : "Forwarding Policy", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if a specific forwarding policy is required to be applied to the packets. When present, it shall contain an Identifier of the Forwarding Policy locally configured in the UP function."})
group_list["Duplicating Parameters"] = { "index" : "105", "type" : "5", "ies" : ies }
ies = []
ies.append({ "ie_type" : "Outer Header Creation", "ie_value" : "Outer Header Creation", "presence" : "M", "tlv_more" : "0", "comment" : "This IE shall be present if the UP function is required to perform the redundant transmission of the outgoing packet.If present, it shall contain the F-TEID of the remote GTP-U peer for redundant transmission."})
ies.append({ "ie_type" : "Network Instance", "ie_value" : "Network Instance for Redundant Transmission", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be included if the GTP-U tunnel used for redundant transmission uses a different network Instance than the Network Instance used for the primary GTP-U tunnel."})
group_list["Redundant Transmission Forwarding Parameters"] = { "index" : "370", "type" : "270", "ies" : ies }
ies = []
ies.append({ "ie_type" : "URR ID", "ie_value" : "URR ID", "presence" : "M", "tlv_more" : "0", "comment" : "This IE shall uniquely identify the URR among all the URRs configured for this PFCP session."})
ies.append({ "ie_type" : "Measurement Method", "ie_value" : "Measurement Method", "presence" : "M", "tlv_more" : "0", "comment" : "This IE shall indicate the method for measuring the network resources usage, i.e. whether the data volume, duration (i.e. time), combined volume/duration, or event shall be measured."})
ies.append({ "ie_type" : "Reporting Triggers", "ie_value" : "Reporting Triggers", "presence" : "M", "tlv_more" : "0", "comment" : "This IE shall indicate the trigger(s) for reporting network resources usage to the CP function, e.g. periodic reporting or reporting upon reaching a threshold, or envelope closure."})
@ -103,71 +176,111 @@ ies.append({ "ie_type" : "Aggregated URRs", "ie_value" : "Aggregated URRs", "pre
ies.append({ "ie_type" : "FAR ID", "ie_value" : "FAR ID for Quota Action", "presence" : "C", "tlv_more" : "0", "comment" : "This IE may be present if the Volume Quota IE and/or the Time Quota IE and/or Event Quota IE is provisioned in the URR and the UP Function indicated support of the Quota Action feature.When present, it shall contain the identifier of the substitute FAR the UP function shall apply, for the traffic associated to this URR, when exhausting any of these quotas. See NOTE 1. "})
ies.append({ "ie_type" : "Ethernet Inactivity Timer", "ie_value" : "Ethernet Inactivity Timer", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if Ethernet traffic reporting is used and the SMF requests the UP function to also report inactive UE MAC addresses.When present, it shall contain the duration of the Ethernet inactivity period."})
ies.append({ "ie_type" : "Additional Monitoring Time", "ie_value" : "Additional Monitoring Time", "presence" : "O", "tlv_more" : "0", "comment" : "When present, this IE shall contain the time at which the UP function shall re-apply the volume or time or event threshold/quota provisioned in the IE.Several IEs with the same IE type may be present to provide multiple Monitoring Times."})
ies.append({ "ie_type" : "Number of Reports", "ie_value" : "Number of Reports", "presence" : "O", "tlv_more" : "0", "comment" : "This IE may be present if the UP function supports the NORP feature. When present, it shall indicate the number of usage reports to be generated by the URR. See also clauses 5.2.2.2.1 and 5.2.2.3.1. See NOTE 2."})
group_list["Create URR"] = { "index" : "106", "type" : "6", "ies" : ies }
ies = []
ies.append({ "ie_type" : "QER ID", "ie_value" : "QER ID", "presence" : "M", "tlv_more" : "0", "comment" : "This IE shall uniquely identify the QER among all the QER configured for that PFCP session"})
ies.append({ "ie_type" : "QER Correlation ID", "ie_value" : "QER Correlation ID", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if the UP function is required to correlate the QERs of several PFCP sessions, for APN-AMBR enforcement of multiple UEs PDN connections to the same APN."})
ies.append({ "ie_type" : "QER Correlation ID", "ie_value" : "QER Correlation ID", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if the UP function is required to correlate the QERs of several PFCP sessions, for APN-AMBR enforcement/APN rate control of multiple UEs PDN connections to the same APN."})
ies.append({ "ie_type" : "Gate Status", "ie_value" : "Gate Status", "presence" : "M", "tlv_more" : "0", "comment" : "This IE shall indicate whether the packets are allowed to be forwarded (the gate is open) or shall be discarded (the gate is closed) in the uplink and/or downlink directions."})
ies.append({ "ie_type" : "MBR", "ie_value" : "Maximum Bitrate", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if an MBR enforcement action shall be applied to packets matching this PDR. When present, this IE shall indicate the uplink and/or downlink maximum bit rate to be enforced for packets matching the PDR.For EPC, this IE may be set to the value of:- the APN-AMBR, for a QER that is referenced by all the PDRs of the non-GBR bearers of a PDN connection;- the TDF session MBR, for a QER that is referenced by all the PDRs of a TDF session;- the bearer MBR, for a QER that is referenced by all the PDRs of a bearer;- the SDF MBR, for a QER that is referenced by all the PDRs of a SDF.For 5GC, this IE may be set to the value of:- the Session-AMBR, for a QER that is referenced by all the PDRs of the non-GBR QoS flows of a PDU session;- the QoS Flow MBR, for a QER that is referenced by all the PDRs of a QoS Flow;- the SDF MBR, for a QER that is referenced by all the PDRs of a SDF."})
ies.append({ "ie_type" : "GBR", "ie_value" : "Guaranteed Bitrate", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if a GBR has been authorized to packets matching this PDR. When present, this IE shall indicate the authorized uplink and/or downlink guaranteed bit rate.This IE may be set to the value of:- the aggregate GBR, for a QER that is referenced by all the PDRs of a GBR bearer;- the QoS Flow GBR, for a QER that is referenced by all the PDRs of a QoS Flow (for 5GC);- the SDF GBR, for a QER that is referenced by all the PDRs of a SDF."})
ies.append({ "ie_type" : "Packet Rate", "ie_value" : "Packet Rate", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if a Packet Rate enforcement action (in terms of number of packets per time interval) shall be applied to packets matching this PDR.When present, this IE shall indicate the uplink and/or downlink maximum packet rate to be enforced for packets matching the PDR.This IE may be set to the value of:- downlink packet rate for Serving PLMN Rate Control, for a QER that is referenced by all PDRs of the UE belonging to the PDN connection using CIoT EPS Optimizations as described in 3GPPTS23.401[2]);- uplink and/or downlink packet rate for APN Rate Control, for a QER that is referenced by all the PDRs of the UE belonging to PDN connections to the same APN using CIoT EPS Optimizations as described in 3GPPTS23.401[2])."})
ies.append({ "ie_type" : "DL Flow Level Marking", "ie_value" : "DL Flow Level Marking", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be set if the UP function is required to mark the packets for QoS purposes:- by the TDF-C, for DL flow level marking for application indication (see clause 5.4.5);- by the PGW-C, for setting the GTP-U Service Class Indicator extension header for service indication towards GERAN (see clause 5.4.12)."})
ies.append({ "ie_type" : "Packet Rate", "ie_value" : "Packet Rate", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if a Packet Rate enforcement action (in terms of number of packets per time interval) shall be applied to packets matching this PDR.When present, this IE shall indicate the uplink and/or downlink maximum packet rate to be enforced for packets matching the PDR.This IE may be set to the value of:- downlink packet rate for Serving PLMN Rate Control, for a QER that is referenced by all PDRs of the UE belonging to the PDN connection, or belonging to the PDU session (5GC) using CIoT EPS Optimizations as described in 3GPPTS23.401[2] and 3GPPTS23.501[28], respectively;- uplink and/or downlink packet rate for APN Rate Control, for a QER that is referenced by all the PDRs of the UE belonging to all PDN connections to the same APN, or for Small Data Rate Control (5GC) for a QER related to the PDU session using CIoT EPS Optimizations as described in 3GPPTS23.401[2] and 3GPPTS23.501[28], respectively."})
ies.append({ "ie_type" : "Packet Rate Status", "ie_value" : "Packet Rate Status", "presence" : "C", "tlv_more" : "0", "comment" : "This IE may be present during the UE requested PDU session establishment, or UE requested PDN connection establishment.When present, the UP function shall first enforce these rules. Only after that shall the UP function enforce the rules in the Packet Rate IE."})
ies.append({ "ie_type" : "DL Flow Level Marking", "ie_value" : "DL Flow Level Marking", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be set if the UP function is required to mark the packets for QoS purposes:- by the TDF-C, for DL flow level marking for application indication (see clause5.4.5);- by the PGW-C, for setting the GTP-U Service Class Indicator extension header for service indication towards GERAN (see clause5.4.12)."})
ies.append({ "ie_type" : "QFI", "ie_value" : "QoS flow identifier", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if the QoS flow identifier shall be inserted by the UPF."})
ies.append({ "ie_type" : "RQI", "ie_value" : "Reflective QoS", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if the UP function is required to insert a Reflective QoS Identifier to request reflective QoS for uplink traffic."})
ies.append({ "ie_type" : "Paging Policy Indicator", "ie_value" : "Paging Policy Indicator", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if the UPF is required to set the Paging Policy Indicator (PPI) in outgoing packets (see clause 5.4.3.2 of 3GPPTS23.501[28]).When present, it shall be set to the PPI value to set. "})
ies.append({ "ie_type" : "RQI", "ie_value" : "Reflective QoS", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if the UP function is required to insert a Reflective QoS Indicator to request reflective QoS for uplink traffic."})
ies.append({ "ie_type" : "Paging Policy Indicator", "ie_value" : "Paging Policy Indicator", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if the UPF is required to set the Paging Policy Indicator (PPI) in outgoing packets (see clause5.4.3.2 of 3GPPTS23.501[28]).When present, it shall be set to the PPI value to set. "})
ies.append({ "ie_type" : "Averaging Window", "ie_value" : "Averaging Window", "presence" : "O", "tlv_more" : "0", "comment" : "This IE may be present if the UP function is required to use a different Averaging window than the default one. (NOTE)"})
ies.append({ "ie_type" : "QER Control Indications", "ie_value" : "QER Control Indications", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be included if the CP function needs to provide the QoS enforcement control information:- RCSR (Rate Control Status Reporting): the CP function shall set this bit 1 to request the UP function to report the rate control status when the PFCP session is released. "})
group_list["Create QER"] = { "index" : "107", "type" : "7", "ies" : ies }
ies = []
ies.append({ "ie_type" : "BAR ID", "ie_value" : "BAR ID", "presence" : "M", "tlv_more" : "0", "comment" : "This IE shall uniquely identify the BAR provisioned for that PFCP session."})
ies.append({ "ie_type" : "Downlink Data Notification Delay", "ie_value" : "Downlink Data Notification Delay", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if the UP function indicated support of the Downlink Data Notification Delay parameter (see clause 8.2.28) and the UP function has to delay the notification to the CP function about the arrival of DL data packets.When present, it shall contain the delay the UP function shall apply between receiving a downlink data packet and notifying the CP function about it, when the Apply Action parameter requests to buffer the packets and notify the CP function."})
ies.append({ "ie_type" : "Suggested Buffering Packets Count", "ie_value" : "Suggested Buffering Packets Count", "presence" : "C", "tlv_more" : "0", "comment" : "This IE may be present if the UP Function indicated support of the the feature UDBC.When present, it shall contain the number of packets that are suggested to be buffered when the Apply Action parameter requests to buffer the packets. The packets that exceed the limit shall be discarded."})
ies.append({ "ie_type" : "Downlink Data Notification Delay", "ie_value" : "Downlink Data Notification Delay", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if the UP function indicated support of the Downlink Data Notification Delay parameter (see clause8.2.28) and the UP function has to delay the notification to the CP function about the arrival of DL data packets.When present, it shall contain the delay the UP function shall apply between receiving a downlink data packet and notifying the CP function about it, when the Apply Action parameter requests to buffer the packets and notify the CP function."})
ies.append({ "ie_type" : "Suggested Buffering Packets Count", "ie_value" : "Suggested Buffering Packets Count", "presence" : "C", "tlv_more" : "0", "comment" : "This IE may be present if the UP Function indicated support of the feature UDBC.When present, it shall contain the number of packets that are suggested to be buffered when the Apply Action parameter requests to buffer the packets. The packets that exceed the limit shall be discarded."})
ies.append({ "ie_type" : "MT-EDT Control Information", "ie_value" : "MT-EDT Control Information", "presence" : "O", "tlv_more" : "0", "comment" : "This IE may be included to request the SGW-U to report the sum of DL Data Packets Size."})
group_list["Create BAR"] = { "index" : "185", "type" : "85", "ies" : ies }
ies = []
ies.append({ "ie_type" : "Traffic Endpoint ID", "ie_value" : "Traffic Endpoint ID", "presence" : "M", "tlv_more" : "0", "comment" : "This IE shall uniquely identify the Traffic Endpoint for that Sx session."})
ies.append({ "ie_type" : "F-TEID", "ie_value" : "Local F-TEID", "presence" : "O", "tlv_more" : "0", "comment" : "If present, this IE shall identify the local F-TEID to match for an incoming packet.The CP function shall set the CHOOSE (CH) bit to 1 if the UP function supports the allocation of F-TEID and the CP function requests the UP function to assign a local F-TEID to the Traffic Endpoint."})
ies.append({ "ie_type" : "Network Instance", "ie_value" : "Network Instance", "presence" : "O", "tlv_more" : "0", "comment" : "This IE shall be present if the CP function requests the UP function to allocate a UE IP address/prefix.If present, this IE shall identify the Network instance to match for the incoming packet. See NOTE 1, NOTE2."})
ies.append({ "ie_type" : "Redundant Transmission Parameters", "ie_value" : "Redundant Transmission Detection Parameters", "presence" : "O", "tlv_more" : "0", "comment" : "If present, this IE shall contain the information used for the reception of redundant uplink packets on N3/N9 interfaces.See Table7.5.2.2-5."})
ies.append({ "ie_type" : "UE IP Address", "ie_value" : "UE IP address", "presence" : "O", "tlv_more" : "0", "comment" : "If present, this IE shall identify the source or destination IP address to match for the incoming packet. (NOTE 3)The CP function shall set the CHOOSE (CH) bit to 1 if the UP function supports the allocation of UE IP address/ prefix and the CP function requests the UP function to assign a UE IP address/prefix to the Traffic Endpoint."})
ies.append({ "ie_type" : "Ethernet PDU Session Information", "ie_value" : "Ethernet PDU Session Information", "presence" : "O", "tlv_more" : "0", "comment" : "This IE may be present to identify all the (DL) Ethernet packets matching an Ethernet PDU session (see clause 5.13.1)."})
ies.append({ "ie_type" : "Framed-Route", "ie_value" : "Framed-Route", "presence" : "O", "tlv_more" : "0", "comment" : "This IE may be present for a DL PDR if the UPF indicated support of Framed Routing (see clause 8.2.25). If present, this IE shall describe a framed route.Several IEs with the same IE type may be present to provision a list of framed routes. (NOTE 3)"})
ies.append({ "ie_type" : "Framed-Routing", "ie_value" : "Framed-Routing", "presence" : "O", "tlv_more" : "0", "comment" : "This IE may be present for a DL PDR if the UPF indicated support of Framed Routing (see clause 8.2.25). If present, this IE shall describe the framed routing associated to a framed route. "})
ies.append({ "ie_type" : "Framed-IPv6-Route", "ie_value" : "Framed-IPv6-Route", "presence" : "O", "tlv_more" : "0", "comment" : "This IE may be present for a DL PDR if the UPF indicated support of Framed Routing (see clause 8.2.25). If present, this IE shall describe a framed IPv6 route.Several IEs with the same IE type may be present to provision a list of framed IPv6 routes. (NOTE 3)"})
ies.append({ "ie_type" : "QFI", "ie_value" : "QFI", "presence" : "O", "tlv_more" : "0", "comment" : "This IE may be present if the UPF has indicated it supports MTE feature as specified in clause 8.2.25.If present, this IE shall identify the QoS Flow Identifier to match for the incoming packet received from the traffic endpoint.Several IEs with the same IE type may be present to provision a list of QFIs. When present, the full set of applicable QFIs shall be provided."})
ies.append({ "ie_type" : "3GPP Interface Type", "ie_value" : "Source Interface Type", "presence" : "O", "tlv_more" : "0", "comment" : "This IE may be present to indicate the 3GPP interface type of the source interface, if required by functionalities in the UP Function, e.g. for performance measurements.(NOTE 4)"})
group_list["Create Traffic Endpoint"] = { "index" : "227", "type" : "127", "ies" : ies }
ies = []
ies.append({ "ie_type" : "MAR ID", "ie_value" : "MAR ID", "presence" : "M", "tlv_more" : "0", "comment" : "This IE shall uniquely identify the MAR among all the MARs configured for that PFCP session."})
ies.append({ "ie_type" : "Steering Functionality", "ie_value" : "Steering Functionality", "presence" : "M", "tlv_more" : "0", "comment" : "This IE shall be present to indicate the applicable traffic steering functionality."})
ies.append({ "ie_type" : "Steering Mode", "ie_value" : "Steering Mode", "presence" : "M", "tlv_more" : "0", "comment" : "This IE shall be present to indicate the steering mode."})
ies.append({ "ie_type" : "Access Forwarding Action Information 1", "ie_value" : "Access Forwarding Action Information 1", "presence" : "M", "tlv_more" : "0", "comment" : "This IE shall be present to provision access specific (non-3gpp or 3gpp) forwarding action information."})
ies.append({ "ie_type" : "Access Forwarding Action Information 2", "ie_value" : "Access Forwarding Action Information 2", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present to provision access specific (non-3gpp or 3gpp) forwarding action information if the UE is registered for both non-3GPP and 3GPP accesses."})
ies.append({ "ie_type" : "3GPP Access Forwarding Action Information", "ie_value" : "3GPP Access Forwarding Action Information", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present to provision 3GPP access specific forwarding action information if the UE is registered for 3GPP access, except when steering mode is set to Active-Standby, Non-3GPP access is the active access and 3GPP access is not used as Standby access. In the latter case, this IE may be present.(NOTE)"})
ies.append({ "ie_type" : "Non-3GPP Access Forwarding Action Information", "ie_value" : "Non-3GPP Access Forwarding Action Information", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present to provision non-3GPP access specific forwarding action information if the UE is registered for non-3GPP access, except when steering mode is set to Active-Standby, 3GPP access is the active access and Non-3GPP access is not used as Standby access. In the latter case, this IE may be present.(NOTE)"})
group_list["Create MAR"] = { "index" : "265", "type" : "165", "ies" : ies }
ies = []
ies.append({ "ie_type" : "FAR ID", "ie_value" : "FAR ID", "presence" : "M", "tlv_more" : "0", "comment" : "This IE shall uniquely identify the FAR among all the FARs configured for this PFCP session. "})
ies.append({ "ie_type" : "Weight", "ie_value" : "Weight", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if steering mode is set to Load Balancing to identify the weight of the FAR.(NOTE 1) "})
ies.append({ "ie_type" : "Priority", "ie_value" : "Priority", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if the steering mode is set to Active-Standby or Priority-based. (NOTE 2)"})
ies.append({ "ie_type" : "URR ID", "ie_value" : "URR ID", "presence" : "C", "tlv_more" : "7", "comment" : "This IE shall uniquely identify the URR among all the URRs configured for the PFCP session. This enables the SMF to request separate usage reports for different FARs (i.e. different accesses) (NOTE 3)Several IEs within the same IE type may be present to represent a list of URRs to be associated to the FAR."})
group_list["Access Forwarding Action Information 1"] = { "index" : "266", "type" : "166", "ies" : ies }
group_list["Access Forwarding Action Information 2"] = { "index" : "267", "type" : "167", "ies" : ies }
group_list["3GPP Access Forwarding Action Information"] = { "index" : "266", "type" : "166", "ies" : ies }
group_list["Non-3GPP Access Forwarding Action Information"] = { "index" : "267", "type" : "167", "ies" : ies }
ies = []
ies.append({ "ie_type" : "SRR ID", "ie_value" : "SRR ID", "presence" : "M", "tlv_more" : "0", "comment" : "This IE shall uniquely identify the SRR among all the SRRs configured for this PFCP session."})
ies.append({ "ie_type" : "Access Availability Control Information", "ie_value" : "Access Availability Control Information", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if the UPF needs to report when an access type becomes available or not available (see clause5.20.4.2)."})
ies.append({ "ie_type" : "QoS Monitoring per QoS flow Control Information", "ie_value" : "QoS Monitoring per QoS flow Control Information", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if the per QoS Flow per UE QoS monitoring reporting is triggered.Several IEs within the same IE type may be present to represent a list of QoS Monitoring per QoS flow Control Information for different QoS flows."})
group_list["Create SRR"] = { "index" : "312", "type" : "212", "ies" : ies }
ies = []
ies.append({ "ie_type" : "MPTCP Control Information", "ie_value" : "MPTCP Control Information", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if the PDU session is a MA PDU session and the MPTCP functionality is required."})
ies.append({ "ie_type" : "ATSSS-LL Control Information", "ie_value" : "ATSSS-LL Control Information", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if the PDU session is a MA PDU session and the ATSSS-LL functionality is required."})
ies.append({ "ie_type" : "PMF Control Information", "ie_value" : "PMF Control Information", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if the PDU session is a MA PDU session and the PMF functionality is required."})
group_list["Provide ATSSS Control Information"] = { "index" : "320", "type" : "220", "ies" : ies }
ies = []
ies.append({ "ie_type" : "RDS Configuration Information", "ie_value" : "RDS Configuration Information", "presence" : "O", "tlv_more" : "0", "comment" : "When present, this IE indicates if the RDS mechanism is supported."})
group_list["Provide RDS Configuration Information"] = { "index" : "361", "type" : "261", "ies" : ies }
ies = []
ies.append({ "ie_type" : "PDR ID", "ie_value" : "PDR ID", "presence" : "M", "tlv_more" : "0", "comment" : ""})
ies.append({ "ie_type" : "F-TEID", "ie_value" : "Local F-TEID", "presence" : "C", "tlv_more" : "0", "comment" : "If the UP function allocates the F-TEID, this IE shall be present and shall contain the local F-TEID to be used for this PDR."})
ies.append({ "ie_type" : "UE IP Address", "ie_value" : "UE IP Address", "presence" : "C", "tlv_more" : "0", "comment" : "If the UP function allocates the UE IP address/prefix, this IE shall be present and shall contain the UE IP address/ prefix assigned by the UP function."})
ies.append({ "ie_type" : "F-TEID", "ie_value" : "Local F-TEID for Redundant Transmission", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present and shall contain the local F-TEID used for this PDR for the reception of redundant uplink packets on N3/N9 interfaces, if the CP function requested a Local F-TEID to be assigned for redundant transmission."})
ies.append({ "ie_type" : "UE IP Address", "ie_value" : "UE IP Address", "presence" : "C", "tlv_more" : "0", "comment" : "If the UP function allocates the UE IP address/prefix, this IE shall be present and shall contain the UE IP address/ prefix assigned by the UP function.In the 5GC, several IEs with the same IE type may be present to represent multiple UE IP addresses, if the UPF indicated support of the IP6PL feature (see clause5.21)."})
group_list["Created PDR"] = { "index" : "108", "type" : "8", "ies" : ies }
ies = []
ies.append({ "ie_type" : "Sequence Number", "ie_value" : "Load Control Sequence Number", "presence" : "M", "tlv_more" : "0", "comment" : "See clause 6.2.3.3.2 for the description and use of this parameter."})
ies.append({ "ie_type" : "Metric", "ie_value" : "Load Metric", "presence" : "M", "tlv_more" : "0", "comment" : "See clause 6.2.3.3.2 for the description and use of this parameter."})
ies.append({ "ie_type" : "Sequence Number", "ie_value" : "Load Control Sequence Number", "presence" : "M", "tlv_more" : "0", "comment" : "See clause6.2.3.3.2 for the description and use of this parameter."})
ies.append({ "ie_type" : "Metric", "ie_value" : "Load Metric", "presence" : "M", "tlv_more" : "0", "comment" : "See clause6.2.3.3.2 for the description and use of this parameter."})
group_list["Load Control Information"] = { "index" : "151", "type" : "51", "ies" : ies }
ies = []
ies.append({ "ie_type" : "Sequence Number", "ie_value" : "Overload Control Sequence Number", "presence" : "M", "tlv_more" : "0", "comment" : "See clause 6.2.4.3.2 for the description and use of this parameter."})
ies.append({ "ie_type" : "Metric", "ie_value" : "Overload Reduction Metric", "presence" : "M", "tlv_more" : "0", "comment" : "See clause 6.2.4.3.2 for the description and use of this parameter."})
ies.append({ "ie_type" : "Timer", "ie_value" : "Period of Validity", "presence" : "M", "tlv_more" : "0", "comment" : "See clause 6.2.4.3.2 for the description and use of this parameter."})
ies.append({ "ie_type" : "OCI Flags", "ie_value" : "Overload Control Information Flags", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be included if any of flag in this IE is set. "})
ies.append({ "ie_type" : "Sequence Number", "ie_value" : "Overload Control Sequence Number", "presence" : "M", "tlv_more" : "0", "comment" : "See6.2.4.3.2 for the description and use of this parameter."})
ies.append({ "ie_type" : "Metric", "ie_value" : "Overload Reduction Metric", "presence" : "M", "tlv_more" : "0", "comment" : "See clause6.2.4.3.2 for the description and use of this parameter."})
ies.append({ "ie_type" : "Timer", "ie_value" : "Period of Validity", "presence" : "M", "tlv_more" : "0", "comment" : "See clause6.2.4.3.2 for the description and use of this parameter."})
ies.append({ "ie_type" : "OCI Flags", "ie_value" : "Overload Control Information Flags", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be included if any of flag in this IE is set."})
group_list["Overload Control Information"] = { "index" : "154", "type" : "54", "ies" : ies }
ies = []
ies.append({ "ie_type" : "Traffic Endpoint ID", "ie_value" : "Traffic Endpoint ID", "presence" : "M", "tlv_more" : "0", "comment" : "This IE shall uniquely identify the Traffic Endpoint for that Sx session."})
ies.append({ "ie_type" : "Traffic Endpoint ID", "ie_value" : "Traffic Endpoint ID", "presence" : "M", "tlv_more" : "0", "comment" : "This IE shall uniquely identify the Traffic Endpoint for that PFCP session."})
ies.append({ "ie_type" : "F-TEID", "ie_value" : "Local F-TEID", "presence" : "C", "tlv_more" : "0", "comment" : "If the UP function allocates the F-TEID, this IE shall be present and shall contain the local F-TEID to be used for this Traffic Endpoint."})
ies.append({ "ie_type" : "UE IP Address", "ie_value" : "UE IP Address", "presence" : "C", "tlv_more" : "0", "comment" : "If the UP function allocates the UE IP address/prefix, this IE shall be present and shall contain the UE IP address/ prefix assigned by the UP function."})
ies.append({ "ie_type" : "F-TEID", "ie_value" : "Local F-TEID for Redundant Transmission", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present and shall contain the local F-TEID to be used for this PDR for the reception of redundant uplink packets on N3/N9 interfaces, if the CP function requested a Local F-TEID to be assigned for redundant transmission."})
ies.append({ "ie_type" : "UE IP Address", "ie_value" : "UE IP Address", "presence" : "C", "tlv_more" : "0", "comment" : "If the UP function allocates the UE IP address/prefix, this IE shall be present and shall contain the UE IP address/ prefix assigned by the UP function.In the 5GC, several IEs with the same IE type may be present to represent multiple UE IP addresses, if the UPF indicated support of the IP6PL feature (see clause5.21)."})
group_list["Created Traffic Endpoint"] = { "index" : "228", "type" : "128", "ies" : ies }
ies = []
ies.append({ "ie_type" : "DS-TT Port Number", "ie_value" : "DS-TT Port Number", "presence" : "C", "tlv_more" : "0", "comment" : "If the BII bit was set to 1 in the Create Bridge Info for TSC IE, this IE shall be present and shall contain the DS-TT Port Number assigned by the UP function."})
ies.append({ "ie_type" : "TSN Bridge ID", "ie_value" : "TSN Bridge ID", "presence" : "C", "tlv_more" : "0", "comment" : "If the BII bit was set to 1 in the Create Bridge Info for TSC IE, this IE shall be present and shall contain the TSN Bridge ID assigned by the UP function."})
group_list["Created Bridge Info for TSC"] = { "index" : "295", "type" : "195", "ies" : ies }
ies = []
ies.append({ "ie_type" : "MPTCP Parameters", "ie_value" : "MPTCP Parameters", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if the TCI flag in the MPTCP Control Information IE is set to 1 in the Request message and the UPF allocated resources for MPTCP."})
ies.append({ "ie_type" : "ATSSS-LL Parameters", "ie_value" : "ATSSS-LL Parameters", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if the LLI flag in ATSSS-LL Control Information IE is set to 1 in the Request message and the UPF allocated resources for ATSSS-LL. "})
ies.append({ "ie_type" : "PMF Parameters", "ie_value" : "PMF Parameters", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if the PMFI flag in the PFM Control Information IE is set to 1 in the Request message and the UPF allocated resources for PMF."})
group_list["ATSSS Control Parameters"] = { "index" : "321", "type" : "221", "ies" : ies }
ies = []
ies.append({ "ie_type" : "MPTCP Address Information", "ie_value" : "MPTCP Address Information", "presence" : "M", "tlv_more" : "0", "comment" : "This IE shall carry the information of allocated MPTCP address."})
ies.append({ "ie_type" : "UE Link-Specific IP Address", "ie_value" : "UE Link-Specific IP Address", "presence" : "M", "tlv_more" : "0", "comment" : "This IE shall carry the information of allocated UE link-specific IP address for MPTCP."})
group_list["MPTCP Parameters"] = { "index" : "325", "type" : "225", "ies" : ies }
ies = []
ies.append({ "ie_type" : "ATSSS-LL Information", "ie_value" : "ATSSS-LL Information", "presence" : "M", "tlv_more" : "0", "comment" : "This IE shall indicate that resources have been allocated to the ATSSS functionality."})
group_list["ATSSS-LL Parameters"] = { "index" : "326", "type" : "226", "ies" : ies }
ies = []
ies.append({ "ie_type" : "PMF Address Information", "ie_value" : "PMF Address Information", "presence" : "M", "tlv_more" : "0", "comment" : "This IE shall contain the PMF Address Information."})
group_list["PMF Parameters"] = { "index" : "327", "type" : "227", "ies" : ies }
ies = []
ies.append({ "ie_type" : "PDR ID", "ie_value" : "PDR ID", "presence" : "M", "tlv_more" : "0", "comment" : "This IE shall uniquely identify the PDR among all the PDRs configured for that PFCP session."})
ies.append({ "ie_type" : "Outer Header Removal", "ie_value" : "Outer Header Removal", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if it needs to be changed."})
ies.append({ "ie_type" : "Precedence", "ie_value" : "Precedence", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if there is a change in the PDRs precedence to be applied by the UP function among all PDRs of the PFCP session, when looking for a PDR matching an incoming packet."})
@ -179,12 +292,15 @@ ies.append({ "ie_type" : "Activate Predefined Rules", "ie_value" : "Activate Pre
ies.append({ "ie_type" : "Deactivate Predefined Rules", "ie_value" : "Deactivate Predefined Rules", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if Predefined Rule(s) needs to be deactivated for the PDR. When present this IE shall contain one Predefined Rules name.Several IEs with the same IE type may be present to represent multiple Activate Predefined Rules names."})
ies.append({ "ie_type" : "Activation Time", "ie_value" : "Activation Time", "presence" : "O", "tlv_more" : "0", "comment" : "This IE may be present if the PDR activation time shall be changed. (NOTE 2)"})
ies.append({ "ie_type" : "Deactivation Time", "ie_value" : "Deactivation Time", "presence" : "O", "tlv_more" : "0", "comment" : "This IE may be present if the PDR deactivation time shall be changed. (NOTE 2)"})
ies.append({ "ie_type" : "IP Multicast Addressing Info within PFCP Session Establishment Request", "ie_value" : "IP Multicast Addressing Info", "presence" : "O", "tlv_more" : "0", "comment" : "This IE may be present in an UL PDR controlling UL IGMP/MLD traffic (see clause5.25), if it needs to be changedWhen present, it shall contain a (range of) IP multicast address(es), and optionally source specific address(es), identifying a set of IP multicast flows. See Table7.5.2.2-4.Several IEs with the same IE type may be present to represent multiple IP multicast flows.When present, the UPF shall replace any IP multicast address(es) previously stored for this PDR by the IP multicast address(es) received in this IE."})
ies.append({ "ie_type" : "Transport Delay Reporting", "ie_value" : "Transport Delay Reporting", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if Transport Delay Reporting needs to be changed (e.g. transport delay reporting needs to be activated or deactivated). See Table7.5.2.2-6."})
group_list["Update PDR"] = { "index" : "109", "type" : "9", "ies" : ies }
ies = []
ies.append({ "ie_type" : "FAR ID", "ie_value" : "FAR ID", "presence" : "M", "tlv_more" : "0", "comment" : "This IE shall identify the FAR to be updated."})
ies.append({ "ie_type" : "Apply Action", "ie_value" : "Apply Action", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if it is changed."})
ies.append({ "ie_type" : "Update Forwarding Parameters", "ie_value" : "Update Forwarding parameters", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if it is changed.See table 7.5.4.3-2."})
ies.append({ "ie_type" : "Update Duplicating Parameters", "ie_value" : "Update Duplicating Parameters", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if it is changed. See table 7.5.4.3-3.Several IEs with the same IE type may be present to request to duplicate the packets to different destinations."})
ies.append({ "ie_type" : "Update Forwarding Parameters", "ie_value" : "Update Forwarding parameters", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if it is changed. See table7.5.4.3-2."})
ies.append({ "ie_type" : "Update Duplicating Parameters", "ie_value" : "Update Duplicating Parameters", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if it is changed. See table7.5.4.3-3.Several IEs with the same IE type may be present to request to duplicate the packets to different destinations."})
ies.append({ "ie_type" : "Redundant Transmission Forwarding Parameters", "ie_value" : "Redundant Transmission Forwarding Parameters", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if it is changed. See table7.5.2.3-4."})
ies.append({ "ie_type" : "BAR ID", "ie_value" : "BAR ID", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if the BAR ID associated to the FAR needs to be modified. "})
group_list["Update FAR"] = { "index" : "110", "type" : "10", "ies" : ies }
ies = []
@ -196,8 +312,9 @@ ies.append({ "ie_type" : "Transport Level Marking", "ie_value" : "Transport Leve
ies.append({ "ie_type" : "Forwarding Policy", "ie_value" : "Forwarding Policy", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall only be provided if it is changed. SeeNOTE1."})
ies.append({ "ie_type" : "Header Enrichment", "ie_value" : "Header Enrichment", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall only be provided if it is changed"})
ies.append({ "ie_type" : "PFCPSMReq-Flags", "ie_value" : "PFCPSMReq-Flags", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be included if at least one of the flags is set to 1.- SNDEM (Send End Marker Packets): this IE shall be present if the CP function modifies the F-TEID of the downstream node in the Outer Header Creation IE and the CP function requests the UP function to construct and send GTP-U End Marker messages towards the old F-TEID of the downstream node. "})
ies.append({ "ie_type" : "Traffic Endpoint ID", "ie_value" : "Linked Traffic Endpoint ID", "presence" : "C", "tlv_more" : "0", "comment" : "This IE may be present, if it is changed and the UP function indicated support of the PDI optimization feature, (see clause 8.2.25). When present, it shall identify the Traffic Endpoint ID allocated for this PFCP session to receive the traffic in the reverse direction (see clause 5.2.3.1)."})
ies.append({ "ie_type" : "Traffic Endpoint ID", "ie_value" : "Linked Traffic Endpoint ID", "presence" : "C", "tlv_more" : "0", "comment" : "This IE may be present, if it is changed and the UP function indicated support of the PDI optimization feature, (see clause8.2.25). When present, it shall identify the Traffic Endpoint ID allocated for this PFCP session to receive the traffic in the reverse direction (see clause5.2.3.1)."})
ies.append({ "ie_type" : "3GPP Interface Type", "ie_value" : "Destination Interface Type", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present to indicate the 3GPP interface type of the destination interface, if the value has changed."})
ies.append({ "ie_type" : "Data Network Access Identifier", "ie_value" : "Data Network Access Identifier", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be provided over N16a if it is changed. This IE shall not be sent over N4. "})
group_list["Update Forwarding Parameters"] = { "index" : "111", "type" : "11", "ies" : ies }
ies = []
ies.append({ "ie_type" : "Destination Interface", "ie_value" : "Destination Interface", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall only be provided if it is changed.When present, it shall indicate the destination interface of the outgoing packet."})
@ -234,6 +351,7 @@ ies.append({ "ie_type" : "Aggregated URRs", "ie_value" : "Aggregated URRs", "pre
ies.append({ "ie_type" : "FAR ID", "ie_value" : "FAR ID for Quota Action", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if the FAR ID for Quota Action IE needs to be modified. This IE may be present if the Volume Quota IE or the Time Quota IE or Event Quota IE is newly provisioned in the URR and the UP Function indicated support of the Quota Action.When present, it shall contain the identifier of the substitute FAR the UP function shall apply, for the traffic associated to this URR, when exhausting any of these quotas. See NOTE 1. "})
ies.append({ "ie_type" : "Ethernet Inactivity Timer", "ie_value" : "Ethernet Inactivity Timer", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if the Ethernet Inactivity Timer needs to be modified. When present, it shall contain the duration of the Ethernet inactivity period."})
ies.append({ "ie_type" : "Additional Monitoring Time", "ie_value" : "Additional Monitoring Time", "presence" : "O", "tlv_more" : "0", "comment" : "This IE shall be present if the additional Monitoring Time needs to be modified. When present, this IE shall contain the time at which the UP function shall re-apply the volume or time or event threshold/quota. See Table 7.5.2.4-3.The CP function shall provide the full set of Additional Monitoring Times IE(s). The UP function shall replace any Additional Monitoring Times IE(s) provisioned earlier by the new set of received IE(s)."})
ies.append({ "ie_type" : "Number of Reports", "ie_value" : "Number of Reports", "presence" : "O", "tlv_more" : "0", "comment" : "This IE may be present if the Number of Reports need to be changed. When present, it shall indicate the number of usage reports to be generated by the URR. See also clauses5.2.2.2.1 and 5.2.2.3.1."})
group_list["Update URR"] = { "index" : "113", "type" : "13", "ies" : ies }
ies = []
ies.append({ "ie_type" : "QER ID", "ie_value" : "QER ID", "presence" : "M", "tlv_more" : "0", "comment" : "This IE shall uniquely identify the QER among all the QRs configured for that PFCP session"})
@ -244,12 +362,13 @@ ies.append({ "ie_type" : "GBR", "ie_value" : "Guaranteed Bitrate", "presence" :
ies.append({ "ie_type" : "Packet Rate", "ie_value" : "Packet Rate", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if a Packet Rate enforcement action (in terms of number of packets per time interval) need to be modified for packets matching this PDR. "})
ies.append({ "ie_type" : "DL Flow Level Marking", "ie_value" : "DL Flow Level Marking", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be set if the DL Flow Level Marking IE needs to be modified.See NOTE 1."})
ies.append({ "ie_type" : "QFI", "ie_value" : "QoS flow identifier", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if it needs to be modified."})
ies.append({ "ie_type" : "RQI", "ie_value" : "Reflective QoS", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if it needs to be modified."})
ies.append({ "ie_type" : "RQI", "ie_value" : "Reflective QoS", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if the state of the Reflective QoS needs to be modified (activate if inactive, or deactivate the active Reflective QoS)."})
ies.append({ "ie_type" : "Paging Policy Indicator", "ie_value" : "Paging Policy Indicator", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if it needs to be modified."})
ies.append({ "ie_type" : "Averaging Window", "ie_value" : "Averaging Window", "presence" : "O", "tlv_more" : "0", "comment" : "This IE may be present if the UP function is required to modify the Averaging Window. (NOTE 2)"})
ies.append({ "ie_type" : "QER Control Indications", "ie_value" : "QER Control Indications", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be included if the CP function need to provide the updated QoS enforcement control information:- RCSR (Rate Control Status Reporting): the CP function shall set this bit 1 to request the UP function to report the rate control status when the PFCP session is released."})
group_list["Update QER"] = { "index" : "114", "type" : "14", "ies" : ies }
ies = []
ies.append({ "ie_type" : "PDR ID", "ie_value" : "PDR ID", "presence" : "M", "tlv_more" : "0", "comment" : "This IE shall identify the PDR to be deleted."})
ies.append({ "ie_type" : "PDR ID", "ie_value" : "PDR ID", "presence" : "M", "tlv_more" : "0", "comment" : "This IE shall identify the PDR to be deleted."})
group_list["Remove PDR"] = { "index" : "115", "type" : "15", "ies" : ies }
ies = []
ies.append({ "ie_type" : "FAR ID", "ie_value" : "FAR ID", "presence" : "M", "tlv_more" : "0", "comment" : "This IE shall identify the FAR to be deleted."})
@ -265,8 +384,9 @@ ies.append({ "ie_type" : "URR ID", "ie_value" : "URR ID", "presence" : "M", "tlv
group_list["Query URR"] = { "index" : "177", "type" : "77", "ies" : ies }
ies = []
ies.append({ "ie_type" : "BAR ID", "ie_value" : "BAR ID", "presence" : "M", "tlv_more" : "0", "comment" : "This IE shall identify the BAR Rule to be modified."})
ies.append({ "ie_type" : "Downlink Data Notification Delay", "ie_value" : "Downlink Data Notification Delay", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if the UP function indicated support of the Downlink Data Notification Delay parameter (see clause 8.2.28) and the Downlink Data Notification Delay needs to be modified.When present, it shall contain the delay the UP function shall apply between receiving a downlink data packet and notifying the CP function about it, when the Apply Action parameter requests to buffer the packets and notify the CP function."})
ies.append({ "ie_type" : "Suggested Buffering Packets Count", "ie_value" : "Suggested Buffering Packets Count", "presence" : "C", "tlv_more" : "0", "comment" : "This IE may be present if the UP Function indicated support of the the feature UDBC.When present, it shall contain the number of packets that are suggested to be buffered when the Apply Action parameter requests to buffer the packets. The packets that exceed the limit shall be discarded."})
ies.append({ "ie_type" : "Downlink Data Notification Delay", "ie_value" : "Downlink Data Notification Delay", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if the UP function indicated support of the Downlink Data Notification Delay parameter (see clause8.2.28) and the Downlink Data Notification Delay needs to be modified.When present, it shall contain the delay the UP function shall apply between receiving a downlink data packet and notifying the CP function about it, when the Apply Action parameter requests to buffer the packets and notify the CP function."})
ies.append({ "ie_type" : "Suggested Buffering Packets Count", "ie_value" : "Suggested Buffering Packets Count", "presence" : "C", "tlv_more" : "0", "comment" : "This IE may be present if the UP Function indicated support of the feature UDBC.When present, it shall contain the number of packets that are suggested to be buffered when the Apply Action parameter requests to buffer the packets. The packets that exceed the limit shall be discarded."})
ies.append({ "ie_type" : "MT-EDT Control Information", "ie_value" : "MT-EDT Control Information", "presence" : "O", "tlv_more" : "0", "comment" : "This IE may be included to request the SGW-U to report the sum of DL Data Packets Size."})
group_list["Update BAR Session Modification Request"] = { "index" : "186", "type" : "86", "ies" : ies }
ies = []
ies.append({ "ie_type" : "BAR ID", "ie_value" : "BAR ID", "presence" : "M", "tlv_more" : "0", "comment" : "This IE shall identify the BAR to be deleted."})
@ -281,21 +401,40 @@ ies = []
ies.append({ "ie_type" : "MAR ID", "ie_value" : "MAR ID", "presence" : "M", "tlv_more" : "0", "comment" : "This IE shall identify the MAR to be updated."})
ies.append({ "ie_type" : "Steering Functionality", "ie_value" : "Steering Functionality", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if it is changed."})
ies.append({ "ie_type" : "Steering Mode", "ie_value" : "Steering Mode", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if it is changed."})
ies.append({ "ie_type" : "Update Access Forwarding Action Information 1", "ie_value" : "Update Access Forwarding Action Information 1", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if the Access Forwarding Action Information 1 was provisioned previously and if any of IEs is to be changed.This IE shall also be present to remove Access Forwarding Action Information 1 that was provisioned previously if the UE deregisters from the corresponding access. This shall be done by including this IE with a null length."})
ies.append({ "ie_type" : "Update Access Forwarding Action Information 2", "ie_value" : "Update Access Forwarding Action Information 2", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if the Access Forwarding Action Information 2 was provisioned previously and if any of IEs is to be changed.This IE shall also be present to remove Access Forwarding Action Information 2 that was provisioned previously if the UE deregisters from the corresponding access. This shall be done by including this IE with a null length."})
ies.append({ "ie_type" : "Access Forwarding Action Information 1", "ie_value" : "Access Forwarding Action Information 1", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present to provision access specific (non-3gpp or 3gpp) forwarding action information when another access is added, i.e. when the UE is registered in both non-3GPP and 3GPP accesses.See Table 7.5.2.8-2. "})
ies.append({ "ie_type" : "Access Forwarding Action Information 2", "ie_value" : "Access Forwarding Action Information 2", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present to provision access specific (non-3gpp or 3gpp) forwarding action information when another access is added, i.e. when the UE is registered in both non-3GPP and 3GPP accesses.See Table 7.5.2.8-3. "})
ies.append({ "ie_type" : "Update 3GPP Access Forwarding Action Information", "ie_value" : "Update 3GPP Access Forwarding Action Information", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if the Access Forwarding Action Information 1 was provisioned previously and if any of IEs is to be changed.This IE shall also be present to remove Access Forwarding Action Information 1 that was provisioned previously if the UE deregisters from the corresponding access. This shall be done by including this IE with a null length."})
ies.append({ "ie_type" : "Update Non-3GPP Access Forwarding Action Information", "ie_value" : "Update Non-3GPP Access Forwarding Action Information", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if the Access Forwarding Action Information 2 was provisioned previously and if any of IEs is to be changed.This IE shall also be present to remove Access Forwarding Action Information 2 that was provisioned previously if the UE deregisters from the corresponding access. This shall be done by including this IE with a null length."})
ies.append({ "ie_type" : "3GPP Access Forwarding Action Information", "ie_value" : "3GPP Access Forwarding Action Information", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present to provision access specific (non-3gpp or 3gpp) forwarding action information when another access is added, i.e. when the UE is registered in both non-3GPP and 3GPP accesses.See Table 7.5.2.8-2. "})
ies.append({ "ie_type" : "Non-3GPP Access Forwarding Action Information", "ie_value" : "Non-3GPP Access Forwarding Action Information", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present to provision access specific (non-3gpp or 3gpp) forwarding action information when another access is added, i.e. when the UE is registered in both non-3GPP and 3GPP accesses.See Table 7.5.2.8-3. "})
group_list["Update MAR"] = { "index" : "269", "type" : "169", "ies" : ies }
ies = []
ies.append({ "ie_type" : "FAR ID", "ie_value" : "FAR ID", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if it is changed. "})
ies.append({ "ie_type" : "Weight", "ie_value" : "Weight", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if it is changed."})
ies.append({ "ie_type" : "Priority", "ie_value" : "Priority", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if it is changed."})
ies.append({ "ie_type" : "URR ID", "ie_value" : "URR ID", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if a measurement action shall be applied or no longer applied to packets for this access.When present, this IE shall contain the list of all the URR IDs to be associated to this access."})
group_list["Update Access Forwarding Action Information 1"] = { "index" : "275", "type" : "175", "ies" : ies }
group_list["Update Access Forwarding Action Information 2"] = { "index" : "276", "type" : "176", "ies" : ies }
group_list["Update 3GPP Access Forwarding Action Information"] = { "index" : "275", "type" : "175", "ies" : ies }
group_list["Update Non-3GPP Access Forwarding Action Information"] = { "index" : "276", "type" : "176", "ies" : ies }
ies = []
ies.append({ "ie_type" : "Port Management Information Container", "ie_value" : "Port Management Information Container", "presence" : "O", "tlv_more" : "0", "comment" : "When present, this IE shall contain a Port Management Information container. "})
ies.append({ "ie_type" : "Bridge Management Information Container", "ie_value" : "Bridge Management Information Container", "presence" : "O", "tlv_more" : "0", "comment" : "When present, this IE shall contain a Bridge Management Information container."})
ies.append({ "ie_type" : "NW-TT Port Number", "ie_value" : "NW-TT Port Number", "presence" : "C", "tlv_more" : "0", "comment" : "When PMIC IE is present, this IE shall contain the related NW-TT Port Number. "})
group_list["TSC Management Information IE within PFCP Session Modification Request"] = { "index" : "299", "type" : "199", "ies" : ies }
ies = []
ies.append({ "ie_type" : "SRR ID", "ie_value" : "SRR ID", "presence" : "M", "tlv_more" : "0", "comment" : "This IE shall identify the SRR to be deleted."})
group_list["Remove SRR"] = { "index" : "311", "type" : "211", "ies" : ies }
ies = []
ies.append({ "ie_type" : "SRR ID", "ie_value" : "SRR ID", "presence" : "M", "tlv_more" : "0", "comment" : "This IE shall uniquely identify the SRR among all the SRRs configured for that PFCP session"})
ies.append({ "ie_type" : "Access Availability Control Information", "ie_value" : "Access Availability Control Information", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if the Access Availability Control Information needs to be modified. See Table7.5.2.9-2.The CP function shall provide the full Access Availability Control Information IE. The UP function shall replace the Access Availability Control Information IE provisioned earlier, if any, by the new received IE."})
ies.append({ "ie_type" : "QoS Monitoring per QoS flow Control Information", "ie_value" : "QoS Monitoring per QoS flow Control Information", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if the QoS Monitoring per QoS flow Control Information needs to be modified. See Table 7.5.2.9-3.The CP function shall provide the full set of QoS Monitoring per QoS flow Control Information IE(s). The UP function shall replace any QoS Monitoring per QoS flow Control Information IE(s) provisioned earlier by the new set of received IE(s).Several IEs within the same IE type may be present to represent a list of QoS Monitoring per QoS flow Control Information for different QoS flows."})
group_list["Update SRR"] = { "index" : "313", "type" : "213", "ies" : ies }
ies = []
ies.append({ "ie_type" : "MAC Addresses Detected", "ie_value" : "MAC Addresses Detected", "presence" : "M", "tlv_more" : "0", "comment" : "This IE shall be present if one or more MAC addresses need to be associated to the PDU session.Several IEs with the same IE type may be present to provision multiple lists of MAC addresses (e.g. with different V-LAN tags)."})
group_list["Ethernet Context Information"] = { "index" : "354", "type" : "254", "ies" : ies }
ies = []
ies.append({ "ie_type" : "QER ID", "ie_value" : "QER ID", "presence" : "M", "tlv_more" : "0", "comment" : "This IE shall identify the QER being queried for its Packet Rate Status"})
group_list["Query Packet Rate Status IE within PFCP Session Modification Request"] = { "index" : "363", "type" : "263", "ies" : ies }
ies = []
ies.append({ "ie_type" : "URR ID", "ie_value" : "URR ID", "presence" : "M", "tlv_more" : "0", "comment" : "This IE shall identify the URR for which usage is reported."})
ies.append({ "ie_type" : "UR-SEQN", "ie_value" : "UR-SEQN", "presence" : "M", "tlv_more" : "0", "comment" : "This IE shall uniquely identify the Usage Report for the URR (see clause 5.2.2.3)."})
ies.append({ "ie_type" : "UR-SEQN", "ie_value" : "UR-SEQN", "presence" : "M", "tlv_more" : "0", "comment" : "This IE shall uniquely identify the Usage Report for the URR (see clause5.2.2.3)."})
ies.append({ "ie_type" : "Usage Report Trigger", "ie_value" : "Usage Report Trigger", "presence" : "M", "tlv_more" : "0", "comment" : "This IE shall identify the trigger for this report."})
ies.append({ "ie_type" : "Start Time", "ie_value" : "Start Time", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present, except if the Usage Report Trigger indicates Start of Traffic, Stop of Traffic or MAC Addresses Reporting.When present, this IE shall provide the timestamp when the collection of the information in this report was started."})
ies.append({ "ie_type" : "End Time", "ie_value" : "End Time", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present, except if the Usage Report Trigger indicates Start of Traffic, Stop of Traffic or MAC Addresses Reporting.When present, this IE shall provide the timestamp when the collection of the information in this report was generated."})
@ -304,12 +443,31 @@ ies.append({ "ie_type" : "Duration Measurement", "ie_value" : "Duration Measurem
ies.append({ "ie_type" : "Time of First Packet", "ie_value" : "Time of First Packet", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if available for this URR."})
ies.append({ "ie_type" : "Time of Last Packet", "ie_value" : "Time of Last Packet", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if available for this URR."})
ies.append({ "ie_type" : "Usage Information", "ie_value" : "Usage Information", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if the UP function reports Usage Reports before and after a Monitoring Time or before and after QoS enforcement. When present, it shall indicate whether the usage is reported for the period before or after that time, or before or after QoS enforcement."})
ies.append({ "ie_type" : "Query URR Reference", "ie_value" : "Query URR Reference", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if this usage report is sent as a result of a query URR received in an PFCP Session Modification Request and the Query URR Reference IE was present in the PFCP Session Modification Request.When present, it shall be set to the Query URR Reference value received in the PFCP Session Modification Request. "})
ies.append({ "ie_type" : "Query URR Reference", "ie_value" : "Query URR Reference", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if this usage report is sent as a result of a query URR received in a PFCP Session Modification Request and the Query URR Reference IE was present in the PFCP Session Modification Request.When present, it shall be set to the Query URR Reference value received in the PFCP Session Modification Request. "})
ies.append({ "ie_type" : "Ethernet Traffic Information", "ie_value" : "Ethernet Traffic Information", "presence" : "C", "tlv_more" : "0", "comment" : " This IE shall be present if Ethernet Traffic Information needs to be reported. "})
group_list["Usage Report Session Modification Response"] = { "index" : "178", "type" : "78", "ies" : ies }
ies = []
ies.append({ "ie_type" : "Port Management Information Container", "ie_value" : "Port Management Information Container", "presence" : "O", "tlv_more" : "0", "comment" : "When present, this IE shall contain a Port Management Information container. "})
ies.append({ "ie_type" : "Bridge Management Information Container", "ie_value" : "Bridge Management Information Container", "presence" : "O", "tlv_more" : "0", "comment" : "When present, this IE shall contain a Bridge Management Information container."})
ies.append({ "ie_type" : "NW-TT Port Number", "ie_value" : "NW-TT Port Number", "presence" : "C", "tlv_more" : "0", "comment" : "When PMIC IE is present, this IE shall contain the related NW-TT Port Number."})
group_list["TSC Management Information IE within PFCP Session Modification Response"] = { "index" : "300", "type" : "200", "ies" : ies }
ies = []
ies.append({ "ie_type" : "QER ID", "ie_value" : "QER ID", "presence" : "M", "tlv_more" : "0", "comment" : "This IE shall uniquely identify a QER in a PFCP session."})
ies.append({ "ie_type" : "Packet Rate Status", "ie_value" : "Packet Rate Status", "presence" : "M", "tlv_more" : "0", "comment" : "This IE shall indicate the remaining validity time and the remaining number of UL/DL packets that still can be sent."})
group_list["Packet Rate Status Report IE within PFCP Session Modification Response"] = { "index" : "364", "type" : "264", "ies" : ies }
ies = []
ies.append({ "ie_type" : "PDR ID", "ie_value" : "PDR ID", "presence" : "M", "tlv_more" : "0", "comment" : "This IE shall uniquely identify the PDR among all the PDRs configured for that PFCP session."})
ies.append({ "ie_type" : "F-TEID", "ie_value" : "Local F-TEID for Redundant Transmission", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present and shall contain the local F-TEID to be used for this PDR for the reception of redundant uplink packets on the N3/N9 interfaces."})
ies.append({ "ie_type" : "F-TEID", "ie_value" : "Local F-TEID", "presence" : "C", "tlv_more" : "0", "comment" : "If the UP function allocates the F-TEID, this IE shall be present and shall contain the local F-TEID to be used for this PDR."})
ies.append({ "ie_type" : "UE IP Address", "ie_value" : "UE IP Address", "presence" : "C", "tlv_more" : "0", "comment" : "If the UP function allocates additional UE IP address/prefix (upon receiving a Update PDR in the corresponding PFCP Session Modification Request message from the CP function), this IE shall be present and shall contain the complete list of UE IP address / prefix assigned by the UP function for this PFCP session.In the 5GC, several IEs with the same IE type may be present to represent multiple UE IP addresses, if the UPF indicated support of the IP6PL feature (see clause5.21)."})
group_list["Updated PDR"] = { "index" : "356", "type" : "256", "ies" : ies }
ies = []
ies.append({ "ie_type" : "QER ID", "ie_value" : "QER ID", "presence" : "M", "tlv_more" : "0", "comment" : "This IE shall uniquely identify a QER in a PFCP session."})
ies.append({ "ie_type" : "Packet Rate Status", "ie_value" : "Packet Rate Status", "presence" : "M", "tlv_more" : "0", "comment" : "This IE shall indicate the remaining validity time and the remaining number of UL/DL packets that still can be sent."})
group_list["Packet Rate Status Report"] = { "index" : "352", "type" : "252", "ies" : ies }
ies = []
ies.append({ "ie_type" : "URR ID", "ie_value" : "URR ID", "presence" : "M", "tlv_more" : "0", "comment" : "This IE shall identify the URR for which usage is reported."})
ies.append({ "ie_type" : "UR-SEQN", "ie_value" : "UR-SEQN", "presence" : "M", "tlv_more" : "0", "comment" : "This IE shall uniquely identify the Usage Report for the URR (see clause 5.2.2.3)."})
ies.append({ "ie_type" : "UR-SEQN", "ie_value" : "UR-SEQN", "presence" : "M", "tlv_more" : "0", "comment" : "This IE shall uniquely identify the Usage Report for the URR (see clause5.2.2.3)."})
ies.append({ "ie_type" : "Usage Report Trigger", "ie_value" : "Usage Report Trigger", "presence" : "M", "tlv_more" : "0", "comment" : "This IE shall identify the trigger for this report."})
ies.append({ "ie_type" : "Start Time", "ie_value" : "Start Time", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present, except if the Usage Report Trigger indicates Start of Traffic, Stop of Traffic or MAC Addresses Reporting.When present, this IE shall provide the timestamp when the collection of the information in this report was started."})
ies.append({ "ie_type" : "End Time", "ie_value" : "End Time", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present, except if the Usage Report Trigger indicates Start of Traffic, Stop of Traffic or MAC Addresses Reporting.When present, this IE shall provide the timestamp when the collection of the information in this report was generated."})
@ -321,43 +479,75 @@ ies.append({ "ie_type" : "Usage Information", "ie_value" : "Usage Information",
ies.append({ "ie_type" : "Ethernet Traffic Information", "ie_value" : "Ethernet Traffic Information", "presence" : "C", "tlv_more" : "0", "comment" : " This IE shall be present if Ethernet Traffic Information needs to be reported. See Table 7.5.8.3-3."})
group_list["Usage Report Session Deletion Response"] = { "index" : "179", "type" : "79", "ies" : ies }
ies = []
ies.append({ "ie_type" : "PDR ID", "ie_value" : "PDR ID", "presence" : "M", "tlv_more" : "0", "comment" : "This IE shall identify the PDR for which downlink data packets have been received at the UP function.More than one IE with this type may be included to represent multiple PDRs having received downlink data packets."})
ies.append({ "ie_type" : "Downlink Data Service Information", "ie_value" : "Downlink Data Service Information", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be included for an PFCP session with an IP PDN type, if the UP function supports the Paging Policy Differentiation feature (see clause 4.9 of 3GPPTS23.401[14]) and clause 5.4.3.2 of 3GPPTS23.501[28]).When present, for each PDR and for each packet that triggers a Downlink Data Notification, the UP function shall copy, into the Paging Policy Indication value within this IE, the value of the DSCP in TOS (IPv4) or TC (IPv6) information received in the IP payload of the GTP-U packet from the PGW (see IETFRFC2474[13]).For 5GC, this IE shall also be included over N4, for each PDR and for each packet that triggers a Downlink Data Notification, if the QFI of the downlink data packet is available.One IE with this type shall be included per PDR ID reported in the message. When multiple PDR ID IEs are present in the message, the Downlink Data Service Information IEs shall be reported according to the order of the PDR ID IEs."})
ies.append({ "ie_type" : "PDR ID", "ie_value" : "PDR ID", "presence" : "M", "tlv_more" : "0", "comment" : "This IE shall identify the PDR for which downlink data packets have been received or discarded at the UP function.More than one IE with this type may be included to represent multiple PDRs having received or discarded downlink data packets."})
ies.append({ "ie_type" : "Downlink Data Service Information", "ie_value" : "Downlink Data Service Information", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be included for a PFCP session with an IP PDN type, if the UP function supports the Paging Policy Differentiation feature (see clause4.9 of 3GPPTS23.401[14]) and clause5.4.3.2 of 3GPPTS23.501[28]).When present, for each PDR and for each packet that triggers a Downlink Data Notification, the UP function shall copy, into the Paging Policy Indication value within this IE, the value of the DSCP in TOS (IPv4) or TC (IPv6) information received in the IP payload of the GTP-U packet from the PGW (see IETFRFC2474[13]).For 5GC, this IE shall also be included over N4, for each PDR and for each packet that triggers a Downlink Data Notification, if the QFI of the downlink data packet is available.One IE with this type shall be included per PDR ID reported in the message. When multiple PDR ID IEs are present in the message, the Downlink Data Service Information IEs shall be reported according to the order of the PDR ID IEs."})
ies.append({ "ie_type" : "DL Data Packets Size", "ie_value" : "DL Data Packets Size", "presence" : "O", "tlv_more" : "0", "comment" : "This IE may be present if the SGW-U supports the MT-EDT feature and is requested to report the sum of the DL Data Packets Size. "})
ies.append({ "ie_type" : "Data Status", "ie_value" : "DL Data Status", "presence" : "O", "tlv_more" : "0", "comment" : "This IE may be present if the first downlink data packet has been buffered or discarded at the UP function for downlink data delivery status notification."})
group_list["Downlink Data Report"] = { "index" : "183", "type" : "83", "ies" : ies }
ies = []
ies.append({ "ie_type" : "URR ID", "ie_value" : "URR ID", "presence" : "M", "tlv_more" : "0", "comment" : "This IE shall identify the URR for which usage is reported."})
ies.append({ "ie_type" : "UR-SEQN", "ie_value" : "UR-SEQN", "presence" : "M", "tlv_more" : "0", "comment" : "This IE shall uniquely identify the Usage Report for the URR (see clause 5.2.2.3)."})
ies.append({ "ie_type" : "UR-SEQN", "ie_value" : "UR-SEQN", "presence" : "M", "tlv_more" : "0", "comment" : "This IE shall uniquely identify the Usage Report for the URR (see clause5.2.2.3)."})
ies.append({ "ie_type" : "Usage Report Trigger", "ie_value" : "Usage Report Trigger", "presence" : "M", "tlv_more" : "0", "comment" : "This IE shall identify the trigger for this report."})
ies.append({ "ie_type" : "Start Time", "ie_value" : "Start Time", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present, except if the Usage Report Trigger indicates Start of Traffic, Stop of Traffic or MAC Addresses Reporting.When present, this IE shall provide the timestamp when the collection of the information in this report was started."})
ies.append({ "ie_type" : "End Time", "ie_value" : "End Time", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present, except if the Usage Report Trigger indicates Start of Traffic, Stop of Traffic or MAC Addresses Reporting.When present, this IE shall provide the timestamp when the collection of the information in this report was generated."})
ies.append({ "ie_type" : "Volume Measurement", "ie_value" : "Volume Measurement", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if a volume measurement needs to be reported."})
ies.append({ "ie_type" : "Duration Measurement", "ie_value" : "Duration Measurement", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if a duration measurement needs to be reported."})
ies.append({ "ie_type" : "Volume Measurement", "ie_value" : "Volume Measurement", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if a volume measurement needs to be reported. (NOTE 2)"})
ies.append({ "ie_type" : "Duration Measurement", "ie_value" : "Duration Measurement", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if a duration measurement needs to be reported. (NOTE 2)"})
ies.append({ "ie_type" : "Application Detection Information", "ie_value" : "Application Detection Information", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if application detection information needs to be reported."})
ies.append({ "ie_type" : "UE IP Address", "ie_value" : "UE IP address", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if the start or stop of an application has been detected and no UE IP address was provisioned in the PDI. See NOTE 1."})
ies.append({ "ie_type" : "Network Instance", "ie_value" : "Network Instance", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if the start or stop of an application has been detected, no UE IP address was provisioned in the PDI and multiple PDNs with overlapping IP addresses are used in the UP function. See NOTE 1."})
ies.append({ "ie_type" : "Time of First Packet", "ie_value" : "Time of First Packet", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if available for this URR."})
ies.append({ "ie_type" : "Time of Last Packet", "ie_value" : "Time of Last Packet", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if available for this URR."})
ies.append({ "ie_type" : "Usage Information", "ie_value" : "Usage Information", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if the UP function reports Usage Reports before and after a Monitoring Time, or before and after QoS enforcement. When present, it shall indicate whether the usage is reported for the period before or after that time, or before or after QoS enforcement."})
ies.append({ "ie_type" : "Query URR Reference", "ie_value" : "Query URR Reference", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if this usage report is sent as a result of a query URR received in an PFCP Session Modification Request and the Query URR Reference IE was present in the PFCP Session Modification Request.When present, it shall be set to the Query URR Reference value received in the PFCP Session Modification Request. "})
ies.append({ "ie_type" : "Event Time Stamp", "ie_value" : "Event Time Stamp", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present, if the report is related to an event.When present, it shall be set to the time when the event occurs.Several IEs with the same IE type may be present to report multiple occurrences for an event for this URR ID."})
ies.append({ "ie_type" : "Query URR Reference", "ie_value" : "Query URR Reference", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if this usage report is sent as a result of a query URR received in a PFCP Session Modification Request and the Query URR Reference IE was present in the PFCP Session Modification Request.When present, it shall be set to the Query URR Reference value received in the PFCP Session Modification Request. "})
ies.append({ "ie_type" : "Time Stamp", "ie_value" : "Event Time Stamp", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present, if the report is related to an event.When present, it shall be set to the time when the event occurs.Several IEs with the same IE type may be present to report multiple occurrences for an event for this URR ID."})
ies.append({ "ie_type" : "Ethernet Traffic Information", "ie_value" : "Ethernet Traffic Information", "presence" : "C", "tlv_more" : "0", "comment" : " This IE shall be present if Ethernet Traffic Information needs to be reported. See Table 7.5.8.3-3."})
ies.append({ "ie_type" : "Join IP Multicast Information IE within Usage Report", "ie_value" : "Join IP Muticast Information", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if the UPF needs to report that it has added the PDU session to the DL replication tree of a new IP multicast flow.Several IEs with the same IE type may be present to report multiple IP multicast flows added to the PDU session."})
ies.append({ "ie_type" : "Leave IP Multicast Information IE within Usage Report", "ie_value" : "Leave IP Muticast Information", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if the UPF needs to report that it has removed the PDU session from the DL replication tree of an IP multicast flow.Several IEs with the same IE type may be present to report multiple IP multicast flows removed from the PDU session."})
group_list["Usage Report Session Report Request"] = { "index" : "180", "type" : "80", "ies" : ies }
ies = []
ies.append({ "ie_type" : "Application ID", "ie_value" : "Application ID", "presence" : "M", "tlv_more" : "0", "comment" : "This IE shall identify the Application ID for which a start or stop of traffic is reported."})
ies.append({ "ie_type" : "Application Instance ID", "ie_value" : "Application Instance ID", "presence" : "C", "tlv_more" : "0", "comment" : "When present, this IE shall identify the Application Instance Identifier for which a start or stop of traffic is reported. It shall be present, when reporting the start of an application, if the Reduced Application Detection Information flag was not set in the Measurement Information and if the flow information for the detected application is deducible. It shall be present, when reporting the stop of an application, if the Reduced Application Detection Information flag was not set in the Measurement Information and if it was provided when reporting the start of the application."})
ies.append({ "ie_type" : "Flow Information", "ie_value" : "Flow Information", "presence" : "C", "tlv_more" : "0", "comment" : "When present, this IE shall contain the flow information for the detected application. It shall be present, when reporting the start of an application, if the Reduced Application Detection Information flag was not set in the Measurement Information and if the flow information for the detected application is deducible."})
ies.append({ "ie_type" : "PDR ID", "ie_value" : "PDR ID", "presence" : "O", "tlv_more" : "0", "comment" : "When present, it shall contain the PDR ID which the application traffic matches."})
group_list["Application Detection Information"] = { "index" : "168", "type" : "68", "ies" : ies }
ies = []
ies.append({ "ie_type" : "MAC Addresses Detected", "ie_value" : "MAC Addresses Detected", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if one or more new MAC addresses have been detected.When present, it shall identify the MAC (Ethernet) addresses newly detected as source address of frames sent UL by the UE."})
ies.append({ "ie_type" : "MAC Addresses Removed", "ie_value" : "MAC Addresses Removed", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if one or more new MAC addresses have been removed.When present, it shall identify the MAC (Ethernet) addresses that have been inactive for a duration exceeding the Ethernet inactivity Timer. "})
ies.append({ "ie_type" : "MAC Addresses Detected", "ie_value" : "MAC Addresses Detected", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if one or more new MAC addresses have been detected.When present, it shall identify the MAC (Ethernet) addresses newly detected as source address of frames sent UL by the UE.Several IEs with the same IE type may be present to to provision multiple lists of MAC addresses (e.g. with different V-LAN tags)."})
ies.append({ "ie_type" : "MAC Addresses Removed", "ie_value" : "MAC Addresses Removed", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if one or more new MAC addresses have been removed.When present, it shall identify the MAC (Ethernet) addresses that have been inactive for a duration exceeding the Ethernet inactivity Timer.Several IEs with the same IE type may be present to to provision multiple lists of MAC addresses (e.g. with different V-LAN tags)."})
group_list["Ethernet Traffic Information"] = { "index" : "243", "type" : "143", "ies" : ies }
ies = []
ies.append({ "ie_type" : "IP Multicast Address", "ie_value" : "IP Multicast Address", "presence" : "M", "tlv_more" : "0", "comment" : "This IE shall contain the IP multicast address of the DL multicast flow added to the PDU session."})
ies.append({ "ie_type" : "Source IP Address", "ie_value" : "Source IP Address", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall contain the source specific IP address of the DL multicast flow added to the PDU session, if available.Several IEs with the same IE type may be present to represent multiple source specific addresses."})
group_list["Join IP Multicast Information IE within Usage Report"] = { "index" : "289", "type" : "189", "ies" : ies }
ies = []
ies.append({ "ie_type" : "IP Multicast Address", "ie_value" : "IP Multicast Address", "presence" : "M", "tlv_more" : "0", "comment" : "This IE shall contain the IP multicast address of the DL multicast flow removed from the PDU session."})
ies.append({ "ie_type" : "Source IP Address", "ie_value" : "Source IP Address", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall contain the source specific IP address of the DL multicast flow removed from the PDU session, if available.Several IEs with the same IE type may be present to represent multiple source specific addresses."})
group_list["Leave IP Multicast Information IE within Usage Report"] = { "index" : "290", "type" : "190", "ies" : ies }
ies = []
ies.append({ "ie_type" : "F-TEID", "ie_value" : "Remote F-TEID", "presence" : "M", "tlv_more" : "0", "comment" : "This IE shall identify the remote F-TEID of the GTP-U bearer for which an Error Indication has been received at the UP function.More than one IE with this type may be included to represent multiple remote F-TEID for which an Error Indication has been received."})
group_list["Error Indication Report"] = { "index" : "199", "type" : "99", "ies" : ies }
ies = []
ies.append({ "ie_type" : "Port Management Information Container", "ie_value" : "Port Management Information Container", "presence" : "O", "tlv_more" : "0", "comment" : "When present, this IE shall contain a Port Management Information container. "})
ies.append({ "ie_type" : "Bridge Management Information Container", "ie_value" : "Bridge Management Information Container", "presence" : "O", "tlv_more" : "0", "comment" : "When present, this IE shall contain a Bridge Management Information container."})
ies.append({ "ie_type" : "NW-TT Port Number", "ie_value" : "NW-TT Port Number", "presence" : "C", "tlv_more" : "0", "comment" : "When PMIC IE is present, this IE shall contain the related NW-TT Port Number."})
group_list["TSC Management Information IE within PFCP Session Report Request"] = { "index" : "301", "type" : "201", "ies" : ies }
ies = []
ies.append({ "ie_type" : "SRR ID", "ie_value" : "SRR ID", "presence" : "M", "tlv_more" : "0", "comment" : "This IE shall identify the SRR for which usage is reported."})
ies.append({ "ie_type" : "Access Availability Report", "ie_value" : "Access Availability Report", "presence" : "C", "tlv_more" : "0", "comment" : " This IE shall be present if change of access availability needs to be reported. When present, this IE shall indicate an access type and whether the access type has become available or unavailable."})
ies.append({ "ie_type" : "QoS Monitoring Report", "ie_value" : "QoS Monitoring Report", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if the Report Type indicates a QoS Monitoring Report.Several IEs within the same IE type may be present to represent a list of QoS Monitoring Reports, e.g. for different QoS flows."})
group_list["Session Report"] = { "index" : "314", "type" : "214", "ies" : ies }
ies = []
ies.append({ "ie_type" : "Access Availability Information", "ie_value" : "Access Availability Information", "presence" : "M", "tlv_more" : "0", "comment" : "This IE shall indicate an access type and whether the access type has become available or not available.Up to two IEs with the same IE type may be present to report access availability changes for 3GPP and non-3GPP accesses."})
group_list["Access Availability Report"] = { "index" : "318", "type" : "218", "ies" : ies }
ies = []
ies.append({ "ie_type" : "QFI", "ie_value" : "QFI", "presence" : "M", "tlv_more" : "0", "comment" : "This IE shall identify the QoS Flow Identifier for which QoS monitoring is reported."})
ies.append({ "ie_type" : "QoS Monitoring Measurement", "ie_value" : "QoS Monitoring Measurement", "presence" : "M", "tlv_more" : "0", "comment" : "This IE shall contain the measured packet delay(s)."})
ies.append({ "ie_type" : "Time Stamp", "ie_value" : "Time Stamp", "presence" : "M", "tlv_more" : "0", "comment" : "This IE shall provide the timestamp when the collection of the information in this report was generated."})
ies.append({ "ie_type" : "Start Time", "ie_value" : "Start Time", "presence" : "O", "tlv_more" : "0", "comment" : "When present, this IE shall provide the timestamp when the collection of the information in this report was started."})
group_list["QoS Monitoring Report"] = { "index" : "347", "type" : "247", "ies" : ies }
ies = []
ies.append({ "ie_type" : "BAR ID", "ie_value" : "BAR ID", "presence" : "M", "tlv_more" : "0", "comment" : "This IE shall identify the BAR Rule to be modified."})
ies.append({ "ie_type" : "Downlink Data Notification Delay", "ie_value" : "Downlink Data Notification Delay", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if the UP function indicated support of the Downlink Data Notification Delay parameter (see clause 8.2.25) and the Downlink Data Notification Delay needs to be modified.When present, it shall contain the delay the UP function shall apply between receiving a downlink data packet and notifying the CP function about it, when the Apply Action parameter requests to buffer the packets and notify the CP function."})
ies.append({ "ie_type" : "DL Buffering Duration", "ie_value" : "DL Buffering Duration", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if the UP function indicated support of the DL Buffering Duration parameter (see clause 8.2.25) and extended buffering of downlink data packet is required in the UP function.When present, this IE shall indicate the duration during which the UP function shall buffer the downlink data packets without sending any further notification to the CP function about the arrival of DL data packets."})
ies.append({ "ie_type" : "Downlink Data Notification Delay", "ie_value" : "Downlink Data Notification Delay", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if the UP function indicated support of the Downlink Data Notification Delay parameter (see clause8.2.25) and the Downlink Data Notification Delay needs to be modified.When present, it shall contain the delay the UP function shall apply between receiving a downlink data packet and notifying the CP function about it, when the Apply Action parameter requests to buffer the packets and notify the CP function."})
ies.append({ "ie_type" : "DL Buffering Duration", "ie_value" : "DL Buffering Duration", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if the UP function indicated support of the DL Buffering Duration parameter (see clause8.2.25) and extended buffering of downlink data packet is required in the UP function.When present, this IE shall indicate the duration during which the UP function shall buffer the downlink data packets without sending any further notification to the CP function about the arrival of DL data packets."})
ies.append({ "ie_type" : "DL Buffering Suggested Packet Count", "ie_value" : "DL Buffering Suggested Packet Count", "presence" : "O", "tlv_more" : "0", "comment" : "This IE may be present if extended buffering of downlink data packet is required in the UP function.When present, this IE shall indicate the maximum number of downlink data packets suggested to be buffered in the UP function."})
ies.append({ "ie_type" : "Suggested Buffering Packets Count", "ie_value" : "Suggested Buffering Packets Count", "presence" : "C", "tlv_more" : "0", "comment" : "This IE may be present if the UP Function indicated support of the feature UDBC.When present, it shall contain the number of packets that are suggested to be buffered when the Apply Action parameter requests to buffer the packets. The packets that exceed the limit shall be discarded."})
group_list["Update BAR PFCP Session Report Response"] = { "index" : "112", "type" : "12", "ies" : ies }

View File

@ -1,3 +1,4 @@
ies = []
ies.append({ "ie_type" : "Recovery Time Stamp", "ie_value" : "Recovery Time Stamp", "presence" : "M", "tlv_more" : "0", "comment" : "This IE shall contain the time stamp when the PFCP entity was started see clause 19A of 3GPPTS23.007[24]."})
ies.append({ "ie_type" : "Recovery Time Stamp", "ie_value" : "Recovery Time Stamp", "presence" : "M", "tlv_more" : "0", "comment" : "This IE shall contain the time stamp when the PFCP entity was started see clause19A of 3GPPTS23.007[24]."})
ies.append({ "ie_type" : "Source IP Address", "ie_value" : "Source IP Address", "presence" : "O", "tlv_more" : "0", "comment" : "This IE may be included when a Network Address Translation device is deployed in the network. See clause19a in 3GPPTS23.007[24]. "})
msg_list[key]["ies"] = ies

View File

@ -2,4 +2,7 @@ ies = []
ies.append({ "ie_type" : "Node ID", "ie_value" : "Node ID", "presence" : "M", "tlv_more" : "0", "comment" : "This IE shall contain the unique identifier of the sending Node."})
ies.append({ "ie_type" : "Node Report Type", "ie_value" : "Node Report Type", "presence" : "M", "tlv_more" : "0", "comment" : "This IE shall indicate the type of the report."})
ies.append({ "ie_type" : "User Plane Path Failure Report", "ie_value" : "User Plane Path Failure Report", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if the Node Report Type indicates a User Plane Path Failure Report."})
ies.append({ "ie_type" : "User Plane Path Recovery Report", "ie_value" : "User Plane Path Recovery Report", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if the Node Report Type indicates a User Plane Path Recovery Report."})
ies.append({ "ie_type" : "Clock Drift Report", "ie_value" : "Clock Drift Report", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if the Node Report Type indicates a Clock Drift Report.More than one IE with this type may be included to send Clock Drift Reports for different TSN Time Domain Numbers."})
ies.append({ "ie_type" : "GTP-U Path QoS Report PFCP Node Report Request", "ie_value" : "GTP-U Path QoS Report", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if the Node Report Type indicates a GTP-U Path QoS Report.More than one IE with this type may be included to represent multiple remote GTP-U peers for which QoS information is reported."})
msg_list[key]["ies"] = ies

View File

@ -1,10 +1,9 @@
ies = []
ies.append({ "ie_type" : "Node ID", "ie_value" : "Node ID", "presence" : "M", "tlv_more" : "0", "comment" : "This IE shall contain the node identity of the originating node of the message."})
ies.append({ "ie_type" : "FQ-CSID", "ie_value" : "SGW-C FQ-CSID", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be included according to the requirements in clause 23 of 3GPPTS23.007[24]."})
ies.append({ "ie_type" : "FQ-CSID", "ie_value" : "PGW-C FQ-CSID", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be included according to the requirements in clause 23 of 3GPPTS23.007[24]."})
ies.append({ "ie_type" : "FQ-CSID", "ie_value" : "SGW-U FQ-CSID", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be included according to the requirements in clause 23 of 3GPPTS23.007[24]."})
ies.append({ "ie_type" : "FQ-CSID", "ie_value" : "PGW-U FQ-CSID", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be included according to the requirements in clause 23 of 3GPPTS23.007[24]."})
ies.append({ "ie_type" : "FQ-CSID", "ie_value" : "TWAN FQ-CSID", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be included according to the requirements in clause 23 of 3GPPTS23.007[24]."})
ies.append({ "ie_type" : "FQ-CSID", "ie_value" : "ePDG FQ-CSID", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be included according to the requirements in clause 23 of 3GPPTS23.007[24]."})
ies.append({ "ie_type" : "FQ-CSID", "ie_value" : "MME FQ-CSID", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be included according to the requirements in clause 23 of 3GPPTS23.007[24]."})
ies.append({ "ie_type" : "FQ-CSID", "ie_value" : "SGW-C FQ-CSID", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be included according to the requirements in clause23 of 3GPPTS23.007[24]."})
ies.append({ "ie_type" : "FQ-CSID", "ie_value" : "PGW-C FQ-CSID", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be included according to the requirements in clause23 of 3GPPTS23.007[24]."})
ies.append({ "ie_type" : "FQ-CSID", "ie_value" : "PGW-U/SGW-U FQ-CSID", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be included according to the requirements in clause23 of 3GPPTS23.007[24]."})
ies.append({ "ie_type" : "FQ-CSID", "ie_value" : "TWAN FQ-CSID", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be included according to the requirements in clause23 of 3GPPTS23.007[24]."})
ies.append({ "ie_type" : "FQ-CSID", "ie_value" : "ePDG FQ-CSID", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be included according to the requirements in clause23 of 3GPPTS23.007[24]."})
ies.append({ "ie_type" : "FQ-CSID", "ie_value" : "MME FQ-CSID", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be included according to the requirements in clause23 of 3GPPTS23.007[24]."})
msg_list[key]["ies"] = ies

View File

@ -1,3 +1,3 @@
ies = []
ies.append({ "ie_type" : "Recovery Time Stamp", "ie_value" : "Recovery Time Stamp", "presence" : "M", "tlv_more" : "0", "comment" : "This IE shall contain the time stamp when the PFCP entity was started see clause 19A of 3GPPTS23.007[24]."})
ies.append({ "ie_type" : "Recovery Time Stamp", "ie_value" : "Recovery Time Stamp", "presence" : "M", "tlv_more" : "0", "comment" : "This IE shall contain the time stamp when the PFCP entity was started see clause19A of 3GPPTS23.007[24]."})
msg_list[key]["ies"] = ies

View File

@ -1,3 +1,4 @@
ies = []
ies.append({ "ie_type" : "Application ID's PFDs", "ie_value" : "Application ID's PFDs", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall contain an Application Identifier and the associated PFDs to be provisioned in the UP function.Several IEs with the same IE type may be present to provision PFDs for multiple Application IDs.The UP function shall delete all the PFDs received and stored earlier for all the Application IDs if this IE is absent in the message."})
ies.append({ "ie_type" : "Node ID", "ie_value" : "Node ID", "presence" : "O", "tlv_more" : "0", "comment" : "When present, this IE shall contain the unique identifier of the sending Node."})
msg_list[key]["ies"] = ies

View File

@ -1,4 +1,5 @@
ies = []
ies.append({ "ie_type" : "Cause", "ie_value" : "Cause", "presence" : "M", "tlv_more" : "0", "comment" : "This IE shall indicate the acceptance or the rejection of the corresponding request message."})
ies.append({ "ie_type" : "Offending IE", "ie_value" : "Offending IE", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be included if the rejection is due to an conditional or mandatory IE missing or faulty."})
ies.append({ "ie_type" : "Offending IE", "ie_value" : "Offending IE", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be included if the rejection is due to a conditional or mandatory IE missing or faulty."})
ies.append({ "ie_type" : "Node ID", "ie_value" : "Node ID", "presence" : "O", "tlv_more" : "0", "comment" : "When present, this IE shall contain the unique identifier of the sending Node."})
msg_list[key]["ies"] = ies

View File

@ -1,11 +1,16 @@
ies = []
ies.append({ "ie_type" : "Node ID", "ie_value" : "Node ID", "presence" : "M", "tlv_more" : "0", "comment" : "This IE shall contain the unique identifier of the sending Node."})
ies.append({ "ie_type" : "Recovery Time Stamp", "ie_value" : "Recovery Time Stamp", "presence" : "M", "tlv_more" : "0", "comment" : "This IE shall contain the time stamp when the CP or UP function was started, see clause 19A of 3GPPTS23.007[24]. (NOTE)"})
ies.append({ "ie_type" : "Recovery Time Stamp", "ie_value" : "Recovery Time Stamp", "presence" : "M", "tlv_more" : "0", "comment" : "This IE shall contain the time stamp when the CP or UP function was started, see clause19A of 3GPPTS23.007[24]. (NOTE)"})
ies.append({ "ie_type" : "UP Function Features", "ie_value" : "UP Function Features", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if the UP function sends this message and the UP function supports at least one UP feature defined in this IE.When present, this IE shall indicate the features the UP function supports."})
ies.append({ "ie_type" : "CP Function Features", "ie_value" : "CP Function Features", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if the CP function sends this message and the CP function supports at least one CP feature defined in this IE.When present, this IE shall indicate the features the CP function supports."})
type_list["User Plane IP Resource Information"]["max_tlv_more"] = "3"
ies.append({ "ie_type" : "User Plane IP Resource Information", "ie_value" : "User Plane IP Resource Information", "presence" : "O", "tlv_more" : "3", "comment" : "This IE may be present if the UP function sends this message.When present, this IE shall contain an IPv4 and/or an IPv6 address, together with a TEID range that the CP function shall use to allocate GTP-U F-TEID in the UP function.Several IEs with the same IE type may be present to represent multiple User Plane IP Resources."})
ies.append({ "ie_type" : "UE IP Address", "ie_value" : "UE IP address Pool Identity", "presence" : "O", "tlv_more" : "0", "comment" : "This IE may be present if the UP function sends this message.When present, this IE shall contain an UE IP address Pool IdentitySeveral IEs with the same IE type may be present to represent multiple UE IP address Pool Identities."})
ies.append({ "ie_type" : "Alternative SMF IP Address", "ie_value" : "Alternative SMF IP Address", "presence" : "O", "tlv_more" : "0", "comment" : "This IE may be present if the SMF advertises the support of the SSET feature in the CP Function Features IE (see clause 8.2.58).When present, this IE shall contain an IPv4 and/or IPv6 address of an alternative SMF.Several IEs with the same IE type may be present to represent multiple alternative SMF IP addresses. "})
ies.append({ "ie_type" : "SMF Set ID", "ie_value" : "SMF Set ID", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if the SMF advertises the support of the MPAS feature in the CP Function Features IE (see clause 5.22.3).When present, this IE shall contain an FQDN representing the SMF set to which the SMF belongs. "})
ies.append({ "ie_type" : "Alternative SMF IP Address", "ie_value" : "Alternative SMF IP Address", "presence" : "O", "tlv_more" : "0", "comment" : "This IE may be present if the SMF advertises the support of the SSET and/or MPAS feature in the CP Function Features IE (see clause8.2.58).When present, this IE shall contain an IPv4 and/or IPv6 address of an alternative SMF or an alternative PFCP entity in the same SMF when SSET feature is used, or an alternative PFCP entity in the same SMF when MPAS feature is used.Several IEs with the same IE type may be present to represent multiple alternative SMF IP addresses."})
ies.append({ "ie_type" : "SMF Set ID", "ie_value" : "SMF Set ID", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if the SMF advertises the support of the MPAS feature in the CP Function Features IE (see clause5.22.3).When present, this IE shall contain an FQDN representing the SMF set to which the SMF belongs. "})
ies.append({ "ie_type" : "PFCP Session Retention Information within PFCP Association Setup Request", "ie_value" : "PFCP Session Retention Information", "presence" : "O", "tlv_more" : "0", "comment" : "This IE may be present to request the UP function to keep all or part of the existing PFCP sessions upon receipt of a PFCP association setup request with a Node ID for which a PFCP association was already established. See clause6.2.6.2.1."})
ies.append({ "ie_type" : "UE IP Address", "ie_value" : "UE IP address Pool Information", "presence" : "O", "tlv_more" : "0", "comment" : "This IE may be present when the UP function sends this message, if UE IP Address Pools are configured in the UP function.Several IE with the same IE type may be present to represent multiple UE IP address Pool Information."})
ies.append({ "ie_type" : "GTP-U Path QoS Control Information", "ie_value" : "GTP-U Path QoS Control Information", "presence" : "C", "tlv_more" : "0", "comment" : "This IE may be present, if the CP function sends this message, to request the UPF to monitor the QoS on GTP-U paths (see clause5.24.5).Several IEs with the same IE type may be present to represent multiple GTP-U paths (with different parameters) to monitor. "})
ies.append({ "ie_type" : "Clock Drift Control Information", "ie_value" : "Clock Drift Control Information", "presence" : "O", "tlv_more" : "0", "comment" : "This IE may be present, if the CP function sends this message, to request the UPF to report clock drift between the TSN time and 5GS time for TSN working domains (see clause5.26.4).Several IEs with the same IE type may be present for multiple TSN Time domains (with different parameters). "})
ies.append({ "ie_type" : "NF Instance ID", "ie_value" : "UPF Instance ID", "presence" : "O", "tlv_more" : "0", "comment" : "This IE may be present if the UP function is a 5G UPF and if available, and if the message is sent by the UPF."})
ies.append({ "ie_type" : "PFCPASReq-Flags", "ie_value" : "PFCPASReq-Flags", "presence" : "O", "tlv_more" : "0", "comment" : "This IE shall be included if at least one of the flags is set to 1:- UUPSI (UPF configured for IPUPS): when the message is sent by a UPF, the UP function shall set this flag to 1 if the UPF is configured to be used for IPUPS. See clause5.27."})
msg_list[key]["ies"] = ies

View File

@ -22,4 +22,11 @@ ies.append({ "ie_type" : "User ID", "ie_value" : "User ID", "presence" : "O", "t
ies.append({ "ie_type" : "Trace Information", "ie_value" : "Trace Information", "presence" : "O", "tlv_more" : "0", "comment" : "When present, this IE shall contain the trace instructions to be applied by the UP function for this PFCP session."})
ies.append({ "ie_type" : "APN/DNN", "ie_value" : "APN/DNN", "presence" : "O", "tlv_more" : "0", "comment" : "This IE may be present, if related functionalities in the UP function require the APN/DNN information. See NOTE 2."})
ies.append({ "ie_type" : "Create MAR", "ie_value" : "Create MAR", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present for a N4 session established for a MA PDU session.Several IEs with the same IE type may be present to represent multiple MARs.See Table 7.5.2.8-1."})
ies.append({ "ie_type" : "PFCPSEReq-Flags", "ie_value" : "PFCPSEReq-Flags", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be included if at least one of the flags is set to 1.- RESTI (Restoration Indication): this bit shall be set to 1 if the CP function re-establishes an existing PFCP session and the allocation of GTP-U F-TEID and/or UE IP address is performed by the UP function. (NOTE 4)"})
ies.append({ "ie_type" : "Create Bridge Info for TSC", "ie_value" : "Create Bridge Info for TSC", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present for a PFCP session established for TSC to request the UPF to provide Bridge information for TSC. "})
ies.append({ "ie_type" : "Create SRR", "ie_value" : "Create SRR", "presence" : "O", "tlv_more" : "0", "comment" : "This IE may be present to request the UPF to detect and report events not related to specific PDRs.Several IEs within the same IE type may be present to represent multiple SRRs.See Table 7.5.2.9-1."})
ies.append({ "ie_type" : "Provide ATSSS Control Information", "ie_value" : "Provide ATSSS Control Information", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present for N4 session establishment for a MA PDU session.When present, this IE shall contain the required ATSSS functionalities for this MA PDU session.See Table 7.5.2.10-1."})
ies.append({ "ie_type" : "Recovery Time Stamp", "ie_value" : "Recovery Time Stamp", "presence" : "O", "tlv_more" : "0", "comment" : "This IE may be included to contain the time stamp when the CP function was started. (See clause19A of 3GPPTS23.007[24].)"})
ies.append({ "ie_type" : "S-NSSAI", "ie_value" : "S-NSSAI", "presence" : "O", "tlv_more" : "0", "comment" : "This IE may be present, if related functionalities in the UP function require the S-NSSAI information. (NOTE 2)When present, it shall indicate the S-NSSAI of the PDU session."})
ies.append({ "ie_type" : "Provide RDS Configuration Information", "ie_value" : "Provide RDS Configuration Information", "presence" : "O", "tlv_more" : "0", "comment" : "When present, this IE shall contain the RDS configuration information to be applied by the UP function for this PFCP session."})
msg_list[key]["ies"] = ies

View File

@ -2,13 +2,15 @@ ies = []
ies.append({ "ie_type" : "Node ID", "ie_value" : "Node ID", "presence" : "M", "tlv_more" : "0", "comment" : "This IE shall contain the unique identifier of the sending Node."})
ies.append({ "ie_type" : "Cause", "ie_value" : "Cause", "presence" : "M", "tlv_more" : "0", "comment" : "This IE shall indicate the acceptance or the rejection of the corresponding request message."})
ies.append({ "ie_type" : "Offending IE", "ie_value" : "Offending IE", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be included if the rejection is due to a conditional or mandatory IE missing or faulty."})
ies.append({ "ie_type" : "F-SEID", "ie_value" : "UP F-SEID", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if the cause is set to Request accepted (success). When present, it shall contain the unique identifier allocated by the UP function identifing the session."})
ies.append({ "ie_type" : "F-SEID", "ie_value" : "UP F-SEID", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if the cause is set to Request accepted (success). When present, it shall contain the unique identifier allocated by the UP function identifying the session."})
type_list["Created PDR"]["max_tlv_more"] = "7"
ies.append({ "ie_type" : "Created PDR", "ie_value" : "Created PDR", "presence" : "C", "tlv_more" : "7", "comment" : "This IE shall be present if the cause is set to success and the UP function was requested to allocate a local F-TEID or a UE IP address/prefix for the PDR.When present, this IE shall contain the PDR information associated to the PFCP session. There may be several instances of this IE.See table 7.5.3.2-1."})
ies.append({ "ie_type" : "Load Control Information", "ie_value" : "Load Control Information", "presence" : "O", "tlv_more" : "0", "comment" : "The UP function may include this IE if it supports the load control feature and the feature is activated in the network.See Table 7.5.3.3-1."})
ies.append({ "ie_type" : "Overload Control Information", "ie_value" : "Overload Control Information", "presence" : "O", "tlv_more" : "0", "comment" : "During an overload condition, the UP function may include this IE if it supports the overload control feature and the feature is activated in the network.See Table 7.5.3.4-1."})
ies.append({ "ie_type" : "FQ-CSID", "ie_value" : "SGW-U FQ-CSID", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be included according to the requirements in clause 23 of 3GPPTS23.007[24]."})
ies.append({ "ie_type" : "FQ-CSID", "ie_value" : "PGW-U FQ-CSID", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be included according to the requirements in clause 23 of 3GPPTS23.007[24]."})
ies.append({ "ie_type" : "FQ-CSID", "ie_value" : "PGW-U/SGW-U FQ-CSID", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be included according to the requirements in clause23 of 3GPPTS23.007[24]."})
ies.append({ "ie_type" : "Failed Rule ID", "ie_value" : "Failed Rule ID", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be included if the Cause IE indicates a rejection due to a rule creation or modification failure. "})
ies.append({ "ie_type" : "Created Traffic Endpoint", "ie_value" : "Created Traffic Endpoint", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if the cause is set to success and the UP function was requested to allocate a local F-TEID or a UE IP address/prefix in a Create Traffic Endpoint IE. When present, it shall contain the local F-TEID or UE IP address/prefix to be used for this Traffic Endpoint.There may be several instances of this IE."})
ies.append({ "ie_type" : "Created Bridge Info for TSC", "ie_value" : "Created Bridge Info for TSC", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if the UPF was requested to provide Bridge information for TSC in the PFCP Session Establishment Request. When present, it shall contain the Bridge information for TSC for the PFCP session.See Table 7.5.3.6-1."})
ies.append({ "ie_type" : "ATSSS Control Parameters", "ie_value" : "ATSSS Control Parameters", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if ATSSS functionality is required in the request message and the UPF allocates the resources and parameters corresponding to the required ATSSS functionality.See Table 7.5.3.7-1."})
ies.append({ "ie_type" : "RDS Configuration Information", "ie_value" : "RDS Configuration Information", "presence" : "O", "tlv_more" : "0", "comment" : "When present, this IE shall contain the RDS configuration information the UP function supported for this PFCP session."})
msg_list[key]["ies"] = ies

View File

@ -11,7 +11,7 @@ ies.append({ "ie_type" : "Remove QER", "ie_value" : "Remove QER", "presence" : "
ies.append({ "ie_type" : "Remove BAR", "ie_value" : "Remove BAR", "presence" : "C", "tlv_more" : "0", "comment" : "When present, this IE shall contain the BAR Rule which is requested to be removed. See Table 7.5.4.12-1."})
ies.append({ "ie_type" : "Remove Traffic Endpoint", "ie_value" : "Remove Traffic Endpoint", "presence" : "C", "tlv_more" : "0", "comment" : "When present, this IE shall contain the Traffic Endpoint ID identifying the traffic endpoint to be removed, if the UP function has indicated support of PDI optimization.All the PDRs that refer to the removed Traffic Endpoint shall be deleted.See Table 7.5.4.14-1."})
ies.append({ "ie_type" : "Create PDR", "ie_value" : "Create PDR", "presence" : "C", "tlv_more" : "7", "comment" : "This IE shall be present if the CP function requests the UP function to create a new PDR.See Table 7.5.2.2-1.Several IEs within the same IE type may be present to represent a list of PDRs to create."})
ies.append({ "ie_type" : "Create FAR", "ie_value" : "Create FAR", "presence" : "C", "tlv_more" : "7", "comment" : "This IE shall be present if the CP function requests the UP function to create a new FAR.See Table 7.5.2.3-1.Several IEs within the same IE type may be present to represent a list of FARs to create."})
ies.append({ "ie_type" : "Create FAR", "ie_value" : "Create FAR", "presence" : "C", "tlv_more" : "7", "comment" : "This IE shall be present if the CP function requests the UP function to create a new FAR. See Table 7.5.2.3-1.Several IEs within the same IE type may be present to represent a list of FARs to create."})
ies.append({ "ie_type" : "Create URR", "ie_value" : "Create URR", "presence" : "C", "tlv_more" : "1", "comment" : "This IE shall be present if the CP function requests the UP function to create a new URR. See Table 7.5.2.4-1.Several IEs within the same IE type may be present to represent a list of URRs to create."})
ies.append({ "ie_type" : "Create QER", "ie_value" : "Create QER", "presence" : "C", "tlv_more" : "3", "comment" : "This IE shall be present if the CP function requests the UP function to create a new QER. See Table 7.5.2.5-1.Several IEs within the same IE type may be present to represent a list of QERs to create."})
ies.append({ "ie_type" : "Create BAR", "ie_value" : "Create BAR", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if the CP function requests the UP function to create a new BAR.See Table 7.5.2.6-1."})
@ -28,16 +28,25 @@ ies.append({ "ie_type" : "Update BAR Session Modification Request", "ie_value" :
ies.append({ "ie_type" : "Update Traffic Endpoint", "ie_value" : "Update Traffic Endpoint", "presence" : "C", "tlv_more" : "0", "comment" : "When present this IE shall contain the information associated with the traffic endpoint to be updated, if the UP function has indicated support of PDI optimization.All the PDRs that refer to the Traffic Endpoint shall use the updated Traffic Endpoint information.See Table 7.5.4.13-1."})
ies.append({ "ie_type" : "PFCPSMReq-Flags", "ie_value" : "PFCPSMReq-Flags", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be included if at least one of the flags is set to 1.- DROBU (Drop Buffered Packets): the CP function shall set this flag if the UP function is requested to drop the packets currently buffered for this PFCP session (see NOTE 1).- QAURR (Query All URRs): the CP function shall set this flag if the CP function requests immediate usage report(s) for all the URRs previously provisioned for this PFCP session (see NOTE 3). "})
ies.append({ "ie_type" : "Query URR", "ie_value" : "Query URR", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if the CP function requests immediate usage report(s) to the UP function.Several IEs within the same IE type may be present to represent a list of URRs for which an immediate report is requested.See Table 7.5.4.10-1.See NOTE 3."})
ies.append({ "ie_type" : "FQ-CSID", "ie_value" : "PGW-C FQ-CSID", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be included according to the requirements in clause 23 of 3GPPTS23.007[24]."})
ies.append({ "ie_type" : "FQ-CSID", "ie_value" : "SGW-C FQ-CSID", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be included according to the requirements in clause 23 of 3GPPTS23.007[24]."})
ies.append({ "ie_type" : "FQ-CSID", "ie_value" : "MME FQ-CSID", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be included according to the requirements in clause 23 of 3GPPTS23.007[24]."})
ies.append({ "ie_type" : "FQ-CSID", "ie_value" : "ePDG FQ-CSID", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be included according to the requirements in clause 23 of 3GPPTS23.007[24]."})
ies.append({ "ie_type" : "FQ-CSID", "ie_value" : "TWAN FQ-CSID", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be included according to the requirements in clause 23 of 3GPPTS23.007[24]."})
ies.append({ "ie_type" : "FQ-CSID", "ie_value" : "PGW-C FQ-CSID", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be included according to the requirements in clause23 of 3GPPTS23.007[24]."})
ies.append({ "ie_type" : "FQ-CSID", "ie_value" : "SGW-C FQ-CSID", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be included according to the requirements in clause23 of 3GPPTS23.007[24]."})
ies.append({ "ie_type" : "FQ-CSID", "ie_value" : "MME FQ-CSID", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be included according to the requirements in clause23 of 3GPPTS23.007[24]."})
ies.append({ "ie_type" : "FQ-CSID", "ie_value" : "ePDG FQ-CSID", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be included according to the requirements in clause23 of 3GPPTS23.007[24]."})
ies.append({ "ie_type" : "FQ-CSID", "ie_value" : "TWAN FQ-CSID", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be included according to the requirements in clause23 of 3GPPTS23.007[24]."})
ies.append({ "ie_type" : "User Plane Inactivity Timer", "ie_value" : "User Plane Inactivity Timer", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if it needs to be changed."})
ies.append({ "ie_type" : "Query URR Reference", "ie_value" : "Query URR Reference", "presence" : "O", "tlv_more" : "0", "comment" : "This IE may be present if the Query URR IE is present or the QAURR flag is set to 1. When present, it shall contain a reference identifying the query request, which the UP function shall return in any usage report sent in response to the query."})
ies.append({ "ie_type" : "Trace Information", "ie_value" : "Trace Information", "presence" : "O", "tlv_more" : "0", "comment" : "When present, this IE shall contain the trace instructions to be applied by the UP function for this PFCP session.A Trace Information with a null length indicates that the trace session shall be deactivated. "})
ies.append({ "ie_type" : "Remove MAR", "ie_value" : "Remove MAR", "presence" : "C", "tlv_more" : "0", "comment" : "When present, this IE shall contain the MAR Rule which is requested to be removed. See Table 7.5.4.15-1.Several IEs within the same IE type may be present to represent a list of MARs to remove."})
ies.append({ "ie_type" : "Update MAR", "ie_value" : "Update MAR", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if a MAR previously created for the PFCP session needs to be modified. See Table 7.5.4.16-1.Several IEs within the same IE type may be present to represent a list of MARs to update."})
ies.append({ "ie_type" : "Create MAR", "ie_value" : "Create MAR", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if the CP function requests the UP function to create a new MAR for a new PDR. See Table 7.5.2.8-1.Several IEs within the same IE type may be present to represent a list of MARs to create."})
ies.append({ "ie_type" : "Node ID", "ie_value" : "Node ID", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if a new SMF in an SMF Set, with one PFCP association per SMF and UPF (see clause 5.22.3), takes over the control of the PFCP session.When present, it shall contain the unique identifier of the new SMF."})
ies.append({ "ie_type" : "Node ID", "ie_value" : "Node ID", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if a new SMF in an SMF Set, with one PFCP association per SMF and UPF (see clause5.22.3), takes over the control of the PFCP session.When present, it shall contain the unique identifier of the new SMF."})
ies.append({ "ie_type" : "TSC Management Information IE within PFCP Session Modification Request", "ie_value" : "TSC Management Information", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if the SMF needs to send TSC Management information to the UPF.Several IEs within the same IE type may be present to transfer PMICs for different NW-TT ports."})
ies.append({ "ie_type" : "Remove SRR", "ie_value" : "Remove SRR", "presence" : "C", "tlv_more" : "0", "comment" : "When present, this shall indicate the SRR Rule which is requested to be removed. See Table 7.5.4-19-1.Several IEs within the same IE type may be present to represent a list of SRRs to remove."})
ies.append({ "ie_type" : "Create SRR", "ie_value" : "Create SRR", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if the CP function requests the UP function to create a new SRR. See Table 7.5.2.9-1.Several IEs within the same IE type may be present to represent a list of SRRs to create."})
ies.append({ "ie_type" : "Update SRR", "ie_value" : "Update SRR", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if SRR(s) previously created for the PFCP session need to be modified.Several IEs within the same IE type may be present to represent a list of modified SRRs. Previously SRRs that are not modified shall not be included. SeeTable 7.5.4.20-1."})
ies.append({ "ie_type" : "Provide ATSSS Control Information", "ie_value" : "Provide ATSSS Control Information", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present for PFCP session modification for a MA PDU session, if the ATSSS Control Information changes.When present, this IE shall contain the required ATSSS functionalities for this MA PDU session.The UPF shall replace any value received previously by the new information received in this IE. See Note 4.See Table 7.5.2.10-1."})
ies.append({ "ie_type" : "Ethernet Context Information", "ie_value" : "Ethernet Context Information", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present to update the list of MAC addresses associated to the PDU session during an Ethernet PDU session anchor relocation. "})
ies.append({ "ie_type" : "Access Availability Information", "ie_value" : "Access Availability Information", "presence" : "O", "tlv_more" : "0", "comment" : "This IE may be present for a MA PDU session to signal that an access type has become transiently unavailable or has become available again (see clause5.20.5).Two IEs with the same IE type may be present to report changes of access availability for both 3GPP and non-3GPP accesses."})
ies.append({ "ie_type" : "Query Packet Rate Status IE within PFCP Session Modification Request", "ie_value" : "Query Packet Rate Status", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if the CP function requests immediate packet rate status report(s) to the UP function.Several IEs within the same IE type may be present to represent a list of QERs for which an immediate packet rate status report is requested.See Table 7.5.4.22-1."})
ies.append({ "ie_type" : "S-NSSAI", "ie_value" : "S-NSSAI", "presence" : "O", "tlv_more" : "0", "comment" : "This IE may be present to indicate the S-NSSAI of the PDU session, if the S-NSSAI of the PDU Session has been provided previously to the UP function and the S-NSSAI has changed. (NOTE5)"})
msg_list[key]["ies"] = ies

View File

@ -1,12 +1,16 @@
ies = []
ies.append({ "ie_type" : "Cause", "ie_value" : "Cause", "presence" : "M", "tlv_more" : "0", "comment" : "This IE shall indicate the acceptance or the rejection of the corresponding request message."})
ies.append({ "ie_type" : "Offending IE", "ie_value" : "Offending IE", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be included if the rejection is due to a conditional or mandatory IE missing or faulty."})
ies.append({ "ie_type" : "Created PDR", "ie_value" : "Created PDR", "presence" : "C", "tlv_more" : "7", "comment" : "This IE shall be present if the cause is set to success, new PDR(s) were requested to be created and the UP function was requested to allocate the local F-TEID for the PDR(s).When present, this IE shall contain the PDR information associated to the PFCP session.See Table 7.5.3.2-1."})
ies.append({ "ie_type" : "Created PDR", "ie_value" : "Created PDR", "presence" : "C", "tlv_more" : "7", "comment" : "This IE shall be present if the cause is set to success, new PDR(s) were requested to be created and the UP function was requested to allocate the local F-TEID or a UE IP address/prefix for the PDR(s).When present, this IE shall contain the PDR information associated to the PFCP session.See Table 7.5.3.2-1."})
ies.append({ "ie_type" : "Load Control Information", "ie_value" : "Load Control Information", "presence" : "O", "tlv_more" : "0", "comment" : "The UP function may include this IE if it supports the load control feature and the feature is activated in the network.See Table 7.5.3.3-1."})
ies.append({ "ie_type" : "Overload Control Information", "ie_value" : "Overload Control Information", "presence" : "O", "tlv_more" : "0", "comment" : "During an overload condition, the UP function may include this IE if it supports the overload control feature and the feature is activated in the network."})
type_list["Usage Report Session Modification Response"]["max_tlv_more"] = "7"
ies.append({ "ie_type" : "Usage Report Session Modification Response", "ie_value" : "Usage Report", "presence" : "C", "tlv_more" : "7", "comment" : "This IE shall be present if: - the Query URR IE was present or the QAURR flag was set to 1 in the PFCP Session Modification Request, - traffic usage measurements for that URR are available at the UP function, and - the UP function decides to return some or all of the requested usage reports in the PFCP Session Modification Response.This IE shall be also present if: - a URR or the last PDR associated to a URR has been removed, - non-null traffic usage measurements for that URR are available in the UP function, and - the UP function decides to return some or all of the related usage reports in the PFCP Session Modification Response (see clause 5.2.2.3.1).Several IEs within the same IE type may be present to represent a list of Usage Reports."})
ies.append({ "ie_type" : "Usage Report Session Modification Response", "ie_value" : "Usage Report", "presence" : "C", "tlv_more" : "7", "comment" : "This IE shall be present if: - the Query URR IE was present or the QAURR flag was set to 1 in the PFCP Session Modification Request, - traffic usage measurements for that URR are available at the UP function, and - the UP function decides to return some or all of the requested usage reports in the PFCP Session Modification Response.This IE shall be also present if: - a URR or the last PDR associated to a URR has been removed, - non-null traffic usage measurements for that URR are available in the UP function, and - the UP function decides to return some or all of the related usage reports in the PFCP Session Modification Response (see clause5.2.2.3.1).Several IEs within the same IE type may be present to represent a list of Usage Reports."})
ies.append({ "ie_type" : "Failed Rule ID", "ie_value" : "Failed Rule ID", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be included if the Cause IE indicates a rejection due to a rule creation or modification failure."})
ies.append({ "ie_type" : "Additional Usage Reports Information", "ie_value" : "Additional Usage Reports Information", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be included if the Query URR IE was present or the QAURR flag was set to 1 in the PFCP Session Modification Request, and usage reports need to be sent in additional PFCP Session Report Request messages (see clause 5.2.2.3.1).When present, this IE shall either indicate that additional usage reports will follow, or indicate the total number of usage reports that need to be sent in PFCP Session Report Request messages. "})
ies.append({ "ie_type" : "Created Traffic Endpoint", "ie_value" : "Created/Updated Traffic Endpoint", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if the cause is set to success, Traffic Endpoint(s) were requested to be created or updated, and the UP function was requested to allocate the local F-TEID for the Traffic Endpoint(s).When present, this IE shall contain the Traffic Endpoint information associated to the PFCP session.See Table 7.5.3.5-1."})
ies.append({ "ie_type" : "Additional Usage Reports Information", "ie_value" : "Additional Usage Reports Information", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be included if the Query URR IE was present or the QAURR flag was set to 1 in the PFCP Session Modification Request, and usage reports need to be sent in additional PFCP Session Report Request messages (see clause5.2.2.3.1).When present, this IE shall either indicate that additional usage reports will follow, or indicate the total number of usage reports that need to be sent in PFCP Session Report Request messages."})
ies.append({ "ie_type" : "Created Traffic Endpoint", "ie_value" : "Created/Updated Traffic Endpoint", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if the cause is set to success, Traffic Endpoint(s) were requested to be created or updated, and the UP function was requested to allocate the local F-TEID or a UE IP address/prefix for the Traffic Endpoint(s).If the UP function allocates additional UE IP address/prefix (upon receiving a Create Traffic Endpoint or Update Traffic Endpoint in the corresponding PFCP Session Modification Request message from the CP function), this IE shall be present and shall contain the complete list of UE IP address / prefix assigned by the UP function for this PFCP session.In the 5GC, several IEs with the same IE type may be present to represent multiple UE IP addresses, if the UPF indicated support of the IP6PL feature (see clause5.21).(NOTE 1)When present, this IE shall contain the Traffic Endpoint information associated to the PFCP session.See Table7.5.3.5-1."})
ies.append({ "ie_type" : "TSC Management Information IE within PFCP Session Modification Response", "ie_value" : "TSC Management Information", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if the UPF needs to send TSC Management information to the SMF.Several IEs within the same IE type may be present to transfer PMICs for different NW-TT ports."})
ies.append({ "ie_type" : "ATSSS Control Parameters", "ie_value" : "ATSSS Control Parameters", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if ATSSS functionality is required in the request message, and the UPF allocates the resources and parameters corresponding to the required ATSSS functionality.See Table7.5.3.7-1."})
ies.append({ "ie_type" : "Updated PDR", "ie_value" : "Updated PDR", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if a Update PDR is present in the corresponding PFCP Session Modification Request and UP function is requested to allocate a new F-TEID, e.g. to support the redundant transmission on N3/N9 interfaces, or move the application traffic from a default bearer to a new dedicated bearer, or the UP function is requested to assign additional UE IP Address or Prefix, e.g. a shorter than /64 prefix delegation. See Table7.5.5.5-1.Several IEs within the same IE type may be present to represent a list of PDRs to update."})
ies.append({ "ie_type" : "Packet Rate Status Report IE within PFCP Session Modification Response", "ie_value" : "Packet Rate Status Report", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if the CP function has requested to report an immediate packet rate status in the PFCP Session Modification Request and the UP function supports the CIOT feature (see clause8.2.25).Several IEs within the same IE type may be present to represent a list of Packet Rate Status Reports."})
msg_list[key]["ies"] = ies

View File

@ -1,8 +1,11 @@
ies = []
ies.append({ "ie_type" : "Cause", "ie_value" : "Cause", "presence" : "M", "tlv_more" : "0", "comment" : "This IE shall indicate the acceptance or the rejection of the corresponding request message."})
ies.append({ "ie_type" : "Offending IE", "ie_value" : "Offending IE", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be included if the rejection is due to an conditional or mandatory IE missing or faulty."})
ies.append({ "ie_type" : "Offending IE", "ie_value" : "Offending IE", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be included if the rejection is due to a conditional or mandatory IE missing or faulty."})
ies.append({ "ie_type" : "Load Control Information", "ie_value" : "Load Control Information", "presence" : "O", "tlv_more" : "0", "comment" : "The UP function may include this IE if it supports the load control feature and the feature is activated in the network.See Table 7.5.3.3-1."})
ies.append({ "ie_type" : "Overload Control Information", "ie_value" : "Overload Control Information", "presence" : "O", "tlv_more" : "0", "comment" : "During an overload condition, the UP function may include this IE if it supports the overload control feature and the feature is activated in the network.See Table 7.5.3.4-1."})
type_list["Usage Report Session Deletion Response"]["max_tlv_more"] = "7"
ies.append({ "ie_type" : "Usage Report Session Deletion Response", "ie_value" : "Usage Report", "presence" : "C", "tlv_more" : "7", "comment" : "This IE shall be present if a URR had been provisioned in the UP function for the PFCP session being deleted and traffic usage measurements for that URR are available at the UP function.Several IEs within the same IE type may be present to represent a list of Usage Reports."})
ies.append({ "ie_type" : "Additional Usage Reports Information", "ie_value" : "Additional Usage Reports Information", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be included if the usage reports need to be sent in additional PFCP Session Report Request messages (see clause5.2.2.3.1).When present, this IE shall either indicate that additional usage reports will follow, or indicate the total number of usage reports that need to be sent in PFCP Session Report Request messages."})
ies.append({ "ie_type" : "Packet Rate Status Report", "ie_value" : "Packet Rate Status Report", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if the CP function has requested in a QER to report the packet rate status when the PFCP session is released and the UP function supports CIOT feature. (See clause8.2.25) "})
ies.append({ "ie_type" : "Session Report", "ie_value" : "Session Report", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if a SRR for QoS monitoring had been provisioned in the UP function for the PFCP session being deleted and QoS monitoring measurements for that SRR are available at the UP function. See Table7.5.8.7-1.Several IEs within the same IE type may be present to represent a list of Session Reports."})
msg_list[key]["ies"] = ies

View File

@ -4,9 +4,12 @@ ies.append({ "ie_type" : "Downlink Data Report", "ie_value" : "Downlink Data Rep
type_list["Usage Report Session Report Request"]["max_tlv_more"] = "7"
ies.append({ "ie_type" : "Usage Report Session Report Request", "ie_value" : "Usage Report", "presence" : "C", "tlv_more" : "7", "comment" : "This IE shall be present if the Report Type indicates a Usage Report.Several IEs within the same IE type may be present to represent a list of Usage Reports."})
ies.append({ "ie_type" : "Error Indication Report", "ie_value" : "Error Indication Report", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if the Report Type indicates an Error Indication Report. "})
ies.append({ "ie_type" : "Load Control Information", "ie_value" : "Load Control Information", "presence" : "O", "tlv_more" : "0", "comment" : "The UP function may include this IE if it supports the load control feature and the feature is activated in the network.See Table 7.5.3.3-1."})
ies.append({ "ie_type" : "Overload Control Information", "ie_value" : "Overload Control Information", "presence" : "O", "tlv_more" : "0", "comment" : "During an overload condition, the UP function may include this IE if it supports the overload control feature and the feature is activated in the network.See Table 7.5.3.4-1."})
ies.append({ "ie_type" : "Additional Usage Reports Information", "ie_value" : "Additional Usage Reports Information", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be included in one additional PFCP Session Report Request message, if the PFCP Session Modification Response indicated that more reports would follow (i.e. if the AURI flag was set to 1) (see clause 5.2.2.3.1).When present, this IE shall indicate the total number of usage reports that need to be sent in PFCP Session Report Request messages. "})
ies.append({ "ie_type" : "PFCPSRReq-Flags", "ie_value" : "PFCPSRReq-Flags", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be included if at least one of the flags is set to 1.- PSDBU (PFCP Session Deleted By the UP function): if both the CP function and UP function support the EPFAR feature, the UP function may set this flag if the UP function needs to delete the PFCP session, e.g. to report all remaining non-zero usage reports for all URRs in the PFCP Session and the PFCP session is being deleted locally in the UP function."})
ies.append({ "ie_type" : "F-SEID", "ie_value" : "Old CP F-SEID", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if the UPF sends the PFCP Session Report Request to a different SMF in an SMF Set. See clauses 5.22.2 and 5.22.3.When present, it shall indicate the CP F-SEID assigned by the previous SMF to the PFCP session. "})
ies.append({ "ie_type" : "Load Control Information", "ie_value" : "Load Control Information", "presence" : "O", "tlv_more" : "0", "comment" : "The UP function may include this IE if it supports the load control feature and the feature is activated in the network.See Table7.5.3.3-1."})
ies.append({ "ie_type" : "Overload Control Information", "ie_value" : "Overload Control Information", "presence" : "O", "tlv_more" : "0", "comment" : "During an overload condition, the UP function may include this IE if it supports the overload control feature and the feature is activated in the network.See Table7.5.3.4-1."})
ies.append({ "ie_type" : "Additional Usage Reports Information", "ie_value" : "Additional Usage Reports Information", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be included in one of the additional PFCP Session Report Request messages, if the PFCP Session Modification Response or the PFCP Session Deletion Response indicated that more usage reports would follow (i.e. if the AURI flag was set to 1) (see clause5.2.2.3.1).When present, this IE shall indicate the total number of usage reports that need to be sent in all the additional PFCP Session Report Request messages.This IE may also be included in every additional PFCP Session Report Request message but the last one, with the AURI flag set to 1, to indicate that more usage reports will follow in additional PFCP Session Report Request message."})
ies.append({ "ie_type" : "PFCPSRReq-Flags", "ie_value" : "PFCPSRReq-Flags", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be included if at least one of the flags is set to 1.- PSDBU (PFCP Session Deleted By the UP function): if both the CP function and UP function support the EPFAR feature, the UP function may set this flag if the UP function needs to delete the PFCP session, e.g. to report all remaining non-zero usage reports for all URRs in the PFCP Session and the PFCP session is being deleted locally in the UP function.- the UP function shall also set this flag when sending the last PFCP Session Report Request message after having received a PFCP Session Deletion Request (see clause5.2.2.3.1)."})
ies.append({ "ie_type" : "F-SEID", "ie_value" : "Old CP F-SEID", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if the UPF sends the PFCP Session Report Request to a different SMF in an SMF Set. See clauses5.22.2 and 5.22.3.When present, it shall indicate the CP F-SEID assigned by the previous SMF to the PFCP session. "})
ies.append({ "ie_type" : "Packet Rate Status Report", "ie_value" : "Packet Rate Status Report", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if the EPFAR is used (see clause5.18), UP function initiates a PFCP Session release and the CP function has requested in a QER to report the packet rate status when the PFCP session is released.See Table7.5.7.1-1."})
ies.append({ "ie_type" : "TSC Management Information IE within PFCP Session Report Request", "ie_value" : "TSC Management Information", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if the Report Type indicates TSC Management Information Report.Several IEs within the same IE type may be present to transfer PMICs for different NW-TT ports."})
ies.append({ "ie_type" : "Session Report", "ie_value" : "Session Report", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if the Report Type indicates a Session Report. See Table7.5.8.6-1.Several IEs within the same IE type may be present to represent a list of Session Reports."})
msg_list[key]["ies"] = ies

View File

@ -3,7 +3,7 @@ ies.append({ "ie_type" : "Cause", "ie_value" : "Cause", "presence" : "M", "tlv_m
ies.append({ "ie_type" : "Offending IE", "ie_value" : "Offending IE", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be included if the rejection is due to a conditional or mandatory IE missing or faulty."})
ies.append({ "ie_type" : "Update BAR PFCP Session Report Response", "ie_value" : "Update BAR", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if a BAR previously created for the PFCP session needs to be modified.A previously created BAR that is not modified shall not be included.See Table 7.5.9.2-1."})
ies.append({ "ie_type" : "PFCPSRRsp-Flags", "ie_value" : "PFCPSRRsp-Flags", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be included if at least one of the flags is set to 1.- DROBU (Drop Buffered Packets): the CP function shall set this flag if the UP function needs to drop the packets currently buffered for this PFCP session (see NOTE 1)."})
ies.append({ "ie_type" : "F-SEID", "ie_value" : "CP F-SEID", "presence" : "O", "tlv_more" : "0", "comment" : "This IE may be set by the SMF if the UPF indicated support of PFCP sessions successively controlled by different SMFs of a same SMF Set and the Cause IE indicates Request accepted (success)(see clause 5.22).When present, it shall be set to the new F-SEID that the UPF shall use for sending subsequent PFCP session related messages."})
ies.append({ "ie_type" : "F-SEID", "ie_value" : "CP F-SEID", "presence" : "O", "tlv_more" : "0", "comment" : "This IE may be set by the SMF if the UPF indicated support of PFCP sessions successively controlled by different SMFs of a same SMF Set and the Cause IE indicates Request accepted (success)(see clause5.22).When present, it shall be set to the new F-SEID that the UPF shall use for sending subsequent PFCP session related messages."})
ies.append({ "ie_type" : "F-TEID", "ie_value" : "N4-u F-TEID", "presence" : "O", "tlv_more" : "0", "comment" : "This IE may be set by the SMF if the UPF indicated support of PFCP sessions successively controlled by different SMFs of a same SMF Set and the Cause IE indicates Request accepted (success).When present, it shall be set to the new N4-u F-TEID that the UPF shall use for data forwarding towards the SMF. "})
ies.append({ "ie_type" : "Alternative SMF IP Address", "ie_value" : "Alternative SMF IP Address", "presence" : "O", "tlv_more" : "0", "comment" : "This IE may be set by the SMF if the UPF indicated support of PFCP sessions successively controlled by different SMFs of a same SMF Set and the Cause IE indicates Redirection Requested (see clause 5.22).When present, it shall be set to the IP address of the new SMF to contact. "})
ies.append({ "ie_type" : "Alternative SMF IP Address", "ie_value" : "Alternative SMF IP Address", "presence" : "O", "tlv_more" : "0", "comment" : "This IE may be set by the SMF if the UPF indicated support of PFCP sessions successively controlled by different SMFs of a same SMF Set and the Cause IE indicates Redirection Requested (see clause5.22).When present, it shall be set to the IP address of the new SMF to contact. "})
msg_list[key]["ies"] = ies

View File

@ -1,9 +1,15 @@
ies = []
ies.append({ "ie_type" : "Node ID", "ie_value" : "Node ID", "presence" : "M", "tlv_more" : "0", "comment" : "This IE shall contain the unique identifier of the sending Node."})
ies.append({ "ie_type" : "Cause", "ie_value" : "Cause", "presence" : "M", "tlv_more" : "0", "comment" : "This IE shall indicate the acceptance or the rejection of the corresponding request message."})
ies.append({ "ie_type" : "Recovery Time Stamp", "ie_value" : "Recovery Time Stamp", "presence" : "M", "tlv_more" : "0", "comment" : "This IE shall contain the time stamp when the CP or UP function was started, see clause 19A of 3GPPTS23.007[24]. (NOTE)"})
ies.append({ "ie_type" : "Recovery Time Stamp", "ie_value" : "Recovery Time Stamp", "presence" : "M", "tlv_more" : "0", "comment" : "This IE shall contain the time stamp when the CP or UP function was started, see clause19A of 3GPPTS23.007[24]. (NOTE)"})
ies.append({ "ie_type" : "UP Function Features", "ie_value" : "UP Function Features", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if the UP function sends this message and the UP function supports at least one UP feature defined in this IE.When present, this IE shall indicate the features the UP function supports."})
ies.append({ "ie_type" : "CP Function Features", "ie_value" : "CP Function Features", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if the CP function sends this message and the CP function supports at least one CP feature defined in this IE.When present, this IE indicates the features the CP function supports."})
ies.append({ "ie_type" : "User Plane IP Resource Information", "ie_value" : "User Plane IP Resource Information", "presence" : "O", "tlv_more" : "3", "comment" : "This IE may be present if the UP function sends this message.When present, this IE shall contain an IPv4 and/or an IPv6 address, together with a TEID range that the CP function shall use to allocate GTP-U F-TEID in the UP function.Several IEs with the same IE type may be present to represent multiple User Plane IP Resources."})
ies.append({ "ie_type" : "Alternative SMF IP Address", "ie_value" : "Alternative SMF IP Address", "presence" : "O", "tlv_more" : "0", "comment" : "This IE may be present if the SMF advertises the support of the SSET feature in the CP Function Features IE (see clause 8.2.58).When present, this IE shall contain an IPv4 and/or IPv6 address of an alternative SMF.Several IEs with the same IE type may be present to represent multiple alternative SMF IP addresses. "})
ies.append({ "ie_type" : "Alternative SMF IP Address", "ie_value" : "Alternative SMF IP Address", "presence" : "O", "tlv_more" : "0", "comment" : "This IE may be present if the SMF advertises the support of the SSET and/or MPAS feature in the CP Function Features IE (see clause8.2.58).When present, this IE shall contain an IPv4 and/or IPv6 address of an alternative SMF or an alternative PFCP entity in the same SMF when SSET feature is used, or an alternative PFCP entity in the same SMF when MPAS feature is used.Several IEs with the same IE type may be present to represent multiple alternative SMF IP addresses."})
ies.append({ "ie_type" : "SMF Set ID", "ie_value" : "SMF Set ID", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if the CP function sends this message and SMF advertises the support of the MPAS feature in the CP Function Features IE (see clause5.22.3).When present, this IE shall contain an FQDN representing the SMF set to which the SMF belongs."})
ies.append({ "ie_type" : "PFCPASRsp-Flags", "ie_value" : "PFCPASRsp-Flags", "presence" : "O", "tlv_more" : "0", "comment" : "This IE shall be included if at least one of the flags is set to 1:- PSREI (PFCP Session Retained Indication): the UP function shall set this flag to 1 if the PFCP Session Retention Information IE was received in the Request, an existing PFCP association was already established for the same Node ID and the requested PFCP sessions have been retained. See clause6.2.6.2.2.- UUPSI (UPF configured for IPUPS): the UP function shall set this flag to 1 if the UPF is configured to be used for IPUPS. See clause5.27."})
ies.append({ "ie_type" : "Clock Drift Control Information", "ie_value" : "Clock Drift Control Information", "presence" : "C", "tlv_more" : "0", "comment" : "his IE may be present, if the CP function sends this message, to request the UPF to report clock drift between the TSN time and 5GS time for TSN working domains (see clause5.26.4).Several IEs with the same IE type may be present to represent multiple TSN time domains (with different parameters).See Table7.4.4.1.2-1."})
ies.append({ "ie_type" : "UE IP Address", "ie_value" : "UE IP address Pool Information", "presence" : "O", "tlv_more" : "0", "comment" : "This IE may be present when the UP function sends this message, if UE IP Address Pools are configured in the UP function.Several IE with the same IE type may be present to represent multiple UE IP address Pool Information.The IE shall be encoded as in Table 7.4.4.1-3. "})
ies.append({ "ie_type" : "GTP-U Path QoS Control Information", "ie_value" : "GTP-U Path QoS Control Information", "presence" : "C", "tlv_more" : "0", "comment" : "This IE may be present, if the CP function sends this message, to request the UPF to monitor the QoS on GTP-U paths (see clause5.24.5).Several IEs with the same IE type may be present to represent multiple GTP-U paths to monitor.See Table7.4.4.1.3-1."})
ies.append({ "ie_type" : "NF Instance ID", "ie_value" : "UPF Instance ID", "presence" : "O", "tlv_more" : "0", "comment" : "This IE may be present if the UP function is a 5G UPF and if available, and if the message is sent by the UPF."})
msg_list[key]["ies"] = ies

View File

@ -2,9 +2,14 @@ ies = []
ies.append({ "ie_type" : "Node ID", "ie_value" : "Node ID", "presence" : "M", "tlv_more" : "0", "comment" : "This IE shall contain the unique identifier of the sending Node."})
ies.append({ "ie_type" : "UP Function Features", "ie_value" : "UP Function Features", "presence" : "O", "tlv_more" : "0", "comment" : "If present, this IE shall indicate the supported Features when the sending node is the UP function."})
ies.append({ "ie_type" : "CP Function Features", "ie_value" : "CP Function Features", "presence" : "O", "tlv_more" : "0", "comment" : "If present, this IE shall indicate the supported Features when the sending node is the CP function."})
ies.append({ "ie_type" : "User Plane IP Resource Information", "ie_value" : "User Plane IP Resource Information", "presence" : "O", "tlv_more" : "3", "comment" : "This IE may be present if the UP function sends this message.When present, this IE shall contain an IPv4 and/or an IPv6 address, together with a TEID range that the CP function shall use to allocate GTP-U F-TEID in the UP function.Several IEs with the same IE type may be present to represent multiple User Plane IP Resources. "})
ies.append({ "ie_type" : "PFCP Association Release Request", "ie_value" : "PFCP Association Release Request", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if the UP function requests the CP function to release the PFCP association."})
ies.append({ "ie_type" : "Graceful Release Period", "ie_value" : "Graceful Release Period", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if the UP function requests a graceful release of the PFCP association."})
ies.append({ "ie_type" : "User Plane IP Resource Information", "ie_value" : "User Plane IP Resource Information", "presence" : "O", "tlv_more" : "3", "comment" : "This IE may be present if the UP function sends this message.When present, this IE shall contain an IPv4 and/or an IPv6 address, together with a TEID range that the CP function shall use to allocate GTP-U F-TEID in the UP function.Several IEs with the same IE type may be present to represent multiple User Plane IP Resources. "})
ies.append({ "ie_type" : "PFCPAUReq-Flags", "ie_value" : "PFCPAUReq-Flags", "presence" : "O", "tlv_more" : "0", "comment" : "This IE shall be included if at least one of the flags is set to 1.- PARPS (PFCP Association Release Preparation Start): if both the CP function and UP function support the EPFAR feature, the CP or UP function may set this flag to 1 to indicate that the PFCP association is to be released and all non-zero usage reports for those PFCP Sessions affected by the release of the PFCP association shall be reported."})
ies.append({ "ie_type" : "Alternative SMF IP Address", "ie_value" : "Alternative SMF IP Address", "presence" : "O", "tlv_more" : "0", "comment" : "This IE may be present if the SMF advertises the support of the SSET feature in the CP Function Features IE (see clause 8.2.58).When present, this IE shall contain an IPv4 and/or IPv6 address of an alternative SMF.Several IEs with the same IE type may be present to represent multiple alternative SMF IP addresses. "})
ies.append({ "ie_type" : "Alternative SMF IP Address", "ie_value" : "Alternative SMF IP Address", "presence" : "O", "tlv_more" : "0", "comment" : "This IE may be present if the SMF advertises the support of the SSET and/or MPAS feature in the CP Function Features IE (see clause8.2.58).When present, this IE shall contain an IPv4 and/or IPv6 address of an alternative SMF or an alternative PFCP entity in the same SMF when SSET feature is used, or an alternative PFCP entity in the same SMF when MPAS feature is used.Several IEs with the same IE type may be present to represent multiple alternative SMF IP addresses."})
ies.append({ "ie_type" : "SMF Set ID", "ie_value" : "SMF Set ID", "presence" : "O", "tlv_more" : "0", "comment" : "This IE may be present if the CP function sends this message and SMF advertises the support of the MPAS feature in the CP Function Features IE (see clause5.22.3), and there is a change in FQDN representing the SMF set to which the SMF belongs."})
ies.append({ "ie_type" : "Clock Drift Control Information", "ie_value" : "Clock Drift Control Information", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if the Clock Drift Control Information needs to be modified (see clause5.26.4).Several IEs with the same IE type may be present to represent TSN domains.When present, the UPF shall replace any Clock Drift control information received earlier with the new received information.A Clock Drift Control Information with a null length indicates that clock drift reporting shall be stopped.See Table7.4.4.1.2-1."})
ies.append({ "ie_type" : "UE IP Address", "ie_value" : "UE IP address Pool Information", "presence" : "O", "tlv_more" : "0", "comment" : "This IE may be present when the UP function sends this message, if UE IP Address Pools are configured in the UP function.Several IE with the same IE type may be present to represent multiple UE IP address Pool Information.The IE shall be encoded as in Table 7.4.4.1-3. "})
ies.append({ "ie_type" : "GTP-U Path QoS Control Information", "ie_value" : "GTP-U Path QoS Control Information", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present if the GTP-U Path QoS Control Information needs to be modified (see clause5.24.5).Several IEs with the same IE type may be present to represent multiple GTP-U paths to monitor.When present, the UPF shall replace any GTP-U path control information received earlier with the new received information.A GTP-U Path QoS Control Information with a null length indicates that QoS monitoring of GTP-U paths shall be stopped.See Table7.4.4.1.3-1."})
ies.append({ "ie_type" : "UE IP Address Usage Information", "ie_value" : "UE IP Address Usage Information", "presence" : "O", "tlv_more" : "0", "comment" : "The UP function may include if both UP and CP functions support the UE IP Address Usage Reporting feature.See Table 7.4.4.3.1-1Several IEs with the same type may be present to represent UE IP Address Usage Information for different UE IP Address Pools and/or Network Instances.See clause5.21.3"})
msg_list[key]["ies"] = ies

View File

@ -3,4 +3,5 @@ ies.append({ "ie_type" : "Node ID", "ie_value" : "Node ID", "presence" : "M", "t
ies.append({ "ie_type" : "Cause", "ie_value" : "Cause", "presence" : "M", "tlv_more" : "0", "comment" : "This IE shall indicate the acceptance or the rejection of the corresponding request message."})
ies.append({ "ie_type" : "UP Function Features", "ie_value" : "UP Function Features", "presence" : "O", "tlv_more" : "0", "comment" : "If present, this IE shall indicate the supported Features when the sending node is the UP function."})
ies.append({ "ie_type" : "CP Function Features", "ie_value" : "CP Function Features", "presence" : "O", "tlv_more" : "0", "comment" : "If present, this IE shall indicate the supported Features when the sending node is the CP function."})
ies.append({ "ie_type" : "UE IP Address Usage Information", "ie_value" : "UE IP Address Usage Information", "presence" : "O", "tlv_more" : "0", "comment" : "The UP function may include if both UP and CP functions support the UE IP Address Usage Reporting feature.See Table 7.4.4.3.1-1Several IEs with the same type may be present to represent UE IP Address Usage Information for different UE IP Address Pools and/or Network Instances.See clause5.21.3"})
msg_list[key]["ies"] = ies

View File

@ -153,7 +153,7 @@ type_list["Trace Information"] = { "type" : "152", "max_tlv_more" : "0" }
type_list["Framed-Route"] = { "type" : "153", "max_tlv_more" : "0" }
type_list["Framed-Routing"] = { "type" : "154", "max_tlv_more" : "0" }
type_list["Framed-IPv6-Route"] = { "type" : "155", "max_tlv_more" : "0" }
type_list["Event Time Stamp"] = { "type" : "156", "max_tlv_more" : "0" }
type_list["Time Stamp"] = { "type" : "156", "max_tlv_more" : "0" }
type_list["Averaging Window"] = { "type" : "157", "max_tlv_more" : "0" }
type_list["Paging Policy Indicator"] = { "type" : "158", "max_tlv_more" : "0" }
type_list["APN/DNN"] = { "type" : "159", "max_tlv_more" : "0" }
@ -163,8 +163,8 @@ type_list["PFCPAUReq-Flags"] = { "type" : "162", "max_tlv_more" : "0" }
type_list["Activation Time"] = { "type" : "163", "max_tlv_more" : "0" }
type_list["Deactivation Time"] = { "type" : "164", "max_tlv_more" : "0" }
type_list["Create MAR"] = { "type" : "165", "max_tlv_more" : "0" }
type_list["Access Forwarding Action Information 1"] = { "type" : "166", "max_tlv_more" : "0" }
type_list["Access Forwarding Action Information 2"] = { "type" : "167", "max_tlv_more" : "0" }
type_list["3GPP Access Forwarding Action Information"] = { "type" : "166", "max_tlv_more" : "0" }
type_list["Non-3GPP Access Forwarding Action Information"] = { "type" : "167", "max_tlv_more" : "0" }
type_list["Remove MAR"] = { "type" : "168", "max_tlv_more" : "0" }
type_list["Update MAR"] = { "type" : "169", "max_tlv_more" : "0" }
type_list["MAR ID"] = { "type" : "170", "max_tlv_more" : "0" }
@ -172,10 +172,100 @@ type_list["Steering Functionality"] = { "type" : "171", "max_tlv_more" : "0" }
type_list["Steering Mode"] = { "type" : "172", "max_tlv_more" : "0" }
type_list["Weight"] = { "type" : "173", "max_tlv_more" : "0" }
type_list["Priority"] = { "type" : "174", "max_tlv_more" : "0" }
type_list["Update Access Forwarding Action Information 1"] = { "type" : "175", "max_tlv_more" : "0" }
type_list["Update Access Forwarding Action Information 2"] = { "type" : "176", "max_tlv_more" : "0" }
type_list["Update 3GPP Access Forwarding Action Information"] = { "type" : "175", "max_tlv_more" : "0" }
type_list["Update Non-3GPP Access Forwarding Action Information"] = { "type" : "176", "max_tlv_more" : "0" }
type_list["UE IP address Pool Identity"] = { "type" : "177", "max_tlv_more" : "0" }
type_list["Alternative SMF IP Address"] = { "type" : "178", "max_tlv_more" : "0" }
type_list["Packet Replication and Detection Carry-On Information"] = { "type" : "179", "max_tlv_more" : "0" }
type_list["SMF Set ID"] = { "type" : "180", "max_tlv_more" : "0" }
type_list["Quota Validity Time"] = { "type" : "181", "max_tlv_more" : "0" }
type_list["Number of Reports"] = { "type" : "182", "max_tlv_more" : "0" }
type_list["PFCP Session Retention Information within PFCP Association Setup Request"] = { "type" : "183", "max_tlv_more" : "0" }
type_list["PFCPASRsp-Flags"] = { "type" : "184", "max_tlv_more" : "0" }
type_list["CP PFCP Entity IP Address"] = { "type" : "185", "max_tlv_more" : "0" }
type_list["PFCPSEReq-Flags"] = { "type" : "186", "max_tlv_more" : "0" }
type_list["User Plane Path Recovery Report"] = { "type" : "187", "max_tlv_more" : "0" }
type_list["IP Multicast Addressing Info within PFCP Session Establishment Request"] = { "type" : "188", "max_tlv_more" : "0" }
type_list["Join IP Multicast Information IE within Usage Report"] = { "type" : "189", "max_tlv_more" : "0" }
type_list["Leave IP Multicast Information IE within Usage Report"] = { "type" : "190", "max_tlv_more" : "0" }
type_list["IP Multicast Address"] = { "type" : "191", "max_tlv_more" : "0" }
type_list["Source IP Address"] = { "type" : "192", "max_tlv_more" : "0" }
type_list["Packet Rate Status"] = { "type" : "193", "max_tlv_more" : "0" }
type_list["Create Bridge Info for TSC"] = { "type" : "194", "max_tlv_more" : "0" }
type_list["Created Bridge Info for TSC"] = { "type" : "195", "max_tlv_more" : "0" }
type_list["DS-TT Port Number"] = { "type" : "196", "max_tlv_more" : "0" }
type_list["NW-TT Port Number"] = { "type" : "197", "max_tlv_more" : "0" }
type_list["TSN Bridge ID"] = { "type" : "198", "max_tlv_more" : "0" }
type_list["TSC Management Information IE within PFCP Session Modification Request"] = { "type" : "199", "max_tlv_more" : "0" }
type_list["TSC Management Information IE within PFCP Session Modification Response"] = { "type" : "200", "max_tlv_more" : "0" }
type_list["TSC Management Information IE within PFCP Session Report Request"] = { "type" : "201", "max_tlv_more" : "0" }
type_list["Port Management Information Container"] = { "type" : "202", "max_tlv_more" : "0" }
type_list["Clock Drift Control Information"] = { "type" : "203", "max_tlv_more" : "0" }
type_list["Requested Clock Drift Information"] = { "type" : "204", "max_tlv_more" : "0" }
type_list["Clock Drift Report"] = { "type" : "205", "max_tlv_more" : "0" }
type_list["TSN Time Domain Number"] = { "type" : "206", "max_tlv_more" : "0" }
type_list["Time Offset Threshold"] = { "type" : "207", "max_tlv_more" : "0" }
type_list["Cumulative rateRatio Threshold"] = { "type" : "208", "max_tlv_more" : "0" }
type_list["Time Offset Measurement"] = { "type" : "209", "max_tlv_more" : "0" }
type_list["Cumulative rateRatio Measurement"] = { "type" : "210", "max_tlv_more" : "0" }
type_list["Remove SRR"] = { "type" : "211", "max_tlv_more" : "0" }
type_list["Create SRR"] = { "type" : "212", "max_tlv_more" : "0" }
type_list["Update SRR"] = { "type" : "213", "max_tlv_more" : "0" }
type_list["Session Report"] = { "type" : "214", "max_tlv_more" : "0" }
type_list["SRR ID"] = { "type" : "215", "max_tlv_more" : "0" }
type_list["Access Availability Control Information"] = { "type" : "216", "max_tlv_more" : "0" }
type_list["Requested Access Availability Information"] = { "type" : "217", "max_tlv_more" : "0" }
type_list["Access Availability Report"] = { "type" : "218", "max_tlv_more" : "0" }
type_list["Access Availability Information"] = { "type" : "219", "max_tlv_more" : "0" }
type_list["Provide ATSSS Control Information"] = { "type" : "220", "max_tlv_more" : "0" }
type_list["ATSSS Control Parameters"] = { "type" : "221", "max_tlv_more" : "0" }
type_list["MPTCP Control Information"] = { "type" : "222", "max_tlv_more" : "0" }
type_list["ATSSS-LL Control Information"] = { "type" : "223", "max_tlv_more" : "0" }
type_list["PMF Control Information"] = { "type" : "224", "max_tlv_more" : "0" }
type_list["MPTCP Parameters"] = { "type" : "225", "max_tlv_more" : "0" }
type_list["ATSSS-LL Parameters"] = { "type" : "226", "max_tlv_more" : "0" }
type_list["PMF Parameters"] = { "type" : "227", "max_tlv_more" : "0" }
type_list["MPTCP Address Information"] = { "type" : "228", "max_tlv_more" : "0" }
type_list["UE Link-Specific IP Address"] = { "type" : "229", "max_tlv_more" : "0" }
type_list["PMF Address Information"] = { "type" : "230", "max_tlv_more" : "0" }
type_list["ATSSS-LL Information"] = { "type" : "231", "max_tlv_more" : "0" }
type_list["Data Network Access Identifier"] = { "type" : "232", "max_tlv_more" : "0" }
type_list["UE IP address Pool Information"] = { "type" : "233", "max_tlv_more" : "0" }
type_list["Average Packet Delay"] = { "type" : "234", "max_tlv_more" : "0" }
type_list["Minimum Packet Delay"] = { "type" : "235", "max_tlv_more" : "0" }
type_list["Maximum Packet Delay"] = { "type" : "236", "max_tlv_more" : "0" }
type_list["QoS Report Trigger"] = { "type" : "237", "max_tlv_more" : "0" }
type_list["GTP-U Path QoS Control Information"] = { "type" : "238", "max_tlv_more" : "0" }
type_list["GTP-U Path QoS Report PFCP Node Report Request"] = { "type" : "239", "max_tlv_more" : "0" }
type_list["QoS Information in GTP-U Path QoS Report"] = { "type" : "240", "max_tlv_more" : "0" }
type_list["GTP-U Path Interface Type"] = { "type" : "241", "max_tlv_more" : "0" }
type_list["QoS Monitoring per QoS flow Control Information"] = { "type" : "242", "max_tlv_more" : "0" }
type_list["Requested QoS Monitoring"] = { "type" : "243", "max_tlv_more" : "0" }
type_list["Reporting Frequency"] = { "type" : "244", "max_tlv_more" : "0" }
type_list["Packet Delay Thresholds"] = { "type" : "245", "max_tlv_more" : "0" }
type_list["Minimum Wait Time"] = { "type" : "246", "max_tlv_more" : "0" }
type_list["QoS Monitoring Report"] = { "type" : "247", "max_tlv_more" : "0" }
type_list["QoS Monitoring Measurement"] = { "type" : "248", "max_tlv_more" : "0" }
type_list["MT-EDT Control Information"] = { "type" : "249", "max_tlv_more" : "0" }
type_list["DL Data Packets Size"] = { "type" : "250", "max_tlv_more" : "0" }
type_list["QER Control Indications"] = { "type" : "251", "max_tlv_more" : "0" }
type_list["Packet Rate Status Report"] = { "type" : "252", "max_tlv_more" : "0" }
type_list["NF Instance ID"] = { "type" : "253", "max_tlv_more" : "0" }
type_list["Ethernet Context Information"] = { "type" : "254", "max_tlv_more" : "0" }
type_list["Redundant Transmission Parameters"] = { "type" : "255", "max_tlv_more" : "0" }
type_list["Updated PDR"] = { "type" : "256", "max_tlv_more" : "0" }
type_list["S-NSSAI"] = { "type" : "257", "max_tlv_more" : "0" }
type_list["IP version"] = { "type" : "258", "max_tlv_more" : "0" }
type_list["PFCPASReq-Flags"] = { "type" : "259", "max_tlv_more" : "0" }
type_list["Data Status"] = { "type" : "260", "max_tlv_more" : "0" }
type_list["Provide RDS Configuration Information"] = { "type" : "261", "max_tlv_more" : "0" }
type_list["RDS Configuration Information"] = { "type" : "262", "max_tlv_more" : "0" }
type_list["Query Packet Rate Status IE within PFCP Session Modification Request"] = { "type" : "263", "max_tlv_more" : "0" }
type_list["Packet Rate Status Report IE within PFCP Session Modification Response"] = { "type" : "264", "max_tlv_more" : "0" }
type_list["MPTCP Applicable Indication"] = { "type" : "265", "max_tlv_more" : "0" }
type_list["Bridge Management Information Container"] = { "type" : "266", "max_tlv_more" : "0" }
type_list["UE IP Address Usage Information"] = { "type" : "267", "max_tlv_more" : "0" }
type_list["Number of UE IP Addresses"] = { "type" : "268", "max_tlv_more" : "0" }
type_list["Validity Timer"] = { "type" : "269", "max_tlv_more" : "0" }
type_list["Redundant Transmission Forwarding Parameters"] = { "type" : "270", "max_tlv_more" : "0" }
type_list["Transport Delay Reporting"] = { "type" : "271", "max_tlv_more" : "0" }

View File

@ -1,4 +1,4 @@
# Copyright (C) 2019 by Sukchan Lee <acetcom@gmail.com>
# Copyright (C) 2019-2022 by Sukchan Lee <acetcom@gmail.com>
# This file is part of Open5GS.
@ -54,7 +54,7 @@ def write_file(f, string):
def output_header_to_file(f):
now = datetime.datetime.now()
f.write("""/*
* Copyright (C) 2019 by Sukchan Lee <acetcom@gmail.com>
* Copyright (C) 2019-2022 by Sukchan Lee <acetcom@gmail.com>
*
* This file is part of Open5GS.
*
@ -101,7 +101,7 @@ def get_cells(cells):
return None
comment = cells[2].text.encode('ascii', 'ignore').decode('utf-8')
comment = re.sub('\n|\"|\'|\\\\', '', comment);
#print comment
#print(comment)
ie_type = re.sub('\s*$', '', re.sub('\'\s*\n*\s*\(NOTE.*\)*', '', cells[-1].text))
#if ie_type.find('Usage Report') != -1:
@ -133,11 +133,28 @@ def get_cells(cells):
ie_type = 'PFCPSRRsp-Flags'
elif ie_type.find('IPv4 Configuration Parameters (IP4CP)') != -1:
ie_type = 'IP4CP'
elif ie_type.find('QoS Information') != -1:
ie_type = 'QoS Information in GTP-U Path QoS Report'
elif ie_type.find('IP Multicast Addressing Info') != -1:
ie_type = 'IP Multicast Addressing Info within PFCP Session Establishment Request'
elif ie_type.find('Redundant Transmission Detection Parameters') != -1:
ie_type = 'Redundant Transmission Parameters'
elif ie_type.find('MAC Addressed Detected') != -1:
ie_type = 'MAC Addresses Detected'
elif ie_type.find('Join IP Multicast Information') != -1:
ie_type = 'Join IP Multicast Information IE within Usage Report'
elif ie_type.find('Leave IP Multicast Information') != -1:
ie_type = 'Leave IP Multicast Information IE within Usage Report'
elif ie_type.find('PFCP Session Retention Information') != -1:
ie_type = 'PFCP Session Retention Information within PFCP Association Setup Request'
elif ie_type.find('GTP-U Path QoS Report') != -1:
ie_type = 'GTP-U Path QoS Report PFCP Node Report Request'
if ie_type not in type_list.keys():
assert False, "Unknown IE type : [" \
+ cells[-1].text + "]" + "(" + ie_type + ")"
presence = cells[1].text
ie_value = re.sub('\s*\n*\s*\([^\)]*\)*', '', cells[0].text)
ie_value = re.sub('\n', '', ie_value)
if ie_value[len(ie_value)-1] == ' ':
ie_value = ie_value[:len(ie_value)-1]
@ -231,6 +248,7 @@ else:
if key.find('Reserved') != -1:
continue
key = re.sub('\s*\n*\s*\([^\)]*\)*', '', key)
key = re.sub('\n', '', key)
msg_list[key] = { "type": type }
write_file(f, "msg_list[\"" + key + "\"] = { \"type\" : \"" + type + "\" }\n")
f.close()
@ -255,15 +273,17 @@ else:
ie_table = table
d_print("Table Index = %d\n" % i)
for row in ie_table.rows[1:-1]:
for row in ie_table.rows[1:]:
key = row.cells[1].text
type = row.cells[0].text
if type.isdigit() is False:
continue
if key.find('Reserved') != -1:
continue
key = re.sub('\(', '', key)
key = re.sub('\)', '', key)
key = re.sub('\s*$', '', key)
type = row.cells[0].text
type_list[key] = { "type": type , "max_tlv_more" : "0" }
write_file(f, "type_list[\"" + key + "\"] = { \"type\" : \"" + type)
write_file(f, "\", \"max_tlv_more\" : \"0\" }\n")
@ -300,7 +320,7 @@ else:
row = table.rows[0];
d_print("Table Index = %d[%s]\n" % (i, row.cells[num].text))
d_print("Table Index = %d[%d:%s]\n" % (i, num, row.cells[num].text))
if len(re.findall('\d+', row.cells[num].text)) == 0:
continue;
@ -320,8 +340,32 @@ else:
ie_name = "Update BAR Session Modification Request"
elif (int(ie_type) == 12):
ie_name = "Update BAR PFCP Session Report Response"
elif (int(ie_type) == 183):
ie_name = "PFCP Session Retention Information within PFCP Association Setup Request"
elif (int(ie_type) == 188):
ie_name = "IP Multicast Addressing Info within PFCP Session Establishment Request"
elif (int(ie_type) == 189):
ie_name = "Join IP Multicast Information IE within Usage Report"
elif (int(ie_type) == 190):
ie_name = "Leave IP Multicast Information IE within Usage Report"
elif (int(ie_type) == 199):
ie_name = "TSC Management Information IE within PFCP Session Modification Request"
elif (int(ie_type) == 200):
ie_name = "TSC Management Information IE within PFCP Session Modification Response"
elif (int(ie_type) == 201):
ie_name = "TSC Management Information IE within PFCP Session Report Request"
elif (int(ie_type) == 239):
ie_name = "GTP-U Path QoS Report PFCP Node Report Request"
elif (int(ie_type) == 240):
ie_name = "QoS Information in GTP-U Path QoS Report"
elif (int(ie_type) == 255):
ie_name = "Redundant Transmission Parameters"
elif (int(ie_type) == 263):
ie_name = "Query Packet Rate Status IE within PFCP Session Modification Request"
elif (int(ie_type) == 264):
ie_name = "Packet Rate Status Report IE within PFCP Session Modification Response"
if ie_name.find('Access Forwarding Action Information 2') != -1:
if ie_name.find('Non-3GPP Access Forwarding Action Information') != -1:
ie_idx = str(int(ie_type)+100)
group_list[ie_name] = { "index" : ie_idx, "type" : ie_type, "ies" : ies }
write_file(f, "group_list[\"" + ie_name + "\"] = { \"index\" : \"" + ie_idx + "\", \"type\" : \"" + ie_type + "\", \"ies\" : ies }\n")
@ -343,29 +387,29 @@ else:
write_file(f, "group_list[\"" + ie_name + "\"] = { \"index\" : \"" + ie_idx + "\", \"type\" : \"" + ie_type + "\", \"ies\" : ies }\n")
f.close()
msg_list["PFCP Heartbeat Request"]["table"] = 7
msg_list["PFCP Heartbeat Response"]["table"] = 8
msg_list["PFCP PFD Management Request"]["table"] = 9
msg_list["PFCP PFD Management Response"]["table"] = 12
msg_list["PFCP Association Setup Request"]["table"] = 13
msg_list["PFCP Association Setup Response"]["table"] = 14
msg_list["PFCP Association Update Request"]["table"] = 15
msg_list["PFCP Association Update Response"]["table"] = 16
msg_list["PFCP Association Release Request"]["table"] = 17
msg_list["PFCP Association Release Response"]["table"] = 18
msg_list["PFCP Heartbeat Request"]["table"] = 9
msg_list["PFCP Heartbeat Response"]["table"] = 10
msg_list["PFCP PFD Management Request"]["table"] = 11
msg_list["PFCP PFD Management Response"]["table"] = 14
msg_list["PFCP Association Setup Request"]["table"] = 15
msg_list["PFCP Association Setup Response"]["table"] = 20
msg_list["PFCP Association Update Request"]["table"] = 21
msg_list["PFCP Association Update Response"]["table"] = 23
msg_list["PFCP Association Release Request"]["table"] = 24
msg_list["PFCP Association Release Response"]["table"] = 25
msg_list["PFCP Version Not Supported Response"]["table"] = 0
msg_list["PFCP Node Report Request"]["table"] = 19
msg_list["PFCP Node Report Response"]["table"] = 21
msg_list["PFCP Session Set Deletion Request"]["table"] = 22
msg_list["PFCP Session Set Deletion Response"]["table"] = 23
msg_list["PFCP Session Establishment Request"]["table"] = 24
msg_list["PFCP Session Establishment Response"]["table"] = 40
msg_list["PFCP Session Modification Request"]["table"] = 45
msg_list["PFCP Session Modification Response"]["table"] = 65
msg_list["PFCP Session Deletion Request"]["table"] = 67
msg_list["PFCP Session Deletion Response"]["table"] = 68
msg_list["PFCP Session Report Request"]["table"] = 70
msg_list["PFCP Session Report Response"]["table"] = 76
msg_list["PFCP Node Report Request"]["table"] = 26
msg_list["PFCP Node Report Response"]["table"] = 32
msg_list["PFCP Session Set Deletion Request"]["table"] = 33
msg_list["PFCP Session Set Deletion Response"]["table"] = 34
msg_list["PFCP Session Establishment Request"]["table"] = 35
msg_list["PFCP Session Establishment Response"]["table"] = 60
msg_list["PFCP Session Modification Request"]["table"] = 70
msg_list["PFCP Session Modification Response"]["table"] = 95
msg_list["PFCP Session Deletion Request"]["table"] = 100
msg_list["PFCP Session Deletion Response"]["table"] = 101
msg_list["PFCP Session Report Request"]["table"] = 104
msg_list["PFCP Session Report Response"]["table"] = 116
for key in msg_list.keys():
if "table" in msg_list[key].keys():
@ -516,36 +560,58 @@ f.write("\n")
for k, v in group_list.items():
if v_lower(k) == "ethernet_packet_filter":
v["index"] = "1"
if v_lower(k) == "pdi":
if v_lower(k) == "redundant_transmission_parameters":
v["index"] = "2"
if v_lower(k) == "create_pdr":
if v_lower(k) == "ip_multicast_addressing_info_within_pfcp_session_establishment_request":
v["index"] = "3"
if v_lower(k) == "forwarding_parameters":
if v_lower(k) == "pdi":
v["index"] = "4"
if v_lower(k) == "duplicating_parameters":
if v_lower(k) == "transport_delay_reporting":
v["index"] = "5"
if v_lower(k) == "create_far":
if v_lower(k) == "create_pdr":
v["index"] = "6"
if v_lower(k) == "update_forwarding_parameters":
if v_lower(k) == "forwarding_parameters":
v["index"] = "7"
if v_lower(k) == "update_duplicating_parameters":
if v_lower(k) == "duplicating_parameters":
v["index"] = "8"
if v_lower(k) == "update_far":
if v_lower(k) == "redundant_transmission_forwarding_parameters":
v["index"] = "9"
if v_lower(k) == "pfd_context":
if v_lower(k) == "create_far":
v["index"] = "10"
if v_lower(k) == "application_id_s_pfds":
if v_lower(k) == "update_forwarding_parameters":
v["index"] = "11"
if v_lower(k) == "ethernet_traffic_information":
if v_lower(k) == "update_duplicating_parameters":
v["index"] = "12"
if v_lower(k) == "access_forwarding_action_information_1":
if v_lower(k) == "update_far":
v["index"] = "13"
if v_lower(k) == "access_forwarding_action_information_2":
if v_lower(k) == "pfd_context":
v["index"] = "14"
if v_lower(k) == "update_access_forwarding_action_information_1":
if v_lower(k) == "application_id_s_pfds":
v["index"] = "15"
if v_lower(k) == "update_access_forwarding_action_information_2":
if v_lower(k) == "ethernet_traffic_information":
v["index"] = "16"
if v_lower(k) == "_access_forwarding_action_information":
v["index"] = "17"
if v_lower(k) == "non__access_forwarding_action_information":
v["index"] = "18"
if v_lower(k) == "update__access_forwarding_action_information":
v["index"] = "19"
if v_lower(k) == "update_non__access_forwarding_action_information":
v["index"] = "20"
if v_lower(k) == "access_availability_report":
v["index"] = "21"
if v_lower(k) == "qos_monitoring_report":
v["index"] = "22"
if v_lower(k) == "mptcp_parameters":
v["index"] = "23"
if v_lower(k) == "atsss_ll_parameters":
v["index"] = "24"
if v_lower(k) == "pmf_parameters":
v["index"] = "25"
if v_lower(k) == "join_ip_multicast_information_ie_within_usage_report":
v["index"] = "26"
if v_lower(k) == "leave_ip_multicast_information_ie_within_usage_report":
v["index"] = "27"
tmp = [(k, v["index"]) for k, v in group_list.items()]
sorted_group_list = sorted(tmp, key=lambda tup: int(tup[1]), reverse=False)