Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Data Fields
cfg80211_ops Struct Reference

#include <cfg80211.h>

Data Fields

int(* suspend )(struct wiphy *wiphy, struct cfg80211_wowlan *wow)
 
int(* resume )(struct wiphy *wiphy)
 
void(* set_wakeup )(struct wiphy *wiphy, bool enabled)
 
struct wireless_dev *(* add_virtual_intf )(struct wiphy *wiphy, const char *name, enum nl80211_iftype type, u32 *flags, struct vif_params *params)
 
int(* del_virtual_intf )(struct wiphy *wiphy, struct wireless_dev *wdev)
 
int(* change_virtual_intf )(struct wiphy *wiphy, struct net_device *dev, enum nl80211_iftype type, u32 *flags, struct vif_params *params)
 
int(* add_key )(struct wiphy *wiphy, struct net_device *netdev, u8 key_index, bool pairwise, const u8 *mac_addr, struct key_params *params)
 
int(* get_key )(struct wiphy *wiphy, struct net_device *netdev, u8 key_index, bool pairwise, const u8 *mac_addr, void *cookie, void(*callback)(void *cookie, struct key_params *))
 
int(* del_key )(struct wiphy *wiphy, struct net_device *netdev, u8 key_index, bool pairwise, const u8 *mac_addr)
 
int(* set_default_key )(struct wiphy *wiphy, struct net_device *netdev, u8 key_index, bool unicast, bool multicast)
 
int(* set_default_mgmt_key )(struct wiphy *wiphy, struct net_device *netdev, u8 key_index)
 
int(* start_ap )(struct wiphy *wiphy, struct net_device *dev, struct cfg80211_ap_settings *settings)
 
int(* change_beacon )(struct wiphy *wiphy, struct net_device *dev, struct cfg80211_beacon_data *info)
 
int(* stop_ap )(struct wiphy *wiphy, struct net_device *dev)
 
int(* add_station )(struct wiphy *wiphy, struct net_device *dev, u8 *mac, struct station_parameters *params)
 
int(* del_station )(struct wiphy *wiphy, struct net_device *dev, u8 *mac)
 
int(* change_station )(struct wiphy *wiphy, struct net_device *dev, u8 *mac, struct station_parameters *params)
 
int(* get_station )(struct wiphy *wiphy, struct net_device *dev, u8 *mac, struct station_info *sinfo)
 
int(* dump_station )(struct wiphy *wiphy, struct net_device *dev, int idx, u8 *mac, struct station_info *sinfo)
 
int(* add_mpath )(struct wiphy *wiphy, struct net_device *dev, u8 *dst, u8 *next_hop)
 
int(* del_mpath )(struct wiphy *wiphy, struct net_device *dev, u8 *dst)
 
int(* change_mpath )(struct wiphy *wiphy, struct net_device *dev, u8 *dst, u8 *next_hop)
 
int(* get_mpath )(struct wiphy *wiphy, struct net_device *dev, u8 *dst, u8 *next_hop, struct mpath_info *pinfo)
 
int(* dump_mpath )(struct wiphy *wiphy, struct net_device *dev, int idx, u8 *dst, u8 *next_hop, struct mpath_info *pinfo)
 
int(* get_mesh_config )(struct wiphy *wiphy, struct net_device *dev, struct mesh_config *conf)
 
int(* update_mesh_config )(struct wiphy *wiphy, struct net_device *dev, u32 mask, const struct mesh_config *nconf)
 
int(* join_mesh )(struct wiphy *wiphy, struct net_device *dev, const struct mesh_config *conf, const struct mesh_setup *setup)
 
int(* leave_mesh )(struct wiphy *wiphy, struct net_device *dev)
 
int(* change_bss )(struct wiphy *wiphy, struct net_device *dev, struct bss_parameters *params)
 
int(* set_txq_params )(struct wiphy *wiphy, struct net_device *dev, struct ieee80211_txq_params *params)
 
int(* libertas_set_mesh_channel )(struct wiphy *wiphy, struct net_device *dev, struct ieee80211_channel *chan)
 
int(* set_monitor_channel )(struct wiphy *wiphy, struct ieee80211_channel *chan, enum nl80211_channel_type channel_type)
 
int(* scan )(struct wiphy *wiphy, struct cfg80211_scan_request *request)
 
int(* auth )(struct wiphy *wiphy, struct net_device *dev, struct cfg80211_auth_request *req)
 
int(* assoc )(struct wiphy *wiphy, struct net_device *dev, struct cfg80211_assoc_request *req)
 
int(* deauth )(struct wiphy *wiphy, struct net_device *dev, struct cfg80211_deauth_request *req)
 
int(* disassoc )(struct wiphy *wiphy, struct net_device *dev, struct cfg80211_disassoc_request *req)
 
int(* connect )(struct wiphy *wiphy, struct net_device *dev, struct cfg80211_connect_params *sme)
 
int(* disconnect )(struct wiphy *wiphy, struct net_device *dev, u16 reason_code)
 
int(* join_ibss )(struct wiphy *wiphy, struct net_device *dev, struct cfg80211_ibss_params *params)
 
int(* leave_ibss )(struct wiphy *wiphy, struct net_device *dev)
 
int(* set_wiphy_params )(struct wiphy *wiphy, u32 changed)
 
int(* set_tx_power )(struct wiphy *wiphy, enum nl80211_tx_power_setting type, int mbm)
 
int(* get_tx_power )(struct wiphy *wiphy, int *dbm)
 
int(* set_wds_peer )(struct wiphy *wiphy, struct net_device *dev, const u8 *addr)
 
void(* rfkill_poll )(struct wiphy *wiphy)
 
int(* set_bitrate_mask )(struct wiphy *wiphy, struct net_device *dev, const u8 *peer, const struct cfg80211_bitrate_mask *mask)
 
int(* dump_survey )(struct wiphy *wiphy, struct net_device *netdev, int idx, struct survey_info *info)
 
int(* set_pmksa )(struct wiphy *wiphy, struct net_device *netdev, struct cfg80211_pmksa *pmksa)
 
int(* del_pmksa )(struct wiphy *wiphy, struct net_device *netdev, struct cfg80211_pmksa *pmksa)
 
int(* flush_pmksa )(struct wiphy *wiphy, struct net_device *netdev)
 
int(* remain_on_channel )(struct wiphy *wiphy, struct wireless_dev *wdev, struct ieee80211_channel *chan, enum nl80211_channel_type channel_type, unsigned int duration, u64 *cookie)
 
int(* cancel_remain_on_channel )(struct wiphy *wiphy, struct wireless_dev *wdev, u64 cookie)
 
int(* mgmt_tx )(struct wiphy *wiphy, struct wireless_dev *wdev, struct ieee80211_channel *chan, bool offchan, enum nl80211_channel_type channel_type, bool channel_type_valid, unsigned int wait, const u8 *buf, size_t len, bool no_cck, bool dont_wait_for_ack, u64 *cookie)
 
int(* mgmt_tx_cancel_wait )(struct wiphy *wiphy, struct wireless_dev *wdev, u64 cookie)
 
int(* set_power_mgmt )(struct wiphy *wiphy, struct net_device *dev, bool enabled, int timeout)
 
int(* set_cqm_rssi_config )(struct wiphy *wiphy, struct net_device *dev, s32 rssi_thold, u32 rssi_hyst)
 
int(* set_cqm_txe_config )(struct wiphy *wiphy, struct net_device *dev, u32 rate, u32 pkts, u32 intvl)
 
void(* mgmt_frame_register )(struct wiphy *wiphy, struct wireless_dev *wdev, u16 frame_type, bool reg)
 
int(* set_antenna )(struct wiphy *wiphy, u32 tx_ant, u32 rx_ant)
 
int(* get_antenna )(struct wiphy *wiphy, u32 *tx_ant, u32 *rx_ant)
 
int(* set_ringparam )(struct wiphy *wiphy, u32 tx, u32 rx)
 
void(* get_ringparam )(struct wiphy *wiphy, u32 *tx, u32 *tx_max, u32 *rx, u32 *rx_max)
 
int(* sched_scan_start )(struct wiphy *wiphy, struct net_device *dev, struct cfg80211_sched_scan_request *request)
 
int(* sched_scan_stop )(struct wiphy *wiphy, struct net_device *dev)
 
int(* set_rekey_data )(struct wiphy *wiphy, struct net_device *dev, struct cfg80211_gtk_rekey_data *data)
 
int(* tdls_mgmt )(struct wiphy *wiphy, struct net_device *dev, u8 *peer, u8 action_code, u8 dialog_token, u16 status_code, const u8 *buf, size_t len)
 
int(* tdls_oper )(struct wiphy *wiphy, struct net_device *dev, u8 *peer, enum nl80211_tdls_operation oper)
 
int(* probe_client )(struct wiphy *wiphy, struct net_device *dev, const u8 *peer, u64 *cookie)
 
int(* set_noack_map )(struct wiphy *wiphy, struct net_device *dev, u16 noack_map)
 
int(* get_et_sset_count )(struct wiphy *wiphy, struct net_device *dev, int sset)
 
void(* get_et_stats )(struct wiphy *wiphy, struct net_device *dev, struct ethtool_stats *stats, u64 *data)
 
void(* get_et_strings )(struct wiphy *wiphy, struct net_device *dev, u32 sset, u8 *data)
 
struct ieee80211_channel *(* get_channel )(struct wiphy *wiphy, struct wireless_dev *wdev, enum nl80211_channel_type *type)
 
int(* start_p2p_device )(struct wiphy *wiphy, struct wireless_dev *wdev)
 
void(* stop_p2p_device )(struct wiphy *wiphy, struct wireless_dev *wdev)
 

Detailed Description

struct cfg80211_ops - backend description for wireless configuration

This struct is registered by fullmac card drivers and/or wireless stacks in order to handle configuration requests on their interfaces.

All callbacks except where otherwise noted should return 0 on success or a negative error code.

All operations are currently invoked under rtnl for consistency with the wireless extensions but this is subject to reevaluation as soon as this code is used more widely and we have a first user without wext.

: wiphy device needs to be suspended. The variable will be NULL or contain the enabled Wake-on-Wireless triggers that are configured for the device. : wiphy device needs to be resumed : Called when WoWLAN is enabled/disabled, use this callback to call device_set_wakeup_enable() to enable/disable wakeup from the device.

: create a new virtual interface with the given name, must set the struct wireless_dev's iftype. Beware: You must create the new netdev in the wiphy's network namespace! Returns the struct wireless_dev, or an ERR_PTR. For P2P device wdevs, the driver must also set the address member in the wdev.

: remove the virtual interface

: change type/configuration of virtual interface, keep the struct wireless_dev's iftype updated.

: add a key with the given parameters. will be NULL when adding a group key.

: get information about the key with the given parameters. will be NULL when requesting information for a group key. All pointers given to the function need not be valid after it returns. This function should return an error if it is not possible to retrieve the key, -ENOENT if it doesn't exist.

: remove a key given the (NULL for a group key) and , return -ENOENT if the key doesn't exist.

: set the default key on an interface

: set the default management frame key on an interface

: give the data necessary for GTK rekeying to the driver

: Start acting in AP mode defined by the parameters. : Change the beacon parameters for an access point mode interface. This should reject the call when AP mode wasn't started. : Stop being an AP, including stopping beaconing.

: Add a new station. : Remove a station; may be NULL to remove all stations. : Modify a given station. Note that flags changes are not much validated in cfg80211, in particular the auth/assoc/authorized flags might come to the driver in invalid combinations – make sure to check them, also against the existing state! Also, supported_rates changes are not checked in station mode – drivers need to reject (or ignore) them for anything but TDLS peers. : get station information for the station identified by : dump station callback – resume dump at index

: add a fixed mesh path : delete a given mesh path : change a given mesh path : get a mesh path for the given parameters : dump mesh path callback – resume dump at index : join the mesh network with the specified parameters : leave the current mesh network

: Get the current mesh configuration

: Update mesh parameters on a running mesh. The mask is a bitfield which tells us which parameters to set, and which to leave alone.

: Modify parameters for a given BSS.

: Set TX queue parameters

: Only for backward compatibility for libertas, as it doesn't implement join_mesh and needs to set the channel to join the mesh instead.

: Set the monitor mode channel for the device. If other interfaces are active this callback should reject the configuration. If no interfaces are active or the device is down, the channel should be stored for when a monitor interface becomes active.

: Request to do a scan. If returning zero, the scan request is given the driver, and will be valid until passed to cfg80211_scan_done(). For scan results, call cfg80211_inform_bss(); you can call this outside the scan/scan_done bracket too.

: Request to authenticate with the specified peer : Request to (re)associate with the specified peer : Request to deauthenticate from the specified peer : Request to disassociate from the specified peer

: Connect to the ESS with the specified parameters. When connected, call cfg80211_connect_result() with status code WLAN_STATUS_SUCCESS. If the connection fails for some reason, call cfg80211_connect_result() with the status from the AP. : Disconnect from the BSS/ESS.

: Join the specified IBSS (or create if necessary). Once done, call cfg80211_ibss_joined(), also call that function when changing BSSID due to a merge. : Leave the IBSS.

: Notify that wiphy parameters have changed; bitfield (see &enum wiphy_params_flags) describes which values have changed. The actual parameter values are available in struct wiphy. If returning an error, no value should be changed.

: set the transmit power according to the parameters, the power passed is in mBm, to get dBm use MBM_TO_DBM(). : store the current TX power into the dbm variable; return 0 if successful

: set the WDS peer for a WDS interface

: polls the hw rfkill line, use cfg80211 reporting functions to adjust rfkill hw state

: get site survey information.

: Request the driver to remain awake on the specified channel for the specified duration to complete an off-channel operation (e.g., public action frame exchange). When the driver is ready on the requested channel, it must indicate this with an event notification by calling cfg80211_ready_on_channel(). : Cancel an on-going remain-on-channel operation. This allows the operation to be terminated prior to timeout based on the duration value. : Transmit a management frame. : Cancel the wait time from transmitting a management frame on another channel

: run a test mode command : Implement a test mode dump. The cb->args[2] and up may be used by the function, but 0 and 1 must not be touched. Additionally, return error codes other than -ENOBUFS and -ENOENT will terminate the dump and return to userspace with an error, so be careful. If any data was passed in from userspace then the data/len arguments will be present and point to the data contained in NL80211_ATTR_TESTDATA.

: set the bitrate mask configuration

: Cache a PMKID for a BSSID. This is mostly useful for fullmac devices running firmwares capable of generating the (re) association RSN IE. It allows for faster roaming between WPA2 BSSIDs. : Delete a cached PMKID. : Flush all cached PMKIDs. : Configure WLAN power management. A timeout value of -1 allows the driver to adjust the dynamic ps timeout value. : Configure connection quality monitor RSSI threshold. : Configure connection quality monitor TX error thresholds. : Tell the driver to start a scheduled scan. : Tell the driver to stop an ongoing scheduled scan.

: Notify driver that a management frame type was registered. Note that this callback may not sleep, and cannot run concurrently with itself.

: Set antenna configuration (tx_ant, rx_ant) on the device. Parameters are bitmaps of allowed antennas to use for TX/RX. Drivers may reject TX/RX mask combinations they cannot support by returning -EINVAL (also see nl80211.h ).

: Get current antenna configuration from device (tx_ant, rx_ant).

: Set tx and rx ring sizes.

: Get tx and rx ring current and maximum sizes.

: Transmit a TDLS management frame. : Perform a high-level TDLS operation (e.g. TDLS link setup).

: probe an associated client, must return a cookie that it later passes to cfg80211_probe_status().

: Set the NoAck Map for the TIDs.

: Ethtool API to get string-set count. See .get_sset_count

: Ethtool API to get a set of u64 stats. See .get_ethtool_stats

: Ethtool API to get a set of strings to describe stats and perhaps other supported types of ethtool data-sets. See .get_strings

: Get the current operating channel for the virtual interface. For monitor interfaces, it should return NULL unless there's a single current monitoring channel.

: Start the given P2P device. : Stop the given P2P device.

Definition at line 1626 of file cfg80211.h.

Field Documentation

Definition at line 1643 of file cfg80211.h.

int(* add_mpath)(struct wiphy *wiphy, struct net_device *dev, u8 *dst, u8 *next_hop)

Definition at line 1677 of file cfg80211.h.

Definition at line 1666 of file cfg80211.h.

Definition at line 1631 of file cfg80211.h.

Definition at line 1719 of file cfg80211.h.

Definition at line 1717 of file cfg80211.h.

int(* cancel_remain_on_channel)(struct wiphy *wiphy, struct wireless_dev *wdev, u64 cookie)

Definition at line 1773 of file cfg80211.h.

Definition at line 1661 of file cfg80211.h.

Definition at line 1700 of file cfg80211.h.

int(* change_mpath)(struct wiphy *wiphy, struct net_device *dev, u8 *dst, u8 *next_hop)

Definition at line 1681 of file cfg80211.h.

Definition at line 1670 of file cfg80211.h.

Definition at line 1638 of file cfg80211.h.

Definition at line 1726 of file cfg80211.h.

Definition at line 1721 of file cfg80211.h.

int(* del_key)(struct wiphy *wiphy, struct net_device *netdev, u8 key_index, bool pairwise, const u8 *mac_addr)

Definition at line 1650 of file cfg80211.h.

int(* del_mpath)(struct wiphy *wiphy, struct net_device *dev, u8 *dst)

Definition at line 1679 of file cfg80211.h.

int(* del_pmksa)(struct wiphy *wiphy, struct net_device *netdev, struct cfg80211_pmksa *pmksa)

Definition at line 1763 of file cfg80211.h.

int(* del_station)(struct wiphy *wiphy, struct net_device *dev, u8 *mac)

Definition at line 1668 of file cfg80211.h.

int(* del_virtual_intf)(struct wiphy *wiphy, struct wireless_dev *wdev)

Definition at line 1636 of file cfg80211.h.

Definition at line 1723 of file cfg80211.h.

Definition at line 1728 of file cfg80211.h.

int(* dump_mpath)(struct wiphy *wiphy, struct net_device *dev, int idx, u8 *dst, u8 *next_hop, struct mpath_info *pinfo)

Definition at line 1686 of file cfg80211.h.

Definition at line 1674 of file cfg80211.h.

Definition at line 1758 of file cfg80211.h.

int(* flush_pmksa)(struct wiphy *wiphy, struct net_device *netdev)

Definition at line 1765 of file cfg80211.h.

int(* get_antenna)(struct wiphy *wiphy, u32 *tx_ant, u32 *rx_ant)

Definition at line 1803 of file cfg80211.h.

Definition at line 1838 of file cfg80211.h.

int(* get_et_sset_count)(struct wiphy *wiphy, struct net_device *dev, int sset)

Definition at line 1830 of file cfg80211.h.

Definition at line 1832 of file cfg80211.h.

void(* get_et_strings)(struct wiphy *wiphy, struct net_device *dev, u32 sset, u8 *data)

Definition at line 1834 of file cfg80211.h.

Definition at line 1646 of file cfg80211.h.

int(* get_mesh_config)(struct wiphy *wiphy, struct net_device *dev, struct mesh_config *conf)

Definition at line 1689 of file cfg80211.h.

int(* get_mpath)(struct wiphy *wiphy, struct net_device *dev, u8 *dst, u8 *next_hop, struct mpath_info *pinfo)

Definition at line 1683 of file cfg80211.h.

void(* get_ringparam)(struct wiphy *wiphy, u32 *tx, u32 *tx_max, u32 *rx, u32 *rx_max)

Definition at line 1806 of file cfg80211.h.

Definition at line 1672 of file cfg80211.h.

int(* get_tx_power)(struct wiphy *wiphy, int *dbm)

Definition at line 1739 of file cfg80211.h.

Definition at line 1731 of file cfg80211.h.

Definition at line 1695 of file cfg80211.h.

int(* leave_ibss)(struct wiphy *wiphy, struct net_device *dev)

Definition at line 1733 of file cfg80211.h.

int(* leave_mesh)(struct wiphy *wiphy, struct net_device *dev)

Definition at line 1698 of file cfg80211.h.

int(* libertas_set_mesh_channel)(struct wiphy *wiphy, struct net_device *dev, struct ieee80211_channel *chan)

Definition at line 1706 of file cfg80211.h.

void(* mgmt_frame_register)(struct wiphy *wiphy, struct wireless_dev *wdev, u16 frame_type, bool reg)

Definition at line 1798 of file cfg80211.h.

int(* mgmt_tx)(struct wiphy *wiphy, struct wireless_dev *wdev, struct ieee80211_channel *chan, bool offchan, enum nl80211_channel_type channel_type, bool channel_type_valid, unsigned int wait, const u8 *buf, size_t len, bool no_cck, bool dont_wait_for_ack, u64 *cookie)

Definition at line 1777 of file cfg80211.h.

int(* mgmt_tx_cancel_wait)(struct wiphy *wiphy, struct wireless_dev *wdev, u64 cookie)

Definition at line 1783 of file cfg80211.h.

int(* probe_client)(struct wiphy *wiphy, struct net_device *dev, const u8 *peer, u64 *cookie)

Definition at line 1823 of file cfg80211.h.

Definition at line 1767 of file cfg80211.h.

int(* resume)(struct wiphy *wiphy)

Definition at line 1628 of file cfg80211.h.

void(* rfkill_poll)(struct wiphy *wiphy)

Definition at line 1744 of file cfg80211.h.

Definition at line 1714 of file cfg80211.h.

Definition at line 1809 of file cfg80211.h.

int(* sched_scan_stop)(struct wiphy *wiphy, struct net_device *dev)

Definition at line 1812 of file cfg80211.h.

int(* set_antenna)(struct wiphy *wiphy, u32 tx_ant, u32 rx_ant)

Definition at line 1802 of file cfg80211.h.

Definition at line 1753 of file cfg80211.h.

int(* set_cqm_rssi_config)(struct wiphy *wiphy, struct net_device *dev, s32 rssi_thold, u32 rssi_hyst)

Definition at line 1790 of file cfg80211.h.

int(* set_cqm_txe_config)(struct wiphy *wiphy, struct net_device *dev, u32 rate, u32 pkts, u32 intvl)

Definition at line 1794 of file cfg80211.h.

int(* set_default_key)(struct wiphy *wiphy, struct net_device *netdev, u8 key_index, bool unicast, bool multicast)

Definition at line 1652 of file cfg80211.h.

int(* set_default_mgmt_key)(struct wiphy *wiphy, struct net_device *netdev, u8 key_index)

Definition at line 1655 of file cfg80211.h.

Definition at line 1710 of file cfg80211.h.

int(* set_noack_map)(struct wiphy *wiphy, struct net_device *dev, u16 noack_map)

Definition at line 1826 of file cfg80211.h.

int(* set_pmksa)(struct wiphy *wiphy, struct net_device *netdev, struct cfg80211_pmksa *pmksa)

Definition at line 1761 of file cfg80211.h.

Definition at line 1787 of file cfg80211.h.

Definition at line 1814 of file cfg80211.h.

int(* set_ringparam)(struct wiphy *wiphy, u32 tx, u32 rx)

Definition at line 1805 of file cfg80211.h.

int(* set_tx_power)(struct wiphy *wiphy, enum nl80211_tx_power_setting type, int mbm)

Definition at line 1737 of file cfg80211.h.

Definition at line 1703 of file cfg80211.h.

void(* set_wakeup)(struct wiphy *wiphy, bool enabled)

Definition at line 1629 of file cfg80211.h.

int(* set_wds_peer)(struct wiphy *wiphy, struct net_device *dev, const u8 *addr)

Definition at line 1741 of file cfg80211.h.

int(* set_wiphy_params)(struct wiphy *wiphy, u32 changed)

Definition at line 1735 of file cfg80211.h.

Definition at line 1659 of file cfg80211.h.

int(* start_p2p_device)(struct wiphy *wiphy, struct wireless_dev *wdev)

Definition at line 1842 of file cfg80211.h.

Definition at line 1663 of file cfg80211.h.

void(* stop_p2p_device)(struct wiphy *wiphy, struct wireless_dev *wdev)

Definition at line 1844 of file cfg80211.h.

Definition at line 1627 of file cfg80211.h.

Definition at line 1817 of file cfg80211.h.

int(* tdls_oper)(struct wiphy *wiphy, struct net_device *dev, u8 *peer, enum nl80211_tdls_operation oper)

Definition at line 1820 of file cfg80211.h.

int(* update_mesh_config)(struct wiphy *wiphy, struct net_device *dev, u32 mask, const struct mesh_config *nconf)

Definition at line 1692 of file cfg80211.h.


The documentation for this struct was generated from the following file: