diff options
author | AndersBroman <anders.broman@ericsson.com> | 2017-02-20 16:41:54 +0100 |
---|---|---|
committer | Alexis La Goutte <alexis.lagoutte@gmail.com> | 2017-02-20 20:14:02 +0000 |
commit | 05cda4058c5ebc649bf358436bb8cfe50f1d2850 (patch) | |
tree | 796218dc84b2dc8386ddff68944237fd614be50c /epan/dissectors/packet-bssgp.c | |
parent | dfb05b9423e9172b7a687738b82b6b715fd0e47c (diff) |
[BSSGP] Dissect new Extended Feature Bitmap fields.
Change-Id: I6993a1b0d0a5056c3c2a3af0f5bc5eef6a36cde1
Reviewed-on: https://code.wireshark.org/review/20212
Reviewed-by: Anders Broman <a.broman58@gmail.com>
Petri-Dish: Anders Broman <a.broman58@gmail.com>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Alexis La Goutte <alexis.lagoutte@gmail.com>
Diffstat (limited to 'epan/dissectors/packet-bssgp.c')
-rw-r--r-- | epan/dissectors/packet-bssgp.c | 56 |
1 files changed, 52 insertions, 4 deletions
diff --git a/epan/dissectors/packet-bssgp.c b/epan/dissectors/packet-bssgp.c index 53223b9d21..08b368d1a8 100644 --- a/epan/dissectors/packet-bssgp.c +++ b/epan/dissectors/packet-bssgp.c @@ -151,6 +151,11 @@ static int hf_bssgp_mbms_cause = -1; static int hf_bssgp_mbms_stop_cause = -1; static int hf_bssgp_mbms_num_ra_ids = -1; static int hf_bssgp_session_inf = -1; +static int hf_bssgp_ec_gsm_iot = -1; +static int hf_bssgp_mocn = -1; +static int hf_bssgp_csps_coord = -1; +static int hf_bssgp_eDRX = -1; +static int hf_bssgp_dcn = 1; static int hf_bssgp_gb_if = -1; static int hf_bssgp_ps_ho = -1; static int hf_bssgp_src_to_trg_transp_cont = -1; @@ -204,6 +209,7 @@ static int hf_bssgp_ec_dl_coveradge_class = -1; static int hf_bssgp_ec_ul_coveradge_class = -1; static int hf_bssgp_paging_attempt_count = -1; static int hf_bssgp_intended_num_of_pag_attempts = -1; +static int hf_bssgp_extended_feature_bitmap = -1; /* Initialize the subtree pointers */ static gint ett_bssgp = -1; @@ -216,6 +222,7 @@ static gint ett_bssgp_pfcs_to_be_set_up_list_t10 = -1; static gint ett_bssgp_list_of_setup_pfcs = -1; static gint ett_bssgp_pfc_flow_control_parameters_pfc = -1; static gint ett_bssgp_ra_id = -1; +static gint ett_bssgp_extended_feature_bitmap = -1; static expert_field ei_bssgp_extraneous_data = EI_INIT; static expert_field ei_bssgp_missing_mandatory_element = EI_INIT; @@ -2645,6 +2652,16 @@ de_bssgp_list_of_setup_pfcs(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, /* * 11.3.84 Extended Feature Bitmap */ +static const int *bssgp_ext_feature_bitmap_fields[] = { + &hf_bssgp_eDRX, + &hf_bssgp_dcn, + &hf_bssgp_ec_gsm_iot, + &hf_bssgp_csps_coord, + &hf_bssgp_mocn, + &hf_bssgp_gb_if, + &hf_bssgp_ps_ho, + NULL +}; static guint16 de_bssgp_ext_feature_bitmap(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_) { @@ -2652,10 +2669,9 @@ de_bssgp_ext_feature_bitmap(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo curr_offset = offset; - /* Gigabit Interface */ - proto_tree_add_item(tree, hf_bssgp_gb_if, tvb, curr_offset, 1, ENC_BIG_ENDIAN); - /* PS Handover */ proto_tree_add_item(tree, hf_bssgp_ps_ho, tvb, curr_offset, 1, ENC_BIG_ENDIAN); + proto_tree_add_bitmask_with_flags(tree, tvb, curr_offset, hf_bssgp_extended_feature_bitmap, + ett_bssgp_extended_feature_bitmap, bssgp_ext_feature_bitmap_fields, ENC_BIG_ENDIAN, BMT_NO_APPEND); curr_offset++; return(curr_offset-offset); @@ -7094,6 +7110,31 @@ proto_register_bssgp(void) FT_UINT8, BASE_DEC|BASE_EXT_STRING, &bssgp_mbms_num_ra_ids_vals_ext, 0xf0, NULL, HFILL } }, + { &hf_bssgp_eDRX, + { "eDRX", "bssgp.edrx", + FT_BOOLEAN, 8, TFS(&tfs_supported_not_supported), 0x40, + NULL, HFILL } + }, + { &hf_bssgp_eDRX, + { "DCN(Dedicated Core Network)", "bssgp.dcn", + FT_BOOLEAN, 8, TFS(&tfs_supported_not_supported), 0x20, + NULL, HFILL } + }, + { &hf_bssgp_ec_gsm_iot, + { "EC-GSM-IoT", "bssgp.ec_gsm_iot", + FT_BOOLEAN, 8, TFS(&tfs_supported_not_supported), 0x10, + NULL, HFILL } + }, + { &hf_bssgp_csps_coord, + { "CS/PS COORD", "bssgp.csps_coord", + FT_BOOLEAN, 8, TFS(&tfs_supported_not_supported), 0x08, + NULL, HFILL } + }, + { &hf_bssgp_mocn, + { "MOCN", "bssgp.mocn", + FT_BOOLEAN, 8, TFS(&tfs_supported_not_supported), 0x04, + NULL, HFILL } + }, { &hf_bssgp_gb_if, { "Gigabit Interface", "bssgp.gb_if", FT_BOOLEAN, 8, TFS(&tfs_supported_not_supported), 0x02, @@ -7356,10 +7397,16 @@ proto_register_bssgp(void) FT_UINT8, BASE_HEX, VALS(bssgp_intended_num_of_pag_attempts_vals), 0x78, NULL, HFILL } }, + { &hf_bssgp_extended_feature_bitmap, + { "Extended Feature Bitmap", "bssgp.extended_feature_bitmap", + FT_UINT8, BASE_HEX, NULL, 0x0, + NULL, HFILL } + }, + }; /* Setup protocol subtree array */ -#define NUM_INDIVIDUAL_ELEMS 10 +#define NUM_INDIVIDUAL_ELEMS 11 gint *ett[NUM_INDIVIDUAL_ELEMS + NUM_BSSGP_ELEM + NUM_BSSGP_MSG]; @@ -7389,6 +7436,7 @@ proto_register_bssgp(void) ett[7] = &ett_bssgp_new; ett[8] = &ett_bssgp_pfc_flow_control_parameters_pfc; ett[9] = &ett_bssgp_ra_id, + ett[10] = &ett_bssgp_extended_feature_bitmap, last_offset = NUM_INDIVIDUAL_ELEMS; |