diff options
author | David S. Miller <davem@davemloft.net> | 2010-06-11 14:34:06 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2010-06-11 14:34:06 -0400 |
commit | 14599f1e341ee219abdd15f4eee5872d6f2d29f1 (patch) | |
tree | 3875181429010e58416ab34e6c06ef42de52e756 /include/net | |
parent | d8d1f30b95a635dbd610dcc5eb641aca8f4768cf (diff) | |
parent | 832c10fd733893f86c63bde1c65b005d5a2fe346 (diff) |
Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next-2.6
Conflicts:
drivers/net/wireless/wl12xx/wl1271.h
drivers/net/wireless/wl12xx/wl1271_cmd.h
Diffstat (limited to 'include/net')
-rw-r--r-- | include/net/cfg80211.h | 120 | ||||
-rw-r--r-- | include/net/mac80211.h | 35 |
2 files changed, 110 insertions, 45 deletions
diff --git a/include/net/cfg80211.h b/include/net/cfg80211.h index e7ebeb8bdf71..a56bac1e69e0 100644 --- a/include/net/cfg80211.h +++ b/include/net/cfg80211.h | |||
@@ -37,6 +37,7 @@ | |||
37 | * | 37 | * |
38 | * @IEEE80211_BAND_2GHZ: 2.4GHz ISM band | 38 | * @IEEE80211_BAND_2GHZ: 2.4GHz ISM band |
39 | * @IEEE80211_BAND_5GHZ: around 5GHz band (4.9-5.7) | 39 | * @IEEE80211_BAND_5GHZ: around 5GHz band (4.9-5.7) |
40 | * @IEEE80211_NUM_BANDS: number of defined bands | ||
40 | */ | 41 | */ |
41 | enum ieee80211_band { | 42 | enum ieee80211_band { |
42 | IEEE80211_BAND_2GHZ = NL80211_BAND_2GHZ, | 43 | IEEE80211_BAND_2GHZ = NL80211_BAND_2GHZ, |
@@ -89,7 +90,7 @@ enum ieee80211_channel_flags { | |||
89 | * @max_power: maximum transmission power (in dBm) | 90 | * @max_power: maximum transmission power (in dBm) |
90 | * @beacon_found: helper to regulatory code to indicate when a beacon | 91 | * @beacon_found: helper to regulatory code to indicate when a beacon |
91 | * has been found on this channel. Use regulatory_hint_found_beacon() | 92 | * has been found on this channel. Use regulatory_hint_found_beacon() |
92 | * to enable this, this is is useful only on 5 GHz band. | 93 | * to enable this, this is useful only on 5 GHz band. |
93 | * @orig_mag: internal use | 94 | * @orig_mag: internal use |
94 | * @orig_mpwr: internal use | 95 | * @orig_mpwr: internal use |
95 | */ | 96 | */ |
@@ -188,6 +189,7 @@ struct ieee80211_sta_ht_cap { | |||
188 | * in this band. Must be sorted to give a valid "supported | 189 | * in this band. Must be sorted to give a valid "supported |
189 | * rates" IE, i.e. CCK rates first, then OFDM. | 190 | * rates" IE, i.e. CCK rates first, then OFDM. |
190 | * @n_bitrates: Number of bitrates in @bitrates | 191 | * @n_bitrates: Number of bitrates in @bitrates |
192 | * @ht_cap: HT capabilities in this band | ||
191 | */ | 193 | */ |
192 | struct ieee80211_supported_band { | 194 | struct ieee80211_supported_band { |
193 | struct ieee80211_channel *channels; | 195 | struct ieee80211_channel *channels; |
@@ -225,6 +227,7 @@ struct vif_params { | |||
225 | * @seq: sequence counter (IV/PN) for TKIP and CCMP keys, only used | 227 | * @seq: sequence counter (IV/PN) for TKIP and CCMP keys, only used |
226 | * with the get_key() callback, must be in little endian, | 228 | * with the get_key() callback, must be in little endian, |
227 | * length given by @seq_len. | 229 | * length given by @seq_len. |
230 | * @seq_len: length of @seq. | ||
228 | */ | 231 | */ |
229 | struct key_params { | 232 | struct key_params { |
230 | u8 *key; | 233 | u8 *key; |
@@ -237,6 +240,8 @@ struct key_params { | |||
237 | /** | 240 | /** |
238 | * enum survey_info_flags - survey information flags | 241 | * enum survey_info_flags - survey information flags |
239 | * | 242 | * |
243 | * @SURVEY_INFO_NOISE_DBM: noise (in dBm) was filled in | ||
244 | * | ||
240 | * Used by the driver to indicate which info in &struct survey_info | 245 | * Used by the driver to indicate which info in &struct survey_info |
241 | * it has filled in during the get_survey(). | 246 | * it has filled in during the get_survey(). |
242 | */ | 247 | */ |
@@ -247,13 +252,13 @@ enum survey_info_flags { | |||
247 | /** | 252 | /** |
248 | * struct survey_info - channel survey response | 253 | * struct survey_info - channel survey response |
249 | * | 254 | * |
250 | * Used by dump_survey() to report back per-channel survey information. | ||
251 | * | ||
252 | * @channel: the channel this survey record reports, mandatory | 255 | * @channel: the channel this survey record reports, mandatory |
253 | * @filled: bitflag of flags from &enum survey_info_flags | 256 | * @filled: bitflag of flags from &enum survey_info_flags |
254 | * @noise: channel noise in dBm. This and all following fields are | 257 | * @noise: channel noise in dBm. This and all following fields are |
255 | * optional | 258 | * optional |
256 | * | 259 | * |
260 | * Used by dump_survey() to report back per-channel survey information. | ||
261 | * | ||
257 | * This structure can later be expanded with things like | 262 | * This structure can later be expanded with things like |
258 | * channel duty cycle etc. | 263 | * channel duty cycle etc. |
259 | */ | 264 | */ |
@@ -288,7 +293,7 @@ struct beacon_parameters { | |||
288 | * | 293 | * |
289 | * @PLINK_ACTION_INVALID: action 0 is reserved | 294 | * @PLINK_ACTION_INVALID: action 0 is reserved |
290 | * @PLINK_ACTION_OPEN: start mesh peer link establishment | 295 | * @PLINK_ACTION_OPEN: start mesh peer link establishment |
291 | * @PLINK_ACTION_BLOCL: block traffic from this mesh peer | 296 | * @PLINK_ACTION_BLOCK: block traffic from this mesh peer |
292 | */ | 297 | */ |
293 | enum plink_actions { | 298 | enum plink_actions { |
294 | PLINK_ACTION_INVALID, | 299 | PLINK_ACTION_INVALID, |
@@ -311,6 +316,8 @@ enum plink_actions { | |||
311 | * (bitmask of BIT(NL80211_STA_FLAG_...)) | 316 | * (bitmask of BIT(NL80211_STA_FLAG_...)) |
312 | * @listen_interval: listen interval or -1 for no change | 317 | * @listen_interval: listen interval or -1 for no change |
313 | * @aid: AID or zero for no change | 318 | * @aid: AID or zero for no change |
319 | * @plink_action: plink action to take | ||
320 | * @ht_capa: HT capabilities of station | ||
314 | */ | 321 | */ |
315 | struct station_parameters { | 322 | struct station_parameters { |
316 | u8 *supported_rates; | 323 | u8 *supported_rates; |
@@ -448,13 +455,13 @@ enum monitor_flags { | |||
448 | * Used by the driver to indicate which info in &struct mpath_info it has filled | 455 | * Used by the driver to indicate which info in &struct mpath_info it has filled |
449 | * in during get_station() or dump_station(). | 456 | * in during get_station() or dump_station(). |
450 | * | 457 | * |
451 | * MPATH_INFO_FRAME_QLEN: @frame_qlen filled | 458 | * @MPATH_INFO_FRAME_QLEN: @frame_qlen filled |
452 | * MPATH_INFO_SN: @sn filled | 459 | * @MPATH_INFO_SN: @sn filled |
453 | * MPATH_INFO_METRIC: @metric filled | 460 | * @MPATH_INFO_METRIC: @metric filled |
454 | * MPATH_INFO_EXPTIME: @exptime filled | 461 | * @MPATH_INFO_EXPTIME: @exptime filled |
455 | * MPATH_INFO_DISCOVERY_TIMEOUT: @discovery_timeout filled | 462 | * @MPATH_INFO_DISCOVERY_TIMEOUT: @discovery_timeout filled |
456 | * MPATH_INFO_DISCOVERY_RETRIES: @discovery_retries filled | 463 | * @MPATH_INFO_DISCOVERY_RETRIES: @discovery_retries filled |
457 | * MPATH_INFO_FLAGS: @flags filled | 464 | * @MPATH_INFO_FLAGS: @flags filled |
458 | */ | 465 | */ |
459 | enum mpath_info_flags { | 466 | enum mpath_info_flags { |
460 | MPATH_INFO_FRAME_QLEN = BIT(0), | 467 | MPATH_INFO_FRAME_QLEN = BIT(0), |
@@ -587,6 +594,7 @@ struct cfg80211_ssid { | |||
587 | * @ie_len: length of ie in octets | 594 | * @ie_len: length of ie in octets |
588 | * @wiphy: the wiphy this was for | 595 | * @wiphy: the wiphy this was for |
589 | * @dev: the interface | 596 | * @dev: the interface |
597 | * @aborted: (internal) scan request was notified as aborted | ||
590 | */ | 598 | */ |
591 | struct cfg80211_scan_request { | 599 | struct cfg80211_scan_request { |
592 | struct cfg80211_ssid *ssids; | 600 | struct cfg80211_ssid *ssids; |
@@ -623,6 +631,7 @@ enum cfg80211_signal_type { | |||
623 | * This structure describes a BSS (which may also be a mesh network) | 631 | * This structure describes a BSS (which may also be a mesh network) |
624 | * for use in scan results and similar. | 632 | * for use in scan results and similar. |
625 | * | 633 | * |
634 | * @channel: channel this BSS is on | ||
626 | * @bssid: BSSID of the BSS | 635 | * @bssid: BSSID of the BSS |
627 | * @tsf: timestamp of last received update | 636 | * @tsf: timestamp of last received update |
628 | * @beacon_interval: the beacon interval as from the frame | 637 | * @beacon_interval: the beacon interval as from the frame |
@@ -826,8 +835,8 @@ struct cfg80211_ibss_params { | |||
826 | * @ssid: SSID | 835 | * @ssid: SSID |
827 | * @ssid_len: Length of ssid in octets | 836 | * @ssid_len: Length of ssid in octets |
828 | * @auth_type: Authentication type (algorithm) | 837 | * @auth_type: Authentication type (algorithm) |
829 | * @assoc_ie: IEs for association request | 838 | * @ie: IEs for association request |
830 | * @assoc_ie_len: Length of assoc_ie in octets | 839 | * @ie_len: Length of assoc_ie in octets |
831 | * @privacy: indicates whether privacy-enabled APs should be used | 840 | * @privacy: indicates whether privacy-enabled APs should be used |
832 | * @crypto: crypto settings | 841 | * @crypto: crypto settings |
833 | * @key_len: length of WEP key for shared key authentication | 842 | * @key_len: length of WEP key for shared key authentication |
@@ -850,10 +859,11 @@ struct cfg80211_connect_params { | |||
850 | 859 | ||
851 | /** | 860 | /** |
852 | * enum wiphy_params_flags - set_wiphy_params bitfield values | 861 | * enum wiphy_params_flags - set_wiphy_params bitfield values |
853 | * WIPHY_PARAM_RETRY_SHORT: wiphy->retry_short has changed | 862 | * @WIPHY_PARAM_RETRY_SHORT: wiphy->retry_short has changed |
854 | * WIPHY_PARAM_RETRY_LONG: wiphy->retry_long has changed | 863 | * @WIPHY_PARAM_RETRY_LONG: wiphy->retry_long has changed |
855 | * WIPHY_PARAM_FRAG_THRESHOLD: wiphy->frag_threshold has changed | 864 | * @WIPHY_PARAM_FRAG_THRESHOLD: wiphy->frag_threshold has changed |
856 | * WIPHY_PARAM_RTS_THRESHOLD: wiphy->rts_threshold has changed | 865 | * @WIPHY_PARAM_RTS_THRESHOLD: wiphy->rts_threshold has changed |
866 | * @WIPHY_PARAM_COVERAGE_CLASS: coverage class changed | ||
857 | */ | 867 | */ |
858 | enum wiphy_params_flags { | 868 | enum wiphy_params_flags { |
859 | WIPHY_PARAM_RETRY_SHORT = 1 << 0, | 869 | WIPHY_PARAM_RETRY_SHORT = 1 << 0, |
@@ -949,10 +959,16 @@ struct cfg80211_pmksa { | |||
949 | * @del_beacon: Remove beacon configuration and stop sending the beacon. | 959 | * @del_beacon: Remove beacon configuration and stop sending the beacon. |
950 | * | 960 | * |
951 | * @add_station: Add a new station. | 961 | * @add_station: Add a new station. |
952 | * | ||
953 | * @del_station: Remove a station; @mac may be NULL to remove all stations. | 962 | * @del_station: Remove a station; @mac may be NULL to remove all stations. |
954 | * | ||
955 | * @change_station: Modify a given station. | 963 | * @change_station: Modify a given station. |
964 | * @get_station: get station information for the station identified by @mac | ||
965 | * @dump_station: dump station callback -- resume dump at index @idx | ||
966 | * | ||
967 | * @add_mpath: add a fixed mesh path | ||
968 | * @del_mpath: delete a given mesh path | ||
969 | * @change_mpath: change a given mesh path | ||
970 | * @get_mpath: get a mesh path for the given parameters | ||
971 | * @dump_mpath: dump mesh path callback -- resume dump at index @idx | ||
956 | * | 972 | * |
957 | * @get_mesh_params: Put the current mesh parameters into *params | 973 | * @get_mesh_params: Put the current mesh parameters into *params |
958 | * | 974 | * |
@@ -960,8 +976,6 @@ struct cfg80211_pmksa { | |||
960 | * The mask is a bitfield which tells us which parameters to | 976 | * The mask is a bitfield which tells us which parameters to |
961 | * set, and which to leave alone. | 977 | * set, and which to leave alone. |
962 | * | 978 | * |
963 | * @set_mesh_cfg: set mesh parameters (by now, just mesh id) | ||
964 | * | ||
965 | * @change_bss: Modify parameters for a given BSS. | 979 | * @change_bss: Modify parameters for a given BSS. |
966 | * | 980 | * |
967 | * @set_txq_params: Set TX queue parameters | 981 | * @set_txq_params: Set TX queue parameters |
@@ -1002,6 +1016,8 @@ struct cfg80211_pmksa { | |||
1002 | * @get_tx_power: store the current TX power into the dbm variable; | 1016 | * @get_tx_power: store the current TX power into the dbm variable; |
1003 | * return 0 if successful | 1017 | * return 0 if successful |
1004 | * | 1018 | * |
1019 | * @set_wds_peer: set the WDS peer for a WDS interface | ||
1020 | * | ||
1005 | * @rfkill_poll: polls the hw rfkill line, use cfg80211 reporting | 1021 | * @rfkill_poll: polls the hw rfkill line, use cfg80211 reporting |
1006 | * functions to adjust rfkill hw state | 1022 | * functions to adjust rfkill hw state |
1007 | * | 1023 | * |
@@ -1019,6 +1035,8 @@ struct cfg80211_pmksa { | |||
1019 | * | 1035 | * |
1020 | * @testmode_cmd: run a test mode command | 1036 | * @testmode_cmd: run a test mode command |
1021 | * | 1037 | * |
1038 | * @set_bitrate_mask: set the bitrate mask configuration | ||
1039 | * | ||
1022 | * @set_pmksa: Cache a PMKID for a BSSID. This is mostly useful for fullmac | 1040 | * @set_pmksa: Cache a PMKID for a BSSID. This is mostly useful for fullmac |
1023 | * devices running firmwares capable of generating the (re) association | 1041 | * devices running firmwares capable of generating the (re) association |
1024 | * RSN IE. It allows for faster roaming between WPA2 BSSIDs. | 1042 | * RSN IE. It allows for faster roaming between WPA2 BSSIDs. |
@@ -1168,6 +1186,7 @@ struct cfg80211_ops { | |||
1168 | int (*action)(struct wiphy *wiphy, struct net_device *dev, | 1186 | int (*action)(struct wiphy *wiphy, struct net_device *dev, |
1169 | struct ieee80211_channel *chan, | 1187 | struct ieee80211_channel *chan, |
1170 | enum nl80211_channel_type channel_type, | 1188 | enum nl80211_channel_type channel_type, |
1189 | bool channel_type_valid, | ||
1171 | const u8 *buf, size_t len, u64 *cookie); | 1190 | const u8 *buf, size_t len, u64 *cookie); |
1172 | 1191 | ||
1173 | int (*set_power_mgmt)(struct wiphy *wiphy, struct net_device *dev, | 1192 | int (*set_power_mgmt)(struct wiphy *wiphy, struct net_device *dev, |
@@ -1230,8 +1249,6 @@ struct mac_address { | |||
1230 | 1249 | ||
1231 | /** | 1250 | /** |
1232 | * struct wiphy - wireless hardware description | 1251 | * struct wiphy - wireless hardware description |
1233 | * @idx: the wiphy index assigned to this item | ||
1234 | * @class_dev: the class device representing /sys/class/ieee80211/<wiphy-name> | ||
1235 | * @reg_notifier: the driver's regulatory notification callback | 1252 | * @reg_notifier: the driver's regulatory notification callback |
1236 | * @regd: the driver's regulatory domain, if one was requested via | 1253 | * @regd: the driver's regulatory domain, if one was requested via |
1237 | * the regulatory_hint() API. This can be used by the driver | 1254 | * the regulatory_hint() API. This can be used by the driver |
@@ -1245,7 +1262,7 @@ struct mac_address { | |||
1245 | * @frag_threshold: Fragmentation threshold (dot11FragmentationThreshold); | 1262 | * @frag_threshold: Fragmentation threshold (dot11FragmentationThreshold); |
1246 | * -1 = fragmentation disabled, only odd values >= 256 used | 1263 | * -1 = fragmentation disabled, only odd values >= 256 used |
1247 | * @rts_threshold: RTS threshold (dot11RTSThreshold); -1 = RTS/CTS disabled | 1264 | * @rts_threshold: RTS threshold (dot11RTSThreshold); -1 = RTS/CTS disabled |
1248 | * @net: the network namespace this wiphy currently lives in | 1265 | * @_net: the network namespace this wiphy currently lives in |
1249 | * @perm_addr: permanent MAC address of this device | 1266 | * @perm_addr: permanent MAC address of this device |
1250 | * @addr_mask: If the device supports multiple MAC addresses by masking, | 1267 | * @addr_mask: If the device supports multiple MAC addresses by masking, |
1251 | * set this to a mask with variable bits set to 1, e.g. if the last | 1268 | * set this to a mask with variable bits set to 1, e.g. if the last |
@@ -1258,6 +1275,28 @@ struct mac_address { | |||
1258 | * by default for perm_addr. In this case, the mask should be set to | 1275 | * by default for perm_addr. In this case, the mask should be set to |
1259 | * all-zeroes. In this case it is assumed that the device can handle | 1276 | * all-zeroes. In this case it is assumed that the device can handle |
1260 | * the same number of arbitrary MAC addresses. | 1277 | * the same number of arbitrary MAC addresses. |
1278 | * @debugfsdir: debugfs directory used for this wiphy, will be renamed | ||
1279 | * automatically on wiphy renames | ||
1280 | * @dev: (virtual) struct device for this wiphy | ||
1281 | * @wext: wireless extension handlers | ||
1282 | * @priv: driver private data (sized according to wiphy_new() parameter) | ||
1283 | * @interface_modes: bitmask of interfaces types valid for this wiphy, | ||
1284 | * must be set by driver | ||
1285 | * @flags: wiphy flags, see &enum wiphy_flags | ||
1286 | * @bss_priv_size: each BSS struct has private data allocated with it, | ||
1287 | * this variable determines its size | ||
1288 | * @max_scan_ssids: maximum number of SSIDs the device can scan for in | ||
1289 | * any given scan | ||
1290 | * @max_scan_ie_len: maximum length of user-controlled IEs device can | ||
1291 | * add to probe request frames transmitted during a scan, must not | ||
1292 | * include fixed IEs like supported rates | ||
1293 | * @coverage_class: current coverage class | ||
1294 | * @fw_version: firmware version for ethtool reporting | ||
1295 | * @hw_version: hardware version for ethtool reporting | ||
1296 | * @max_num_pmkids: maximum number of PMKIDs supported by device | ||
1297 | * @privid: a pointer that drivers can use to identify if an arbitrary | ||
1298 | * wiphy is theirs, e.g. in global notifiers | ||
1299 | * @bands: information about bands/channels supported by this device | ||
1261 | */ | 1300 | */ |
1262 | struct wiphy { | 1301 | struct wiphy { |
1263 | /* assign these fields before you register the wiphy */ | 1302 | /* assign these fields before you register the wiphy */ |
@@ -1460,13 +1499,14 @@ struct cfg80211_cached_keys; | |||
1460 | * @ssid: (private) Used by the internal configuration code | 1499 | * @ssid: (private) Used by the internal configuration code |
1461 | * @ssid_len: (private) Used by the internal configuration code | 1500 | * @ssid_len: (private) Used by the internal configuration code |
1462 | * @wext: (private) Used by the internal wireless extensions compat code | 1501 | * @wext: (private) Used by the internal wireless extensions compat code |
1463 | * @wext_bssid: (private) Used by the internal wireless extensions compat code | ||
1464 | * @use_4addr: indicates 4addr mode is used on this interface, must be | 1502 | * @use_4addr: indicates 4addr mode is used on this interface, must be |
1465 | * set by driver (if supported) on add_interface BEFORE registering the | 1503 | * set by driver (if supported) on add_interface BEFORE registering the |
1466 | * netdev and may otherwise be used by driver read-only, will be update | 1504 | * netdev and may otherwise be used by driver read-only, will be update |
1467 | * by cfg80211 on change_interface | 1505 | * by cfg80211 on change_interface |
1468 | * @action_registrations: list of registrations for action frames | 1506 | * @action_registrations: list of registrations for action frames |
1469 | * @action_registrations_lock: lock for the list | 1507 | * @action_registrations_lock: lock for the list |
1508 | * @mtx: mutex used to lock data in this struct | ||
1509 | * @cleanup_work: work struct used for cleanup that can't be done directly | ||
1470 | */ | 1510 | */ |
1471 | struct wireless_dev { | 1511 | struct wireless_dev { |
1472 | struct wiphy *wiphy; | 1512 | struct wiphy *wiphy; |
@@ -1540,11 +1580,13 @@ static inline void *wdev_priv(struct wireless_dev *wdev) | |||
1540 | 1580 | ||
1541 | /** | 1581 | /** |
1542 | * ieee80211_channel_to_frequency - convert channel number to frequency | 1582 | * ieee80211_channel_to_frequency - convert channel number to frequency |
1583 | * @chan: channel number | ||
1543 | */ | 1584 | */ |
1544 | extern int ieee80211_channel_to_frequency(int chan); | 1585 | extern int ieee80211_channel_to_frequency(int chan); |
1545 | 1586 | ||
1546 | /** | 1587 | /** |
1547 | * ieee80211_frequency_to_channel - convert frequency to channel number | 1588 | * ieee80211_frequency_to_channel - convert frequency to channel number |
1589 | * @freq: center frequency | ||
1548 | */ | 1590 | */ |
1549 | extern int ieee80211_frequency_to_channel(int freq); | 1591 | extern int ieee80211_frequency_to_channel(int freq); |
1550 | 1592 | ||
@@ -1559,6 +1601,8 @@ extern struct ieee80211_channel *__ieee80211_get_channel(struct wiphy *wiphy, | |||
1559 | int freq); | 1601 | int freq); |
1560 | /** | 1602 | /** |
1561 | * ieee80211_get_channel - get channel struct from wiphy for specified frequency | 1603 | * ieee80211_get_channel - get channel struct from wiphy for specified frequency |
1604 | * @wiphy: the struct wiphy to get the channel for | ||
1605 | * @freq: the center frequency of the channel | ||
1562 | */ | 1606 | */ |
1563 | static inline struct ieee80211_channel * | 1607 | static inline struct ieee80211_channel * |
1564 | ieee80211_get_channel(struct wiphy *wiphy, int freq) | 1608 | ieee80211_get_channel(struct wiphy *wiphy, int freq) |
@@ -1619,9 +1663,6 @@ struct ieee80211_radiotap_vendor_namespaces { | |||
1619 | * @is_radiotap_ns: indicates whether the current namespace is the default | 1663 | * @is_radiotap_ns: indicates whether the current namespace is the default |
1620 | * radiotap namespace or not | 1664 | * radiotap namespace or not |
1621 | * | 1665 | * |
1622 | * @overrides: override standard radiotap fields | ||
1623 | * @n_overrides: number of overrides | ||
1624 | * | ||
1625 | * @_rtheader: pointer to the radiotap header we are walking through | 1666 | * @_rtheader: pointer to the radiotap header we are walking through |
1626 | * @_max_length: length of radiotap header in cpu byte ordering | 1667 | * @_max_length: length of radiotap header in cpu byte ordering |
1627 | * @_arg_index: next argument index | 1668 | * @_arg_index: next argument index |
@@ -1937,10 +1978,12 @@ int cfg80211_wext_giwap(struct net_device *dev, | |||
1937 | void cfg80211_scan_done(struct cfg80211_scan_request *request, bool aborted); | 1978 | void cfg80211_scan_done(struct cfg80211_scan_request *request, bool aborted); |
1938 | 1979 | ||
1939 | /** | 1980 | /** |
1940 | * cfg80211_inform_bss - inform cfg80211 of a new BSS | 1981 | * cfg80211_inform_bss_frame - inform cfg80211 of a received BSS frame |
1941 | * | 1982 | * |
1942 | * @wiphy: the wiphy reporting the BSS | 1983 | * @wiphy: the wiphy reporting the BSS |
1943 | * @bss: the found BSS | 1984 | * @channel: The channel the frame was received on |
1985 | * @mgmt: the management frame (probe response or beacon) | ||
1986 | * @len: length of the management frame | ||
1944 | * @signal: the signal strength, type depends on the wiphy's signal_type | 1987 | * @signal: the signal strength, type depends on the wiphy's signal_type |
1945 | * @gfp: context flags | 1988 | * @gfp: context flags |
1946 | * | 1989 | * |
@@ -1953,6 +1996,23 @@ cfg80211_inform_bss_frame(struct wiphy *wiphy, | |||
1953 | struct ieee80211_mgmt *mgmt, size_t len, | 1996 | struct ieee80211_mgmt *mgmt, size_t len, |
1954 | s32 signal, gfp_t gfp); | 1997 | s32 signal, gfp_t gfp); |
1955 | 1998 | ||
1999 | /** | ||
2000 | * cfg80211_inform_bss - inform cfg80211 of a new BSS | ||
2001 | * | ||
2002 | * @wiphy: the wiphy reporting the BSS | ||
2003 | * @channel: The channel the frame was received on | ||
2004 | * @bssid: the BSSID of the BSS | ||
2005 | * @timestamp: the TSF timestamp sent by the peer | ||
2006 | * @capability: the capability field sent by the peer | ||
2007 | * @beacon_interval: the beacon interval announced by the peer | ||
2008 | * @ie: additional IEs sent by the peer | ||
2009 | * @ielen: length of the additional IEs | ||
2010 | * @signal: the signal strength, type depends on the wiphy's signal_type | ||
2011 | * @gfp: context flags | ||
2012 | * | ||
2013 | * This informs cfg80211 that BSS information was found and | ||
2014 | * the BSS should be updated/added. | ||
2015 | */ | ||
1956 | struct cfg80211_bss* | 2016 | struct cfg80211_bss* |
1957 | cfg80211_inform_bss(struct wiphy *wiphy, | 2017 | cfg80211_inform_bss(struct wiphy *wiphy, |
1958 | struct ieee80211_channel *channel, | 2018 | struct ieee80211_channel *channel, |
diff --git a/include/net/mac80211.h b/include/net/mac80211.h index de22cbfef232..abb3b1a9ddc9 100644 --- a/include/net/mac80211.h +++ b/include/net/mac80211.h | |||
@@ -19,6 +19,7 @@ | |||
19 | #include <linux/wireless.h> | 19 | #include <linux/wireless.h> |
20 | #include <linux/device.h> | 20 | #include <linux/device.h> |
21 | #include <linux/ieee80211.h> | 21 | #include <linux/ieee80211.h> |
22 | #include <linux/inetdevice.h> | ||
22 | #include <net/cfg80211.h> | 23 | #include <net/cfg80211.h> |
23 | 24 | ||
24 | /** | 25 | /** |
@@ -312,9 +313,10 @@ enum mac80211_tx_control_flags { | |||
312 | IEEE80211_TX_INTFL_NL80211_FRAME_TX = BIT(21), | 313 | IEEE80211_TX_INTFL_NL80211_FRAME_TX = BIT(21), |
313 | IEEE80211_TX_CTL_LDPC = BIT(22), | 314 | IEEE80211_TX_CTL_LDPC = BIT(22), |
314 | IEEE80211_TX_CTL_STBC = BIT(23) | BIT(24), | 315 | IEEE80211_TX_CTL_STBC = BIT(23) | BIT(24), |
315 | #define IEEE80211_TX_CTL_STBC_SHIFT 23 | ||
316 | }; | 316 | }; |
317 | 317 | ||
318 | #define IEEE80211_TX_CTL_STBC_SHIFT 23 | ||
319 | |||
318 | /** | 320 | /** |
319 | * enum mac80211_rate_control_flags - per-rate flags set by the | 321 | * enum mac80211_rate_control_flags - per-rate flags set by the |
320 | * Rate Control algorithm. | 322 | * Rate Control algorithm. |
@@ -412,8 +414,6 @@ struct ieee80211_tx_rate { | |||
412 | * @driver_data: array of driver_data pointers | 414 | * @driver_data: array of driver_data pointers |
413 | * @ampdu_ack_len: number of acked aggregated frames. | 415 | * @ampdu_ack_len: number of acked aggregated frames. |
414 | * relevant only if IEEE80211_TX_STAT_AMPDU was set. | 416 | * relevant only if IEEE80211_TX_STAT_AMPDU was set. |
415 | * @ampdu_ack_map: block ack bit map for the aggregation. | ||
416 | * relevant only if IEEE80211_TX_STAT_AMPDU was set. | ||
417 | * @ampdu_len: number of aggregated frames. | 417 | * @ampdu_len: number of aggregated frames. |
418 | * relevant only if IEEE80211_TX_STAT_AMPDU was set. | 418 | * relevant only if IEEE80211_TX_STAT_AMPDU was set. |
419 | * @ack_signal: signal strength of the ACK frame | 419 | * @ack_signal: signal strength of the ACK frame |
@@ -448,10 +448,9 @@ struct ieee80211_tx_info { | |||
448 | struct { | 448 | struct { |
449 | struct ieee80211_tx_rate rates[IEEE80211_TX_MAX_RATES]; | 449 | struct ieee80211_tx_rate rates[IEEE80211_TX_MAX_RATES]; |
450 | u8 ampdu_ack_len; | 450 | u8 ampdu_ack_len; |
451 | u64 ampdu_ack_map; | ||
452 | int ack_signal; | 451 | int ack_signal; |
453 | u8 ampdu_len; | 452 | u8 ampdu_len; |
454 | /* 7 bytes free */ | 453 | /* 15 bytes free */ |
455 | } status; | 454 | } status; |
456 | struct { | 455 | struct { |
457 | struct ieee80211_tx_rate driver_rates[ | 456 | struct ieee80211_tx_rate driver_rates[ |
@@ -815,7 +814,6 @@ enum ieee80211_key_flags { | |||
815 | * encrypted in hardware. | 814 | * encrypted in hardware. |
816 | * @alg: The key algorithm. | 815 | * @alg: The key algorithm. |
817 | * @flags: key flags, see &enum ieee80211_key_flags. | 816 | * @flags: key flags, see &enum ieee80211_key_flags. |
818 | * @ap_addr: AP's MAC address | ||
819 | * @keyidx: the key index (0-3) | 817 | * @keyidx: the key index (0-3) |
820 | * @keylen: key material length | 818 | * @keylen: key material length |
821 | * @key: key material. For ALG_TKIP the key is encoded as a 256-bit (32 byte) | 819 | * @key: key material. For ALG_TKIP the key is encoded as a 256-bit (32 byte) |
@@ -881,16 +879,12 @@ struct ieee80211_sta { | |||
881 | * enum sta_notify_cmd - sta notify command | 879 | * enum sta_notify_cmd - sta notify command |
882 | * | 880 | * |
883 | * Used with the sta_notify() callback in &struct ieee80211_ops, this | 881 | * Used with the sta_notify() callback in &struct ieee80211_ops, this |
884 | * indicates addition and removal of a station to station table, | 882 | * indicates if an associated station made a power state transition. |
885 | * or if a associated station made a power state transition. | ||
886 | * | 883 | * |
887 | * @STA_NOTIFY_ADD: (DEPRECATED) a station was added to the station table | ||
888 | * @STA_NOTIFY_REMOVE: (DEPRECATED) a station being removed from the station table | ||
889 | * @STA_NOTIFY_SLEEP: a station is now sleeping | 884 | * @STA_NOTIFY_SLEEP: a station is now sleeping |
890 | * @STA_NOTIFY_AWAKE: a sleeping station woke up | 885 | * @STA_NOTIFY_AWAKE: a sleeping station woke up |
891 | */ | 886 | */ |
892 | enum sta_notify_cmd { | 887 | enum sta_notify_cmd { |
893 | STA_NOTIFY_ADD, STA_NOTIFY_REMOVE, | ||
894 | STA_NOTIFY_SLEEP, STA_NOTIFY_AWAKE, | 888 | STA_NOTIFY_SLEEP, STA_NOTIFY_AWAKE, |
895 | }; | 889 | }; |
896 | 890 | ||
@@ -1535,6 +1529,16 @@ enum ieee80211_ampdu_mlme_action { | |||
1535 | * of the bss parameters has changed when a call is made. The callback | 1529 | * of the bss parameters has changed when a call is made. The callback |
1536 | * can sleep. | 1530 | * can sleep. |
1537 | * | 1531 | * |
1532 | * @configure_arp_filter: Configuration function for hardware ARP query filter. | ||
1533 | * This function is called with all the IP addresses configured to the | ||
1534 | * interface as argument - all ARP queries targeted to any of these | ||
1535 | * addresses must pass through. If the hardware filter does not support | ||
1536 | * enought addresses, hardware filtering must be disabled. The ifa_list | ||
1537 | * argument may be NULL, indicating that filtering must be disabled. | ||
1538 | * This function is called upon association complete with current | ||
1539 | * address(es), and while associated whenever the IP address(es) change. | ||
1540 | * The callback can sleep. | ||
1541 | * | ||
1538 | * @prepare_multicast: Prepare for multicast filter configuration. | 1542 | * @prepare_multicast: Prepare for multicast filter configuration. |
1539 | * This callback is optional, and its return value is passed | 1543 | * This callback is optional, and its return value is passed |
1540 | * to configure_filter(). This callback must be atomic. | 1544 | * to configure_filter(). This callback must be atomic. |
@@ -1674,6 +1678,9 @@ struct ieee80211_ops { | |||
1674 | struct ieee80211_vif *vif, | 1678 | struct ieee80211_vif *vif, |
1675 | struct ieee80211_bss_conf *info, | 1679 | struct ieee80211_bss_conf *info, |
1676 | u32 changed); | 1680 | u32 changed); |
1681 | int (*configure_arp_filter)(struct ieee80211_hw *hw, | ||
1682 | struct ieee80211_vif *vif, | ||
1683 | struct in_ifaddr *ifa_list); | ||
1677 | u64 (*prepare_multicast)(struct ieee80211_hw *hw, | 1684 | u64 (*prepare_multicast)(struct ieee80211_hw *hw, |
1678 | struct netdev_hw_addr_list *mc_list); | 1685 | struct netdev_hw_addr_list *mc_list); |
1679 | void (*configure_filter)(struct ieee80211_hw *hw, | 1686 | void (*configure_filter)(struct ieee80211_hw *hw, |
@@ -2334,16 +2341,14 @@ void ieee80211_start_tx_ba_cb_irqsafe(struct ieee80211_vif *vif, const u8 *ra, | |||
2334 | * ieee80211_stop_tx_ba_session - Stop a Block Ack session. | 2341 | * ieee80211_stop_tx_ba_session - Stop a Block Ack session. |
2335 | * @sta: the station whose BA session to stop | 2342 | * @sta: the station whose BA session to stop |
2336 | * @tid: the TID to stop BA. | 2343 | * @tid: the TID to stop BA. |
2337 | * @initiator: if indicates initiator DELBA frame will be sent. | ||
2338 | * | 2344 | * |
2339 | * Return: error if no sta with matching da found, success otherwise | 2345 | * Return: negative error if the TID is invalid, or no aggregation active |
2340 | * | 2346 | * |
2341 | * Although mac80211/low level driver/user space application can estimate | 2347 | * Although mac80211/low level driver/user space application can estimate |
2342 | * the need to stop aggregation on a certain RA/TID, the session level | 2348 | * the need to stop aggregation on a certain RA/TID, the session level |
2343 | * will be managed by the mac80211. | 2349 | * will be managed by the mac80211. |
2344 | */ | 2350 | */ |
2345 | int ieee80211_stop_tx_ba_session(struct ieee80211_sta *sta, u16 tid, | 2351 | int ieee80211_stop_tx_ba_session(struct ieee80211_sta *sta, u16 tid); |
2346 | enum ieee80211_back_parties initiator); | ||
2347 | 2352 | ||
2348 | /** | 2353 | /** |
2349 | * ieee80211_stop_tx_ba_cb - low level driver ready to stop aggregate. | 2354 | * ieee80211_stop_tx_ba_cb - low level driver ready to stop aggregate. |