Project: /_project.yaml Book: /_book.yaml

fuchsia.bluetooth.sys

PROTOCOLS

ProcedureToken {:#ProcedureToken}

Defined in fuchsia.bluetooth.sys/access.fidl

Represents an active procedure. The validity of a handle that supports this protocol is tied to the activity of the procedure that it is attached to. To elaborate:

  1. Closing a token handle ends the procedure that it is attached to.
  2. The system closes a token handle to communicate that a procedure was internally terminated.

Access {:#Access}

Defined in fuchsia.bluetooth.sys/access.fidl

Protocol that abstracts the operational modes and procedures defined in the Bluetooth Generic Access Profile (see Core Specification v5.1, Vol 3, Part C).

The procedures under this protocol apply to the system as a whole. The Bluetooth controller that plays an active role in these procedures can be managed using the HostWatcher protocol.

The procedures initiated by an Access protocol instance are terminated when the underlying channel is closed.

SetPairingDelegate {:#SetPairingDelegate}

Assign a PairingDelegate to respond to drive pairing procedures. The delegate will be configured to use the provided I/O capabilities to determine the pairing method.

Only one PairingDelegate can be registered at a time. Closing a PairingDelegate aborts all on-going pairing procedures associated with a delegate and closes the PairingDelegate previously assigned for this Access instance.

  • request input Bluetooth input capability
  • request output Bluetooth output capability
  • request delegate The client end of a PairingDelegate channel.

Request

SetLocalName {:#SetLocalName}

Assign a local name for the Bluetooth system. This name will be visible to nearby peers when the system is in discoverable mode and during name discovery procedures.

  • request name The complete local name to assign to the system.

Request

SetDeviceClass {:#SetDeviceClass}

Set the local device class that will be visible to nearby peers when the system is in discoverable mode.

  • request device_class The device class to assign to the system.

Request

MakeDiscoverable {:#MakeDiscoverable}

Put the system into the “General Discoverable” mode on the BR/EDR transport. The active host will respond to general inquiry (by regularly entering the inquiry scan mode).

  • request token ProcedureToken that will remain valid while a discoverable mode session is active. NOTE: The system may remain discoverable until all Access clients drop their tokens.
  • error Reports Error.FAILED if inquiry mode cannot be entered.

Request

Response

StartDiscovery {:#StartDiscovery}

Start a general discovery procedure. All general discoverable BR/EDR, LE, and BR/EDR/LE devices will appear in the peer list, which can be observed by calling Access.WatchPeers.

  • request token ProcedureToken that will remain valid while discovery is in progress. NOTE: The radio will continue performing discovery until all Access drop their tokens.
  • error Reports Error.FAILED if discovery on either transport cannot be initiated.

Request

Response

WatchPeers {:#WatchPeers}

Returns a list of all peers (connectable Bluetooth devices) known to the system. The first call results in a snapshot of all known peers to be sent immediately in the updated return paremeter. Subsequent calls receive a response only when one or more entries have been added, modified, or removed from the entries reported since the most recent call.

  • response updated Peers that were added or updated since the last call to WatchPeers().
  • response removed Ids of peers that were removed since the last call to WatchPeers().

Request

Response

Connect {:#Connect}

Initiate a connection to the peer with the given id. This method connects both BR/EDR and LE transports depending on the technologies that the peer is known to support.

  • request id The id of the peer to connect.
  • error Reports Error.FAILED if a connection to the peer cannot be initiated.
  • error Reports Error.PEER_NOT_FOUND if id is not recognized.

Request

Response

Disconnect {:#Disconnect}

Disconnect all logical links to the peer with the given id. This includes LE and BR/EDR links that have been initiated using all Access and fuchsia.bluetooth.le protocol instances.

  • request id The id of the peer to disconnect.
  • error Reports Error.PEER_NOT_FOUND if id is not recognized.

Request

Response

Forget {:#Forget}

Removes all bonding information and disconnects any existing links with the peer with the given id.

  • request id The id of the peer to forget.
  • error Reports Error.PEER_NOT_FOUND if id is not recognized.

Request

Response

Bootstrap {:#Bootstrap}

Defined in fuchsia.bluetooth.sys/bootstrap.fidl

Protocol used to initialize persistent core Bluetooth data. This protocol populates data that determine the identity of this device as perceived by other Bluetooth devices.

This protocol can be obtained only before the core Bluetooth host subsystem has generated its own identity. Once initial data is committed, this capability becomes unavailable and remains unavailable even if new Bluetooth adapters are attached.

Due to the privacy and bonding secrets involved, as well as the capability to make this device assume the Bluetooth identity of another device, this protocol should only be exposed to privileged components that can vouchsafe the origin of the data.

AddIdentities {:#AddIdentities}

Adds identities to be added to the unpopulated Bluetooth stack.

Repeated calls will append identities.

Request

Commit {:#Commit}

Writes all added bootstrapping data to the Bluetooth core stack. The server will close the channel regardless of success. Returns without error if successful and the stack will be considered initialized even if no bootstrapping data was written. Returns INVALID_HOST_IDENTITY if any host or bonded peer data is insufficient or inconsistent, with no effect (the client may retry by obtaining another protocol handle).

Request

Response

HostWatcher {:#HostWatcher}

Defined in fuchsia.bluetooth.sys/host_watcher.fidl

Protocol used to observe and manage the Bluetooth controllers on the system.

Watch {:#Watch}

Obtain a list of all available Bluetooth controllers and their state. A response is sent only if this list has changed since the last time the client has sent this message.

Request

Response

SetActive {:#SetActive}

Designates the host with the given id as active. All Bluetooth procedures will be routed over this host. Any previously assigned active host will be disabled and all of its pending procedures will be terminated.

  • error This can fail if a host with id was not found.

Request

Response

PairingDelegate {:#PairingDelegate}

Defined in fuchsia.bluetooth.sys/pairing_delegate.fidl

OnPairingRequest {:#OnPairingRequest}

Called to initiate a pairing request. The delegate must respond with “true” or “false” to either accept or reject the pairing request. If the pairing method requires a passkey this is returned as well.

Any response from this method will be ignored if the OnPairingComplete event has already been sent for peer.

The displayed_passkey parameter should be displayed to the user if method equals PairingMethod.PASSKEY_DISPLAY or PairingMethod.PASSKEY_COMPARISON. Otherwise, this parameter has no meaning and should be ignored.

The entered_passkey parameter only has meaning if method equals PairingMethod.PASSKEY_ENTRY. It will be ignored otherwise.

Request

Response

OnPairingComplete {:#OnPairingComplete}

Called if the pairing procedure for the device with the given ID is completed. This can be due to successful completion or an error (e.g. due to cancellation by the peer, a timeout, or disconnection) which is indicated by success.

Request

OnRemoteKeypress {:#OnRemoteKeypress}

Called to notify keypresses from the peer device during pairing using PairingMethod.PASSKEY_DISPLAY.

This event is used to provide key press events to the delegate for a responsive user experience as the user types the passkey on the peer device. This event will be called once for each key-press.

Request

OnLocalKeypress {:#OnLocalKeypress}

The delegate can send this event to notify the peer of local keypresses during pairing using PairingMethod.PASSKEY_ENTRY.

Response

STRUCTS

Access_MakeDiscoverable_Response {:#Access_MakeDiscoverable_Response}

generated

Access_StartDiscovery_Response {:#Access_StartDiscovery_Response}

generated

Access_Connect_Response {:#Access_Connect_Response}

generated

Access_Disconnect_Response {:#Access_Disconnect_Response}

generated

Access_Forget_Response {:#Access_Forget_Response}

generated

Bootstrap_Commit_Response {:#Bootstrap_Commit_Response}

generated

HostWatcher_SetActive_Response {:#HostWatcher_SetActive_Response}

generated

SecurityProperties {:#SecurityProperties}

Defined in fuchsia.bluetooth.sys/identity.fidl

Key {:#Key}

Defined in fuchsia.bluetooth.sys/identity.fidl

Represents a 128-bit secret key.

PeerKey {:#PeerKey}

Defined in fuchsia.bluetooth.sys/identity.fidl

Represents a key that was received from a peer.

Ltk {:#Ltk}

Defined in fuchsia.bluetooth.sys/identity.fidl

Represents a LE Long-Term peer key used for link encyrption. The |ediv| and |rand| fields are zero if distributed using LE Secure Connections pairing.

LeConnectionParameters {:#LeConnectionParameters}

Defined in fuchsia.bluetooth.sys/identity.fidl

The preferred LE connection parameters of the peer.

ENUMS

Error {:#Error}

Type: uint32

Defined in fuchsia.bluetooth.sys/access.fidl

BootstrapError {:#BootstrapError}

Type: uint32

Defined in fuchsia.bluetooth.sys/bootstrap.fidl

InputCapability {:#InputCapability}

Type: uint32

Defined in fuchsia.bluetooth.sys/pairing_delegate.fidl

Input and Output Capabilities for pairing exchanges. See Volume 3, Part C, Table 5.3 and 5.4

OutputCapability {:#OutputCapability}

Type: uint32

Defined in fuchsia.bluetooth.sys/pairing_delegate.fidl

PairingMethod {:#PairingMethod}

Type: uint32

Defined in fuchsia.bluetooth.sys/pairing_delegate.fidl

Different types required by the Security Manager for pairing methods. Bluetooth SIG has different requirements for different device capabilities.

PairingKeypress {:#PairingKeypress}

Type: uint32

Defined in fuchsia.bluetooth.sys/pairing_delegate.fidl

TechnologyType {:#TechnologyType}

Type: uint32

Defined in fuchsia.bluetooth.sys/peer.fidl

TABLES

HostInfo {:#HostInfo}

Defined in fuchsia.bluetooth.sys/host_watcher.fidl

Information about a Bluetooth controller and its associated host-subsystem state.

This field is always present.

This field is always present.

This field is always present.

LeData {:#LeData}

Defined in fuchsia.bluetooth.sys/identity.fidl

BredrData {:#BredrData}

Defined in fuchsia.bluetooth.sys/identity.fidl

BondingData {:#BondingData}

Defined in fuchsia.bluetooth.sys/identity.fidl

Represents the bonding data for a single peer.

HostData {:#HostData}

Defined in fuchsia.bluetooth.sys/identity.fidl

Represents persistent local host data.

NOTE: This key is distributed to LE peers during pairing procedures. The client must take care to assign an IRK that consistent with the local bt-host identity.

Identity {:#Identity}

Defined in fuchsia.bluetooth.sys/identity.fidl

Represents the persistent configuration of a single host-subsystem instance. This is used for identity presentation (inquiry, inquiry response, and advertisement) and for bonding secrets recall (encrypting link data to peers associated with this identity).

Each BR/EDR BD_ADDR and Low Energy public identity address used to bond should have its own Identity instance containing corresponding peers.

Each Identity instance that supports LE privacy should have an Identity Resolving Key (IRK) that is consistent with that distributed to its bonded peers.

Peer {:#Peer}

Defined in fuchsia.bluetooth.sys/peer.fidl

Represents a remote BR/EDR, LE, or dual-mode BR/EDR/LE peer.

This field is always present.

This field is always present.

NOTE: Clients should use the identifier field to keep track of peers instead of their address.

This field is always present.

This field is always present.

This field is always present.

UNIONS

Access_MakeDiscoverable_Result {:#Access_MakeDiscoverable_Result}

generated

Access_StartDiscovery_Result {:#Access_StartDiscovery_Result}

generated

Access_Connect_Result {:#Access_Connect_Result}

generated

Access_Disconnect_Result {:#Access_Disconnect_Result}

generated

Access_Forget_Result {:#Access_Forget_Result}

generated

Bootstrap_Commit_Result {:#Bootstrap_Commit_Result}

generated

HostWatcher_SetActive_Result {:#HostWatcher_SetActive_Result}

generated