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.h57
1 files changed, 56 insertions, 1 deletions
diff --git a/include/net/bluetooth/mgmt.h b/include/net/bluetooth/mgmt.h
index 5fabfa886b3..4899286ed4e 100644
--- a/include/net/bluetooth/mgmt.h
+++ b/include/net/bluetooth/mgmt.h
@@ -41,6 +41,10 @@ struct mgmt_rp_read_index_list {
41 __le16 index[0]; 41 __le16 index[0];
42} __packed; 42} __packed;
43 43
44/* Reserve one extra byte for names in management messages so that they
45 * are always guaranteed to be nul-terminated */
46#define MGMT_MAX_NAME_LENGTH (HCI_MAX_NAME_LENGTH + 1)
47
44#define MGMT_OP_READ_INFO 0x0004 48#define MGMT_OP_READ_INFO 0x0004
45struct mgmt_rp_read_info { 49struct mgmt_rp_read_info {
46 __u8 type; 50 __u8 type;
@@ -55,6 +59,7 @@ struct mgmt_rp_read_info {
55 __u16 manufacturer; 59 __u16 manufacturer;
56 __u8 hci_ver; 60 __u8 hci_ver;
57 __u16 hci_rev; 61 __u16 hci_rev;
62 __u8 name[MGMT_MAX_NAME_LENGTH];
58} __packed; 63} __packed;
59 64
60struct mgmt_mode { 65struct mgmt_mode {
@@ -167,6 +172,33 @@ struct mgmt_rp_user_confirm_reply {
167 172
168#define MGMT_OP_USER_CONFIRM_NEG_REPLY 0x0016 173#define MGMT_OP_USER_CONFIRM_NEG_REPLY 0x0016
169 174
175#define MGMT_OP_SET_LOCAL_NAME 0x0017
176struct mgmt_cp_set_local_name {
177 __u8 name[MGMT_MAX_NAME_LENGTH];
178} __packed;
179
180#define MGMT_OP_READ_LOCAL_OOB_DATA 0x0018
181struct mgmt_rp_read_local_oob_data {
182 __u8 hash[16];
183 __u8 randomizer[16];
184} __packed;
185
186#define MGMT_OP_ADD_REMOTE_OOB_DATA 0x0019
187struct mgmt_cp_add_remote_oob_data {
188 bdaddr_t bdaddr;
189 __u8 hash[16];
190 __u8 randomizer[16];
191} __packed;
192
193#define MGMT_OP_REMOVE_REMOTE_OOB_DATA 0x001A
194struct mgmt_cp_remove_remote_oob_data {
195 bdaddr_t bdaddr;
196} __packed;
197
198#define MGMT_OP_START_DISCOVERY 0x001B
199
200#define MGMT_OP_STOP_DISCOVERY 0x001C
201
170#define MGMT_EV_CMD_COMPLETE 0x0001 202#define MGMT_EV_CMD_COMPLETE 0x0001
171struct mgmt_ev_cmd_complete { 203struct mgmt_ev_cmd_complete {
172 __le16 opcode; 204 __le16 opcode;
@@ -198,8 +230,8 @@ struct mgmt_ev_controller_error {
198 230
199#define MGMT_EV_NEW_KEY 0x000A 231#define MGMT_EV_NEW_KEY 0x000A
200struct mgmt_ev_new_key { 232struct mgmt_ev_new_key {
233 __u8 store_hint;
201 struct mgmt_key_info key; 234 struct mgmt_key_info key;
202 __u8 old_key_type;
203} __packed; 235} __packed;
204 236
205#define MGMT_EV_CONNECTED 0x000B 237#define MGMT_EV_CONNECTED 0x000B
@@ -221,11 +253,13 @@ struct mgmt_ev_connect_failed {
221#define MGMT_EV_PIN_CODE_REQUEST 0x000E 253#define MGMT_EV_PIN_CODE_REQUEST 0x000E
222struct mgmt_ev_pin_code_request { 254struct mgmt_ev_pin_code_request {
223 bdaddr_t bdaddr; 255 bdaddr_t bdaddr;
256 __u8 secure;
224} __packed; 257} __packed;
225 258
226#define MGMT_EV_USER_CONFIRM_REQUEST 0x000F 259#define MGMT_EV_USER_CONFIRM_REQUEST 0x000F
227struct mgmt_ev_user_confirm_request { 260struct mgmt_ev_user_confirm_request {
228 bdaddr_t bdaddr; 261 bdaddr_t bdaddr;
262 __u8 confirm_hint;
229 __le32 value; 263 __le32 value;
230} __packed; 264} __packed;
231 265
@@ -234,3 +268,24 @@ struct mgmt_ev_auth_failed {
234 bdaddr_t bdaddr; 268 bdaddr_t bdaddr;
235 __u8 status; 269 __u8 status;
236} __packed; 270} __packed;
271
272#define MGMT_EV_LOCAL_NAME_CHANGED 0x0011
273struct mgmt_ev_local_name_changed {
274 __u8 name[MGMT_MAX_NAME_LENGTH];
275} __packed;
276
277#define MGMT_EV_DEVICE_FOUND 0x0012
278struct mgmt_ev_device_found {
279 bdaddr_t bdaddr;
280 __u8 dev_class[3];
281 __s8 rssi;
282 __u8 eir[HCI_MAX_EIR_LENGTH];
283} __packed;
284
285#define MGMT_EV_REMOTE_NAME 0x0013
286struct mgmt_ev_remote_name {
287 bdaddr_t bdaddr;
288 __u8 name[MGMT_MAX_NAME_LENGTH];
289} __packed;
290
291#define MGMT_EV_DISCOVERING 0x0014