cfg80211.h (7c1e51a34afb110a010a73141a2b5f000f798875) cfg80211.h (804483e90794256f9ed53e795ffbf1e94de237c8)
1#ifndef __NET_CFG80211_H
2#define __NET_CFG80211_H
3/*
4 * 802.11 device and configuration interface
5 *
6 * Copyright 2006-2010 Johannes Berg <johannes@sipsolutions.net>
7 *
8 * This program is free software; you can redistribute it and/or modify

--- 399 unchanged lines hidden (view full) ---

408 * @dtim_period: DTIM period
409 * @ssid: SSID to be used in the BSS (note: may be %NULL if not provided from
410 * user space)
411 * @ssid_len: length of @ssid
412 * @hidden_ssid: whether to hide the SSID in Beacon/Probe Response frames
413 * @crypto: crypto settings
414 * @privacy: the BSS uses privacy
415 * @auth_type: Authentication type (algorithm)
1#ifndef __NET_CFG80211_H
2#define __NET_CFG80211_H
3/*
4 * 802.11 device and configuration interface
5 *
6 * Copyright 2006-2010 Johannes Berg <johannes@sipsolutions.net>
7 *
8 * This program is free software; you can redistribute it and/or modify

--- 399 unchanged lines hidden (view full) ---

408 * @dtim_period: DTIM period
409 * @ssid: SSID to be used in the BSS (note: may be %NULL if not provided from
410 * user space)
411 * @ssid_len: length of @ssid
412 * @hidden_ssid: whether to hide the SSID in Beacon/Probe Response frames
413 * @crypto: crypto settings
414 * @privacy: the BSS uses privacy
415 * @auth_type: Authentication type (algorithm)
416 * @inactivity_timeout: time in seconds to determine station's inactivity.
416 */
417struct cfg80211_ap_settings {
418 struct cfg80211_beacon_data beacon;
419
420 int beacon_interval, dtim_period;
421 const u8 *ssid;
422 size_t ssid_len;
423 enum nl80211_hidden_ssid hidden_ssid;
424 struct cfg80211_crypto_settings crypto;
425 bool privacy;
426 enum nl80211_auth_type auth_type;
417 */
418struct cfg80211_ap_settings {
419 struct cfg80211_beacon_data beacon;
420
421 int beacon_interval, dtim_period;
422 const u8 *ssid;
423 size_t ssid_len;
424 enum nl80211_hidden_ssid hidden_ssid;
425 struct cfg80211_crypto_settings crypto;
426 bool privacy;
427 enum nl80211_auth_type auth_type;
428 int inactivity_timeout;
427};
428
429/**
430 * enum plink_action - actions to perform in mesh peers
431 *
432 * @PLINK_ACTION_INVALID: action 0 is reserved
433 * @PLINK_ACTION_OPEN: start mesh peer link establishment
434 * @PLINK_ACTION_BLOCK: block traffic from this mesh peer

--- 369 unchanged lines hidden (view full) ---

804 u8 dot11MeshHWMPRootMode;
805 u16 dot11MeshHWMPRannInterval;
806 /* This is missnamed in draft 12.0: dot11MeshGateAnnouncementProtocol
807 * set to true only means that the station will announce others it's a
808 * mesh gate, but not necessarily using the gate announcement protocol.
809 * Still keeping the same nomenclature to be in sync with the spec. */
810 bool dot11MeshGateAnnouncementProtocol;
811 bool dot11MeshForwarding;
429};
430
431/**
432 * enum plink_action - actions to perform in mesh peers
433 *
434 * @PLINK_ACTION_INVALID: action 0 is reserved
435 * @PLINK_ACTION_OPEN: start mesh peer link establishment
436 * @PLINK_ACTION_BLOCK: block traffic from this mesh peer

--- 369 unchanged lines hidden (view full) ---

806 u8 dot11MeshHWMPRootMode;
807 u16 dot11MeshHWMPRannInterval;
808 /* This is missnamed in draft 12.0: dot11MeshGateAnnouncementProtocol
809 * set to true only means that the station will announce others it's a
810 * mesh gate, but not necessarily using the gate announcement protocol.
811 * Still keeping the same nomenclature to be in sync with the spec. */
812 bool dot11MeshGateAnnouncementProtocol;
813 bool dot11MeshForwarding;
814 s32 rssi_threshold;
812};
813
814/**
815 * struct mesh_setup - 802.11s mesh setup configuration
816 * @mesh_id: the mesh ID
817 * @mesh_id_len: length of the mesh ID, at least 1 and at most 32 bytes
818 * @path_sel_proto: which path selection protocol to use
819 * @path_metric: which metric to use

--- 531 unchanged lines hidden (view full) ---

1351 * and @key_index, return -ENOENT if the key doesn't exist.
1352 *
1353 * @set_default_key: set the default key on an interface
1354 *
1355 * @set_default_mgmt_key: set the default management frame key on an interface
1356 *
1357 * @set_rekey_data: give the data necessary for GTK rekeying to the driver
1358 *
815};
816
817/**
818 * struct mesh_setup - 802.11s mesh setup configuration
819 * @mesh_id: the mesh ID
820 * @mesh_id_len: length of the mesh ID, at least 1 and at most 32 bytes
821 * @path_sel_proto: which path selection protocol to use
822 * @path_metric: which metric to use

--- 531 unchanged lines hidden (view full) ---

1354 * and @key_index, return -ENOENT if the key doesn't exist.
1355 *
1356 * @set_default_key: set the default key on an interface
1357 *
1358 * @set_default_mgmt_key: set the default management frame key on an interface
1359 *
1360 * @set_rekey_data: give the data necessary for GTK rekeying to the driver
1361 *
1359 * @add_beacon: Add a beacon with given parameters, @head, @interval
1360 * and @dtim_period will be valid, @tail is optional.
1361 * @set_beacon: Change the beacon parameters for an access point mode
1362 * interface. This should reject the call when no beacon has been
1363 * configured.
1364 * @del_beacon: Remove beacon configuration and stop sending the beacon.
1362 * @start_ap: Start acting in AP mode defined by the parameters.
1363 * @change_beacon: Change the beacon parameters for an access point mode
1364 * interface. This should reject the call when AP mode wasn't started.
1365 * @stop_ap: Stop being an AP, including stopping beaconing.
1365 *
1366 * @add_station: Add a new station.
1367 * @del_station: Remove a station; @mac may be NULL to remove all stations.
1368 * @change_station: Modify a given station. Note that flags changes are not much
1369 * validated in cfg80211, in particular the auth/assoc/authorized flags
1370 * might come to the driver in invalid combinations -- make sure to check
1371 * them, also against the existing state! Also, supported_rates changes are
1372 * not checked in station mode -- drivers need to reject (or ignore) them

--- 1810 unchanged lines hidden (view full) ---

3183 * @gfp: allocation flags
3184 */
3185void cfg80211_del_sta(struct net_device *dev, const u8 *mac_addr, gfp_t gfp);
3186
3187/**
3188 * cfg80211_rx_mgmt - notification of received, unprocessed management frame
3189 * @dev: network device
3190 * @freq: Frequency on which the frame was received in MHz
1366 *
1367 * @add_station: Add a new station.
1368 * @del_station: Remove a station; @mac may be NULL to remove all stations.
1369 * @change_station: Modify a given station. Note that flags changes are not much
1370 * validated in cfg80211, in particular the auth/assoc/authorized flags
1371 * might come to the driver in invalid combinations -- make sure to check
1372 * them, also against the existing state! Also, supported_rates changes are
1373 * not checked in station mode -- drivers need to reject (or ignore) them

--- 1810 unchanged lines hidden (view full) ---

3184 * @gfp: allocation flags
3185 */
3186void cfg80211_del_sta(struct net_device *dev, const u8 *mac_addr, gfp_t gfp);
3187
3188/**
3189 * cfg80211_rx_mgmt - notification of received, unprocessed management frame
3190 * @dev: network device
3191 * @freq: Frequency on which the frame was received in MHz
3192 * @sig_dbm: signal strength in mBm, or 0 if unknown
3191 * @buf: Management frame (header + body)
3192 * @len: length of the frame data
3193 * @gfp: context flags
3194 *
3195 * Returns %true if a user space application has registered for this frame.
3196 * For action frames, that makes it responsible for rejecting unrecognized
3197 * action frames; %false otherwise, in which case for action frames the
3198 * driver is responsible for rejecting the frame.
3199 *
3200 * This function is called whenever an Action frame is received for a station
3201 * mode interface, but is not processed in kernel.
3202 */
3193 * @buf: Management frame (header + body)
3194 * @len: length of the frame data
3195 * @gfp: context flags
3196 *
3197 * Returns %true if a user space application has registered for this frame.
3198 * For action frames, that makes it responsible for rejecting unrecognized
3199 * action frames; %false otherwise, in which case for action frames the
3200 * driver is responsible for rejecting the frame.
3201 *
3202 * This function is called whenever an Action frame is received for a station
3203 * mode interface, but is not processed in kernel.
3204 */
3203bool cfg80211_rx_mgmt(struct net_device *dev, int freq, const u8 *buf,
3204 size_t len, gfp_t gfp);
3205bool cfg80211_rx_mgmt(struct net_device *dev, int freq, int sig_dbm,
3206 const u8 *buf, size_t len, gfp_t gfp);
3205
3206/**
3207 * cfg80211_mgmt_tx_status - notification of TX status for management frame
3208 * @dev: network device
3209 * @cookie: Cookie returned by cfg80211_ops::mgmt_tx()
3210 * @buf: Management frame (header + body)
3211 * @len: length of the frame data
3212 * @ack: Whether frame was acknowledged

--- 96 unchanged lines hidden (view full) ---

3309 u64 cookie, bool acked, gfp_t gfp);
3310
3311/**
3312 * cfg80211_report_obss_beacon - report beacon from other APs
3313 * @wiphy: The wiphy that received the beacon
3314 * @frame: the frame
3315 * @len: length of the frame
3316 * @freq: frequency the frame was received on
3207
3208/**
3209 * cfg80211_mgmt_tx_status - notification of TX status for management frame
3210 * @dev: network device
3211 * @cookie: Cookie returned by cfg80211_ops::mgmt_tx()
3212 * @buf: Management frame (header + body)
3213 * @len: length of the frame data
3214 * @ack: Whether frame was acknowledged

--- 96 unchanged lines hidden (view full) ---

3311 u64 cookie, bool acked, gfp_t gfp);
3312
3313/**
3314 * cfg80211_report_obss_beacon - report beacon from other APs
3315 * @wiphy: The wiphy that received the beacon
3316 * @frame: the frame
3317 * @len: length of the frame
3318 * @freq: frequency the frame was received on
3319 * @sig_dbm: signal strength in mBm, or 0 if unknown
3317 * @gfp: allocation flags
3318 *
3319 * Use this function to report to userspace when a beacon was
3320 * received. It is not useful to call this when there is no
3321 * netdev that is in AP/GO mode.
3322 */
3323void cfg80211_report_obss_beacon(struct wiphy *wiphy,
3324 const u8 *frame, size_t len,
3320 * @gfp: allocation flags
3321 *
3322 * Use this function to report to userspace when a beacon was
3323 * received. It is not useful to call this when there is no
3324 * netdev that is in AP/GO mode.
3325 */
3326void cfg80211_report_obss_beacon(struct wiphy *wiphy,
3327 const u8 *frame, size_t len,
3325 int freq, gfp_t gfp);
3328 int freq, int sig_dbm, gfp_t gfp);
3326
3327/*
3328 * cfg80211_can_beacon_sec_chan - test if ht40 on extension channel can be used
3329 * @wiphy: the wiphy
3330 * @chan: main channel
3331 * @channel_type: HT mode
3332 */
3333int cfg80211_can_beacon_sec_chan(struct wiphy *wiphy,

--- 50 unchanged lines hidden ---
3329
3330/*
3331 * cfg80211_can_beacon_sec_chan - test if ht40 on extension channel can be used
3332 * @wiphy: the wiphy
3333 * @chan: main channel
3334 * @channel_type: HT mode
3335 */
3336int cfg80211_can_beacon_sec_chan(struct wiphy *wiphy,

--- 50 unchanged lines hidden ---