diff --git a/epan/dissectors/packet-gtpv2.c b/epan/dissectors/packet-gtpv2.c index 6ad0d1aaf0..0909805b41 100644 --- a/epan/dissectors/packet-gtpv2.c +++ b/epan/dissectors/packet-gtpv2.c @@ -49,6 +49,7 @@ static int hf_gtpv2_response_in = -1; static int hf_gtpv2_response_to = -1; static int hf_gtpv2_response_time = -1; static int hf_gtpv2_spare_half_octet = -1; +static int hf_gtpv2_spare_b7_b1 = -1; static int hf_gtpv2_spare_b7_b3 = -1; static int hf_gtpv2_spare_bits = -1; static int hf_gtpv2_flags = -1; @@ -157,6 +158,7 @@ static int hf_gtpv2_ltemui = -1; static int hf_gtpv2_ltempi = -1; static int hf_gtpv2_enbcrsi = -1; static int hf_gtpv2_tspcmi = -1; +static int hf_gtpv2_ethpdn = -1; static int hf_gtpv2_pdn_type = -1; @@ -2441,6 +2443,19 @@ dissect_gtpv2_ind(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, proto_ite return; } + static const int* oct12_flags[] = { + &hf_gtpv2_spare_b7_b1, + &hf_gtpv2_ethpdn, + NULL + }; + /*Octet 12 Spare ETHPDN */ + proto_tree_add_bitmask_list(tree, tvb, offset, 1, oct12_flags, ENC_NA); + offset += 1; + + if (length == 8) { + return; + } + proto_tree_add_expert_format(tree, pinfo, &ei_gtpv2_ie_data_not_dissected, tvb, offset, -1, "The rest of the IE not dissected yet"); @@ -8519,6 +8534,11 @@ void proto_register_gtpv2(void) FT_UINT8, BASE_DEC, NULL, 0xf8, NULL, HFILL } }, + { &hf_gtpv2_spare_b7_b1, + {"Spare bit(s)", "gtpv2.spare_b7_b3", + FT_UINT8, BASE_DEC, NULL, 0xfe, + NULL, HFILL } + }, { &hf_gtpv2_spare_bits, {"Spare bit(s)", "gtpv2.spare_bits", FT_UINT8, BASE_DEC, NULL, 0x0, @@ -9017,6 +9037,10 @@ void proto_register_gtpv2(void) {"TSPCMI (Triggering SGSN Initiated PDP Context Creation/Modification Indication)", "gtpv2.tspcmi", FT_BOOLEAN, 8, NULL, 0x01, NULL, HFILL} }, + { &hf_gtpv2_ethpdn, + {"ETHPDN (Ethernet PDN Support Indication):", "gtpv2.ethpdn", + FT_BOOLEAN, 8, TFS(&tfs_supported_not_supported), 0x01, NULL, HFILL} + }, { &hf_gtpv2_pdn_type, {"PDN Type", "gtpv2.pdn_type", FT_UINT8, BASE_DEC, VALS(gtpv2_pdn_type_vals), 0x07,