/epan/dissectors/packet-gtp.c
C | 9445 lines | 7201 code | 1112 blank | 1132 comment | 318 complexity | f1cd73c8f2c7cc48f57bd0e3f69b39be MD5 | raw file
Possible License(s): GPL-2.0, BSD-3-Clause
Large files files are truncated, but you can click here to view the full file
- /* packet-gtp.c
- *
- * $Id$
- *
- * Routines for GTP dissection
- * Copyright 2001, Michal Melerowicz <michal.melerowicz@nokia.com>
- * Nicolas Balkota <balkota@mac.com>
- *
- * Updates and corrections:
- * Copyright 2006 - 2009, Anders Broman <anders.broman@ericsson.com>
- *
- * Added Bearer control mode dissection:
- * Copyright 2011, Grzegorz Szczytowski <grzegorz.szczytowski@gmail.com>
- *
- * Updates and corrections:
- * Copyright 2011-2013, Anders Broman <anders.broman@ericsson.com>
- *
- * PDCP PDU number extension header support added by Martin Isaksson <martin.isaksson@ericsson.com>
- *
- * Control Plane Request-Response tracking code Largely based on similar routines in
- * packet-ldap.c by Ronnie Sahlberg
- * Added by Kari Tiirikainen <kari.tiirikainen@nsn.com>
- *
- * Wireshark - Network traffic analyzer
- * By Gerald Combs <gerald@wireshark.org>
- * Copyright 1998 Gerald Combs
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * GTP v0: 3GPP TS 09.60
- *
- * http://www.3gpp.org/ftp/Specs/html-info/0960.htm
- *
- * GTP v1: 3GPP TS 29.060
- *
- * http://www.3gpp.org/ftp/Specs/html-info/29060.htm
- *
- * GTP': 3GPP TS 32.295
- *
- * http://www.3gpp.org/ftp/Specs/html-info/32295.htm
- */
- #include "config.h"
- #include <epan/conversation.h>
- #include <epan/packet.h>
- #include <epan/prefs.h>
- #include <epan/expert.h>
- #include <epan/sminmpec.h>
- #include <epan/asn1.h>
- #include <epan/tap.h>
- #include "packet-ppp.h"
- #include "packet-radius.h"
- #include "packet-bssap.h"
- #include "packet-gsm_a_common.h"
- #include "packet-gsm_map.h"
- #include "packet-gprscdr.h"
- #include "packet-per.h"
- #include "packet-ranap.h"
- #include "packet-bssgp.h"
- #include "packet-e212.h"
- #include "packet-gtp.h"
- static dissector_table_t ppp_subdissector_table;
- static dissector_table_t gtp_priv_ext_dissector_table;
- static dissector_table_t gtp_cdr_fmt_dissector_table;
- #define GTPv0_PORT 3386
- #define GTPv1C_PORT 2123 /* 3G Control PDU */
- #define GTPv1U_PORT 2152 /* 3G T-PDU */
- #define GTPv0_HDR_LENGTH 20
- #define GTPv1_HDR_LENGTH 12
- #define GTP_PRIME_HDR_LENGTH 6
- /* to check compliance with ETSI */
- #define GTP_MANDATORY 1
- #define GTP_OPTIONAL 2
- #define GTP_CONDITIONAL 4
- #define GTP_TPDU_AS_NONE -1
- #define GTP_TPDU_AS_TPDU 0
- #define GTP_TPDU_AS_SYNC 2
- static gboolean g_gtp_over_tcp = TRUE;
- static guint g_gtpv0_port = GTPv0_PORT;
- static guint g_gtpv1c_port = GTPv1C_PORT;
- static guint g_gtpv1u_port = GTPv1U_PORT;
- void proto_reg_handoff_gtp(void);
- static int proto_gtp = -1;
- /*KTi*/
- static int hf_gtp_ie_id = -1;
- static int hf_gtp_response_in = -1;
- static int hf_gtp_response_to = -1;
- static int hf_gtp_time = -1;
- static int hf_gtp_apn = -1;
- static int hf_gtp_cause = -1;
- static int hf_gtp_chrg_char = -1;
- static int hf_gtp_chrg_char_s = -1;
- static int hf_gtp_chrg_char_n = -1;
- static int hf_gtp_chrg_char_p = -1;
- static int hf_gtp_chrg_char_f = -1;
- static int hf_gtp_chrg_char_h = -1;
- static int hf_gtp_chrg_char_r = -1;
- static int hf_gtp_chrg_id = -1;
- static int hf_gtp_chrg_ipv4 = -1;
- static int hf_gtp_chrg_ipv6 = -1;
- static int hf_gtp_ext_flow_label = -1;
- static int hf_gtp_ext_id = -1;
- static int hf_gtp_ext_val = -1;
- static int hf_gtp_ext_hdr = -1;
- static int hf_gtp_ext_hdr_next = -1;
- static int hf_gtp_ext_hdr_length = -1;
- static int hf_gtp_ext_hdr_pdcpsn = -1;
- static int hf_gtp_ext_hdr_udp_port = -1;
- static int hf_gtp_flags = -1;
- static int hf_gtp_flags_ver = -1;
- static int hf_gtp_prime_flags_ver = -1;
- static int hf_gtp_flags_pt = -1;
- static int hf_gtp_flags_spare1 = -1;
- static int hf_gtp_flags_hdr_length = -1;
- static int hf_gtp_flags_snn = -1;
- static int hf_gtp_flags_spare2 = -1;
- static int hf_gtp_flags_e = -1;
- static int hf_gtp_flags_s = -1;
- static int hf_gtp_flags_pn = -1;
- static int hf_gtp_flow_ii = -1;
- static int hf_gtp_flow_label = -1;
- static int hf_gtp_flow_sig = -1;
- static int hf_gtp_gsn_addr_len = -1;
- static int hf_gtp_gsn_addr_type = -1;
- static int hf_gtp_gsn_ipv4 = -1;
- static int hf_gtp_gsn_ipv6 = -1;
- static int hf_gtp_imsi = -1;
- static int hf_gtp_length = -1;
- static int hf_gtp_map_cause = -1;
- static int hf_gtp_message_type = -1;
- static int hf_gtp_ms_reason = -1;
- static int hf_gtp_ms_valid = -1;
- static int hf_gtp_npdu_number = -1;
- static int hf_gtp_node_ipv4 = -1;
- static int hf_gtp_node_ipv6 = -1;
- static int hf_gtp_nsapi = -1;
- static int hf_gtp_ptmsi = -1;
- static int hf_gtp_ptmsi_sig = -1;
- static int hf_gtp_qos_version = -1;
- static int hf_gtp_qos_spare1 = -1;
- static int hf_gtp_qos_delay = -1;
- static int hf_gtp_qos_mean = -1;
- static int hf_gtp_qos_peak = -1;
- static int hf_gtp_qos_spare2 = -1;
- static int hf_gtp_qos_precedence = -1;
- static int hf_gtp_qos_spare3 = -1;
- static int hf_gtp_qos_reliability = -1;
- static int hf_gtp_qos_al_ret_priority = -1;
- static int hf_gtp_qos_traf_class = -1;
- static int hf_gtp_qos_del_order = -1;
- static int hf_gtp_qos_del_err_sdu = -1;
- static int hf_gtp_qos_max_sdu_size = -1;
- static int hf_gtp_qos_max_ul = -1;
- static int hf_gtp_qos_max_dl = -1;
- static int hf_gtp_qos_res_ber = -1;
- static int hf_gtp_qos_sdu_err_ratio = -1;
- static int hf_gtp_qos_trans_delay = -1;
- static int hf_gtp_qos_traf_handl_prio = -1;
- static int hf_gtp_qos_guar_ul = -1;
- static int hf_gtp_qos_guar_dl = -1;
- static int hf_gtp_qos_src_stat_desc = -1;
- static int hf_gtp_qos_sig_ind = -1;
- static int hf_gtp_qos_arp_pvi = -1;
- static int hf_gtp_qos_arp_pl = -1;
- static int hf_gtp_qos_arp_pci = -1;
- static int hf_gtp_qos_qci = -1;
- static int hf_gtp_qos_ul_mbr = -1;
- static int hf_gtp_qos_dl_mbr = -1;
- static int hf_gtp_qos_ul_gbr = -1;
- static int hf_gtp_qos_dl_gbr = -1;
- static int hf_gtp_qos_ul_apn_ambr = -1;
- static int hf_gtp_qos_dl_apn_ambr = -1;
- static int hf_gtp_pkt_flow_id = -1;
- static int hf_gtp_rab_gtpu_dn = -1;
- static int hf_gtp_rab_gtpu_up = -1;
- static int hf_gtp_rab_pdu_dn = -1;
- static int hf_gtp_rab_pdu_up = -1;
- static int hf_gtp_rai_rac = -1;
- static int hf_gtp_rai_lac = -1;
- static int hf_gtp_tac = -1;
- static int hf_gtp_eci = -1;
- static int hf_gtp_ranap_cause = -1;
- static int hf_gtp_recovery = -1;
- static int hf_gtp_reorder = -1;
- static int hf_gtp_rnc_ipv4 = -1;
- static int hf_gtp_rnc_ipv6 = -1;
- static int hf_gtp_rp = -1;
- static int hf_gtp_rp_nsapi = -1;
- static int hf_gtp_rp_sms = -1;
- static int hf_gtp_rp_spare = -1;
- static int hf_gtp_sel_mode = -1;
- static int hf_gtp_seq_number = -1;
- static int hf_gtp_sndcp_number = -1;
- static int hf_gtp_tear_ind = -1;
- static int hf_gtp_teid = -1;
- static int hf_gtp_teid_cp = -1;
- static int hf_gtp_ulink_teid_cp = -1;
- static int hf_gtp_teid_data = -1;
- static int hf_gtp_ulink_teid_data = -1;
- static int hf_gtp_teid_ii = -1;
- static int hf_gtp_tft_code = -1;
- static int hf_gtp_tft_spare = -1;
- static int hf_gtp_tft_number = -1;
- static int hf_gtp_tft_eval = -1;
- static int hf_gtp_tid = -1;
- static int hf_gtp_tlli = -1;
- static int hf_gtp_tr_comm = -1;
- static int hf_gtp_trace_ref = -1;
- static int hf_gtp_trace_type = -1;
- static int hf_gtp_user_addr_pdp_org = -1;
- static int hf_gtp_user_addr_pdp_type = -1;
- static int hf_gtp_user_ipv4 = -1;
- static int hf_gtp_user_ipv6 = -1;
- static int hf_gtp_security_mode = -1;
- static int hf_gtp_no_of_vectors = -1;
- static int hf_gtp_cipher_algorithm = -1;
- static int hf_gtp_cksn_ksi = -1;
- static int hf_gtp_cksn = -1;
- static int hf_gtp_ksi = -1;
- static int hf_gtp_ext_length = -1;
- static int hf_gtp_utran_field = -1;
- static int hf_gtp_ext_apn_res = -1;
- static int hf_gtp_ext_rat_type = -1;
- static int hf_gtp_ext_geo_loc_type = -1;
- static int hf_gtp_ext_sac = -1;
- static int hf_gtp_ext_imeisv = -1;
- static int hf_gtp_target_rnc_id = -1;
- static int hf_gtp_target_ext_rnc_id = -1;
- static int hf_gtp_bssgp_cause = -1;
- static int hf_gtp_bssgp_ra_discriminator = -1;
- static int hf_gtp_sapi = -1;
- static int hf_gtp_xid_par_len = -1;
- static int hf_gtp_earp_pvi = -1;
- static int hf_gtp_earp_pl = -1;
- static int hf_gtp_earp_pci = -1;
- static int hf_gtp_cdr_app = -1;
- static int hf_gtp_cdr_rel = -1;
- static int hf_gtp_cdr_ver = -1;
- static int hf_gtp_cmn_flg_ppc = -1;
- static int hf_gtp_cmn_flg_mbs_srv_type = -1;
- static int hf_gtp_cmn_flg_mbs_ran_pcd_rdy = -1;
- static int hf_gtp_cmn_flg_mbs_cnt_inf = -1;
- static int hf_gtp_cmn_flg_nrsn = -1;
- static int hf_gtp_cmn_flg_no_qos_neg = -1;
- static int hf_gtp_cmn_flg_upgrd_qos_sup = -1;
- static int hf_gtp_cmn_flg_dual_addr_bearer_flg = -1;
- static int hf_gtp_tmgi = -1;
- static int hf_gtp_mbms_ses_dur_days = -1;
- static int hf_gtp_mbms_ses_dur_s = -1;
- static int hf_gtp_no_of_mbms_sa_codes = -1;
- static int hf_gtp_mbms_sa_code = -1;
- static int hf_gtp_mbs_2g_3g_ind = -1;
- static int hf_gtp_time_2_dta_tr = -1;
- static int hf_gtp_ext_ei = -1;
- static int hf_gtp_ext_gcsi = -1;
- static int hf_gtp_ext_dti = -1;
- static int hf_gtp_ra_prio_lcs = -1;
- static int hf_gtp_bcm = -1;
- static int hf_gtp_fqdn = -1;
- static int hf_gtp_rim_routing_addr = -1;
- static int hf_gtp_mbms_flow_id = -1;
- static int hf_gtp_mbms_dist_indic = -1;
- static int hf_gtp_ext_apn_ambr_ul = -1;
- static int hf_gtp_ext_apn_ambr_dl = -1;
- static int hf_gtp_ext_sub_ue_ambr_ul = -1;
- static int hf_gtp_ext_sub_ue_ambr_dl = -1;
- static int hf_gtp_ext_auth_ue_ambr_ul = -1;
- static int hf_gtp_ext_auth_ue_ambr_dl = -1;
- static int hf_gtp_ext_auth_apn_ambr_ul = -1;
- static int hf_gtp_ext_auth_apn_ambr_dl = -1;
- static int hf_gtp_ext_ggsn_back_off_time_units = -1;
- static int hf_gtp_ext_ggsn_back_off_timer = -1;
- static int hf_gtp_higher_br_16mb_flg = -1;
- static int hf_gtp_max_mbr_apn_ambr_ul = -1;
- static int hf_gtp_max_mbr_apn_ambr_dl = -1;
- /* Initialize the subtree pointers */
- static gint ett_gtp = -1;
- static gint ett_gtp_flags = -1;
- static gint ett_gtp_ext = -1;
- static gint ett_gtp_ext_hdr = -1;
- static gint ett_gtp_qos = -1;
- static gint ett_gtp_qos_arp = -1;
- static gint ett_gtp_flow_ii = -1;
- static gint ett_gtp_rp = -1;
- static gint ett_gtp_pkt_flow_id = -1;
- static gint ett_gtp_trip = -1;
- static gint ett_gtp_quint = -1;
- static gint ett_gtp_proto = -1;
- static gint ett_gtp_gsn_addr = -1;
- static gint ett_gtp_tft = -1;
- static gint ett_gtp_tft_pf = -1;
- static gint ett_gtp_tft_flags = -1;
- static gint ett_gtp_rab_setup = -1;
- static gint ett_gtp_hdr_list = -1;
- static gint ett_gtp_node_addr = -1;
- static gint ett_gtp_rel_pack = -1;
- static gint ett_gtp_can_pack = -1;
- static gint ett_gtp_data_resp = -1;
- static gint ett_gtp_net_cap = -1;
- static gint ett_gtp_tmgi = -1;
- static gint ett_gtp_cdr_ver = -1;
- static gint ett_gtp_cdr_dr = -1;
- static gint ett_gtp_uli_rai = -1;
- static gboolean g_gtp_etsi_order = FALSE;
- static gint dissect_tpdu_as = -1;
- static const enum_val_t gtp_decode_tpdu_as[] = {
- {"none", "None", GTP_TPDU_AS_NONE},
- {"tpdu", "TPDU", GTP_TPDU_AS_TPDU},
- {"sync", "SYNC", GTP_TPDU_AS_SYNC},
- {NULL, NULL, 0}
- };
- static int gtp_tap = -1;
- static int gtpv1_tap = -1;
- /* Definition of flags masks */
- #define GTP_VER_MASK 0xE0
- static const true_false_string gtp_hdr_length_vals = {
- "6-Octet Header",
- "20-Octet Header"
- };
- static const value_string ver_types[] = {
- {0, "GTP release 97/98 version"},
- {1, "GTP release 99 version"},
- {2, "GTPv2-C"},
- {3, "None"},
- {4, "None"},
- {5, "None"},
- {6, "None"},
- {7, "None"},
- {0, NULL}
- };
- static const value_string pt_types[] = {
- {0, "GTP'"},
- {1, "GTP"},
- {0, NULL}
- };
- #define GTP_PT_MASK 0x10
- #define GTP_SPARE1_MASK 0x0E
- #define GTP_SPARE2_MASK 0x08
- #define GTP_E_MASK 0x04
- #define GTP_S_MASK 0x02
- #define GTP_SNN_MASK 0x01
- #define GTP_PN_MASK 0x01
- #define GTP_EXT_HDR_NO_MORE_EXT_HDRS 0x00
- #define GTP_EXT_HDR_MBMS_SUPPORT_IND 0x01
- #define GTP_EXT_HDR_MS_INFO_CHG_REP_SUPP_IND 0x02
- #define GTP_EXT_HDR_UDP_PORT 0x40
- #define GTP_EXT_HDR_PDCP_SN 0xC0
- #define GTP_EXT_HDR_SUSPEND_REQ 0xC1
- #define GTP_EXT_HDR_SUSPEND_RESP 0xC2
- static const value_string next_extension_header_fieldvals[] = {
- {GTP_EXT_HDR_NO_MORE_EXT_HDRS, "No more extension headers"},
- {GTP_EXT_HDR_MBMS_SUPPORT_IND, "MBMS support indication"},
- {GTP_EXT_HDR_MS_INFO_CHG_REP_SUPP_IND, "MS Info Change Reporting support indication"},
- {GTP_EXT_HDR_UDP_PORT, "UDP Port number"},
- {GTP_EXT_HDR_PDCP_SN, "PDCP PDU number"},
- {GTP_EXT_HDR_SUSPEND_REQ, "Suspend Request"},
- {GTP_EXT_HDR_SUSPEND_RESP, "Suspend Response"},
- {0, NULL}
- };
- /* Definition of 3G charging characteristics masks */
- #define GTP_MASK_CHRG_CHAR_S 0xF000
- #define GTP_MASK_CHRG_CHAR_N 0x0800
- #define GTP_MASK_CHRG_CHAR_P 0x0400
- #define GTP_MASK_CHRG_CHAR_F 0x0200
- #define GTP_MASK_CHRG_CHAR_H 0x0100
- #define GTP_MASK_CHRG_CHAR_R 0x00FF
- /* Traffic Flow Templates mask */
- #define GTPv1_TFT_CODE_MASK 0xE0
- #define GTPv1_TFT_SPARE_MASK 0x10
- #define GTPv1_TFT_NUMBER_MASK 0x0F
- /* Definition of GSN Address masks */
- #define GTP_EXT_GSN_ADDR_TYPE_MASK 0xC0
- #define GTP_EXT_GSN_ADDR_LEN_MASK 0x3F
- /* Definition of QoS masks */
- #define GTP_EXT_QOS_SPARE1_MASK 0xC0
- #define GTP_EXT_QOS_DELAY_MASK 0x38
- #define GTP_EXT_QOS_RELIABILITY_MASK 0x07
- #define GTP_EXT_QOS_PEAK_MASK 0xF0
- #define GTP_EXT_QOS_SPARE2_MASK 0x08
- #define GTP_EXT_QOS_PRECEDENCE_MASK 0x07
- #define GTP_EXT_QOS_SPARE3_MASK 0xE0
- #define GTP_EXT_QOS_MEAN_MASK 0x1F
- #define GTP_EXT_QOS_TRAF_CLASS_MASK 0xE0
- #define GTP_EXT_QOS_DEL_ORDER_MASK 0x18
- #define GTP_EXT_QOS_DEL_ERR_SDU_MASK 0x07
- #define GTP_EXT_QOS_RES_BER_MASK 0xF0
- #define GTP_EXT_QOS_SDU_ERR_RATIO_MASK 0x0F
- #define GTP_EXT_QOS_TRANS_DELAY_MASK 0xFC
- #define GTP_EXT_QOS_TRAF_HANDL_PRIORITY_MASK 0x03
- #define GTP_EXT_QOS_SRC_STAT_DESC_MASK 0x0F
- #define GTP_EXT_QOS_SIG_IND_MASK 0x10
- /* Definition of Radio Priority's masks */
- #define GTPv1_EXT_RP_NSAPI_MASK 0xF0
- #define GTPv1_EXT_RP_SPARE_MASK 0x08
- #define GTPv1_EXT_RP_MASK 0x07
- static const value_string gtp_message_type[] = {
- {GTP_MSG_UNKNOWN, "For future use"},
- {GTP_MSG_ECHO_REQ, "Echo request"},
- {GTP_MSG_ECHO_RESP, "Echo response"},
- {GTP_MSG_VER_NOT_SUPP, "Version not supported"},
- {GTP_MSG_NODE_ALIVE_REQ, "Node alive request"},
- {GTP_MSG_NODE_ALIVE_RESP, "Node alive response"},
- {GTP_MSG_REDIR_REQ, "Redirection request"},
- {GTP_MSG_REDIR_RESP, "Redirection response"},
- /*
- * 8-15 For future use. Shall not be sent. If received,
- * shall be treated as an Unknown message.
- */
- #if 0
- { 8, "Unknown message(For future use)"},
- { 9, "Unknown message(For future use)"},
- { 10, "Unknown message(For future use)"},
- { 11, "Unknown message(For future use)"},
- { 12, "Unknown message(For future use)"},
- { 13, "Unknown message(For future use)"},
- { 14, "Unknown message(For future use)"},
- { 15, "Unknown message(For future use)"},
- #endif
- {GTP_MSG_CREATE_PDP_REQ, "Create PDP context request"},
- {GTP_MSG_CREATE_PDP_RESP, "Create PDP context response"},
- {GTP_MSG_UPDATE_PDP_REQ, "Update PDP context request"},
- {GTP_MSG_UPDATE_PDP_RESP, "Update PDP context response"},
- {GTP_MSG_DELETE_PDP_REQ, "Delete PDP context request"},
- {GTP_MSG_DELETE_PDP_RESP, "Delete PDP context response"},
- {GTP_MSG_INIT_PDP_CONTEXT_ACT_REQ, "Initiate PDP Context Activation Request"},
- {GTP_MSG_INIT_PDP_CONTEXT_ACT_RESP, "Initiate PDP Context Activation Response"},
- /*
- * 24-25 For future use. Shall not be sent. If received,
- * shall be treated as an Unknown message.
- */
- {GTP_MSG_DELETE_AA_PDP_REQ, "Delete AA PDP Context Request"},
- {GTP_MSG_DELETE_AA_PDP_RESP, "Delete AA PDP Context Response"},
- {GTP_MSG_ERR_IND, "Error indication"},
- {GTP_MSG_PDU_NOTIFY_REQ, "PDU notification request"},
- {GTP_MSG_PDU_NOTIFY_RESP, "PDU notification response"},
- {GTP_MSG_PDU_NOTIFY_REJ_REQ, "PDU notification reject request"},
- {GTP_MSG_PDU_NOTIFY_REJ_RESP, "PDU notification reject response"},
- {GTP_MSG_SUPP_EXT_HDR, "Supported extension header notification"},
- {GTP_MSG_SEND_ROUT_INFO_REQ, "Send routing information for GPRS request"},
- {GTP_MSG_SEND_ROUT_INFO_RESP, "Send routing information for GPRS response"},
- {GTP_MSG_FAIL_REP_REQ, "Failure report request"},
- {GTP_MSG_FAIL_REP_RESP, "Failure report response"},
- {GTP_MSG_MS_PRESENT_REQ, "Note MS GPRS present request"},
- {GTP_MSG_MS_PRESENT_RESP, "Note MS GPRS present response"},
- /* 38-47 For future use. Shall not be sent. If received,
- * shall be treated as an Unknown message.
- */
- #if 0
- { 38, "Unknown message(For future use)"},
- { 39, "Unknown message(For future use)"},
- { 40, "Unknown message(For future use)"},
- { 41, "Unknown message(For future use)"},
- { 42, "Unknown message(For future use)"},
- { 43, "Unknown message(For future use)"},
- { 44, "Unknown message(For future use)"},
- { 45, "Unknown message(For future use)"},
- { 46, "Unknown message(For future use)"},
- { 47, "Unknown message(For future use)"},
- #endif
- {GTP_MSG_IDENT_REQ, "Identification request"},
- {GTP_MSG_IDENT_RESP, "Identification response"},
- {GTP_MSG_SGSN_CNTXT_REQ, "SGSN context request"},
- {GTP_MSG_SGSN_CNTXT_RESP, "SGSN context response"},
- {GTP_MSG_SGSN_CNTXT_ACK, "SGSN context acknowledgement"},
- {GTP_MSG_FORW_RELOC_REQ, "Forward relocation request"},
- {GTP_MSG_FORW_RELOC_RESP, "Forward relocation response"},
- {GTP_MSG_FORW_RELOC_COMP, "Forward relocation complete"},
- {GTP_MSG_RELOC_CANCEL_REQ, "Relocation cancel request"},
- {GTP_MSG_RELOC_CANCEL_RESP, "Relocation cancel response"},
- {GTP_MSG_FORW_SRNS_CNTXT, "Forward SRNS context"},
- {GTP_MSG_FORW_RELOC_ACK, "Forward relocation complete acknowledge"},
- {GTP_MSG_FORW_SRNS_CNTXT_ACK, "Forward SRNS context acknowledge"},
- /* 61-69 For future use. Shall not be sent. If received,
- * shall be treated as an Unknown message.
- */
- #if 0
- { 61, "Unknown message(For future use)"},
- { 62, "Unknown message(For future use)"},
- { 63, "Unknown message(For future use)"},
- { 64, "Unknown message(For future use)"},
- { 65, "Unknown message(For future use)"},
- { 66, "Unknown message(For future use)"},
- { 67, "Unknown message(For future use)"},
- { 68, "Unknown message(For future use)"},
- { 69, "Unknown message(For future use)"},
- #endif
- {GTP_MSG_RAN_INFO_RELAY, "RAN Information Relay"},
- /* 71-95 For future use. Shall not be sent. If received,
- * shall be treated as an Unknown message.
- */
- #if 0
- { 71, "Unknown message(For future use)"},
- { 72, "Unknown message(For future use)"},
- { 73, "Unknown message(For future use)"},
- { 74, "Unknown message(For future use)"},
- { 75, "Unknown message(For future use)"},
- { 76, "Unknown message(For future use)"},
- { 77, "Unknown message(For future use)"},
- { 78, "Unknown message(For future use)"},
- { 79, "Unknown message(For future use)"},
- { 80, "Unknown message(For future use)"},
- { 81, "Unknown message(For future use)"},
- { 82, "Unknown message(For future use)"},
- { 83, "Unknown message(For future use)"},
- { 84, "Unknown message(For future use)"},
- { 85, "Unknown message(For future use)"},
- { 86, "Unknown message(For future use)"},
- { 87, "Unknown message(For future use)"},
- { 88, "Unknown message(For future use)"},
- { 89, "Unknown message(For future use)"},
- { 90, "Unknown message(For future use)"},
- { 91, "Unknown message(For future use)"},
- { 92, "Unknown message(For future use)"},
- { 93, "Unknown message(For future use)"},
- { 94, "Unknown message(For future use)"},
- { 95, "Unknown message(For future use)"},
- #endif
- {GTP_MBMS_NOTIFY_REQ, "MBMS Notification Request"},
- {GTP_MBMS_NOTIFY_RES, "MBMS Notification Response"},
- {GTP_MBMS_NOTIFY_REJ_REQ, "MBMS Notification Reject Request"},
- {GTP_MBMS_NOTIFY_REJ_RES, "MBMS Notification Reject Response"},
- {GTP_CREATE_MBMS_CNTXT_REQ, "Create MBMS Context Request"},
- {GTP_CREATE_MBMS_CNTXT_RES, "Create MBMS Context Response"},
- {GTP_UPD_MBMS_CNTXT_REQ, "Update MBMS Context Request"},
- {GTP_UPD_MBMS_CNTXT_RES, "Update MBMS Context Response"},
- {GTP_DEL_MBMS_CNTXT_REQ, "Delete MBMS Context Request"},
- {GTP_DEL_MBMS_CNTXT_RES, "Delete MBMS Context Response"},
- /* 106 - 111 For future use. Shall not be sent. If received,
- * shall be treated as an Unknown message.
- */
- #if 0
- { 106, "Unknown message(For future use)"},
- { 107, "Unknown message(For future use)"},
- { 108, "Unknown message(For future use)"},
- { 109, "Unknown message(For future use)"},
- { 110, "Unknown message(For future use)"},
- { 111, "Unknown message(For future use)"},
- #endif
- {GTP_MBMS_REG_REQ, "MBMS Registration Request"},
- {GTP_MBMS_REG_RES, "MBMS Registration Response"},
- {GTP_MBMS_DE_REG_REQ, "MBMS De-Registration Request"},
- {GTP_MBMS_DE_REG_RES, "MBMS De-Registration Response"},
- {GTP_MBMS_SES_START_REQ, "MBMS Session Start Request"},
- {GTP_MBMS_SES_START_RES, "MBMS Session Start Response"},
- {GTP_MBMS_SES_STOP_REQ, "MBMS Session Stop Request"},
- {GTP_MBMS_SES_STOP_RES, "MBMS Session Stop Response"},
- {GTP_MBMS_SES_UPD_REQ, "MBMS Session Update Request"},
- {GTP_MBMS_SES_UPD_RES, "MBMS Session Update Response"},
- /* 122-127 For future use. Shall not be sent.
- * If received, shall be treated as an Unknown message.
- */
- #if 0
- { 122, "Unknown message(For future use)"},
- { 123, "Unknown message(For future use)"},
- { 124, "Unknown message(For future use)"},
- { 125, "Unknown message(For future use)"},
- { 126, "Unknown message(For future use)"},
- { 127, "Unknown message(For future use)"},
- #endif
- {GTP_MS_INFO_CNG_NOT_REQ, "MS Info Change Notification Request"},
- {GTP_MS_INFO_CNG_NOT_RES, "MS Info Change Notification Response"},
- /* 130-239 For future use. Shall not be sent. If received,
- * shall be treated as an Unknown message.
- */
- #if 0
- { 130, "Unknown message(For future use)"},
- { 131, "Unknown message(For future use)"},
- { 132, "Unknown message(For future use)"},
- { 133, "Unknown message(For future use)"},
- { 134, "Unknown message(For future use)"},
- { 135, "Unknown message(For future use)"},
- { 136, "Unknown message(For future use)"},
- { 137, "Unknown message(For future use)"},
- { 138, "Unknown message(For future use)"},
- { 139, "Unknown message(For future use)"},
- { 140, "Unknown message(For future use)"},
- { 141, "Unknown message(For future use)"},
- { 142, "Unknown message(For future use)"},
- { 143, "Unknown message(For future use)"},
- { 144, "Unknown message(For future use)"},
- { 145, "Unknown message(For future use)"},
- { 146, "Unknown message(For future use)"},
- { 147, "Unknown message(For future use)"},
- { 148, "Unknown message(For future use)"},
- { 149, "Unknown message(For future use)"},
- { 150, "Unknown message(For future use)"},
- { 151, "Unknown message(For future use)"},
- { 152, "Unknown message(For future use)"},
- { 153, "Unknown message(For future use)"},
- { 154, "Unknown message(For future use)"},
- { 155, "Unknown message(For future use)"},
- { 156, "Unknown message(For future use)"},
- { 157, "Unknown message(For future use)"},
- { 158, "Unknown message(For future use)"},
- { 159, "Unknown message(For future use)"},
- #endif
- {GTP_MSG_DATA_TRANSF_REQ, "Data record transfer request"},
- {GTP_MSG_DATA_TRANSF_RESP, "Data record transfer response"},
- /* 242-253 For future use. Shall not be sent. If received,
- * shall be treated as an Unknown message.
- */
- #if 0
- { 242, "Unknown message(For future use)"},
- { 243, "Unknown message(For future use)"},
- { 244, "Unknown message(For future use)"},
- { 245, "Unknown message(For future use)"},
- { 246, "Unknown message(For future use)"},
- { 247, "Unknown message(For future use)"},
- { 248, "Unknown message(For future use)"},
- { 249, "Unknown message(For future use)"},
- { 250, "Unknown message(For future use)"},
- { 251, "Unknown message(For future use)"},
- { 252, "Unknown message(For future use)"},
- { 253, "Unknown message(For future use)"},
- #endif
- {GTP_MSG_END_MARKER, "End Marker"},
- {GTP_MSG_TPDU, "T-PDU"},
- {0, NULL}
- };
- static value_string_ext gtp_message_type_ext = VALUE_STRING_EXT_INIT(gtp_message_type);
- /* definitions of fields in extension header */
- #define GTP_EXT_CAUSE 0x01
- #define GTP_EXT_IMSI 0x02
- #define GTP_EXT_RAI 0x03
- #define GTP_EXT_TLLI 0x04
- #define GTP_EXT_PTMSI 0x05
- #define GTP_EXT_QOS_GPRS 0x06
- #define GTP_EXT_REORDER 0x08
- #define GTP_EXT_AUTH_TRI 0x09
- #define GTP_EXT_MAP_CAUSE 0x0B
- #define GTP_EXT_PTMSI_SIG 0x0C
- #define GTP_EXT_MS_VALID 0x0D
- #define GTP_EXT_RECOVER 0x0E
- #define GTP_EXT_SEL_MODE 0x0F
- #define GTP_EXT_16 0x10
- #define GTP_EXT_FLOW_LABEL 0x10
- #define GTP_EXT_TEID 0x10 /* 0xFF10 3G */
- #define GTP_EXT_17 0x11
- #define GTP_EXT_FLOW_SIG 0x11
- #define GTP_EXT_TEID_CP 0x11 /* 0xFF11 3G */
- #define GTP_EXT_18 0x12
- #define GTP_EXT_FLOW_II 0x12
- #define GTP_EXT_TEID_II 0x12 /* 0xFF12 3G */
- #define GTP_EXT_19 0x13 /* 19 TV Teardown Ind 7.7.16 */
- #define GTP_EXT_MS_REASON 0x13 /* same as 0x1D GTPv1_EXT_MS_REASON */
- #define GTP_EXT_TEAR_IND 0x13 /* 0xFF13 3G */
- #define GTP_EXT_NSAPI 0x14 /* 3G */
- #define GTP_EXT_RANAP_CAUSE 0x15 /* 3G */
- #define GTP_EXT_RAB_CNTXT 0x16 /* 3G */
- #define GTP_EXT_RP_SMS 0x17 /* 3G */
- #define GTP_EXT_RP 0x18 /* 3G */
- #define GTP_EXT_PKT_FLOW_ID 0x19 /* 3G */
- #define GTP_EXT_CHRG_CHAR 0x1A /* 3G */
- #define GTP_EXT_TRACE_REF 0x1B /* 3G */
- #define GTP_EXT_TRACE_TYPE 0x1C /* 3G */
- #define GTPv1_EXT_MS_REASON 0x1D /* 3G 29 TV MS Not Reachable Reason 7.7.25A */
- /* 117-126 Reserved for the GPRS charging protocol (see GTP' in 3GPP TS 32.295 [33]) */
- #define GTP_EXT_TR_COMM 0x7E /* charging */
- #define GTP_EXT_CHRG_ID 0x7F /* 127 TV Charging ID 7.7.26 */
- #define GTP_EXT_USER_ADDR 0x80
- #define GTP_EXT_MM_CNTXT 0x81
- #define GTP_EXT_PDP_CNTXT 0x82
- #define GTP_EXT_APN 0x83
- #define GTP_EXT_PROTO_CONF 0x84
- #define GTP_EXT_GSN_ADDR 0x85
- #define GTP_EXT_MSISDN 0x86
- #define GTP_EXT_QOS_UMTS 0x87 /* 3G */
- #define GTP_EXT_AUTH_QUI 0x88 /* 3G */
- #define GTP_EXT_TFT 0x89 /* 3G */
- #define GTP_EXT_TARGET_ID 0x8A /* 3G */
- #define GTP_EXT_UTRAN_CONT 0x8B /* 3G */
- #define GTP_EXT_RAB_SETUP 0x8C /* 3G */
- #define GTP_EXT_HDR_LIST 0x8D /* 3G */
- #define GTP_EXT_TRIGGER_ID 0x8E /* 3G 142 7.7.41 */
- #define GTP_EXT_OMC_ID 0x8F /* 3G 143 TLV OMC Identity 7.7.42 */
- #define GTP_EXT_RAN_TR_CONT 0x90 /* 3G 144 TLV RAN Transparent Container 7.7.43 */
- #define GTP_EXT_PDP_CONT_PRIO 0x91 /* 3G 145 TLV PDP Context Prioritization 7.7.45 */
- #define GTP_EXT_ADD_RAB_SETUP_INF 0x92 /* 3G 146 TLV Additional RAB Setup Information 7.7.45A */
- #define GTP_EXT_SSGN_NO 0x93 /* 3G 147 TLV SGSN Number 7.7.47 */
- #define GTP_EXT_COMMON_FLGS 0x94 /* 3G 148 TLV Common Flags 7.7.48 */
- #define GTP_EXT_APN_RES 0x95 /* 3G 149 */
- #define GTP_EXT_RA_PRIO_LCS 0x96 /* 3G 150 TLV Radio Priority LCS 7.7.25B */
- #define GTP_EXT_RAT_TYPE 0x97 /* 3G 151 TLV RAT Type 7.7.50 */
- #define GTP_EXT_USR_LOC_INF 0x98 /* 3G 152 TLV User Location Information 7.7.51 */
- #define GTP_EXT_MS_TIME_ZONE 0x99 /* 3G 153 TLV MS Time Zone 7.7.52 */
- #define GTP_EXT_IMEISV 0x9A /* 3G 154 TLV IMEI(SV) 7.7.53 */
- #define GTP_EXT_CAMEL_CHG_INF_CON 0x9B /* 3G 155 TLV CAMEL Charging Information Container 7.7.54 */
- #define GTP_EXT_MBMS_UE_CTX 0x9C /* 3G 156 TLV MBMS UE Context 7.7.55 */
- #define GTP_EXT_TMGI 0x9D /* 3G 157 TLV Temporary Mobile Group Identity (TMGI) 7.7.56 */
- #define GTP_EXT_RIM_RA 0x9E /* 3G 158 TLV RIM Routing Address 7.7.57 */
- #define GTP_EXT_MBMS_PROT_CONF_OPT 0x9F /* 3G 159 TLV MBMS Protocol Configuration Options 7.7.58 */
- #define GTP_EXT_MBMS_SA 0xA0 /* 3G 160 TLV MBMS Service Area 7.7.60 */
- #define GTP_EXT_SRC_RNC_PDP_CTX_INF 0xA1 /* 3G 161 TLV Source RNC PDCP context info 7.7.61 */
- #define GTP_EXT_ADD_TRS_INF 0xA2 /* 3G 162 TLV Additional Trace Info 7.7.62 */
- #define GTP_EXT_HOP_COUNT 0xA3 /* 3G 163 TLV Hop Counter 7.7.63 */
- #define GTP_EXT_SEL_PLMN_ID 0xA4 /* 3G 164 TLV Selected PLMN ID 7.7.64 */
- #define GTP_EXT_MBMS_SES_ID 0xA5 /* 3G 165 TLV MBMS Session Identifier 7.7.65 */
- #define GTP_EXT_MBMS_2G_3G_IND 0xA6 /* 3G 166 TLV MBMS 2G/3G Indicator 7.7.66 */
- #define GTP_EXT_ENH_NSAPI 0xA7 /* 3G 167 TLV Enhanced NSAPI 7.7.67 */
- #define GTP_EXT_MBMS_SES_DUR 0xA8 /* 3G 168 TLV MBMS Session Duration 7.7.59 */
- #define GTP_EXT_ADD_MBMS_TRS_INF 0xA9 /* 3G 169 TLV Additional MBMS Trace Info 7.7.68 */
- #define GTP_EXT_MBMS_SES_ID_REP_NO 0xAA /* 3G 170 TLV MBMS Session Identity Repetition Number 7.7.69 */
- #define GTP_EXT_MBMS_TIME_TO_DATA_TR 0xAB /* 3G 171 TLV MBMS Time To Data Transfer 7.7.70 */
- #define GTP_EXT_PS_HO_REQ_CTX 0xAC /* 3G 172 TLV PS Handover Request Context 7.7.71 */
- #define GTP_EXT_BSS_CONT 0xAD /* 3G 173 TLV BSS Container 7.7.72 */
- #define GTP_EXT_CELL_ID 0xAE /* 3G 174 TLV Cell Identification 7.7.73 */
- #define GTP_EXT_PDU_NO 0xAF /* 3G 175 TLV PDU Numbers 7.7.74 */
- #define GTP_EXT_BSSGP_CAUSE 0xB0 /* 3G 176 TLV BSSGP Cause 7.7.75 */
- #define GTP_EXT_REQ_MBMS_BEARER_CAP 0xB1 /* 3G 177 TLV Required MBMS bearer capabilities 7.7.76 */
- #define GTP_EXT_RIM_ROUTING_ADDR_DISC 0xB2 /* 3G 178 TLV RIM Routing Address Discriminator 7.7.77 */
- #define GTP_EXT_LIST_OF_SETUP_PFCS 0xB3 /* 3G 179 TLV List of set-up PFCs 7.7.78 */
- #define GTP_EXT_PS_HANDOVER_XIP_PAR 0xB4 /* 3G 180 TLV PS Handover XID Parameters 7.7.79 */
- #define GTP_EXT_MS_INF_CHG_REP_ACT 0xB5 /* 3G 181 TLV MS Info Change Reporting Action 7.7.80 */
- #define GTP_EXT_DIRECT_TUNNEL_FLGS 0xB6 /* 3G 182 TLV Direct Tunnel Flags 7.7.81 */
- #define GTP_EXT_CORRELATION_ID 0xB7 /* 3G 183 TLV Correlation-ID 7.7.82 */
- #define GTP_EXT_BEARER_CONTROL_MODE 0xB8 /* 3G 184 TLV Bearer Control Mode 7.7.83 */
- #define GTP_EXT_MBMS_FLOW_ID 0xB9 /* 3G 185 TLV MBMS Flow Identifier 7.7.84 */
- #define GTP_EXT_MBMS_IP_MCAST_DIST 0xBA /* 3G 186 TLV MBMS IP Multicast Distribution 7.7.85 */
- #define GTP_EXT_MBMS_DIST_ACK 0xBB /* 3G 187 TLV MBMS Distribution Acknowledgement 7.7.86 */
- #define GTP_EXT_RELIABLE_IRAT_HO_INF 0xBC /* 3G 188 TLV Reliable INTER RAT HANDOVER INFO 7.7.87 */
- #define GTP_EXT_RFSP_INDEX 0xBD /* 3G 189 TLV RFSP Index 7.7.88 */
- #define GTP_EXT_FQDN 0xBE /* 3G 190 TLV Fully Qualified Domain Name (FQDN) 7.7.90 */
- #define GTP_EXT_EVO_ALLO_RETE_P1 0xBF /* 3G 191 TLV Evolved Allocation/Retention Priority I 7.7.91 */
- #define GTP_EXT_EVO_ALLO_RETE_P2 0xC0 /* 3G 192 TLV Evolved Allocation/Retention Priority II 7.7.92 */
- #define GTP_EXT_EXTENDED_COMMON_FLGS 0xC1 /* 3G 193 TLV Extended Common Flags 7.7.93 */
- #define GTP_EXT_UCI 0xC2 /* 3G 194 TLV User CSG Information (UCI) 7.7.94 */
- #define GTP_EXT_CSG_INF_REP_ACT 0xC3 /* 3G 195 TLV CSG Information Reporting Action 7.7.95 */
- #define GTP_EXT_CSG_ID 0xC4 /* 3G 196 TLV CSG ID 7.7.96 */
- #define GTP_EXT_CMI 0xC5 /* 3G 197 TLV CSG Membership Indication (CMI) 7.7.97 */
- #define GTP_EXT_AMBR 0xC6 /* 3G 198 TLV Aggregate Maximum Bit Rate (AMBR) 7.7.98 */
- #define GTP_EXT_UE_NETWORK_CAP 0xC7 /* 3G 199 TLV UE Network Capability 7.7.99 */
- #define GTP_EXT_UE_AMBR 0xC8 /* 3G 200 TLV UE-AMBR 7.7.100 */
- #define GTP_EXT_APN_AMBR_WITH_NSAPI 0xC9 /* 3G 201 TLV APN-AMBR with NSAPI 7.7.101 */
- #define GTP_EXT_GGSN_BACK_OFF_TIME 0xCA /* 3G 202 TLV GGSN Back-Off Time 7.7.102 */
- #define GTP_EXT_SIG_PRI_IND 0xCB /* 3G 203 TLV Signalling Priority Indication 7.7.103 */
- #define GTP_EXT_SIG_PRI_IND_W_NSAPI 0xCC /* 3G 204 TLV Signalling Priority Indication with NSAPI 7.7.104 */
- #define GTP_EXT_HIGHER_BR_16MB_FLG 0xCD /* 3G 205 TLV Higher bitrates than 16 Mbps flag 7.7.105 */
- #define GTP_EXT_MAX_MBR_APN_AMBR 0xCE /* 3G 206 TLV Max MBR/APN-AMBR 7.7.106 */
- #define GTP_EXT_ADD_MM_CTX_SRVCC 0xCF /* 3G 207 TLV Additional MM context for SRVCC 7.7.107 */
- #define GTP_EXT_ADD_FLGS_SRVCC 0xD0 /* 3G 208 TLV Additional flags for SRVCC 7.7.108 */
- #define GTP_EXT_STN_SR 0xD1 /* 3G 209 TLV STN-SR 7.7.109 */
- #define GTP_EXT_C_MSISDN 0xD2 /* 3G 210 TLV C-MSISDN 7.7.110 */
- #define GTP_EXT_EXT_RANAP_CAUSE 0xD3 /* 3G 211 TLV Extended RANAP Cause 7.7.111 */
- /* 212-238 TLV Spare. For future use. */
- /* 239-250 Reserved for the GPRS charging protocol (see GTP' in 3GPP TS 32.295 [33])*/
- #define GTP_EXT_C1 0xC1
- #define GTP_EXT_C2 0xC2
- #define GTP_EXT_REL_PACK 0xF9 /* charging */
- #define GTP_EXT_CAN_PACK 0xFA /* charging */
- #define GTP_EXT_CHRG_ADDR 0xFB /* 3G 251 TLV Charging Gateway Address 7.7.44 */
- /* 252-254 Reserved for the GPRS charging protocol (see GTP' in 3GPP TS 32.295 [33])*/
- #define GTP_EXT_DATA_REQ 0xFC /* charging */
- #define GTP_EXT_DATA_RESP 0xFD /* charging */
- #define GTP_EXT_NODE_ADDR 0xFE /* charging */
- #define GTP_EXT_PRIV_EXT 0xFF
- static const value_string gtp_val[] = {
- {GTP_EXT_CAUSE, "Cause of operation"},
- {GTP_EXT_IMSI, "IMSI"},
- {GTP_EXT_RAI, "Routing Area Identity"},
- {GTP_EXT_TLLI, "Temporary Logical Link Identity"},
- {GTP_EXT_PTMSI, "Packet TMSI"},
- /* 6 */ {GTP_EXT_QOS_GPRS, "Quality of Service"},
- /* 6-7 Spare */
- /* 8 */ {GTP_EXT_REORDER, "Reorder required"},
- /* 9 */ {GTP_EXT_AUTH_TRI, "Authentication triplets"},
- /* 10 Spare */
- /* 11 */ {GTP_EXT_MAP_CAUSE, "MAP cause"},
- /* 12 */ {GTP_EXT_PTMSI_SIG, "P-TMSI signature"},
- /* 13 */ {GTP_EXT_MS_VALID, "MS validated"},
- /* 14 */ {GTP_EXT_RECOVER, "Recovery"},
- /* 15 */ {GTP_EXT_SEL_MODE, "Selection mode"},
- /* 16 */ {GTP_EXT_16, "Flow label data I"},
- /* 16 */ /* ??? {GTP_EXT_FLOW_LABEL, "Flow label data I"}, */
- /* 16 */ /* ??? {GTP_EXT_TEID, "Tunnel Endpoint Identifier Data I"}, */ /* 3G */
- {GTP_EXT_17, "Flow label signalling"},
- /* ??? {GTP_EXT_FLOW_SIG, "Flow label signalling"}, */
- /* ??? {GTP_EXT_TEID_CP, "Tunnel Endpoint Identifier Data Control Plane"}, */ /* 3G */
- {GTP_EXT_18, "Flow label data II"},
- /* ??? {GTP_EXT_FLOW_II, "Flow label data II"}, */
- /* ??? {GTP_EXT_TEID_II, "Tunnel Endpoint Identifier Data II"}, */ /* 3G */
- {GTP_EXT_19, "MS not reachable reason"},
- /* ??? {GTP_EXT_MS_REASON, "MS not reachable reason"}, */
- /* ??? {GTP_EXT_TEAR_IND, "Teardown ID"}, */ /* 3G */
- {GTP_EXT_NSAPI, "NSAPI"}, /* 3G */
- {GTP_EXT_RANAP_CAUSE, "RANAP cause"}, /* 3G */
- {GTP_EXT_RAB_CNTXT, "RAB context"}, /* 3G */
- {GTP_EXT_RP_SMS, "Radio Priority for MO SMS"}, /* 3G */
- {GTP_EXT_RP, "Radio Priority"}, /* 3G */
- {GTP_EXT_PKT_FLOW_ID, "Packet Flow ID"}, /* 3G */
- {GTP_EXT_CHRG_CHAR, "Charging characteristics"}, /* 3G */
- {GTP_EXT_TRACE_REF, "Trace references"}, /* 3G */
- {GTP_EXT_TRACE_TYPE, "Trace type"}, /* 3G */
- /* 29 */ {GTPv1_EXT_MS_REASON, "MS not reachable reason"}, /* 3G */
- /* 117-126 Reserved for the GPRS charging protocol (see GTP' in 3GPP TS 32.295 [33]) */
- /* 126 */ {GTP_EXT_TR_COMM, "Packet transfer command"}, /* charging */
- /* 127 */ {GTP_EXT_CHRG_ID, "Charging ID"},
- {GTP_EXT_USER_ADDR, "End user address"},
- {GTP_EXT_MM_CNTXT, "MM context"},
- {GTP_EXT_PDP_CNTXT, "PDP context"},
- {GTP_EXT_APN, "Access Point Name"},
- {GTP_EXT_PROTO_CONF, "Protocol configuration options"},
- {GTP_EXT_GSN_ADDR, "GSN address"},
- {GTP_EXT_MSISDN, "MS international PSTN/ISDN number"},
- {GTP_EXT_QOS_UMTS, "Quality of service (UMTS)"}, /* 3G */
- {GTP_EXT_AUTH_QUI, "Authentication quintuplets"}, /* 3G */
- {GTP_EXT_TFT, "Traffic Flow Template (TFT)"}, /* 3G */
- {GTP_EXT_TARGET_ID, "Target (RNC) identification"}, /* 3G */
- {GTP_EXT_UTRAN_CONT, "UTRAN transparent field"}, /* 3G */
- {GTP_EXT_RAB_SETUP, "RAB setup information"}, /* 3G */
- {GTP_EXT_HDR_LIST, "Extension Header Types List"}, /* 3G */
- {GTP_EXT_TRIGGER_ID, "Trigger Id"}, /* 3G */
- {GTP_EXT_OMC_ID, "OMC Identity"}, /* 3G */
- {GTP_EXT_RAN_TR_CONT, "RAN Transparent Container"}, /* 7.7.43 */
- {GTP_EXT_PDP_CONT_PRIO, "PDP Context Prioritization"}, /* 7.7.45 */
- {GTP_EXT_ADD_RAB_SETUP_INF, "Additional RAB Setup Information"}, /* 7.7.45A */
- {GTP_EXT_SSGN_NO, "SGSN Number"}, /* 7.7.47 */
- {GTP_EXT_COMMON_FLGS, "Common Flags"}, /* 7.7.48 */
- {GTP_EXT_APN_RES, "APN Restriction"}, /* 3G */
- {GTP_EXT_RA_PRIO_LCS, "Radio Priority LCS"}, /* 7.7.25B */
- {GTP_EXT_RAT_TYPE, "RAT Type"}, /* 3G */
- {GTP_EXT_USR_LOC_INF, "User Location Information"}, /* 7.7.51 */
- {GTP_EXT_MS_TIME_ZONE, "MS Time Zone"}, /* 7.7.52 */
- {GTP_EXT_IMEISV, "IMEI(SV)"}, /* 3G */
- {GTP_EXT_CAMEL_CHG_INF_CON, "CAMEL Charging Information Container"}, /* 7.7.54 */
- {GTP_EXT_MBMS_UE_CTX, "MBMS UE Context"}, /* 7.7.55 */
- {GTP_EXT_TMGI, "Temporary Mobile Group Identity (TMGI)"}, /* 7.7.56 */
- {GTP_EXT_RIM_RA, "RIM Routing Address"}, /* 7.7.57 */
- {GTP_EXT_MBMS_PROT_CONF_OPT, "MBMS Protocol Configuration Options"}, /* 7.7.58 */
- {GTP_EXT_MBMS_SA, "MBMS Service Area"}, /* 7.7.60 */
- {GTP_EXT_SRC_RNC_PDP_CTX_INF, "Source RNC PDCP context info"}, /* 7.7.61 */
- {GTP_EXT_ADD_TRS_INF, "Additional Trace Info"}, /* 7.7.62 */
- {GTP_EXT_HOP_COUNT, "Hop Counter"}, /* 7.7.63 */
- {GTP_EXT_SEL_PLMN_ID, "Selected PLMN ID"}, /* 7.7.64 */
- {GTP_EXT_MBMS_SES_ID, "MBMS Session Identifier"}, /* 7.7.65 */
- {GTP_EXT_MBMS_2G_3G_IND, "MBMS 2G/3G Indicator"}, /* 7.7.66 */
- {GTP_EXT_ENH_NSAPI, "Enhanced NSAPI"}, /* 7.7.67 */
- {GTP_EXT_MBMS_SES_DUR, "MBMS Session Duration"}, /* 7.7.59 */
- {GTP_EXT_ADD_MBMS_TRS_INF, "Additional MBMS Trace Info"}, /* 7.7.68 */
- {GTP_EXT_MBMS_SES_ID_REP_NO, "MBMS Session Identity Repetition Number"}, /* 7.7.69 */
- {GTP_EXT_MBMS_TIME_TO_DATA_TR, "MBMS Time To Data Transfer"}, /* 7.7.70 */
- {GTP_EXT_PS_HO_REQ_CTX, "PS Handover Request Context"}, /* 7.7.71 */
- {GTP_EXT_BSS_CONT, "BSS Container"}, /* 7.7.72 */
- {GTP_EXT_CELL_ID, "Cell Identification"}, /* 7.7.73 */
- {GTP_EXT_PDU_NO, "PDU Numbers"}, /* 7.7.74 */
- {GTP_EXT_BSSGP_CAUSE, "BSSGP Cause"}, /* 7.7.75 */
- {GTP_EXT_REQ_MBMS_BEARER_CAP, "Required MBMS bearer capabilities"}, /* 7.7.76 */
- {GTP_EXT_RIM_ROUTING_ADDR_DISC, "RIM Routing Address Discriminator"}, /* 7.7.77 */
- {GTP_EXT_LIST_OF_SETUP_PFCS, "List of set-up PFCs"}, /* 7.7.78 */
- /* 180 */ {GTP_EXT_PS_HANDOVER_XIP_PAR, " PS Handover XID Parameters"}, /* 7.7.79 */
- /* 181 */ {GTP_EXT_MS_INF_CHG_REP_ACT, "MS Info Change Reporting Action"}, /* 7.7.80 */
- /* 182 */ {GTP_EXT_DIRECT_TUNNEL_FLGS, "Direct Tunnel Flags"}, /* 7.7.81 */
- /* 183 */ {GTP_EXT_CORRELATION_ID, "Correlation-ID"}, /* 7.7.82 */
- /* 184 */ {GTP_EXT_BEARER_CONTROL_MODE, "Bearer Control Mode"}, /* 7.7.83 */
- /* 185 */ {GTP_EXT_MBMS_FLOW_ID, "MBMS Flow Identifier"}, /* 7.7.84 */
- /* 186 */ {GTP_EXT_MBMS_IP_MCAST_DIST, "MBMS IP Multicast Distribution"}, /* 7.7.85 */
- /* 187 */ {GTP_EXT_MBMS_DIST_ACK, "MBMS Distribution Acknowledgement"}, /* 7.7.86 */
- /* 188 */ {GTP_EXT_RELIABLE_IRAT_HO_INF, "Reliable INTER RAT HANDOVER INFO"}, /* 7.7.87 */
- /* 189 */ {GTP_EXT_RFSP_INDEX, "RFSP Index"}, /* 7.7.88 */
- /* 190 */ {GTP_EXT_FQDN, "Fully Qualified Domain Name (FQDN)"}, /* 7.7.90 */
- /* 191 */ {GTP_EXT_EVO_ALLO_RETE_P1, "Evolved Allocation/Retention Priority I"}, /* 7.7.91 */
- /* 192 */ {GTP_EXT_EVO_ALLO_RETE_P2, "Evolved Allocation/Retention Priority II"}, /* 7.7.92 */
- /* 193 */ {GTP_EXT_EXTENDED_COMMON_FLGS, "Extended Common Flags"}, /* 7.7.93 */
- /* 194 */ {GTP_EXT_UCI, "User CSG Information (UCI)"}, /* 7.7.94 */
- /* 195 */ {GTP_EXT_CSG_INF_REP_ACT, "CSG Information Reporting Action"}, /* 7.7.95 */
- /* 196 */ {GTP_EXT_CSG_ID, "CSG ID"}, /* 7.7.96 */
- /* 197 */ {GTP_EXT_CMI, "CSG Membership Indication (CMI)"}, /* 7.7.97 */
- /* 198 */ {GTP_EXT_AMBR, "Aggregate Maximum Bit Rate (AMBR)"}, /* 7.7.98 */
- /* 199 */ {GTP_EXT_UE_NETWORK_CAP, "UE Network Capability"}, /* 7.7.99 */
- /* 200 */ {GTP_EXT_UE_AMBR, "UE-AMBR"}, /* 7.7.100 */
- /* 201 */ {GTP_EXT_APN_AMBR_WITH_NSAPI, "APN-AMBR with NSAPI"}, /* 7.7.101 */
- /* 202 */ {GTP_EXT_GGSN_BACK_OFF_TIME, "GGSN Back-Off Time"}, /* 7.7.102 */
- /* 203 */ {GTP_EXT_SIG_PRI_IND, "Signalling Priority Indication"}, /* 7.7.103 */
- /* 204 */ {GTP_EXT_SIG_PRI_IND_W_NSAPI, "Signalling Priority Indication with NSAPI"}, /* 7.7.104 */
- /* 205 */ {GTP_EXT_HIGHER_BR_16MB_FLG, "Higher bitrates than 16 Mbps flag"}, /* 7.7.105 */
- /* 206 */ {GTP_EXT_MAX_MBR_APN_AMBR, "Max MBR/APN-AMBR"}, /* 7.7.106 */
- /* 207 */ {GTP_EXT_ADD_MM_CTX_SRVCC, "Additional MM context for SRVCC"}, /* 7.7.107 */
- /* 208 */ {GTP_EXT_ADD_FLGS_SRVCC, "Additional flags for SRVCC"}, /* 7.7.108 */
- /* 209 */ {GTP_EXT_STN_SR, "STN-SR"}, /* 7.7.109 */
- /* 210 */ {GTP_EXT_C_MSISDN, "C-MSISDN"}, /* 7.7.110 */
- /* 211 */ {GTP_EXT_EXT_RANAP_CAUSE, "Extended RANAP Cause"}, /* 7.7.111 */
- /* 212-238 TLV Spare. For future use. */
- /* 239-250 Reserved for the GPRS charging protocol (see GTP' in 3GPP TS 32.295 [33]) */
- /* 249 */ {GTP_EXT_REL_PACK, "Sequence numbers of released packets IE"}, /* charging */
- /* 250 */ {GTP_EXT_CAN_PACK, "Sequence numbers of canceled packets IE"}, /* charging */
- /* 251 */ {GTP_EXT_CHRG_ADDR, "Charging Gateway address"}, /* 7.7.44 */
- /* 252-254 Reserved for the GPRS charging protocol (see GTP' in 3GPP TS 32.295 [33]) */
- /* 252 */ {GTP_EXT_DATA_REQ, "Data record packet"}, /* charging */
- /* 253 */ {GTP_EXT_DATA_RESP, "Requests responded"}, /* charging */
- /* 254 */ {GTP_EXT_NODE_ADDR, "Address of recommended node"}, /* charging */
- /* 255 */ {GTP_EXT_PRIV_EXT, "Private Extension"},
- {0, NULL}
- };
- static value_string_ext gtp_val_ext = VALUE_STRING_EXT_INIT(gtp_val);
- /* It seems like some IE's are renamed in gtpv1 at least reading
- * 3GPP TS 29.060 version 6.11.0 Release 6
- */
- static const value_string gtpv1_val[] = {
- /* 1 */ {GTP_EXT_CAUSE, "Cause of operation"},
- /* 2 */ {GTP_EXT_IMSI, "IMSI"},
- /* 3 */ {GTP_EXT_RAI, "Routing Area Identity"},
- /* 4 */ {GTP_EXT_TLLI, "Temporary Logical Link Identity"},
- /* 5 */ {GTP_EXT_PTMSI, "Packet TMSI"},
- /* 6 */ {GTP_EXT_QOS_GPRS, …
Large files files are truncated, but you can click here to view the full file