aboutsummaryrefslogtreecommitdiffstats
path: root/include/net/bluetooth/mgmt.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/net/bluetooth/mgmt.h')
-rw-r--r--include/net/bluetooth/mgmt.h49
1 files changed, 45 insertions, 4 deletions
diff --git a/include/net/bluetooth/mgmt.h b/include/net/bluetooth/mgmt.h
index 3e320c9cae8f..3b6880690a78 100644
--- a/include/net/bluetooth/mgmt.h
+++ b/include/net/bluetooth/mgmt.h
@@ -23,6 +23,23 @@
23 23
24#define MGMT_INDEX_NONE 0xFFFF 24#define MGMT_INDEX_NONE 0xFFFF
25 25
26#define MGMT_STATUS_SUCCESS 0x00
27#define MGMT_STATUS_UNKNOWN_COMMAND 0x01
28#define MGMT_STATUS_NOT_CONNECTED 0x02
29#define MGMT_STATUS_FAILED 0x03
30#define MGMT_STATUS_CONNECT_FAILED 0x04
31#define MGMT_STATUS_AUTH_FAILED 0x05
32#define MGMT_STATUS_NOT_PAIRED 0x06
33#define MGMT_STATUS_NO_RESOURCES 0x07
34#define MGMT_STATUS_TIMEOUT 0x08
35#define MGMT_STATUS_ALREADY_CONNECTED 0x09
36#define MGMT_STATUS_BUSY 0x0a
37#define MGMT_STATUS_REJECTED 0x0b
38#define MGMT_STATUS_NOT_SUPPORTED 0x0c
39#define MGMT_STATUS_INVALID_PARAMS 0x0d
40#define MGMT_STATUS_DISCONNECTED 0x0e
41#define MGMT_STATUS_NOT_POWERED 0x0f
42
26struct mgmt_hdr { 43struct mgmt_hdr {
27 __le16 opcode; 44 __le16 opcode;
28 __le16 index; 45 __le16 index;
@@ -119,6 +136,10 @@ struct mgmt_cp_remove_keys {
119 bdaddr_t bdaddr; 136 bdaddr_t bdaddr;
120 __u8 disconnect; 137 __u8 disconnect;
121} __packed; 138} __packed;
139struct mgmt_rp_remove_keys {
140 bdaddr_t bdaddr;
141 __u8 status;
142};
122 143
123#define MGMT_OP_DISCONNECT 0x000F 144#define MGMT_OP_DISCONNECT 0x000F
124struct mgmt_cp_disconnect { 145struct mgmt_cp_disconnect {
@@ -126,11 +147,12 @@ struct mgmt_cp_disconnect {
126} __packed; 147} __packed;
127struct mgmt_rp_disconnect { 148struct mgmt_rp_disconnect {
128 bdaddr_t bdaddr; 149 bdaddr_t bdaddr;
150 __u8 status;
129} __packed; 151} __packed;
130 152
131#define MGMT_ADDR_BREDR 0x00 153#define MGMT_ADDR_BREDR 0x00
132#define MGMT_ADDR_LE 0x01 154#define MGMT_ADDR_LE_PUBLIC 0x01
133#define MGMT_ADDR_BREDR_LE 0x02 155#define MGMT_ADDR_LE_RANDOM 0x02
134#define MGMT_ADDR_INVALID 0xff 156#define MGMT_ADDR_INVALID 0xff
135 157
136struct mgmt_addr_info { 158struct mgmt_addr_info {
@@ -167,11 +189,11 @@ struct mgmt_cp_set_io_capability {
167 189
168#define MGMT_OP_PAIR_DEVICE 0x0014 190#define MGMT_OP_PAIR_DEVICE 0x0014
169struct mgmt_cp_pair_device { 191struct mgmt_cp_pair_device {
170 bdaddr_t bdaddr; 192 struct mgmt_addr_info addr;
171 __u8 io_cap; 193 __u8 io_cap;
172} __packed; 194} __packed;
173struct mgmt_rp_pair_device { 195struct mgmt_rp_pair_device {
174 bdaddr_t bdaddr; 196 struct mgmt_addr_info addr;
175 __u8 status; 197 __u8 status;
176} __packed; 198} __packed;
177 199
@@ -210,6 +232,9 @@ struct mgmt_cp_remove_remote_oob_data {
210} __packed; 232} __packed;
211 233
212#define MGMT_OP_START_DISCOVERY 0x001B 234#define MGMT_OP_START_DISCOVERY 0x001B
235struct mgmt_cp_start_discovery {
236 __u8 type;
237} __packed;
213 238
214#define MGMT_OP_STOP_DISCOVERY 0x001C 239#define MGMT_OP_STOP_DISCOVERY 0x001C
215 240
@@ -228,6 +253,17 @@ struct mgmt_cp_set_fast_connectable {
228 __u8 enable; 253 __u8 enable;
229} __packed; 254} __packed;
230 255
256#define MGMT_OP_USER_PASSKEY_REPLY 0x0020
257struct mgmt_cp_user_passkey_reply {
258 bdaddr_t bdaddr;
259 __le32 passkey;
260} __packed;
261
262#define MGMT_OP_USER_PASSKEY_NEG_REPLY 0x0021
263struct mgmt_cp_user_passkey_neg_reply {
264 bdaddr_t bdaddr;
265} __packed;
266
231#define MGMT_EV_CMD_COMPLETE 0x0001 267#define MGMT_EV_CMD_COMPLETE 0x0001
232struct mgmt_ev_cmd_complete { 268struct mgmt_ev_cmd_complete {
233 __le16 opcode; 269 __le16 opcode;
@@ -322,3 +358,8 @@ struct mgmt_ev_device_blocked {
322struct mgmt_ev_device_unblocked { 358struct mgmt_ev_device_unblocked {
323 bdaddr_t bdaddr; 359 bdaddr_t bdaddr;
324} __packed; 360} __packed;
361
362#define MGMT_EV_USER_PASSKEY_REQUEST 0x0017
363struct mgmt_ev_user_passkey_request {
364 bdaddr_t bdaddr;
365} __packed;