# Message Stream

Fast Pair requires an additional channel for a persistent connection with the
Providers to support Fast Pair extensions. When the Provider connects to a
supported Seeker, the Seeker will attempt to connect the message stream.

## Supported Implementation

Fast Pair supports two kinds of message stream implementations:

### RFCOMM

Use fixed UUID as the endpoint
`df21fe2c-2515-4fdb-8886-f12c4d67927c`

### L2CAP

Use GATT [PSM Characteristic](https://developers.google.com/nearby/fast-pair/specifications/bledevice#message_stream_PSM "message stream_PSM") to obtain the PSM value for L2CAP connection.

## Message Format

Once connected, messages can be exchanged in the following format:

| Octet | Data Type | Description | Mandatory? |
|---|---|---|---|
| 0 | uint8 | Message group | Mandatory |
| 1 | uint8 | Message code | Mandatory |
| 2 - 3 | uint16 | Additional data length | Mandatory |
| 4 - n |   | Additional data | Optional |

The additional data length and additional data fields should be big endian.