diff options
author | John W. Linville <linville@tuxdriver.com> | 2011-04-12 16:18:44 -0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2011-04-12 16:18:44 -0400 |
commit | 252f4bf400df1712408fe83ba199a66a1b57ab1d (patch) | |
tree | e07fa00abdd55b31e22567786c78635f32c6a66c /include/net | |
parent | 6ba1037c3d871ab70e342631516dbf841c35b086 (diff) | |
parent | b37e3b6d64358604960b35e8ecbb7aed22e0926e (diff) |
Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next-2.6 into for-davem
Conflicts:
drivers/net/wireless/ath/ar9170/main.c
drivers/net/wireless/ath/ar9170/phy.c
drivers/net/wireless/zd1211rw/zd_rf_rf2959.c
Diffstat (limited to 'include/net')
-rw-r--r-- | include/net/bluetooth/hci.h | 40 | ||||
-rw-r--r-- | include/net/bluetooth/hci_core.h | 25 | ||||
-rw-r--r-- | include/net/bluetooth/l2cap.h | 2 | ||||
-rw-r--r-- | include/net/bluetooth/mgmt.h | 47 | ||||
-rw-r--r-- | include/net/cfg80211.h | 43 |
5 files changed, 151 insertions, 6 deletions
diff --git a/include/net/bluetooth/hci.h b/include/net/bluetooth/hci.h index 2c0d309c7381..6138e313d175 100644 --- a/include/net/bluetooth/hci.h +++ b/include/net/bluetooth/hci.h | |||
@@ -428,6 +428,18 @@ struct hci_rp_user_confirm_reply { | |||
428 | 428 | ||
429 | #define HCI_OP_USER_CONFIRM_NEG_REPLY 0x042d | 429 | #define HCI_OP_USER_CONFIRM_NEG_REPLY 0x042d |
430 | 430 | ||
431 | #define HCI_OP_REMOTE_OOB_DATA_REPLY 0x0430 | ||
432 | struct hci_cp_remote_oob_data_reply { | ||
433 | bdaddr_t bdaddr; | ||
434 | __u8 hash[16]; | ||
435 | __u8 randomizer[16]; | ||
436 | } __packed; | ||
437 | |||
438 | #define HCI_OP_REMOTE_OOB_DATA_NEG_REPLY 0x0433 | ||
439 | struct hci_cp_remote_oob_data_neg_reply { | ||
440 | bdaddr_t bdaddr; | ||
441 | } __packed; | ||
442 | |||
431 | #define HCI_OP_IO_CAPABILITY_NEG_REPLY 0x0434 | 443 | #define HCI_OP_IO_CAPABILITY_NEG_REPLY 0x0434 |
432 | struct hci_cp_io_capability_neg_reply { | 444 | struct hci_cp_io_capability_neg_reply { |
433 | bdaddr_t bdaddr; | 445 | bdaddr_t bdaddr; |
@@ -537,15 +549,17 @@ struct hci_cp_delete_stored_link_key { | |||
537 | __u8 delete_all; | 549 | __u8 delete_all; |
538 | } __packed; | 550 | } __packed; |
539 | 551 | ||
552 | #define HCI_MAX_NAME_LENGTH 248 | ||
553 | |||
540 | #define HCI_OP_WRITE_LOCAL_NAME 0x0c13 | 554 | #define HCI_OP_WRITE_LOCAL_NAME 0x0c13 |
541 | struct hci_cp_write_local_name { | 555 | struct hci_cp_write_local_name { |
542 | __u8 name[248]; | 556 | __u8 name[HCI_MAX_NAME_LENGTH]; |
543 | } __packed; | 557 | } __packed; |
544 | 558 | ||
545 | #define HCI_OP_READ_LOCAL_NAME 0x0c14 | 559 | #define HCI_OP_READ_LOCAL_NAME 0x0c14 |
546 | struct hci_rp_read_local_name { | 560 | struct hci_rp_read_local_name { |
547 | __u8 status; | 561 | __u8 status; |
548 | __u8 name[248]; | 562 | __u8 name[HCI_MAX_NAME_LENGTH]; |
549 | } __packed; | 563 | } __packed; |
550 | 564 | ||
551 | #define HCI_OP_WRITE_CA_TIMEOUT 0x0c16 | 565 | #define HCI_OP_WRITE_CA_TIMEOUT 0x0c16 |
@@ -602,6 +616,14 @@ struct hci_cp_host_buffer_size { | |||
602 | 616 | ||
603 | #define HCI_OP_WRITE_INQUIRY_MODE 0x0c45 | 617 | #define HCI_OP_WRITE_INQUIRY_MODE 0x0c45 |
604 | 618 | ||
619 | #define HCI_MAX_EIR_LENGTH 240 | ||
620 | |||
621 | #define HCI_OP_WRITE_EIR 0x0c52 | ||
622 | struct hci_cp_write_eir { | ||
623 | uint8_t fec; | ||
624 | uint8_t data[HCI_MAX_EIR_LENGTH]; | ||
625 | } __packed; | ||
626 | |||
605 | #define HCI_OP_READ_SSP_MODE 0x0c55 | 627 | #define HCI_OP_READ_SSP_MODE 0x0c55 |
606 | struct hci_rp_read_ssp_mode { | 628 | struct hci_rp_read_ssp_mode { |
607 | __u8 status; | 629 | __u8 status; |
@@ -613,6 +635,13 @@ struct hci_cp_write_ssp_mode { | |||
613 | __u8 mode; | 635 | __u8 mode; |
614 | } __packed; | 636 | } __packed; |
615 | 637 | ||
638 | #define HCI_OP_READ_LOCAL_OOB_DATA 0x0c57 | ||
639 | struct hci_rp_read_local_oob_data { | ||
640 | __u8 status; | ||
641 | __u8 hash[16]; | ||
642 | __u8 randomizer[16]; | ||
643 | } __packed; | ||
644 | |||
616 | #define HCI_OP_READ_INQ_RSP_TX_POWER 0x0c58 | 645 | #define HCI_OP_READ_INQ_RSP_TX_POWER 0x0c58 |
617 | 646 | ||
618 | #define HCI_OP_READ_LOCAL_VERSION 0x1001 | 647 | #define HCI_OP_READ_LOCAL_VERSION 0x1001 |
@@ -747,7 +776,7 @@ struct hci_ev_auth_complete { | |||
747 | struct hci_ev_remote_name { | 776 | struct hci_ev_remote_name { |
748 | __u8 status; | 777 | __u8 status; |
749 | bdaddr_t bdaddr; | 778 | bdaddr_t bdaddr; |
750 | __u8 name[248]; | 779 | __u8 name[HCI_MAX_NAME_LENGTH]; |
751 | } __packed; | 780 | } __packed; |
752 | 781 | ||
753 | #define HCI_EV_ENCRYPT_CHANGE 0x08 | 782 | #define HCI_EV_ENCRYPT_CHANGE 0x08 |
@@ -955,6 +984,11 @@ struct hci_ev_user_confirm_req { | |||
955 | __le32 passkey; | 984 | __le32 passkey; |
956 | } __packed; | 985 | } __packed; |
957 | 986 | ||
987 | #define HCI_EV_REMOTE_OOB_DATA_REQUEST 0x35 | ||
988 | struct hci_ev_remote_oob_data_request { | ||
989 | bdaddr_t bdaddr; | ||
990 | } __packed; | ||
991 | |||
958 | #define HCI_EV_SIMPLE_PAIR_COMPLETE 0x36 | 992 | #define HCI_EV_SIMPLE_PAIR_COMPLETE 0x36 |
959 | struct hci_ev_simple_pair_complete { | 993 | struct hci_ev_simple_pair_complete { |
960 | __u8 status; | 994 | __u8 status; |
diff --git a/include/net/bluetooth/hci_core.h b/include/net/bluetooth/hci_core.h index 441dadbf6a89..4093133c1283 100644 --- a/include/net/bluetooth/hci_core.h +++ b/include/net/bluetooth/hci_core.h | |||
@@ -82,6 +82,13 @@ struct link_key { | |||
82 | u8 pin_len; | 82 | u8 pin_len; |
83 | }; | 83 | }; |
84 | 84 | ||
85 | struct oob_data { | ||
86 | struct list_head list; | ||
87 | bdaddr_t bdaddr; | ||
88 | u8 hash[16]; | ||
89 | u8 randomizer[16]; | ||
90 | }; | ||
91 | |||
85 | #define NUM_REASSEMBLY 4 | 92 | #define NUM_REASSEMBLY 4 |
86 | struct hci_dev { | 93 | struct hci_dev { |
87 | struct list_head list; | 94 | struct list_head list; |
@@ -94,7 +101,8 @@ struct hci_dev { | |||
94 | __u8 bus; | 101 | __u8 bus; |
95 | __u8 dev_type; | 102 | __u8 dev_type; |
96 | bdaddr_t bdaddr; | 103 | bdaddr_t bdaddr; |
97 | __u8 dev_name[248]; | 104 | __u8 dev_name[HCI_MAX_NAME_LENGTH]; |
105 | __u8 eir[HCI_MAX_EIR_LENGTH]; | ||
98 | __u8 dev_class[3]; | 106 | __u8 dev_class[3]; |
99 | __u8 major_class; | 107 | __u8 major_class; |
100 | __u8 minor_class; | 108 | __u8 minor_class; |
@@ -169,6 +177,8 @@ struct hci_dev { | |||
169 | 177 | ||
170 | struct list_head link_keys; | 178 | struct list_head link_keys; |
171 | 179 | ||
180 | struct list_head remote_oob_data; | ||
181 | |||
172 | struct hci_dev_stats stat; | 182 | struct hci_dev_stats stat; |
173 | 183 | ||
174 | struct sk_buff_head driver_init; | 184 | struct sk_buff_head driver_init; |
@@ -505,6 +515,13 @@ int hci_add_link_key(struct hci_dev *hdev, int new_key, bdaddr_t *bdaddr, | |||
505 | u8 *key, u8 type, u8 pin_len); | 515 | u8 *key, u8 type, u8 pin_len); |
506 | int hci_remove_link_key(struct hci_dev *hdev, bdaddr_t *bdaddr); | 516 | int hci_remove_link_key(struct hci_dev *hdev, bdaddr_t *bdaddr); |
507 | 517 | ||
518 | int hci_remote_oob_data_clear(struct hci_dev *hdev); | ||
519 | struct oob_data *hci_find_remote_oob_data(struct hci_dev *hdev, | ||
520 | bdaddr_t *bdaddr); | ||
521 | int hci_add_remote_oob_data(struct hci_dev *hdev, bdaddr_t *bdaddr, u8 *hash, | ||
522 | u8 *randomizer); | ||
523 | int hci_remove_remote_oob_data(struct hci_dev *hdev, bdaddr_t *bdaddr); | ||
524 | |||
508 | void hci_del_off_timer(struct hci_dev *hdev); | 525 | void hci_del_off_timer(struct hci_dev *hdev); |
509 | 526 | ||
510 | void hci_event_packet(struct hci_dev *hdev, struct sk_buff *skb); | 527 | void hci_event_packet(struct hci_dev *hdev, struct sk_buff *skb); |
@@ -767,6 +784,12 @@ int mgmt_user_confirm_reply_complete(u16 index, bdaddr_t *bdaddr, u8 status); | |||
767 | int mgmt_user_confirm_neg_reply_complete(u16 index, bdaddr_t *bdaddr, | 784 | int mgmt_user_confirm_neg_reply_complete(u16 index, bdaddr_t *bdaddr, |
768 | u8 status); | 785 | u8 status); |
769 | int mgmt_auth_failed(u16 index, bdaddr_t *bdaddr, u8 status); | 786 | int mgmt_auth_failed(u16 index, bdaddr_t *bdaddr, u8 status); |
787 | int mgmt_set_local_name_complete(u16 index, u8 *name, u8 status); | ||
788 | int mgmt_read_local_oob_data_reply_complete(u16 index, u8 *hash, u8 *randomizer, | ||
789 | u8 status); | ||
790 | int mgmt_device_found(u16 index, bdaddr_t *bdaddr, u8 *dev_class, s8 rssi, | ||
791 | u8 *eir); | ||
792 | int mgmt_remote_name(u16 index, bdaddr_t *bdaddr, u8 *name); | ||
770 | 793 | ||
771 | /* HCI info for socket */ | 794 | /* HCI info for socket */ |
772 | #define hci_pi(sk) ((struct hci_pinfo *) sk) | 795 | #define hci_pi(sk) ((struct hci_pinfo *) sk) |
diff --git a/include/net/bluetooth/l2cap.h b/include/net/bluetooth/l2cap.h index 4f4bff1eaed6..2b9ca0d5c4a0 100644 --- a/include/net/bluetooth/l2cap.h +++ b/include/net/bluetooth/l2cap.h | |||
@@ -280,7 +280,6 @@ struct l2cap_conn_param_update_rsp { | |||
280 | struct l2cap_chan_list { | 280 | struct l2cap_chan_list { |
281 | struct sock *head; | 281 | struct sock *head; |
282 | rwlock_t lock; | 282 | rwlock_t lock; |
283 | long num; | ||
284 | }; | 283 | }; |
285 | 284 | ||
286 | struct l2cap_conn { | 285 | struct l2cap_conn { |
@@ -302,7 +301,6 @@ struct l2cap_conn { | |||
302 | 301 | ||
303 | struct sk_buff *rx_skb; | 302 | struct sk_buff *rx_skb; |
304 | __u32 rx_len; | 303 | __u32 rx_len; |
305 | __u8 rx_ident; | ||
306 | __u8 tx_ident; | 304 | __u8 tx_ident; |
307 | 305 | ||
308 | __u8 disc_reason; | 306 | __u8 disc_reason; |
diff --git a/include/net/bluetooth/mgmt.h b/include/net/bluetooth/mgmt.h index 5fabfa886b3e..6b6ff92ab499 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 |
45 | struct mgmt_rp_read_info { | 49 | struct 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 | ||
60 | struct mgmt_mode { | 65 | struct mgmt_mode { |
@@ -167,6 +172,29 @@ 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 | ||
176 | struct mgmt_cp_set_local_name { | ||
177 | __u8 name[MGMT_MAX_NAME_LENGTH]; | ||
178 | } __packed; | ||
179 | |||
180 | #define MGMT_OP_READ_LOCAL_OOB_DATA 0x0018 | ||
181 | struct 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 | ||
187 | struct 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 | ||
194 | struct mgmt_cp_remove_remote_oob_data { | ||
195 | bdaddr_t bdaddr; | ||
196 | } __packed; | ||
197 | |||
170 | #define MGMT_EV_CMD_COMPLETE 0x0001 | 198 | #define MGMT_EV_CMD_COMPLETE 0x0001 |
171 | struct mgmt_ev_cmd_complete { | 199 | struct mgmt_ev_cmd_complete { |
172 | __le16 opcode; | 200 | __le16 opcode; |
@@ -234,3 +262,22 @@ struct mgmt_ev_auth_failed { | |||
234 | bdaddr_t bdaddr; | 262 | bdaddr_t bdaddr; |
235 | __u8 status; | 263 | __u8 status; |
236 | } __packed; | 264 | } __packed; |
265 | |||
266 | #define MGMT_EV_LOCAL_NAME_CHANGED 0x0011 | ||
267 | struct mgmt_ev_local_name_changed { | ||
268 | __u8 name[MGMT_MAX_NAME_LENGTH]; | ||
269 | } __packed; | ||
270 | |||
271 | #define MGMT_EV_DEVICE_FOUND 0x0012 | ||
272 | struct mgmt_ev_device_found { | ||
273 | bdaddr_t bdaddr; | ||
274 | __u8 dev_class[3]; | ||
275 | __s8 rssi; | ||
276 | __u8 eir[HCI_MAX_EIR_LENGTH]; | ||
277 | } __packed; | ||
278 | |||
279 | #define MGMT_EV_REMOTE_NAME 0x0013 | ||
280 | struct mgmt_ev_remote_name { | ||
281 | bdaddr_t bdaddr; | ||
282 | __u8 name[MGMT_MAX_NAME_LENGTH]; | ||
283 | } __packed; | ||
diff --git a/include/net/cfg80211.h b/include/net/cfg80211.h index b2b9d28cb4ab..ba7384acf4e0 100644 --- a/include/net/cfg80211.h +++ b/include/net/cfg80211.h | |||
@@ -422,6 +422,7 @@ struct station_parameters { | |||
422 | * @STATION_INFO_RX_DROP_MISC: @rx_dropped_misc filled | 422 | * @STATION_INFO_RX_DROP_MISC: @rx_dropped_misc filled |
423 | * @STATION_INFO_SIGNAL_AVG: @signal_avg filled | 423 | * @STATION_INFO_SIGNAL_AVG: @signal_avg filled |
424 | * @STATION_INFO_RX_BITRATE: @rxrate fields are filled | 424 | * @STATION_INFO_RX_BITRATE: @rxrate fields are filled |
425 | * @STATION_INFO_BSS_PARAM: @bss_param filled | ||
425 | */ | 426 | */ |
426 | enum station_info_flags { | 427 | enum station_info_flags { |
427 | STATION_INFO_INACTIVE_TIME = 1<<0, | 428 | STATION_INFO_INACTIVE_TIME = 1<<0, |
@@ -439,6 +440,7 @@ enum station_info_flags { | |||
439 | STATION_INFO_RX_DROP_MISC = 1<<12, | 440 | STATION_INFO_RX_DROP_MISC = 1<<12, |
440 | STATION_INFO_SIGNAL_AVG = 1<<13, | 441 | STATION_INFO_SIGNAL_AVG = 1<<13, |
441 | STATION_INFO_RX_BITRATE = 1<<14, | 442 | STATION_INFO_RX_BITRATE = 1<<14, |
443 | STATION_INFO_BSS_PARAM = 1<<15, | ||
442 | }; | 444 | }; |
443 | 445 | ||
444 | /** | 446 | /** |
@@ -473,6 +475,37 @@ struct rate_info { | |||
473 | }; | 475 | }; |
474 | 476 | ||
475 | /** | 477 | /** |
478 | * enum station_info_rate_flags - bitrate info flags | ||
479 | * | ||
480 | * Used by the driver to indicate the specific rate transmission | ||
481 | * type for 802.11n transmissions. | ||
482 | * | ||
483 | * @BSS_PARAM_FLAGS_CTS_PROT: whether CTS protection is enabled | ||
484 | * @BSS_PARAM_FLAGS_SHORT_PREAMBLE: whether short preamble is enabled | ||
485 | * @BSS_PARAM_FLAGS_SHORT_SLOT_TIME: whether short slot time is enabled | ||
486 | */ | ||
487 | enum bss_param_flags { | ||
488 | BSS_PARAM_FLAGS_CTS_PROT = 1<<0, | ||
489 | BSS_PARAM_FLAGS_SHORT_PREAMBLE = 1<<1, | ||
490 | BSS_PARAM_FLAGS_SHORT_SLOT_TIME = 1<<2, | ||
491 | }; | ||
492 | |||
493 | /** | ||
494 | * struct sta_bss_parameters - BSS parameters for the attached station | ||
495 | * | ||
496 | * Information about the currently associated BSS | ||
497 | * | ||
498 | * @flags: bitflag of flags from &enum bss_param_flags | ||
499 | * @dtim_period: DTIM period for the BSS | ||
500 | * @beacon_interval: beacon interval | ||
501 | */ | ||
502 | struct sta_bss_parameters { | ||
503 | u8 flags; | ||
504 | u8 dtim_period; | ||
505 | u16 beacon_interval; | ||
506 | }; | ||
507 | |||
508 | /** | ||
476 | * struct station_info - station information | 509 | * struct station_info - station information |
477 | * | 510 | * |
478 | * Station information filled by driver for get_station() and dump_station. | 511 | * Station information filled by driver for get_station() and dump_station. |
@@ -515,6 +548,7 @@ struct station_info { | |||
515 | u32 tx_retries; | 548 | u32 tx_retries; |
516 | u32 tx_failed; | 549 | u32 tx_failed; |
517 | u32 rx_dropped_misc; | 550 | u32 rx_dropped_misc; |
551 | struct sta_bss_parameters bss_param; | ||
518 | 552 | ||
519 | int generation; | 553 | int generation; |
520 | }; | 554 | }; |
@@ -2667,6 +2701,15 @@ void cfg80211_new_sta(struct net_device *dev, const u8 *mac_addr, | |||
2667 | struct station_info *sinfo, gfp_t gfp); | 2701 | struct station_info *sinfo, gfp_t gfp); |
2668 | 2702 | ||
2669 | /** | 2703 | /** |
2704 | * cfg80211_del_sta - notify userspace about deletion of a station | ||
2705 | * | ||
2706 | * @dev: the netdev | ||
2707 | * @mac_addr: the station's address | ||
2708 | * @gfp: allocation flags | ||
2709 | */ | ||
2710 | void cfg80211_del_sta(struct net_device *dev, const u8 *mac_addr, gfp_t gfp); | ||
2711 | |||
2712 | /** | ||
2670 | * cfg80211_rx_mgmt - notification of received, unprocessed management frame | 2713 | * cfg80211_rx_mgmt - notification of received, unprocessed management frame |
2671 | * @dev: network device | 2714 | * @dev: network device |
2672 | * @freq: Frequency on which the frame was received in MHz | 2715 | * @freq: Frequency on which the frame was received in MHz |