diff options
author | Pascal Quantin <pascal.quantin@gmail.com> | 2012-10-08 22:30:47 +0000 |
---|---|---|
committer | Pascal Quantin <pascal.quantin@gmail.com> | 2012-10-08 22:30:47 +0000 |
commit | 924f9663fd901eb4820e27ffb9a42b882a30e902 (patch) | |
tree | ce7fe2612e6efadcfd6e47f2a92c0a5125acaef7 | |
parent | b01f1d37629276c517f3aa54fc7628345336b7b3 (diff) | |
download | wireshark-924f9663fd901eb4820e27ffb9a42b882a30e902.tar.gz |
Enhance dissection of Open Channel proactive command
svn path=/trunk/; revision=45413
-rw-r--r-- | epan/dissectors/packet-etsi_card_app_toolkit.c | 385 | ||||
-rw-r--r-- | epan/dissectors/packet-gsm_a_common.h | 1 | ||||
-rw-r--r-- | epan/dissectors/packet-nas_eps.c | 4 |
3 files changed, 375 insertions, 15 deletions
diff --git a/epan/dissectors/packet-etsi_card_app_toolkit.c b/epan/dissectors/packet-etsi_card_app_toolkit.c index c6ee36a1a4..49b7b4d231 100644 --- a/epan/dissectors/packet-etsi_card_app_toolkit.c +++ b/epan/dissectors/packet-etsi_card_app_toolkit.c @@ -36,6 +36,8 @@ #include <epan/prefs.h> #include "packet-e212.h" +#include "packet-gsm_a_common.h" +#include "packet-gsm_sms.h" static int proto_cat = -1; @@ -50,13 +52,41 @@ static int hf_ctlv_dur_time_intv = -1; static int hf_ctlv_dur_time_unit = -1; static int hf_ctlv_result_gen = -1; static int hf_ctlv_text_string_enc = -1; +static int hf_ctlv_text_string = -1; static int hf_ctlv_event = -1; static int hf_ctlv_tone = -1; static int hf_ctlv_loc_status = -1; static int hf_ctlv_bearer = -1; static int hf_ctlv_bearer_descr = -1; +static int hf_ctlv_bearer_csd_data_rate = -1; +static int hf_ctlv_bearer_csd_bearer_serv = -1; +static int hf_ctlv_bearer_csd_conn_elem = -1; +static int hf_ctlv_bearer_gprs_precedence = -1; +static int hf_ctlv_bearer_gprs_delay = -1; +static int hf_ctlv_bearer_gprs_reliability = -1; +static int hf_ctlv_bearer_gprs_peak = -1; +static int hf_ctlv_bearer_gprs_mean = -1; +static int hf_ctlv_bearer_gprs_prot_type = -1; +static int hf_ctlv_bearer_utran_traffic_class = -1; +static int hf_ctlv_bearer_utran_max_bitrate_ul = -1; +static int hf_ctlv_bearer_utran_max_bitrate_dl = -1; +static int hf_ctlv_bearer_utran_guaranteed_bitrate_ul = -1; +static int hf_ctlv_bearer_utran_guaranteed_bitrate_dl = -1; +static int hf_ctlv_bearer_utran_delivery_order = -1; +static int hf_ctlv_bearer_utran_max_sdu_size = -1; +static int hf_ctlv_bearer_utran_sdu_error_ratio = -1; +static int hf_ctlv_bearer_utran_residual_bit_error_ratio = -1; +static int hf_ctlv_bearer_utran_delivery_erroneous_sdus = -1; +static int hf_ctlv_bearer_utran_transfer_delay = -1; +static int hf_ctlv_bearer_utran_traffic_handling_prio = -1; +static int hf_ctlv_bearer_utran_pdp_type = -1; +static int hf_ctlv_bearer_params = -1; +static int hf_ctlv_buffers_size = -1; static int hf_ctlv_transport_ptype = -1; static int hf_ctlv_transport_port = -1; +static int hf_ctlv_other_address_coding = -1; +static int hf_ctlv_other_address_ipv4 = -1; +static int hf_ctlv_other_address_ipv6 = -1; static int hf_ctlv_access_tech = -1; static int hf_ctlv_loci_lac = -1; static int hf_ctlv_loci_cell_id = -1; @@ -318,7 +348,7 @@ static const value_string result_vals[] = { static const value_string text_encoding_vals[] = { { 0x00, "GSM default alphabet, 7 bits packed" }, - { 0x01, "GSM default alphabet, 8 bits" }, + { 0x04, "GSM default alphabet, 8 bits" }, { 0x08, "UCS2" }, { 0, NULL } }; @@ -408,20 +438,119 @@ static const value_string bearer_vals[] = { /* TS 102 223 - Chapter 8.52 + TS 11.14 Chapter 12.52 */ static const value_string bearer_descr_vals[] = { { 0x01, "CSD" }, - { 0x02, "GPRS" }, + { 0x02, "GPRS / UTRAN packet service / E-UTRAN" }, { 0x03, "default bearer for requested transport layer" }, { 0x04, "local link techonlogy independent" }, { 0x05, "Bluetooth" }, { 0x06, "IrDA" }, { 0x07, "RS232" }, { 0x08, "TIA/EIA/IS-820 packet data service" }, - { 0x09, "GSM/3GPP ???" }, - { 0x0a, "3GPP I-WLAN" }, - { 0x0b, "3GPP E-UTRAN / Mapped UTRAN packet service" }, + { 0x09, "UTRAN packet service with extended parameters / HSDPA / E-UTRAN" }, + { 0x0a, "I-WLAN" }, + { 0x0b, "E-UTRAN / Mapped UTRAN packet service" }, { 0x10, "USB" }, { 0, NULL } }; +/* 3GPP 31.111 - Chapter 8.52 */ +static const value_string csd_data_rate_vals[] = { + { 0, "autobauding" }, + { 1, "300 bps (V.21)" }, + { 2, "1200 bps (V.22)" }, + { 3, "1200/75 bps (V.23)" }, + { 4, "2400 bps (V.22bis)" }, + { 5, "2400 bps (V.26ter)" }, + { 6, "4800 bps (V.32)" }, + { 7, "9600 bps (V.32)" }, + { 12, "9600 bps (V.34)" }, + { 14, "14400 bps (V.34)" }, + { 15, "19200 bps (V.34)" }, + { 16, "28800 bps (V.34)" }, + { 17, "33600 bps (V.34)" }, + { 34, "1200 bps (V.120)" }, + { 36, "2400 bps (V.120)" }, + { 38, "4800 bps (V.120)" }, + { 39, "9600 bps (V.120)" }, + { 43, "14400 bps (V.120)" }, + { 47, "19200 bps (V.120)" }, + { 48, "28800 bps (V.120)" }, + { 49, "38400 bps (V.120)" }, + { 50, "48000 bps (V.120)" }, + { 51, "56000 bps (V.120)" }, + { 65, "300 bps (V.110)" }, + { 66, "1200 bps (V.110)" }, + { 68, "2400 bps (V.110 or X.31 flag stuffing)" }, + { 70, "4800 bps (V.110 or X.31 flag stuffing)" }, + { 71, "9600 bps (V.110 or X.31 flag stuffing)" }, + { 75, "14400 bps (V.110 or X.31 flag stuffing)" }, + { 79, "19200 bps (V.110 or X.31 flag stuffing)" }, + { 80, "28800 bps (V.110 or X.31 flag stuffing)" }, + { 81, "38400 bps (V.110 or X.31 flag stuffing)" }, + { 82, "48000 bps (V.110 or X.31 flag stuffing)" }, + { 83, "56000 bps (V.110 or X.31 flag stuffing)" }, + { 84, "64000 bps (X.31 flag stuffing)" }, + { 115, "56000 bps (bit transparent)" }, + { 116, "64000 bps (bit transparent)" }, + { 120, "32000 bps (PIAFS32k)" }, + { 121, "64000 bps (PIAFS64k)" }, + { 130, "28800 bps (multimedia)" }, + { 131, "32000 bps (multimedia)" }, + { 132, "33600 bps (multimedia)" }, + { 133, "56000 bps (multimedia)" }, + { 134, "64000 bps (multimedia)" }, + { 0, NULL } +}; +static const value_string csd_bearer_serv_vals[] = { + { 0, "Data circuit asynchronous (UDI or 3.1 kHz modem)" }, + { 1, "Data circuit synchronous (UDI or 3.1 kHz modem)" }, + { 2, "PAD Access (asynchronous) (UDI)" }, + { 3, "Packet Access (synchronous) (UDI)" }, + { 4, "Data circuit asynchronous (RDI)" }, + { 5, "Data circuit synchronous (RDI)" }, + { 6, "PAD Access (asynchronous) (RDI)" }, + { 7, "Packet Access (synchronous) (RDI)" }, + { 0, NULL } +}; +static const value_string csd_conn_elem_vals[] = { + { 0, "Transparent" }, + { 1, "Non-transparent" }, + { 2, "Both, transparent preferred" }, + { 3, "Both, non-transparent preferred" }, + { 0, NULL } +}; +static const value_string gprs_prot_type_vals[] = { + { 2, "IP (Internet Protocol, IETF STD 5)" }, + { 0, NULL } +}; +static const value_string utran_traffic_class_vals[] = { + { 0, "Conversational" }, + { 1, "Streaming" }, + { 2, "Interactive" }, + { 3, "Background" }, + { 4, "Subscribed value" }, + { 0, NULL } +}; +static const value_string utran_delivery_order_vals[] = { + { 0, "No" }, + { 1, "Yes" }, + { 2, "Subscribed value" }, + { 0, NULL } +}; +static const value_string utran_delivery_erroneous_sdus_vals[] = { + { 0, "No" }, + { 1, "Yes" }, + { 2, "No detect" }, + { 3, "Subscribed value" }, + { 0, NULL } +}; + +/* TS 102 223 - Chapter 8.58 */ +static const value_string other_address_coding_vals[] = { + { 0x21, "IPv4 address" }, + { 0x57, "IPv6 address" }, + { 0, NULL } +}; + /* TS 102 223 - Chapter 8.59 + TS 11.14 Chapter 12.59 */ static const value_string transport_ptype_vals[] = { { 0x01, "UDP, UICC in client mode, remote connection" }, @@ -429,6 +558,7 @@ static const value_string transport_ptype_vals[] = { { 0x03, "TCP, UICC in server mode" }, { 0x04, "UDP, UICC in client mode, local connection" }, { 0x05, "TCP, UICC in client mode, locel connection" }, + { 0x06, "direct communication channel" }, { 0, NULL } }; @@ -506,16 +636,44 @@ dissect_cat(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) case 0x05: /* alpha identifier */ break; case 0x0d: /* text string */ + if (len == 0) + break; /* 1st byte: encoding */ - proto_tree_add_item(elem_tree, hf_ctlv_text_string_enc, tvb, pos, 1, ENC_NA); + proto_tree_add_item(elem_tree, hf_ctlv_text_string_enc, tvb, pos, 1, ENC_ASCII|ENC_NA); g8 = tvb_get_guint8(tvb, pos); switch (g8) { + case 0x00: /* 7bit */ + { + int out_len; + unsigned char msgbuf[300]; + + out_len = gsm_sms_char_7bit_unpack(0, len-1, sizeof(msgbuf), tvb_get_ptr(tvb, pos+1, len-1), msgbuf); + msgbuf[out_len] = '\0'; + proto_tree_add_unicode_string(elem_tree, hf_ctlv_text_string, tvb, pos+1, + len-1, gsm_sms_chars_to_utf8(msgbuf, out_len)); + } + break; case 0x04: /* 8bit */ - proto_tree_add_text(elem_tree, tvb, pos+1, len-1, "Text payload"); + proto_tree_add_item(elem_tree, hf_ctlv_text_string, tvb, pos+1, len-1, ENC_ASCII|ENC_NA); break; - case 0x00: /* 7bit */ case 0x08: /* UCS2 */ - /* FIXME: 7bit and UCS-2 */ + { + GIConv cd; + GError *l_conv_error = NULL; + gchar *utf8_text; + + if ((cd = g_iconv_open("UTF-8","UCS-2BE")) != (GIConv)-1) { + utf8_text = g_convert_with_iconv(tvb_get_ptr(tvb, pos+1, len-1), len-1, cd, NULL, NULL, &l_conv_error); + if(!l_conv_error) { + proto_tree_add_unicode_string(elem_tree, hf_ctlv_text_string, tvb, + pos+1, len-1, utf8_text); + } else { + proto_tree_add_text(elem_tree, tvb, pos+1, len-1, "Failed to decode UCS2"); + } + } + } + break; + default: break; } break; @@ -545,9 +703,53 @@ dissect_cat(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) proto_tree_add_item(elem_tree, hf_ctlv_bearer, tvb, pos+i, 1, ENC_NA); break; case 0x35: /* bearer description */ - proto_tree_add_item(elem_tree, hf_ctlv_bearer, tvb, pos, 1, ENC_NA); - for (i = 1; i < len; i++) - proto_tree_add_item(elem_tree, hf_ctlv_bearer_descr, tvb, pos+i, 1, ENC_NA); + g8 = tvb_get_guint8(tvb, pos); + proto_tree_add_uint(elem_tree, hf_ctlv_bearer_descr, tvb, pos, 1, g8); + switch (g8) { + case 0x01: + proto_tree_add_item(elem_tree, hf_ctlv_bearer_csd_data_rate, tvb, pos+1, 1, ENC_BIG_ENDIAN); + proto_tree_add_item(elem_tree, hf_ctlv_bearer_csd_bearer_serv, tvb, pos+2, 1, ENC_BIG_ENDIAN); + proto_tree_add_item(elem_tree, hf_ctlv_bearer_csd_conn_elem, tvb, pos+3, 1, ENC_BIG_ENDIAN); + break; + case 0x02: + proto_tree_add_item(elem_tree, hf_ctlv_bearer_gprs_precedence, tvb, pos+1, 1, ENC_BIG_ENDIAN); + proto_tree_add_item(elem_tree, hf_ctlv_bearer_gprs_delay, tvb, pos+2, 1, ENC_BIG_ENDIAN); + proto_tree_add_item(elem_tree, hf_ctlv_bearer_gprs_reliability, tvb, pos+3, 1, ENC_BIG_ENDIAN); + proto_tree_add_item(elem_tree, hf_ctlv_bearer_gprs_peak, tvb, pos+4, 1, ENC_BIG_ENDIAN); + proto_tree_add_item(elem_tree, hf_ctlv_bearer_gprs_mean, tvb, pos+5, 1, ENC_BIG_ENDIAN); + proto_tree_add_item(elem_tree, hf_ctlv_bearer_gprs_prot_type, tvb, pos+6, 1, ENC_BIG_ENDIAN); + break; + case 0x09: + proto_tree_add_item(elem_tree, hf_ctlv_bearer_utran_traffic_class, tvb, pos+1, 1, ENC_BIG_ENDIAN); + proto_tree_add_item(elem_tree, hf_ctlv_bearer_utran_max_bitrate_ul, tvb, pos+2, 2, ENC_BIG_ENDIAN); + proto_tree_add_item(elem_tree, hf_ctlv_bearer_utran_max_bitrate_dl, tvb, pos+4, 2, ENC_BIG_ENDIAN); + proto_tree_add_item(elem_tree, hf_ctlv_bearer_utran_guaranteed_bitrate_ul, tvb, pos+6, 2, ENC_BIG_ENDIAN); + proto_tree_add_item(elem_tree, hf_ctlv_bearer_utran_guaranteed_bitrate_dl, tvb, pos+8, 2, ENC_BIG_ENDIAN); + proto_tree_add_item(elem_tree, hf_ctlv_bearer_utran_delivery_order, tvb, pos+10, 1, ENC_BIG_ENDIAN); + proto_tree_add_item(elem_tree, hf_ctlv_bearer_utran_max_sdu_size, tvb, pos+11, 1, ENC_BIG_ENDIAN); + proto_tree_add_item(elem_tree, hf_ctlv_bearer_utran_sdu_error_ratio, tvb, pos+12, 1, ENC_BIG_ENDIAN); + proto_tree_add_item(elem_tree, hf_ctlv_bearer_utran_residual_bit_error_ratio, tvb, pos+13, 1, ENC_BIG_ENDIAN); + proto_tree_add_item(elem_tree, hf_ctlv_bearer_utran_delivery_erroneous_sdus, tvb, pos+14, 1, ENC_BIG_ENDIAN); + proto_tree_add_item(elem_tree, hf_ctlv_bearer_utran_transfer_delay, tvb, pos+15, 1, ENC_BIG_ENDIAN); + proto_tree_add_item(elem_tree, hf_ctlv_bearer_utran_traffic_handling_prio, tvb, pos+16, 1, ENC_BIG_ENDIAN); + proto_tree_add_item(elem_tree, hf_ctlv_bearer_utran_pdp_type, tvb, pos+1, 17, ENC_BIG_ENDIAN); + break; + case 0x0a: + break; + case 0x0b: + { + tvbuff_t * esm_tvb; + esm_tvb = tvb_new_subset(tvb, pos+1, len-1, len-1); + de_esm_qos(esm_tvb, elem_tree, pinfo, 0, len-1, NULL, 0); + } + break; + default: + proto_tree_add_item(elem_tree, hf_ctlv_bearer_params, tvb, pos+1, len-1, ENC_NA); + break; + } + break; + case 0x39: /* buffer size */ + proto_tree_add_item(elem_tree, hf_ctlv_buffers_size, tvb, pos, 2, ENC_BIG_ENDIAN); break; case 0x3c: /* UICC/terminal interface transport level */ if (len < 3) @@ -555,10 +757,27 @@ dissect_cat(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) proto_tree_add_item(elem_tree, hf_ctlv_transport_ptype, tvb, pos, 1, ENC_NA); proto_tree_add_item(elem_tree, hf_ctlv_transport_port, tvb, pos+1, 2, ENC_BIG_ENDIAN); break; + case 0x3e: /* other address */ + g8 = tvb_get_guint8(tvb, pos); + proto_tree_add_uint(elem_tree, hf_ctlv_other_address_coding, tvb, pos, 1, g8); + switch (g8) { + case 0x21: + proto_tree_add_item(elem_tree, hf_ctlv_other_address_ipv4, tvb, pos+1, 4, ENC_NA); + break; + case 0x57: + proto_tree_add_item(elem_tree, hf_ctlv_other_address_ipv6, tvb, pos+1, 16, ENC_NA); + break; + default: + break; + } + break; case 0x3f: /* access technology */ for (i = 1; i < len; i++) proto_tree_add_item(elem_tree, hf_ctlv_access_tech, tvb, pos+i, 1, ENC_NA); break; + case 0x47: /* network access name */ + de_sm_apn(tvb, elem_tree, pinfo, pos, len, NULL, 0); + break; } pos += len; @@ -623,6 +842,11 @@ proto_register_card_app_toolkit(void) FT_UINT8, BASE_HEX, VALS(text_encoding_vals), 0, NULL, HFILL }, }, + { &hf_ctlv_text_string, + { "Text String", "etsi_cat.comp_tlv.text", + FT_STRING, BASE_NONE, NULL, 0, + NULL, HFILL }, + }, { &hf_ctlv_event, { "Event", "etsi_cat.comp_tlv.event", FT_UINT8, BASE_HEX, VALS(event_list_vals), 0, @@ -644,10 +868,130 @@ proto_register_card_app_toolkit(void) NULL, HFILL }, }, { &hf_ctlv_bearer_descr, - { "Bearer Description", "etsi_cat.comp_tlv.bearer_descr", + { "Bearer Description", "etsi_cat.comp_tlv.bearer.descr", FT_UINT8, BASE_HEX, VALS(bearer_descr_vals), 0, NULL, HFILL }, }, + { &hf_ctlv_bearer_csd_data_rate, + { "Data Rate", "etsi_cat.comp_tlv.bearer.csd.data_rate", + FT_UINT8, BASE_DEC, VALS(csd_data_rate_vals), 0, + NULL, HFILL }, + }, + { &hf_ctlv_bearer_csd_bearer_serv, + { "Bearer Service", "etsi_cat.comp_tlv.bearer.csd.bearer_serv", + FT_UINT8, BASE_DEC, VALS(csd_bearer_serv_vals), 0, + NULL, HFILL }, + }, + { &hf_ctlv_bearer_csd_conn_elem, + { "Connection Element", "etsi_cat.comp_tlv.bearer.csd.conn_elem", + FT_UINT8, BASE_DEC, VALS(csd_conn_elem_vals), 0, + NULL, HFILL }, + }, + { &hf_ctlv_bearer_gprs_precedence, + { "Precedence Class", "etsi_cat.comp_tlv.bearer.gprs.precedence", + FT_UINT8, BASE_DEC, NULL, 0, + NULL, HFILL }, + }, + { &hf_ctlv_bearer_gprs_delay, + { "Delay Class", "etsi_cat.comp_tlv.bearer.gprs.delay", + FT_UINT8, BASE_DEC, NULL, 0, + NULL, HFILL }, + }, + { &hf_ctlv_bearer_gprs_reliability, + { "Reliability Class", "etsi_cat.comp_tlv.bearer.gprs.reliability", + FT_UINT8, BASE_DEC, NULL, 0, + NULL, HFILL }, + }, + { &hf_ctlv_bearer_gprs_peak, + { "Peak Throughput Class", "etsi_cat.comp_tlv.bearer.gprs.peak", + FT_UINT8, BASE_DEC, NULL, 0, + NULL, HFILL }, + }, + { &hf_ctlv_bearer_gprs_mean, + { "Mean Throuhgput Class", "etsi_cat.comp_tlv.bearer.gprs.mean", + FT_UINT8, BASE_DEC, NULL, 0, + NULL, HFILL }, + }, + { &hf_ctlv_bearer_gprs_prot_type, + { "Packet Data Protocol Type", "etsi_cat.comp_tlv.bearer.gprs.prot_type", + FT_UINT8, BASE_DEC, VALS(gprs_prot_type_vals), 0, + NULL, HFILL }, + }, + { &hf_ctlv_bearer_utran_traffic_class, + { "Traffic Class", "etsi_cat.comp_tlv.bearer.utran.traffic_class", + FT_UINT8, BASE_DEC, VALS(utran_traffic_class_vals), 0, + NULL, HFILL }, + }, + { &hf_ctlv_bearer_utran_max_bitrate_ul, + { "Maximum Bitrate UL", "etsi_cat.comp_tlv.bearer.utran.max_bitrate_ul", + FT_UINT16, BASE_DEC, NULL, 0, + NULL, HFILL }, + }, + { &hf_ctlv_bearer_utran_max_bitrate_dl, + { "Maximum Bitrate DL", "etsi_cat.comp_tlv.bearer.utran.max_bitrate_dl", + FT_UINT16, BASE_DEC, NULL, 0, + NULL, HFILL }, + }, + { &hf_ctlv_bearer_utran_guaranteed_bitrate_ul, + { "Guaranteed Bitrate DL", "etsi_cat.comp_tlv.bearer.utran.guaranteed_bitrate_ul", + FT_UINT16, BASE_DEC, NULL, 0, + NULL, HFILL }, + }, + { &hf_ctlv_bearer_utran_guaranteed_bitrate_dl, + { "Guaranteed Bitrate DL", "etsi_cat.comp_tlv.bearer.utran.guaranteed_bitrate_dl", + FT_UINT16, BASE_DEC, NULL, 0, + NULL, HFILL }, + }, + { &hf_ctlv_bearer_utran_delivery_order, + { "Delivery Order", "etsi_cat.comp_tlv.bearer.utran.delivery_order", + FT_UINT8, BASE_DEC, VALS(utran_delivery_order_vals), 0, + NULL, HFILL }, + }, + { &hf_ctlv_bearer_utran_max_sdu_size, + { "Maximum SDU Size", "etsi_cat.comp_tlv.bearer.utran.max_sdu_size", + FT_UINT8, BASE_DEC, NULL, 0, + NULL, HFILL }, + }, + { &hf_ctlv_bearer_utran_sdu_error_ratio, + { "SDU Error Ratio", "etsi_cat.comp_tlv.bearer.utran.sdu_error_ratio", + FT_UINT8, BASE_DEC, NULL, 0, + NULL, HFILL }, + }, + { &hf_ctlv_bearer_utran_residual_bit_error_ratio, + { "Residual Bit Error Ratio", "etsi_cat.comp_tlv.bearer.utran.residual_bit_error_ratio", + FT_UINT8, BASE_DEC, NULL, 0, + NULL, HFILL }, + }, + { &hf_ctlv_bearer_utran_delivery_erroneous_sdus, + { "Delivery of Erroneous SDUs", "etsi_cat.comp_tlv.bearer.utran.delivery_erroneous_sdus", + FT_UINT8, BASE_DEC, VALS(utran_delivery_erroneous_sdus_vals), 0, + NULL, HFILL }, + }, + { &hf_ctlv_bearer_utran_transfer_delay, + { "Transfer Delay", "etsi_cat.comp_tlv.bearer.utran.transfer_delay", + FT_UINT8, BASE_DEC, NULL, 0, + NULL, HFILL }, + }, + { &hf_ctlv_bearer_utran_traffic_handling_prio, + { "Traffic Handling Priority", "etsi_cat.comp_tlv.bearer.utran.traffic_handling_prio", + FT_UINT8, BASE_DEC, NULL, 0, + NULL, HFILL }, + }, + { &hf_ctlv_bearer_utran_pdp_type, + { "PDP Type", "etsi_cat.comp_tlv.bearer.utran.pdp_type", + FT_UINT8, BASE_DEC, NULL, 0, + NULL, HFILL }, + }, + { &hf_ctlv_bearer_params, + { "Bearer Parameters", "etsi_cat.comp_tlv.bearer.params", + FT_BYTES, BASE_NONE, NULL, 0, + NULL, HFILL }, + }, + { &hf_ctlv_buffers_size, + { "Buffer Size", "etsi_cat.comp_tlv.buffer_size", + FT_UINT16, BASE_DEC, NULL, 0, + NULL, HFILL }, + }, { &hf_ctlv_transport_ptype, { "Transport protocol type", "etsi_cat.comp_tlv.transport.ptype", FT_UINT8, BASE_HEX, VALS(transport_ptype_vals), 0, @@ -658,6 +1002,21 @@ proto_register_card_app_toolkit(void) FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }, }, + { &hf_ctlv_other_address_coding, + { "Coding of Type of address", "etsi_cat.comp_tlv.other_address.coding", + FT_UINT8, BASE_HEX, VALS(other_address_coding_vals), 0, + NULL, HFILL }, + }, + { &hf_ctlv_other_address_ipv4, + { "IPv4 address", "etsi_cat.comp_tlv.other_address.ipv4", + FT_IPv4, BASE_NONE, NULL, 0, + NULL, HFILL }, + }, + { &hf_ctlv_other_address_ipv6, + { "IPv4 address", "etsi_cat.comp_tlv.other_address.ipv6", + FT_IPv6, BASE_NONE, NULL, 0, + NULL, HFILL }, + }, { &hf_ctlv_access_tech, { "Access technology", "etsi_cat.comp_tlv.access_tech", FT_UINT8, BASE_HEX, VALS(access_tech_vals), 0, diff --git a/epan/dissectors/packet-gsm_a_common.h b/epan/dissectors/packet-gsm_a_common.h index 5f97b5c486..9314b0c002 100644 --- a/epan/dissectors/packet-gsm_a_common.h +++ b/epan/dissectors/packet-gsm_a_common.h @@ -716,6 +716,7 @@ guint16 de_emm_ue_net_cap(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, g guint16 de_emm_trac_area_id(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint len, gchar *add_string, int string_len); guint16 de_emm_sec_par_from_eutra(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_); guint16 de_emm_sec_par_to_eutra(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_); +guint16 de_esm_qos(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_); void dtap_rr_ho_cmd(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint len); void dtap_rr_cip_mode_cpte(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint len); diff --git a/epan/dissectors/packet-nas_eps.c b/epan/dissectors/packet-nas_eps.c index c3d813cb1b..431c07b13d 100644 --- a/epan/dissectors/packet-nas_eps.c +++ b/epan/dissectors/packet-nas_eps.c @@ -2250,8 +2250,8 @@ static const range_string nas_eps_qci_vals[] = { -static guint16 -de_esm_qos(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_) +guint16 +de_esm_qos(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_) { guint32 curr_offset; guint8 octet; |