aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/packet-bthci_evt.c
diff options
context:
space:
mode:
Diffstat (limited to 'epan/dissectors/packet-bthci_evt.c')
-rw-r--r--epan/dissectors/packet-bthci_evt.c1994
1 files changed, 1122 insertions, 872 deletions
diff --git a/epan/dissectors/packet-bthci_evt.c b/epan/dissectors/packet-bthci_evt.c
index b114cf2c43..b0feec1e84 100644
--- a/epan/dissectors/packet-bthci_evt.c
+++ b/epan/dissectors/packet-bthci_evt.c
@@ -10,6 +10,10 @@
* Allan M. Madsen 2007
* Updated to HCI specification 3.0+HS & 4.0
* Allan M. Madsen 2012
+ * Updated to HCI specification 5.3
+ * Allan M. Madsen 2022
+ * Updated to HCI specification 5.4
+ * Allan M. Madsen 2023
*
* Wireshark - Network traffic analyzer
* By Gerald Combs <gerald@wireshark.org>
@@ -43,550 +47,565 @@ static dissector_handle_t btcommon_ad_handle;
static dissector_handle_t btcommon_le_channel_map_handle;
/* Initialize the protocol and registered fields */
-static int proto_bthci_evt = -1;
-static int hf_bthci_evt_code = -1;
-static int hf_bthci_evt_param_length = -1;
-static int hf_bthci_evt_num_command_packets = -1;
-static int hf_bthci_evt_num_handles = -1;
-static int hf_bthci_evt_connection_handle = -1;
-static int hf_bthci_evt_num_compl_packets = -1;
-static int hf_bthci_evt_ret_params = -1;
-static int hf_bthci_evt_status = -1;
-static int hf_bthci_evt_status_pending = -1;
-static int hf_bthci_evt_opcode = -1;
-static int hf_bthci_evt_ogf = -1;
-static int hf_bthci_evt_ocf = -1;
-static int hf_bthci_evt_ocf_link_control = -1;
-static int hf_bthci_evt_ocf_link_policy = -1;
-static int hf_bthci_evt_ocf_host_controller_and_baseband = -1;
-static int hf_bthci_evt_ocf_informational = -1;
-static int hf_bthci_evt_ocf_status = -1;
-static int hf_bthci_evt_ocf_testing = -1;
-static int hf_bthci_evt_ocf_logo_testing = -1;
-static int hf_bthci_evt_ocf_low_energy = -1;
-static int hf_bthci_evt_bd_addr = -1;
-static int hf_bthci_evt_link_type = -1;
-static int hf_bthci_evt_encryption_mode = -1;
-static int hf_bthci_evt_reason = -1;
-static int hf_bthci_evt_remote_name = -1;
-static int hf_bthci_evt_encryption_enable = -1;
-static int hf_bthci_evt_key_flag = -1;
-static int hf_bthci_evt_vers_nr = -1;
-static int hf_bthci_bthci_evt_hci_version = -1;
-static int hf_bthci_evt_hci_revision = -1;
-static int hf_bthci_evt_comp_id = -1;
-static int hf_bthci_evt_sub_vers_nr = -1;
-static int hf_bthci_evt_flags = -1;
-static int hf_bthci_evt_service_type = -1;
-static int hf_bthci_evt_token_rate = -1;
-static int hf_bthci_evt_peak_bandwidth = -1;
-static int hf_bthci_evt_latency = -1;
-static int hf_bthci_evt_delay_variation = -1;
-static int hf_bthci_evt_hardware_code = -1;
-static int hf_bthci_evt_role = -1;
-static int hf_bthci_evt_curr_role = -1;
-static int hf_bthci_evt_curr_mode = -1;
-static int hf_bthci_evt_interval = -1;
-static int hf_bthci_evt_link_key = -1;
-static int hf_bthci_evt_key_type = -1;
-static int hf_bthci_evt_max_slots = -1;
-static int hf_bthci_evt_clock_offset = -1;
-static int hf_bthci_evt_clock_offset_32 = -1;
-static int hf_bthci_evt_page_scan_mode = -1;
-static int hf_bthci_evt_page_scan_repetition_mode = -1;
-static int hf_bthci_evt_reserved = -1;
-static int hf_bthci_evt_page_scan_period_mode = -1;
-static int hf_bthci_evt_num_keys = -1;
-static int hf_bthci_evt_num_keys_read = -1;
-static int hf_bthci_evt_max_num_keys = -1;
-static int hf_bthci_evt_num_responses = -1;
-static int hf_bthci_evt_num_keys_written = -1;
-static int hf_bthci_evt_num_keys_deleted = -1;
-static int hf_bthci_evt_link_policy_setting_switch = -1;
-static int hf_bthci_evt_link_policy_setting_hold = -1;
-static int hf_bthci_evt_link_policy_setting_sniff = -1;
-static int hf_bthci_evt_link_policy_setting_park = -1;
-static int hf_bthci_evt_pin_type = -1;
-static int hf_bthci_evt_device_name = -1;
-static int hf_bthci_evt_timeout = -1;
-static int hf_bthci_evt_scan_enable = -1;
-static int hf_bthci_evt_authentication_enable = -1;
-static int hf_bthci_evt_sco_flow_cont_enable = -1;
-static int hf_bthci_evt_window = -1;
-static int hf_bthci_evt_input_unused = -1;
-static int hf_bthci_evt_input_coding = -1;
-static int hf_bthci_evt_input_data_format = -1;
-static int hf_bthci_evt_input_sample_size = -1;
-static int hf_bthci_evt_linear_pcm_bit_pos = -1;
-static int hf_bthci_evt_air_coding_format = -1;
-static int hf_bthci_evt_num_broadcast_retransm = -1;
-static int hf_bthci_evt_hold_mode_act_page = -1;
-static int hf_bthci_evt_hold_mode_act_inquiry = -1;
-static int hf_bthci_evt_hold_mode_act_periodic = -1;
-static int hf_bthci_evt_transmit_power_level = -1;
-static int hf_bthci_evt_max_transmit_power_level = -1;
-static int hf_bthci_evt_transmit_power_level_gfsk = -1;
-static int hf_bthci_evt_transmit_power_level_dqpsk = -1;
-static int hf_bthci_evt_transmit_power_level_8dpsk = -1;
-static int hf_bthci_evt_flush_to_us = -1;
-static int hf_bthci_evt_num_supp_iac = -1;
-static int hf_bthci_evt_num_curr_iac = -1;
-static int hf_bthci_evt_iac_lap = -1;
-static int hf_bthci_evt_loopback_mode = -1;
-static int hf_bthci_evt_country_code = -1;
-static int hf_bthci_evt_failed_contact_counter = -1;
-static int hf_bthci_evt_link_quality = -1;
-static int hf_bthci_evt_rssi = -1;
-static int hf_bthci_evt_host_data_packet_length_acl = -1;
-static int hf_bthci_evt_host_data_packet_length_sco = -1;
-static int hf_bthci_evt_host_total_num_acl_data_packets = -1;
-static int hf_bthci_evt_host_total_num_sco_data_packets = -1;
-static int hf_bthci_evt_page_number = -1;
-static int hf_bthci_evt_max_page_number = -1;
-static int hf_bthci_evt_local_supported_cmds = -1;
-static int hf_bthci_evt_fec_required = -1;
-static int hf_bthci_evt_err_data_reporting = -1;
-static int hf_bthci_evt_scan_type = -1;
-static int hf_bthci_evt_inq_mode = -1;
-static int hf_bthci_evt_power_level_type = -1;
-static int hf_lmp_features = -1;
-static int hf_lmp_feature_3slot_packets = -1;
-static int hf_lmp_feature_5slot_packets = -1;
-static int hf_lmp_feature_encryption = -1;
-static int hf_lmp_feature_slot_offset = -1;
-static int hf_lmp_feature_timing_accuracy = -1;
-static int hf_lmp_feature_role_switch = -1;
-static int hf_lmp_feature_hold_mode = -1;
-static int hf_lmp_feature_sniff_mode = -1;
-static int hf_lmp_feature_park_state = -1;
-static int hf_lmp_feature_power_control_requests = -1;
-static int hf_lmp_feature_channel_quality_driven_data_rate = -1;
-static int hf_lmp_feature_sco_link = -1;
-static int hf_lmp_feature_hv2_packets = -1;
-static int hf_lmp_feature_hv3_packets = -1;
-static int hf_lmp_feature_u_law_log_synchronous_data = -1;
-static int hf_lmp_feature_a_law_log_synchronous_data = -1;
-static int hf_lmp_feature_cvsd_synchronous_data = -1;
-static int hf_lmp_feature_paging_parameter_negotiation = -1;
-static int hf_lmp_feature_power_control = -1;
-static int hf_lmp_feature_transparent_synchronous_data = -1;
-static int hf_lmp_feature_flow_control_lag = -1;
-static int hf_lmp_feature_broadcast_encryption = -1;
-static int hf_lmp_feature_reserved_24 = -1;
-static int hf_lmp_feature_edr_acl_2mbps_mode = -1;
-static int hf_lmp_feature_edr_acl_3mbps_mode = -1;
-static int hf_lmp_feature_enhanced_inquiry_scan = -1;
-static int hf_lmp_feature_interlaced_inquiry_scan = -1;
-static int hf_lmp_feature_interlaced_page_scan = -1;
-static int hf_lmp_feature_rssi_with_inquiry_results = -1;
-static int hf_lmp_feature_ev3_packets = -1;
-static int hf_lmp_feature_ev4_packets = -1;
-static int hf_lmp_feature_ev5_packets = -1;
-static int hf_lmp_feature_reserved_34 = -1;
-static int hf_lmp_feature_afh_capable_slave = -1;
-static int hf_lmp_feature_afh_classification_slave = -1;
-static int hf_lmp_feature_br_edr_not_supported = -1;
-static int hf_lmp_feature_le_supported_controller = -1;
-static int hf_lmp_feature_3slot_edr_acl_packets = -1;
-static int hf_lmp_feature_5slot_edr_acl_packets = -1;
-static int hf_lmp_feature_sniff_subrating = -1;
-static int hf_lmp_feature_pause_encryption = -1;
-static int hf_lmp_feature_afh_capable_master = -1;
-static int hf_lmp_feature_afh_classification_master = -1;
-static int hf_lmp_feature_edr_esco_2mbps_mode = -1;
-static int hf_lmp_feature_edr_esco_3mbps_mode = -1;
-static int hf_lmp_feature_3slot_edr_esco_packets = -1;
-static int hf_lmp_feature_extended_inquiry_response = -1;
-static int hf_lmp_feature_simultaneous_le_and_br_edr_controller = -1;
-static int hf_lmp_feature_reserved_50 = -1;
-static int hf_lmp_feature_secure_simple_pairing = -1;
-static int hf_lmp_feature_encapsulated_pdu = -1;
-static int hf_lmp_feature_erroneous_data_reporting = -1;
-static int hf_lmp_feature_non_flushable_packet_boundary_flag = -1;
-static int hf_lmp_feature_reserved_55 = -1;
-static int hf_lmp_feature_link_supervision_timeout_changed_event = -1;
-static int hf_lmp_feature_inquiry_tx_power_level = -1;
-static int hf_lmp_feature_enhanced_power_control = -1;
-static int hf_lmp_feature_reserved_59_62 = -1;
-static int hf_lmp_feature_extended_features = -1;
-static int hf_lmp_feature_secure_simple_pairing_host = -1;
-static int hf_lmp_feature_le_supported_host = -1;
-static int hf_lmp_feature_simultaneous_le_and_br_edr_host = -1;
-static int hf_lmp_feature_secure_connections_host = -1;
-static int hf_lmp_feature_reserved_68_71 = -1;
-static int hf_lmp_feature_csb_master_operation = -1;
-static int hf_lmp_feature_csb_slave_operation = -1;
-static int hf_lmp_feature_synchronization_train = -1;
-static int hf_lmp_feature_synchronization_scan = -1;
-static int hf_lmp_feature_inquiry_response_notification_event = -1;
-static int hf_lmp_feature_generalized_interlaced_scan = -1;
-static int hf_lmp_feature_coarse_clock_adjustment = -1;
-static int hf_lmp_feature_reserved_135 = -1;
-static int hf_lmp_feature_secure_connections_controller = -1;
-static int hf_lmp_feature_ping = -1;
-static int hf_lmp_feature_reserved_138 = -1;
-static int hf_lmp_feature_train_nudging = -1;
-static int hf_lmp_feature_slot_availability_mask = -1;
-static int hf_lmp_feature_reserved = -1;
-static int hf_bthci_evt_sync_link_type = -1;
-static int hf_bthci_evt_sync_tx_interval = -1;
-static int hf_bthci_evt_sync_rtx_window = -1;
-static int hf_bthci_evt_sync_rx_packet_length = -1;
-static int hf_bthci_evt_sync_tx_packet_length = -1;
-static int hf_bthci_evt_air_mode = -1;
-static int hf_bthci_evt_max_tx_latency = -1;
-static int hf_bthci_evt_max_rx_latency = -1;
-static int hf_bthci_evt_min_remote_timeout = -1;
-static int hf_bthci_evt_min_local_timeout = -1;
-static int hf_bthci_evt_link_supervision_timeout = -1;
-static int hf_bthci_evt_token_bucket_size = -1;
-static int hf_bthci_evt_flow_direction = -1;
-static int hf_bthci_evt_afh_ch_assessment_mode = -1;
-static int hf_bthci_evt_lmp_handle = -1;
-static int hf_bthci_evt_clock = -1;
-static int hf_bthci_evt_clock_accuracy = -1;
-static int hf_bthci_evt_afh_mode = -1;
-static int hf_bthci_evt_afh_channel_map = -1;
-static int hf_bthci_evt_simple_pairing_mode = -1;
-static int hf_bthci_evt_randomizer_r = -1;
-static int hf_bthci_evt_hash_c = -1;
-static int hf_bthci_evt_io_capability = -1;
-static int hf_bthci_evt_oob_data_present = -1;
-static int hf_bthci_evt_auth_requirements = -1;
-static int hf_bthci_evt_numeric_value = -1;
-static int hf_bthci_evt_passkey = -1;
-static int hf_bthci_evt_notification_type = -1;
-static int hf_bthci_evt_data_length = -1;
-static int hf_bthci_evt_location_domain_aware = -1;
-static int hf_bthci_evt_location_domain = -1;
-static int hf_bthci_evt_location_domain_options = -1;
-static int hf_bthci_evt_location_options = -1;
-static int hf_bthci_evt_flow_control_mode = -1;
-static int hf_bthci_evt_physical_link_handle = -1;
-static int hf_bthci_evt_flow_spec_identifier = -1;
-static int hf_bthci_evt_logical_link_handle = -1;
-static int hf_bthci_evt_max_acl_data_packet_length = -1;
-static int hf_bthci_evt_data_block_length = -1;
-static int hf_bthci_evt_total_num_data_blocks = -1;
-static int hf_bthci_evt_enc_key_size = -1;
-static int hf_bthci_evt_amp_remaining_assoc_length = -1;
-static int hf_bthci_evt_amp_assoc_fragment = -1;
-static int hf_bthci_evt_amp_status = -1;
-static int hf_bthci_evt_total_bandwidth = -1;
-static int hf_bthci_evt_max_guaranteed_bandwidth = -1;
-static int hf_bthci_evt_min_latency = -1;
-static int hf_bthci_evt_max_pdu_size = -1;
-static int hf_bthci_evt_amp_controller_type = -1;
-static int hf_bthci_evt_pal_capabilities_00 = -1;
-static int hf_bthci_evt_max_amp_assoc_length = -1;
-static int hf_bthci_evt_max_flush_to_us = -1;
-static int hf_bthci_evt_best_effort_flush_to_us = -1;
-static int hf_bthci_evt_link_loss_reason = -1;
-static int hf_bthci_evt_num_compl_blocks = -1;
-static int hf_bthci_evt_test_scenario = -1;
-static int hf_bthci_evt_report_reason = -1;
-static int hf_bthci_evt_report_event_type = -1;
-static int hf_bthci_evt_num_frames = -1;
-static int hf_bthci_evt_num_error_frames = -1;
-static int hf_bthci_evt_num_bits = -1;
-static int hf_bthci_evt_num_error_bits = -1;
-static int hf_bthci_evt_short_range_mode_state = -1;
-static int hf_bthci_evt_le_supported_host = -1;
-static int hf_bthci_evt_le_simultaneous_host = -1;
-static int hf_bthci_evt_le_acl_data_pkt_len = -1;
-static int hf_bthci_evt_total_num_le_acl_data_pkts = -1;
-static int hf_bthci_evt_iso_data_pkt_len = -1;
-static int hf_bthci_evt_total_num_iso_data_pkts = -1;
-static int hf_bthci_evt_white_list_size = -1;
-static int hf_bthci_evt_le_channel_map = -1;
-static int hf_bthci_evt_encrypted_data = -1;
-static int hf_bthci_evt_random_number = -1;
-static int hf_bthci_evt_le_num_packets = -1;
-static int hf_bthci_evt_le_meta_subevent = -1;
-static int hf_bthci_evt_le_peer_address_type = -1;
-static int hf_bthci_evt_le_local_rpa = -1;
-static int hf_bthci_evt_le_peer_rpa = -1;
-static int hf_bthci_evt_le_con_interval = -1;
-static int hf_bthci_evt_le_min_interval = -1;
-static int hf_bthci_evt_le_max_interval = -1;
-static int hf_bthci_evt_le_con_latency = -1;
-static int hf_bthci_evt_le_supervision_timeout = -1;
-static int hf_bthci_evt_le_max_tx_octets = -1;
-static int hf_bthci_evt_le_max_tx_time = -1;
-static int hf_bthci_evt_le_max_rx_octets = -1;
-static int hf_bthci_evt_le_max_rx_time = -1;
-static int hf_bthci_evt_le_local_p_256_public_key = -1;
-static int hf_bthci_evt_le_dhkey = -1;
-static int hf_bthci_evt_encrypted_diversifier = -1;
-static int hf_bthci_evt_le_master_clock_accuracy = -1;
-static int hf_bthci_evt_num_reports = -1;
-static int hf_bthci_evt_advts_event_type = -1;
-static int hf_bthci_evt_le_states = -1;
-static int hf_bthci_evt_le_states_00 = -1;
-static int hf_bthci_evt_le_states_01 = -1;
-static int hf_bthci_evt_le_states_02 = -1;
-static int hf_bthci_evt_le_states_03 = -1;
-static int hf_bthci_evt_le_states_04 = -1;
-static int hf_bthci_evt_le_states_05 = -1;
-static int hf_bthci_evt_le_states_06 = -1;
-static int hf_bthci_evt_le_states_07 = -1;
-static int hf_bthci_evt_le_states_10 = -1;
-static int hf_bthci_evt_le_states_11 = -1;
-static int hf_bthci_evt_le_states_12 = -1;
-static int hf_bthci_evt_le_states_13 = -1;
-static int hf_bthci_evt_le_states_14 = -1;
-static int hf_bthci_evt_le_states_15 = -1;
-static int hf_bthci_evt_le_states_16 = -1;
-static int hf_bthci_evt_le_states_17 = -1;
-static int hf_bthci_evt_le_states_20 = -1;
-static int hf_bthci_evt_le_states_21 = -1;
-static int hf_bthci_evt_le_states_22 = -1;
-static int hf_bthci_evt_le_states_23 = -1;
-static int hf_bthci_evt_le_states_24 = -1;
-static int hf_bthci_evt_le_states_25 = -1;
-static int hf_bthci_evt_le_states_26 = -1;
-static int hf_bthci_evt_le_states_27 = -1;
-static int hf_bthci_evt_le_states_30 = -1;
-static int hf_bthci_evt_le_states_31 = -1;
-static int hf_bthci_evt_le_states_32 = -1;
-static int hf_bthci_evt_le_states_33 = -1;
-static int hf_bthci_evt_le_states_34 = -1;
-static int hf_changed_in_frame = -1;
-static int hf_command_in_frame = -1;
-static int hf_pending_in_frame = -1;
-static int hf_response_in_frame = -1;
-static int hf_command_pending_time_delta = -1;
-static int hf_command_response_time_delta = -1;
-static int hf_pending_response_time_delta = -1;
-static int hf_bthci_evt_le_features = -1;
-static int hf_bthci_evt_le_features_encryption = -1;
-static int hf_bthci_evt_le_features_connection_parameters_request_procedure = -1;
-static int hf_bthci_evt_le_features_extended_reject_indication = -1;
-static int hf_bthci_evt_le_features_slave_initiated_features_exchange = -1;
-static int hf_bthci_evt_le_features_ping = -1;
-static int hf_bthci_evt_le_features_data_packet_length_extension = -1;
-static int hf_bthci_evt_le_features_ll_privacy = -1;
-static int hf_bthci_evt_le_features_extended_scanner_filter_policies = -1;
-static int hf_bthci_evt_le_features_2m_phy = -1;
-static int hf_bthci_evt_le_features_stable_modulation_index_tx =-1;
-static int hf_bthci_evt_le_features_stable_modulation_index_rx = -1;
-static int hf_bthci_evt_le_features_coded_phy = -1;
-static int hf_bthci_evt_le_features_extended_advertising = -1;
-static int hf_bthci_evt_le_features_periodic_advertising = -1;
-static int hf_bthci_evt_le_features_channel_selection_algorithm_2 = -1;
-static int hf_bthci_evt_le_features_power_class_1 = -1;
-static int hf_bthci_evt_le_features_minimum_number_of_used_channels_procedure = -1;
-static int hf_bthci_evt_le_features_connection_cte_request = -1;
-static int hf_bthci_evt_le_features_connection_cte_response = -1;
-static int hf_bthci_evt_le_features_connectionless_cte_tx = -1;
-static int hf_bthci_evt_le_features_connectionless_cte_rx = -1;
-static int hf_bthci_evt_le_features_antenna_switching_during_cte_tx_aod = -1;
-static int hf_bthci_evt_le_features_antenna_switching_during_cte_rx_aoa = -1;
-static int hf_bthci_evt_le_features_receiving_cte = -1;
-static int hf_bthci_evt_le_features_periodic_advertising_sync_transfer_sender = -1;
-static int hf_bthci_evt_le_features_periodic_advertising_sync_transfer_receiver = -1;
-static int hf_bthci_evt_le_features_sleep_clock_accuracy_updates = -1;
-static int hf_bthci_evt_le_features_remote_public_key_validation = -1;
-static int hf_bthci_evt_le_features_cis_master = -1;
-static int hf_bthci_evt_le_features_cis_slave = -1;
-static int hf_bthci_evt_le_features_isochronous_broadcaster = -1;
-static int hf_bthci_evt_le_features_synchronized_receiver = -1;
-static int hf_bthci_evt_le_features_isochronous_channels_host_support = -1;
-static int hf_bthci_evt_le_features_power_control_request = -1;
-static int hf_bthci_evt_le_features_power_change_indication = -1;
-static int hf_bthci_evt_le_features_path_loss_monitoring = -1;
-static int hf_bthci_evt_le_features_periodic_advertising_adi = -1;
-static int hf_bthci_evt_le_features_connection_subrating = -1;
-static int hf_bthci_evt_le_features_connection_subrating_host_support = -1;
-static int hf_bthci_evt_le_features_channel_classification = -1;
-static int hf_bthci_evt_le_features_reserved = -1;
-static int hf_bthci_evt_mws_number_of_transports = -1;
-static int hf_bthci_evt_mws_transport_layers = -1;
-static int hf_bthci_evt_mws_transport_layers_item = -1;
-static int hf_bthci_evt_mws_transport_layer = -1;
-static int hf_bthci_evt_mws_number_of_baud_rates = -1;
-static int hf_bthci_evt_mws_to_mws_baud_rates = -1;
-static int hf_bthci_evt_mws_to_mws_baud_rates_tranport_item = -1;
-static int hf_bthci_evt_mws_to_mws_baud_rate = -1;
-static int hf_bthci_evt_mws_from_mws_baud_rates = -1;
-static int hf_bthci_evt_mws_from_mws_baud_rates_tranport_item = -1;
-static int hf_bthci_evt_mws_from_mws_baud_rate = -1;
-static int hf_bthci_evt_selected_tx_power = -1;
-static int hf_bthci_evt_which_clock = -1;
-static int hf_bthci_evt_slot_offset = -1;
-static int hf_bthci_evt_lt_addr = -1;
-static int hf_bthci_evt_next_broadcast_instant = -1;
-static int hf_bthci_evt_connectionless_slave_broadcast_interval = -1;
-static int hf_bthci_evt_service_data = -1;
-static int hf_bthci_evt_local_sam_index = -1;
-static int hf_bthci_evt_local_sam_tx_availability = -1;
-static int hf_bthci_evt_local_sam_rx_availability = -1;
-static int hf_bthci_evt_remote_sam_index = -1;
-static int hf_bthci_evt_remote_sam_tx_availability = -1;
-static int hf_bthci_evt_remote_sam_rx_availability = -1;
-static int hf_bthci_evt_receive_status = -1;
-static int hf_bthci_evt_fragment = -1;
-static int hf_bthci_evt_data = -1;
-static int hf_bthci_evt_le_number_of_reports = -1;
-static int hf_bthci_evt_le_report = -1;
-static int hf_bthci_evt_le_event_type = -1;
-static int hf_bthci_evt_le_direct_address_type = -1;
-static int hf_bthci_evt_le_direct_bd_addr = -1;
-static int hf_bthci_evt_le_address_type = -1;
-static int hf_bthci_evt_le_rssi = -1;
-static int hf_bthci_evt_le_tx_phy = -1;
-static int hf_bthci_evt_le_rx_phy = -1;
-static int hf_bthci_evt_max_adv_data_length = -1;
-static int hf_bthci_evt_num_supported_adv_sets = -1;
-static int hf_bthci_evt_number_of_supported_codecs = -1;
-static int hf_bthci_evt_number_of_supported_vendor_codecs = -1;
-static int hf_bthci_evt_codecs = -1;
-static int hf_bthci_evt_vendor_codecs = -1;
-static int hf_bthci_evt_vendor_codecs_item = -1;
-static int hf_bthci_evt_codec_id = -1;
-static int hf_bthci_evt_vendor_codec_id = -1;
-static int hf_bthci_evt_mws_bt_rx_priority_assert_offset = -1;
-static int hf_bthci_evt_mws_bt_rx_priority_assert_jitter = -1;
-static int hf_bthci_evt_mws_bt_rx_priority_deassert_offset = -1;
-static int hf_bthci_evt_mws_bt_rx_priority_deassert_jitter = -1;
-static int hf_bthci_evt_mws_bt_tx_priority_assert_offset = -1;
-static int hf_bthci_evt_mws_bt_tx_priority_assert_jitter = -1;
-static int hf_bthci_evt_mws_bt_tx_priority_deassert_offset = -1;
-static int hf_bthci_evt_mws_bt_tx_priority_deassert_jitter = -1;
-static int hf_bthci_evt_mws_802_rx_priority_assert_offset = -1;
-static int hf_bthci_evt_mws_802_rx_priority_assert_jitter = -1;
-static int hf_bthci_evt_mws_802_rx_priority_deassert_offset = -1;
-static int hf_bthci_evt_mws_802_rx_priority_deassert_jitter = -1;
-static int hf_bthci_evt_mws_802_tx_priority_assert_offset = -1;
-static int hf_bthci_evt_mws_802_tx_priority_assert_jitter = -1;
-static int hf_bthci_evt_mws_802_tx_priority_deassert_offset = -1;
-static int hf_bthci_evt_mws_802_tx_priority_deassert_jitter = -1;
-static int hf_bthci_evt_sync_train_interval = -1;
-static int hf_bthci_evt_sync_train_to = -1;
-static int hf_bthci_evt_secure_connection_host_support = -1;
-static int hf_bthci_evt_authenticated_payload_timeout = -1;
-static int hf_bthci_evt_c192 = -1;
-static int hf_bthci_evt_r192 = -1;
-static int hf_bthci_evt_c256 = -1;
-static int hf_bthci_evt_r256 = -1;
-static int hf_bthci_evt_extended_inquiry_length = -1;
-static int hf_bthci_evt_suggested_max_tx_octets = -1;
-static int hf_bthci_evt_suggested_max_tx_time = -1;
-static int hf_bthci_evt_suggested_max_rx_octets = -1;
-static int hf_bthci_evt_suggested_max_rx_time = -1;
-static int hf_bthci_evt_resolving_list_size = -1;
-static int hf_bthci_evt_primary_phy = -1;
-static int hf_bthci_evt_secondary_phy = -1;
-static int hf_bthci_evt_advertising_sid = -1;
-static int hf_bthci_evt_tx_power = -1;
-static int hf_bthci_evt_periodic_advertising_interval = -1;
-static int hf_bthci_evt_num_compl_ext_advertising_events = -1;
-static int hf_bthci_evt_channel_selection_algorithm = -1;
-static int hf_bthci_evt_advertiser_clock_accuracy = -1;
-static int hf_bthci_evt_advertiser_phy = -1;
-static int hf_bthci_evt_periodic_adv_list_size = -1;
-static int hf_bthci_evt_min_tx_power = -1;
-static int hf_bthci_evt_max_tx_power = -1;
-static int hf_bthci_evt_rf_tx_path_compensation = -1;
-static int hf_bthci_evt_rf_rx_path_compensation = -1;
-static int hf_bthci_evt_sync_handle = -1;
-static int hf_bthci_evt_data_status = -1;
-static int hf_bthci_evt_advertising_handle = -1;
-static int hf_bthci_evt_channel_index = -1;
-static int hf_bthci_evt_cte_rssi = -1;
-static int hf_bthci_evt_antenna_id = -1;
-static int hf_bthci_evt_cte_type = -1;
-static int hf_bthci_evt_slot_durations = -1;
-static int hf_bthci_evt_packet_status = -1;
-static int hf_bthci_evt_event_counter = -1;
-static int hf_bthci_evt_sample_count = -1;
-static int hf_bthci_evt_i_sample = -1;
-static int hf_bthci_evt_q_sample = -1;
-static int hf_bthci_evt_service_data_past = -1;
-static int hf_bthci_evt_number_antennae = -1;
-static int hf_bthci_evt_max_cte_length = -1;
-static int hf_bthci_evt_max_length_antenna_switching_pattern = -1;
-static int hf_bthci_evt_max_encryption_key_size = -1;
-static int hf_bthci_evt_sdu_packet_seq_num = -1;
-static int hf_bthci_evt_sdu_packet_timestamp = -1;
-static int hf_bthci_evt_sdu_packet_offset = -1;
-static int hf_bthci_evt_cig_id = -1;
-static int hf_bthci_evt_cis_id = -1;
-static int hf_bthci_evt_cis_count = -1;
-static int hf_bthci_evt_cis_handle = -1;
-static int hf_bthci_evt_cis_bis_handle = -1;
-static int hf_bthci_evt_big_handle = -1;
-static int hf_bthci_evt_received_packet_counter = -1;
-static int hf_bthci_evt_missed_packet_counter = -1;
-static int hf_bthci_evt_failed_packet_counter = -1;
-static int hf_bthci_evt_pkt_count_tx_unacked = -1;
-static int hf_bthci_evt_pkt_count_tx_flushed = -1;
-static int hf_bthci_evt_pkt_count_tx_last_subevent = -1;
-static int hf_bthci_evt_pkt_count_tx_retransmitted = -1;
-static int hf_bthci_evt_pkt_count_rx_crc_error = -1;
-static int hf_bthci_evt_pkt_count_rx_unreceived = -1;
-static int hf_bthci_evt_pkt_count_rx_duplicate = -1;
-static int hf_bthci_evt_phy_and_coding = -1;
-static int hf_bthci_evt_cig_sync_delay = -1;
-static int hf_bthci_evt_big_sync_delay = -1;
-static int hf_bthci_evt_cis_sync_delay = -1;
-static int hf_bthci_evt_transport_latency_m_to_s = -1;
-static int hf_bthci_evt_transport_latency_s_to_m = -1;
-static int hf_bthci_evt_big_transport_latency = -1;
-static int hf_bthci_evt_phy_m_to_s = -1;
-static int hf_bthci_evt_phy_s_to_m = -1;
-static int hf_bthci_evt_bn_m_to_s = -1;
-static int hf_bthci_evt_bn_s_to_m = -1;
-static int hf_bthci_evt_ft_m_to_s = -1;
-static int hf_bthci_evt_ft_s_to_m = -1;
-static int hf_bthci_evt_max_pdu_m_to_s = -1;
-static int hf_bthci_evt_max_pdu_s_to_m = -1;
-static int hf_bthci_evt_phy = -1;
-static int hf_bthci_evt_nse = -1;
-static int hf_bthci_evt_bn = -1;
-static int hf_bthci_evt_pto = -1;
-static int hf_bthci_evt_irc = -1;
-static int hf_bthci_evt_max_pdu = -1;
-static int hf_bthci_evt_iso_interval = -1;
-static int hf_bthci_evt_num_bis = -1;
-static int hf_bthci_evt_bis_handle = -1;
-static int hf_bthci_evt_current_path_loss = -1;
-static int hf_bthci_evt_zone_entered = -1;
-static int hf_bthci_evt_power_report_reason = -1;
-static int hf_bthci_evt_power_level_delta = -1;
-static int hf_bthci_evt_sdu_interval = -1;
-static int hf_bthci_evt_max_sdu = -1;
-static int hf_bthci_evt_framing = -1;
-static int hf_bthci_evt_peer_clock_accuracy = -1;
-static int hf_bthci_evt_subrate_factor = -1;
-static int hf_bthci_evt_continuation_number = -1;
-static int hf_packet_type_acl = -1;
-static int hf_packet_type_acl_dh5 = -1;
-static int hf_packet_type_acl_dm5 = -1;
-static int hf_packet_type_acl_3dh5 = -1;
-static int hf_packet_type_acl_2dh5 = -1;
-static int hf_packet_type_acl_dh3 = -1;
-static int hf_packet_type_acl_dm3 = -1;
-static int hf_packet_type_acl_3dh3 = -1;
-static int hf_packet_type_acl_2dh3 = -1;
-static int hf_packet_type_acl_reserved_5_7 = -1;
-static int hf_packet_type_acl_dh1 = -1;
-static int hf_packet_type_acl_dm1 = -1;
-static int hf_packet_type_acl_3dh1 = -1;
-static int hf_packet_type_acl_2dh1 = -1;
-static int hf_packet_type_acl_reserved_0 = -1;
-static int hf_packet_type_sco = -1;
-static int hf_packet_type_sco_reserved_15_8 = -1;
-static int hf_packet_type_sco_hv3 = -1;
-static int hf_packet_type_sco_hv2 = -1;
-static int hf_packet_type_sco_hv1 = -1;
-static int hf_packet_type_sco_reserved_4_0 = -1;
+static int proto_bthci_evt;
+static int hf_bthci_evt_code;
+static int hf_bthci_evt_param_length;
+static int hf_bthci_evt_num_command_packets;
+static int hf_bthci_evt_num_handles;
+static int hf_bthci_evt_connection_handle;
+static int hf_bthci_evt_num_compl_packets;
+static int hf_bthci_evt_ret_params;
+static int hf_bthci_evt_status;
+static int hf_bthci_evt_status_pending;
+static int hf_bthci_evt_opcode;
+static int hf_bthci_evt_ogf;
+static int hf_bthci_evt_ocf;
+static int hf_bthci_evt_ocf_link_control;
+static int hf_bthci_evt_ocf_link_policy;
+static int hf_bthci_evt_ocf_host_controller_and_baseband;
+static int hf_bthci_evt_ocf_informational;
+static int hf_bthci_evt_ocf_status;
+static int hf_bthci_evt_ocf_testing;
+static int hf_bthci_evt_ocf_logo_testing;
+static int hf_bthci_evt_ocf_low_energy;
+static int hf_bthci_evt_bd_addr;
+static int hf_bthci_evt_link_type;
+static int hf_bthci_evt_encryption_mode;
+static int hf_bthci_evt_reason;
+static int hf_bthci_evt_remote_name;
+static int hf_bthci_evt_encryption_enable;
+static int hf_bthci_evt_key_flag;
+static int hf_bthci_evt_vers_nr;
+static int hf_bthci_bthci_evt_hci_version;
+static int hf_bthci_evt_hci_revision;
+static int hf_bthci_evt_comp_id;
+static int hf_bthci_evt_sub_vers_nr;
+static int hf_bthci_evt_flags;
+static int hf_bthci_evt_service_type;
+static int hf_bthci_evt_token_rate;
+static int hf_bthci_evt_peak_bandwidth;
+static int hf_bthci_evt_latency;
+static int hf_bthci_evt_delay_variation;
+static int hf_bthci_evt_hardware_code;
+static int hf_bthci_evt_role;
+static int hf_bthci_evt_curr_role;
+static int hf_bthci_evt_curr_mode;
+static int hf_bthci_evt_interval;
+static int hf_bthci_evt_link_key;
+static int hf_bthci_evt_key_type;
+static int hf_bthci_evt_max_slots;
+static int hf_bthci_evt_clock_offset;
+static int hf_bthci_evt_clock_offset_32;
+static int hf_bthci_evt_page_scan_mode;
+static int hf_bthci_evt_page_scan_repetition_mode;
+static int hf_bthci_evt_reserved;
+static int hf_bthci_evt_page_scan_period_mode;
+static int hf_bthci_evt_num_keys;
+static int hf_bthci_evt_num_keys_read;
+static int hf_bthci_evt_max_num_keys;
+static int hf_bthci_evt_num_responses;
+static int hf_bthci_evt_num_keys_written;
+static int hf_bthci_evt_num_keys_deleted;
+static int hf_bthci_evt_link_policy_setting_switch;
+static int hf_bthci_evt_link_policy_setting_hold;
+static int hf_bthci_evt_link_policy_setting_sniff;
+static int hf_bthci_evt_link_policy_setting_park;
+static int hf_bthci_evt_pin_type;
+static int hf_bthci_evt_device_name;
+static int hf_bthci_evt_timeout;
+static int hf_bthci_evt_scan_enable;
+static int hf_bthci_evt_authentication_enable;
+static int hf_bthci_evt_sco_flow_cont_enable;
+static int hf_bthci_evt_window;
+static int hf_bthci_evt_input_unused;
+static int hf_bthci_evt_input_coding;
+static int hf_bthci_evt_input_data_format;
+static int hf_bthci_evt_input_sample_size;
+static int hf_bthci_evt_linear_pcm_bit_pos;
+static int hf_bthci_evt_air_coding_format;
+static int hf_bthci_evt_num_broadcast_retransm;
+static int hf_bthci_evt_hold_mode_act_page;
+static int hf_bthci_evt_hold_mode_act_inquiry;
+static int hf_bthci_evt_hold_mode_act_periodic;
+static int hf_bthci_evt_transmit_power_level;
+static int hf_bthci_evt_max_transmit_power_level;
+static int hf_bthci_evt_transmit_power_level_gfsk;
+static int hf_bthci_evt_transmit_power_level_dqpsk;
+static int hf_bthci_evt_transmit_power_level_8dpsk;
+static int hf_bthci_evt_flush_to_us;
+static int hf_bthci_evt_num_supp_iac;
+static int hf_bthci_evt_num_curr_iac;
+static int hf_bthci_evt_iac_lap;
+static int hf_bthci_evt_loopback_mode;
+static int hf_bthci_evt_country_code;
+static int hf_bthci_evt_failed_contact_counter;
+static int hf_bthci_evt_link_quality;
+static int hf_bthci_evt_rssi;
+static int hf_bthci_evt_host_data_packet_length_acl;
+static int hf_bthci_evt_host_data_packet_length_sco;
+static int hf_bthci_evt_host_total_num_acl_data_packets;
+static int hf_bthci_evt_host_total_num_sco_data_packets;
+static int hf_bthci_evt_page_number;
+static int hf_bthci_evt_max_page_number;
+static int hf_bthci_evt_local_supported_cmds;
+static int hf_bthci_evt_fec_required;
+static int hf_bthci_evt_err_data_reporting;
+static int hf_bthci_evt_scan_type;
+static int hf_bthci_evt_inq_mode;
+static int hf_bthci_evt_power_level_type;
+static int hf_lmp_features;
+static int hf_lmp_feature_3slot_packets;
+static int hf_lmp_feature_5slot_packets;
+static int hf_lmp_feature_encryption;
+static int hf_lmp_feature_slot_offset;
+static int hf_lmp_feature_timing_accuracy;
+static int hf_lmp_feature_role_switch;
+static int hf_lmp_feature_hold_mode;
+static int hf_lmp_feature_sniff_mode;
+static int hf_lmp_feature_park_state;
+static int hf_lmp_feature_power_control_requests;
+static int hf_lmp_feature_channel_quality_driven_data_rate;
+static int hf_lmp_feature_sco_link;
+static int hf_lmp_feature_hv2_packets;
+static int hf_lmp_feature_hv3_packets;
+static int hf_lmp_feature_u_law_log_synchronous_data;
+static int hf_lmp_feature_a_law_log_synchronous_data;
+static int hf_lmp_feature_cvsd_synchronous_data;
+static int hf_lmp_feature_paging_parameter_negotiation;
+static int hf_lmp_feature_power_control;
+static int hf_lmp_feature_transparent_synchronous_data;
+static int hf_lmp_feature_flow_control_lag;
+static int hf_lmp_feature_broadcast_encryption;
+static int hf_lmp_feature_reserved_24;
+static int hf_lmp_feature_edr_acl_2mbps_mode;
+static int hf_lmp_feature_edr_acl_3mbps_mode;
+static int hf_lmp_feature_enhanced_inquiry_scan;
+static int hf_lmp_feature_interlaced_inquiry_scan;
+static int hf_lmp_feature_interlaced_page_scan;
+static int hf_lmp_feature_rssi_with_inquiry_results;
+static int hf_lmp_feature_ev3_packets;
+static int hf_lmp_feature_ev4_packets;
+static int hf_lmp_feature_ev5_packets;
+static int hf_lmp_feature_reserved_34;
+static int hf_lmp_feature_afh_capable_peripheral;
+static int hf_lmp_feature_afh_classification_peripheral;
+static int hf_lmp_feature_br_edr_not_supported;
+static int hf_lmp_feature_le_supported_controller;
+static int hf_lmp_feature_3slot_edr_acl_packets;
+static int hf_lmp_feature_5slot_edr_acl_packets;
+static int hf_lmp_feature_sniff_subrating;
+static int hf_lmp_feature_pause_encryption;
+static int hf_lmp_feature_afh_capable_central;
+static int hf_lmp_feature_afh_classification_central;
+static int hf_lmp_feature_edr_esco_2mbps_mode;
+static int hf_lmp_feature_edr_esco_3mbps_mode;
+static int hf_lmp_feature_3slot_edr_esco_packets;
+static int hf_lmp_feature_extended_inquiry_response;
+static int hf_lmp_feature_simultaneous_le_and_br_edr_controller;
+static int hf_lmp_feature_reserved_50;
+static int hf_lmp_feature_secure_simple_pairing;
+static int hf_lmp_feature_encapsulated_pdu;
+static int hf_lmp_feature_erroneous_data_reporting;
+static int hf_lmp_feature_non_flushable_packet_boundary_flag;
+static int hf_lmp_feature_reserved_55;
+static int hf_lmp_feature_link_supervision_timeout_changed_event;
+static int hf_lmp_feature_inquiry_tx_power_level;
+static int hf_lmp_feature_enhanced_power_control;
+static int hf_lmp_feature_reserved_59_62;
+static int hf_lmp_feature_extended_features;
+static int hf_lmp_feature_secure_simple_pairing_host;
+static int hf_lmp_feature_le_supported_host;
+static int hf_lmp_feature_simultaneous_le_and_br_edr_host;
+static int hf_lmp_feature_secure_connections_host;
+static int hf_lmp_feature_reserved_68_71;
+static int hf_lmp_feature_csb_central_operation;
+static int hf_lmp_feature_csb_peripheral_operation;
+static int hf_lmp_feature_synchronization_train;
+static int hf_lmp_feature_synchronization_scan;
+static int hf_lmp_feature_inquiry_response_notification_event;
+static int hf_lmp_feature_generalized_interlaced_scan;
+static int hf_lmp_feature_coarse_clock_adjustment;
+static int hf_lmp_feature_reserved_135;
+static int hf_lmp_feature_secure_connections_controller;
+static int hf_lmp_feature_ping;
+static int hf_lmp_feature_reserved_138;
+static int hf_lmp_feature_train_nudging;
+static int hf_lmp_feature_slot_availability_mask;
+static int hf_lmp_feature_reserved;
+static int hf_bthci_evt_sync_link_type;
+static int hf_bthci_evt_sync_tx_interval;
+static int hf_bthci_evt_sync_rtx_window;
+static int hf_bthci_evt_sync_rx_packet_length;
+static int hf_bthci_evt_sync_tx_packet_length;
+static int hf_bthci_evt_air_mode;
+static int hf_bthci_evt_max_tx_latency;
+static int hf_bthci_evt_max_rx_latency;
+static int hf_bthci_evt_min_remote_timeout;
+static int hf_bthci_evt_min_local_timeout;
+static int hf_bthci_evt_link_supervision_timeout;
+static int hf_bthci_evt_token_bucket_size;
+static int hf_bthci_evt_flow_direction;
+static int hf_bthci_evt_afh_ch_assessment_mode;
+static int hf_bthci_evt_lmp_handle;
+static int hf_bthci_evt_clock;
+static int hf_bthci_evt_clock_accuracy;
+static int hf_bthci_evt_afh_mode;
+static int hf_bthci_evt_afh_channel_map;
+static int hf_bthci_evt_simple_pairing_mode;
+static int hf_bthci_evt_randomizer_r;
+static int hf_bthci_evt_hash_c;
+static int hf_bthci_evt_io_capability;
+static int hf_bthci_evt_oob_data_present;
+static int hf_bthci_evt_auth_requirements;
+static int hf_bthci_evt_numeric_value;
+static int hf_bthci_evt_passkey;
+static int hf_bthci_evt_notification_type;
+static int hf_bthci_evt_data_length;
+static int hf_bthci_evt_location_domain_aware;
+static int hf_bthci_evt_location_domain;
+static int hf_bthci_evt_location_domain_options;
+static int hf_bthci_evt_location_options;
+static int hf_bthci_evt_flow_control_mode;
+static int hf_bthci_evt_physical_link_handle;
+static int hf_bthci_evt_flow_spec_identifier;
+static int hf_bthci_evt_logical_link_handle;
+static int hf_bthci_evt_max_acl_data_packet_length;
+static int hf_bthci_evt_data_block_length;
+static int hf_bthci_evt_total_num_data_blocks;
+static int hf_bthci_evt_enc_key_size;
+static int hf_bthci_evt_amp_remaining_assoc_length;
+static int hf_bthci_evt_amp_assoc_fragment;
+static int hf_bthci_evt_amp_status;
+static int hf_bthci_evt_total_bandwidth;
+static int hf_bthci_evt_max_guaranteed_bandwidth;
+static int hf_bthci_evt_min_latency;
+static int hf_bthci_evt_max_pdu_size;
+static int hf_bthci_evt_amp_controller_type;
+static int hf_bthci_evt_pal_capabilities_00;
+static int hf_bthci_evt_max_amp_assoc_length;
+static int hf_bthci_evt_max_flush_to_us;
+static int hf_bthci_evt_best_effort_flush_to_us;
+static int hf_bthci_evt_link_loss_reason;
+static int hf_bthci_evt_num_compl_blocks;
+static int hf_bthci_evt_test_scenario;
+static int hf_bthci_evt_report_reason;
+static int hf_bthci_evt_report_event_type;
+static int hf_bthci_evt_num_frames;
+static int hf_bthci_evt_num_error_frames;
+static int hf_bthci_evt_num_bits;
+static int hf_bthci_evt_num_error_bits;
+static int hf_bthci_evt_short_range_mode_state;
+static int hf_bthci_evt_le_supported_host;
+static int hf_bthci_evt_le_simultaneous_host;
+static int hf_bthci_evt_le_acl_data_pkt_len;
+static int hf_bthci_evt_total_num_le_acl_data_pkts;
+static int hf_bthci_evt_iso_data_pkt_len;
+static int hf_bthci_evt_total_num_iso_data_pkts;
+static int hf_bthci_evt_filter_accept_list_size;
+static int hf_bthci_evt_le_channel_map;
+static int hf_bthci_evt_encrypted_data;
+static int hf_bthci_evt_random_number;
+static int hf_bthci_evt_le_num_packets;
+static int hf_bthci_evt_le_meta_subevent;
+static int hf_bthci_evt_le_peer_address_type;
+static int hf_bthci_evt_le_local_rpa;
+static int hf_bthci_evt_le_peer_rpa;
+static int hf_bthci_evt_le_con_interval;
+static int hf_bthci_evt_le_min_interval;
+static int hf_bthci_evt_le_max_interval;
+static int hf_bthci_evt_le_con_latency;
+static int hf_bthci_evt_le_supervision_timeout;
+static int hf_bthci_evt_le_max_tx_octets;
+static int hf_bthci_evt_le_max_tx_time;
+static int hf_bthci_evt_le_max_rx_octets;
+static int hf_bthci_evt_le_max_rx_time;
+static int hf_bthci_evt_le_local_p_256_public_key;
+static int hf_bthci_evt_le_dhkey;
+static int hf_bthci_evt_encrypted_diversifier;
+static int hf_bthci_evt_le_central_clock_accuracy;
+static int hf_bthci_evt_num_reports;
+static int hf_bthci_evt_advts_event_type;
+static int hf_bthci_evt_le_states;
+static int hf_bthci_evt_le_states_00;
+static int hf_bthci_evt_le_states_01;
+static int hf_bthci_evt_le_states_02;
+static int hf_bthci_evt_le_states_03;
+static int hf_bthci_evt_le_states_04;
+static int hf_bthci_evt_le_states_05;
+static int hf_bthci_evt_le_states_06;
+static int hf_bthci_evt_le_states_07;
+static int hf_bthci_evt_le_states_10;
+static int hf_bthci_evt_le_states_11;
+static int hf_bthci_evt_le_states_12;
+static int hf_bthci_evt_le_states_13;
+static int hf_bthci_evt_le_states_14;
+static int hf_bthci_evt_le_states_15;
+static int hf_bthci_evt_le_states_16;
+static int hf_bthci_evt_le_states_17;
+static int hf_bthci_evt_le_states_20;
+static int hf_bthci_evt_le_states_21;
+static int hf_bthci_evt_le_states_22;
+static int hf_bthci_evt_le_states_23;
+static int hf_bthci_evt_le_states_24;
+static int hf_bthci_evt_le_states_25;
+static int hf_bthci_evt_le_states_26;
+static int hf_bthci_evt_le_states_27;
+static int hf_bthci_evt_le_states_30;
+static int hf_bthci_evt_le_states_31;
+static int hf_bthci_evt_le_states_32;
+static int hf_bthci_evt_le_states_33;
+static int hf_bthci_evt_le_states_34;
+static int hf_changed_in_frame;
+static int hf_command_in_frame;
+static int hf_pending_in_frame;
+static int hf_response_in_frame;
+static int hf_command_pending_time_delta;
+static int hf_command_response_time_delta;
+static int hf_pending_response_time_delta;
+static int hf_bthci_evt_le_features;
+static int hf_bthci_evt_le_features_encryption;
+static int hf_bthci_evt_le_features_connection_parameters_request_procedure;
+static int hf_bthci_evt_le_features_extended_reject_indication;
+static int hf_bthci_evt_le_features_peripheral_initiated_features_exchange;
+static int hf_bthci_evt_le_features_ping;
+static int hf_bthci_evt_le_features_data_packet_length_extension;
+static int hf_bthci_evt_le_features_ll_privacy;
+static int hf_bthci_evt_le_features_extended_scanner_filter_policies;
+static int hf_bthci_evt_le_features_2m_phy;
+static int hf_bthci_evt_le_features_stable_modulation_index_tx;
+static int hf_bthci_evt_le_features_stable_modulation_index_rx;
+static int hf_bthci_evt_le_features_coded_phy;
+static int hf_bthci_evt_le_features_extended_advertising;
+static int hf_bthci_evt_le_features_periodic_advertising;
+static int hf_bthci_evt_le_features_channel_selection_algorithm_2;
+static int hf_bthci_evt_le_features_power_class_1;
+static int hf_bthci_evt_le_features_minimum_number_of_used_channels_procedure;
+static int hf_bthci_evt_le_features_connection_cte_request;
+static int hf_bthci_evt_le_features_connection_cte_response;
+static int hf_bthci_evt_le_features_connectionless_cte_tx;
+static int hf_bthci_evt_le_features_connectionless_cte_rx;
+static int hf_bthci_evt_le_features_antenna_switching_during_cte_tx_aod;
+static int hf_bthci_evt_le_features_antenna_switching_during_cte_rx_aoa;
+static int hf_bthci_evt_le_features_receiving_cte;
+static int hf_bthci_evt_le_features_periodic_advertising_sync_transfer_sender;
+static int hf_bthci_evt_le_features_periodic_advertising_sync_transfer_receiver;
+static int hf_bthci_evt_le_features_sleep_clock_accuracy_updates;
+static int hf_bthci_evt_le_features_remote_public_key_validation;
+static int hf_bthci_evt_le_features_cis_central;
+static int hf_bthci_evt_le_features_cis_peripheral;
+static int hf_bthci_evt_le_features_isochronous_broadcaster;
+static int hf_bthci_evt_le_features_synchronized_receiver;
+static int hf_bthci_evt_le_features_isochronous_channels_host_support;
+static int hf_bthci_evt_le_features_power_control_request;
+static int hf_bthci_evt_le_features_power_change_indication;
+static int hf_bthci_evt_le_features_path_loss_monitoring;
+static int hf_bthci_evt_le_features_periodic_advertising_adi;
+static int hf_bthci_evt_le_features_connection_subrating;
+static int hf_bthci_evt_le_features_connection_subrating_host_support;
+static int hf_bthci_evt_le_features_channel_classification;
+static int hf_bthci_evt_le_features_coding_selection;
+static int hf_bthci_evt_le_features_coding_selection_host_support;
+static int hf_bthci_evt_le_features_periodic_advertising_responses_advertiser;
+static int hf_bthci_evt_le_features_periodic_advertising_responses_scanner;
+static int hf_bthci_evt_le_features_reserved;
+static int hf_bthci_evt_mws_number_of_transports;
+static int hf_bthci_evt_mws_transport_layers;
+static int hf_bthci_evt_mws_transport_layers_item;
+static int hf_bthci_evt_mws_transport_layer;
+static int hf_bthci_evt_mws_number_of_baud_rates;
+static int hf_bthci_evt_mws_to_mws_baud_rates;
+static int hf_bthci_evt_mws_to_mws_baud_rates_tranport_item;
+static int hf_bthci_evt_mws_to_mws_baud_rate;
+static int hf_bthci_evt_mws_from_mws_baud_rates;
+static int hf_bthci_evt_mws_from_mws_baud_rates_tranport_item;
+static int hf_bthci_evt_mws_from_mws_baud_rate;
+static int hf_bthci_evt_selected_tx_power;
+static int hf_bthci_evt_which_clock;
+static int hf_bthci_evt_slot_offset;
+static int hf_bthci_evt_lt_addr;
+static int hf_bthci_evt_next_broadcast_instant;
+static int hf_bthci_evt_connectionless_peripheral_broadcast_interval;
+static int hf_bthci_evt_service_data;
+static int hf_bthci_evt_local_sam_index;
+static int hf_bthci_evt_local_sam_tx_availability;
+static int hf_bthci_evt_local_sam_rx_availability;
+static int hf_bthci_evt_remote_sam_index;
+static int hf_bthci_evt_remote_sam_tx_availability;
+static int hf_bthci_evt_remote_sam_rx_availability;
+static int hf_bthci_evt_receive_status;
+static int hf_bthci_evt_fragment;
+static int hf_bthci_evt_data;
+static int hf_bthci_evt_le_number_of_reports;
+static int hf_bthci_evt_le_report;
+static int hf_bthci_evt_le_event_type;
+static int hf_bthci_evt_le_direct_address_type;
+static int hf_bthci_evt_le_direct_bd_addr;
+static int hf_bthci_evt_le_address_type;
+static int hf_bthci_evt_le_rssi;
+static int hf_bthci_evt_le_tx_phy;
+static int hf_bthci_evt_le_rx_phy;
+static int hf_bthci_evt_max_adv_data_length;
+static int hf_bthci_evt_num_supported_adv_sets;
+static int hf_bthci_evt_number_of_supported_codecs;
+static int hf_bthci_evt_number_of_supported_vendor_codecs;
+static int hf_bthci_evt_codecs;
+static int hf_bthci_evt_vendor_codecs;
+static int hf_bthci_evt_vendor_codecs_item;
+static int hf_bthci_evt_codec_id;
+static int hf_bthci_evt_vendor_codec_id;
+static int hf_bthci_evt_mws_bt_rx_priority_assert_offset;
+static int hf_bthci_evt_mws_bt_rx_priority_assert_jitter;
+static int hf_bthci_evt_mws_bt_rx_priority_deassert_offset;
+static int hf_bthci_evt_mws_bt_rx_priority_deassert_jitter;
+static int hf_bthci_evt_mws_bt_tx_priority_assert_offset;
+static int hf_bthci_evt_mws_bt_tx_priority_assert_jitter;
+static int hf_bthci_evt_mws_bt_tx_priority_deassert_offset;
+static int hf_bthci_evt_mws_bt_tx_priority_deassert_jitter;
+static int hf_bthci_evt_mws_802_rx_priority_assert_offset;
+static int hf_bthci_evt_mws_802_rx_priority_assert_jitter;
+static int hf_bthci_evt_mws_802_rx_priority_deassert_offset;
+static int hf_bthci_evt_mws_802_rx_priority_deassert_jitter;
+static int hf_bthci_evt_mws_802_tx_priority_assert_offset;
+static int hf_bthci_evt_mws_802_tx_priority_assert_jitter;
+static int hf_bthci_evt_mws_802_tx_priority_deassert_offset;
+static int hf_bthci_evt_mws_802_tx_priority_deassert_jitter;
+static int hf_bthci_evt_sync_train_interval;
+static int hf_bthci_evt_sync_train_to;
+static int hf_bthci_evt_secure_connection_host_support;
+static int hf_bthci_evt_authenticated_payload_timeout;
+static int hf_bthci_evt_c192;
+static int hf_bthci_evt_r192;
+static int hf_bthci_evt_c256;
+static int hf_bthci_evt_r256;
+static int hf_bthci_evt_extended_inquiry_length;
+static int hf_bthci_evt_suggested_max_tx_octets;
+static int hf_bthci_evt_suggested_max_tx_time;
+static int hf_bthci_evt_suggested_max_rx_octets;
+static int hf_bthci_evt_suggested_max_rx_time;
+static int hf_bthci_evt_resolving_list_size;
+static int hf_bthci_evt_primary_phy;
+static int hf_bthci_evt_secondary_phy;
+static int hf_bthci_evt_advertising_sid;
+static int hf_bthci_evt_tx_power;
+static int hf_bthci_evt_periodic_advertising_interval;
+static int hf_bthci_evt_num_compl_ext_advertising_events;
+static int hf_bthci_evt_channel_selection_algorithm;
+static int hf_bthci_evt_advertiser_clock_accuracy;
+static int hf_bthci_evt_advertiser_phy;
+static int hf_bthci_evt_periodic_adv_list_size;
+static int hf_bthci_evt_min_tx_power;
+static int hf_bthci_evt_max_tx_power;
+static int hf_bthci_evt_rf_tx_path_compensation;
+static int hf_bthci_evt_rf_rx_path_compensation;
+static int hf_bthci_evt_sync_handle;
+static int hf_bthci_evt_data_status;
+static int hf_bthci_evt_advertising_handle;
+static int hf_bthci_evt_channel_index;
+static int hf_bthci_evt_cte_rssi;
+static int hf_bthci_evt_antenna_id;
+static int hf_bthci_evt_cte_type;
+static int hf_bthci_evt_slot_durations;
+static int hf_bthci_evt_packet_status;
+static int hf_bthci_evt_event_counter;
+static int hf_bthci_evt_sample_count;
+static int hf_bthci_evt_i_sample;
+static int hf_bthci_evt_q_sample;
+static int hf_bthci_evt_service_data_past;
+static int hf_bthci_evt_number_antennae;
+static int hf_bthci_evt_max_cte_length;
+static int hf_bthci_evt_max_length_antenna_switching_pattern;
+static int hf_bthci_evt_max_encryption_key_size;
+static int hf_bthci_evt_sdu_packet_seq_num;
+static int hf_bthci_evt_sdu_packet_timestamp;
+static int hf_bthci_evt_sdu_packet_offset;
+static int hf_bthci_evt_cig_id;
+static int hf_bthci_evt_cis_id;
+static int hf_bthci_evt_cis_count;
+static int hf_bthci_evt_cis_handle;
+static int hf_bthci_evt_cis_bis_handle;
+static int hf_bthci_evt_big_handle;
+static int hf_bthci_evt_received_packet_counter;
+static int hf_bthci_evt_missed_packet_counter;
+static int hf_bthci_evt_failed_packet_counter;
+static int hf_bthci_evt_pkt_count_tx_unacked;
+static int hf_bthci_evt_pkt_count_tx_flushed;
+static int hf_bthci_evt_pkt_count_tx_last_subevent;
+static int hf_bthci_evt_pkt_count_tx_retransmitted;
+static int hf_bthci_evt_pkt_count_rx_crc_error;
+static int hf_bthci_evt_pkt_count_rx_unreceived;
+static int hf_bthci_evt_pkt_count_rx_duplicate;
+static int hf_bthci_evt_phy_and_coding;
+static int hf_bthci_evt_cig_sync_delay;
+static int hf_bthci_evt_big_sync_delay;
+static int hf_bthci_evt_cis_sync_delay;
+static int hf_bthci_evt_transport_latency_c_to_p;
+static int hf_bthci_evt_transport_latency_p_to_c;
+static int hf_bthci_evt_big_transport_latency;
+static int hf_bthci_evt_phy_c_to_p;
+static int hf_bthci_evt_phy_p_to_c;
+static int hf_bthci_evt_bn_c_to_p;
+static int hf_bthci_evt_bn_p_to_c;
+static int hf_bthci_evt_ft_c_to_p;
+static int hf_bthci_evt_ft_p_to_c;
+static int hf_bthci_evt_max_pdu_c_to_p;
+static int hf_bthci_evt_max_pdu_p_to_c;
+static int hf_bthci_evt_phy;
+static int hf_bthci_evt_nse;
+static int hf_bthci_evt_bn;
+static int hf_bthci_evt_pto;
+static int hf_bthci_evt_irc;
+static int hf_bthci_evt_max_pdu;
+static int hf_bthci_evt_iso_interval;
+static int hf_bthci_evt_num_bis;
+static int hf_bthci_evt_bis_handle;
+static int hf_bthci_evt_current_path_loss;
+static int hf_bthci_evt_zone_entered;
+static int hf_bthci_evt_power_report_reason;
+static int hf_bthci_evt_power_level_delta;
+static int hf_bthci_evt_sdu_interval;
+static int hf_bthci_evt_max_sdu;
+static int hf_bthci_evt_framing;
+static int hf_bthci_evt_peer_clock_accuracy;
+static int hf_bthci_evt_subrate_factor;
+static int hf_bthci_evt_continuation_number;
+static int hf_bthci_evt_subevent_start;
+static int hf_bthci_evt_subevent_count;
+static int hf_bthci_evt_subevent;
+static int hf_bthci_evt_subevent_tx_status;
+static int hf_bthci_evt_subevent_responses;
+static int hf_bthci_evt_response_slot;
+static int hf_bthci_evt_num_subevents;
+static int hf_bthci_evt_subevent_interval;
+static int hf_bthci_evt_response_slot_delay;
+static int hf_bthci_evt_response_slot_spacing;
+static int hf_bthci_evt_periodic_event_counter;
+static int hf_packet_type_acl;
+static int hf_packet_type_acl_dh5;
+static int hf_packet_type_acl_dm5;
+static int hf_packet_type_acl_3dh5;
+static int hf_packet_type_acl_2dh5;
+static int hf_packet_type_acl_dh3;
+static int hf_packet_type_acl_dm3;
+static int hf_packet_type_acl_3dh3;
+static int hf_packet_type_acl_2dh3;
+static int hf_packet_type_acl_reserved_5_7;
+static int hf_packet_type_acl_dh1;
+static int hf_packet_type_acl_dm1;
+static int hf_packet_type_acl_3dh1;
+static int hf_packet_type_acl_2dh1;
+static int hf_packet_type_acl_reserved_0;
+static int hf_packet_type_sco;
+static int hf_packet_type_sco_reserved_15_8;
+static int hf_packet_type_sco_hv3;
+static int hf_packet_type_sco_hv2;
+static int hf_packet_type_sco_hv1;
+static int hf_packet_type_sco_reserved_4_0;
static int * const hfx_bthci_evt_le_features[] = {
&hf_bthci_evt_le_features_encryption,
&hf_bthci_evt_le_features_connection_parameters_request_procedure,
&hf_bthci_evt_le_features_extended_reject_indication,
- &hf_bthci_evt_le_features_slave_initiated_features_exchange,
+ &hf_bthci_evt_le_features_peripheral_initiated_features_exchange,
&hf_bthci_evt_le_features_ping,
&hf_bthci_evt_le_features_data_packet_length_extension,
&hf_bthci_evt_le_features_ll_privacy,
@@ -611,8 +630,8 @@ static int * const hfx_bthci_evt_le_features[] = {
&hf_bthci_evt_le_features_periodic_advertising_sync_transfer_receiver,
&hf_bthci_evt_le_features_sleep_clock_accuracy_updates,
&hf_bthci_evt_le_features_remote_public_key_validation,
- &hf_bthci_evt_le_features_cis_master,
- &hf_bthci_evt_le_features_cis_slave,
+ &hf_bthci_evt_le_features_cis_central,
+ &hf_bthci_evt_le_features_cis_peripheral,
&hf_bthci_evt_le_features_isochronous_broadcaster,
&hf_bthci_evt_le_features_synchronized_receiver,
&hf_bthci_evt_le_features_isochronous_channels_host_support,
@@ -623,6 +642,10 @@ static int * const hfx_bthci_evt_le_features[] = {
&hf_bthci_evt_le_features_connection_subrating,
&hf_bthci_evt_le_features_connection_subrating_host_support,
&hf_bthci_evt_le_features_channel_classification,
+ &hf_bthci_evt_le_features_coding_selection,
+ &hf_bthci_evt_le_features_coding_selection_host_support,
+ &hf_bthci_evt_le_features_periodic_advertising_responses_advertiser,
+ &hf_bthci_evt_le_features_periodic_advertising_responses_scanner,
&hf_bthci_evt_le_features_reserved,
NULL
};
@@ -654,28 +677,28 @@ static int * const hfx_packet_type_sco[] = {
NULL
};
-static expert_field ei_event_undecoded = EI_INIT;
-static expert_field ei_event_unknown_event = EI_INIT;
-static expert_field ei_event_unexpected_event = EI_INIT;
-static expert_field ei_event_unexpected_parameter = EI_INIT;
-static expert_field ei_event_unknown_command = EI_INIT;
-static expert_field ei_parameter_unexpected = EI_INIT;
-static expert_field ei_manufacturer_data_changed = EI_INIT;
-static expert_field ei_hci_revision_changed = EI_INIT;
-static expert_field ei_lmp_subversion_changed = EI_INIT;
-static expert_field ei_bad_link_type = EI_INIT;
+static expert_field ei_event_undecoded;
+static expert_field ei_event_unknown_event;
+static expert_field ei_event_unexpected_event;
+static expert_field ei_event_unexpected_parameter;
+static expert_field ei_event_unknown_command;
+static expert_field ei_parameter_unexpected;
+static expert_field ei_manufacturer_data_changed;
+static expert_field ei_hci_revision_changed;
+static expert_field ei_lmp_subversion_changed;
+static expert_field ei_bad_link_type;
static dissector_table_t vendor_dissector_table;
static dissector_table_t hci_vendor_table;
-static int hf_bthci_evt_ext_advts_event_type = -1;
-static int hf_bthci_evt_ext_advts_event_type_connectable = -1;
-static int hf_bthci_evt_ext_advts_event_type_scannable = -1;
-static int hf_bthci_evt_ext_advts_event_type_directed = -1;
-static int hf_bthci_evt_ext_advts_event_type_scan_response = -1;
-static int hf_bthci_evt_ext_advts_event_type_legacy = -1;
-static int hf_bthci_evt_ext_advts_event_type_data_status = -1;
-static int hf_bthci_evt_ext_advts_event_type_reserved = -1;
+static int hf_bthci_evt_ext_advts_event_type;
+static int hf_bthci_evt_ext_advts_event_type_connectable;
+static int hf_bthci_evt_ext_advts_event_type_scannable;
+static int hf_bthci_evt_ext_advts_event_type_directed;
+static int hf_bthci_evt_ext_advts_event_type_scan_response;
+static int hf_bthci_evt_ext_advts_event_type_legacy;
+static int hf_bthci_evt_ext_advts_event_type_data_status;
+static int hf_bthci_evt_ext_advts_event_type_reserved;
static int * const hfx_bthci_evt_le_ext_advts_evt_type[] = {
&hf_bthci_evt_ext_advts_event_type_connectable,
@@ -688,11 +711,11 @@ static int * const hfx_bthci_evt_le_ext_advts_evt_type[] = {
NULL
};
-static int hf_bthci_evt_supported_switching_sample_rates = -1;
-static int hf_bthci_evt_supported_switching_sample_rates_1us_switching_aod_tx = -1;
-static int hf_bthci_evt_supported_switching_sample_rates_1us_sampling_aod_rx = -1;
-static int hf_bthci_evt_supported_switching_sample_rates_1us_switching_and_sampling_aoa_rx = -1;
-static int hf_bthci_evt_supported_switching_sample_rates_reserved = -1;
+static int hf_bthci_evt_supported_switching_sample_rates;
+static int hf_bthci_evt_supported_switching_sample_rates_1us_switching_aod_tx;
+static int hf_bthci_evt_supported_switching_sample_rates_1us_sampling_aod_rx;
+static int hf_bthci_evt_supported_switching_sample_rates_1us_switching_and_sampling_aoa_rx;
+static int hf_bthci_evt_supported_switching_sample_rates_reserved;
static int * const hfx_bthci_evt_supported_switching_sample_rates[] = {
&hf_bthci_evt_supported_switching_sample_rates_1us_switching_aod_tx,
@@ -702,9 +725,9 @@ static int * const hfx_bthci_evt_supported_switching_sample_rates[] = {
NULL
};
-static int hf_bthci_evt_simple_pairing_options = -1;
-static int hf_bthci_evt_simple_pairing_options_remote_public_key_validation = -1;
-static int hf_bthci_evt_simple_pairing_options_reserved = -1;
+static int hf_bthci_evt_simple_pairing_options;
+static int hf_bthci_evt_simple_pairing_options_remote_public_key_validation;
+static int hf_bthci_evt_simple_pairing_options_reserved;
static int * const hfx_bthci_evt_simple_pairing_options[] = {
&hf_bthci_evt_simple_pairing_options_remote_public_key_validation,
@@ -712,10 +735,10 @@ static int * const hfx_bthci_evt_simple_pairing_options[] = {
NULL
};
-static int hf_bthci_evt_transmit_power_level_flags = -1;
-static int hf_bthci_evt_transmit_power_level_flags_minimum_power = -1;
-static int hf_bthci_evt_transmit_power_level_flags_maximum_power = -1;
-static int hf_bthci_evt_transmit_power_level_flags_reserved = -1;
+static int hf_bthci_evt_transmit_power_level_flags;
+static int hf_bthci_evt_transmit_power_level_flags_minimum_power;
+static int hf_bthci_evt_transmit_power_level_flags_maximum_power;
+static int hf_bthci_evt_transmit_power_level_flags_reserved;
static int * const hfx_bthci_evt_transmit_power_level_flags[] = {
&hf_bthci_evt_transmit_power_level_flags_minimum_power,
@@ -725,28 +748,29 @@ static int * const hfx_bthci_evt_transmit_power_level_flags[] = {
};
/* Initialize the subtree pointers */
-static gint ett_bthci_evt = -1;
-static gint ett_opcode = -1;
-static gint ett_lmp_subtree = -1;
-static gint ett_ptype_subtree = -1;
-static gint ett_le_state_subtree = -1;
-static gint ett_le_channel_map = -1;
-static gint ett_le_features = -1;
-static gint ett_le_report = -1;
-static gint ett_codecs = -1;
-static gint ett_mws_transport_layers = -1;
-static gint ett_mws_transport_layers_item = -1;
-static gint ett_mws_to_mws_baud_rates = -1;
-static gint ett_mws_to_mws_baud_rates_transport_item = -1;
-static gint ett_mws_from_mws_baud_rates = -1;
-static gint ett_mws_from_mws_baud_rates_transport_item = -1;
-static gint ett_expert = -1;
-static gint ett_le_ext_advts_event_type = -1;
-static gint ett_iq_sample_list = -1;
-static gint ett_iq_samples = -1;
-static gint ett_simple_pairing_options = -1;
-static gint ett_supported_switching_sample_rates = -1;
-static gint ett_transmit_power_level_flags = -1;
+static gint ett_bthci_evt;
+static gint ett_opcode;
+static gint ett_lmp_subtree;
+static gint ett_ptype_subtree;
+static gint ett_le_state_subtree;
+static gint ett_le_channel_map;
+static gint ett_le_features;
+static gint ett_le_report;
+static gint ett_codecs;
+static gint ett_mws_transport_layers;
+static gint ett_mws_transport_layers_item;
+static gint ett_mws_to_mws_baud_rates;
+static gint ett_mws_to_mws_baud_rates_transport_item;
+static gint ett_mws_from_mws_baud_rates;
+static gint ett_mws_from_mws_baud_rates_transport_item;
+static gint ett_expert;
+static gint ett_le_ext_advts_event_type;
+static gint ett_iq_sample_list;
+static gint ett_iq_samples;
+static gint ett_simple_pairing_options;
+static gint ett_supported_switching_sample_rates;
+static gint ett_transmit_power_level_flags;
+static gint ett_adv_subevent_responses;
extern value_string_ext ext_usb_vendors_vals;
extern value_string_ext ext_usb_products_vals;
@@ -773,7 +797,7 @@ static const value_string evt_code_vals[] = {
{0x07, "Remote Name Request Complete"},
{0x08, "Encryption Change"},
{0x09, "Change Connection Link Key Complete"},
- {0x0a, "Master Link Key Complete"},
+ {0x0a, "Link Key Type Changed"},
{0x0b, "Read Remote Supported Features"},
{0x0c, "Read Remote Version Information Complete"},
{0x0d, "QoS Setup Complete"},
@@ -834,11 +858,11 @@ static const value_string evt_code_vals[] = {
{0x4e, "Triggered Clock Capture"},
{0x4f, "Synchronization Train Complete"},
{0x50, "Synchronization Train Received"},
- {0x51, "Connectionless Slave Broadcast Receive"},
- {0x52, "Connectionless Slave Broadcast Timeout"},
+ {0x51, "Connectionless Peripheral Broadcast Receive"},
+ {0x52, "Connectionless Peripheral Broadcast Timeout"},
{0x53, "Truncated Page Complete"},
- {0x54, "Slave Page Response Timeout"},
- {0x55, "Connectionless Slave Broadcast Channel Map Change"},
+ {0x54, "Peripheral Page Response Timeout"},
+ {0x55, "Connectionless Peripheral Broadcast Channel Map Change"},
{0x56, "Inquiry Response Notification"},
/* Core 4 */
{0x57, "Authenticated Payload Timeout Expired"},
@@ -903,6 +927,7 @@ const value_string bthci_evt_lmp_version[] = {
{0x0a, "5.1"},
{0x0b, "5.2"},
{0x0c, "5.3"},
+ {0x0d, "5.4"},
{0, NULL }
};
@@ -923,6 +948,7 @@ const value_string bthci_evt_hci_version[] = {
{0x0a, "5.1"},
{0x0b, "5.2"},
{0x0c, "5.3"},
+ {0x0d, "5.4"},
{0, NULL }
};
@@ -934,14 +960,14 @@ static const value_string evt_service_types[] = {
};
static const value_string evt_role_vals[] = {
- {0x00, "Currently the Master for specified BD_ADDR"},
- {0x01, "Currently the Slave for specified BD_ADDR"},
+ {0x00, "Currently the Central for specified BD_ADDR"},
+ {0x01, "Currently the Peripheral for specified BD_ADDR"},
{0, NULL }
};
static const value_string evt_role_vals_handle[] = {
- {0x00, "Currently the Master for this connection handle"},
- {0x01, "Currently the Slave for this connection handle"},
+ {0x00, "Currently the Central for this connection handle"},
+ {0x01, "Currently the Peripheral for this connection handle"},
{0, NULL }
};
@@ -958,9 +984,11 @@ static const value_string evt_key_types[] = {
{0x01, "Local Unit Key"},
{0x02, "Remote Unit Key"},
{0x03, "Debug Combination Key"},
- {0x04, "Unauthenticated Combination Key"},
- {0x05, "Authenticated Combination Key"},
+ {0x04, "Unauthenticated Combination Key, P-192"},
+ {0x05, "Authenticated Combination Key, P-192"},
{0x06, "Changed Combination Key"},
+ {0x07, "Unauthenticated Combination Key, P-256"},
+ {0x08, "Authenticated Combination Key, P-256"},
{0, NULL }
};
@@ -1067,12 +1095,12 @@ static const value_string evt_le_meta_subevent[] = {
{ 0x07, "LE Data Length Change" },
{ 0x08, "LE Read Local P-256 Public Key Complete" },
{ 0x09, "LE Generate DHKey Complete" },
- { 0x0A, "LE Enhanced Connection Complete" },
+ { 0x0A, "LE Enhanced Connection Complete [v1]" },
{ 0x0B, "LE Direct Advertising Report" },
{ 0x0C, "LE PHY Update Complete" },
{ 0x0D, "LE Extended Advertising Report" },
- { 0x0E, "LE Periodic Advertising Sync Established" },
- { 0x0F, "LE Periodic Advertising Report" },
+ { 0x0E, "LE Periodic Advertising Sync Established [v1]" },
+ { 0x0F, "LE Periodic Advertising Report [v1]" },
{ 0x10, "LE Periodic Advertising Sync Lost" },
{ 0x11, "LE Scan Timeout" },
{ 0x12, "LE Advertising Set Terminated" },
@@ -1081,7 +1109,7 @@ static const value_string evt_le_meta_subevent[] = {
{ 0x15, "LE Connectionless IQ Report" },
{ 0x16, "LE Connection IQ Report" },
{ 0x17, "LE CTE Request Failed" },
- { 0x18, "LE Periodic Advertising Sync Transfer Received" },
+ { 0x18, "LE Periodic Advertising Sync Transfer Received [v1]" },
{ 0x19, "LE CIS Established" },
{ 0x1A, "LE CIS Request" },
{ 0x1B, "LE Create BIG Complete" },
@@ -1093,6 +1121,12 @@ static const value_string evt_le_meta_subevent[] = {
{ 0x21, "LE Transmit Power Reporting" },
{ 0x22, "LE BIGInfo Advertising Report" },
{ 0x23, "LE Subrate Change" },
+ { 0x24, "LE Periodic Advertising Sync Established [v2]" },
+ { 0x25, "LE Periodic Advertising Report [v2]" },
+ { 0x26, "LE Periodic Advertising Sync Transfer Received [v2]" },
+ { 0x27, "LE Periodic Advertising Subevent Data Request" },
+ { 0x28, "LE Periodic Advertising Response Report" },
+ { 0x29, "LE Enhanced Connection Complete [v2]" },
{ 0, NULL }
};
@@ -1152,6 +1186,8 @@ const value_string bthci_evt_codec_id_vals[] = {
{ 0x03, "Transparent" },
{ 0x04, "Linear PCM" },
{ 0x05, "mSBC" },
+ { 0x06, "LC3" },
+ { 0x07, "G.729A" },
{ 0xFF, "Vendor Specific" },
{ 0, NULL }
};
@@ -1161,12 +1197,14 @@ static const value_string ext_adv_data_status_vals[] = {
{0x01, "Incomplete, more to come"},
{0x02, "Incomplete, truncated, no more to come"},
{0x03, "Reserved"},
+ {0xFF, "Failed To Receive"},
{0, NULL }
};
static const value_string bthci_evt_primary_phy_vals[] = {
{0x01, "LE 1M"},
{0x03, "LE Coded"},
+ {0x04, "LE Coded, S=2"},
{0, NULL }
};
@@ -1175,6 +1213,7 @@ static const value_string bthci_evt_secondary_phy_vals[] = {
{0x01, "LE 1M"},
{0x02, "LE 2M"},
{0x03, "LE Coded"},
+ {0x04, "LE Coded, S=2"},
{0, NULL }
};
@@ -1213,13 +1252,28 @@ static const value_string power_report_reason_vals[] = {
static const unit_name_string units_number_events = { " (number events)", NULL };
+static const value_string tx_status_vals[] = {
+ {0x00, "Transmitted"},
+ {0x01, "Not Transmitted"},
+ {0, NULL }
+};
+
+static const value_string uint8_no_handle[] = {
+ {0xFF, "No Handle"},
+ {0, NULL}
+};
+
+static const value_string uint16_no_handle[] = {
+ {0xFFFF, "No Handle"},
+ {0, NULL}
+};
void proto_register_bthci_evt(void);
void proto_reg_handoff_bthci_evt(void);
static void bthci_evt_vendor_prompt(packet_info *pinfo _U_, gchar* result)
{
- g_snprintf(result, MAX_DECODE_AS_PROMPT_LEN, "Vendor as");
+ snprintf(result, MAX_DECODE_AS_PROMPT_LEN, "Vendor as");
}
static gpointer bthci_evt_vendor_value(packet_info *pinfo _U_)
@@ -1227,10 +1281,10 @@ static gpointer bthci_evt_vendor_value(packet_info *pinfo _U_)
return NULL;
}
-static void add_opcode(wmem_list_t *opcode_list, guint16 opcode, enum command_status command_status) {
+static void add_opcode(wmem_allocator_t *scope, wmem_list_t *opcode_list, guint16 opcode, enum command_status command_status) {
opcode_list_data_t *opcode_list_data;
- opcode_list_data = wmem_new(wmem_packet_scope(), opcode_list_data_t);
+ opcode_list_data = wmem_new(scope, opcode_list_data_t);
if (opcode_list_data) {
opcode_list_data->opcode = opcode;
opcode_list_data->command_status = command_status;
@@ -1265,7 +1319,7 @@ save_remote_device_name(tvbuff_t *tvb, gint offset, packet_info *pinfo,
switch(tvb_get_guint8(tvb, offset + i + 1)) {
case 0x08: /* Device Name, shortened */
case 0x09: /* Device Name, full */
- name = tvb_get_string_enc(wmem_packet_scope(), tvb, offset + i + 2, length - 1, ENC_UTF_8);
+ name = tvb_get_string_enc(pinfo->pool, tvb, offset + i + 2, length - 1, ENC_UTF_8);
frame_number = pinfo->num;
bd_addr_oui = bd_addr[0] << 16 | bd_addr[1] << 8 | bd_addr[2];
@@ -1303,7 +1357,7 @@ static void send_hci_summary_status_tap(guint8 status, packet_info *pinfo, bluet
if (have_tap_listener(bluetooth_hci_summary_tap)) {
bluetooth_hci_summary_tap_t *tap_hci_summary;
- tap_hci_summary = wmem_new(wmem_packet_scope(), bluetooth_hci_summary_tap_t);
+ tap_hci_summary = wmem_new(pinfo->pool, bluetooth_hci_summary_tap_t);
tap_hci_summary->interface_id = bluetooth_data->interface_id;
tap_hci_summary->adapter_id = bluetooth_data->adapter_id;
@@ -1323,7 +1377,7 @@ static void send_hci_summary_pending_tap(packet_info *pinfo, bluetooth_data_t *b
if (have_tap_listener(bluetooth_hci_summary_tap)) {
bluetooth_hci_summary_tap_t *tap_hci_summary;
- tap_hci_summary = wmem_new(wmem_packet_scope(), bluetooth_hci_summary_tap_t);
+ tap_hci_summary = wmem_new(pinfo->pool, bluetooth_hci_summary_tap_t);
tap_hci_summary->interface_id = bluetooth_data->interface_id;
tap_hci_summary->adapter_id = bluetooth_data->adapter_id;
@@ -1340,7 +1394,7 @@ static void send_hci_summary_reason_tap(guint8 reason, packet_info *pinfo, bluet
if (have_tap_listener(bluetooth_hci_summary_tap)) {
bluetooth_hci_summary_tap_t *tap_hci_summary;
- tap_hci_summary = wmem_new(wmem_packet_scope(), bluetooth_hci_summary_tap_t);
+ tap_hci_summary = wmem_new(pinfo->pool, bluetooth_hci_summary_tap_t);
tap_hci_summary->interface_id = bluetooth_data->interface_id;
tap_hci_summary->adapter_id = bluetooth_data->adapter_id;
@@ -1455,7 +1509,7 @@ dissect_bthci_evt_connect_complete(tvbuff_t *tvb, int offset, packet_info *pinfo
chandle_session = (chandle_session_t *) wmem_new(wmem_file_scope(), chandle_session_t);
chandle_session->connect_in_frame = k_frame_number;
- chandle_session->disconnect_in_frame = max_disconnect_in_frame;
+ chandle_session->disconnect_in_frame = bluetooth_max_disconnect_in_frame;
chandle_session->link_type = BT_LINK_TYPE_ACL;
wmem_tree_insert32_array(bluetooth_data->chandle_sessions, key, chandle_session);
@@ -1611,8 +1665,8 @@ dissect_bthci_evt_lmp_features(tvbuff_t *tvb, int offset, packet_info *pinfo _U_
proto_tree_add_item(lmp_tree, hf_lmp_feature_ev4_packets, tvb, offset, 1, ENC_LITTLE_ENDIAN);
proto_tree_add_item(lmp_tree, hf_lmp_feature_ev5_packets, tvb, offset, 1, ENC_LITTLE_ENDIAN);
proto_tree_add_item(lmp_tree, hf_lmp_feature_reserved_34, tvb, offset, 1, ENC_LITTLE_ENDIAN);
- proto_tree_add_item(lmp_tree, hf_lmp_feature_afh_capable_slave, tvb, offset, 1, ENC_LITTLE_ENDIAN);
- proto_tree_add_item(lmp_tree, hf_lmp_feature_afh_classification_slave, tvb, offset, 1, ENC_LITTLE_ENDIAN);
+ proto_tree_add_item(lmp_tree, hf_lmp_feature_afh_capable_peripheral, tvb, offset, 1, ENC_LITTLE_ENDIAN);
+ proto_tree_add_item(lmp_tree, hf_lmp_feature_afh_classification_peripheral, tvb, offset, 1, ENC_LITTLE_ENDIAN);
proto_tree_add_item(lmp_tree, hf_lmp_feature_br_edr_not_supported, tvb, offset, 1, ENC_LITTLE_ENDIAN);
proto_tree_add_item(lmp_tree, hf_lmp_feature_le_supported_controller, tvb, offset, 1, ENC_LITTLE_ENDIAN);
proto_tree_add_item(lmp_tree, hf_lmp_feature_3slot_edr_acl_packets, tvb, offset, 1, ENC_LITTLE_ENDIAN);
@@ -1621,8 +1675,8 @@ dissect_bthci_evt_lmp_features(tvbuff_t *tvb, int offset, packet_info *pinfo _U_
proto_tree_add_item(lmp_tree, hf_lmp_feature_5slot_edr_acl_packets, tvb, offset, 1, ENC_LITTLE_ENDIAN);
proto_tree_add_item(lmp_tree, hf_lmp_feature_sniff_subrating, tvb, offset, 1, ENC_LITTLE_ENDIAN);
proto_tree_add_item(lmp_tree, hf_lmp_feature_pause_encryption, tvb, offset, 1, ENC_LITTLE_ENDIAN);
- proto_tree_add_item(lmp_tree, hf_lmp_feature_afh_capable_master, tvb, offset, 1, ENC_LITTLE_ENDIAN);
- proto_tree_add_item(lmp_tree, hf_lmp_feature_afh_classification_master, tvb, offset, 1, ENC_LITTLE_ENDIAN);
+ proto_tree_add_item(lmp_tree, hf_lmp_feature_afh_capable_central, tvb, offset, 1, ENC_LITTLE_ENDIAN);
+ proto_tree_add_item(lmp_tree, hf_lmp_feature_afh_classification_central, tvb, offset, 1, ENC_LITTLE_ENDIAN);
proto_tree_add_item(lmp_tree, hf_lmp_feature_edr_esco_2mbps_mode, tvb, offset, 1, ENC_LITTLE_ENDIAN);
proto_tree_add_item(lmp_tree, hf_lmp_feature_edr_esco_3mbps_mode, tvb, offset, 1, ENC_LITTLE_ENDIAN);
proto_tree_add_item(lmp_tree, hf_lmp_feature_3slot_edr_esco_packets, tvb, offset, 1, ENC_LITTLE_ENDIAN);
@@ -1659,8 +1713,8 @@ dissect_bthci_evt_lmp_features(tvbuff_t *tvb, int offset, packet_info *pinfo _U_
break;
case 2:
- proto_tree_add_item(lmp_tree, hf_lmp_feature_csb_master_operation, tvb, offset, 1, ENC_LITTLE_ENDIAN);
- proto_tree_add_item(lmp_tree, hf_lmp_feature_csb_slave_operation, tvb, offset, 1, ENC_LITTLE_ENDIAN);
+ proto_tree_add_item(lmp_tree, hf_lmp_feature_csb_central_operation, tvb, offset, 1, ENC_LITTLE_ENDIAN);
+ proto_tree_add_item(lmp_tree, hf_lmp_feature_csb_peripheral_operation, tvb, offset, 1, ENC_LITTLE_ENDIAN);
proto_tree_add_item(lmp_tree, hf_lmp_feature_synchronization_train, tvb, offset, 1, ENC_LITTLE_ENDIAN);
proto_tree_add_item(lmp_tree, hf_lmp_feature_synchronization_scan, tvb, offset, 1, ENC_LITTLE_ENDIAN);
proto_tree_add_item(lmp_tree, hf_lmp_feature_inquiry_response_notification_event, tvb, offset, 1, ENC_LITTLE_ENDIAN);
@@ -1766,7 +1820,7 @@ dissect_bthci_evt_remote_name_req_complete(tvbuff_t *tvb, int offset,
offset = dissect_bd_addr(hf_bthci_evt_bd_addr, pinfo, tree, tvb, offset, FALSE, bluetooth_data->interface_id, bluetooth_data->adapter_id, bd_addr);
- proto_tree_add_item(tree, hf_bthci_evt_remote_name, tvb, offset, 248, ENC_UTF_8|ENC_NA);
+ proto_tree_add_item(tree, hf_bthci_evt_remote_name, tvb, offset, 248, ENC_UTF_8);
if (!pinfo->fd->visited) {
wmem_tree_key_t key[6];
guint32 interface_id;
@@ -1808,14 +1862,14 @@ dissect_bthci_evt_remote_name_req_complete(tvbuff_t *tvb, int offset,
if (have_tap_listener(bluetooth_device_tap)) {
bluetooth_device_tap_t *tap_device;
- tap_device = wmem_new(wmem_packet_scope(), bluetooth_device_tap_t);
+ tap_device = wmem_new(pinfo->pool, bluetooth_device_tap_t);
tap_device->interface_id = bluetooth_data->interface_id;
tap_device->adapter_id = bluetooth_data->adapter_id;
memcpy(tap_device->bd_addr, bd_addr, 6);
tap_device->has_bd_addr = TRUE;
tap_device->is_local = FALSE;
tap_device->type = BLUETOOTH_DEVICE_NAME;
- tap_device->data.name = tvb_get_string_enc(wmem_packet_scope(), tvb, offset, 248, ENC_UTF_8);
+ tap_device->data.name = tvb_get_string_enc(pinfo->pool, tvb, offset, 248, ENC_UTF_8);
tap_queue_packet(bluetooth_device_tap, pinfo, tap_device);
}
@@ -1876,7 +1930,7 @@ dissect_bthci_evt_read_remote_version_information_complete(tvbuff_t *tvb, int of
subtree = (wmem_tree_t *) wmem_tree_lookup32_array(bluetooth_data->chandle_to_bdaddr, key);
remote_bdaddr = (subtree) ? (remote_bdaddr_t *) wmem_tree_lookup32_le(subtree, pinfo->num) : NULL;
- tap_device = wmem_new(wmem_packet_scope(), bluetooth_device_tap_t);
+ tap_device = wmem_new(pinfo->pool, bluetooth_device_tap_t);
tap_device->type = BLUETOOTH_DEVICE_REMOTE_VERSION;
tap_device->interface_id = bluetooth_data->interface_id;
tap_device->adapter_id = bluetooth_data->adapter_id;
@@ -2035,9 +2089,9 @@ dissect_bthci_evt_role_change(tvbuff_t *tvb, int offset, packet_info *pinfo,
device_role = (device_role_t *) wmem_new(wmem_file_scope(), device_role_t);
device_role->change_in_frame = frame_number;
if (role == 0)
- device_role->role = ROLE_SLAVE;
+ device_role->role = ROLE_PERIPHERAL;
else if (role == 1)
- device_role->role = ROLE_MASTER;
+ device_role->role = ROLE_CENTRAL;
else
device_role->role = ROLE_UNKNOWN;
@@ -2057,7 +2111,7 @@ dissect_bthci_evt_hardware_error(tvbuff_t *tvb, int offset, packet_info *pinfo,
if (have_tap_listener(bluetooth_hci_summary_tap)) {
bluetooth_hci_summary_tap_t *tap_hci_summary;
- tap_hci_summary = wmem_new(wmem_packet_scope(), bluetooth_hci_summary_tap_t);
+ tap_hci_summary = wmem_new(pinfo->pool, bluetooth_hci_summary_tap_t);
tap_hci_summary->interface_id = bluetooth_data->interface_id;
tap_hci_summary->adapter_id = bluetooth_data->adapter_id;
@@ -2225,7 +2279,7 @@ dissect_bthci_evt_command_status(tvbuff_t *tvb, int offset, packet_info *pinfo,
if (have_tap_listener(bluetooth_hci_summary_tap)) {
bluetooth_hci_summary_tap_t *tap_hci_summary;
- tap_hci_summary = wmem_new(wmem_packet_scope(), bluetooth_hci_summary_tap_t);
+ tap_hci_summary = wmem_new(pinfo->pool, bluetooth_hci_summary_tap_t);
tap_hci_summary->interface_id = bluetooth_data->interface_id;
tap_hci_summary->adapter_id = bluetooth_data->adapter_id;
@@ -2242,9 +2296,9 @@ dissect_bthci_evt_command_status(tvbuff_t *tvb, int offset, packet_info *pinfo,
}
if (status_code != 0)
- add_opcode(opcode_list, opcode, COMMAND_STATUS_RESULT);
+ add_opcode(pinfo->pool, opcode_list, opcode, COMMAND_STATUS_RESULT);
else
- add_opcode(opcode_list, opcode, COMMAND_STATUS_PENDING);
+ add_opcode(pinfo->pool, opcode_list, opcode, COMMAND_STATUS_PENDING);
ti_opcode = proto_tree_add_item(tree, hf_bthci_evt_opcode, tvb, offset, 2, ENC_LITTLE_ENDIAN);
opcode_tree = proto_item_add_subtree(ti_opcode, ett_opcode);
@@ -2478,7 +2532,7 @@ dissect_bthci_evt_le_meta(tvbuff_t *tvb, int offset, packet_info *pinfo,
if (have_tap_listener(bluetooth_hci_summary_tap)) {
bluetooth_hci_summary_tap_t *tap_hci_summary;
- tap_hci_summary = wmem_new(wmem_packet_scope(), bluetooth_hci_summary_tap_t);
+ tap_hci_summary = wmem_new(pinfo->pool, bluetooth_hci_summary_tap_t);
tap_hci_summary->interface_id = bluetooth_data->interface_id;
tap_hci_summary->adapter_id = bluetooth_data->adapter_id;
@@ -2527,7 +2581,7 @@ dissect_bthci_evt_le_meta(tvbuff_t *tvb, int offset, packet_info *pinfo,
proto_item_append_text(item, " (%g sec)", tvb_get_letohs(tvb, offset)*0.01);
offset += 2;
- proto_tree_add_item(tree, hf_bthci_evt_le_master_clock_accuracy, tvb, offset, 1, ENC_LITTLE_ENDIAN);
+ proto_tree_add_item(tree, hf_bthci_evt_le_central_clock_accuracy, tvb, offset, 1, ENC_LITTLE_ENDIAN);
offset += 1;
if (!pinfo->fd->visited && status == STATUS_SUCCESS) {
@@ -2565,12 +2619,12 @@ dissect_bthci_evt_le_meta(tvbuff_t *tvb, int offset, packet_info *pinfo,
chandle_session = (chandle_session_t *) wmem_new(wmem_file_scope(), chandle_session_t);
chandle_session->connect_in_frame = k_frame_number;
- chandle_session->disconnect_in_frame = max_disconnect_in_frame;
+ chandle_session->disconnect_in_frame = bluetooth_max_disconnect_in_frame;
chandle_session->link_type = BT_LINK_TYPE_LL;
wmem_tree_insert32_array(bluetooth_data->chandle_sessions, key, chandle_session);
}
- add_opcode(opcode_list, 0x200D, COMMAND_STATUS_NORMAL); /* LE Create Connection */
+ add_opcode(pinfo->pool, opcode_list, 0x200D, COMMAND_STATUS_NORMAL); /* LE Create Connection */
break;
case 0x02: /* LE Advertising Report */
@@ -2593,7 +2647,7 @@ dissect_bthci_evt_le_meta(tvbuff_t *tvb, int offset, packet_info *pinfo,
if (length > 0) {
bluetooth_eir_ad_data_t *ad_data;
- ad_data = wmem_new0(wmem_packet_scope(), bluetooth_eir_ad_data_t);
+ ad_data = wmem_new0(pinfo->pool, bluetooth_eir_ad_data_t);
ad_data->interface_id = bluetooth_data->interface_id;
ad_data->adapter_id = bluetooth_data->adapter_id;
ad_data->bd_addr = bd_addr;
@@ -2624,7 +2678,7 @@ dissect_bthci_evt_le_meta(tvbuff_t *tvb, int offset, packet_info *pinfo,
proto_item_append_text(item, " (%g sec)", tvb_get_letohs(tvb, offset)*0.01);
offset += 2;
- add_opcode(opcode_list, 0x2013, COMMAND_STATUS_NORMAL); /* LE Connection Update */
+ add_opcode(pinfo->pool, opcode_list, 0x2013, COMMAND_STATUS_NORMAL); /* LE Connection Update */
break;
case 0x04: /* LE Read Remote Features Complete */
proto_tree_add_item(tree, hf_bthci_evt_status, tvb, offset, 1, ENC_LITTLE_ENDIAN);
@@ -2637,7 +2691,7 @@ dissect_bthci_evt_le_meta(tvbuff_t *tvb, int offset, packet_info *pinfo,
proto_tree_add_bitmask(tree, tvb, offset, hf_bthci_evt_le_features, ett_le_features, hfx_bthci_evt_le_features, ENC_LITTLE_ENDIAN);
offset += 8;
- add_opcode(opcode_list, 0x2016, COMMAND_STATUS_NORMAL); /* LE Read Remote Features */
+ add_opcode(pinfo->pool, opcode_list, 0x2016, COMMAND_STATUS_NORMAL); /* LE Read Remote Features */
break;
case 0x05: /* LE Long Term Key Request */
proto_tree_add_item(tree, hf_bthci_evt_connection_handle, tvb, offset, 2, ENC_LITTLE_ENDIAN);
@@ -2692,7 +2746,7 @@ dissect_bthci_evt_le_meta(tvbuff_t *tvb, int offset, packet_info *pinfo,
proto_tree_add_item(tree, hf_bthci_evt_le_local_p_256_public_key, tvb, offset, 64, ENC_NA);
offset += 64;
- add_opcode(opcode_list, 0x2025, COMMAND_STATUS_NORMAL); /* LE Read Local P-256 Public Key */
+ add_opcode(pinfo->pool, opcode_list, 0x2025, COMMAND_STATUS_NORMAL); /* LE Read Local P-256 Public Key */
break;
case 0x09: /* LE Generate DHKey Complete */
@@ -2703,10 +2757,11 @@ dissect_bthci_evt_le_meta(tvbuff_t *tvb, int offset, packet_info *pinfo,
proto_tree_add_item(tree, hf_bthci_evt_le_dhkey, tvb, offset, 32, ENC_NA);
offset += 32;
- add_opcode(opcode_list, 0x2026, COMMAND_STATUS_NORMAL); /* LE Generate DHKey */
+ add_opcode(pinfo->pool, opcode_list, 0x2026, COMMAND_STATUS_NORMAL); /* LE Generate DHKey */
break;
- case 0x0A: /* LE Enhanced Connection Complete */
+ case 0x0A: /* LE Enhanced Connection Complete [v1] */
+ case 0x29: /* LE Enhanced Connection Complete [v2] */
proto_tree_add_item(tree, hf_bthci_evt_status, tvb, offset, 1, ENC_LITTLE_ENDIAN);
status = tvb_get_guint8(tvb, offset);
send_hci_summary_status_tap(status, pinfo, bluetooth_data);
@@ -2737,9 +2792,16 @@ dissect_bthci_evt_le_meta(tvbuff_t *tvb, int offset, packet_info *pinfo,
proto_item_append_text(item, " (%g sec)", tvb_get_letohs(tvb, offset)*0.01);
offset += 2;
- proto_tree_add_item(tree, hf_bthci_evt_le_master_clock_accuracy, tvb, offset, 1, ENC_LITTLE_ENDIAN);
+ proto_tree_add_item(tree, hf_bthci_evt_le_central_clock_accuracy, tvb, offset, 1, ENC_LITTLE_ENDIAN);
offset += 1;
+ if (subevent_code == 0x29) {
+ proto_tree_add_item(tree, hf_bthci_evt_advertising_handle, tvb, offset, 1, ENC_NA);
+ offset += 1;
+ proto_tree_add_item(tree, hf_bthci_evt_sync_handle, tvb, offset, 2, ENC_LITTLE_ENDIAN);
+ offset += 2;
+ }
+
if (!pinfo->fd->visited && status == STATUS_SUCCESS) {
wmem_tree_key_t key[5];
guint32 k_interface_id;
@@ -2775,12 +2837,12 @@ dissect_bthci_evt_le_meta(tvbuff_t *tvb, int offset, packet_info *pinfo,
chandle_session = (chandle_session_t *) wmem_new(wmem_file_scope(), chandle_session_t);
chandle_session->connect_in_frame = k_frame_number;
- chandle_session->disconnect_in_frame = max_disconnect_in_frame;
+ chandle_session->disconnect_in_frame = bluetooth_max_disconnect_in_frame;
chandle_session->link_type = BT_LINK_TYPE_LL;
wmem_tree_insert32_array(bluetooth_data->chandle_sessions, key, chandle_session);
}
- add_opcode(opcode_list, 0x200D, COMMAND_STATUS_NORMAL); /* LE Create Connection */
+ add_opcode(pinfo->pool, opcode_list, 0x200D, COMMAND_STATUS_NORMAL); /* LE Create Connection */
break;
case 0x0B: /* LE Direct Advertising Report */
@@ -2891,7 +2953,7 @@ dissect_bthci_evt_le_meta(tvbuff_t *tvb, int offset, packet_info *pinfo,
if (length > 0) {
bluetooth_eir_ad_data_t *ad_data;
- ad_data = wmem_new0(wmem_packet_scope(), bluetooth_eir_ad_data_t);
+ ad_data = wmem_new0(pinfo->pool, bluetooth_eir_ad_data_t);
ad_data->interface_id = bluetooth_data->interface_id;
ad_data->adapter_id = bluetooth_data->adapter_id;
ad_data->bd_addr = bd_addr;
@@ -2903,7 +2965,8 @@ dissect_bthci_evt_le_meta(tvbuff_t *tvb, int offset, packet_info *pinfo,
}
}
break;
- case 0x0E: /* LE Periodic Advertising Sync Established */
+ case 0x0E: /* LE Periodic Advertising Sync Established [v1] */
+ case 0x24: /* LE Periodic Advertising Sync Established [v2] */
proto_tree_add_item(tree, hf_bthci_evt_status, tvb, offset, 1, ENC_NA);
status = tvb_get_guint8(tvb, offset);
send_hci_summary_status_tap(status, pinfo, bluetooth_data);
@@ -2922,8 +2985,19 @@ dissect_bthci_evt_le_meta(tvbuff_t *tvb, int offset, packet_info *pinfo,
offset += 2;
proto_tree_add_item(tree, hf_bthci_evt_advertiser_clock_accuracy, tvb, offset, 1, ENC_NA);
offset += 1;
+ if (subevent_code == 0x24) {
+ proto_tree_add_item(tree, hf_bthci_evt_num_subevents, tvb, offset, 1, ENC_NA);
+ offset+=1;
+ proto_tree_add_item(tree, hf_bthci_evt_subevent_interval, tvb, offset, 1, ENC_NA);
+ offset+=1;
+ proto_tree_add_item(tree, hf_bthci_evt_response_slot_delay, tvb, offset, 1, ENC_NA);
+ offset+=1;
+ proto_tree_add_item(tree, hf_bthci_evt_response_slot_spacing, tvb, offset, 1, ENC_NA);
+ offset+=1;
+ }
break;
- case 0x0F: /* LE Periodic Advertising Report */
+ case 0x0F: /* LE Periodic Advertising Report [v1] */
+ case 0x25: /* LE Periodic Advertising Report [v2] */
{
guint8 length;
proto_tree_add_item(tree, hf_bthci_evt_sync_handle, tvb, offset, 2, ENC_LITTLE_ENDIAN);
@@ -2938,6 +3012,12 @@ dissect_bthci_evt_le_meta(tvbuff_t *tvb, int offset, packet_info *pinfo,
offset += 1;
proto_tree_add_item(tree, hf_bthci_evt_cte_type, tvb, offset, 1, ENC_NA);
offset += 1;
+ if (subevent_code == 0x25) {
+ proto_tree_add_item(tree, hf_bthci_evt_periodic_event_counter, tvb, offset, 2, ENC_LITTLE_ENDIAN);
+ offset += 2;
+ proto_tree_add_item(tree, hf_bthci_evt_subevent, tvb, offset, 1, ENC_NA);
+ offset += 1;
+ }
proto_tree_add_item(tree, hf_bthci_evt_data_status, tvb, offset, 1, ENC_NA);
offset += 1;
proto_tree_add_item(tree, hf_bthci_evt_data_length, tvb, offset, 1, ENC_NA);
@@ -3027,7 +3107,8 @@ dissect_bthci_evt_le_meta(tvbuff_t *tvb, int offset, packet_info *pinfo,
proto_tree_add_item(tree, hf_bthci_evt_connection_handle, tvb, offset, 2, ENC_LITTLE_ENDIAN);
offset += 2;
break;
- case 0x18: /* LE Periodic Advertising Sync Transfer Received */
+ case 0x18: /* LE Periodic Advertising Sync Transfer Received [v1] */
+ case 0x26: /* LE Periodic Advertising Sync Transfer Received [v2] */
proto_tree_add_item(tree, hf_bthci_evt_status, tvb, offset, 1, ENC_NA);
status = tvb_get_guint8(tvb, offset);
send_hci_summary_status_tap(status, pinfo, bluetooth_data);
@@ -3050,6 +3131,16 @@ dissect_bthci_evt_le_meta(tvbuff_t *tvb, int offset, packet_info *pinfo,
offset += 2;
proto_tree_add_item(tree, hf_bthci_evt_advertiser_clock_accuracy, tvb, offset, 1, ENC_NA);
offset += 1;
+ if (subevent_code == 0x26) {
+ proto_tree_add_item(tree, hf_bthci_evt_num_subevents, tvb, offset, 1, ENC_NA);
+ offset+=1;
+ proto_tree_add_item(tree, hf_bthci_evt_subevent_interval, tvb, offset, 1, ENC_NA);
+ offset+=1;
+ proto_tree_add_item(tree, hf_bthci_evt_response_slot_delay, tvb, offset, 1, ENC_NA);
+ offset+=1;
+ proto_tree_add_item(tree, hf_bthci_evt_response_slot_spacing, tvb, offset, 1, ENC_NA);
+ offset+=1;
+ }
break;
case 0x19: /* LE CIS Established */
proto_tree_add_item(tree, hf_bthci_evt_status, tvb, offset, 1, ENC_NA);
@@ -3086,7 +3177,7 @@ dissect_bthci_evt_le_meta(tvbuff_t *tvb, int offset, packet_info *pinfo,
chandle_session = (chandle_session_t *) wmem_new(wmem_file_scope(), chandle_session_t);
chandle_session->connect_in_frame = k_frame_number;
- chandle_session->disconnect_in_frame = max_disconnect_in_frame;
+ chandle_session->disconnect_in_frame = bluetooth_max_disconnect_in_frame;
chandle_session->link_type = BT_LINK_TYPE_ISO;
wmem_tree_insert32_array(bluetooth_data->chandle_sessions, key, chandle_session);
}
@@ -3095,27 +3186,27 @@ dissect_bthci_evt_le_meta(tvbuff_t *tvb, int offset, packet_info *pinfo,
offset += 3;
proto_tree_add_item(tree, hf_bthci_evt_cis_sync_delay, tvb, offset, 3, ENC_LITTLE_ENDIAN);
offset += 3;
- proto_tree_add_item(tree, hf_bthci_evt_transport_latency_m_to_s, tvb, offset, 3, ENC_LITTLE_ENDIAN);
+ proto_tree_add_item(tree, hf_bthci_evt_transport_latency_c_to_p, tvb, offset, 3, ENC_LITTLE_ENDIAN);
offset += 3;
- proto_tree_add_item(tree, hf_bthci_evt_transport_latency_s_to_m, tvb, offset, 3, ENC_LITTLE_ENDIAN);
+ proto_tree_add_item(tree, hf_bthci_evt_transport_latency_p_to_c, tvb, offset, 3, ENC_LITTLE_ENDIAN);
offset += 3;
- proto_tree_add_item(tree, hf_bthci_evt_phy_m_to_s, tvb, offset, 1, ENC_NA);
+ proto_tree_add_item(tree, hf_bthci_evt_phy_c_to_p, tvb, offset, 1, ENC_NA);
offset += 1;
- proto_tree_add_item(tree, hf_bthci_evt_phy_s_to_m, tvb, offset, 1, ENC_NA);
+ proto_tree_add_item(tree, hf_bthci_evt_phy_p_to_c, tvb, offset, 1, ENC_NA);
offset += 1;
proto_tree_add_item(tree, hf_bthci_evt_nse, tvb, offset, 1, ENC_NA);
offset += 1;
- proto_tree_add_item(tree, hf_bthci_evt_bn_m_to_s, tvb, offset, 1, ENC_NA);
+ proto_tree_add_item(tree, hf_bthci_evt_bn_c_to_p, tvb, offset, 1, ENC_NA);
offset += 1;
- proto_tree_add_item(tree, hf_bthci_evt_bn_s_to_m, tvb, offset, 1, ENC_NA);
+ proto_tree_add_item(tree, hf_bthci_evt_bn_p_to_c, tvb, offset, 1, ENC_NA);
offset += 1;
- proto_tree_add_item(tree, hf_bthci_evt_ft_m_to_s, tvb, offset, 1, ENC_NA);
+ proto_tree_add_item(tree, hf_bthci_evt_ft_c_to_p, tvb, offset, 1, ENC_NA);
offset += 1;
- proto_tree_add_item(tree, hf_bthci_evt_ft_s_to_m, tvb, offset, 1, ENC_NA);
+ proto_tree_add_item(tree, hf_bthci_evt_ft_p_to_c, tvb, offset, 1, ENC_NA);
offset += 1;
- proto_tree_add_item(tree, hf_bthci_evt_max_pdu_m_to_s, tvb, offset, 2, ENC_LITTLE_ENDIAN);
+ proto_tree_add_item(tree, hf_bthci_evt_max_pdu_c_to_p, tvb, offset, 2, ENC_LITTLE_ENDIAN);
offset += 2;
- proto_tree_add_item(tree, hf_bthci_evt_max_pdu_s_to_m, tvb, offset, 2, ENC_LITTLE_ENDIAN);
+ proto_tree_add_item(tree, hf_bthci_evt_max_pdu_p_to_c, tvb, offset, 2, ENC_LITTLE_ENDIAN);
offset += 2;
item = proto_tree_add_item(tree, hf_bthci_evt_iso_interval, tvb, offset, 2, ENC_LITTLE_ENDIAN);
proto_item_append_text(item, " (%g msec)", tvb_get_letohs(tvb, offset) * 1.25);
@@ -3198,7 +3289,7 @@ dissect_bthci_evt_le_meta(tvbuff_t *tvb, int offset, packet_info *pinfo,
num_bis = tvb_get_guint8(tvb, offset);
offset += 1;
while (num_bis) {
- proto_tree_add_item(tree, hf_bthci_evt_bis_handle, tvb, offset, 2, ENC_NA);
+ proto_tree_add_item(tree, hf_bthci_evt_bis_handle, tvb, offset, 2, ENC_LITTLE_ENDIAN);
offset += 2;
num_bis -= 1;
}
@@ -3340,6 +3431,63 @@ dissect_bthci_evt_le_meta(tvbuff_t *tvb, int offset, packet_info *pinfo,
offset += 2;
}
break;
+ case 0x27: /* LE Periodic Advertising Subevent Data Request */
+ proto_tree_add_item(tree, hf_bthci_evt_advertising_handle, tvb, offset, 1, ENC_NA);
+ offset += 1;
+ proto_tree_add_item(tree, hf_bthci_evt_subevent_start, tvb, offset, 1, ENC_NA);
+ offset += 1;
+ proto_tree_add_item(tree, hf_bthci_evt_subevent_count, tvb, offset, 1, ENC_NA);
+ offset += 1;
+ break;
+ case 0x28: /* LE Periodic Advertising Response Report */
+ {
+ guint8 num_reponses, length;
+ proto_item *report_item;
+ proto_tree *report_tree;
+ proto_tree_add_item(tree, hf_bthci_evt_advertising_handle, tvb, offset, 1, ENC_NA);
+ offset += 1;
+ proto_tree_add_item(tree, hf_bthci_evt_subevent, tvb, offset, 1, ENC_NA);
+ offset += 1;
+ proto_tree_add_item(tree, hf_bthci_evt_subevent_tx_status, tvb, offset, 1, ENC_NA);
+ offset += 1;
+ proto_tree_add_item(tree, hf_bthci_evt_num_responses, tvb, offset, 1, ENC_NA);
+ num_reponses = tvb_get_guint8(tvb, offset);
+ offset += 1;
+ for (int i = 0; i < num_reponses; i++) {
+ length = 6 + tvb_get_guint8(tvb, offset+5);
+ report_item = proto_tree_add_none_format(tree, hf_bthci_evt_subevent_responses, tvb, offset, length,
+ "Sub-event Response Slot: %u, Data Status: %s",
+ tvb_get_guint8(tvb, offset+3),
+ val_to_str(tvb_get_guint8(tvb, offset+4), ext_adv_data_status_vals, "0x%02x"));
+ report_tree = proto_item_add_subtree(report_item, ett_adv_subevent_responses);
+
+ proto_tree_add_item(report_tree, hf_bthci_evt_tx_power, tvb, offset, 1, ENC_NA);
+ offset += 1;
+ proto_tree_add_item(report_tree, hf_bthci_evt_rssi, tvb, offset, 1, ENC_NA);
+ offset += 1;
+ proto_tree_add_item(report_tree, hf_bthci_evt_cte_type, tvb, offset, 1, ENC_NA);
+ offset += 1;
+ proto_tree_add_item(report_tree, hf_bthci_evt_response_slot, tvb, offset, 1, ENC_NA);
+ offset += 1;
+ proto_tree_add_item(report_tree, hf_bthci_evt_data_status, tvb, offset, 1, ENC_NA);
+ offset += 1;
+ proto_tree_add_item(report_tree, hf_bthci_evt_data_length, tvb, offset, 1, ENC_NA);
+ length = tvb_get_guint8(tvb, offset);
+ offset += 1;
+ if (length > 0) {
+ bluetooth_eir_ad_data_t *ad_data;
+
+ ad_data = wmem_new0(pinfo->pool, bluetooth_eir_ad_data_t);
+ ad_data->interface_id = bluetooth_data->interface_id;
+ ad_data->adapter_id = bluetooth_data->adapter_id;
+ ad_data->bd_addr = NULL;
+
+ call_dissector_with_data(btcommon_ad_handle, tvb_new_subset_length(tvb, offset, length), pinfo, report_tree, ad_data);
+ offset += length;
+ }
+ }
+ }
+ break;
default:
break;
}
@@ -3587,7 +3735,7 @@ dissect_bthci_evt_command_complete(tvbuff_t *tvb, int offset,
if (have_tap_listener(bluetooth_hci_summary_tap)) {
bluetooth_hci_summary_tap_t *tap_hci_summary;
- tap_hci_summary = wmem_new(wmem_packet_scope(), bluetooth_hci_summary_tap_t);
+ tap_hci_summary = wmem_new(pinfo->pool, bluetooth_hci_summary_tap_t);
tap_hci_summary->interface_id = bluetooth_data->interface_id;
tap_hci_summary->adapter_id = bluetooth_data->adapter_id;
@@ -3720,6 +3868,9 @@ dissect_bthci_evt_command_complete(tvbuff_t *tvb, int offset,
case 0x0c7a: /* Write Secure Connections Host Support */
case 0x0c7f: /* Write Extended Page Timeout */
case 0x0c81: /* Write Extended Inquiry Length */
+ case 0x0c82: /* Set Ecosystem Base Interval */
+ case 0x0c83: /* Configure Data Path */
+ case 0x0c84: /* Set Min Encryption Key Size */
case 0x140d: /* Set Triggered Clock Capture */
case 0x1802: /* Write Loopback Mode */
case 0x1803: /* Enable Device Under Test Mode */
@@ -3736,9 +3887,9 @@ dissect_bthci_evt_command_complete(tvbuff_t *tvb, int offset,
case 0x200b: /* LE Set Scan Parameters */
case 0x200c: /* LE Set Scan Enable */
case 0x200e: /* LE Create Connection Cancel */
- case 0x2010: /* LE Clear White List */
- case 0x2011: /* LE Add Device To White List */
- case 0x2012: /* LE Remove Device From White List */
+ case 0x2010: /* LE Clear Filter Accept List */
+ case 0x2011: /* LE Add Device To Filter Accept List */
+ case 0x2012: /* LE Remove Device From Filter Accept List */
case 0x2014: /* LE Set Host Channel Classification */
case 0x201d: /* LE Receiver Test [v1] */
case 0x201e: /* LE Transmitter Test [v1] */
@@ -3777,6 +3928,7 @@ dissect_bthci_evt_command_complete(tvbuff_t *tvb, int offset,
case 0x205D: /* LE Set Default Periodic Advertising Sync Transfer Parameters */
case 0x205F: /* LE Modify Sleep Clock Accuracy */
case 0x2074: /* LE Set Host Feature */
+ case 0x207B: /* LE Transmitter Test [v4] */
case 0x207C: /* LE Set Data Related Address Changes */
case 0x207D: /* LE Set Default Subrate */
proto_tree_add_item(tree, hf_bthci_evt_status, tvb, offset, 1, ENC_LITTLE_ENDIAN);
@@ -3839,7 +3991,7 @@ dissect_bthci_evt_command_complete(tvbuff_t *tvb, int offset,
if (local_addr && have_tap_listener(bluetooth_device_tap)) {
bluetooth_device_tap_t *tap_device;
- tap_device = wmem_new(wmem_packet_scope(), bluetooth_device_tap_t);
+ tap_device = wmem_new(pinfo->pool, bluetooth_device_tap_t);
if (bluetooth_data) {
tap_device->interface_id = bluetooth_data->interface_id;
tap_device->adapter_id = bluetooth_data->adapter_id;
@@ -3915,7 +4067,7 @@ dissect_bthci_evt_command_complete(tvbuff_t *tvb, int offset,
if (status == STATUS_SUCCESS && have_tap_listener(bluetooth_device_tap)) {
bluetooth_device_tap_t *tap_device;
- tap_device = wmem_new(wmem_packet_scope(), bluetooth_device_tap_t);
+ tap_device = wmem_new(pinfo->pool, bluetooth_device_tap_t);
if (bluetooth_data) {
tap_device->interface_id = bluetooth_data->interface_id;
tap_device->adapter_id = bluetooth_data->adapter_id;
@@ -4082,12 +4234,12 @@ dissect_bthci_evt_command_complete(tvbuff_t *tvb, int offset,
send_hci_summary_status_tap(status, pinfo, bluetooth_data);
offset += 1;
- proto_tree_add_item(tree, hf_bthci_evt_device_name, tvb, offset, 248, ENC_UTF_8|ENC_NA);
+ proto_tree_add_item(tree, hf_bthci_evt_device_name, tvb, offset, 248, ENC_UTF_8);
if (status == STATUS_SUCCESS && !pinfo->fd->visited) {
gchar *name;
localhost_name_entry_t *localhost_name_entry;
- name = tvb_get_string_enc(wmem_packet_scope(), tvb, offset, 248, ENC_UTF_8);
+ name = tvb_get_string_enc(pinfo->pool, tvb, offset, 248, ENC_UTF_8);
key[0].length = 1;
key[0].key = &interface_id;
@@ -4109,7 +4261,7 @@ dissect_bthci_evt_command_complete(tvbuff_t *tvb, int offset,
if (status == STATUS_SUCCESS && have_tap_listener(bluetooth_device_tap)) {
bluetooth_device_tap_t *tap_device;
- tap_device = wmem_new(wmem_packet_scope(), bluetooth_device_tap_t);
+ tap_device = wmem_new(pinfo->pool, bluetooth_device_tap_t);
if (bluetooth_data) {
tap_device->interface_id = bluetooth_data->interface_id;
tap_device->adapter_id = bluetooth_data->adapter_id;
@@ -4120,7 +4272,7 @@ dissect_bthci_evt_command_complete(tvbuff_t *tvb, int offset,
tap_device->has_bd_addr = FALSE;
tap_device->is_local = TRUE;
tap_device->type = BLUETOOTH_DEVICE_NAME;
- tap_device->data.name = tvb_get_string_enc(wmem_packet_scope(), tvb, offset, 248, ENC_UTF_8);
+ tap_device->data.name = tvb_get_string_enc(pinfo->pool, tvb, offset, 248, ENC_UTF_8);
tap_queue_packet(bluetooth_device_tap, pinfo, tap_device);
}
offset += 248;
@@ -4139,7 +4291,7 @@ dissect_bthci_evt_command_complete(tvbuff_t *tvb, int offset,
if (status == STATUS_SUCCESS && have_tap_listener(bluetooth_device_tap)) {
bluetooth_device_tap_t *tap_device;
- tap_device = wmem_new(wmem_packet_scope(), bluetooth_device_tap_t);
+ tap_device = wmem_new(pinfo->pool, bluetooth_device_tap_t);
if (bluetooth_data) {
tap_device->interface_id = bluetooth_data->interface_id;
tap_device->adapter_id = bluetooth_data->adapter_id;
@@ -4168,7 +4320,7 @@ dissect_bthci_evt_command_complete(tvbuff_t *tvb, int offset,
if (status == STATUS_SUCCESS && have_tap_listener(bluetooth_device_tap)) {
bluetooth_device_tap_t *tap_device;
- tap_device = wmem_new(wmem_packet_scope(), bluetooth_device_tap_t);
+ tap_device = wmem_new(pinfo->pool, bluetooth_device_tap_t);
if (bluetooth_data) {
tap_device->interface_id = bluetooth_data->interface_id;
tap_device->adapter_id = bluetooth_data->adapter_id;
@@ -4196,7 +4348,7 @@ dissect_bthci_evt_command_complete(tvbuff_t *tvb, int offset,
if (status == STATUS_SUCCESS && have_tap_listener(bluetooth_device_tap)) {
bluetooth_device_tap_t *tap_device;
- tap_device = wmem_new(wmem_packet_scope(), bluetooth_device_tap_t);
+ tap_device = wmem_new(pinfo->pool, bluetooth_device_tap_t);
if (bluetooth_data) {
tap_device->interface_id = bluetooth_data->interface_id;
tap_device->adapter_id = bluetooth_data->adapter_id;
@@ -4225,7 +4377,7 @@ dissect_bthci_evt_command_complete(tvbuff_t *tvb, int offset,
if (status == STATUS_SUCCESS && have_tap_listener(bluetooth_device_tap)) {
bluetooth_device_tap_t *tap_device;
- tap_device = wmem_new(wmem_packet_scope(), bluetooth_device_tap_t);
+ tap_device = wmem_new(pinfo->pool, bluetooth_device_tap_t);
if (bluetooth_data) {
tap_device->interface_id = bluetooth_data->interface_id;
tap_device->adapter_id = bluetooth_data->adapter_id;
@@ -4259,7 +4411,7 @@ dissect_bthci_evt_command_complete(tvbuff_t *tvb, int offset,
if (status == STATUS_SUCCESS && have_tap_listener(bluetooth_device_tap)) {
bluetooth_device_tap_t *tap_device;
- tap_device = wmem_new(wmem_packet_scope(), bluetooth_device_tap_t);
+ tap_device = wmem_new(pinfo->pool, bluetooth_device_tap_t);
if (bluetooth_data) {
tap_device->interface_id = bluetooth_data->interface_id;
tap_device->adapter_id = bluetooth_data->adapter_id;
@@ -4389,7 +4541,7 @@ dissect_bthci_evt_command_complete(tvbuff_t *tvb, int offset,
if (status == STATUS_SUCCESS && have_tap_listener(bluetooth_device_tap)) {
bluetooth_device_tap_t *tap_device;
- tap_device = wmem_new(wmem_packet_scope(), bluetooth_device_tap_t);
+ tap_device = wmem_new(pinfo->pool, bluetooth_device_tap_t);
if (bluetooth_data) {
tap_device->interface_id = bluetooth_data->interface_id;
tap_device->adapter_id = bluetooth_data->adapter_id;
@@ -4417,7 +4569,7 @@ dissect_bthci_evt_command_complete(tvbuff_t *tvb, int offset,
{
bluetooth_eir_ad_data_t *eir_data;
- eir_data = wmem_new0(wmem_packet_scope(), bluetooth_eir_ad_data_t);
+ eir_data = wmem_new0(pinfo->pool, bluetooth_eir_ad_data_t);
eir_data->interface_id = bluetooth_data->interface_id;
eir_data->adapter_id = bluetooth_data->adapter_id;
eir_data->bd_addr = NULL;
@@ -4447,7 +4599,7 @@ dissect_bthci_evt_command_complete(tvbuff_t *tvb, int offset,
if (status == STATUS_SUCCESS && have_tap_listener(bluetooth_device_tap)) {
bluetooth_device_tap_t *tap_device;
- tap_device = wmem_new(wmem_packet_scope(), bluetooth_device_tap_t);
+ tap_device = wmem_new(pinfo->pool, bluetooth_device_tap_t);
if (bluetooth_data) {
tap_device->interface_id = bluetooth_data->interface_id;
tap_device->adapter_id = bluetooth_data->adapter_id;
@@ -4561,7 +4713,7 @@ dissect_bthci_evt_command_complete(tvbuff_t *tvb, int offset,
case 0x0c74: /* Set Reserved LT_ADDR */
case 0x0c75: /* Delete Reserved LT_ADDR */
- case 0x0c76: /* Set Connectionless Slave Broadcast Data */
+ case 0x0c76: /* Set Connectionless Peripheral Broadcast Data */
proto_tree_add_item(tree, hf_bthci_evt_status, tvb, offset, 1, ENC_LITTLE_ENDIAN);
status = tvb_get_guint8(tvb, offset);
send_hci_summary_status_tap(status, pinfo, bluetooth_data);
@@ -4623,7 +4775,7 @@ dissect_bthci_evt_command_complete(tvbuff_t *tvb, int offset,
hci_version = tvb_get_guint8(tvb, offset - 8);
lmp_version = tvb_get_guint8(tvb, offset - 5);
- tap_device = wmem_new(wmem_packet_scope(), bluetooth_device_tap_t);
+ tap_device = wmem_new(pinfo->pool, bluetooth_device_tap_t);
tap_device->type = BLUETOOTH_DEVICE_LOCAL_VERSION;
tap_device->interface_id = interface_id;
tap_device->adapter_id = adapter_id;
@@ -4747,7 +4899,7 @@ dissect_bthci_evt_command_complete(tvbuff_t *tvb, int offset,
if (status == STATUS_SUCCESS && have_tap_listener(bluetooth_device_tap)) {
bluetooth_device_tap_t *tap_device;
- tap_device = wmem_new(wmem_packet_scope(), bluetooth_device_tap_t);
+ tap_device = wmem_new(pinfo->pool, bluetooth_device_tap_t);
if (bluetooth_data) {
tap_device->interface_id = bluetooth_data->interface_id;
tap_device->adapter_id = bluetooth_data->adapter_id;
@@ -5076,7 +5228,7 @@ dissect_bthci_evt_command_complete(tvbuff_t *tvb, int offset,
if (status == STATUS_SUCCESS && have_tap_listener(bluetooth_device_tap)) {
bluetooth_device_tap_t *tap_device;
- tap_device = wmem_new(wmem_packet_scope(), bluetooth_device_tap_t);
+ tap_device = wmem_new(pinfo->pool, bluetooth_device_tap_t);
if (bluetooth_data) {
tap_device->interface_id = bluetooth_data->interface_id;
tap_device->adapter_id = bluetooth_data->adapter_id;
@@ -5132,12 +5284,12 @@ dissect_bthci_evt_command_complete(tvbuff_t *tvb, int offset,
break;
}
- case 0x200f: /* LE Read White List Size */
+ case 0x200f: /* LE Read Filter Accept List Size */
{
proto_tree_add_item(tree, hf_bthci_evt_status, tvb, offset, 1, ENC_LITTLE_ENDIAN);
send_hci_summary_status_tap(tvb_get_guint8(tvb, offset), pinfo, bluetooth_data);
offset += 1;
- proto_tree_add_item(tree, hf_bthci_evt_white_list_size, tvb, offset, 1, ENC_LITTLE_ENDIAN);
+ proto_tree_add_item(tree, hf_bthci_evt_filter_accept_list_size, tvb, offset, 1, ENC_LITTLE_ENDIAN);
offset += 1;
break;
}
@@ -5253,7 +5405,8 @@ dissect_bthci_evt_command_complete(tvbuff_t *tvb, int offset,
break;
}
- case 0x2036: /* LE Set Extended Advertising Parameters */
+ case 0x2036: /* LE Set Extended Advertising Parameters [v1] */
+ case 0x207F: /* LE Set Extended Advertising Parameters [v2] */
{
proto_tree_add_item(tree, hf_bthci_evt_status, tvb, offset, 1, ENC_LITTLE_ENDIAN);
send_hci_summary_status_tap(tvb_get_guint8(tvb, offset), pinfo, bluetooth_data);
@@ -5293,7 +5446,7 @@ dissect_bthci_evt_command_complete(tvbuff_t *tvb, int offset,
break;
}
- case 0x0441: /* Set Connectionless Slave Broadcast */
+ case 0x0441: /* Set Connectionless Peripheral Broadcast */
proto_tree_add_item(tree, hf_bthci_evt_status, tvb, offset, 1, ENC_NA);
send_hci_summary_status_tap(tvb_get_guint8(tvb, offset), pinfo, bluetooth_data);
offset += 1;
@@ -5301,11 +5454,11 @@ dissect_bthci_evt_command_complete(tvbuff_t *tvb, int offset,
proto_tree_add_item(tree, hf_bthci_evt_lt_addr, tvb, offset, 1, ENC_NA);
offset += 1;
- proto_tree_add_item(tree, hf_bthci_evt_connectionless_slave_broadcast_interval, tvb, offset, 2, ENC_LITTLE_ENDIAN);
+ proto_tree_add_item(tree, hf_bthci_evt_connectionless_peripheral_broadcast_interval, tvb, offset, 2, ENC_LITTLE_ENDIAN);
offset += 2;
break;
- case 0x0442: /* Set Connectionless Slave Broadcast Receive */
+ case 0x0442: /* Set Connectionless Peripheral Broadcast Receive */
proto_tree_add_item(tree, hf_bthci_evt_status, tvb, offset, 1, ENC_NA);
send_hci_summary_status_tap(tvb_get_guint8(tvb, offset), pinfo, bluetooth_data);
offset += 1;
@@ -5660,6 +5813,25 @@ dissect_bthci_evt_command_complete(tvbuff_t *tvb, int offset,
offset += 1;
break;
+ case 0x2082: /* LE Set Periodic Advertising Subevent */
+ case 0x2086: /* LE Set Periodic Advertising Parameters */
+ proto_tree_add_item(tree, hf_bthci_evt_status, tvb, offset, 1, ENC_NA);
+ send_hci_summary_status_tap(tvb_get_guint8(tvb, offset), pinfo, bluetooth_data);
+ offset += 1;
+ proto_tree_add_item(tree, hf_bthci_evt_advertising_handle, tvb, offset, 1, ENC_NA);
+ offset += 1;
+ break;
+
+ case 0x2083: /* LE Set Periodic Advertising Response Data */
+ case 0x2084: /* LE Set Periodic Advertising Sync Subevent */
+ proto_tree_add_item(tree, hf_bthci_evt_status, tvb, offset, 1, ENC_NA);
+ send_hci_summary_status_tap(tvb_get_guint8(tvb, offset), pinfo, bluetooth_data);
+ offset += 1;
+ proto_tree_add_item(tree, hf_bthci_evt_sync_handle, tvb, offset, 2, ENC_LITTLE_ENDIAN);
+ offset += 2;
+ break;
+
+
case 0x0401: /* Inquiry */
case 0x0405: /* Create Connection */
case 0x0406: /* Disconnect */
@@ -5670,7 +5842,7 @@ dissect_bthci_evt_command_complete(tvbuff_t *tvb, int offset,
case 0x0411: /* Authentication Requested */
case 0x0413: /* Set Connection Encryption */
case 0x0415: /* Change Connection Link Key */
- case 0x0417: /* Master Link Key */
+ case 0x0417: /* Link Key Selection */
case 0x0419: /* Remote Name Request */
case 0x041B: /* Read Remote Supported Features */
case 0x041C: /* Read Remote Extended Features */
@@ -5708,6 +5880,8 @@ dissect_bthci_evt_command_complete(tvbuff_t *tvb, int offset,
case 0x2019: /* LE Start Encryption */
case 0x2025: /* LE Read Local P-256 Public Key */
case 0x2026: /* LE Generate DHKey [v1] */
+ case 0x2043: /* LE Extended Create Connection [v1] */
+ case 0x2044: /* LE Periodic Advertising Create Sync */
case 0x205E: /* LE Generate DHKey [v2] */
case 0x2064: /* LE Create CIS */
case 0x2066: /* LE Accept CIS Request */
@@ -5718,6 +5892,7 @@ dissect_bthci_evt_command_complete(tvbuff_t *tvb, int offset,
case 0x206D: /* LE Request Peer SCA */
case 0x2077: /* LE Read Remote Transmit Power Level */
case 0x207E: /* LE Subrate Request */
+ case 0x2085: /* LE Extended Create Connection [v2] */
proto_tree_add_expert(tree, pinfo, &ei_event_unexpected_event, tvb, offset, tvb_captured_length_remaining(tvb, offset));
offset += tvb_reported_length_remaining(tvb, offset);
@@ -5738,7 +5913,7 @@ dissect_bthci_evt_command_complete(tvbuff_t *tvb, int offset,
break;
}
- add_opcode(opcode_list, opcode, COMMAND_STATUS_NORMAL);
+ add_opcode(pinfo->pool, opcode_list, opcode, COMMAND_STATUS_NORMAL);
return offset;
}
@@ -5791,7 +5966,7 @@ dissect_bthci_evt_change_conn_link_key_complete(tvbuff_t *tvb, int offset,
}
static int
-dissect_bthci_evt_master_link_key_complete(tvbuff_t *tvb, int offset,
+dissect_bthci_evt_link_key_type_changed(tvbuff_t *tvb, int offset,
packet_info *pinfo, proto_tree *tree, bluetooth_data_t *bluetooth_data)
{
proto_tree_add_item(tree, hf_bthci_evt_status, tvb, offset, 1, ENC_LITTLE_ENDIAN);
@@ -5927,7 +6102,7 @@ dissect_bthci_evt_sync_connection_complete(tvbuff_t *tvb, int offset,
/* chandle session */
chandle_session = (chandle_session_t *) wmem_new(wmem_file_scope(), chandle_session_t);
chandle_session->connect_in_frame = frame_number;
- chandle_session->disconnect_in_frame = max_disconnect_in_frame;
+ chandle_session->disconnect_in_frame = bluetooth_max_disconnect_in_frame;
chandle_session->link_type = BT_LINK_TYPE_SCO;
wmem_tree_insert32_array(bluetooth_data->chandle_sessions, key, chandle_session);
@@ -6145,7 +6320,7 @@ dissect_bthci_evt(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *dat
return 0;
bluetooth_data = (bluetooth_data_t *) data;
- opcode_list = wmem_list_new(wmem_packet_scope());
+ opcode_list = wmem_list_new(pinfo->pool);
ti = proto_tree_add_item(tree, proto_bthci_evt, tvb, offset, -1, ENC_NA);
bthci_evt_tree = proto_item_add_subtree(ti, ett_bthci_evt);
@@ -6182,13 +6357,13 @@ dissect_bthci_evt(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *dat
evt_code = tvb_get_guint8(tvb, offset);
proto_tree_add_item(bthci_evt_tree, hf_bthci_evt_code, tvb, offset, 1, ENC_LITTLE_ENDIAN);
- proto_item_append_text(bthci_evt_tree, " - %s", val_to_str_ext_const(evt_code, &bthci_evt_evt_code_vals_ext, "Unknown 0x%08x"));
+ proto_item_append_text(bthci_evt_tree, " - %s", val_to_str_ext(evt_code, &bthci_evt_evt_code_vals_ext, "Unknown 0x%02x"));
offset += 1;
if (have_tap_listener(bluetooth_hci_summary_tap)) {
bluetooth_hci_summary_tap_t *tap_hci_summary;
- tap_hci_summary = wmem_new(wmem_packet_scope(), bluetooth_hci_summary_tap_t);
+ tap_hci_summary = wmem_new(pinfo->pool, bluetooth_hci_summary_tap_t);
tap_hci_summary->interface_id = bluetooth_data->interface_id;
tap_hci_summary->adapter_id = bluetooth_data->adapter_id;
@@ -6209,14 +6384,14 @@ dissect_bthci_evt(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *dat
col_set_str(pinfo->cinfo, COL_PROTOCOL, "HCI_EVT");
- col_append_str(pinfo->cinfo, COL_INFO, val_to_str_ext_const(evt_code, &bthci_evt_evt_code_vals_ext, "Unknown 0x%08x"));
+ col_append_str(pinfo->cinfo, COL_INFO, val_to_str_ext(evt_code, &bthci_evt_evt_code_vals_ext, "Unknown 0x%02x"));
if (param_length > 0) {
switch(evt_code) {
case 0x01: /* Inquiry Complete */
offset = dissect_bthci_evt_inquire_complete(tvb, offset, pinfo, bthci_evt_tree, bluetooth_data);
- add_opcode(opcode_list, 0x0401, COMMAND_STATUS_NORMAL); /* Inquiry */
- add_opcode(opcode_list, 0x0403, COMMAND_STATUS_NORMAL); /* Periodic Inquiry Mode */
+ add_opcode(pinfo->pool, opcode_list, 0x0401, COMMAND_STATUS_NORMAL); /* Inquiry */
+ add_opcode(pinfo->pool, opcode_list, 0x0403, COMMAND_STATUS_NORMAL); /* Periodic Inquiry Mode */
break;
case 0x02: /* Inquiry result event */
@@ -6225,10 +6400,10 @@ dissect_bthci_evt(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *dat
case 0x03: /* Connection Complete */
offset = dissect_bthci_evt_connect_complete(tvb, offset, pinfo, bthci_evt_tree, bluetooth_data);
- add_opcode(opcode_list, 0x0405, COMMAND_STATUS_NORMAL); /* Create Connection */
- add_opcode(opcode_list, 0x0409, COMMAND_STATUS_NORMAL); /* Accept Connection Request */
- add_opcode(opcode_list, 0x040A, COMMAND_STATUS_NORMAL); /* Reject Connection Request */
- add_opcode(opcode_list, 0x043E, COMMAND_STATUS_NORMAL); /* Enhanced Accept Synchronous Connection Request */
+ add_opcode(pinfo->pool, opcode_list, 0x0405, COMMAND_STATUS_NORMAL); /* Create Connection */
+ add_opcode(pinfo->pool, opcode_list, 0x0409, COMMAND_STATUS_NORMAL); /* Accept Connection Request */
+ add_opcode(pinfo->pool, opcode_list, 0x040A, COMMAND_STATUS_NORMAL); /* Reject Connection Request */
+ add_opcode(pinfo->pool, opcode_list, 0x043E, COMMAND_STATUS_NORMAL); /* Enhanced Accept Synchronous Connection Request */
break;
case 0x04: /* Connection Request */
@@ -6237,41 +6412,41 @@ dissect_bthci_evt(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *dat
case 0x05: /* Disconnection Complete */
offset = dissect_bthci_evt_disconnect_complete(tvb, offset, pinfo, bthci_evt_tree, bluetooth_data);
- add_opcode(opcode_list, 0x0406, COMMAND_STATUS_NORMAL); /* Disconnection Connection */
+ add_opcode(pinfo->pool, opcode_list, 0x0406, COMMAND_STATUS_NORMAL); /* Disconnection Connection */
break;
case 0x06: /* Authentication Complete */
offset = dissect_bthci_evt_auth_complete(tvb, offset, pinfo, bthci_evt_tree, bluetooth_data);
- add_opcode(opcode_list, 0x0411, COMMAND_STATUS_NORMAL); /* Authentication Requested */
+ add_opcode(pinfo->pool, opcode_list, 0x0411, COMMAND_STATUS_NORMAL); /* Authentication Requested */
break;
case 0x07: /* Remote Name Request Complete */
offset = dissect_bthci_evt_remote_name_req_complete(tvb, offset, pinfo, bthci_evt_tree, bluetooth_data);
- add_opcode(opcode_list, 0x0419, COMMAND_STATUS_NORMAL); /* Remote Name Request */
+ add_opcode(pinfo->pool, opcode_list, 0x0419, COMMAND_STATUS_NORMAL); /* Remote Name Request */
break;
case 0x08: /* Encryption Change */
offset = dissect_bthci_evt_encryption_change(tvb, offset, pinfo, bthci_evt_tree, bluetooth_data);
- add_opcode(opcode_list, 0x0413, COMMAND_STATUS_NORMAL); /* Encryption Requested */
- add_opcode(opcode_list, 0x2019, COMMAND_STATUS_NORMAL); /* LE Start Encryption */
+ add_opcode(pinfo->pool, opcode_list, 0x0413, COMMAND_STATUS_NORMAL); /* Encryption Requested */
+ add_opcode(pinfo->pool, opcode_list, 0x2019, COMMAND_STATUS_NORMAL); /* LE Start Encryption */
break;
case 0x09: /* Change Connection Link Key Complete */
offset = dissect_bthci_evt_change_conn_link_key_complete(tvb, offset, pinfo, bthci_evt_tree, bluetooth_data);
break;
- case 0x0a: /* Master Link Key Complete */
- offset = dissect_bthci_evt_master_link_key_complete(tvb, offset, pinfo, bthci_evt_tree, bluetooth_data);
+ case 0x0a: /* Link Key Type Changed */
+ offset = dissect_bthci_evt_link_key_type_changed(tvb, offset, pinfo, bthci_evt_tree, bluetooth_data);
break;
case 0x0b: /* Read Remote Support Features Complete */
offset = dissect_bthci_evt_read_remote_support_features_complete(tvb, offset, pinfo, bthci_evt_tree, bluetooth_data);
- add_opcode(opcode_list, 0x41B, COMMAND_STATUS_NORMAL); /* Read Remote Supported Features */
+ add_opcode(pinfo->pool, opcode_list, 0x41B, COMMAND_STATUS_NORMAL); /* Read Remote Supported Features */
break;
case 0x0c: /* Read Remote Version Information Complete */
offset = dissect_bthci_evt_read_remote_version_information_complete(tvb, offset, pinfo, bluetooth_data, bthci_evt_tree);
- add_opcode(opcode_list, 0x41D, COMMAND_STATUS_NORMAL); /* Read Remote Version Information */
+ add_opcode(pinfo->pool, opcode_list, 0x41D, COMMAND_STATUS_NORMAL); /* Read Remote Version Information */
break;
case 0x0d: /* QoS Setup Complete */
@@ -6296,7 +6471,7 @@ dissect_bthci_evt(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *dat
case 0x12: /* Role Change */
offset = dissect_bthci_evt_role_change(tvb, offset, pinfo, bthci_evt_tree, bluetooth_data);
- add_opcode(opcode_list, 0x080B, COMMAND_STATUS_NORMAL); /* Switch Role */
+ add_opcode(pinfo->pool, opcode_list, 0x080B, COMMAND_STATUS_NORMAL); /* Switch Role */
break;
case 0x13: /* Number Of Completed Packets */
@@ -6305,8 +6480,8 @@ dissect_bthci_evt(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *dat
case 0x14: /* Mode Change */
offset = dissect_bthci_evt_mode_change(tvb, offset, pinfo, bthci_evt_tree, bluetooth_data);
- add_opcode(opcode_list, 0x0803, COMMAND_STATUS_NORMAL); /* Sniff Mode */
- add_opcode(opcode_list, 0x0804, COMMAND_STATUS_NORMAL); /* Exit Sniff Mode */
+ add_opcode(pinfo->pool, opcode_list, 0x0803, COMMAND_STATUS_NORMAL); /* Sniff Mode */
+ add_opcode(pinfo->pool, opcode_list, 0x0804, COMMAND_STATUS_NORMAL); /* Exit Sniff Mode */
break;
case 0x15: /* Return Link Keys */
@@ -6339,12 +6514,12 @@ dissect_bthci_evt(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *dat
case 0x1c: /* Read Clock Offset Complete */
offset = dissect_bthci_evt_read_clock_offset_complete(tvb, offset, pinfo, bthci_evt_tree, bluetooth_data);
- add_opcode(opcode_list, 0x041F, COMMAND_STATUS_NORMAL); /* Read Clock Offset */
+ add_opcode(pinfo->pool, opcode_list, 0x041F, COMMAND_STATUS_NORMAL); /* Read Clock Offset */
break;
case 0x1d: /* Connection Packet Type Changed */
offset = dissect_bthci_evt_conn_packet_type_changed(tvb, offset, pinfo, bthci_evt_tree, bluetooth_data);
- add_opcode(opcode_list, 0x040F, COMMAND_STATUS_NORMAL); /* Change Connection Packet Type */
+ add_opcode(pinfo->pool, opcode_list, 0x040F, COMMAND_STATUS_NORMAL); /* Change Connection Packet Type */
break;
case 0x1e: /* QoS Violation */
@@ -6369,20 +6544,20 @@ dissect_bthci_evt(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *dat
case 0x23: /* Read Remote Extended Features Complete */
offset = dissect_bthci_evt_read_remote_ext_features_complete(tvb, offset, pinfo, bthci_evt_tree, bluetooth_data);
- add_opcode(opcode_list, 0x41C, COMMAND_STATUS_NORMAL); /* Read Remote Supported Features */
+ add_opcode(pinfo->pool, opcode_list, 0x41C, COMMAND_STATUS_NORMAL); /* Read Remote Supported Features */
break;
case 0x2c: /* Synchronous Connection Complete */
offset = dissect_bthci_evt_sync_connection_complete(tvb, offset, pinfo, bthci_evt_tree, bluetooth_data);
- add_opcode(opcode_list, 0x0429, COMMAND_STATUS_NORMAL); /* Accept Synchronous Connection Request */
- add_opcode(opcode_list, 0x0428, COMMAND_STATUS_NORMAL); /* Setup Synchronous Connection */
- add_opcode(opcode_list, 0x043D, COMMAND_STATUS_NORMAL); /* Enhanced Setup Synchronous Connection */
- add_opcode(opcode_list, 0x043E, COMMAND_STATUS_NORMAL); /* Enhanced Accept Synchronous Connection Request */
+ add_opcode(pinfo->pool, opcode_list, 0x0429, COMMAND_STATUS_NORMAL); /* Accept Synchronous Connection Request */
+ add_opcode(pinfo->pool, opcode_list, 0x0428, COMMAND_STATUS_NORMAL); /* Setup Synchronous Connection */
+ add_opcode(pinfo->pool, opcode_list, 0x043D, COMMAND_STATUS_NORMAL); /* Enhanced Setup Synchronous Connection */
+ add_opcode(pinfo->pool, opcode_list, 0x043E, COMMAND_STATUS_NORMAL); /* Enhanced Accept Synchronous Connection Request */
break;
case 0x2d: /* Synchronous Connection Changed */
offset = dissect_bthci_evt_sync_connection_changed(tvb, offset, pinfo, bthci_evt_tree, bluetooth_data);
- add_opcode(opcode_list, 0x043D, COMMAND_STATUS_NORMAL); /* Enhanced Setup Synchronous Connection */
+ add_opcode(pinfo->pool, opcode_list, 0x043D, COMMAND_STATUS_NORMAL); /* Enhanced Setup Synchronous Connection */
break;
case 0x2e: /* Sniff Subrating */
@@ -6396,7 +6571,7 @@ dissect_bthci_evt(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *dat
previous_offset = offset;
offset = dissect_bthci_evt_inquire_result_with_rssi(tvb, offset, pinfo, bthci_evt_tree, bluetooth_data, bd_addr);
- eir_data = wmem_new0(wmem_packet_scope(), bluetooth_eir_ad_data_t);
+ eir_data = wmem_new0(pinfo->pool, bluetooth_eir_ad_data_t);
eir_data->interface_id = bluetooth_data->interface_id;
eir_data->adapter_id = bluetooth_data->adapter_id;
eir_data->bd_addr = bd_addr;
@@ -6411,7 +6586,7 @@ dissect_bthci_evt(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *dat
case 0x30: /* Encryption Key Refresh Complete */
offset = dissect_bthci_evt_encryption_key_refresh_complete(tvb, offset, pinfo, bthci_evt_tree, bluetooth_data);
- add_opcode(opcode_list, 0x2019, COMMAND_STATUS_NORMAL); /* LE Start Encryption */
+ add_opcode(pinfo->pool, opcode_list, 0x2019, COMMAND_STATUS_NORMAL); /* LE Start Encryption */
break;
case 0x31: /* IO Capability Request */
@@ -6497,12 +6672,12 @@ dissect_bthci_evt(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *dat
case 0x49: /* AMP Start Test */
offset = dissect_bthci_evt_amp_start_stop_test(tvb, offset, pinfo, bthci_evt_tree, bluetooth_data);
- add_opcode(opcode_list, 0x1809, COMMAND_STATUS_NORMAL); /* AMP Test */
+ add_opcode(pinfo->pool, opcode_list, 0x1809, COMMAND_STATUS_NORMAL); /* AMP Test */
break;
case 0x4a: /* AMP Test End */
offset = dissect_bthci_evt_amp_start_stop_test(tvb, offset, pinfo, bthci_evt_tree, bluetooth_data);
- add_opcode(opcode_list, 0x1808, COMMAND_STATUS_NORMAL); /* AMP Test End */
+ add_opcode(pinfo->pool, opcode_list, 0x1808, COMMAND_STATUS_NORMAL); /* AMP Test End */
break;
case 0x4b: /* AMP Receiver Test */
@@ -6556,14 +6731,14 @@ dissect_bthci_evt(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *dat
proto_tree_add_item(tree, hf_bthci_evt_next_broadcast_instant, tvb, offset, 4, ENC_LITTLE_ENDIAN);
offset += 4;
- proto_tree_add_item(tree, hf_bthci_evt_connectionless_slave_broadcast_interval, tvb, offset, 2, ENC_LITTLE_ENDIAN);
+ proto_tree_add_item(tree, hf_bthci_evt_connectionless_peripheral_broadcast_interval, tvb, offset, 2, ENC_LITTLE_ENDIAN);
offset += 2;
proto_tree_add_item(tree, hf_bthci_evt_service_data, tvb, offset, 1, ENC_LITTLE_ENDIAN);
offset += 1;
break;
- case 0x51: /* Connectionless Slave Broadcast Receive */
+ case 0x51: /* Connectionless Peripheral Broadcast Receive */
{
guint8 length;
@@ -6593,7 +6768,7 @@ dissect_bthci_evt(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *dat
}
break;
- case 0x52: /* Connectionless Slave Broadcast Timeout */
+ case 0x52: /* Connectionless Peripheral Broadcast Timeout */
offset = dissect_bd_addr(hf_bthci_evt_bd_addr, pinfo, tree, tvb, offset, FALSE, bluetooth_data->interface_id, bluetooth_data->adapter_id, NULL);
proto_tree_add_item(tree, hf_bthci_evt_lt_addr, tvb, offset, 1, ENC_LITTLE_ENDIAN);
@@ -6608,10 +6783,10 @@ dissect_bthci_evt(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *dat
offset = dissect_bd_addr(hf_bthci_evt_bd_addr, pinfo, tree, tvb, offset, FALSE, bluetooth_data->interface_id, bluetooth_data->adapter_id, NULL);
break;
- case 0x54: /* Slave Page Response Timeout */
+ case 0x54: /* Peripheral Page Response Timeout */
/* NOTE: no parameters */
break;
- case 0x55: /* Connectionless Slave Broadcast Channel Map Change */
+ case 0x55: /* Connectionless Peripheral Broadcast Channel Map Change */
proto_tree_add_item(tree, hf_bthci_evt_afh_channel_map, tvb, offset, 10, ENC_NA);
offset += 10;
@@ -6710,16 +6885,16 @@ dissect_bthci_evt(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *dat
if (bthci_cmd_data && bthci_cmd_data->command_in_frame < frame_number && (
(opcode_list_data->command_status == COMMAND_STATUS_NORMAL &&
(bthci_cmd_data->response_in_frame == frame_number ||
- bthci_cmd_data->response_in_frame == max_disconnect_in_frame)) ||
+ bthci_cmd_data->response_in_frame == bluetooth_max_disconnect_in_frame)) ||
(opcode_list_data->command_status == COMMAND_STATUS_PENDING &&
(bthci_cmd_data->pending_in_frame == frame_number ||
- ((bthci_cmd_data->response_in_frame == max_disconnect_in_frame ||
+ ((bthci_cmd_data->response_in_frame == bluetooth_max_disconnect_in_frame ||
bthci_cmd_data->response_in_frame > frame_number) &&
- bthci_cmd_data->pending_in_frame == max_disconnect_in_frame))) ||
+ bthci_cmd_data->pending_in_frame == bluetooth_max_disconnect_in_frame))) ||
(opcode_list_data->command_status == COMMAND_STATUS_RESULT &&
(bthci_cmd_data->response_in_frame == frame_number ||
- ((bthci_cmd_data->response_in_frame == max_disconnect_in_frame &&
- bthci_cmd_data->pending_in_frame == max_disconnect_in_frame))))
+ ((bthci_cmd_data->response_in_frame == bluetooth_max_disconnect_in_frame &&
+ bthci_cmd_data->pending_in_frame == bluetooth_max_disconnect_in_frame))))
)) {
lastest_bthci_cmd_data = bthci_cmd_data;
if (((opcode_list_data->command_status == COMMAND_STATUS_RESULT ||
@@ -6761,7 +6936,7 @@ dissect_bthci_evt(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *dat
if (status == STATUS_SUCCESS && have_tap_listener(bluetooth_device_tap)) switch(opcode) {
case 0x0c03: /* Reset */
- tap_device = wmem_new(wmem_packet_scope(), bluetooth_device_tap_t);
+ tap_device = wmem_new(pinfo->pool, bluetooth_device_tap_t);
if (bluetooth_data) {
tap_device->interface_id = bluetooth_data->interface_id;
tap_device->adapter_id = bluetooth_data->adapter_id;
@@ -6777,7 +6952,7 @@ dissect_bthci_evt(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *dat
break;
case 0x0c13: /* Change Local Name */
- tap_device = wmem_new(wmem_packet_scope(), bluetooth_device_tap_t);
+ tap_device = wmem_new(pinfo->pool, bluetooth_device_tap_t);
if (bluetooth_data) {
tap_device->interface_id = bluetooth_data->interface_id;
tap_device->adapter_id = bluetooth_data->adapter_id;
@@ -6820,7 +6995,7 @@ dissect_bthci_evt(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *dat
break;
case 0x0c18: /* Write Page Timeout */
- tap_device = wmem_new(wmem_packet_scope(), bluetooth_device_tap_t);
+ tap_device = wmem_new(pinfo->pool, bluetooth_device_tap_t);
if (bluetooth_data) {
tap_device->interface_id = bluetooth_data->interface_id;
tap_device->adapter_id = bluetooth_data->adapter_id;
@@ -6837,7 +7012,7 @@ dissect_bthci_evt(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *dat
break;
case 0x0c1a: /* Write Scan Enable */
- tap_device = wmem_new(wmem_packet_scope(), bluetooth_device_tap_t);
+ tap_device = wmem_new(pinfo->pool, bluetooth_device_tap_t);
if (bluetooth_data) {
tap_device->interface_id = bluetooth_data->interface_id;
tap_device->adapter_id = bluetooth_data->adapter_id;
@@ -6854,7 +7029,7 @@ dissect_bthci_evt(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *dat
break;
case 0x0c20: /* Write Authentication Enable */
- tap_device = wmem_new(wmem_packet_scope(), bluetooth_device_tap_t);
+ tap_device = wmem_new(pinfo->pool, bluetooth_device_tap_t);
if (bluetooth_data) {
tap_device->interface_id = bluetooth_data->interface_id;
tap_device->adapter_id = bluetooth_data->adapter_id;
@@ -6871,7 +7046,7 @@ dissect_bthci_evt(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *dat
break;
case 0x0c22: /* Write Encryption Mode */
- tap_device = wmem_new(wmem_packet_scope(), bluetooth_device_tap_t);
+ tap_device = wmem_new(pinfo->pool, bluetooth_device_tap_t);
if (bluetooth_data) {
tap_device->interface_id = bluetooth_data->interface_id;
tap_device->adapter_id = bluetooth_data->adapter_id;
@@ -6888,7 +7063,7 @@ dissect_bthci_evt(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *dat
break;
case 0x0c24: /* Write Class Of Device */
- tap_device = wmem_new(wmem_packet_scope(), bluetooth_device_tap_t);
+ tap_device = wmem_new(pinfo->pool, bluetooth_device_tap_t);
if (bluetooth_data) {
tap_device->interface_id = bluetooth_data->interface_id;
tap_device->adapter_id = bluetooth_data->adapter_id;
@@ -6905,7 +7080,7 @@ dissect_bthci_evt(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *dat
break;
case 0x0c26: /* Write Voice Setting */
- tap_device = wmem_new(wmem_packet_scope(), bluetooth_device_tap_t);
+ tap_device = wmem_new(pinfo->pool, bluetooth_device_tap_t);
if (bluetooth_data) {
tap_device->interface_id = bluetooth_data->interface_id;
tap_device->adapter_id = bluetooth_data->adapter_id;
@@ -6922,7 +7097,7 @@ dissect_bthci_evt(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *dat
break;
case 0x0c33: /* Host Buffer Size */
- tap_device = wmem_new(wmem_packet_scope(), bluetooth_device_tap_t);
+ tap_device = wmem_new(pinfo->pool, bluetooth_device_tap_t);
if (bluetooth_data) {
tap_device->interface_id = bluetooth_data->interface_id;
tap_device->adapter_id = bluetooth_data->adapter_id;
@@ -6942,7 +7117,7 @@ dissect_bthci_evt(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *dat
break;
case 0x0c45: /* Write Inquiry Mode */
- tap_device = wmem_new(wmem_packet_scope(), bluetooth_device_tap_t);
+ tap_device = wmem_new(pinfo->pool, bluetooth_device_tap_t);
if (bluetooth_data) {
tap_device->interface_id = bluetooth_data->interface_id;
tap_device->adapter_id = bluetooth_data->adapter_id;
@@ -6959,7 +7134,7 @@ dissect_bthci_evt(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *dat
break;
case 0x0c56: /* Write Simple Pairing */
- tap_device = wmem_new(wmem_packet_scope(), bluetooth_device_tap_t);
+ tap_device = wmem_new(pinfo->pool, bluetooth_device_tap_t);
if (bluetooth_data) {
tap_device->interface_id = bluetooth_data->interface_id;
tap_device->adapter_id = bluetooth_data->adapter_id;
@@ -6978,20 +7153,20 @@ dissect_bthci_evt(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *dat
}
if (!pinfo->fd->visited && opcode_list_data->command_status == COMMAND_STATUS_PENDING &&
- lastest_bthci_cmd_data->pending_in_frame == max_disconnect_in_frame) {
+ lastest_bthci_cmd_data->pending_in_frame == bluetooth_max_disconnect_in_frame) {
lastest_bthci_cmd_data->pending_in_frame = frame_number;
lastest_bthci_cmd_data->pending_abs_ts = pinfo->abs_ts;
}
if (!pinfo->fd->visited && opcode_list_data->command_status == COMMAND_STATUS_NORMAL &&
- lastest_bthci_cmd_data->response_in_frame == max_disconnect_in_frame) {
+ lastest_bthci_cmd_data->response_in_frame == bluetooth_max_disconnect_in_frame) {
lastest_bthci_cmd_data->response_in_frame = frame_number;
lastest_bthci_cmd_data->response_abs_ts = pinfo->abs_ts;
}
if (!pinfo->fd->visited && opcode_list_data->command_status == COMMAND_STATUS_RESULT &&
- lastest_bthci_cmd_data->response_in_frame == max_disconnect_in_frame &&
- lastest_bthci_cmd_data->pending_in_frame == max_disconnect_in_frame) {
+ lastest_bthci_cmd_data->response_in_frame == bluetooth_max_disconnect_in_frame &&
+ lastest_bthci_cmd_data->pending_in_frame == bluetooth_max_disconnect_in_frame) {
lastest_bthci_cmd_data->response_in_frame = frame_number;
lastest_bthci_cmd_data->response_abs_ts = pinfo->abs_ts;
}
@@ -7000,7 +7175,7 @@ dissect_bthci_evt(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *dat
sub_item = proto_tree_add_uint(bthci_evt_tree, hf_command_in_frame, tvb, 0, 0, lastest_bthci_cmd_data->command_in_frame);
proto_item_set_generated(sub_item);
- if (lastest_bthci_cmd_data->response_in_frame < max_disconnect_in_frame) {
+ if (lastest_bthci_cmd_data->response_in_frame < bluetooth_max_disconnect_in_frame) {
sub_item = proto_tree_add_uint(bthci_evt_tree, hf_response_in_frame, tvb, 0, 0, lastest_bthci_cmd_data->response_in_frame);
proto_item_set_generated(sub_item);
}
@@ -7009,7 +7184,7 @@ dissect_bthci_evt(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *dat
sub_item = proto_tree_add_double(bthci_evt_tree, hf_command_pending_time_delta, tvb, 0, 0, nstime_to_msec(&delta));
proto_item_set_generated(sub_item);
- if (lastest_bthci_cmd_data->response_in_frame < max_disconnect_in_frame) {
+ if (lastest_bthci_cmd_data->response_in_frame < bluetooth_max_disconnect_in_frame) {
nstime_delta(&delta, &lastest_bthci_cmd_data->response_abs_ts, &lastest_bthci_cmd_data->pending_abs_ts);
sub_item = proto_tree_add_double(bthci_evt_tree, hf_pending_response_time_delta, tvb, 0, 0, nstime_to_msec(&delta));
proto_item_set_generated(sub_item);
@@ -7020,7 +7195,7 @@ dissect_bthci_evt(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *dat
sub_item = proto_tree_add_uint(bthci_evt_tree, hf_command_in_frame, tvb, 0, 0, lastest_bthci_cmd_data->command_in_frame);
proto_item_set_generated(sub_item);
- if (lastest_bthci_cmd_data->pending_in_frame < max_disconnect_in_frame) {
+ if (lastest_bthci_cmd_data->pending_in_frame < bluetooth_max_disconnect_in_frame) {
sub_item = proto_tree_add_uint(bthci_evt_tree, hf_pending_in_frame, tvb, 0, 0, lastest_bthci_cmd_data->pending_in_frame);
proto_item_set_generated(sub_item);
@@ -7279,7 +7454,7 @@ proto_register_bthci_evt(void)
{ &hf_bthci_evt_clock_offset,
{ "Clock Offset", "bthci_evt.clock_offset",
FT_UINT16, BASE_HEX, NULL, 0x7FFF,
- "Bit 2-16 of the Clock Offset between CLKmaster-CLKslave", HFILL }
+ "Bit 2-16 of the Clock Offset between CLKNPeripheral-CLK", HFILL }
},
{ &hf_bthci_evt_page_scan_mode,
{ "Page Scan Mode", "bthci_evt.page_scan_mode",
@@ -7576,13 +7751,13 @@ proto_register_bthci_evt(void)
FT_BOOLEAN, 8, NULL, 0x04,
NULL, HFILL }
},
- { &hf_lmp_feature_afh_capable_slave,
- { "AFH Capable Slave", "bthci_evt.lmp_features.afh_capable_slave",
+ { &hf_lmp_feature_afh_capable_peripheral,
+ { "AFH Capable Peripheral", "bthci_evt.lmp_features.afh_capable_peripheral",
FT_BOOLEAN, 8, NULL, 0x08,
NULL, HFILL }
},
- { &hf_lmp_feature_afh_classification_slave,
- { "AFH Classification Slave", "bthci_evt.lmp_features.afh_classification_slave",
+ { &hf_lmp_feature_afh_classification_peripheral,
+ { "AFH Classification Peripheral", "bthci_evt.lmp_features.afh_classification_peripheral",
FT_BOOLEAN, 8, NULL, 0x10,
NULL, HFILL }
},
@@ -7616,13 +7791,13 @@ proto_register_bthci_evt(void)
FT_BOOLEAN, 8, NULL, 0x04,
NULL, HFILL }
},
- { &hf_lmp_feature_afh_capable_master,
- { "AFH Capable Master", "bthci_evt.lmp_features.afh_capable_master",
+ { &hf_lmp_feature_afh_capable_central,
+ { "AFH Capable Central", "bthci_evt.lmp_features.afh_capable_central",
FT_BOOLEAN, 8, NULL, 0x08,
NULL, HFILL }
},
- { &hf_lmp_feature_afh_classification_master,
- { "AFH Classification Master", "bthci_evt.lmp_features.afh_classification_master",
+ { &hf_lmp_feature_afh_classification_central,
+ { "AFH Classification Central", "bthci_evt.lmp_features.afh_classification_central",
FT_BOOLEAN, 8, NULL, 0x10,
NULL, HFILL }
},
@@ -7731,13 +7906,13 @@ proto_register_bthci_evt(void)
FT_UINT8, BASE_HEX, NULL, 0xF0,
NULL, HFILL}
},
- { &hf_lmp_feature_csb_master_operation,
- {"Connectionless Slave Broadcast Master Operation", "bthci_evt.lmp_features.csb_master_operation",
+ { &hf_lmp_feature_csb_central_operation,
+ {"Connectionless Peripheral Broadcast Central Operation", "bthci_evt.lmp_features.csb_central_operation",
FT_BOOLEAN, 8, NULL, 0x01,
NULL, HFILL}
},
- { &hf_lmp_feature_csb_slave_operation,
- {"Connectionless Slave Broadcast Slave Operation", "bthci_evt.lmp_features.csb_slave_operation",
+ { &hf_lmp_feature_csb_peripheral_operation,
+ {"Connectionless Peripheral Broadcast Peripheral Operation", "bthci_evt.lmp_features.csb_peripheral_operation",
FT_BOOLEAN, 8, NULL, 0x02,
NULL, HFILL}
},
@@ -7829,10 +8004,10 @@ proto_register_bthci_evt(void)
{ &hf_bthci_evt_num_responses,
{ "Number of responses", "bthci_evt.num_responses",
FT_UINT8, BASE_DEC, NULL, 0x0,
- "Number of Responses from Inquiry", HFILL }
+ NULL, HFILL }
},
{ &hf_bthci_evt_link_policy_setting_switch,
- { "Enable Master Slave Switch", "bthci_evt.link_policy_switch",
+ { "Enable Role Switch", "bthci_evt.link_policy_switch",
FT_BOOLEAN, 16, NULL, 0x0001,
NULL, HFILL }
},
@@ -8028,7 +8203,7 @@ proto_register_bthci_evt(void)
},
{ &hf_bthci_evt_fec_required,
{"FEC Required", "bthci_evt.fec_required",
- FT_BOOLEAN, 8, NULL, 0x0,
+ FT_BOOLEAN, BASE_NONE, NULL, 0x0,
NULL, HFILL}
},
{ &hf_bthci_evt_err_data_reporting,
@@ -8209,7 +8384,7 @@ proto_register_bthci_evt(void)
},
{ &hf_bthci_evt_location_domain_aware,
{ "Location Domain Aware", "bthci_evt.location_domain_aware",
- FT_BOOLEAN, 8, NULL, 0x0,
+ FT_BOOLEAN, BASE_NONE, NULL, 0x0,
NULL, HFILL }
},
{ &hf_bthci_evt_location_domain,
@@ -8374,7 +8549,7 @@ proto_register_bthci_evt(void)
},
{ &hf_bthci_evt_short_range_mode_state,
{ "Short Range Mode State", "bthci_evt.short_range_mode_state",
- FT_BOOLEAN, 8, NULL, 0x0,
+ FT_BOOLEAN, BASE_NONE, NULL, 0x0,
NULL, HFILL }
},
{ &hf_bthci_evt_transmit_power_level_gfsk,
@@ -8399,12 +8574,12 @@ proto_register_bthci_evt(void)
},
{ &hf_bthci_evt_le_supported_host,
{ "LE Supported Host", "bthci_evt.le_supported_host",
- FT_BOOLEAN, 8, NULL, 0x0,
+ FT_BOOLEAN, BASE_NONE, NULL, 0x0,
NULL, HFILL }
},
{ &hf_bthci_evt_le_simultaneous_host,
{ "Simultaneous LE Host", "bthci_evt.le_simultaneous_host",
- FT_BOOLEAN, 8, NULL, 0x0,
+ FT_BOOLEAN, BASE_NONE, NULL, 0x0,
"Support for both LE and BR/EDR to same device", HFILL }
},
{ &hf_bthci_evt_le_acl_data_pkt_len,
@@ -8427,10 +8602,10 @@ proto_register_bthci_evt(void)
FT_UINT8, BASE_DEC, NULL, 0x0,
NULL, HFILL }
},
- { &hf_bthci_evt_white_list_size,
- { "White List Size", "bthci_evt.le_white_list_size",
+ { &hf_bthci_evt_filter_accept_list_size,
+ { "Filter Accept List Size", "bthci_evt.le_filter_accept_list_size",
FT_UINT8, BASE_DEC, NULL, 0x0,
- "Max. total whitelist entries storable in controller", HFILL }
+ "Max. total filter accept list entries storable in controller", HFILL }
},
{ &hf_bthci_evt_le_channel_map,
{ "Channel Map", "bthci_evt.le_channel_map",
@@ -8483,7 +8658,7 @@ proto_register_bthci_evt(void)
NULL, HFILL }
},
{ &hf_bthci_evt_le_max_interval,
- { "Min Connection Interval", "bthci_evt.le_max_interval",
+ { "Max Connection Interval", "bthci_evt.le_max_interval",
FT_UINT16, BASE_DEC, NULL, 0x0,
NULL, HFILL }
},
@@ -8522,8 +8697,8 @@ proto_register_bthci_evt(void)
FT_UINT16, BASE_HEX, NULL, 0x0,
NULL, HFILL }
},
- { &hf_bthci_evt_le_master_clock_accuracy,
- { "Master Clock Accuracy", "bthci_evt.le_master_clock_accuracy",
+ { &hf_bthci_evt_le_central_clock_accuracy,
+ { "Central Clock Accuracy", "bthci_evt.le_central_clock_accuracy",
FT_UINT8, BASE_HEX|BASE_EXT_STRING, &bthci_cmd_clock_accuray_vals_ext, 0x0,
NULL, HFILL }
},
@@ -8578,12 +8753,12 @@ proto_register_bthci_evt(void)
NULL, HFILL }
},
{ &hf_bthci_evt_le_states_06,
- { "Initiating State. Connection State in Master Role", "bthci_evt.le_states_06",
+ { "Initiating State. Connection State in Central Role", "bthci_evt.le_states_06",
FT_BOOLEAN, 8, NULL, 0x40,
NULL, HFILL }
},
{ &hf_bthci_evt_le_states_07,
- { "Connection State in Slave Role", "bthci_evt.le_states_07",
+ { "Connection State in Peripheral Role", "bthci_evt.le_states_07",
FT_BOOLEAN, 8, NULL, 0x80,
NULL, HFILL }
},
@@ -8638,22 +8813,22 @@ proto_register_bthci_evt(void)
NULL, HFILL }
},
{ &hf_bthci_evt_le_states_22,
- { "Non-connectable Advertising State and Master Role combination", "bthci_evt.le_states_22",
+ { "Non-connectable Advertising State and Central Role combination", "bthci_evt.le_states_22",
FT_BOOLEAN, 8, NULL, 0x04,
NULL, HFILL }
},
{ &hf_bthci_evt_le_states_23,
- { "Scannable Advertising State and Master Role combination", "bthci_evt.le_states_23",
+ { "Scannable Advertising State and Central Role combination", "bthci_evt.le_states_23",
FT_BOOLEAN, 8, NULL, 0x08,
NULL, HFILL }
},
{ &hf_bthci_evt_le_states_24,
- { "Non-connectable Advertising State and Slave Role combination", "bthci_evt.le_states_24",
+ { "Non-connectable Advertising State and Peripheral Role combination", "bthci_evt.le_states_24",
FT_BOOLEAN, 8, NULL, 0x10,
NULL, HFILL }
},
{ &hf_bthci_evt_le_states_25,
- { "Scannable Advertising State and Slave Role combination", "bthci_evt.le_states_25",
+ { "Scannable Advertising State and Peripheral Role combination", "bthci_evt.le_states_25",
FT_BOOLEAN, 8, NULL, 0x20,
NULL, HFILL }
},
@@ -8668,27 +8843,27 @@ proto_register_bthci_evt(void)
NULL, HFILL }
},
{ &hf_bthci_evt_le_states_30,
- { "Passive Scanning State and Master Role combination", "bthci_evt.le_states_30",
+ { "Passive Scanning State and Central Role combination", "bthci_evt.le_states_30",
FT_BOOLEAN, 8, NULL, 0x01,
NULL, HFILL }
},
{ &hf_bthci_evt_le_states_31,
- { "Active Scanning State and Master Role combination", "bthci_evt.le_states_31",
+ { "Active Scanning State and Central Role combination", "bthci_evt.le_states_31",
FT_BOOLEAN, 8, NULL, 0x02,
NULL, HFILL }
},
{ &hf_bthci_evt_le_states_32,
- { "Passive Scanning state and Slave Role combination", "bthci_evt.le_states_32",
+ { "Passive Scanning state and Peripheral Role combination", "bthci_evt.le_states_32",
FT_BOOLEAN, 8, NULL, 0x04,
NULL, HFILL }
},
{ &hf_bthci_evt_le_states_33,
- { "Active Scanning state and Slave Role combination", "bthci_evt.le_states_33",
+ { "Active Scanning state and Peripheral Role combination", "bthci_evt.le_states_33",
FT_BOOLEAN, 8, NULL, 0x08,
NULL, HFILL }
},
{ &hf_bthci_evt_le_states_34,
- { "Initiating State and Master Role combination. Master Role and Master Role combination", "bthci_evt.le_states_34",
+ { "Initiating State and Central Role combination. Central Role and Central Role combination", "bthci_evt.le_states_34",
FT_BOOLEAN, 8, NULL, 0x10,
NULL, HFILL }
},
@@ -8734,207 +8909,227 @@ proto_register_bthci_evt(void)
},
{ &hf_bthci_evt_le_features_encryption,
{ "LE Encryption", "bthci_evt.le_features.encryption",
- FT_BOOLEAN, 64, NULL, 0x01,
+ FT_BOOLEAN, 64, NULL, 0x0000000000000001,
NULL, HFILL }
},
{ &hf_bthci_evt_le_features_connection_parameters_request_procedure,
{ "Connection Parameters Request Procedure", "bthci_evt.le_features.connection_parameters_request_procedure",
- FT_BOOLEAN, 64, NULL, 0x02,
+ FT_BOOLEAN, 64, NULL, 0x0000000000000002,
NULL, HFILL }
},
{ &hf_bthci_evt_le_features_extended_reject_indication,
{ "Extended Reject Indication", "bthci_evt.le_features.extended_reject_indication",
- FT_BOOLEAN, 64, NULL, 0x04,
+ FT_BOOLEAN, 64, NULL, 0x0000000000000004,
NULL, HFILL }
},
- { &hf_bthci_evt_le_features_slave_initiated_features_exchange,
- { "Slave-Initiated Features Exchange", "bthci_evt.le_features.slave_initiated_features_exchange",
- FT_BOOLEAN, 64, NULL, 0x08,
+ { &hf_bthci_evt_le_features_peripheral_initiated_features_exchange,
+ { "Peripheral-Initiated Features Exchange", "bthci_evt.le_features.slave_initiated_features_exchange",
+ FT_BOOLEAN, 64, NULL, 0x0000000000000008,
NULL, HFILL }
},
{ &hf_bthci_evt_le_features_ping,
{ "Ping", "bthci_evt.le_features.ping",
- FT_BOOLEAN, 64, NULL, 0x10,
+ FT_BOOLEAN, 64, NULL, 0x0000000000000010,
NULL, HFILL }
},
{ &hf_bthci_evt_le_features_data_packet_length_extension,
{ "Data Packet Length Extension", "bthci_evt.le_features.data_packet_length_extension",
- FT_BOOLEAN, 64, NULL, 0x20,
+ FT_BOOLEAN, 64, NULL, 0x0000000000000020,
NULL, HFILL }
},
{ &hf_bthci_evt_le_features_ll_privacy,
{ "LL Privacy", "bthci_evt.le_features.ll_privacy",
- FT_BOOLEAN, 64, NULL, 0x40,
+ FT_BOOLEAN, 64, NULL, 0x0000000000000040,
NULL, HFILL }
},
{ &hf_bthci_evt_le_features_extended_scanner_filter_policies,
{ "Extended Scanner Filter Policies", "bthci_evt.le_features.extended_scanner_filter_policies",
- FT_BOOLEAN, 64, NULL, 0x80,
+ FT_BOOLEAN, 64, NULL, 0x0000000000000080,
NULL, HFILL }
},
{ &hf_bthci_evt_le_features_2m_phy,
{ "LE 2M PHY", "bthci_evt.le_features.2m_phy",
- FT_BOOLEAN, 64, NULL, 0x0100,
+ FT_BOOLEAN, 64, NULL, 0x0000000000000100,
NULL, HFILL }
},
{ &hf_bthci_evt_le_features_stable_modulation_index_tx,
{ "Stable Modulation Index - Tx", "bthci_evt.le_features.stable_modulation_index_tx",
- FT_BOOLEAN, 64, NULL, 0x0200,
+ FT_BOOLEAN, 64, NULL, 0x0000000000000200,
NULL, HFILL }
},
{ &hf_bthci_evt_le_features_stable_modulation_index_rx,
{ "Stable Modulation Index - Rx", "bthci_evt.le_features.stable_modulation_index_rx",
- FT_BOOLEAN, 64, NULL, 0x0400,
+ FT_BOOLEAN, 64, NULL, 0x0000000000000400,
NULL, HFILL }
},
{ &hf_bthci_evt_le_features_coded_phy,
{ "LE Coded PHY", "bthci_evt.le_features.coded_phy",
- FT_BOOLEAN, 64, NULL, 0x0800,
+ FT_BOOLEAN, 64, NULL, 0x0000000000000800,
NULL, HFILL }
},
{ &hf_bthci_evt_le_features_extended_advertising,
{ "LE Extended Advertising", "bthci_evt.le_features.extended_advertising",
- FT_BOOLEAN, 64, NULL, 0x1000,
+ FT_BOOLEAN, 64, NULL, 0x0000000000001000,
NULL, HFILL }
},
{ &hf_bthci_evt_le_features_periodic_advertising,
{ "LE Periodic Advertising", "bthci_evt.le_features.periodic_advertising",
- FT_BOOLEAN, 64, NULL, 0x2000,
+ FT_BOOLEAN, 64, NULL, 0x0000000000002000,
NULL, HFILL }
},
{ &hf_bthci_evt_le_features_channel_selection_algorithm_2,
{ "Channel Selection Algorithm #2", "bthci_evt.le_features.channel_selection_algorithm_2",
- FT_BOOLEAN, 64, NULL, 0x4000,
+ FT_BOOLEAN, 64, NULL, 0x0000000000004000,
NULL, HFILL }
},
{ &hf_bthci_evt_le_features_power_class_1,
{ "Power Class 1", "bthci_evt.le_features.power_class_1",
- FT_BOOLEAN, 64, NULL, 0x8000,
+ FT_BOOLEAN, 64, NULL, 0x0000000000008000,
NULL, HFILL }
},
{ &hf_bthci_evt_le_features_minimum_number_of_used_channels_procedure,
{ "Minimum Number of Used Channels Procedure", "bthci_evt.le_features.minimum_number_of_used_channels_procedure",
- FT_BOOLEAN, 64, NULL, 0x010000,
+ FT_BOOLEAN, 64, NULL, 0x0000000000010000,
NULL, HFILL }
},
{ &hf_bthci_evt_le_features_connection_cte_request,
{ "Connection CTE Request", "bthci_evt.le_features.connection_cte_request",
- FT_BOOLEAN, 64, NULL, 0x020000,
+ FT_BOOLEAN, 64, NULL, 0x0000000000020000,
NULL, HFILL }
},
{ &hf_bthci_evt_le_features_connection_cte_response,
{ "Connection CTE Response", "bthci_evt.le_features.connection_cte_response",
- FT_BOOLEAN, 64, NULL, 0x040000,
+ FT_BOOLEAN, 64, NULL, 0x0000000000040000,
NULL, HFILL }
},
{ &hf_bthci_evt_le_features_connectionless_cte_tx,
{ "Connectionless CTE Tx", "bthci_evt.le_features.connectionless_cte_tx",
- FT_BOOLEAN, 64, NULL, 0x080000,
+ FT_BOOLEAN, 64, NULL, 0x0000000000080000,
NULL, HFILL }
},
{ &hf_bthci_evt_le_features_connectionless_cte_rx,
{ "Connectionless CTE Rx", "bthci_evt.le_features.connectionless_cte_rx",
- FT_BOOLEAN, 64, NULL, 0x100000,
+ FT_BOOLEAN, 64, NULL, 0x0000000000100000,
NULL, HFILL }
},
{ &hf_bthci_evt_le_features_antenna_switching_during_cte_tx_aod,
{ "Antenna Switching During CTE Tx (AoD)", "bthci_evt.le_features.antenna_switching_during_cte_tx_aod",
- FT_BOOLEAN, 64, NULL, 0x200000,
+ FT_BOOLEAN, 64, NULL, 0x0000000000200000,
NULL, HFILL }
},
{ &hf_bthci_evt_le_features_antenna_switching_during_cte_rx_aoa,
{ "Antenna Switching During CTE Rx (AoA)", "bthci_evt.le_features.antenna_switching_during_cte_rx_aoa",
- FT_BOOLEAN, 64, NULL, 0x400000,
+ FT_BOOLEAN, 64, NULL, 0x0000000000400000,
NULL, HFILL }
},
{ &hf_bthci_evt_le_features_receiving_cte,
{ "Receiving CTE", "bthci_evt.le_features.receiving_cte",
- FT_BOOLEAN, 64, NULL, 0x800000,
+ FT_BOOLEAN, 64, NULL, 0x0000000000800000,
NULL, HFILL }
},
{ &hf_bthci_evt_le_features_periodic_advertising_sync_transfer_sender,
{ "Periodic Advertising Sync Transfer - Sender", "bthci_evt.le_features.periodic_advertising_sync_transfer_sender",
- FT_BOOLEAN, 64, NULL, 0x01000000,
+ FT_BOOLEAN, 64, NULL, 0x0000000001000000,
NULL, HFILL }
},
{ &hf_bthci_evt_le_features_periodic_advertising_sync_transfer_receiver,
{ "Periodic Advertising Sync Transfer - Receiver", "bthci_evt.le_features.periodic_advertising_sync_transfer_receiver",
- FT_BOOLEAN, 64, NULL, 0x02000000,
+ FT_BOOLEAN, 64, NULL, 0x0000000002000000,
NULL, HFILL }
},
{ &hf_bthci_evt_le_features_sleep_clock_accuracy_updates,
{ "Sleep Clock Accuracy Updates", "bthci_evt.le_features.sleep_clock_accuracy_updates",
- FT_BOOLEAN, 64, NULL, 0x04000000,
+ FT_BOOLEAN, 64, NULL, 0x0000000004000000,
NULL, HFILL }
},
{ &hf_bthci_evt_le_features_remote_public_key_validation,
{ "Remote Public Key Validation", "bthci_evt.le_features.remote_public_key_validation",
- FT_BOOLEAN, 64, NULL, 0x08000000,
+ FT_BOOLEAN, 64, NULL, 0x0000000008000000,
NULL, HFILL }
},
- { &hf_bthci_evt_le_features_cis_master,
- { "Connected Isochronous Stream - Master", "bthci_evt.le_features.cis_master",
- FT_BOOLEAN, 64, NULL, 0x10000000,
+ { &hf_bthci_evt_le_features_cis_central,
+ { "Connected Isochronous Stream - Central", "bthci_evt.le_features.cis_central",
+ FT_BOOLEAN, 64, NULL, 0x0000000010000000,
NULL, HFILL }
},
- { &hf_bthci_evt_le_features_cis_slave,
- { "Connected Isochronous Stream - Slave", "bthci_evt.le_features.cis_slave",
- FT_BOOLEAN, 64, NULL, 0x20000000,
+ { &hf_bthci_evt_le_features_cis_peripheral,
+ { "Connected Isochronous Stream - Peripheral", "bthci_evt.le_features.cis_peripheral",
+ FT_BOOLEAN, 64, NULL, 0x0000000020000000,
NULL, HFILL }
},
{ &hf_bthci_evt_le_features_isochronous_broadcaster,
{ "Isochronous Broadcaster", "bthci_evt.le_features.isochronous_broadcaster",
- FT_BOOLEAN, 64, NULL, 0x40000000,
+ FT_BOOLEAN, 64, NULL, 0x0000000040000000,
NULL, HFILL }
},
{ &hf_bthci_evt_le_features_synchronized_receiver,
{ "Synchronized Receiver", "bthci_evt.le_features.synchronized_receiver",
- FT_BOOLEAN, 64, NULL, 0x80000000,
+ FT_BOOLEAN, 64, NULL, 0x0000000080000000,
NULL, HFILL }
},
{ &hf_bthci_evt_le_features_isochronous_channels_host_support,
{ "Isochronous Channels (Host_support)", "bthci_evt.le_features.isochronous_channels_host_support",
- FT_BOOLEAN, 64, NULL, 0x0100000000,
+ FT_BOOLEAN, 64, NULL, 0x0000000100000000,
NULL, HFILL }
},
{ &hf_bthci_evt_le_features_power_control_request,
{ "Power Control Request", "bthci_evt.le_features.power_control_request",
- FT_BOOLEAN, 64, NULL, 0x0200000000,
+ FT_BOOLEAN, 64, NULL, 0x0000000200000000,
NULL, HFILL }
},
{ &hf_bthci_evt_le_features_power_change_indication,
{ "Power Change Indication", "bthci_evt.le_features.power_change_indication",
- FT_BOOLEAN, 64, NULL, 0x0400000000,
+ FT_BOOLEAN, 64, NULL, 0x0000000400000000,
NULL, HFILL }
},
{ &hf_bthci_evt_le_features_path_loss_monitoring,
{ "Path Loss Monitoring", "bthci_evt.le_features.path_loss_monitoring",
- FT_BOOLEAN, 64, NULL, 0x0800000000,
+ FT_BOOLEAN, 64, NULL, 0x0000000800000000,
NULL, HFILL }
},
{ &hf_bthci_evt_le_features_periodic_advertising_adi,
{ "Periodic Advertising ADI", "bthci_evt.le_features.periodic_advertising_adi",
- FT_BOOLEAN, 64, NULL, 0x1000000000,
+ FT_BOOLEAN, 64, NULL, 0x0000001000000000,
NULL, HFILL }
},
{ &hf_bthci_evt_le_features_connection_subrating,
{ "Connection Subrating", "bthci_evt.le_features.connection_subrating",
- FT_BOOLEAN, 64, NULL, 0x2000000000,
+ FT_BOOLEAN, 64, NULL, 0x0000002000000000,
NULL, HFILL }
},
{ &hf_bthci_evt_le_features_connection_subrating_host_support,
{ "Connection Subrating (Host support)", "bthci_evt.le_features.connection_subrating_host_support",
- FT_BOOLEAN, 64, NULL, 0x4000000000,
+ FT_BOOLEAN, 64, NULL, 0x0000004000000000,
NULL, HFILL }
},
{ &hf_bthci_evt_le_features_channel_classification,
{ "Channel Classification", "bthci_evt.le_features.channel_classification",
- FT_BOOLEAN, 64, NULL, 0x8000000000,
+ FT_BOOLEAN, 64, NULL, 0x0000008000000000,
+ NULL, HFILL }
+ },
+ { &hf_bthci_evt_le_features_coding_selection,
+ { "Coding Selection", "bthci_evt.le_features.coding_selection",
+ FT_BOOLEAN, 64, NULL, 0x0000010000000000,
+ NULL, HFILL }
+ },
+ { &hf_bthci_evt_le_features_coding_selection_host_support,
+ { "Coding Selection (Host support)", "bthci_evt.le_features.coding_selection_host_support",
+ FT_BOOLEAN, 64, NULL, 0x0000020000000000,
+ NULL, HFILL }
+ },
+ { &hf_bthci_evt_le_features_periodic_advertising_responses_advertiser,
+ { "Periodic Advertising with Responses - Advertiser", "bthci_evt.le_features.periodic_advertising_responses_advertiser",
+ FT_BOOLEAN, 64, NULL, 0x0000080000000000,
+ NULL, HFILL }
+ },
+ { &hf_bthci_evt_le_features_periodic_advertising_responses_scanner,
+ { "Periodic Advertising with Responses - Scanner", "bthci_evt.le_features.periodic_advertising_responses_scanner",
+ FT_BOOLEAN, 64, NULL, 0x0000100000000000,
NULL, HFILL }
},
{ &hf_bthci_evt_le_features_reserved,
{ "Reserved", "bthci_evt.le_features.reserved",
- FT_UINT64, BASE_HEX, NULL, G_GUINT64_CONSTANT(0xFFFFFF0000000000),
+ FT_UINT64, BASE_HEX, NULL, G_GUINT64_CONSTANT(0xFFFFE40000000000),
NULL, HFILL }
},
{ &hf_bthci_evt_mws_number_of_transports,
@@ -9010,7 +9205,7 @@ proto_register_bthci_evt(void)
{ &hf_bthci_evt_clock_offset_32,
{ "Clock Offset", "bthci_evt.clock_offset_32",
FT_UINT32, BASE_HEX, NULL, 0x0FFFFFFF,
- "Bits 0-27 of the Clock Offset between CLKslave-CLK", HFILL }
+ "Bits 0-27 of the Clock Offset between CLKNreceiver-CLKNtransmitter", HFILL }
},
{ &hf_bthci_evt_next_broadcast_instant,
{ "Next Broadcast Instant", "bthci_evt.next_broadcast_instant",
@@ -9022,8 +9217,8 @@ proto_register_bthci_evt(void)
FT_UINT8, BASE_HEX, NULL, 0x0,
NULL, HFILL }
},
- { &hf_bthci_evt_connectionless_slave_broadcast_interval,
- { "Connectionless Slave Broadcast Interval", "bthci_evt.connectionless_slave_broadcast_interval",
+ { &hf_bthci_evt_connectionless_peripheral_broadcast_interval,
+ { "Connectionless Peripheral Broadcast Interval", "bthci_evt.connectionless_peripheral_broadcast_interval",
FT_UINT16, BASE_DEC, NULL, 0x0,
NULL, HFILL }
},
@@ -9319,32 +9514,32 @@ proto_register_bthci_evt(void)
},
{ &hf_bthci_evt_ext_advts_event_type_connectable,
{ "Connectable", "bthci_evt.le_ext_advts_event_type.connectable",
- FT_BOOLEAN, 16, NULL, 0x01,
+ FT_BOOLEAN, 16, NULL, 0x0001,
NULL, HFILL }
},
{ &hf_bthci_evt_ext_advts_event_type_scannable,
{ "Scannable", "bthci_evt.le_ext_advts_event_type.scannable",
- FT_BOOLEAN, 16, NULL, 0x02,
+ FT_BOOLEAN, 16, NULL, 0x0002,
NULL, HFILL }
},
{ &hf_bthci_evt_ext_advts_event_type_directed,
{ "Directed", "bthci_evt.le_ext_advts_event_type.directed",
- FT_BOOLEAN, 16, NULL, 0x04,
+ FT_BOOLEAN, 16, NULL, 0x0004,
NULL, HFILL }
},
{ &hf_bthci_evt_ext_advts_event_type_scan_response,
{ "Scan Response", "bthci_evt.le_ext_advts_event_type.scan_response",
- FT_BOOLEAN, 16, NULL, 0x08,
+ FT_BOOLEAN, 16, NULL, 0x0008,
NULL, HFILL }
},
{ &hf_bthci_evt_ext_advts_event_type_legacy,
{ "Legacy", "bthci_evt.le_ext_advts_event_type.legacy",
- FT_BOOLEAN, 16, NULL, 0x10,
+ FT_BOOLEAN, 16, NULL, 0x0010,
NULL, HFILL }
},
{ &hf_bthci_evt_ext_advts_event_type_data_status,
{ "Data Status", "bthci_evt.le_ext_advts_event_type.data_status",
- FT_UINT16, BASE_HEX, VALS(ext_adv_data_status_vals), 0x60,
+ FT_UINT16, BASE_HEX, VALS(ext_adv_data_status_vals), 0x0060,
NULL, HFILL }
},
{ &hf_bthci_evt_ext_advts_event_type_reserved,
@@ -9379,7 +9574,7 @@ proto_register_bthci_evt(void)
},
{ &hf_bthci_evt_sync_handle,
{ "Sync Handle", "bthci_evt.sync_handle",
- FT_UINT16, BASE_HEX, NULL, 0x0,
+ FT_UINT16, BASE_HEX|BASE_SPECIAL_VALS, VALS(uint16_no_handle), 0x0,
NULL, HFILL }
},
{ &hf_bthci_evt_data_status,
@@ -9389,7 +9584,7 @@ proto_register_bthci_evt(void)
},
{ &hf_bthci_evt_advertising_handle,
{ "Advertising Handle", "bthci_evt.adv_handle",
- FT_UINT8, BASE_HEX, NULL, 0x0,
+ FT_UINT8, BASE_HEX|BASE_SPECIAL_VALS, VALS(uint8_no_handle), 0x0,
NULL, HFILL }
},
{ &hf_bthci_evt_num_compl_ext_advertising_events,
@@ -9667,13 +9862,13 @@ proto_register_bthci_evt(void)
FT_UINT24, BASE_DEC|BASE_UNIT_STRING, &units_microseconds, 0x0,
NULL, HFILL }
},
- { &hf_bthci_evt_transport_latency_m_to_s,
- { "Transport Latency Master to Slave", "bthci_evt.transport_latency_m_to_s",
+ { &hf_bthci_evt_transport_latency_c_to_p,
+ { "Transport Latency Central to Peripheral", "bthci_evt.transport_latency_c_to_p",
FT_UINT24, BASE_DEC|BASE_UNIT_STRING, &units_microseconds, 0x0,
NULL, HFILL }
},
- { &hf_bthci_evt_transport_latency_s_to_m,
- { "Transport Latency Slave to Master", "bthci_evt.transport_latency_s_to_m",
+ { &hf_bthci_evt_transport_latency_p_to_c,
+ { "Transport Latency Peripheral to Central", "bthci_evt.transport_latency_p_to_c",
FT_UINT24, BASE_DEC|BASE_UNIT_STRING, &units_microseconds, 0x0,
NULL, HFILL }
},
@@ -9682,43 +9877,43 @@ proto_register_bthci_evt(void)
FT_UINT24, BASE_DEC|BASE_UNIT_STRING, &units_microseconds, 0x0,
NULL, HFILL }
},
- { &hf_bthci_evt_phy_m_to_s,
- { "PHY Master to Slave", "bthci_evt.phy_m_to_s",
+ { &hf_bthci_evt_phy_c_to_p,
+ { "PHY Central to Peripheral", "bthci_evt.phy_c_to_p",
FT_UINT8, BASE_HEX|BASE_EXT_STRING, &bthci_cmd_le_phy_vals_ext, 0x0,
NULL, HFILL }
},
- { &hf_bthci_evt_phy_s_to_m,
- { "PHY Slave to Master", "bthci_evt.phy_s_to_m",
+ { &hf_bthci_evt_phy_p_to_c,
+ { "PHY Peripheral to Central", "bthci_evt.phy_p_to_c",
FT_UINT8, BASE_HEX|BASE_EXT_STRING, &bthci_cmd_le_phy_vals_ext, 0x0,
NULL, HFILL }
},
- { &hf_bthci_evt_bn_m_to_s,
- { "Burst Number Master to Slave", "bthci_evt.bn_m_to_s",
+ { &hf_bthci_evt_bn_c_to_p,
+ { "Burst Number Central to Peripheral", "bthci_evt.bn_c_to_p",
FT_UINT8, BASE_DEC, NULL, 0x0,
NULL, HFILL }
},
- { &hf_bthci_evt_bn_s_to_m,
- { "Burst Number Slave to Master", "bthci_evt.bn_s_to_m",
+ { &hf_bthci_evt_bn_p_to_c,
+ { "Burst Number Peripheral to Central", "bthci_evt.bn_p_to_c",
FT_UINT8, BASE_DEC, NULL, 0x0,
NULL, HFILL }
},
- { &hf_bthci_evt_ft_m_to_s,
- { "Flush Timeout Master to Slave", "bthci_evt.ft_m_to_s",
+ { &hf_bthci_evt_ft_c_to_p,
+ { "Flush Timeout Central to Peripheral", "bthci_evt.ft_c_to_p",
FT_UINT8, BASE_DEC, NULL, 0x0,
NULL, HFILL }
},
- { &hf_bthci_evt_ft_s_to_m,
- { "Flush Timeout Slave to Master", "bthci_evt.ft_s_to_m",
+ { &hf_bthci_evt_ft_p_to_c,
+ { "Flush Timeout Peripheral to Central", "bthci_evt.ft_p_to_c",
FT_UINT8, BASE_DEC, NULL, 0x0,
NULL, HFILL }
},
- { &hf_bthci_evt_max_pdu_m_to_s,
- { "Max PDU Master to Slave", "bthci_evt.max_pdu_m_to_s",
+ { &hf_bthci_evt_max_pdu_c_to_p,
+ { "Max PDU Central to Peripheral", "bthci_evt.max_pdu_c_to_p",
FT_UINT16, BASE_DEC|BASE_UNIT_STRING, &units_octet_octets, 0x0,
NULL, HFILL }
},
- { &hf_bthci_evt_max_pdu_s_to_m,
- { "Max PDU Slave to Master", "bthci_evt.max_pdu_s_to_m",
+ { &hf_bthci_evt_max_pdu_p_to_c,
+ { "Max PDU Peripheral to Central", "bthci_evt.max_pdu_p_to_c",
FT_UINT16, BASE_DEC|BASE_UNIT_STRING, &units_octet_octets, 0x0,
NULL, HFILL }
},
@@ -9837,7 +10032,61 @@ proto_register_bthci_evt(void)
FT_UINT16, BASE_DEC|BASE_UNIT_STRING, &units_number_events, 0x0,
NULL, HFILL }
},
-
+ { &hf_bthci_evt_subevent_start,
+ { "Sub-event Start", "bthci_evt.subevent_start",
+ FT_UINT8, BASE_DEC, NULL, 0x0,
+ NULL, HFILL }
+ },
+ { &hf_bthci_evt_subevent_count,
+ { "Sub-event Count", "bthci_evt.subevent_count",
+ FT_UINT8, BASE_DEC, NULL, 0x0,
+ NULL, HFILL }
+ },
+ { &hf_bthci_evt_subevent,
+ { "Sub-event", "bthci_evt.subevent",
+ FT_UINT8, BASE_DEC, NULL, 0x0,
+ NULL, HFILL }
+ },
+ { &hf_bthci_evt_subevent_tx_status,
+ { "Sub-event Tx Status", "bthci_evt.subevent_tx_status",
+ FT_UINT8, BASE_HEX, VALS(tx_status_vals), 0x0,
+ NULL, HFILL }
+ },
+ { &hf_bthci_evt_subevent_responses,
+ { "Sub-events Responses", "bthci_evt.subevent_responses",
+ FT_NONE, BASE_NONE, NULL, 0x0,
+ NULL, HFILL }
+ },
+ { &hf_bthci_evt_response_slot,
+ { "Response Slot", "bthci_evt.response_slot",
+ FT_UINT8, BASE_DEC, NULL, 0x0,
+ NULL, HFILL }
+ },
+ { &hf_bthci_evt_num_subevents,
+ { "Number of Sub-events", "bthci_evt.num_subevents",
+ FT_UINT8, BASE_DEC, NULL, 0x0,
+ NULL, HFILL }
+ },
+ { &hf_bthci_evt_subevent_interval,
+ { "Sub-event Interval", "bthci_evt.subevent_interval",
+ FT_UINT8, BASE_CUSTOM, CF_FUNC(bluetooth_unit_1p25_ms), 0x0,
+ NULL, HFILL }
+ },
+ { &hf_bthci_evt_response_slot_delay,
+ { "Response Slot Delay", "bthci_evt.resp_slot_delay",
+ FT_UINT8, BASE_CUSTOM, CF_FUNC(bluetooth_unit_1p25_ms), 0x0,
+ NULL, HFILL }
+ },
+ { &hf_bthci_evt_response_slot_spacing,
+ { "Response Slot Spacing", "bthci_evt.resp_slot_spacing",
+ FT_UINT8, BASE_CUSTOM, CF_FUNC(bluetooth_unit_0p125_ms), 0x0,
+ NULL, HFILL }
+ },
+ { &hf_bthci_evt_periodic_event_counter,
+ { "Periodic Event Counter", "bthci_evt.periodic_evt_counter",
+ FT_UINT16, BASE_DEC, NULL, 0x0,
+ NULL, HFILL }
+ },
};
static ei_register_info ei[] = {
@@ -9876,7 +10125,8 @@ proto_register_bthci_evt(void)
&ett_iq_samples,
&ett_simple_pairing_options,
&ett_supported_switching_sample_rates,
- &ett_transmit_power_level_flags
+ &ett_transmit_power_level_flags,
+ &ett_adv_subevent_responses
};
/* Decode As handling