aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorDavid S. Miller <davem@davemloft.net>2011-04-12 19:16:02 -0400
committerDavid S. Miller <davem@davemloft.net>2011-04-12 19:16:02 -0400
commita7e70158884629898d79709622a66b8ef99e4018 (patch)
treebd0cd03816f85f5bcef84000e01b0f9701f063ed /include
parent24743537d3f784a8b3014e934fad0a9c45e4e789 (diff)
parent252f4bf400df1712408fe83ba199a66a1b57ab1d (diff)
Merge branch 'for-davem' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next-2.6
Diffstat (limited to 'include')
-rw-r--r--include/linux/ath9k_platform.h5
-rw-r--r--include/linux/ieee80211.h9
-rw-r--r--include/linux/nl80211.h35
-rw-r--r--include/linux/ssb/ssb.h2
-rw-r--r--include/net/bluetooth/hci.h40
-rw-r--r--include/net/bluetooth/hci_core.h25
-rw-r--r--include/net/bluetooth/l2cap.h2
-rw-r--r--include/net/bluetooth/mgmt.h47
-rw-r--r--include/net/cfg80211.h43
9 files changed, 200 insertions, 8 deletions
diff --git a/include/linux/ath9k_platform.h b/include/linux/ath9k_platform.h
index b847fc7b93f9..020387a114e3 100644
--- a/include/linux/ath9k_platform.h
+++ b/include/linux/ath9k_platform.h
@@ -23,6 +23,11 @@
23 23
24struct ath9k_platform_data { 24struct ath9k_platform_data {
25 u16 eeprom_data[ATH9K_PLAT_EEP_MAX_WORDS]; 25 u16 eeprom_data[ATH9K_PLAT_EEP_MAX_WORDS];
26 u8 *macaddr;
27
28 int led_pin;
29 u32 gpio_mask;
30 u32 gpio_val;
26}; 31};
27 32
28#endif /* _LINUX_ATH9K_PLATFORM_H */ 33#endif /* _LINUX_ATH9K_PLATFORM_H */
diff --git a/include/linux/ieee80211.h b/include/linux/ieee80211.h
index 2d1c6117d92c..79690b710665 100644
--- a/include/linux/ieee80211.h
+++ b/include/linux/ieee80211.h
@@ -884,6 +884,15 @@ struct ieee80211_ht_cap {
884#define IEEE80211_HT_CAP_40MHZ_INTOLERANT 0x4000 884#define IEEE80211_HT_CAP_40MHZ_INTOLERANT 0x4000
885#define IEEE80211_HT_CAP_LSIG_TXOP_PROT 0x8000 885#define IEEE80211_HT_CAP_LSIG_TXOP_PROT 0x8000
886 886
887/* 802.11n HT extended capabilities masks (for extended_ht_cap_info) */
888#define IEEE80211_HT_EXT_CAP_PCO 0x0001
889#define IEEE80211_HT_EXT_CAP_PCO_TIME 0x0006
890#define IEEE80211_HT_EXT_CAP_PCO_TIME_SHIFT 1
891#define IEEE80211_HT_EXT_CAP_MCS_FB 0x0300
892#define IEEE80211_HT_EXT_CAP_MCS_FB_SHIFT 8
893#define IEEE80211_HT_EXT_CAP_HTC_SUP 0x0400
894#define IEEE80211_HT_EXT_CAP_RD_RESPONDER 0x0800
895
887/* 802.11n HT capability AMPDU settings (for ampdu_params_info) */ 896/* 802.11n HT capability AMPDU settings (for ampdu_params_info) */
888#define IEEE80211_HT_AMPDU_PARM_FACTOR 0x03 897#define IEEE80211_HT_AMPDU_PARM_FACTOR 0x03
889#define IEEE80211_HT_AMPDU_PARM_DENSITY 0x1C 898#define IEEE80211_HT_AMPDU_PARM_DENSITY 0x1C
diff --git a/include/linux/nl80211.h b/include/linux/nl80211.h
index bbfa1093f606..1832c27c520c 100644
--- a/include/linux/nl80211.h
+++ b/include/linux/nl80211.h
@@ -1222,6 +1222,36 @@ enum nl80211_rate_info {
1222}; 1222};
1223 1223
1224/** 1224/**
1225 * enum nl80211_sta_bss_param - BSS information collected by STA
1226 *
1227 * These attribute types are used with %NL80211_STA_INFO_BSS_PARAM
1228 * when getting information about the bitrate of a station.
1229 *
1230 * @__NL80211_STA_BSS_PARAM_INVALID: attribute number 0 is reserved
1231 * @NL80211_STA_BSS_PARAM_CTS_PROT: whether CTS protection is enabled (flag)
1232 * @NL80211_STA_BSS_PARAM_SHORT_PREAMBLE: whether short preamble is enabled
1233 * (flag)
1234 * @NL80211_STA_BSS_PARAM_SHORT_SLOT_TIME: whether short slot time is enabled
1235 * (flag)
1236 * @NL80211_STA_BSS_PARAM_DTIM_PERIOD: DTIM period for beaconing (u8)
1237 * @NL80211_STA_BSS_PARAM_BEACON_INTERVAL: Beacon interval (u16)
1238 * @NL80211_STA_BSS_PARAM_MAX: highest sta_bss_param number currently defined
1239 * @__NL80211_STA_BSS_PARAM_AFTER_LAST: internal use
1240 */
1241enum nl80211_sta_bss_param {
1242 __NL80211_STA_BSS_PARAM_INVALID,
1243 NL80211_STA_BSS_PARAM_CTS_PROT,
1244 NL80211_STA_BSS_PARAM_SHORT_PREAMBLE,
1245 NL80211_STA_BSS_PARAM_SHORT_SLOT_TIME,
1246 NL80211_STA_BSS_PARAM_DTIM_PERIOD,
1247 NL80211_STA_BSS_PARAM_BEACON_INTERVAL,
1248
1249 /* keep last */
1250 __NL80211_STA_BSS_PARAM_AFTER_LAST,
1251 NL80211_STA_BSS_PARAM_MAX = __NL80211_STA_BSS_PARAM_AFTER_LAST - 1
1252};
1253
1254/**
1225 * enum nl80211_sta_info - station information 1255 * enum nl80211_sta_info - station information
1226 * 1256 *
1227 * These attribute types are used with %NL80211_ATTR_STA_INFO 1257 * These attribute types are used with %NL80211_ATTR_STA_INFO
@@ -1233,7 +1263,7 @@ enum nl80211_rate_info {
1233 * @NL80211_STA_INFO_TX_BYTES: total transmitted bytes (u32, to this station) 1263 * @NL80211_STA_INFO_TX_BYTES: total transmitted bytes (u32, to this station)
1234 * @NL80211_STA_INFO_SIGNAL: signal strength of last received PPDU (u8, dBm) 1264 * @NL80211_STA_INFO_SIGNAL: signal strength of last received PPDU (u8, dBm)
1235 * @NL80211_STA_INFO_TX_BITRATE: current unicast tx rate, nested attribute 1265 * @NL80211_STA_INFO_TX_BITRATE: current unicast tx rate, nested attribute
1236 * containing info as possible, see &enum nl80211_sta_info_txrate. 1266 * containing info as possible, see &enum nl80211_rate_info
1237 * @NL80211_STA_INFO_RX_PACKETS: total received packet (u32, from this station) 1267 * @NL80211_STA_INFO_RX_PACKETS: total received packet (u32, from this station)
1238 * @NL80211_STA_INFO_TX_PACKETS: total transmitted packets (u32, to this 1268 * @NL80211_STA_INFO_TX_PACKETS: total transmitted packets (u32, to this
1239 * station) 1269 * station)
@@ -1245,6 +1275,8 @@ enum nl80211_rate_info {
1245 * @NL80211_STA_INFO_PLINK_STATE: peer link state for the station 1275 * @NL80211_STA_INFO_PLINK_STATE: peer link state for the station
1246 * @NL80211_STA_INFO_RX_BITRATE: last unicast data frame rx rate, nested 1276 * @NL80211_STA_INFO_RX_BITRATE: last unicast data frame rx rate, nested
1247 * attribute, like NL80211_STA_INFO_TX_BITRATE. 1277 * attribute, like NL80211_STA_INFO_TX_BITRATE.
1278 * @NL80211_STA_INFO_BSS_PARAM: current station's view of BSS, nested attribute
1279 * containing info as possible, see &enum nl80211_sta_bss_param
1248 * @__NL80211_STA_INFO_AFTER_LAST: internal 1280 * @__NL80211_STA_INFO_AFTER_LAST: internal
1249 * @NL80211_STA_INFO_MAX: highest possible station info attribute 1281 * @NL80211_STA_INFO_MAX: highest possible station info attribute
1250 */ 1282 */
@@ -1264,6 +1296,7 @@ enum nl80211_sta_info {
1264 NL80211_STA_INFO_TX_FAILED, 1296 NL80211_STA_INFO_TX_FAILED,
1265 NL80211_STA_INFO_SIGNAL_AVG, 1297 NL80211_STA_INFO_SIGNAL_AVG,
1266 NL80211_STA_INFO_RX_BITRATE, 1298 NL80211_STA_INFO_RX_BITRATE,
1299 NL80211_STA_INFO_BSS_PARAM,
1267 1300
1268 /* keep last */ 1301 /* keep last */
1269 __NL80211_STA_INFO_AFTER_LAST, 1302 __NL80211_STA_INFO_AFTER_LAST,
diff --git a/include/linux/ssb/ssb.h b/include/linux/ssb/ssb.h
index 9659eff52ca2..7e99b348834c 100644
--- a/include/linux/ssb/ssb.h
+++ b/include/linux/ssb/ssb.h
@@ -308,7 +308,7 @@ struct ssb_bus {
308 308
309 /* ID information about the Chip. */ 309 /* ID information about the Chip. */
310 u16 chip_id; 310 u16 chip_id;
311 u16 chip_rev; 311 u8 chip_rev;
312 u16 sprom_offset; 312 u16 sprom_offset;
313 u16 sprom_size; /* number of words in sprom */ 313 u16 sprom_size; /* number of words in sprom */
314 u8 chip_package; 314 u8 chip_package;
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
432struct 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
439struct 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
432struct hci_cp_io_capability_neg_reply { 444struct 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
541struct hci_cp_write_local_name { 555struct 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
546struct hci_rp_read_local_name { 560struct 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
622struct 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
606struct hci_rp_read_ssp_mode { 628struct 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
639struct 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 {
747struct hci_ev_remote_name { 776struct 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
988struct 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
959struct hci_ev_simple_pair_complete { 993struct 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
85struct 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
86struct hci_dev { 93struct 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);
506int hci_remove_link_key(struct hci_dev *hdev, bdaddr_t *bdaddr); 516int hci_remove_link_key(struct hci_dev *hdev, bdaddr_t *bdaddr);
507 517
518int hci_remote_oob_data_clear(struct hci_dev *hdev);
519struct oob_data *hci_find_remote_oob_data(struct hci_dev *hdev,
520 bdaddr_t *bdaddr);
521int hci_add_remote_oob_data(struct hci_dev *hdev, bdaddr_t *bdaddr, u8 *hash,
522 u8 *randomizer);
523int hci_remove_remote_oob_data(struct hci_dev *hdev, bdaddr_t *bdaddr);
524
508void hci_del_off_timer(struct hci_dev *hdev); 525void hci_del_off_timer(struct hci_dev *hdev);
509 526
510void hci_event_packet(struct hci_dev *hdev, struct sk_buff *skb); 527void 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);
767int mgmt_user_confirm_neg_reply_complete(u16 index, bdaddr_t *bdaddr, 784int mgmt_user_confirm_neg_reply_complete(u16 index, bdaddr_t *bdaddr,
768 u8 status); 785 u8 status);
769int mgmt_auth_failed(u16 index, bdaddr_t *bdaddr, u8 status); 786int mgmt_auth_failed(u16 index, bdaddr_t *bdaddr, u8 status);
787int mgmt_set_local_name_complete(u16 index, u8 *name, u8 status);
788int mgmt_read_local_oob_data_reply_complete(u16 index, u8 *hash, u8 *randomizer,
789 u8 status);
790int mgmt_device_found(u16 index, bdaddr_t *bdaddr, u8 *dev_class, s8 rssi,
791 u8 *eir);
792int 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 {
280struct l2cap_chan_list { 280struct 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
286struct l2cap_conn { 285struct 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
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,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
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
170#define MGMT_EV_CMD_COMPLETE 0x0001 198#define MGMT_EV_CMD_COMPLETE 0x0001
171struct mgmt_ev_cmd_complete { 199struct 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
267struct mgmt_ev_local_name_changed {
268 __u8 name[MGMT_MAX_NAME_LENGTH];
269} __packed;
270
271#define MGMT_EV_DEVICE_FOUND 0x0012
272struct 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
280struct 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 */
426enum station_info_flags { 427enum 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 */
487enum 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 */
502struct 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 */
2710void 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