update it

This commit is contained in:
Sukchan Lee 2017-03-15 10:53:33 +09:00
parent feca8b3adb
commit 56d1e9011d
4 changed files with 761 additions and 630 deletions

File diff suppressed because it is too large Load Diff

View File

@ -26,7 +26,7 @@
/*******************************************************************************
* This file had been created by gtpv2c_tlv.py script v0.1.0
* Please do not modify this file but regenerate it via script.
* Created on: 2017-03-14 23:55:16.307058 by acetcom
* Created on: 2017-03-15 10:53:03.117682 by acetcom
* from 29274-d80.docx
******************************************************************************/
@ -216,251 +216,311 @@ extern "C" {
#define GTPV2C_IE_SERVING_PLMN_RATE_CONTROL_TYPE 198
#define GTPV2C_IE_COUNTER_TYPE 199
typedef tlv_octet_t tlv_imsi_t;
typedef tlv_octet_t tlv_cause_t;
typedef tlv_octet_t tlv_recovery_t;
typedef tlv_octet_t tlv_stn_sr_t;
typedef tlv_octet_t tlv_apn_t;
typedef tlv_octet_t tlv_ambr_t;
typedef tlv_octet_t tlv_ebi_t;
typedef tlv_octet_t tlv_ip_address_t;
typedef tlv_octet_t tlv_mei_t;
typedef tlv_octet_t tlv_msisdn_t;
typedef tlv_octet_t tlv_indication_t;
typedef tlv_octet_t tlv_pco_t;
typedef tlv_octet_t tlv_paa_t;
typedef tlv_octet_t tlv_bearer_qos_t;
typedef tlv_octet_t tlv_flow_qos_t;
typedef tlv_octet_t tlv_rat_type_t;
typedef tlv_octet_t tlv_serving_network_t;
typedef tlv_octet_t tlv_bearer_tft_t;
typedef tlv_octet_t tlv_tad_t;
typedef tlv_octet_t tlv_uli_t;
typedef tlv_octet_t tlv_f_teid_t;
typedef tlv_octet_t tlv_tmsi_t;
typedef tlv_octet_t tlv_global_cn_id_t;
typedef tlv_octet_t tlv_s103pdf_t;
typedef tlv_octet_t tlv_s1udf_t;
typedef tlv_octet_t tlv_delay_value_t;
typedef tlv_octet_t tlv_bearer_context_t;
typedef tlv_octet_t tlv_charging_id_t;
typedef tlv_octet_t tlv_charging_characteristics_t;
typedef tlv_octet_t tlv_trace_information_t;
typedef tlv_octet_t tlv_bearer_flags_t;
typedef tlv_octet_t tlv_pdn_type_t;
typedef tlv_octet_t tlv_procedure_transaction_id_t;
typedef tlv_octet_t tlv_mm_context_t;
typedef tlv_octet_t tlv_pdn_connection_t;
typedef tlv_octet_t tlv_pdu_numbers_t;
typedef tlv_octet_t tlv_p_tmsi_t;
typedef tlv_octet_t tlv_p_tmsi_signature_t;
typedef tlv_octet_t tlv_hop_counter_t;
typedef tlv_octet_t tlv_ue_time_zone_t;
typedef tlv_octet_t tlv_trace_reference_t;
typedef tlv_octet_t tlv_complete_request_message_t;
typedef tlv_octet_t tlv_guti_t;
typedef tlv_octet_t tlv_f_container_t;
typedef tlv_octet_t tlv_f_cause_t;
typedef tlv_octet_t tlv_plmn_id_t;
typedef tlv_octet_t tlv_target_identification_t;
typedef tlv_octet_t tlv_packet_flow_id_t;
typedef tlv_octet_t tlv_rab_context_t;
typedef tlv_octet_t tlv_source_rnc_pdcp_context_info_t;
typedef tlv_octet_t tlv_port_number_t;
typedef tlv_octet_t tlv_apn_restriction_t;
typedef tlv_octet_t tlv_selection_mode_t;
typedef tlv_octet_t tlv_source_identification_t;
typedef tlv_octet_t tlv_change_reporting_action_t;
typedef tlv_octet_t tlv_fq_csid_t;
typedef tlv_octet_t tlv_channel_needed_t;
typedef tlv_octet_t tlv_emlpp_priority_t;
typedef tlv_octet_t tlv_node_type_t;
typedef tlv_octet_t tlv_fqdn_t;
typedef tlv_octet_t tlv_ti_t;
typedef tlv_octet_t tlv_mbms_session_duration_t;
typedef tlv_octet_t tlv_mbms_service_area_t;
typedef tlv_octet_t tlv_mbms_session_identifier_t;
typedef tlv_octet_t tlv_mbms_flow_identifier_t;
typedef tlv_octet_t tlv_mbms_ip_multicast_distribution_t;
typedef tlv_octet_t tlv_mbms_distribution_acknowledge_t;
typedef tlv_octet_t tlv_rfsp_index_t;
typedef tlv_octet_t tlv_uci_t;
typedef tlv_octet_t tlv_csg_information_reporting_action_t;
typedef tlv_octet_t tlv_csg_id_t;
typedef tlv_octet_t tlv_cmi_t;
typedef tlv_octet_t tlv_service_indicator_t;
typedef tlv_octet_t tlv_detach_type_t;
typedef tlv_octet_t tlv_ldn_t;
typedef tlv_octet_t tlv_node_features_t;
typedef tlv_octet_t tlv_mbms_time_to_data_transfer_t;
typedef tlv_octet_t tlv_throttling_t;
typedef tlv_octet_t tlv_arp_t;
typedef tlv_octet_t tlv_epc_timer_t;
typedef tlv_octet_t tlv_signalling_priority_indication_t;
typedef tlv_octet_t tlv_tmgi_t;
typedef tlv_octet_t tlv_additional_mm_context_for_srvcc_t;
typedef tlv_octet_t tlv_additional_flags_for_srvcc_t;
typedef tlv_octet_t tlv_mdt_configuration_t;
typedef tlv_octet_t tlv_apco_t;
typedef tlv_octet_t tlv_absolute_time_of_mbms_data_transfer_t;
typedef tlv_octet_t tlv_enb_information_reporting_t;
typedef tlv_octet_t tlv_ip4cp_t;
typedef tlv_octet_t tlv_change_to_report_flags_t;
typedef tlv_octet_t tlv_action_indication_t;
typedef tlv_octet_t tlv_twan_identifier_t;
typedef tlv_octet_t tlv_uli_timestamp_t;
typedef tlv_octet_t tlv_mbms_flags_t;
typedef tlv_octet_t tlv_ran_nas_cause_t;
typedef tlv_octet_t tlv_cn_operator_selection_entity_t;
typedef tlv_octet_t tlv_twmi_t;
typedef tlv_octet_t tlv_node_number_t;
typedef tlv_octet_t tlv_node_identifier_t;
typedef tlv_octet_t tlv_presence_reporting_area_action_t;
typedef tlv_octet_t tlv_presence_reporting_area_information_t;
typedef tlv_octet_t tlv_twan_identifier_timestamp_t;
typedef tlv_octet_t tlv_overload_control_information_t;
typedef tlv_octet_t tlv_load_control_information_t;
typedef tlv_octet_t tlv_metric_t;
typedef tlv_octet_t tlv_sequence_number_t;
typedef tlv_octet_t tlv_apn_and_relative_capacity_t;
typedef tlv_octet_t tlv_wlan_offloadability_indication_t;
typedef tlv_octet_t tlv_paging_and_service_information_t;
typedef tlv_octet_t tlv_integer_number_t;
typedef tlv_octet_t tlv_millisecond_time_stamp_t;
typedef tlv_octet_t tlv_monitoring_event_information_t;
typedef tlv_octet_t tlv_ecgi_list_t;
typedef tlv_octet_t tlv_remote_ue_context_t;
typedef tlv_octet_t tlv_remote_user_id_t;
typedef tlv_octet_t tlv_remote_ue_ip_information_t;
typedef tlv_octet_t tlv_ciot_optimizations_support_indication_t;
typedef tlv_octet_t tlv_scef_pdn_connection_t;
typedef tlv_octet_t tlv_header_compression_configuration_t;
typedef tlv_octet_t tlv_epco_t;
typedef tlv_octet_t tlv_serving_plmn_rate_control_t;
typedef tlv_octet_t tlv_counter_t;
/* Infomration Element TLV Descriptor */
extern tlv_desc_t gtpv2c_desc_imsi;
extern tlv_desc_t gtpv2c_desc_cause;
extern tlv_desc_t gtpv2c_desc_recovery;
extern tlv_desc_t gtpv2c_desc_stn_sr;
extern tlv_desc_t gtpv2c_desc_apn;
extern tlv_desc_t gtpv2c_desc_ambr;
extern tlv_desc_t gtpv2c_desc_ebi;
extern tlv_desc_t gtpv2c_desc_ip_address;
extern tlv_desc_t gtpv2c_desc_mei;
extern tlv_desc_t gtpv2c_desc_msisdn;
extern tlv_desc_t gtpv2c_desc_indication;
extern tlv_desc_t gtpv2c_desc_pco;
extern tlv_desc_t gtpv2c_desc_paa;
extern tlv_desc_t gtpv2c_desc_bearer_qos;
extern tlv_desc_t gtpv2c_desc_flow_qos;
extern tlv_desc_t gtpv2c_desc_rat_type;
extern tlv_desc_t gtpv2c_desc_serving_network;
extern tlv_desc_t gtpv2c_desc_bearer_tft;
extern tlv_desc_t gtpv2c_desc_tad;
extern tlv_desc_t gtpv2c_desc_uli;
extern tlv_desc_t gtpv2c_desc_f_teid;
extern tlv_desc_t gtpv2c_desc_tmsi;
extern tlv_desc_t gtpv2c_desc_global_cn_id;
extern tlv_desc_t gtpv2c_desc_s103pdf;
extern tlv_desc_t gtpv2c_desc_s1udf;
extern tlv_desc_t gtpv2c_desc_delay_value;
extern tlv_desc_t gtpv2c_desc_charging_id;
extern tlv_desc_t gtpv2c_desc_charging_characteristics;
extern tlv_desc_t gtpv2c_desc_trace_information;
extern tlv_desc_t gtpv2c_desc_bearer_flags;
extern tlv_desc_t gtpv2c_desc_pdn_type;
extern tlv_desc_t gtpv2c_desc_procedure_transaction_id;
extern tlv_desc_t gtpv2c_desc_mm_context;
extern tlv_desc_t gtpv2c_desc_pdu_numbers;
extern tlv_desc_t gtpv2c_desc_p_tmsi;
extern tlv_desc_t gtpv2c_desc_p_tmsi_signature;
extern tlv_desc_t gtpv2c_desc_hop_counter;
extern tlv_desc_t gtpv2c_desc_ue_time_zone;
extern tlv_desc_t gtpv2c_desc_trace_reference;
extern tlv_desc_t gtpv2c_desc_complete_request_message;
extern tlv_desc_t gtpv2c_desc_guti;
extern tlv_desc_t gtpv2c_desc_f_container;
extern tlv_desc_t gtpv2c_desc_f_cause;
extern tlv_desc_t gtpv2c_desc_plmn_id;
extern tlv_desc_t gtpv2c_desc_target_identification;
extern tlv_desc_t gtpv2c_desc_packet_flow_id;
extern tlv_desc_t gtpv2c_desc_rab_context;
extern tlv_desc_t gtpv2c_desc_source_rnc_pdcp_context_info;
extern tlv_desc_t gtpv2c_desc_port_number;
extern tlv_desc_t gtpv2c_desc_apn_restriction;
extern tlv_desc_t gtpv2c_desc_selection_mode;
extern tlv_desc_t gtpv2c_desc_source_identification;
extern tlv_desc_t gtpv2c_desc_change_reporting_action;
extern tlv_desc_t gtpv2c_desc_fq_csid;
extern tlv_desc_t gtpv2c_desc_channel_needed;
extern tlv_desc_t gtpv2c_desc_emlpp_priority;
extern tlv_desc_t gtpv2c_desc_node_type;
extern tlv_desc_t gtpv2c_desc_fqdn;
extern tlv_desc_t gtpv2c_desc_ti;
extern tlv_desc_t gtpv2c_desc_mbms_session_duration;
extern tlv_desc_t gtpv2c_desc_mbms_service_area;
extern tlv_desc_t gtpv2c_desc_mbms_session_identifier;
extern tlv_desc_t gtpv2c_desc_mbms_flow_identifier;
extern tlv_desc_t gtpv2c_desc_mbms_ip_multicast_distribution;
extern tlv_desc_t gtpv2c_desc_mbms_distribution_acknowledge;
extern tlv_desc_t gtpv2c_desc_rfsp_index;
extern tlv_desc_t gtpv2c_desc_uci;
extern tlv_desc_t gtpv2c_desc_csg_information_reporting_action;
extern tlv_desc_t gtpv2c_desc_csg_id;
extern tlv_desc_t gtpv2c_desc_cmi;
extern tlv_desc_t gtpv2c_desc_service_indicator;
extern tlv_desc_t gtpv2c_desc_detach_type;
extern tlv_desc_t gtpv2c_desc_ldn;
extern tlv_desc_t gtpv2c_desc_node_features;
extern tlv_desc_t gtpv2c_desc_mbms_time_to_data_transfer;
extern tlv_desc_t gtpv2c_desc_throttling;
extern tlv_desc_t gtpv2c_desc_arp;
extern tlv_desc_t gtpv2c_desc_epc_timer;
extern tlv_desc_t gtpv2c_desc_signalling_priority_indication;
extern tlv_desc_t gtpv2c_desc_tmgi;
extern tlv_desc_t gtpv2c_desc_additional_mm_context_for_srvcc;
extern tlv_desc_t gtpv2c_desc_additional_flags_for_srvcc;
extern tlv_desc_t gtpv2c_desc_mdt_configuration;
extern tlv_desc_t gtpv2c_desc_apco;
extern tlv_desc_t gtpv2c_desc_absolute_time_of_mbms_data_transfer;
extern tlv_desc_t gtpv2c_desc_enb_information_reporting;
extern tlv_desc_t gtpv2c_desc_ip4cp;
extern tlv_desc_t gtpv2c_desc_change_to_report_flags;
extern tlv_desc_t gtpv2c_desc_action_indication;
extern tlv_desc_t gtpv2c_desc_twan_identifier;
extern tlv_desc_t gtpv2c_desc_uli_timestamp;
extern tlv_desc_t gtpv2c_desc_mbms_flags;
extern tlv_desc_t gtpv2c_desc_ran_nas_cause;
extern tlv_desc_t gtpv2c_desc_cn_operator_selection_entity;
extern tlv_desc_t gtpv2c_desc_twmi;
extern tlv_desc_t gtpv2c_desc_node_number;
extern tlv_desc_t gtpv2c_desc_node_identifier;
extern tlv_desc_t gtpv2c_desc_presence_reporting_area_action;
extern tlv_desc_t gtpv2c_desc_presence_reporting_area_information;
extern tlv_desc_t gtpv2c_desc_twan_identifier_timestamp;
extern tlv_desc_t gtpv2c_desc_metric;
extern tlv_desc_t gtpv2c_desc_sequence_number;
extern tlv_desc_t gtpv2c_desc_apn_and_relative_capacity;
extern tlv_desc_t gtpv2c_desc_wlan_offloadability_indication;
extern tlv_desc_t gtpv2c_desc_paging_and_service_information;
extern tlv_desc_t gtpv2c_desc_integer_number;
extern tlv_desc_t gtpv2c_desc_millisecond_time_stamp;
extern tlv_desc_t gtpv2c_desc_monitoring_event_information;
extern tlv_desc_t gtpv2c_desc_ecgi_list;
extern tlv_desc_t gtpv2c_desc_remote_user_id;
extern tlv_desc_t gtpv2c_desc_remote_ue_ip_information;
extern tlv_desc_t gtpv2c_desc_ciot_optimizations_support_indication;
extern tlv_desc_t gtpv2c_desc_header_compression_configuration;
extern tlv_desc_t gtpv2c_desc_epco;
extern tlv_desc_t gtpv2c_desc_serving_plmn_rate_control;
extern tlv_desc_t gtpv2c_desc_counter;
extern tlv_desc_t tlv_desc_imsi;
extern tlv_desc_t tlv_desc_cause;
extern tlv_desc_t tlv_desc_recovery;
extern tlv_desc_t tlv_desc_stn_sr;
extern tlv_desc_t tlv_desc_apn;
extern tlv_desc_t tlv_desc_ambr;
extern tlv_desc_t tlv_desc_ebi;
extern tlv_desc_t tlv_desc_ip_address;
extern tlv_desc_t tlv_desc_mei;
extern tlv_desc_t tlv_desc_msisdn;
extern tlv_desc_t tlv_desc_indication;
extern tlv_desc_t tlv_desc_pco;
extern tlv_desc_t tlv_desc_paa;
extern tlv_desc_t tlv_desc_bearer_qos;
extern tlv_desc_t tlv_desc_flow_qos;
extern tlv_desc_t tlv_desc_rat_type;
extern tlv_desc_t tlv_desc_serving_network;
extern tlv_desc_t tlv_desc_bearer_tft;
extern tlv_desc_t tlv_desc_tad;
extern tlv_desc_t tlv_desc_uli;
extern tlv_desc_t tlv_desc_f_teid;
extern tlv_desc_t tlv_desc_tmsi;
extern tlv_desc_t tlv_desc_global_cn_id;
extern tlv_desc_t tlv_desc_s103pdf;
extern tlv_desc_t tlv_desc_s1udf;
extern tlv_desc_t tlv_desc_delay_value;
extern tlv_desc_t tlv_desc_bearer_context;
extern tlv_desc_t tlv_desc_charging_id;
extern tlv_desc_t tlv_desc_charging_characteristics;
extern tlv_desc_t tlv_desc_trace_information;
extern tlv_desc_t tlv_desc_bearer_flags;
extern tlv_desc_t tlv_desc_pdn_type;
extern tlv_desc_t tlv_desc_procedure_transaction_id;
extern tlv_desc_t tlv_desc_mm_context;
extern tlv_desc_t tlv_desc_pdn_connection;
extern tlv_desc_t tlv_desc_pdu_numbers;
extern tlv_desc_t tlv_desc_p_tmsi;
extern tlv_desc_t tlv_desc_p_tmsi_signature;
extern tlv_desc_t tlv_desc_hop_counter;
extern tlv_desc_t tlv_desc_ue_time_zone;
extern tlv_desc_t tlv_desc_trace_reference;
extern tlv_desc_t tlv_desc_complete_request_message;
extern tlv_desc_t tlv_desc_guti;
extern tlv_desc_t tlv_desc_f_container;
extern tlv_desc_t tlv_desc_f_cause;
extern tlv_desc_t tlv_desc_plmn_id;
extern tlv_desc_t tlv_desc_target_identification;
extern tlv_desc_t tlv_desc_packet_flow_id;
extern tlv_desc_t tlv_desc_rab_context;
extern tlv_desc_t tlv_desc_source_rnc_pdcp_context_info;
extern tlv_desc_t tlv_desc_port_number;
extern tlv_desc_t tlv_desc_apn_restriction;
extern tlv_desc_t tlv_desc_selection_mode;
extern tlv_desc_t tlv_desc_source_identification;
extern tlv_desc_t tlv_desc_change_reporting_action;
extern tlv_desc_t tlv_desc_fq_csid;
extern tlv_desc_t tlv_desc_channel_needed;
extern tlv_desc_t tlv_desc_emlpp_priority;
extern tlv_desc_t tlv_desc_node_type;
extern tlv_desc_t tlv_desc_fqdn;
extern tlv_desc_t tlv_desc_ti;
extern tlv_desc_t tlv_desc_mbms_session_duration;
extern tlv_desc_t tlv_desc_mbms_service_area;
extern tlv_desc_t tlv_desc_mbms_session_identifier;
extern tlv_desc_t tlv_desc_mbms_flow_identifier;
extern tlv_desc_t tlv_desc_mbms_ip_multicast_distribution;
extern tlv_desc_t tlv_desc_mbms_distribution_acknowledge;
extern tlv_desc_t tlv_desc_rfsp_index;
extern tlv_desc_t tlv_desc_uci;
extern tlv_desc_t tlv_desc_csg_information_reporting_action;
extern tlv_desc_t tlv_desc_csg_id;
extern tlv_desc_t tlv_desc_cmi;
extern tlv_desc_t tlv_desc_service_indicator;
extern tlv_desc_t tlv_desc_detach_type;
extern tlv_desc_t tlv_desc_ldn;
extern tlv_desc_t tlv_desc_node_features;
extern tlv_desc_t tlv_desc_mbms_time_to_data_transfer;
extern tlv_desc_t tlv_desc_throttling;
extern tlv_desc_t tlv_desc_arp;
extern tlv_desc_t tlv_desc_epc_timer;
extern tlv_desc_t tlv_desc_signalling_priority_indication;
extern tlv_desc_t tlv_desc_tmgi;
extern tlv_desc_t tlv_desc_additional_mm_context_for_srvcc;
extern tlv_desc_t tlv_desc_additional_flags_for_srvcc;
extern tlv_desc_t tlv_desc_mdt_configuration;
extern tlv_desc_t tlv_desc_apco;
extern tlv_desc_t tlv_desc_absolute_time_of_mbms_data_transfer;
extern tlv_desc_t tlv_desc_enb_information_reporting;
extern tlv_desc_t tlv_desc_ip4cp;
extern tlv_desc_t tlv_desc_change_to_report_flags;
extern tlv_desc_t tlv_desc_action_indication;
extern tlv_desc_t tlv_desc_twan_identifier;
extern tlv_desc_t tlv_desc_uli_timestamp;
extern tlv_desc_t tlv_desc_mbms_flags;
extern tlv_desc_t tlv_desc_ran_nas_cause;
extern tlv_desc_t tlv_desc_cn_operator_selection_entity;
extern tlv_desc_t tlv_desc_twmi;
extern tlv_desc_t tlv_desc_node_number;
extern tlv_desc_t tlv_desc_node_identifier;
extern tlv_desc_t tlv_desc_presence_reporting_area_action;
extern tlv_desc_t tlv_desc_presence_reporting_area_information;
extern tlv_desc_t tlv_desc_twan_identifier_timestamp;
extern tlv_desc_t tlv_desc_overload_control_information;
extern tlv_desc_t tlv_desc_load_control_information;
extern tlv_desc_t tlv_desc_metric;
extern tlv_desc_t tlv_desc_sequence_number;
extern tlv_desc_t tlv_desc_apn_and_relative_capacity;
extern tlv_desc_t tlv_desc_wlan_offloadability_indication;
extern tlv_desc_t tlv_desc_paging_and_service_information;
extern tlv_desc_t tlv_desc_integer_number;
extern tlv_desc_t tlv_desc_millisecond_time_stamp;
extern tlv_desc_t tlv_desc_monitoring_event_information;
extern tlv_desc_t tlv_desc_ecgi_list;
extern tlv_desc_t tlv_desc_remote_ue_context;
extern tlv_desc_t tlv_desc_remote_user_id;
extern tlv_desc_t tlv_desc_remote_ue_ip_information;
extern tlv_desc_t tlv_desc_ciot_optimizations_support_indication;
extern tlv_desc_t tlv_desc_scef_pdn_connection;
extern tlv_desc_t tlv_desc_header_compression_configuration;
extern tlv_desc_t tlv_desc_epco;
extern tlv_desc_t tlv_desc_serving_plmn_rate_control;
extern tlv_desc_t tlv_desc_counter;
/* Group Infomration Element TLV Descriptor */
extern tlv_desc_t gtpv2c_desc_bearer_context;
extern tlv_desc_t gtpv2c_desc_pdn_connection;
extern tlv_desc_t gtpv2c_desc_overload_control_information;
extern tlv_desc_t gtpv2c_desc_load_control_information;
extern tlv_desc_t gtpv2c_desc_remote_ue_context;
extern tlv_desc_t gtpv2c_desc_scef_pdn_connection;
/* Structure for Infomration Element */
typedef tlv_octet_t gtpv2c_imsi_t;
typedef tlv_octet_t gtpv2c_cause_t;
typedef tlv_octet_t gtpv2c_recovery_t;
typedef tlv_octet_t gtpv2c_stn_sr_t;
typedef tlv_octet_t gtpv2c_apn_t;
typedef tlv_octet_t gtpv2c_ambr_t;
typedef tlv_octet_t gtpv2c_ebi_t;
typedef tlv_octet_t gtpv2c_ip_address_t;
typedef tlv_octet_t gtpv2c_mei_t;
typedef tlv_octet_t gtpv2c_msisdn_t;
typedef tlv_octet_t gtpv2c_indication_t;
typedef tlv_octet_t gtpv2c_pco_t;
typedef tlv_octet_t gtpv2c_paa_t;
typedef tlv_octet_t gtpv2c_bearer_qos_t;
typedef tlv_octet_t gtpv2c_flow_qos_t;
typedef tlv_octet_t gtpv2c_rat_type_t;
typedef tlv_octet_t gtpv2c_serving_network_t;
typedef tlv_octet_t gtpv2c_bearer_tft_t;
typedef tlv_octet_t gtpv2c_tad_t;
typedef tlv_octet_t gtpv2c_uli_t;
typedef tlv_octet_t gtpv2c_f_teid_t;
typedef tlv_octet_t gtpv2c_tmsi_t;
typedef tlv_octet_t gtpv2c_global_cn_id_t;
typedef tlv_octet_t gtpv2c_s103pdf_t;
typedef tlv_octet_t gtpv2c_s1udf_t;
typedef tlv_octet_t gtpv2c_delay_value_t;
typedef tlv_octet_t gtpv2c_charging_id_t;
typedef tlv_octet_t gtpv2c_charging_characteristics_t;
typedef tlv_octet_t gtpv2c_trace_information_t;
typedef tlv_octet_t gtpv2c_bearer_flags_t;
typedef tlv_octet_t gtpv2c_pdn_type_t;
typedef tlv_octet_t gtpv2c_procedure_transaction_id_t;
typedef tlv_octet_t gtpv2c_mm_context_t;
typedef tlv_octet_t gtpv2c_pdu_numbers_t;
typedef tlv_octet_t gtpv2c_p_tmsi_t;
typedef tlv_octet_t gtpv2c_p_tmsi_signature_t;
typedef tlv_octet_t gtpv2c_hop_counter_t;
typedef tlv_octet_t gtpv2c_ue_time_zone_t;
typedef tlv_octet_t gtpv2c_trace_reference_t;
typedef tlv_octet_t gtpv2c_complete_request_message_t;
typedef tlv_octet_t gtpv2c_guti_t;
typedef tlv_octet_t gtpv2c_f_container_t;
typedef tlv_octet_t gtpv2c_f_cause_t;
typedef tlv_octet_t gtpv2c_plmn_id_t;
typedef tlv_octet_t gtpv2c_target_identification_t;
typedef tlv_octet_t gtpv2c_packet_flow_id_t;
typedef tlv_octet_t gtpv2c_rab_context_t;
typedef tlv_octet_t gtpv2c_source_rnc_pdcp_context_info_t;
typedef tlv_octet_t gtpv2c_port_number_t;
typedef tlv_octet_t gtpv2c_apn_restriction_t;
typedef tlv_octet_t gtpv2c_selection_mode_t;
typedef tlv_octet_t gtpv2c_source_identification_t;
typedef tlv_octet_t gtpv2c_change_reporting_action_t;
typedef tlv_octet_t gtpv2c_fq_csid_t;
typedef tlv_octet_t gtpv2c_channel_needed_t;
typedef tlv_octet_t gtpv2c_emlpp_priority_t;
typedef tlv_octet_t gtpv2c_node_type_t;
typedef tlv_octet_t gtpv2c_fqdn_t;
typedef tlv_octet_t gtpv2c_ti_t;
typedef tlv_octet_t gtpv2c_mbms_session_duration_t;
typedef tlv_octet_t gtpv2c_mbms_service_area_t;
typedef tlv_octet_t gtpv2c_mbms_session_identifier_t;
typedef tlv_octet_t gtpv2c_mbms_flow_identifier_t;
typedef tlv_octet_t gtpv2c_mbms_ip_multicast_distribution_t;
typedef tlv_octet_t gtpv2c_mbms_distribution_acknowledge_t;
typedef tlv_octet_t gtpv2c_rfsp_index_t;
typedef tlv_octet_t gtpv2c_uci_t;
typedef tlv_octet_t gtpv2c_csg_information_reporting_action_t;
typedef tlv_octet_t gtpv2c_csg_id_t;
typedef tlv_octet_t gtpv2c_cmi_t;
typedef tlv_octet_t gtpv2c_service_indicator_t;
typedef tlv_octet_t gtpv2c_detach_type_t;
typedef tlv_octet_t gtpv2c_ldn_t;
typedef tlv_octet_t gtpv2c_node_features_t;
typedef tlv_octet_t gtpv2c_mbms_time_to_data_transfer_t;
typedef tlv_octet_t gtpv2c_throttling_t;
typedef tlv_octet_t gtpv2c_arp_t;
typedef tlv_octet_t gtpv2c_epc_timer_t;
typedef tlv_octet_t gtpv2c_signalling_priority_indication_t;
typedef tlv_octet_t gtpv2c_tmgi_t;
typedef tlv_octet_t gtpv2c_additional_mm_context_for_srvcc_t;
typedef tlv_octet_t gtpv2c_additional_flags_for_srvcc_t;
typedef tlv_octet_t gtpv2c_mdt_configuration_t;
typedef tlv_octet_t gtpv2c_apco_t;
typedef tlv_octet_t gtpv2c_absolute_time_of_mbms_data_transfer_t;
typedef tlv_octet_t gtpv2c_enb_information_reporting_t;
typedef tlv_octet_t gtpv2c_ip4cp_t;
typedef tlv_octet_t gtpv2c_change_to_report_flags_t;
typedef tlv_octet_t gtpv2c_action_indication_t;
typedef tlv_octet_t gtpv2c_twan_identifier_t;
typedef tlv_octet_t gtpv2c_uli_timestamp_t;
typedef tlv_octet_t gtpv2c_mbms_flags_t;
typedef tlv_octet_t gtpv2c_ran_nas_cause_t;
typedef tlv_octet_t gtpv2c_cn_operator_selection_entity_t;
typedef tlv_octet_t gtpv2c_twmi_t;
typedef tlv_octet_t gtpv2c_node_number_t;
typedef tlv_octet_t gtpv2c_node_identifier_t;
typedef tlv_octet_t gtpv2c_presence_reporting_area_action_t;
typedef tlv_octet_t gtpv2c_presence_reporting_area_information_t;
typedef tlv_octet_t gtpv2c_twan_identifier_timestamp_t;
typedef tlv_octet_t gtpv2c_metric_t;
typedef tlv_octet_t gtpv2c_sequence_number_t;
typedef tlv_octet_t gtpv2c_apn_and_relative_capacity_t;
typedef tlv_octet_t gtpv2c_wlan_offloadability_indication_t;
typedef tlv_octet_t gtpv2c_paging_and_service_information_t;
typedef tlv_octet_t gtpv2c_integer_number_t;
typedef tlv_octet_t gtpv2c_millisecond_time_stamp_t;
typedef tlv_octet_t gtpv2c_monitoring_event_information_t;
typedef tlv_octet_t gtpv2c_ecgi_list_t;
typedef tlv_octet_t gtpv2c_remote_user_id_t;
typedef tlv_octet_t gtpv2c_remote_ue_ip_information_t;
typedef tlv_octet_t gtpv2c_ciot_optimizations_support_indication_t;
typedef tlv_octet_t gtpv2c_header_compression_configuration_t;
typedef tlv_octet_t gtpv2c_epco_t;
typedef tlv_octet_t gtpv2c_serving_plmn_rate_control_t;
typedef tlv_octet_t gtpv2c_counter_t;
/* Structure for Group Infomration Element */
typedef struct _gtpv2c_bearer_context_t {
tlv_header_t h;
gtpv2c_ebi_t eps_bearer_id; /* Instance : 0 */
gtpv2c_bearer_tft_t tft; /* Instance : 0 */
gtpv2c_f_teid_t s1_u_enodeb_f_teid_0; /* Instance : 0 */
gtpv2c_f_teid_t s4_u_sgsn_f_teid_1; /* Instance : 1 */
gtpv2c_f_teid_t s5_s8_u_sgw_f_teid_2; /* Instance : 2 */
gtpv2c_f_teid_t s5_s8_u_pgw_f_teid_3; /* Instance : 3 */
gtpv2c_f_teid_t s12_rnc_f_teid_4; /* Instance : 4 */
gtpv2c_f_teid_t s2b_u_epdg_f_teid_5; /* Instance : 5 */
gtpv2c_f_teid_t s2a_u_twan_f_teid_6; /* Instance : 6 */
gtpv2c_bearer_qos_t bearer_level_qos; /* Instance : 0 */
gtpv2c_f_teid_t s11_u_mme_f_teid_7; /* Instance : 7 */
gtpv2c_cause_t cause; /* Instance : 0 */
gtpv2c_charging_id_t charging_id; /* Instance : 0 */
gtpv2c_bearer_flags_t bearer_flags; /* Instance : 0 */
gtpv2c_pco_t protocol_configuration_options; /* Instance : 0 */
gtpv2c_epco_t extended_protocol_configuration_options; /* Instance : 0 */
gtpv2c_f_teid_t s2b_u_epdg_f_teid_8; /* Instance : 8 */
gtpv2c_f_teid_t s2b_u_pgw_f_teid_9; /* Instance : 9 */
gtpv2c_f_teid_t s2a_u_twan_f_teid_10; /* Instance : 10 */
gtpv2c_f_teid_t s2a_u_pgw_f_teid_11; /* Instance : 11 */
gtpv2c_ran_nas_cause_t ran_nas_cause; /* Instance : 0 */
gtpv2c_apco_t additional_protocol_configuration_options; /* Instance : 0 */
gtpv2c_f_container_t bss_container; /* Instance : 0 */
gtpv2c_ti_t transaction_identifier; /* Instance : 0 */
gtpv2c_packet_flow_id_t packet_flow_id; /* Instance : 0 */
} gtpv2c_bearer_context_t;
typedef struct _gtpv2c_pdn_connection_t {
tlv_header_t h;
} gtpv2c_pdn_connection_t;
typedef struct _gtpv2c_overload_control_information_t {
tlv_header_t h;
gtpv2c_sequence_number_t overload_control_sequence_number; /* Instance : 0 */
gtpv2c_metric_t overload_reduction_metric; /* Instance : 0 */
gtpv2c_epc_timer_t period_of_validity; /* Instance : 0 */
gtpv2c_apn_t list_of_access_point_name; /* Instance : 0 */
} gtpv2c_overload_control_information_t;
typedef struct _gtpv2c_load_control_information_t {
tlv_header_t h;
gtpv2c_sequence_number_t load_control_sequence_number; /* Instance : 0 */
gtpv2c_metric_t load_metric; /* Instance : 0 */
gtpv2c_apn_and_relative_capacity_t list_of_apn_and_relative_capacity; /* Instance : 0 */
} gtpv2c_load_control_information_t;
typedef struct _gtpv2c_remote_ue_context_t {
tlv_header_t h;
gtpv2c_remote_user_id_t remote_user_id; /* Instance : 0 */
gtpv2c_remote_ue_ip_information_t remote_ue_ip_information; /* Instance : 0 */
} gtpv2c_remote_ue_context_t;
typedef struct _gtpv2c_scef_pdn_connection_t {
tlv_header_t h;
gtpv2c_apn_t apn; /* Instance : 0 */
gtpv2c_ebi_t default_eps_bearer_id; /* Instance : 0 */
gtpv2c_node_identifier_t scef_id; /* Instance : 0 */
} gtpv2c_scef_pdn_connection_t;
#ifdef __cplusplus
}

View File

@ -6,88 +6,118 @@ group.append({ "ie_type" : "F-TEID", "ie_value" : "S1-U eNodeB F-TEID", "presenc
group.append({ "ie_type" : "F-TEID", "ie_value" : "S4-U SGSN F-TEID", "presence" : "C", "instance" : "1", "comment" : "This IE shall be included on the S4 interface if the S4-U interface is used."})
group.append({ "ie_type" : "F-TEID", "ie_value" : "S5/S8-U SGW F-TEID", "presence" : "C", "instance" : "2", "comment" : "This IE shall be included on the S5/S8 interface for an E-UTRAN Initial Attach, a Handover from Trusted or Untrusted Non-3GPP IP Access to E-UTRAN, a PDP Context Activation, a Handover from Trusted or Untrusted Non-3GPP IP Access to UTRAN/GERAN or a UE Requested PDN Connectivity."})
group.append({ "ie_type" : "F-TEID", "ie_value" : "S5/S8-U PGW F-TEID", "presence" : "C", "instance" : "3", "comment" : "This IE shall be included on the S4 and S11 interfaces for the TAU/RAU/Handover cases when the GTP-based S5/S8 is used."})
group.append({ "ie_type" : "F-TEID", "ie_value" : "S5/S8-U PGW F-TEID", "presence" : "CO", "instance" : "3", "comment" : "For PMIP-based S5/S8, this IE shall be included on the S11/S4 interface for the TAU/RAU/Handover cases if the PGW provided an alternate address for user plane, i.e. an IP address for user plane which is different from the IP address for control plane.When present, this IE shall contain the alternate IP address for user plane and the uplink GRE key.See NOTE 1."})
group.append({ "ie_type" : "F-TEID", "ie_value" : "S12 RNC F-TEID", "presence" : "CO", "instance" : "4", "comment" : "This IE shall be included on the S4 interface if the S12 interface is used in the Enhanced serving RNS relocation with SGW relocation procedure."})
group.append({ "ie_type" : "F-TEID", "ie_value" : "S2b-U ePDG F-TEID", "presence" : "C", "instance" : "5", "comment" : "This IE shall be included on the S2b interface for an Attach with GTP on S2b, a UE initiated Connectivity to Additional PDN with GTP on S2b, a Handover to Untrusted Non-3GPP IP Access with GTP on S2b and an Initial Attach for emergency session (GTP on S2b)."})
group.append({ "ie_type" : "F-TEID", "ie_value" : "S2a-U TWAN F-TEID", "presence" : "C", "instance" : "6", "comment" : "This IE shall be included on the S2a interface for an Initial Attach in WLAN on GTP S2a, a UE initiated Connectivity to Additional PDN with GTP on S2a and a Handover to TWAN with GTP on S2a."})
group.append({ "ie_type" : "Bearer QoS", "ie_value" : "Bearer Level QoS", "presence" : "M", "instance" : "0", "comment" : ""})
group.append({ "ie_type" : "F-TEID", "ie_value" : "S11-U MME F-TEID", "presence" : "CO", "instance" : "7", "comment" : "This IE shall be sent on the S11 interface, if S11-U is being used, during the E-UTRAN Initial Attach and UE requested PDN connectivity procedures. This IE may also be sent on the S11 interface, if S11-U is being used, during a Tracking Area Update procedure with Serving GW change, if the MME needs to establish the S11-U tunnel. See NOTE 2."})
group_list["Bearer Context"] = { "group" : group }
group_list["Bearer Context"] = { "type" : "93", "group" : group }
added_group = group_list["Bearer Context"]["group"]
type_list["Overload Control Information"] = { "type" : "180" }
group = []
group.append({ "ie_type" : "Sequence Number", "ie_value" : "Overload Control Sequence Number", "presence" : "M", "instance" : "0", "comment" : "See clause 12.3.5.1.2.1 for the description and use of this parameter."})
group.append({ "ie_type" : "Metric", "ie_value" : "Overload Reduction Metric", "presence" : "M", "instance" : "0", "comment" : "See clause 12.3.5.1.2.3 for the description and use of this parameter."})
group.append({ "ie_type" : "EPC Timer", "ie_value" : "Period of Validity", "presence" : "M", "instance" : "0", "comment" : "See clause 12.3.5.1.2.2 for the description and use of this parameter.This IE should be set to 0 if the Overload Reduction Metric is null. This IE shall be ignored by the receiver if the Overload Reduction Metric is null."})
group_list["Overload Control Information"] = { "group" : group }
group_list["Overload Control Information"] = { "type" : "180", "group" : group }
type_list["Remote UE Context"] = { "type" : "191" }
group = []
group.append({ "ie_type" : "Remote User ID", "ie_value" : "Remote User ID", "presence" : "M", "instance" : "0", "comment" : "See subclause 8.123 for the description and use of this parameter"})
group.append({ "ie_type" : "Remote UE IP Information", "ie_value" : "Remote UE IP Information", "presence" : "M", "instance" : "0", "comment" : "See subclause 8.124 for the description and use of this parameter"})
group_list["Remote UE Context"] = { "group" : group }
group.append({ "ie_type" : "Cause", "ie_value" : "Cause", "presence" : "M", "instance" : "0", "comment" : "This IE shall indicate if the bearer handling was successful, and if not, it gives information on the reason. (NOTE 1, NOTE 2, NOTE 3)"})
group.append({ "ie_type" : "Charging ID", "ie_value" : "Charging Id", "presence" : "C", "instance" : "0", "comment" : "This IE shall be included on the S5/S8 interface for an E-UTRAN initial attach, a Handover from Trusted or Untrusted Non-3GPP IP Access to E-UTRAN, a PDP Context Activation, a Handover from Trusted or Untrusted Non-3GPP IP Access to UTRAN/GERAN and a UE requested PDN connectivity."})
group.append({ "ie_type" : "Bearer Flags", "ie_value" : "Bearer Flags", "presence" : "O", "instance" : "0", "comment" : "Applicable flags are:PPC (Prohibit Payload Compression) : this flag may be set on the S5/S8 and S4 interfaces."})
group_list["Bearer Context"] = { "group" : group }
group.append({ "ie_type" : "EBI", "ie_value" : "EPS Bearer ID", "presence" : "M", "instance" : "0", "comment" : ""})
group_list["Bearer Context"] = { "group" : group }
group_list["Remote UE Context"] = { "type" : "191", "group" : group }
added_group = group_list["Bearer Context"]["group"]
added_group.append({ "ie_type" : "Cause", "ie_value" : "Cause", "presence" : "M", "instance" : "0", "comment" : "This IE shall indicate if the bearer handling was successful, and if not, it gives information on the reason. (NOTE 1, NOTE 2, NOTE 3)"})
added_group.append({ "ie_type" : "Charging ID", "ie_value" : "Charging Id", "presence" : "C", "instance" : "0", "comment" : "This IE shall be included on the S5/S8 interface for an E-UTRAN initial attach, a Handover from Trusted or Untrusted Non-3GPP IP Access to E-UTRAN, a PDP Context Activation, a Handover from Trusted or Untrusted Non-3GPP IP Access to UTRAN/GERAN and a UE requested PDN connectivity."})
added_group.append({ "ie_type" : "Bearer Flags", "ie_value" : "Bearer Flags", "presence" : "O", "instance" : "0", "comment" : "Applicable flags are:PPC (Prohibit Payload Compression) : this flag may be set on the S5/S8 and S4 interfaces."})
group_list["Bearer Context"] = { "type" : "93", "group" : added_group }
added_group = group_list["Bearer Context"]["group"]
type_list["Load Control Information"] = { "type" : "181" }
group = []
group.append({ "ie_type" : "Sequence Number", "ie_value" : "Load Control Sequence Number", "presence" : "M", "instance" : "0", "comment" : "See clause 12.2.5.1.2.1 for the description and use of this parameter."})
group.append({ "ie_type" : "Metric", "ie_value" : "Load Metric", "presence" : "M", "instance" : "0", "comment" : "See clauses 12.2.5.1.2.2 and 12.2.5.1.2.3 for the description and use of this parameter."})
group.append({ "ie_type" : "APN and Relative Capacity", "ie_value" : "List of APN and Relative Capacity", "presence" : "CO", "instance" : "0", "comment" : "The IE shall (only) be present in the PGWs APN level Load Control Information IE.For indicating the APN level load, the PGW shall include one or more instances of this IE, up to maximum of 10, with the same type and instance value, representing a list of APN(s) & its respective Relative Capacity (sharing the same Load Metric).See clause 12.2.5.1.2.3 for the description and use of this parameter.See NOTE 1."})
group_list["Load Control Information"] = { "group" : group }
group.append({ "ie_type" : "APN", "ie_value" : "List of Access Point Name (APN)", "presence" : "CO", "instance" : "0", "comment" : "The IE may (only) be present in the PGWs Overload Control Information IE.For indicating the APN level overload, the PGW shall include one or more instances of this IE, up to maximum of 10, with the same type and instance value, representing a list of APN(s) (sharing the same Overload Reduction Metric and Period of Validity). See NOTE 1."})
group_list["Overload Control Information"] = { "group" : group }
group.append({ "ie_type" : "Bearer TFT", "ie_value" : "TFT", "presence" : "M", "instance" : "0", "comment" : "This IE can contain both uplink and downlink packet filters to be sent to the UE or the TWAN/ePDG."})
group.append({ "ie_type" : "F-TEID", "ie_value" : "S1-U SGW F-TEID", "presence" : "C", "instance" : "0", "comment" : "This IE shall be sent on the S11 interface if the S1-U interface is used. If SGW supports both IPv4 and IPv6, it shall send both an IPv4 address and an IPv6 address within the S1-U SGW F-TEID IE.See NOTE 1."})
group.append({ "ie_type" : "F-TEID", "ie_value" : "S5/8-U PGW F-TEID", "presence" : "C", "instance" : "1", "comment" : "This IE shall be sent on the S4, S5/S8 and S11 interfaces for GTP-based S5/S8 interface. The MME/SGSN shall ignore the IE on S11/S4 for PMIP-based S5/S8 interface."})
group.append({ "ie_type" : "F-TEID", "ie_value" : "S12 SGW F-TEID", "presence" : "C", "instance" : "2", "comment" : "This IE shall be sent on the S4 interface if the S12 interface is used. See NOTE 1."})
group.append({ "ie_type" : "F-TEID", "ie_value" : "S4-U SGW F-TEID", "presence" : "C", "instance" : "3", "comment" : "This IE shall be sent on the S4 interface if the S4-U interface is used. See NOTE 1."})
group.append({ "ie_type" : "F-TEID", "ie_value" : "S2b-U PGW F-TEID", "presence" : "C", "instance" : "4", "comment" : "This IE (for user plane) shall be sent on the S2b interface."})
group.append({ "ie_type" : "F-TEID", "ie_value" : "S2a-U PGW F-TEID", "presence" : "C", "instance" : "5", "comment" : "This IE (for user plane) shall be sent on the S2a interface."})
group.append({ "ie_type" : "Bearer QoS", "ie_value" : "Bearer Level QoS", "presence" : "M", "instance" : "0", "comment" : ""})
group.append({ "ie_type" : "PCO", "ie_value" : "Protocol Configuration Options (PCO)", "presence" : "O", "instance" : "0", "comment" : "This IE may be sent on the S5/S8 and S4/S11 interfaces if ePCO is not supported by the UE or the network. This bearer level IE takes precedence over the PCO IE in the message body if they both exist."})
group.append({ "ie_type" : "ePCO", "ie_value" : "Extended Protocol Configuration Options (ePCO)", "presence" : "O", "instance" : "0", "comment" : "This IE may be sent on the S5/S8 and S11 interfaces if the UE and the network support ePCO."})
group_list["Bearer Context"] = { "group" : group }
group.append({ "ie_type" : "EPC Timer", "ie_value" : "Period of Validity", "presence" : "M", "instance" : "0", "comment" : "See clause 12.3.5.1.2.2 for the description and use of this parameter.This IE should be set to 0 if the Overload Reduction Metric is null. This IE shall be ignored by the receiver if the Overload Reduction Metric is null."})
group_list["Overload Control Information"] = { "group" : group }
group.append({ "ie_type" : "EBI", "ie_value" : "EPS Bearer ID", "presence" : "M", "instance" : "0", "comment" : ""})
group.append({ "ie_type" : "Cause", "ie_value" : "Cause", "presence" : "M", "instance" : "0", "comment" : "This IE shall indicate if the bearer handling was successful, and if not, it gives information on the reason."})
group.append({ "ie_type" : "F-TEID", "ie_value" : "S4-U SGSN F-TEID", "presence" : "C", "instance" : "6", "comment" : "This IE shall be sent on the S4 interface if the S4-U interface is used. See NOTE1."})
group.append({ "ie_type" : "F-TEID", "ie_value" : "S4-U SGW F-TEID", "presence" : "C", "instance" : "7", "comment" : "This IE shall be sent on the S4 interface. It shall be used to correlate the bearers with those in the Create Bearer Request. See NOTE1."})
group.append({ "ie_type" : "F-TEID", "ie_value" : "S2b-U ePDG F-TEID", "presence" : "C", "instance" : "8", "comment" : "This IE shall be sent on the S2b interface."})
group.append({ "ie_type" : "F-TEID", "ie_value" : "S2b-U PGW F-TEID", "presence" : "C", "instance" : "9", "comment" : "This IE shall be sent on the S2b interface. It shall be used to correlate the bearers with those in the Create Bearer Request."})
group.append({ "ie_type" : "F-TEID", "ie_value" : "S2a-U TWAN F-TEID", "presence" : "C", "instance" : "10", "comment" : "This IE shall be sent on the S2a interface."})
group.append({ "ie_type" : "F-TEID", "ie_value" : "S2a-U PGW F-TEID", "presence" : "C", "instance" : "11", "comment" : "This IE shall be sent on the S2a interface. It shall be used to correlate the bearers with those in the Create Bearer Request."})
group.append({ "ie_type" : "RAN/NAS Cause", "ie_value" : "RAN/NAS Cause", "presence" : "CO", "instance" : "0", "comment" : "If the bearer creation failed, the MME shall include this IE on the S11 interface to indicate the RAN cause and/or the NAS cause of the bearer creation failure, if available and if this information is permitted to be sent to the PGW operator according to MME operators policy. If both a RAN cause and a NAS cause are generated, then several IEs with the same type and instance value shall be included to represent a list of causes.The SGW shall include this IE on the S5/S8 interface if it receives it from the MME."})
group_list["Bearer Context"] = { "group" : group }
group.append({ "ie_type" : "Charging ID", "ie_value" : "Charging ID", "presence" : "C", "instance" : "0", "comment" : "This IE shall be present on the S5/S8 interface if this message is triggered due to one of the following procedures:TAU/RAU/HO with SGW relocationTAU/RAU/HO from Gn/Gp SGSN to MME/S4-SGSN "})
group.append({ "ie_type" : "Bearer Flags", "ie_value" : "Bearer Flags", "presence" : "CO", "instance" : "0", "comment" : "Applicable flags are:PPC (Prohibit Payload Compression): This flag shall be sent on the S5/S8 and the S4 interfaces at S4-SGSN relocation."})
group_list["Bearer Context"] = { "group" : group }
group.append({ "ie_type" : "APCO", "ie_value" : "Additional Protocol Configuration Options (APCO)", "presence" : "CO", "instance" : "0", "comment" : "The PGW shall include the Additional Prococol Configuration Options (APCO) IE on the S2b interface, including the list of available P-CSCF addresses, as part of the P-CSCF restoration extension procedure for the untrusted WLAN access, as specified in 3GPP TS 23.380 [61]."})
group_list["Bearer Context"] = { "group" : group }
group_list["Load Control Information"] = { "type" : "181", "group" : group }
added_group = group_list["Overload Control Information"]["group"]
added_group.append({ "ie_type" : "APN", "ie_value" : "List of Access Point Name", "presence" : "CO", "instance" : "0", "comment" : "The IE may (only) be present in the PGWs Overload Control Information IE.For indicating the APN level overload, the PGW shall include one or more instances of this IE, up to maximum of 10, with the same type and instance value, representing a list of APN(s) (sharing the same Overload Reduction Metric and Period of Validity). See NOTE 1."})
group_list["Overload Control Information"] = { "type" : "180", "group" : added_group }
added_group = group_list["Bearer Context"]["group"]
added_group.append({ "ie_type" : "PCO", "ie_value" : "Protocol Configuration Options", "presence" : "O", "instance" : "0", "comment" : "This IE may be sent on the S5/S8 and S4/S11 interfaces if ePCO is not supported by the UE or the network. This bearer level IE takes precedence over the PCO IE in the message body if they both exist."})
added_group.append({ "ie_type" : "ePCO", "ie_value" : "Extended Protocol Configuration Options", "presence" : "O", "instance" : "0", "comment" : "This IE may be sent on the S5/S8 and S11 interfaces if the UE and the network support ePCO."})
group_list["Bearer Context"] = { "type" : "93", "group" : added_group }
added_group = group_list["Load Control Information"]["group"]
added_group = group_list["Overload Control Information"]["group"]
added_group = group_list["Bearer Context"]["group"]
added_group.append({ "ie_type" : "F-TEID", "ie_value" : "S2b-U ePDG F-TEID", "presence" : "C", "instance" : "8", "comment" : "This IE shall be sent on the S2b interface."})
added_group.append({ "ie_type" : "F-TEID", "ie_value" : "S2b-U PGW F-TEID", "presence" : "C", "instance" : "9", "comment" : "This IE shall be sent on the S2b interface. It shall be used to correlate the bearers with those in the Create Bearer Request."})
added_group.append({ "ie_type" : "F-TEID", "ie_value" : "S2a-U TWAN F-TEID", "presence" : "C", "instance" : "10", "comment" : "This IE shall be sent on the S2a interface."})
added_group.append({ "ie_type" : "F-TEID", "ie_value" : "S2a-U PGW F-TEID", "presence" : "C", "instance" : "11", "comment" : "This IE shall be sent on the S2a interface. It shall be used to correlate the bearers with those in the Create Bearer Request."})
added_group.append({ "ie_type" : "RAN/NAS Cause", "ie_value" : "RAN/NAS Cause", "presence" : "CO", "instance" : "0", "comment" : "If the bearer creation failed, the MME shall include this IE on the S11 interface to indicate the RAN cause and/or the NAS cause of the bearer creation failure, if available and if this information is permitted to be sent to the PGW operator according to MME operators policy. If both a RAN cause and a NAS cause are generated, then several IEs with the same type and instance value shall be included to represent a list of causes.The SGW shall include this IE on the S5/S8 interface if it receives it from the MME."})
group_list["Bearer Context"] = { "type" : "93", "group" : added_group }
added_group = group_list["Overload Control Information"]["group"]
added_group = group_list["Overload Control Information"]["group"]
added_group = group_list["Overload Control Information"]["group"]
added_group = group_list["Bearer Context"]["group"]
added_group = group_list["Bearer Context"]["group"]
added_group = group_list["Overload Control Information"]["group"]
added_group = group_list["Bearer Context"]["group"]
added_group = group_list["Bearer Context"]["group"]
added_group = group_list["Load Control Information"]["group"]
added_group = group_list["Overload Control Information"]["group"]
added_group = group_list["Overload Control Information"]["group"]
added_group = group_list["Bearer Context"]["group"]
added_group = group_list["Load Control Information"]["group"]
added_group = group_list["Overload Control Information"]["group"]
added_group = group_list["Load Control Information"]["group"]
added_group = group_list["Overload Control Information"]["group"]
added_group = group_list["Bearer Context"]["group"]
added_group = group_list["Overload Control Information"]["group"]
added_group = group_list["Load Control Information"]["group"]
added_group = group_list["Overload Control Information"]["group"]
added_group = group_list["Bearer Context"]["group"]
added_group = group_list["Overload Control Information"]["group"]
added_group = group_list["Overload Control Information"]["group"]
added_group = group_list["Bearer Context"]["group"]
added_group.append({ "ie_type" : "APCO", "ie_value" : "Additional Protocol Configuration Options", "presence" : "CO", "instance" : "0", "comment" : "The PGW shall include the Additional Prococol Configuration Options (APCO) IE on the S2b interface, including the list of available P-CSCF addresses, as part of the P-CSCF restoration extension procedure for the untrusted WLAN access, as specified in 3GPP TS 23.380 [61]."})
group_list["Bearer Context"] = { "type" : "93", "group" : added_group }
added_group = group_list["Load Control Information"]["group"]
added_group = group_list["Overload Control Information"]["group"]
added_group = group_list["Bearer Context"]["group"]
added_group = group_list["Overload Control Information"]["group"]
added_group = group_list["Bearer Context"]["group"]
added_group = group_list["Overload Control Information"]["group"]
added_group = group_list["Bearer Context"]["group"]
added_group = group_list["Overload Control Information"]["group"]
added_group = group_list["Bearer Context"]["group"]
added_group = group_list["Bearer Context"]["group"]
added_group = group_list["Load Control Information"]["group"]
added_group = group_list["Overload Control Information"]["group"]
added_group = group_list["Bearer Context"]["group"]
added_group = group_list["Bearer Context"]["group"]
added_group = group_list["Bearer Context"]["group"]
added_group = group_list["Bearer Context"]["group"]
added_group = group_list["Load Control Information"]["group"]
added_group = group_list["Overload Control Information"]["group"]
added_group = group_list["Remote UE Context"]["group"]
added_group = group_list["Remote UE Context"]["group"]
type_list["PDN Connection"] = { "type" : "109" }
group = []
group_list["PDN Connection"] = { "group" : group }
group.append({ "ie_type" : "F-Container", "ie_value" : "BSS Container", "presence" : "CO", "instance" : "0", "comment" : "The MME/S4 SGSN shall include the Packet Flow ID, Radio Priority, SAPI, PS Handover XID parameters in the TAU/RAU/Handover procedure, if available. See Figure 8.48-2. The Container Type shall be set to 2."})
group.append({ "ie_type" : "TI", "ie_value" : "Transaction Identifier", "presence" : "C", "instance" : "0", "comment" : "This IE shall be sent over S3/S10/S16 if the UE supports A/Gb and/or Iu mode."})
group_list["Bearer Context"] = { "group" : group }
group_list["PDN Connection"] = { "type" : "109", "group" : group }
added_group = group_list["Bearer Context"]["group"]
added_group.append({ "ie_type" : "F-Container", "ie_value" : "BSS Container", "presence" : "CO", "instance" : "0", "comment" : "The MME/S4 SGSN shall include the Packet Flow ID, Radio Priority, SAPI, PS Handover XID parameters in the TAU/RAU/Handover procedure, if available. See Figure 8.48-2. The Container Type shall be set to 2."})
added_group.append({ "ie_type" : "TI", "ie_value" : "Transaction Identifier", "presence" : "C", "instance" : "0", "comment" : "This IE shall be sent over S3/S10/S16 if the UE supports A/Gb and/or Iu mode."})
group_list["Bearer Context"] = { "type" : "93", "group" : added_group }
added_group = group_list["Remote UE Context"]["group"]
type_list["SCEF PDN Connection"] = { "type" : "195" }
group = []
group.append({ "ie_type" : "APN", "ie_value" : "APN", "presence" : "M", "instance" : "0", "comment" : ""})
group.append({ "ie_type" : "EBI", "ie_value" : "Default EPS Bearer ID", "presence" : "M", "instance" : "0", "comment" : "This IE shall identify the default bearer of the SCEF PDN Connection."})
group.append({ "ie_type" : "Node Identifier", "ie_value" : "SCEF ID", "presence" : "M", "instance" : "0", "comment" : "This IE shall include the SCEF Identifier and the SCEF Realm for the APN."})
group_list["SCEF PDN Connection"] = { "group" : group }
group.append({ "ie_type" : "Packet Flow ID", "ie_value" : "Packet Flow ID", "presence" : "C", "instance" : "0", "comment" : "This IE shall be included if the message is used for PS handover and Inter RAT handover to/from A/Gb mode procedures."})
group.append({ "ie_type" : "F-TEID", "ie_value" : "eNodeB F-TEID for DL data forwarding", "presence" : "C", "instance" : "0", "comment" : "This IE shall be included for the message sent from the target MME, if the DL Transport Layer Address and DL GTP TEID are included in the SAE Bearers Admitted List of the S1AP: HANDOVER REQUEST ACKNOWLEDGE and direct forwarding or indirect forwarding without SGW change is applied."})
group.append({ "ie_type" : "F-TEID", "ie_value" : "eNodeB F-TEID for UL data forwarding", "presence" : "O", "instance" : "1", "comment" : "This IE may be included for the message sent from the target MME during the intra-EUTRAN HO, if the UL Transport Layer Address and UL GTP TEID are included in the SAE Bearers Admitted List of the S1AP: HANDOVER REQUEST ACKNOWLEDGE and direct forwarding or indirect forwarding without SGW change is applied."})
group.append({ "ie_type" : "F-TEID", "ie_value" : "SGW F-TEID for DL data forwarding", "presence" : "C", "instance" : "2", "comment" : "This SGW F-TEID shall be included when indirect data forwarding with SGW change is applied."})
group.append({ "ie_type" : "F-TEID", "ie_value" : "RNC F-TEID for DL data forwarding", "presence" : "C", "instance" : "3", "comment" : "This RNC F-TEID shall be included in the message sent from SGSN, if the target system decides using RNC F-TEID for data forwarding."})
group.append({ "ie_type" : "F-TEID", "ie_value" : "SGSN F-TEID for DL data forwarding", "presence" : "C", "instance" : "4", "comment" : "This SGSN F-TEID shall be included in the message sent from SGSN, if the target system decides using SGSN F-TEID for data forwarding."})
group.append({ "ie_type" : "F-TEID", "ie_value" : "SGW F-TEID for UL data forwarding", "presence" : "O", "instance" : "5", "comment" : "If available this SGW F-TEID may be included when indirect data forwarding with SGW change is applied, during the intra-EUTRAN HO."})
group_list["Bearer Context"] = { "group" : group }
group.append({ "ie_type" : "Bearer TFT", "ie_value" : "TFT", "presence" : "C", "instance" : "0", "comment" : "This IE shall be present if a TFT is defined for this bearer."})
group.append({ "ie_type" : "Bearer QoS", "ie_value" : "Bearer Level QoS", "presence" : "M", "instance" : "0", "comment" : ""})
group.append({ "ie_type" : "F-Container", "ie_value" : "BSS Container", "presence" : "CO", "instance" : "0", "comment" : "The MME/S4 SGSN shall include the Packet Flow ID, Radio Priority, SAPI, PS Handover XID parameters in the TAU/RAU/Handover procedure, if available. The Container Type shall be set to 2."})
group.append({ "ie_type" : "TI", "ie_value" : "Transaction Identifier", "presence" : "C", "instance" : "0", "comment" : "This IE shall be sent over S3/S10/S16 if the UE supports A/Gb and/or Iu mode."})
group_list["Bearer Context"] = { "group" : group }
group_list["SCEF PDN Connection"] = { "type" : "195", "group" : group }
added_group = group_list["Bearer Context"]["group"]
added_group.append({ "ie_type" : "Packet Flow ID", "ie_value" : "Packet Flow ID", "presence" : "C", "instance" : "0", "comment" : "This IE shall be included if the message is used for PS handover and Inter RAT handover to/from A/Gb mode procedures."})
group_list["Bearer Context"] = { "type" : "93", "group" : added_group }
added_group = group_list["PDN Connection"]["group"]
added_group = group_list["Bearer Context"]["group"]
added_group = group_list["Remote UE Context"]["group"]
added_group = group_list["Bearer Context"]["group"]
added_group = group_list["PDN Connection"]["group"]
added_group = group_list["PDN Connection"]["group"]

View File

@ -119,7 +119,7 @@ def get_cells(cells):
assert False, "Unknown IE type : [" \
+ cells[3].text + "]" + "(" + ie_type + ")"
presence = cells[1].text.encode('ascii', 'ignore')
ie_value = cells[0].text.encode('ascii', 'ignore')
ie_value = re.sub('\s*\n*\s*\([^\)]*\)*', '', cells[0].text).encode('ascii', 'ignore')
comment = cells[2].text.encode('ascii', 'ignore')
comment = re.sub('\n|\"|\'|\\\\', '', comment);
return { "ie_type" : ie_type, "ie_value" : ie_value, "presence" : presence, "instance" : instance, "comment" : comment }
@ -268,31 +268,40 @@ else:
cells = get_cells(row.cells)
if cells is None:
continue
group.append(cells)
write_cells_to_file("group", cells)
group_list[ie_name] = { "group" : group }
write_file(f, "group_list[\"" + ie_name + "\"] = { \"group\" : group }")
group_is_added = True
for ie in group:
if (cells["ie_type"], cells["instance"]) == (ie["ie_type"], ie["instance"]):
group_is_added = False
if group_is_added is True:
group.append(cells)
write_cells_to_file("group", cells)
group_list[ie_name] = { "type" : ie_type, "group" : group }
write_file(f, "group_list[\"" + ie_name + "\"] = { \"type\" : \"" + ie_type + "\", \"group\" : group }")
else:
group_list_add = False
group_list_is_added = False
added_group = group_list[ie_name]["group"]
write_file(f, "added_group = group_list[\"" + ie_name + "\"][\"group\"]")
for row in table.rows[4:]:
cells = get_cells(row.cells)
if cells is None:
continue
group_append = True
group_is_added = True
for ie in group_list[ie_name]["group"]:
if (cells["ie_type"], cells["instance"]) == (ie["ie_type"], ie["instance"]):
group_append = False
group_is_added = False
for ie in group:
if (cells["ie_type"], cells["instance"]) == (ie["ie_type"], ie["instance"]):
group_append = False
if group_append is True:
group.append(cells)
write_cells_to_file("group", cells)
group_list_add = True
if group_list_add is True:
group_list[ie_name] = { "group" : group }
write_file(f, "group_list[\"" + ie_name + "\"] = { \"group\" : group }")
group_is_added = False
if group_is_added is True:
added_group.append(cells)
write_cells_to_file("added_group", cells)
group_list_is_added = True
if group_list_is_added is True:
group_list[ie_name] = { "type" : ie_type, "group" : added_group }
write_file(f, "group_list[\"" + ie_name + "\"] = { \"type\" : \"" + ie_type + "\", \"group\" : added_group }")
f.close()
msg_list["Echo Request"]["table"] = 6
@ -317,11 +326,11 @@ for key in msg_list.keys():
if cells is None:
continue
ies_append = True
ies_is_added = True
for ie in ies:
if (cells["ie_type"], cells["instance"]) == (ie["ie_type"], ie["instance"]):
ies_append = False
if ies_append is True:
ies_is_added = False
if ies_is_added is True:
ies.append(cells)
write_cells_to_file("ies", cells)
msg_list[key]["ies"] = ies
@ -355,22 +364,41 @@ for (k, v) in sorted_type_list:
write_file(f, "#define GTPV2C_IE_" + v_upper(k) + "_TYPE " + v)
write_file(f, "")
write_file(f, "/* Infomration Element TLV Descriptor */")
for (k, v) in sorted_type_list:
write_file(f, "typedef tlv_octet_t tlv_" + v_lower(k) + "_t;")
if k not in group_list.keys():
write_file(f, "extern tlv_desc_t gtpv2c_desc_" + v_lower(k) + ";")
write_file(f, "")
#for (k, v) in sorted_msg_list:
# if "groups" in msg_list[k]:
# groups = msg_list[k]["groups"]
# type = msg_list[k]["type"]
# for group in groups:
# print group
# print "\n\n"
for (k, v) in sorted_type_list:
write_file(f, "extern tlv_desc_t tlv_desc_" + v_lower(k) + ";")
tmp = [(k, v["type"]) for k, v in group_list.items()]
sorted_group_list = sorted(tmp, key=lambda tup: int(tup[1]))
write_file(f, "/* Group Infomration Element TLV Descriptor */")
for (k, v) in sorted_group_list:
write_file(f, "extern tlv_desc_t gtpv2c_desc_" + v_lower(k) + ";")
write_file(f, "")
write_file(f, "/* Structure for Infomration Element */")
for (k, v) in sorted_type_list:
if k not in group_list.keys():
write_file(f, "typedef tlv_octet_t gtpv2c_" + v_lower(k) + "_t;")
write_file(f, "")
write_file(f, "/* Structure for Group Infomration Element */")
for (k, v) in sorted_group_list:
write_file(f, "typedef struct _gtpv2c_" + v_lower(k) + "_t {")
write_file(f, " tlv_header_t h;")
for group in group_list[k]["group"]:
if group["ie_type"] == "F-TEID":
write_file(f, " gtpv2c_" + v_lower(group["ie_type"]) + "_t " + \
v_lower(group["ie_value"]) + "_" + group["instance"] + \
"; /* Instance : " + group["instance"] + " */")
else:
write_file(f, " gtpv2c_" + v_lower(group["ie_type"]) + "_t " + \
v_lower(group["ie_value"]) + "; /* Instance : " + \
group["instance"] + " */")
write_file(f, "} gtpv2c_" + v_lower(k) + "_t;")
write_file(f, "")
f.write("""#ifdef __cplusplus
}
#endif /* __cplusplus */
@ -386,16 +414,29 @@ f.write("""#include "gtpv2c_tlv.h"
""")
for (k, v) in sorted_type_list:
write_file(f, "tlv_desc_t tlv_desc_%s =" % v_lower(k))
if k not in group_list.keys():
write_file(f, "tlv_desc_t gtpv2c_desc_%s =" % v_lower(k))
write_file(f, "{")
write_file(f, " TLV_VAR_STR,")
write_file(f, " GTPV2C_IE_%s_TYPE," % v_upper(k))
write_file(f, " 0,")
write_file(f, " 0,")
write_file(f, " sizeof(gtpv2c_%s_t)," % v_lower(k))
write_file(f, " { NULL }")
write_file(f, "};\n")
for (k, v) in sorted_group_list:
write_file(f, "tlv_desc_t gtpv2c_desc_%s =" % v_lower(k))
write_file(f, "{")
write_file(f, " TLV_VAR_STR,")
write_file(f, " TLV_COMPOUND,")
write_file(f, " GTPV2C_IE_%s_TYPE," % v_upper(k))
write_file(f, " 0,")
write_file(f, " 0,")
write_file(f, " sizeof(tlv_%s_t)," % v_lower(k))
write_file(f, " sizeof(gtpv2c_%s_t)," % v_lower(k))
write_file(f, " { NULL }")
write_file(f, "};\n")
write_file(f, "")
f.close()