diff --git a/epan/dissectors/packet-gsm_a_rr.c b/epan/dissectors/packet-gsm_a_rr.c index 4a2c2520c6..b1f8368e9c 100644 --- a/epan/dissectors/packet-gsm_a_rr.c +++ b/epan/dissectors/packet-gsm_a_rr.c @@ -782,6 +782,16 @@ static int hf_gsm_a_rr_eutran_mr_cell_id = -1; static int hf_gsm_a_rr_eutran_mr_rpt_quantity = -1; static int hf_gsm_a_rr_ma_channel_set = -1; static int hf_n_range_orig_arfcn = -1; +static int hf_gsm_a_rr_reported_timeslots = -1; +static int hf_gsm_a_rr_tsh = -1; +static int hf_gsm_a_rr_rtti_usf_mode = -1; +static int hf_gsm_a_rr_pdch_pair_indic = -1; +static int hf_gsm_a_rr_additional_usf = -1; +static int hf_gsm_a_rr_usf_2 = -1; +static int hf_gsm_a_rr_additional_usf_2 = -1; +static int hf_gsm_a_rr_npm_transfer_time = -1; +static int hf_gsm_a_rr_event_based_fanr = -1; +static int hf_gsm_a_rr_dl_egprs_level = -1; /* Generated from convert_proto_tree_add_text.pl */ static int hf_gsm_a_rr_cell_parameter = -1; @@ -1041,6 +1051,14 @@ static int hf_gsm_a_rr_repeated_csg_psc_split_struct = -1; static int hf_gsm_a_rr_gprs_eutran_measurement_parameters_description = -1; static int hf_gsm_a_rr_tdd_parameters = -1; static int hf_gsm_a_rr_repeat_eutran_desc = -1; +static int hf_gsm_a_rr_peo_dsc_and_rcc_present = -1; +static int hf_gsm_a_rr_c1_delta_present = -1; +static int hf_gsm_a_rr_ul_xtti_tbf_assignment = -1; +static int hf_gsm_a_rr_dl_xtti_tbf_assignment = -1; +static int hf_gsm_a_rr_fanr_act_state = -1; +static int hf_gsm_a_rr_encoding_selection = -1; +static int hf_gsm_a_rr_nof_pdch_pairs = -1; +static int hf_gsm_a_rr_npm_transfer_time_present = -1; /* gsm_rr_csn_HL_flag() fields */ static int hf_gsm_a_rr_selection_parameters = -1; @@ -1090,6 +1108,9 @@ static int hf_gsm_a_rr_nch_position_present = -1; static int hf_gsm_a_rr_additions_in_rel_7 = -1; static int hf_gsm_a_rr_packet_page_indication_2 = -1; static int hf_gsm_a_rr_multiple_tbf_procedures = -1; +static int hf_gsm_a_rr_additions_in_rel_10 = -1; +static int hf_gsm_a_rr_additions_in_rel_13 = -1; +static int hf_gsm_a_rr_si_change_alt = -1; /* Additions in Rel-8 */ static int hf_gsm_a_rr_3g_priority_param_desc_utran_start = -1; @@ -1146,7 +1167,7 @@ static int hf_gsm_a_rr_utran_csg_fdd_uarfcn = -1; static int hf_gsm_a_rr_utran_csg_tdd_uarfcn = -1; static int hf_gsm_a_rr_csg_earfcn = -1; static int hf_gsm_a_rr_3g_control_param_desc_meas_ctrl_utran = -1; -static int hf_gsm_a_rr_feat_ind_peo_bcch_change_mark = -1; +static int hf_gsm_a_rr_peo_bcch_change_mark = -1; static int hf_gsm_a_rr_feat_ind_cs_ir = -1; static int hf_gsm_a_rr_feat_ind_ps_ir = -1; @@ -1188,6 +1209,12 @@ static int hf_gsm_a_rr_ec_mobile_identity_2_exist = -1; static int hf_gsm_a_rr_ec_cc1_timeslot_multiplier = -1; static int hf_gsm_a_rr_ec_alpha_enable = -1; +static int hf_gsm_a_rr_rcc = -1; +static int hf_gsm_a_rr_implicit_reject_cs = -1; +static int hf_gsm_a_rr_implicit_reject_ps = -1; +static int hf_gsm_a_rr_peo_dsc = -1; +static int hf_gsm_a_rr_c1_delta = -1; + /* Initialize the subtree pointers */ static gint ett_ccch_msg = -1; static gint ett_ec_ccch_msg = -1; @@ -3271,6 +3298,62 @@ static const value_string gsm_a_link_quality_meas_mode_vals[] = { { 0, NULL } }; +static const true_false_string gsm_a_rr_ul_xtti_tbf_assignment_vals = { + "An uplink BTTI TBF is assigned", + "An uplink RTTI TBF is assigned" + }; + +static const true_false_string gsm_a_rr_dl_xtti_tbf_assignment_vals = { + "An downlink BTTI TBF is assigned", + "An downlink RTTI TBF is assigned" + }; + +static const true_false_string gsm_a_rr_fanr_act_state_vals = { + "FANR is not activated for the assigned TBF", + "FANR is activated for the assigned TBF" + }; + +static const true_false_string gsm_a_rr_encoding_selection_vals = { + "SSN - based encoding is selected", + "Time - based encoding is selected" + }; + +static const true_false_string gsm_a_rr_nof_pdch_pairs_vals = { + "One PDCH Pair assigned", + "Two PDCH Pairs assigned" + }; + +static const value_string gsm_a_rr_rtti_usf_mode_vals[] = { + { 0, "BTTI USF Mode is used" }, + { 1, "RTTI USF Mode is used" }, + { 0, NULL } +}; + +static const value_string gsm_a_rr_pdch_pair_indic_vals[] = { + { 0x0, "uplink PDCH pair: [i, i + 1] | downlink PDCH pair: [i, i + 1]" }, + { 0x1, "uplink PDCH pair: [i, i + 1] | downlink PDCH pair: [i - 1, i]" }, + { 0x2, "uplink PDCH pair: [i, i + 1] | downlink PDCH pair: [i - 2, i]" }, + { 0x3, "uplink PDCH pair: [i, i + 2] | downlink PDCH pair: [i - 1, i]" }, + { 0x4, "uplink PDCH pairs: [i, i + 1], [i + 2, i + 3] | downlink PDCH pairs: [i, i + 1], [i + 2, i + 3]" }, + { 0x5, "not used" }, + { 0x6, "not used" }, + { 0x7, "not used" }, + { 0, NULL } +}; + +static const value_string gsm_a_rr_egprs_level_vals[] = { + { 0x0, "EGPRS" }, + { 0x1, "EGPRS2 - A" }, + { 0x2, "EGPRS2 - B" }, + { 0x3, "reserved" }, + { 0, NULL } +}; + +static const value_string gsm_a_rr_event_based_fanr_vals[] = { + { 0, "The MS shall not use event - based FANR" }, + { 1, "The MS shall use event - based FANR" }, + { 0, NULL } +}; static guint16 de_tbf_starting_time(tvbuff_t *tvb, proto_tree *tree, guint32 bit_offset) @@ -3386,6 +3469,56 @@ de_rr_ia_rest_oct_egprs_packet_uplink_assignment(tvbuff_t *tvb, proto_tree *tree curr_bit_offset += de_tbf_starting_time(tvb, subtree, curr_bit_offset); } /* Null breakpoint */ + if (curr_bit_offset < bit_len) + { + if (gsm_rr_csn_HL_flag(tvb, subtree, 0, curr_bit_offset++, hf_gsm_a_rr_additions_in_rel_7)) + { + if (gsm_rr_csn_flag(tvb, subtree, curr_bit_offset++, hf_gsm_a_rr_ul_xtti_tbf_assignment)) + { + if (gsm_rr_csn_flag(tvb, subtree, curr_bit_offset++, hf_gsm_a_rr_fanr_act_state)) + { + if (gsm_rr_csn_flag(tvb, subtree, curr_bit_offset++, hf_gsm_a_rr_encoding_selection)) + { + proto_tree_add_bits_item(subtree, hf_gsm_a_rr_reported_timeslots, tvb, curr_bit_offset, 8, ENC_BIG_ENDIAN); + curr_bit_offset += 8; + proto_tree_add_bits_item(subtree, hf_gsm_a_rr_tsh, tvb, curr_bit_offset, 2, ENC_BIG_ENDIAN); + curr_bit_offset += 2; + } + } + } + else + { + proto_tree_add_bits_item(subtree, hf_gsm_a_rr_rtti_usf_mode, tvb, curr_bit_offset, 1, ENC_BIG_ENDIAN); + curr_bit_offset += 1; + proto_tree_add_bits_item(subtree, hf_gsm_a_rr_pdch_pair_indic, tvb, curr_bit_offset, 3, ENC_BIG_ENDIAN); + curr_bit_offset += 3; + + if (hf_gsm_a_rr_rtti_usf_mode > 0) + { + proto_tree_add_bits_item(subtree, hf_gsm_a_rr_additional_usf, tvb, curr_bit_offset, 3, ENC_BIG_ENDIAN); + curr_bit_offset += 3; + } + if (gsm_rr_csn_flag(tvb, subtree, curr_bit_offset++, hf_gsm_a_rr_nof_pdch_pairs)) + { + proto_tree_add_bits_item(subtree, hf_gsm_a_rr_usf_2, tvb, curr_bit_offset, 3, ENC_BIG_ENDIAN); + curr_bit_offset += 3; + + if (hf_gsm_a_rr_rtti_usf_mode > 0) + { + proto_tree_add_bits_item(subtree, hf_gsm_a_rr_additional_usf_2, tvb, curr_bit_offset, 3, ENC_BIG_ENDIAN); + curr_bit_offset += 3; + } + } + if (gsm_rr_csn_flag(tvb, subtree, curr_bit_offset++, hf_gsm_a_rr_encoding_selection)) + { + proto_tree_add_bits_item(subtree, hf_gsm_a_rr_reported_timeslots, tvb, curr_bit_offset, 8, ENC_BIG_ENDIAN); + curr_bit_offset += 8; + proto_tree_add_bits_item(subtree, hf_gsm_a_rr_tsh, tvb, curr_bit_offset, 2, ENC_BIG_ENDIAN); + curr_bit_offset += 2; + } + } + } + } } else /* Multi Block Allocation */ { @@ -3770,6 +3903,40 @@ de_rr_ia_rest_oct_packet_downlink_assignment(tvbuff_t *tvb, proto_tree *tree, gu } } } + + /* Null breakpoint */ + if (curr_bit_offset < bit_len) + { + if (gsm_rr_csn_HL_flag(tvb, subtree, 0, curr_bit_offset++, hf_gsm_a_rr_additions_in_rel_7)) + { + + if (gsm_rr_csn_flag(tvb, subtree, curr_bit_offset++, hf_gsm_a_rr_npm_transfer_time_present)) + { + proto_tree_add_bits_item(subtree, hf_gsm_a_rr_npm_transfer_time, tvb, curr_bit_offset, 5, ENC_BIG_ENDIAN); + curr_bit_offset += 5; + } + + if (gsm_rr_csn_flag(tvb, subtree, curr_bit_offset++, hf_gsm_a_rr_dl_xtti_tbf_assignment)) + { + if (gsm_rr_csn_flag(tvb, subtree, curr_bit_offset++, hf_gsm_a_rr_fanr_act_state)) + { + proto_tree_add_bits_item(subtree, hf_gsm_a_rr_event_based_fanr, tvb, curr_bit_offset, 1, ENC_BIG_ENDIAN); + curr_bit_offset += 1; + } + } + else + { + proto_tree_add_bits_item(subtree, hf_gsm_a_rr_event_based_fanr, tvb, curr_bit_offset, 1, ENC_BIG_ENDIAN); + curr_bit_offset += 1; + proto_tree_add_bits_item(subtree, hf_gsm_a_rr_pdch_pair_indic, tvb, curr_bit_offset, 3, ENC_BIG_ENDIAN); + curr_bit_offset += 3; + } + + proto_tree_add_bits_item(subtree, hf_gsm_a_rr_dl_egprs_level, tvb, curr_bit_offset, 2, ENC_BIG_ENDIAN); + curr_bit_offset += 2; + } + } + proto_item_set_len(item,((curr_bit_offset>>3) - (bit_offset>>3) + 1)); return (curr_bit_offset - bit_offset); @@ -3809,6 +3976,18 @@ de_rr_ia_rest_oct_second_part_packet_assignment(tvbuff_t *tvb, proto_tree *tree, * [3] 10.5.2.16 IA Rest Octets */ +static const value_string gsm_a_rr_implicit_reject_cs_vals[] = { + {0, "An implicit reject is not indicated for the CS domain"}, + {1, "An implicit reject is indicated for the CS domain"}, + {0, NULL} +}; + +static const value_string gsm_a_rr_implicit_reject_ps_vals[] = { + {0, "An implicit reject is not indicated for the PS domain"}, + {1, "An implicit reject is indicated for the PS domain"}, + {0, NULL} +}; + static guint16 de_rr_ia_rest_oct(tvbuff_t *tvb, proto_tree *subtree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_) { @@ -3829,6 +4008,15 @@ de_rr_ia_rest_oct(tvbuff_t *tvb, proto_tree *subtree, packet_info *pinfo _U_, gu { /* LL */ gsm_rr_csn_HL_flag(tvb, subtree, 0,bit_offset++, hf_gsm_a_rr_a_compressed_inter_rat_handover_info); + + if (gsm_rr_csn_HL_flag(tvb, subtree, 0, bit_offset++, hf_gsm_a_rr_additions_in_rel_13)) + { + proto_tree_add_bits_item(subtree, hf_gsm_a_rr_implicit_reject_ps, tvb, bit_offset++, 1, ENC_BIG_ENDIAN); + proto_tree_add_bits_item(subtree, hf_gsm_a_rr_peo_bcch_change_mark, tvb, bit_offset, 2, ENC_BIG_ENDIAN); + bit_offset += 2; + proto_tree_add_bits_item(subtree, hf_gsm_a_rr_rcc, tvb, bit_offset, 3, ENC_BIG_ENDIAN); + bit_offset += 3; + } } else /* LH */ { @@ -3847,6 +4035,15 @@ de_rr_ia_rest_oct(tvbuff_t *tvb, proto_tree *subtree, packet_info *pinfo _U_, gu { proto_tree_add_item(subtree, hf_gsm_a_rr_ia_rest_oct_reserved, tvb, bit_offset>>3, 1, ENC_NA); } + if (gsm_rr_csn_HL_flag(tvb, subtree, 0, bit_offset++, hf_gsm_a_rr_additions_in_rel_13)) + { + proto_tree_add_bits_item(subtree, hf_gsm_a_rr_implicit_reject_ps, tvb, bit_offset++, 1, ENC_BIG_ENDIAN); + proto_tree_add_bits_item(subtree, hf_gsm_a_rr_peo_bcch_change_mark, tvb, bit_offset, 2, ENC_BIG_ENDIAN); + bit_offset += 2; + proto_tree_add_bits_item(subtree, hf_gsm_a_rr_rcc, tvb, bit_offset, 3, ENC_BIG_ENDIAN); + bit_offset += 3; + } + } } else @@ -3874,6 +4071,15 @@ de_rr_ia_rest_oct(tvbuff_t *tvb, proto_tree *subtree, packet_info *pinfo _U_, gu } } gsm_rr_csn_HL_flag(tvb, subtree, 0, bit_offset++, hf_gsm_a_rr_a_compressed_inter_rat_handover_info); + + if (gsm_rr_csn_HL_flag(tvb, subtree, 0, bit_offset++, hf_gsm_a_rr_additions_in_rel_13)) + { + proto_tree_add_bits_item(subtree, hf_gsm_a_rr_implicit_reject_ps, tvb, bit_offset++, 1, ENC_BIG_ENDIAN); + proto_tree_add_bits_item(subtree, hf_gsm_a_rr_peo_bcch_change_mark, tvb, bit_offset, 2, ENC_BIG_ENDIAN); + bit_offset += 2; + proto_tree_add_bits_item(subtree, hf_gsm_a_rr_rcc, tvb, bit_offset, 3, ENC_BIG_ENDIAN); + bit_offset += 3; + } } else /* HH */ { @@ -3893,6 +4099,19 @@ de_rr_ia_rest_oct(tvbuff_t *tvb, proto_tree *subtree, packet_info *pinfo _U_, gu { bit_offset += de_rr_ia_rest_oct_second_part_packet_assignment(tvb, subtree, bit_offset, bit_len); } + if (gsm_rr_csn_HL_flag(tvb, subtree, 0, bit_offset++, hf_gsm_a_rr_additions_in_rel_10)) + { + proto_tree_add_bits_item(subtree, hf_gsm_a_rr_implicit_reject_cs, tvb, bit_offset++, 1, ENC_BIG_ENDIAN); + proto_tree_add_bits_item(subtree, hf_gsm_a_rr_implicit_reject_ps, tvb, bit_offset++, 1, ENC_BIG_ENDIAN); + } + + if (gsm_rr_csn_HL_flag(tvb, subtree, 0, bit_offset++, hf_gsm_a_rr_additions_in_rel_13)) + { + proto_tree_add_bits_item(subtree, hf_gsm_a_rr_peo_bcch_change_mark, tvb, bit_offset, 2, ENC_BIG_ENDIAN); + bit_offset += 2; + proto_tree_add_bits_item(subtree, hf_gsm_a_rr_rcc, tvb, bit_offset, 3, ENC_BIG_ENDIAN); + bit_offset += 3; + } } } gsm_rr_csn_padding_bits(subtree, tvb, bit_offset, tvb_len); @@ -3920,6 +4139,12 @@ de_rr_iar_rest_oct(tvbuff_t *tvb, proto_tree *subtree, packet_info *pinfo _U_, g curr_bit_offset += 5; } } + if (gsm_rr_csn_HL_flag(tvb, subtree, 0, curr_bit_offset++, hf_gsm_a_rr_additions_in_rel_13)) + { + proto_tree_add_bits_item(subtree, hf_gsm_a_rr_rcc, tvb, curr_bit_offset, 3, ENC_BIG_ENDIAN); + curr_bit_offset += 3; + } + gsm_rr_csn_padding_bits(subtree, tvb, curr_bit_offset, tvb_len); return tvb_len - offset; } @@ -3937,6 +4162,12 @@ de_rr_iax_rest_oct(tvbuff_t *tvb, proto_tree *subtree, packet_info *pinfo _U_, g gsm_rr_csn_flag(tvb, subtree, curr_bit_offset++, hf_gsm_a_rr_compressed_inter_rat_handover_info); + if (gsm_rr_csn_HL_flag(tvb, subtree, 0, curr_bit_offset++, hf_gsm_a_rr_additions_in_rel_13)) + { + proto_tree_add_bits_item(subtree, hf_gsm_a_rr_rcc, tvb, curr_bit_offset, 3, ENC_BIG_ENDIAN); + curr_bit_offset += 3; + } + gsm_rr_csn_padding_bits(subtree, tvb, curr_bit_offset, tvb_len); return tvb_len - offset; } @@ -8008,6 +8239,31 @@ static const value_string gsm_a_rr_si2n_support_vals[] = { { 0, NULL } }; +static const value_string gsm_a_rr_peo_dsc_vals[] = { + { 0, "DSC = 4" }, + { 1, "DSC = 6" }, + { 2, "DSC = 8" }, + { 3, "DSC = 10" }, + { 0, NULL } +}; + +static const value_string gsm_a_rr_c1_delta_vals[] = { + { 0, "3 dB" }, + { 1, "6 dB" }, + { 2, "9 dB" }, + { 3, "12 dB" }, + { 4, "15 dB" }, + { 5, "18 dB" }, + { 6, "21 dB" }, + { 7, "24 dB" }, + { 0, NULL } +}; + +static const true_false_string gsm_si_change_alt_value = { + "A mobile station supporting network sharing should not attempt to re-read the SI2quater message", + "A mobile station supporting network sharing shall fully take into account a change of system information \nsignalled by the SI_CHANGE_FIELD value '2', SI2quater included" + }; + static guint16 de_rr_si13_rest_oct(tvbuff_t *tvb, proto_tree *subtree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_) { @@ -8095,13 +8351,29 @@ de_rr_si13_rest_oct(tvbuff_t *tvb, proto_tree *subtree, packet_info *pinfo _U_, { if (gsm_rr_csn_HL_flag(tvb, subtree, 0, bit_offset++, hf_gsm_a_rr_additions_in_rel_6)) { /* Additions in release Rel-6 */ - if (gsm_rr_csn_flag(tvb, subtree, bit_offset++, hf_gsm_a_rr_lb_ms_txpwr_max_cch_present)) - { - proto_tree_add_bits_item(subtree, hf_gsm_a_rr_lb_ms_txpwr_max_cch, tvb, bit_offset, 5, ENC_BIG_ENDIAN); - bit_offset += 5; - } - proto_tree_add_bits_item(subtree, hf_gsm_a_rr_si2n_support, tvb, bit_offset, 2, ENC_BIG_ENDIAN); - bit_offset += 2; + if (gsm_rr_csn_flag(tvb, subtree, bit_offset++, hf_gsm_a_rr_lb_ms_txpwr_max_cch_present)) + { + proto_tree_add_bits_item(subtree, hf_gsm_a_rr_lb_ms_txpwr_max_cch, tvb, bit_offset, 5, ENC_BIG_ENDIAN); + bit_offset += 5; + } + proto_tree_add_bits_item(subtree, hf_gsm_a_rr_si2n_support, tvb, bit_offset, 2, ENC_BIG_ENDIAN); + bit_offset += 2; + + (void)gsm_rr_csn_HL_flag(tvb, subtree, 0, bit_offset++, hf_gsm_a_rr_si_change_alt); + + if (gsm_rr_csn_flag(tvb, subtree, bit_offset++, hf_gsm_a_rr_peo_dsc_and_rcc_present)) + { + proto_tree_add_bits_item(subtree, hf_gsm_a_rr_peo_dsc, tvb, bit_offset, 2, ENC_BIG_ENDIAN); + bit_offset += 2; + proto_tree_add_bits_item(subtree, hf_gsm_a_rr_rcc, tvb, bit_offset, 3, ENC_BIG_ENDIAN); + bit_offset += 3; + } + + if (gsm_rr_csn_flag(tvb, subtree, bit_offset++, hf_gsm_a_rr_c1_delta_present)) + { + proto_tree_add_bits_item(subtree, hf_gsm_a_rr_c1_delta, tvb, bit_offset, 3, ENC_BIG_ENDIAN); + bit_offset += 3; + } } } } @@ -8581,7 +8853,7 @@ de_rr_feature_indicator(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, curr_offset = offset; - proto_tree_add_bits_item(tree, hf_gsm_a_rr_feat_ind_peo_bcch_change_mark, tvb, curr_offset<<3, 2, ENC_BIG_ENDIAN); + proto_tree_add_bits_item(tree, hf_gsm_a_rr_peo_bcch_change_mark, tvb, curr_offset << 3, 2, ENC_BIG_ENDIAN); proto_tree_add_bits_item(tree, hf_gsm_a_rr_feat_ind_cs_ir, tvb, (curr_offset<<3)+2, 1, ENC_BIG_ENDIAN); proto_tree_add_bits_item(tree, hf_gsm_a_rr_feat_ind_ps_ir, tvb, (curr_offset<<3)+3, 1, ENC_BIG_ENDIAN); @@ -13606,8 +13878,8 @@ proto_register_gsm_a_rr(void) FT_UINT16, BASE_DEC, NULL, 0x00, NULL, HFILL } }, - { &hf_gsm_a_rr_feat_ind_peo_bcch_change_mark, - { "PEO BCCH CHANGE MARK","gsm_a.rr.feature_indicator.peo_bcch_change_mark", + { &hf_gsm_a_rr_peo_bcch_change_mark, + { "PEO BCCH CHANGE MARK", "gsm_a.rr.peo_bcch_change_mark", FT_UINT8, BASE_DEC, NULL, 0x00, NULL, HFILL } }, @@ -13808,10 +14080,92 @@ proto_register_gsm_a_rr(void) NULL, HFILL } }, - - - - + { &hf_gsm_a_rr_rcc, + { "RCC", "gsm_a.rr_rcc", + FT_UINT8, BASE_DEC, NULL, 0x00, + NULL, HFILL + } + }, + { &hf_gsm_a_rr_implicit_reject_cs, + { "Implicit Reject CS", "gsm_a.rr.implicit_reject_cs", + FT_UINT8, BASE_DEC, VALS(gsm_a_rr_implicit_reject_cs_vals), 0x00, + NULL, HFILL } + }, + { &hf_gsm_a_rr_implicit_reject_ps, + { "Implicit Reject PS", "gsm_a.rr.implicit_reject_ps", + FT_UINT8, BASE_DEC, VALS(gsm_a_rr_implicit_reject_ps_vals), 0x00, + NULL, HFILL } + }, + { &hf_gsm_a_rr_peo_dsc, + { "PEO DSC", "gsm_a.rr.peo_dsc", + FT_UINT8, BASE_DEC, VALS(gsm_a_rr_peo_dsc_vals), 0x00, + NULL, HFILL } + }, + { &hf_gsm_a_rr_c1_delta, + { "C1 DELTA value", "gsm_a.rr.c1_delta", + FT_UINT8, BASE_DEC, VALS(gsm_a_rr_c1_delta_vals), 0x00, + NULL, HFILL } + }, + { &hf_gsm_a_rr_reported_timeslots, + { "REPORTED TIMESLOTS", "gsm_a.rr.reported_timeslots", + FT_UINT8, BASE_DEC, NULL, 0x00, + NULL, HFILL + } + }, + { &hf_gsm_a_rr_tsh, + { "TSH", "gsm_a.rr.tsh", + FT_UINT8, BASE_DEC, NULL, 0x00, + NULL, HFILL + } + }, + { &hf_gsm_a_rr_rtti_usf_mode, + { "RTTI USF Mode", "gsm_a.rr.rtti_usf_mode", + FT_UINT8, BASE_DEC, VALS(gsm_a_rr_rtti_usf_mode_vals), 0x00, + NULL, HFILL + } + }, + { &hf_gsm_a_rr_pdch_pair_indic, + { "PDCH PAIR INDICATION", "gsm_a.rr.pdch_pair_indic", + FT_UINT8, BASE_DEC, VALS(gsm_a_rr_pdch_pair_indic_vals), 0x00, + NULL, HFILL + } + }, + { &hf_gsm_a_rr_additional_usf, + { "Additional USF", "gsm_a.rr.additional_usf", + FT_UINT8, BASE_DEC, NULL, 0x00, + NULL, HFILL + } + }, + { &hf_gsm_a_rr_usf_2, + { "USF2", "gsm_a.rr.usf_2", + FT_UINT8, BASE_DEC, NULL, 0x00, + NULL, HFILL + } + }, + { &hf_gsm_a_rr_additional_usf_2, + { "Additional USF2", "gsm_a.rr.additional_usf_2", + FT_UINT8, BASE_DEC, NULL, 0x00, + NULL, HFILL + } + }, + { &hf_gsm_a_rr_npm_transfer_time, + { "NPM Transfer Time", "gsm_a.rr.npm_transfer_time", + FT_UINT8, BASE_DEC, NULL, 0x00, + NULL, HFILL + } + }, + { &hf_gsm_a_rr_event_based_fanr, + { "EVENT BASED FANR", "gsm_a.rr.event_base_fanr", + FT_UINT8, BASE_DEC, VALS(gsm_a_rr_event_based_fanr_vals), 0x00, + NULL, HFILL + } + }, + { &hf_gsm_a_rr_dl_egprs_level, + { "Downlink EGPRS Level", "gsm_a.rr.dl_egprs_level", + FT_UINT8, BASE_DEC, VALS(gsm_a_rr_egprs_level_vals), 0x00, + NULL, HFILL + } + }, /* Generated from convert_proto_tree_add_text.pl */ { &hf_gsm_a_rr_padding, { "Padding Bits", "gsm_a.rr.padding_bits", FT_BYTES, BASE_NONE, NULL, 0x0, NULL, HFILL }}, @@ -14071,7 +14425,14 @@ proto_register_gsm_a_rr(void) { &hf_gsm_a_rr_bitmap_type_reporting, { "Bitmap Type Reporting", "gsm_a.rr.bitmap_type_reporting", FT_BOOLEAN, BASE_NONE, TFS(&tfs_present_not_present), 0x00, NULL, HFILL }}, { &hf_gsm_a_rr_e_utran_measurement_report, { "E-UTRAN Measurement Report", "gsm_a.rr.e_utran_measurement_report", FT_BOOLEAN, BASE_NONE, TFS(&tfs_present_not_present), 0x00, NULL, HFILL }}, { &hf_gsm_a_rr_repeat_eutran_desc, { "Repeating E-UTRAN Description struct", "gsm_a.rr.repeat_eutran_desc", FT_BOOLEAN, BASE_NONE, TFS(&tfs_present_not_present), 0x00, NULL, HFILL }}, - + { &hf_gsm_a_rr_peo_dsc_and_rcc_present, { "PEO DSC and RCC", "gsm_a.rr.peo_dsc_and_rcc_present", FT_BOOLEAN, BASE_NONE, TFS(&tfs_present_not_present), 0x00, NULL, HFILL } }, + { &hf_gsm_a_rr_c1_delta_present, { "C1 DELTA", "gsm_a.rr.c1_delta_present", FT_BOOLEAN, BASE_NONE, TFS(&tfs_present_not_present), 0x00, NULL, HFILL } }, + { &hf_gsm_a_rr_ul_xtti_tbf_assignment, { "TTI mode for uplink TBF", "gsm_a.rr.ul_xtti_tbf_assignment", FT_BOOLEAN, BASE_NONE, TFS(&gsm_a_rr_ul_xtti_tbf_assignment_vals), 0x00, NULL, HFILL } }, + { &hf_gsm_a_rr_dl_xtti_tbf_assignment, { "TTI mode for downlink TBF", "gsm_a.rr.dl_xtti_tbf_assignment", FT_BOOLEAN, BASE_NONE, TFS(&gsm_a_rr_dl_xtti_tbf_assignment_vals), 0x00, NULL, HFILL } }, + { &hf_gsm_a_rr_fanr_act_state, { "FANR state", "gsm_a.rr.fanr_act_state", FT_BOOLEAN, BASE_NONE, TFS(&gsm_a_rr_fanr_act_state_vals), 0x00, NULL, HFILL } }, + { &hf_gsm_a_rr_encoding_selection, { "Selected encoding", "gsm_a.rr.encoding_selection", FT_BOOLEAN, BASE_NONE, TFS(&gsm_a_rr_encoding_selection_vals), 0x00, NULL, HFILL } }, + { &hf_gsm_a_rr_nof_pdch_pairs, { "Number of assigned PDCH pairs", "gsm_a.rr.nof_pdch_pairs", FT_BOOLEAN, BASE_NONE, TFS(&gsm_a_rr_nof_pdch_pairs_vals), 0x00, NULL, HFILL } }, + { &hf_gsm_a_rr_npm_transfer_time_present, { "NPM Transfer Time", "gsm_a.rr.npm_transfer_time_present", FT_BOOLEAN, BASE_NONE, TFS(&tfs_present_not_present), 0x00, NULL, HFILL } }, /* gsm_rr_csn_HL_flag() fields */ { &hf_gsm_a_rr_selection_parameters, { "Selection Parameters", "gsm_a.rr.selection_parameters", FT_BOOLEAN, BASE_NONE, TFS(&tfs_present_not_present), 0x00, NULL, HFILL }}, { &hf_gsm_a_rr_break_indicator, { "Break Indicator", "gsm_a.rr.break_indicator", FT_BOOLEAN, BASE_NONE, TFS(&tfs_break_indicator), 0x00, NULL, HFILL }}, @@ -14079,6 +14440,8 @@ proto_register_gsm_a_rr(void) { &hf_gsm_a_rr_additions_in_rel_7, { "Additions in Rel-7", "gsm_a.rr.additions_in_rel_7", FT_BOOLEAN, BASE_NONE, TFS(&tfs_present_not_present), 0x00, NULL, HFILL }}, { &hf_gsm_a_rr_additions_in_rel_9, { "Additions in Rel-9", "gsm_a.rr.additions_in_rel_9", FT_BOOLEAN, BASE_NONE, TFS(&tfs_present_not_present), 0x00, NULL, HFILL }}, { &hf_gsm_a_rr_additions_in_rel_6, { "Additions in Rel-6", "gsm_a.rr.additions_in_rel_6", FT_BOOLEAN, BASE_NONE, TFS(&tfs_present_not_present), 0x00, NULL, HFILL }}, + { &hf_gsm_a_rr_additions_in_rel_10, { "Additions in Rel-10", "gsm_a.rr.additions_in_rel_10", FT_BOOLEAN, BASE_NONE, TFS(&tfs_present_not_present), 0x00, NULL, HFILL } }, + { &hf_gsm_a_rr_additions_in_rel_13, { "Additions in Rel-13", "gsm_a.rr.additions_in_rel_13", FT_BOOLEAN, BASE_NONE, TFS(&tfs_present_not_present), 0x00, NULL, HFILL } }, { &hf_gsm_a_rr_additions_in_r99, { "Additions in R99", "gsm_a.rr.additions_in_r99", FT_BOOLEAN, BASE_NONE, TFS(&tfs_present_not_present), 0x00, NULL, HFILL }}, { &hf_gsm_a_rr_first_discriminator_bit, { "First Discriminator Bit", "gsm_a.rr.first_discriminator_bit", FT_BOOLEAN, BASE_NONE, TFS(&tfs_high_low), 0x00, NULL, HFILL }}, { &hf_gsm_a_rr_second_discriminator_bit, { "Second Discriminator Bit", "gsm_a.rr.second_discriminator_bit", FT_BOOLEAN, BASE_NONE, TFS(&tfs_high_low), 0x00, NULL, HFILL }}, @@ -14120,6 +14483,7 @@ proto_register_gsm_a_rr(void) { &hf_gsm_a_rr_mbms_procedures, { "MBMS Procedures", "gsm_a.rr.mbms_procedures", FT_BOOLEAN, BASE_NONE, TFS(&tfs_supported_not_supported), 0x00, NULL, HFILL }}, { &hf_gsm_a_rr_si13_contents, { "SI13 contents", "gsm_a.rr.si13_contents", FT_BOOLEAN, BASE_NONE, TFS(&tfs_present_not_present), 0x00, NULL, HFILL }}, { &hf_gsm_a_rr_additions_in_rel_4, { "Additions in Rel-4", "gsm_a.rr.additions_in_rel_4", FT_BOOLEAN, BASE_NONE, TFS(&tfs_present_not_present), 0x00, NULL, HFILL }}, + { &hf_gsm_a_rr_si_change_alt, { "SI CHANGE ALT", "gsm_a.rr.si_change_alt", FT_BOOLEAN, BASE_NONE, TFS(&gsm_si_change_alt_value), 0x00, NULL, HFILL } }, };