11#ifndef ZEPHYR_INCLUDE_BLUETOOTH_ISO_H_
12#define ZEPHYR_INCLUDE_BLUETOOTH_ISO_H_
33#define BT_ISO_CHAN_SEND_RESERVE BT_BUF_ISO_SIZE(0)
44#define BT_ISO_SDU_BUF_SIZE(mtu) BT_BUF_ISO_SIZE(mtu)
47#define BT_ISO_DATA_PATH_HCI 0x00
50#define BT_ISO_INTERVAL_MIN 0x0000FF
52#define BT_ISO_INTERVAL_MAX 0x0FFFFF
54#define BT_ISO_LATENCY_MIN 0x0005
56#define BT_ISO_LATENCY_MAX 0x0FA0
58#define BT_ISO_PACKING_SEQUENTIAL 0x00
60#define BT_ISO_PACKING_INTERLEAVED 0x01
62#define BT_ISO_FRAMING_UNFRAMED 0x00
64#define BT_ISO_FRAMING_FRAMED 0x01
66#define BT_ISO_MAX_GROUP_ISO_COUNT 0x1F
68#define BT_ISO_MAX_SDU 0x0FFF
70#define BT_ISO_SYNC_TIMEOUT_MIN 0x000A
72#define BT_ISO_SYNC_TIMEOUT_MAX 0x4000
74#define BT_ISO_SYNC_MSE_ANY 0x00
76#define BT_ISO_SYNC_MSE_MIN 0x01
78#define BT_ISO_SYNC_MSE_MAX 0x1F
80#define BT_ISO_CONNECTED_RTN_MAX 0xFF
82#define BT_ISO_BROADCAST_RTN_MAX 0x1E
84#define BT_ISO_BROADCAST_CODE_SIZE 16
527 struct bt_iso_cig **out_cig);
646 struct bt_iso_big **out_big);
665 struct bt_iso_big **out_big);
Bluetooth data buffer API.
ZTEST_BMEM int count
Definition: main.c:33
Bluetooth connection handling.
bt_security_t
Definition: conn.h:664
#define BT_ISO_BROADCAST_CODE_SIZE
Definition: iso.h:84
enum bt_iso_chan_type bt_iso_chan_get_type(const struct bt_iso_chan *chan)
Get the type of an ISO channel.
int bt_iso_chan_get_info(const struct bt_iso_chan *chan, struct bt_iso_info *info)
Get ISO channel info.
int bt_iso_big_sync(struct bt_le_per_adv_sync *sync, struct bt_iso_big_sync_param *param, struct bt_iso_big **out_big)
Creates a BIG as a receiver.
int bt_iso_chan_disconnect(struct bt_iso_chan *chan)
Disconnect ISO channel.
int bt_iso_chan_connect(const struct bt_iso_connect_param *param, size_t count)
Connect ISO channels on ACL connections.
int bt_iso_cig_reconfigure(struct bt_iso_cig *cig, const struct bt_iso_cig_param *param)
Reconfigure a CIG as a central.
int bt_iso_big_terminate(struct bt_iso_big *big)
Terminates a BIG as a broadcaster or receiver.
int bt_iso_big_create(struct bt_le_ext_adv *padv, struct bt_iso_big_create_param *param, struct bt_iso_big **out_big)
Creates a BIG as a broadcaster.
int bt_iso_cig_terminate(struct bt_iso_cig *cig)
Terminates a CIG as a central.
int bt_iso_chan_send(struct bt_iso_chan *chan, struct net_buf *buf)
Send data to ISO channel.
int bt_iso_cig_create(const struct bt_iso_cig_param *param, struct bt_iso_cig **out_cig)
Creates a CIG as a central.
bt_iso_chan_type
Definition: iso.h:102
int bt_iso_server_register(struct bt_iso_server *server)
Register ISO server.
@ BT_ISO_CONNECT
Definition: iso.h:94
@ BT_ISO_DISCONNECTED
Definition: iso.h:92
@ BT_ISO_DISCONNECT
Definition: iso.h:98
@ BT_ISO_CONNECTED
Definition: iso.h:96
@ BT_ISO_FLAGS_VALID
Definition: iso.h:182
@ BT_ISO_FLAGS_LOST
Definition: iso.h:189
@ BT_ISO_FLAGS_ERROR
The ISO packet may possibly contain errors.
Definition: iso.h:187
@ BT_ISO_CHAN_TYPE_NONE
Definition: iso.h:103
@ BT_ISO_CHAN_TYPE_BROADCASTER
Definition: iso.h:105
@ BT_ISO_CHAN_TYPE_SYNC_RECEIVER
Definition: iso.h:106
@ BT_ISO_CHAN_TYPE_CONNECTED
Definition: iso.h:104
struct _snode sys_snode_t
Definition: slist.h:33
__UINT32_TYPE__ uint32_t
Definition: stdint.h:60
__UINT8_TYPE__ uint8_t
Definition: stdint.h:58
__UINT16_TYPE__ uint16_t
Definition: stdint.h:59
struct bt_conn * acl
Definition: iso.h:466
uint8_t cis_id
The ID of the connected isochronous stream (CIS) on the central.
Definition: iso.h:478
uint8_t cig_id
The ID of the connected isochronous group (CIG) on the central.
Definition: iso.h:472
bool encryption
Definition: iso.h:304
struct bt_iso_chan ** bis_channels
Definition: iso.h:269
uint32_t interval
Channel interval in us.
Definition: iso.h:282
uint8_t num_bis
Number channels in bis_channels.
Definition: iso.h:276
uint8_t framing
Channel framing mode.
Definition: iso.h:301
uint8_t bcode[16]
Broadcast code.
Definition: iso.h:311
uint16_t latency
Channel Latency in ms.
Definition: iso.h:288
uint8_t packing
Channel packing mode.
Definition: iso.h:294
uint32_t bis_bitfield
Definition: iso.h:331
uint32_t mse
Maximum subevents.
Definition: iso.h:342
uint16_t sync_timeout
Synchronization timeout for the BIG (N * 10 MS)
Definition: iso.h:348
bool encryption
Definition: iso.h:351
uint8_t num_bis
Number channels in bis_channels.
Definition: iso.h:323
uint8_t bcode[16]
Broadcast code.
Definition: iso.h:358
struct bt_iso_chan ** bis_channels
Definition: iso.h:316
uint8_t framing
Definition: iso.h:399
uint8_t num_bis
Definition: iso.h:369
uint8_t sub_evt_count
Definition: iso.h:372
uint8_t phy
Definition: iso.h:396
uint32_t sdu_interval
Definition: iso.h:390
uint8_t offset
Definition: iso.h:381
uint8_t sid
Definition: iso.h:366
bool encryption
Definition: iso.h:402
uint8_t rep_count
Definition: iso.h:384
uint16_t max_sdu
Definition: iso.h:393
const bt_addr_le_t * addr
Definition: iso.h:363
uint8_t burst_number
Definition: iso.h:378
uint16_t max_pdu
Definition: iso.h:387
uint16_t iso_interval
Definition: iso.h:375
ISO Channel IO QoS structure.
Definition: iso.h:124
uint8_t phy
Definition: iso.h:130
uint8_t rtn
Definition: iso.h:132
struct bt_iso_chan_path * path
Channel data path reference.
Definition: iso.h:138
uint16_t sdu
Definition: iso.h:126
ISO Channel operations structure.
Definition: iso.h:406
void(* sent)(struct bt_iso_chan *chan)
Channel sent callback.
Definition: iso.h:461
void(* disconnected)(struct bt_iso_chan *chan, uint8_t reason)
Channel disconnected callback.
Definition: iso.h:429
void(* connected)(struct bt_iso_chan *chan)
Channel connected callback.
Definition: iso.h:418
void(* recv)(struct bt_iso_chan *chan, const struct bt_iso_recv_info *info, struct net_buf *buf)
Channel recv callback.
Definition: iso.h:451
ISO Channel Data Path structure.
Definition: iso.h:162
uint8_t cc[0]
Definition: iso.h:176
uint8_t cc_len
Definition: iso.h:174
uint8_t format
Definition: iso.h:166
uint8_t pid
Definition: iso.h:164
uint16_t cid
Definition: iso.h:168
uint32_t delay
Definition: iso.h:172
uint16_t vid
Definition: iso.h:170
ISO Channel QoS structure.
Definition: iso.h:142
struct bt_iso_chan_io_qos * tx
Channel Transmission QoS.
Definition: iso.h:158
struct bt_iso_chan_io_qos * rx
Channel Receiving QoS.
Definition: iso.h:150
ISO Channel structure.
Definition: iso.h:110
struct bt_iso_chan_ops * ops
Definition: iso.h:114
bt_security_t required_sec_level
Definition: iso.h:118
struct bt_conn * iso
Definition: iso.h:112
sys_snode_t node
Definition: iso.h:120
struct bt_iso_chan_qos * qos
Definition: iso.h:116
uint8_t state
Definition: iso.h:117
uint16_t latency
Channel Latency in ms.
Definition: iso.h:231
uint8_t packing
Channel packing mode.
Definition: iso.h:246
uint8_t framing
Channel framing mode.
Definition: iso.h:253
uint8_t num_cis
Number channels in cis_channels.
Definition: iso.h:219
uint8_t sca
Channel peripherals sleep clock accuracy Only for CIS.
Definition: iso.h:240
struct bt_iso_chan ** cis_channels
Array of pointers to CIS channels.
Definition: iso.h:212
uint32_t interval
Channel interval in us.
Definition: iso.h:225
struct bt_conn * acl
Definition: iso.h:261
struct bt_iso_chan * iso_chan
Definition: iso.h:258
enum bt_iso_chan_type type
Definition: iso.h:613
ISO Meta Data structure for received ISO packets.
Definition: iso.h:193
uint8_t flags
Definition: iso.h:203
uint32_t ts
Definition: iso.h:197
uint16_t sn
Definition: iso.h:200
ISO Server structure.
Definition: iso.h:482
bt_security_t sec_level
Definition: iso.h:484
int(* accept)(const struct bt_iso_accept_info *info, struct bt_iso_chan **chan)
Server accept callback.
Definition: iso.h:496
Network buffer representation.
Definition: buf.h:915