static int hf_bthci_cmd_le_scan_filter_policy = -1;
static int hf_bthci_cmd_le_initiator_filter_policy = -1;
static int hf_bthci_cmd_le_peer_address_type = -1;
+static int hf_bthci_cmd_le_peer_identity_address_type = -1;
static int hf_bthci_cmd_le_con_interval_min = -1;
static int hf_bthci_cmd_le_con_interval_max = -1;
static int hf_bthci_cmd_le_con_latency = -1;
static int hf_bthci_cmd_le_phys_le_2m = -1;
static int hf_bthci_cmd_le_phys_le_1m = -1;
static int hf_bthci_cmd_le_init_phy_param = -1;
+static int hf_bthci_cmd_le_privacy_mode = -1;
+static int hf_bthci_cmd_sync_filter_policy = -1;
+static int hf_bthci_cmd_skip = -1;
+static int hf_bthci_cmd_rf_tx_path_compensation_value = -1;
+static int hf_bthci_cmd_rf_rx_path_compensation_value = -1;
+static int hf_bthci_cmd_sync_handle = -1;
static int hf_bthci_cmd_triggered_clock_capture = -1;
static int hf_bthci_cmd_lpo_allowed = -1;
static int hf_bthci_cmd_number_of_clock_captures_to_filter = -1;
{ 0, NULL }
};
+const value_string bthci_cmd_identity_address_types_vals[] = {
+ { 0x00, "Public Identity Address" },
+ { 0x01, "Random (Static) Identity Address" },
+ { 0, NULL }
+};
+
static const value_string cmd_role_vals[] = {
{0x00, "Change own Role to Master for this BD_ADDR"},
{0x01, "Change own Role to Slave for this BD_ADDR"},
};
static const value_string cmd_le_scan_filter_policy[] = {
- { 0x00, "Accept all advertisements. Ignore directed advertisements not addressed to this device" },
- { 0x01, "Ignore advertisements from devices not in the white list only. Ignore directed advertisements not addressed to this device" },
+ { 0x00, "Accept all advertisements, except directed advertisements not addressed to this device" },
+ { 0x01, "Accept only advertisments from devices in the White List. Ignore directed advertisements not addressed to this device" },
+ { 0x02, "Accept all advertisments, except directed advertisements not addressed to this device (but accept those with resolvable addresses that can not be resolved)" },
+ { 0x03, "Accept only advertisments from devices in the White List. Ignore directed advertisements not addressed to this device (but accept those with resolvable addresses that can not be resolved)" },
{ 0, NULL }
};
{ 0, NULL }
};
+static const value_string cmd_sync_filter_policy[] = {
+ { 0x00, "Use Peer Address" },
+ { 0x01, "Use Periodic Advertiser List. Ignore Peer Address" },
+ { 0, NULL }
+};
+
+static const value_string cmd_privacy_mode[] = {
+ { 0x00, "Use Network Privacy Mode" },
+ { 0x01, "Use Device Privacy Mode" },
+ { 0, NULL }
+};
+
static const value_string cmd_le_test_pkt_payload[] = {
{ 0x00, "Pseudo-Random Sequence 9" },
{ 0x01, "Pattern Of Alternating Bits '11110000'" },
proto_tree_add_item(tree, hf_bthci_cmd_connection_handle, tvb, offset, 2, ENC_LITTLE_ENDIAN);
offset += 2;
- proto_tree_add_item(tree, hf_bthci_cmd_authenticated_payload_timeout, tvb, offset, 2, ENC_LITTLE_ENDIAN);
+ item = proto_tree_add_item(tree, hf_bthci_cmd_authenticated_payload_timeout, tvb, offset, 2, ENC_LITTLE_ENDIAN);
+ proto_item_append_text(item, " (%g sec)", tvb_get_guint16(tvb, offset, ENC_LITTLE_ENDIAN) * 0.01);
offset += 2;
break;
offset+=2;
proto_tree_add_item(tree, hf_bthci_cmd_le_tx_octets, tvb, offset, 2, ENC_LITTLE_ENDIAN);
offset+=2;
- sub_item = proto_tree_add_item(tree, hf_bthci_cmd_le_tx_time, tvb, offset, 2, ENC_LITTLE_ENDIAN);
- proto_item_append_text(sub_item, " (%d usec)", tvb_get_letohs(tvb, offset));
+ proto_tree_add_item(tree, hf_bthci_cmd_le_tx_time, tvb, offset, 2, ENC_LITTLE_ENDIAN);
offset+=2;
break;
break;
case 0x0027: /* LE Add Device to Resolving List */
- proto_tree_add_item(tree, hf_bthci_cmd_le_peer_address_type, tvb, offset, 1, ENC_LITTLE_ENDIAN);
+ proto_tree_add_item(tree, hf_bthci_cmd_le_peer_identity_address_type, tvb, offset, 1, ENC_LITTLE_ENDIAN);
offset++;
offset = dissect_bd_addr(hf_bthci_cmd_bd_addr, pinfo, tree, tvb, offset, FALSE, bluetooth_data->interface_id, bluetooth_data->adapter_id, NULL);
proto_tree_add_item(tree, hf_bthci_cmd_le_peer_irk, tvb, offset, 16, ENC_NA);
break;
case 0x0028: /* LE Remove Device From Resolving List */
- proto_tree_add_item(tree, hf_bthci_cmd_le_peer_address_type, tvb, offset, 1, ENC_LITTLE_ENDIAN);
+ proto_tree_add_item(tree, hf_bthci_cmd_le_peer_identity_address_type, tvb, offset, 1, ENC_LITTLE_ENDIAN);
offset++;
offset = dissect_bd_addr(hf_bthci_cmd_bd_addr, pinfo, tree, tvb, offset, FALSE, bluetooth_data->interface_id, bluetooth_data->adapter_id, NULL);
break;
case 0x002B: /* LE Read Peer Resolvable Address */
- proto_tree_add_item(tree, hf_bthci_cmd_le_peer_address_type, tvb, offset, 1, ENC_LITTLE_ENDIAN);
+ proto_tree_add_item(tree, hf_bthci_cmd_le_peer_identity_address_type, tvb, offset, 1, ENC_LITTLE_ENDIAN);
offset++;
offset = dissect_bd_addr(hf_bthci_cmd_bd_addr, pinfo, tree, tvb, offset, FALSE, bluetooth_data->interface_id, bluetooth_data->adapter_id, NULL);
break;
case 0x002C: /* LE Read Local Resolvable Address" */
- proto_tree_add_item(tree, hf_bthci_cmd_le_peer_address_type, tvb, offset, 1, ENC_LITTLE_ENDIAN);
+ proto_tree_add_item(tree, hf_bthci_cmd_le_peer_identity_address_type, tvb, offset, 1, ENC_LITTLE_ENDIAN);
offset++;
offset = dissect_bd_addr(hf_bthci_cmd_bd_addr, pinfo, tree, tvb, offset, FALSE, bluetooth_data->interface_id, bluetooth_data->adapter_id, NULL);
break;
break;
case 0x002E: /* LE Set Resolvable Private Address Timeout */
- item = proto_tree_add_item(tree, hf_bthci_cmd_le_rpa_timeout, tvb, offset, 2, ENC_LITTLE_ENDIAN);
- proto_item_append_text(item, " (%d sec)", tvb_get_letohs(tvb, offset));
+ proto_tree_add_item(tree, hf_bthci_cmd_le_rpa_timeout, tvb, offset, 2, ENC_LITTLE_ENDIAN);
offset+=2;
break;
case 0x0041: /* LE Set Extended Scan Parameters */
{
+ guint8 scanning_phys, phy = 0;
proto_tree_add_item(tree, hf_bthci_cmd_le_own_address_type, tvb, offset, 1, ENC_LITTLE_ENDIAN);
offset++;
proto_tree_add_item(tree, hf_bthci_cmd_le_scan_filter_policy, tvb, offset, 1, ENC_LITTLE_ENDIAN);
offset++;
- guint8 scanning_phys = tvb_get_guint8(tvb, offset);
+ scanning_phys = tvb_get_guint8(tvb, offset);
proto_tree_add_bitmask(tree, tvb, offset, hf_bthci_cmd_le_scan_phys, ett_scan_init_phy_param, hfx_btcmd_le_scan_phys, ENC_NA);
offset += 1;
for (int i = 1; i < 0x08; i <<=1) {
+ phy++;
if (scanning_phys & i) {
sub_item = proto_tree_add_none_format(tree, hf_bthci_cmd_le_scan_phy_param, tvb, offset, 5, "Scanning PHY: %s",
- val_to_str_const(i, cmd_le_phy_vals, "Unknown"));
+ val_to_str_const(phy, cmd_le_phy_vals, "Unknown"));
sub_tree = proto_item_add_subtree(sub_item, ett_scan_init_phy_param);
proto_tree_add_item(sub_tree, hf_bthci_cmd_le_scan_type, tvb, offset, 1, ENC_LITTLE_ENDIAN);
offset++;
case 0x0043: /* LE Extended Create Connection */
{
+ guint8 initiating_phys, phy = 0;
proto_tree_add_item(tree, hf_bthci_cmd_le_initiator_filter_policy, tvb, offset, 1, ENC_LITTLE_ENDIAN);
offset++;
proto_tree_add_item(tree, hf_bthci_cmd_le_own_address_type, tvb, offset, 1, ENC_LITTLE_ENDIAN);
proto_tree_add_item(tree, hf_bthci_cmd_le_peer_address_type, tvb, offset, 1, ENC_LITTLE_ENDIAN);
offset++;
offset = dissect_bd_addr(hf_bthci_cmd_bd_addr, pinfo, tree, tvb, offset, FALSE, bluetooth_data->interface_id, bluetooth_data->adapter_id, NULL);
- guint8 initiating_phys = tvb_get_guint8(tvb, offset);
+ initiating_phys = tvb_get_guint8(tvb, offset);
proto_tree_add_bitmask(tree, tvb, offset, hf_bthci_cmd_le_init_phys, ett_scan_init_phy_param, hfx_btcmd_le_phys, ENC_NA);
offset += 1;
for (int i = 1; i < 0x08; i <<=1) {
+ phy++;
if (initiating_phys & i) {
sub_item = proto_tree_add_none_format(tree, hf_bthci_cmd_le_init_phy_param, tvb, offset, 16, "Initiating PHY: %s",
- val_to_str_const(i, cmd_le_phy_vals, "Unknown"));
+ val_to_str_const(phy, cmd_le_phy_vals, "Unknown"));
sub_tree = proto_item_add_subtree(sub_item, ett_scan_init_phy_param);
item = proto_tree_add_item(sub_tree, hf_bthci_cmd_le_scan_interval, tvb, offset, 2, ENC_LITTLE_ENDIAN);
proto_item_append_text(item, " (%g msec)", tvb_get_letohs(tvb, offset)*0.625);
}
break;
+ case 0x0044: /* LE Periodic Advertising Create Sync */
+ proto_tree_add_item(tree, hf_bthci_cmd_sync_filter_policy, tvb, offset, 1, ENC_NA);
+ offset++;
+ proto_tree_add_item(tree, hf_bthci_cmd_advertising_sid, tvb, offset, 1, ENC_NA);
+ offset++;
+ proto_tree_add_item(tree, hf_bthci_cmd_le_peer_address_type, tvb, offset, 1, ENC_NA);
+ offset++;
+ offset = dissect_bd_addr(hf_bthci_cmd_bd_addr, pinfo, tree, tvb, offset, FALSE, bluetooth_data->interface_id, bluetooth_data->adapter_id, NULL);
+ proto_tree_add_item(tree, hf_bthci_cmd_skip, tvb, offset, 2, ENC_LITTLE_ENDIAN);
+ offset+=2;
+ item = proto_tree_add_item(tree, hf_bthci_cmd_le_supervision_timeout, tvb, offset, 2, ENC_LITTLE_ENDIAN);
+ proto_item_append_text(item, " (%g sec)", tvb_get_letohs(tvb, offset)*0.01);
+ offset+=2;
+ /* 1 octet unused/RFU */
+ offset++;
+ break;
+
+ case 0x0046: /* LE Periodic Advertising Terminate Sync */
+ proto_tree_add_item(tree, hf_bthci_cmd_sync_handle, tvb, offset, 2, ENC_LITTLE_ENDIAN);
+ offset+=2;
+ break;
+
+ case 0x0047: /* LE Add Device To Periodic Advertiser List */
+ case 0x0048: /* LE Remove Device From Periodic Advertiser List */
+ proto_tree_add_item(tree, hf_bthci_cmd_le_peer_address_type, tvb, offset, 1, ENC_NA);
+ offset++;
+ offset = dissect_bd_addr(hf_bthci_cmd_bd_addr, pinfo, tree, tvb, offset, FALSE, bluetooth_data->interface_id, bluetooth_data->adapter_id, NULL);
+ proto_tree_add_item(tree, hf_bthci_cmd_advertising_sid, tvb, offset, 1, ENC_NA);
+ offset++;
+ break;
+
+ case 0x004D: /* LE Write RF Path Compensation */
+ item = proto_tree_add_item(tree, hf_bthci_cmd_rf_tx_path_compensation_value, tvb, offset, 2, ENC_LITTLE_ENDIAN);
+ proto_item_append_text(item, " (%g dB)", tvb_get_letohis(tvb, offset)*0.1);
+ offset+=2;
+ item = proto_tree_add_item(tree, hf_bthci_cmd_rf_rx_path_compensation_value, tvb, offset, 2, ENC_LITTLE_ENDIAN);
+ proto_item_append_text(item, " (%g dB)", tvb_get_letohis(tvb, offset)*0.1);
+ offset+=2;
+ break;
+
+ case 0x004E: /* LE Set Privacy Mode */
+ proto_tree_add_item(tree, hf_bthci_cmd_le_peer_identity_address_type, tvb, offset, 1, ENC_NA);
+ offset++;
+ offset = dissect_bd_addr(hf_bthci_cmd_bd_addr, pinfo, tree, tvb, offset, FALSE, bluetooth_data->interface_id, bluetooth_data->adapter_id, NULL);
+ proto_tree_add_item(tree, hf_bthci_cmd_le_privacy_mode, tvb, offset, 1, ENC_NA);
+ offset++;
+ break;
+
case 0x002: /* LE Read Buffer Size */
case 0x003: /* LE Read Local Supported Features */
case 0x007: /* LE Read Advertising Channel Tx Power */
FT_UINT8, BASE_HEX, VALS(bthci_cmd_address_types_vals), 0x0,
NULL, HFILL }
},
+ { &hf_bthci_cmd_le_peer_identity_address_type,
+ { "Peer Identity Address Type", "bthci_cmd.le_peer_identity_address_type",
+ FT_UINT8, BASE_HEX, VALS(bthci_cmd_identity_address_types_vals), 0x0,
+ NULL, HFILL }
+ },
{ &hf_bthci_cmd_le_direct_address_type,
{ "Direct Address Type", "bthci_cmd.le_direct_address_type",
FT_UINT8, BASE_HEX, VALS(bthci_cmd_address_types_vals), 0x0,
},
{ &hf_bthci_cmd_rx_frequency,
{ "Rx Frequency", "bthci_cmd.rx_frequency",
- FT_UINT8, BASE_HEX, NULL, 0x0,
+ FT_UINT8, BASE_DEC, NULL, 0x0,
NULL, HFILL }
},
{ &hf_bthci_cmd_tx_frequency,
{ "Tx Frequency", "bthci_cmd.tx_frequency",
- FT_UINT8, BASE_HEX, NULL, 0x0,
+ FT_UINT8, BASE_DEC, NULL, 0x0,
NULL, HFILL }
},
{ &hf_bthci_cmd_test_data_length,
},
{ &hf_bthci_cmd_le_tx_octets,
{ "TxOctets", "bthci_cmd.le_tx_octets",
- FT_UINT16, BASE_HEX, NULL, 0x0,
+ FT_UINT16, BASE_DEC, NULL, 0x0,
NULL, HFILL }
},
{ &hf_bthci_cmd_le_tx_time,
{ "TxTime", "bthci_cmd.le_tx_time",
- FT_UINT16, BASE_HEX, NULL, 0x0,
+ FT_UINT16, BASE_DEC|BASE_UNIT_STRING, &units_microseconds, 0x0,
NULL, HFILL }
},
{ &hf_bthci_cmd_le_suggested_max_tx_octets,
{ "SuggestedMaxTxOctets", "bthci_cmd.le_suggested_max_tx_octets",
- FT_UINT16, BASE_HEX, NULL, 0x0,
+ FT_UINT16, BASE_DEC, NULL, 0x0,
NULL, HFILL }
},
{ &hf_bthci_cmd_le_suggested_max_tx_time,
{ "SuggestedMaxTxTime", "bthci_cmd.le_suggested_max_tx_time",
- FT_UINT16, BASE_HEX, NULL, 0x0,
+ FT_UINT16, BASE_DEC|BASE_UNIT_STRING, &units_microseconds, 0x0,
NULL, HFILL }
},
{ &hf_bthci_cmd_le_remote_p_256_public_key,
},
{ &hf_bthci_cmd_le_rpa_timeout,
{ "RPA Timeout", "bthci_cmd.le_rpa_timeout",
- FT_UINT16, BASE_HEX, NULL, 0x0,
+ FT_UINT16, BASE_DEC|BASE_UNIT_STRING, &units_second_seconds, 0x0,
NULL, HFILL }
},
{ &hf_bthci_cmd_advertising_handle,
},
{ &hf_bthci_cmd_sec_adv_max_skip,
{ "Secondary Advertising Max Skip", "bthci_cmd.secondary_advertising_max_skip",
- FT_UINT8, BASE_HEX, NULL, 0x0,
+ FT_UINT8, BASE_DEC, NULL, 0x0,
NULL, HFILL }
},
{ &hf_bthci_cmd_secondary_advertising_phy,
FT_NONE, BASE_NONE, NULL, 0x0,
NULL, HFILL }
},
+ { &hf_bthci_cmd_le_privacy_mode,
+ { "Privacy Mode", "bthci_cmd.le_privacy_mode",
+ FT_UINT8, BASE_HEX, VALS(cmd_privacy_mode), 0x0,
+ NULL, HFILL }
+ },
+ { &hf_bthci_cmd_sync_filter_policy,
+ { "Filter Policy", "bthci_cmd.le_sync_filter_policy",
+ FT_UINT8, BASE_HEX, VALS(cmd_sync_filter_policy), 0x0,
+ NULL, HFILL }
+ },
+ { &hf_bthci_cmd_skip,
+ { "Skip", "bthci_cmd.skip",
+ FT_UINT8, BASE_DEC, NULL, 0x0,
+ NULL, HFILL }
+ },
+ { &hf_bthci_cmd_sync_handle,
+ { "Sync Handle", "bthci_cmd.sync_handle",
+ FT_UINT16, BASE_HEX, NULL, 0x0,
+ NULL, HFILL }
+ },
+ { &hf_bthci_cmd_rf_tx_path_compensation_value,
+ { "RF Tx Path Compensation Value", "bthci_cmd.rf_tx_path_compensation_value",
+ FT_INT16, BASE_DEC, NULL, 0x0,
+ NULL, HFILL }
+ },
+ { &hf_bthci_cmd_rf_rx_path_compensation_value,
+ { "RF Rx Path Compensation Value", "bthci_cmd.rf_rx_path_compensation_value",
+ FT_INT16, BASE_DEC, NULL, 0x0,
+ NULL, HFILL }
+ },
{ &hf_bthci_cmd_triggered_clock_capture,
{ "Triggered Clock Capture", "bthci_cmd.triggered_clock_capture",
FT_UINT8, BASE_HEX, VALS(disable_enable_vals), 0x0,
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;
proto_tree_add_item(tree, hf_bthci_evt_connection_handle, tvb, offset, 2, ENC_LITTLE_ENDIAN);
offset += 2;
- proto_tree_add_item(tree, hf_bthci_evt_authenticated_payload_timeout, tvb, offset, 2, ENC_LITTLE_ENDIAN);
+ item = proto_tree_add_item(tree, hf_bthci_evt_authenticated_payload_timeout, tvb, offset, 2, ENC_LITTLE_ENDIAN);
+ proto_item_append_text(item, " (%g sec)", tvb_get_guint16(tvb, offset, ENC_LITTLE_ENDIAN) * 0.01);
offset += 2;
break;
break;
+ case 0x204A: /* LE Read Periodic Advertiser List Size */
+ 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_periodic_adv_list_size, tvb, offset, 1, ENC_NA);
+ offset += 1;
+
+ break;
+ case 0x204B: /* LE Read Transmit Power */
+ 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_min_tx_power, tvb, offset, 1, ENC_NA);
+ offset += 1;
+
+ proto_tree_add_item(tree, hf_bthci_evt_max_tx_power, tvb, offset, 1, ENC_NA);
+ offset += 1;
+
+ break;
+ case 0x204C: /* LE Read RF Path Compensation */
+ 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;
+
+ item = proto_tree_add_item(tree, hf_bthci_evt_rf_tx_path_compensation, tvb, offset, 2, ENC_LITTLE_ENDIAN);
+ proto_item_append_text(item, " (%g dB)", tvb_get_letohis(tvb, offset)*0.1);
+ offset += 2;
+
+ item = proto_tree_add_item(tree, hf_bthci_evt_rf_rx_path_compensation, tvb, offset, 2, ENC_LITTLE_ENDIAN);
+ proto_item_append_text(item, " (%g dB)", tvb_get_letohis(tvb, offset)*0.1);
+ offset += 2;
+
+ break;
case 0x0401: /* Inquiry */
case 0x0405: /* Create Connection */
case 0x0406: /* Disconnect */
},
{ &hf_bthci_evt_le_max_tx_time,
{ "Max TX Time", "bthci_evt.max_tx_time",
- FT_UINT16, BASE_DEC, NULL, 0x0,
+ FT_UINT16, BASE_DEC|BASE_UNIT_STRING, &units_microseconds, 0x0,
NULL, HFILL }
},
{ &hf_bthci_evt_le_max_rx_octets,
},
{ &hf_bthci_evt_le_max_rx_time,
{ "Max RX Time", "bthci_evt.max_rx_time",
- FT_UINT16, BASE_DEC, NULL, 0x0,
+ FT_UINT16, BASE_DEC|BASE_UNIT_STRING, &units_microseconds, 0x0,
NULL, HFILL }
},
{ &hf_bthci_evt_encrypted_diversifier,
},
{ &hf_bthci_evt_suggested_max_tx_time,
{ "Suggested Max Tx Time", "bthci_evt.suggested_max_tx_time",
- FT_UINT16, BASE_DEC, NULL, 0x0,
+ FT_UINT16, BASE_DEC|BASE_UNIT_STRING, &units_microseconds, 0x0,
NULL, HFILL }
},
{ &hf_bthci_evt_suggested_max_rx_octets,
},
{ &hf_bthci_evt_suggested_max_rx_time,
{ "Suggested Max Rx Time", "bthci_evt.suggested_max_rx_time",
- FT_UINT16, BASE_DEC, NULL, 0x0,
+ FT_UINT16, BASE_DEC|BASE_UNIT_STRING, &units_microseconds, 0x0,
NULL, HFILL }
},
{ &hf_bthci_evt_resolving_list_size,
FT_UINT8, BASE_HEX|BASE_EXT_STRING, &bthci_cmd_le_phy_vals_ext, 0x0,
NULL, HFILL }
},
+ { &hf_bthci_evt_periodic_adv_list_size,
+ { "Periodic Advertiser List Size", "bthci_evt.le_periodic_adv_list_size",
+ FT_UINT8, BASE_DEC, NULL, 0x0,
+ NULL, HFILL }
+ },
+ { &hf_bthci_evt_min_tx_power,
+ { "Minimum TX Power", "bthci_evt.min_tx_power",
+ FT_INT8, BASE_DEC|BASE_UNIT_STRING, &units_dbm, 0x0,
+ NULL, HFILL }
+ },
+ { &hf_bthci_evt_max_tx_power,
+ { "Maximum TX Power", "bthci_evt.max_tx_power",
+ FT_INT8, BASE_DEC|BASE_UNIT_STRING, &units_dbm, 0x0,
+ NULL, HFILL }
+ },
+ { &hf_bthci_evt_rf_tx_path_compensation,
+ { "RF Tx Path Compensation Value", "bthci_evt.rf_tx_path_compensation_value",
+ FT_INT16, BASE_DEC, NULL, 0x0,
+ NULL, HFILL }
+ },
+ { &hf_bthci_evt_rf_rx_path_compensation,
+ { "RF Rx Path Compensation Value", "bthci_evt.rf_rx_path_compensation_value",
+ FT_INT16, BASE_DEC, NULL, 0x0,
+ NULL, HFILL }
+ },
};
static ei_register_info ei[] = {