blob: d08a89fba850691097860c4e373f1d993b48d04a [file] [log] [blame]
/* l2cap.h - Bluetooth tester headers */
/*
* Copyright (c) 2015-2016 Intel Corporation
* Copyright (c) 2022 Codecoup
*
* SPDX-License-Identifier: Apache-2.0
*/
#include <zephyr/sys/util.h>
#include <zephyr/bluetooth/addr.h>
/* L2CAP Service */
/* commands */
#define BTP_L2CAP_READ_SUPPORTED_COMMANDS 0x01
struct btp_l2cap_read_supported_commands_rp {
uint8_t data[0];
} __packed;
#define BTP_L2CAP_CONNECT_OPT_ECFC 0x01
#define BTP_L2CAP_CONNECT_OPT_HOLD_CREDIT 0x02
#define BTP_L2CAP_CONNECT 0x02
struct btp_l2cap_connect_cmd {
bt_addr_le_t address;
uint16_t psm;
uint16_t mtu;
uint8_t num;
uint8_t options;
} __packed;
struct btp_l2cap_connect_rp {
uint8_t num;
uint8_t chan_id[];
} __packed;
#define BTP_L2CAP_DISCONNECT 0x03
struct btp_l2cap_disconnect_cmd {
uint8_t chan_id;
} __packed;
#define BTP_L2CAP_SEND_DATA 0x04
struct btp_l2cap_send_data_cmd {
uint8_t chan_id;
uint16_t data_len;
uint8_t data[];
} __packed;
#define BTP_L2CAP_TRANSPORT_BREDR 0x00
#define BTP_L2CAP_TRANSPORT_LE 0x01
#define BTP_L2CAP_CONNECTION_RESPONSE_SUCCESS 0x00
#define BTP_L2CAP_CONNECTION_RESPONSE_INSUFF_AUTHEN 0x01
#define BTP_L2CAP_CONNECTION_RESPONSE_INSUFF_AUTHOR 0x02
#define BTP_L2CAP_CONNECTION_RESPONSE_INSUFF_ENC_KEY 0x03
#define BTP_L2CAP_CONNECTION_RESPONSE_INSUFF_ENCRYPTION 0x04
#define BTP_L2CAP_LISTEN 0x05
struct btp_l2cap_listen_cmd {
uint16_t psm;
uint8_t transport;
uint16_t mtu;
uint16_t response;
} __packed;
#define BTP_L2CAP_ACCEPT_CONNECTION 0x06
struct btp_l2cap_accept_connection_cmd {
uint8_t chan_id;
uint16_t result;
} __packed;
#define BTP_L2CAP_RECONFIGURE 0x07
struct btp_l2cap_reconfigure_cmd {
bt_addr_le_t address;
uint16_t mtu;
uint8_t num;
uint8_t chan_id[];
} __packed;
#define BTP_L2CAP_CREDITS 0x08
struct btp_l2cap_credits_cmd {
uint8_t chan_id;
} __packed;
#define BTP_L2CAP_DISCONNECT_EATT_CHANS 0x09
struct btp_l2cap_disconnect_eatt_chans_cmd {
bt_addr_le_t address;
uint8_t count;
} __packed;
/* events */
#define BTP_L2CAP_EV_CONNECTION_REQ 0x80
struct btp_l2cap_connection_req_ev {
uint8_t chan_id;
uint16_t psm;
bt_addr_le_t address;
} __packed;
#define BTP_L2CAP_EV_CONNECTED 0x81
struct btp_l2cap_connected_ev {
uint8_t chan_id;
uint16_t psm;
uint16_t mtu_remote;
uint16_t mps_remote;
uint16_t mtu_local;
uint16_t mps_local;
bt_addr_le_t address;
} __packed;
#define BTP_L2CAP_EV_DISCONNECTED 0x82
struct btp_l2cap_disconnected_ev {
uint16_t result;
uint8_t chan_id;
uint16_t psm;
bt_addr_le_t address;
} __packed;
#define BTP_L2CAP_EV_DATA_RECEIVED 0x83
struct btp_l2cap_data_received_ev {
uint8_t chan_id;
uint16_t data_length;
uint8_t data[];
} __packed;
#define BTP_L2CAP_EV_RECONFIGURED 0x84
struct btp_l2cap_reconfigured_ev {
uint8_t chan_id;
uint16_t mtu_remote;
uint16_t mps_remote;
uint16_t mtu_local;
uint16_t mps_local;
} __packed;