aboutsummaryrefslogtreecommitdiffstats
path: root/include/net/cfg80211.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/net/cfg80211.h')
-rw-r--r--include/net/cfg80211.h137
1 files changed, 94 insertions, 43 deletions
diff --git a/include/net/cfg80211.h b/include/net/cfg80211.h
index b44a2e5321a3..9c45b905aefc 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 */
41enum ieee80211_band { 42enum 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 */
192struct ieee80211_supported_band { 194struct 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 */
229struct key_params { 232struct 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 */
293enum plink_actions { 298enum 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 */
315struct station_parameters { 322struct 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 */
459enum mpath_info_flags { 466enum 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 */
591struct cfg80211_scan_request { 599struct 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
@@ -801,6 +810,7 @@ struct cfg80211_disassoc_request {
801 * @beacon_interval: beacon interval to use 810 * @beacon_interval: beacon interval to use
802 * @privacy: this is a protected network, keys will be configured 811 * @privacy: this is a protected network, keys will be configured
803 * after joining 812 * after joining
813 * @basic_rates: bitmap of basic rates to use when creating the IBSS
804 */ 814 */
805struct cfg80211_ibss_params { 815struct cfg80211_ibss_params {
806 u8 *ssid; 816 u8 *ssid;
@@ -809,6 +819,7 @@ struct cfg80211_ibss_params {
809 u8 *ie; 819 u8 *ie;
810 u8 ssid_len, ie_len; 820 u8 ssid_len, ie_len;
811 u16 beacon_interval; 821 u16 beacon_interval;
822 u32 basic_rates;
812 bool channel_fixed; 823 bool channel_fixed;
813 bool privacy; 824 bool privacy;
814}; 825};
@@ -826,8 +837,8 @@ struct cfg80211_ibss_params {
826 * @ssid: SSID 837 * @ssid: SSID
827 * @ssid_len: Length of ssid in octets 838 * @ssid_len: Length of ssid in octets
828 * @auth_type: Authentication type (algorithm) 839 * @auth_type: Authentication type (algorithm)
829 * @assoc_ie: IEs for association request 840 * @ie: IEs for association request
830 * @assoc_ie_len: Length of assoc_ie in octets 841 * @ie_len: Length of assoc_ie in octets
831 * @privacy: indicates whether privacy-enabled APs should be used 842 * @privacy: indicates whether privacy-enabled APs should be used
832 * @crypto: crypto settings 843 * @crypto: crypto settings
833 * @key_len: length of WEP key for shared key authentication 844 * @key_len: length of WEP key for shared key authentication
@@ -850,10 +861,11 @@ struct cfg80211_connect_params {
850 861
851/** 862/**
852 * enum wiphy_params_flags - set_wiphy_params bitfield values 863 * enum wiphy_params_flags - set_wiphy_params bitfield values
853 * WIPHY_PARAM_RETRY_SHORT: wiphy->retry_short has changed 864 * @WIPHY_PARAM_RETRY_SHORT: wiphy->retry_short has changed
854 * WIPHY_PARAM_RETRY_LONG: wiphy->retry_long has changed 865 * @WIPHY_PARAM_RETRY_LONG: wiphy->retry_long has changed
855 * WIPHY_PARAM_FRAG_THRESHOLD: wiphy->frag_threshold has changed 866 * @WIPHY_PARAM_FRAG_THRESHOLD: wiphy->frag_threshold has changed
856 * WIPHY_PARAM_RTS_THRESHOLD: wiphy->rts_threshold has changed 867 * @WIPHY_PARAM_RTS_THRESHOLD: wiphy->rts_threshold has changed
868 * @WIPHY_PARAM_COVERAGE_CLASS: coverage class changed
857 */ 869 */
858enum wiphy_params_flags { 870enum wiphy_params_flags {
859 WIPHY_PARAM_RETRY_SHORT = 1 << 0, 871 WIPHY_PARAM_RETRY_SHORT = 1 << 0,
@@ -949,10 +961,16 @@ struct cfg80211_pmksa {
949 * @del_beacon: Remove beacon configuration and stop sending the beacon. 961 * @del_beacon: Remove beacon configuration and stop sending the beacon.
950 * 962 *
951 * @add_station: Add a new station. 963 * @add_station: Add a new station.
952 *
953 * @del_station: Remove a station; @mac may be NULL to remove all stations. 964 * @del_station: Remove a station; @mac may be NULL to remove all stations.
954 *
955 * @change_station: Modify a given station. 965 * @change_station: Modify a given station.
966 * @get_station: get station information for the station identified by @mac
967 * @dump_station: dump station callback -- resume dump at index @idx
968 *
969 * @add_mpath: add a fixed mesh path
970 * @del_mpath: delete a given mesh path
971 * @change_mpath: change a given mesh path
972 * @get_mpath: get a mesh path for the given parameters
973 * @dump_mpath: dump mesh path callback -- resume dump at index @idx
956 * 974 *
957 * @get_mesh_params: Put the current mesh parameters into *params 975 * @get_mesh_params: Put the current mesh parameters into *params
958 * 976 *
@@ -960,8 +978,6 @@ struct cfg80211_pmksa {
960 * The mask is a bitfield which tells us which parameters to 978 * The mask is a bitfield which tells us which parameters to
961 * set, and which to leave alone. 979 * set, and which to leave alone.
962 * 980 *
963 * @set_mesh_cfg: set mesh parameters (by now, just mesh id)
964 *
965 * @change_bss: Modify parameters for a given BSS. 981 * @change_bss: Modify parameters for a given BSS.
966 * 982 *
967 * @set_txq_params: Set TX queue parameters 983 * @set_txq_params: Set TX queue parameters
@@ -1002,6 +1018,8 @@ struct cfg80211_pmksa {
1002 * @get_tx_power: store the current TX power into the dbm variable; 1018 * @get_tx_power: store the current TX power into the dbm variable;
1003 * return 0 if successful 1019 * return 0 if successful
1004 * 1020 *
1021 * @set_wds_peer: set the WDS peer for a WDS interface
1022 *
1005 * @rfkill_poll: polls the hw rfkill line, use cfg80211 reporting 1023 * @rfkill_poll: polls the hw rfkill line, use cfg80211 reporting
1006 * functions to adjust rfkill hw state 1024 * functions to adjust rfkill hw state
1007 * 1025 *
@@ -1019,6 +1037,8 @@ struct cfg80211_pmksa {
1019 * 1037 *
1020 * @testmode_cmd: run a test mode command 1038 * @testmode_cmd: run a test mode command
1021 * 1039 *
1040 * @set_bitrate_mask: set the bitrate mask configuration
1041 *
1022 * @set_pmksa: Cache a PMKID for a BSSID. This is mostly useful for fullmac 1042 * @set_pmksa: Cache a PMKID for a BSSID. This is mostly useful for fullmac
1023 * devices running firmwares capable of generating the (re) association 1043 * devices running firmwares capable of generating the (re) association
1024 * RSN IE. It allows for faster roaming between WPA2 BSSIDs. 1044 * RSN IE. It allows for faster roaming between WPA2 BSSIDs.
@@ -1168,6 +1188,7 @@ struct cfg80211_ops {
1168 int (*action)(struct wiphy *wiphy, struct net_device *dev, 1188 int (*action)(struct wiphy *wiphy, struct net_device *dev,
1169 struct ieee80211_channel *chan, 1189 struct ieee80211_channel *chan,
1170 enum nl80211_channel_type channel_type, 1190 enum nl80211_channel_type channel_type,
1191 bool channel_type_valid,
1171 const u8 *buf, size_t len, u64 *cookie); 1192 const u8 *buf, size_t len, u64 *cookie);
1172 1193
1173 int (*set_power_mgmt)(struct wiphy *wiphy, struct net_device *dev, 1194 int (*set_power_mgmt)(struct wiphy *wiphy, struct net_device *dev,
@@ -1230,8 +1251,6 @@ struct mac_address {
1230 1251
1231/** 1252/**
1232 * struct wiphy - wireless hardware description 1253 * 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 1254 * @reg_notifier: the driver's regulatory notification callback
1236 * @regd: the driver's regulatory domain, if one was requested via 1255 * @regd: the driver's regulatory domain, if one was requested via
1237 * the regulatory_hint() API. This can be used by the driver 1256 * the regulatory_hint() API. This can be used by the driver
@@ -1245,7 +1264,7 @@ struct mac_address {
1245 * @frag_threshold: Fragmentation threshold (dot11FragmentationThreshold); 1264 * @frag_threshold: Fragmentation threshold (dot11FragmentationThreshold);
1246 * -1 = fragmentation disabled, only odd values >= 256 used 1265 * -1 = fragmentation disabled, only odd values >= 256 used
1247 * @rts_threshold: RTS threshold (dot11RTSThreshold); -1 = RTS/CTS disabled 1266 * @rts_threshold: RTS threshold (dot11RTSThreshold); -1 = RTS/CTS disabled
1248 * @net: the network namespace this wiphy currently lives in 1267 * @_net: the network namespace this wiphy currently lives in
1249 * @perm_addr: permanent MAC address of this device 1268 * @perm_addr: permanent MAC address of this device
1250 * @addr_mask: If the device supports multiple MAC addresses by masking, 1269 * @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 1270 * set this to a mask with variable bits set to 1, e.g. if the last
@@ -1258,6 +1277,28 @@ struct mac_address {
1258 * by default for perm_addr. In this case, the mask should be set to 1277 * 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 1278 * all-zeroes. In this case it is assumed that the device can handle
1260 * the same number of arbitrary MAC addresses. 1279 * the same number of arbitrary MAC addresses.
1280 * @debugfsdir: debugfs directory used for this wiphy, will be renamed
1281 * automatically on wiphy renames
1282 * @dev: (virtual) struct device for this wiphy
1283 * @wext: wireless extension handlers
1284 * @priv: driver private data (sized according to wiphy_new() parameter)
1285 * @interface_modes: bitmask of interfaces types valid for this wiphy,
1286 * must be set by driver
1287 * @flags: wiphy flags, see &enum wiphy_flags
1288 * @bss_priv_size: each BSS struct has private data allocated with it,
1289 * this variable determines its size
1290 * @max_scan_ssids: maximum number of SSIDs the device can scan for in
1291 * any given scan
1292 * @max_scan_ie_len: maximum length of user-controlled IEs device can
1293 * add to probe request frames transmitted during a scan, must not
1294 * include fixed IEs like supported rates
1295 * @coverage_class: current coverage class
1296 * @fw_version: firmware version for ethtool reporting
1297 * @hw_version: hardware version for ethtool reporting
1298 * @max_num_pmkids: maximum number of PMKIDs supported by device
1299 * @privid: a pointer that drivers can use to identify if an arbitrary
1300 * wiphy is theirs, e.g. in global notifiers
1301 * @bands: information about bands/channels supported by this device
1261 */ 1302 */
1262struct wiphy { 1303struct wiphy {
1263 /* assign these fields before you register the wiphy */ 1304 /* assign these fields before you register the wiphy */
@@ -1330,27 +1371,16 @@ struct wiphy {
1330 char priv[0] __attribute__((__aligned__(NETDEV_ALIGN))); 1371 char priv[0] __attribute__((__aligned__(NETDEV_ALIGN)));
1331}; 1372};
1332 1373
1333#ifdef CONFIG_NET_NS
1334static inline struct net *wiphy_net(struct wiphy *wiphy) 1374static inline struct net *wiphy_net(struct wiphy *wiphy)
1335{ 1375{
1336 return wiphy->_net; 1376 return read_pnet(&wiphy->_net);
1337} 1377}
1338 1378
1339static inline void wiphy_net_set(struct wiphy *wiphy, struct net *net) 1379static inline void wiphy_net_set(struct wiphy *wiphy, struct net *net)
1340{ 1380{
1341 wiphy->_net = net; 1381 write_pnet(&wiphy->_net, net);
1342}
1343#else
1344static inline struct net *wiphy_net(struct wiphy *wiphy)
1345{
1346 return &init_net;
1347} 1382}
1348 1383
1349static inline void wiphy_net_set(struct wiphy *wiphy, struct net *net)
1350{
1351}
1352#endif
1353
1354/** 1384/**
1355 * wiphy_priv - return priv from wiphy 1385 * wiphy_priv - return priv from wiphy
1356 * 1386 *
@@ -1471,13 +1501,14 @@ struct cfg80211_cached_keys;
1471 * @ssid: (private) Used by the internal configuration code 1501 * @ssid: (private) Used by the internal configuration code
1472 * @ssid_len: (private) Used by the internal configuration code 1502 * @ssid_len: (private) Used by the internal configuration code
1473 * @wext: (private) Used by the internal wireless extensions compat code 1503 * @wext: (private) Used by the internal wireless extensions compat code
1474 * @wext_bssid: (private) Used by the internal wireless extensions compat code
1475 * @use_4addr: indicates 4addr mode is used on this interface, must be 1504 * @use_4addr: indicates 4addr mode is used on this interface, must be
1476 * set by driver (if supported) on add_interface BEFORE registering the 1505 * set by driver (if supported) on add_interface BEFORE registering the
1477 * netdev and may otherwise be used by driver read-only, will be update 1506 * netdev and may otherwise be used by driver read-only, will be update
1478 * by cfg80211 on change_interface 1507 * by cfg80211 on change_interface
1479 * @action_registrations: list of registrations for action frames 1508 * @action_registrations: list of registrations for action frames
1480 * @action_registrations_lock: lock for the list 1509 * @action_registrations_lock: lock for the list
1510 * @mtx: mutex used to lock data in this struct
1511 * @cleanup_work: work struct used for cleanup that can't be done directly
1481 */ 1512 */
1482struct wireless_dev { 1513struct wireless_dev {
1483 struct wiphy *wiphy; 1514 struct wiphy *wiphy;
@@ -1551,11 +1582,13 @@ static inline void *wdev_priv(struct wireless_dev *wdev)
1551 1582
1552/** 1583/**
1553 * ieee80211_channel_to_frequency - convert channel number to frequency 1584 * ieee80211_channel_to_frequency - convert channel number to frequency
1585 * @chan: channel number
1554 */ 1586 */
1555extern int ieee80211_channel_to_frequency(int chan); 1587extern int ieee80211_channel_to_frequency(int chan);
1556 1588
1557/** 1589/**
1558 * ieee80211_frequency_to_channel - convert frequency to channel number 1590 * ieee80211_frequency_to_channel - convert frequency to channel number
1591 * @freq: center frequency
1559 */ 1592 */
1560extern int ieee80211_frequency_to_channel(int freq); 1593extern int ieee80211_frequency_to_channel(int freq);
1561 1594
@@ -1570,6 +1603,8 @@ extern struct ieee80211_channel *__ieee80211_get_channel(struct wiphy *wiphy,
1570 int freq); 1603 int freq);
1571/** 1604/**
1572 * ieee80211_get_channel - get channel struct from wiphy for specified frequency 1605 * ieee80211_get_channel - get channel struct from wiphy for specified frequency
1606 * @wiphy: the struct wiphy to get the channel for
1607 * @freq: the center frequency of the channel
1573 */ 1608 */
1574static inline struct ieee80211_channel * 1609static inline struct ieee80211_channel *
1575ieee80211_get_channel(struct wiphy *wiphy, int freq) 1610ieee80211_get_channel(struct wiphy *wiphy, int freq)
@@ -1630,9 +1665,6 @@ struct ieee80211_radiotap_vendor_namespaces {
1630 * @is_radiotap_ns: indicates whether the current namespace is the default 1665 * @is_radiotap_ns: indicates whether the current namespace is the default
1631 * radiotap namespace or not 1666 * radiotap namespace or not
1632 * 1667 *
1633 * @overrides: override standard radiotap fields
1634 * @n_overrides: number of overrides
1635 *
1636 * @_rtheader: pointer to the radiotap header we are walking through 1668 * @_rtheader: pointer to the radiotap header we are walking through
1637 * @_max_length: length of radiotap header in cpu byte ordering 1669 * @_max_length: length of radiotap header in cpu byte ordering
1638 * @_arg_index: next argument index 1670 * @_arg_index: next argument index
@@ -1948,10 +1980,12 @@ int cfg80211_wext_giwap(struct net_device *dev,
1948void cfg80211_scan_done(struct cfg80211_scan_request *request, bool aborted); 1980void cfg80211_scan_done(struct cfg80211_scan_request *request, bool aborted);
1949 1981
1950/** 1982/**
1951 * cfg80211_inform_bss - inform cfg80211 of a new BSS 1983 * cfg80211_inform_bss_frame - inform cfg80211 of a received BSS frame
1952 * 1984 *
1953 * @wiphy: the wiphy reporting the BSS 1985 * @wiphy: the wiphy reporting the BSS
1954 * @bss: the found BSS 1986 * @channel: The channel the frame was received on
1987 * @mgmt: the management frame (probe response or beacon)
1988 * @len: length of the management frame
1955 * @signal: the signal strength, type depends on the wiphy's signal_type 1989 * @signal: the signal strength, type depends on the wiphy's signal_type
1956 * @gfp: context flags 1990 * @gfp: context flags
1957 * 1991 *
@@ -1964,6 +1998,23 @@ cfg80211_inform_bss_frame(struct wiphy *wiphy,
1964 struct ieee80211_mgmt *mgmt, size_t len, 1998 struct ieee80211_mgmt *mgmt, size_t len,
1965 s32 signal, gfp_t gfp); 1999 s32 signal, gfp_t gfp);
1966 2000
2001/**
2002 * cfg80211_inform_bss - inform cfg80211 of a new BSS
2003 *
2004 * @wiphy: the wiphy reporting the BSS
2005 * @channel: The channel the frame was received on
2006 * @bssid: the BSSID of the BSS
2007 * @timestamp: the TSF timestamp sent by the peer
2008 * @capability: the capability field sent by the peer
2009 * @beacon_interval: the beacon interval announced by the peer
2010 * @ie: additional IEs sent by the peer
2011 * @ielen: length of the additional IEs
2012 * @signal: the signal strength, type depends on the wiphy's signal_type
2013 * @gfp: context flags
2014 *
2015 * This informs cfg80211 that BSS information was found and
2016 * the BSS should be updated/added.
2017 */
1967struct cfg80211_bss* 2018struct cfg80211_bss*
1968cfg80211_inform_bss(struct wiphy *wiphy, 2019cfg80211_inform_bss(struct wiphy *wiphy,
1969 struct ieee80211_channel *channel, 2020 struct ieee80211_channel *channel,