/* 10.5.2 Radio Resource management information elements  10.5.2.1a BA Range  */
static guint16 de_rr_ba_range(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
/* 10.5.2 Radio Resource management information elements  10.5.2.1a BA Range  */
static guint16 de_rr_ba_range(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;
    gint    bit_offset;
    guint8  value;
    curr_offset = offset;
    proto_tree_add_item(tree, hf_gsm_a_rr_range_nb, tvb, curr_offset, 1, ENC_BIG_ENDIAN);
    value = tvb_get_guint8(tvb, curr_offset);
    curr_offset += 1;
    bit_offset = curr_offset << 3;
    while (value)
    {
        proto_tree_add_bits_item(tree, hf_gsm_a_rr_range_lower, tvb, bit_offset, 10, ENC_BIG_ENDIAN);
        bit_offset += 10;
        proto_tree_add_bits_item(tree, hf_gsm_a_rr_range_higher, tvb, bit_offset, 10, ENC_BIG_ENDIAN);
        bit_offset += 10;
        value -= 1;
    }
    curr_offset += len - 1;
    return (curr_offset - offset);
}