diff options
author | Joakim Karlsson <oakimk@gmail.com> | 2016-11-01 21:11:05 +0100 |
---|---|---|
committer | Michael Mann <mmann78@netscape.net> | 2016-11-02 00:53:37 +0000 |
commit | 17503b9553f23ff451736f6d6d5bb9237e243f71 (patch) | |
tree | 8ce1179211ac7d0a3636a5d53301c17a26a31502 /epan/dissectors/packet-gtp.c | |
parent | 206424321c41293bf825a9fecea1d7dbc06258d3 (diff) | |
download | wireshark-17503b9553f23ff451736f6d6d5bb9237e243f71.tar.gz |
gtp: correction of octet14 in QoSProfile
* Added Spare4
* Corrected order
Change-Id: I93384452d73bd519784b8c11ab5671797d16fc99
Reviewed-on: https://code.wireshark.org/review/18606
Petri-Dish: Jaap Keuter <jaap.keuter@xs4all.nl>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Michael Mann <mmann78@netscape.net>
Diffstat (limited to 'epan/dissectors/packet-gtp.c')
-rw-r--r-- | epan/dissectors/packet-gtp.c | 30 |
1 files changed, 20 insertions, 10 deletions
diff --git a/epan/dissectors/packet-gtp.c b/epan/dissectors/packet-gtp.c index 8ee4e686bf..5e43b51069 100644 --- a/epan/dissectors/packet-gtp.c +++ b/epan/dissectors/packet-gtp.c @@ -181,8 +181,9 @@ 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_spare4 = -1; static int hf_gtp_qos_sig_ind = -1; +static int hf_gtp_qos_src_stat_desc = -1; static int hf_gtp_qos_arp = -1; static int hf_gtp_qos_arp_pvi = -1; static int hf_gtp_qos_arp_pl = -1; @@ -504,8 +505,9 @@ static const value_string next_extension_header_fieldvals[] = { #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_SPARE4_MASK 0xE0 #define GTP_EXT_QOS_SIG_IND_MASK 0x10 +#define GTP_EXT_QOS_SRC_STAT_DESC_MASK 0x0F /* Definition of Radio Priority's masks */ #define GTPv1_EXT_RP_NSAPI_MASK 0xF0 @@ -4544,7 +4546,7 @@ decode_qos_umts(tvbuff_t * tvb, int offset, packet_info * pinfo, proto_tree * tr guint8 res_ber, sdu_err_ratio; guint8 trans_delay, traf_handl_prio; guint8 guar_ul, guar_dl, guar_ul_ext, guar_dl_ext, guar_ul_ext2 = 0, guar_dl_ext2 = 0; - guint8 src_stat_desc, sig_ind; + guint8 src_stat_desc, sig_ind, spare4; proto_tree *ext_tree_qos; int mss, mu, md, gu, gd; guint8 arp, qci; @@ -4763,16 +4765,18 @@ decode_qos_umts(tvbuff_t * tvb, int offset, packet_info * pinfo, proto_tree * tr /* Octet 13 */ guar_dl = wrapped_tvb_get_guint8(tvb, offset + (11 - 1) * utf8_type + 1, utf8_type); - src_stat_desc = 0; + spare4 = 0; sig_ind = 0; + src_stat_desc = 0; max_dl_ext = 0; guar_dl_ext = 0; max_ul_ext = 0; guar_ul_ext = 0; if (length > 13 ||((type == 2) && (length == 13))) { - src_stat_desc = wrapped_tvb_get_guint8(tvb, offset + (12 - 1) * utf8_type + 1, utf8_type) & GTP_EXT_QOS_SRC_STAT_DESC_MASK; + spare4 = wrapped_tvb_get_guint8(tvb, offset + (12 - 1) * utf8_type + 1, utf8_type) & GTP_EXT_QOS_SPARE4_MASK; sig_ind = wrapped_tvb_get_guint8(tvb, offset + (12 - 1) * utf8_type + 1, utf8_type) & GTP_EXT_QOS_SIG_IND_MASK; + src_stat_desc = wrapped_tvb_get_guint8(tvb, offset + (12 - 1) * utf8_type + 1, utf8_type) & GTP_EXT_QOS_SRC_STAT_DESC_MASK; } if (length > 14) { max_dl_ext = wrapped_tvb_get_guint8(tvb, offset + (13 - 1) * utf8_type + 1, utf8_type); @@ -4877,8 +4881,9 @@ decode_qos_umts(tvbuff_t * tvb, int offset, packet_info * pinfo, proto_tree * tr } if(length > 13 ||((type == 2) && (length == 13))) { - proto_tree_add_uint(ext_tree_qos, hf_gtp_qos_src_stat_desc, tvb, offset + (12 - 1) * utf8_type + 1, utf8_type, src_stat_desc); + proto_tree_add_uint(ext_tree_qos, hf_gtp_qos_spare4, tvb, offset + (12 - 1) * utf8_type + 1, utf8_type, spare4); proto_tree_add_boolean(ext_tree_qos, hf_gtp_qos_sig_ind, tvb, offset + (12 - 1) * utf8_type + 1, utf8_type, sig_ind); + proto_tree_add_uint(ext_tree_qos, hf_gtp_qos_src_stat_desc, tvb, offset + (12 - 1) * utf8_type + 1, utf8_type, src_stat_desc); } @@ -9255,16 +9260,21 @@ proto_register_gtp(void) FT_UINT8, BASE_DEC, VALS(qos_guar_dl), 0, NULL, HFILL} }, - {&hf_gtp_qos_src_stat_desc, - { "Source Statistics Descriptor", "gtp.src_stat_desc", - FT_UINT8, BASE_DEC, VALS(src_stat_desc_vals), GTP_EXT_QOS_SRC_STAT_DESC_MASK, - NULL, HFILL} + {&hf_gtp_qos_spare4, + { "Spare", "gtp.qos_spare4", + FT_UINT8, BASE_DEC, NULL, GTP_EXT_QOS_SPARE4_MASK, + "Spare (shall be sent as '000' )", HFILL} }, {&hf_gtp_qos_sig_ind, { "Signalling Indication", "gtp.sig_ind", FT_BOOLEAN, 8, TFS(>p_sig_ind), GTP_EXT_QOS_SIG_IND_MASK, NULL, HFILL} }, + {&hf_gtp_qos_src_stat_desc, + { "Source Statistics Descriptor", "gtp.src_stat_desc", + FT_UINT8, BASE_DEC, VALS(src_stat_desc_vals), GTP_EXT_QOS_SRC_STAT_DESC_MASK, + NULL, HFILL} + }, { &hf_gtp_qos_arp, {"Allocation/Retention Priority", "gtp.qos_arp", FT_UINT16, BASE_HEX, NULL, 0x0, |