diff options
Diffstat (limited to 'include/net/bluetooth/mgmt.h')
| -rw-r--r-- | include/net/bluetooth/mgmt.h | 96 | 
1 files changed, 94 insertions, 2 deletions
diff --git a/include/net/bluetooth/mgmt.h b/include/net/bluetooth/mgmt.h index 9944c3e68c5..bcffc9ae0c8 100644 --- a/include/net/bluetooth/mgmt.h +++ b/include/net/bluetooth/mgmt.h @@ -93,6 +93,10 @@ struct mgmt_rp_read_index_list {  #define MGMT_SETTING_BREDR		0x00000080  #define MGMT_SETTING_HS			0x00000100  #define MGMT_SETTING_LE			0x00000200 +#define MGMT_SETTING_ADVERTISING	0x00000400 +#define MGMT_SETTING_SECURE_CONN	0x00000800 +#define MGMT_SETTING_DEBUG_KEYS		0x00001000 +#define MGMT_SETTING_PRIVACY		0x00002000  #define MGMT_OP_READ_INFO		0x0004  #define MGMT_READ_INFO_SIZE		0 @@ -177,13 +181,16 @@ struct mgmt_cp_load_link_keys {  } __packed;  #define MGMT_LOAD_LINK_KEYS_SIZE	3 +#define MGMT_LTK_UNAUTHENTICATED	0x00 +#define MGMT_LTK_AUTHENTICATED		0x01 +  struct mgmt_ltk_info {  	struct mgmt_addr_info addr; -	__u8	authenticated; +	__u8	type;  	__u8	master;  	__u8	enc_size;  	__le16	ediv; -	__u8	rand[8]; +	__le64	rand;  	__u8	val[16];  } __packed; @@ -293,6 +300,12 @@ struct mgmt_rp_read_local_oob_data {  	__u8	hash[16];  	__u8	randomizer[16];  } __packed; +struct mgmt_rp_read_local_oob_ext_data { +	__u8	hash192[16]; +	__u8	randomizer192[16]; +	__u8	hash256[16]; +	__u8	randomizer256[16]; +} __packed;  #define MGMT_OP_ADD_REMOTE_OOB_DATA	0x0021  struct mgmt_cp_add_remote_oob_data { @@ -301,6 +314,14 @@ struct mgmt_cp_add_remote_oob_data {  	__u8	randomizer[16];  } __packed;  #define MGMT_ADD_REMOTE_OOB_DATA_SIZE	(MGMT_ADDR_INFO_SIZE + 32) +struct mgmt_cp_add_remote_oob_ext_data { +	struct mgmt_addr_info addr; +	__u8	hash192[16]; +	__u8	randomizer192[16]; +	__u8	hash256[16]; +	__u8	randomizer256[16]; +} __packed; +#define MGMT_ADD_REMOTE_OOB_EXT_DATA_SIZE (MGMT_ADDR_INFO_SIZE + 64)  #define MGMT_OP_REMOVE_REMOTE_OOB_DATA	0x0022  struct mgmt_cp_remove_remote_oob_data { @@ -351,6 +372,58 @@ struct mgmt_cp_set_device_id {  } __packed;  #define MGMT_SET_DEVICE_ID_SIZE		8 +#define MGMT_OP_SET_ADVERTISING		0x0029 + +#define MGMT_OP_SET_BREDR		0x002A + +#define MGMT_OP_SET_STATIC_ADDRESS	0x002B +struct mgmt_cp_set_static_address { +	bdaddr_t bdaddr; +} __packed; +#define MGMT_SET_STATIC_ADDRESS_SIZE	6 + +#define MGMT_OP_SET_SCAN_PARAMS		0x002C +struct mgmt_cp_set_scan_params { +	__le16	interval; +	__le16	window; +} __packed; +#define MGMT_SET_SCAN_PARAMS_SIZE	4 + +#define MGMT_OP_SET_SECURE_CONN		0x002D + +#define MGMT_OP_SET_DEBUG_KEYS		0x002E + +#define MGMT_OP_SET_PRIVACY		0x002F +struct mgmt_cp_set_privacy { +	__u8 privacy; +	__u8 irk[16]; +} __packed; +#define MGMT_SET_PRIVACY_SIZE		17 + +struct mgmt_irk_info { +	struct mgmt_addr_info addr; +	__u8 val[16]; +} __packed; + +#define MGMT_OP_LOAD_IRKS		0x0030 +struct mgmt_cp_load_irks { +	__le16 irk_count; +	struct mgmt_irk_info irks[0]; +} __packed; +#define MGMT_LOAD_IRKS_SIZE		2 + +#define MGMT_OP_GET_CONN_INFO		0x0031 +struct mgmt_cp_get_conn_info { +	struct mgmt_addr_info addr; +} __packed; +#define MGMT_GET_CONN_INFO_SIZE		MGMT_ADDR_INFO_SIZE +struct mgmt_rp_get_conn_info { +	struct mgmt_addr_info addr; +	__s8	rssi; +	__s8	tx_power; +	__s8	max_tx_power; +} __packed; +  #define MGMT_EV_CMD_COMPLETE		0x0001  struct mgmt_ev_cmd_complete {  	__le16	opcode; @@ -486,3 +559,22 @@ struct mgmt_ev_passkey_notify {  	__le32	passkey;  	__u8	entered;  } __packed; + +#define MGMT_EV_NEW_IRK			0x0018 +struct mgmt_ev_new_irk { +	__u8     store_hint; +	bdaddr_t rpa; +	struct mgmt_irk_info irk; +} __packed; + +struct mgmt_csrk_info { +	struct mgmt_addr_info addr; +	__u8 master; +	__u8 val[16]; +} __packed; + +#define MGMT_EV_NEW_CSRK		0x0019 +struct mgmt_ev_new_csrk { +	__u8 store_hint; +	struct mgmt_csrk_info key; +} __packed;  | 
