STRUCT CFG80211_OPS(9) | Actions and configuration | STRUCT CFG80211_OPS(9) |
NAME¶
struct_cfg80211_ops - backend description for wireless configuration
SYNOPSIS¶
struct cfg80211_ops {
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,unsigned char name_assign_type,enum nl80211_iftype type,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,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);
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,const u8 *mac,struct station_parameters *params);
int (* del_station) (struct wiphy *wiphy, struct net_device *dev,struct station_del_parameters *params);
int (* change_station) (struct wiphy *wiphy, struct net_device *dev,const u8 *mac,struct station_parameters *params);
int (* get_station) (struct wiphy *wiphy, struct net_device *dev,const 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,const u8 *dst, const u8 *next_hop);
int (* del_mpath) (struct wiphy *wiphy, struct net_device *dev,const u8 *dst);
int (* change_mpath) (struct wiphy *wiphy, struct net_device *dev,const u8 *dst, const 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_mpp) (struct wiphy *wiphy, struct net_device *dev,u8 *dst, u8 *mpp, struct mpath_info *pinfo);
int (* dump_mpp) (struct wiphy *wiphy, struct net_device *dev,int idx, u8 *dst, u8 *mpp,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 (* join_ocb) (struct wiphy *wiphy, struct net_device *dev,struct ocb_setup *setup);
int (* leave_ocb) (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 cfg80211_chan_def *chandef);
int (* scan) (struct wiphy *wiphy,struct cfg80211_scan_request *request);
void (* abort_scan) (struct wiphy *wiphy, struct wireless_dev *wdev);
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 (* update_connect_params) (struct wiphy *wiphy,struct net_device *dev,struct cfg80211_connect_params *sme,u32 changed);
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_mcast_rate) (struct wiphy *wiphy, struct net_device *dev,int rate[NUM_NL80211_BANDS]);
int (* set_wiphy_params) (struct wiphy *wiphy, u32 changed);
int (* set_tx_power) (struct wiphy *wiphy, struct wireless_dev *wdev,enum nl80211_tx_power_setting type, int mbm);
int (* get_tx_power) (struct wiphy *wiphy, struct wireless_dev *wdev,int *dbm);
int (* set_wds_peer) (struct wiphy *wiphy, struct net_device *dev,const u8 *addr);
void (* rfkill_poll) (struct wiphy *wiphy); #ifdef CONFIG_NL80211_TESTMODE
int (* testmode_cmd) (struct wiphy *wiphy, struct wireless_dev *wdev,void *data, int len);
int (* testmode_dump) (struct wiphy *wiphy, struct sk_buff *skb,struct netlink_callback *cb,void *data, int len); #endif
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,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 cfg80211_mgmt_tx_params *params,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_rssi_range_config) (struct wiphy *wiphy,struct net_device *dev,s32 rssi_low, s32 rssi_high);
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 (* 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,u64 reqid);
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,const u8 *peer, u8 action_code, u8 dialog_token,u16 status_code, u32 peer_capability,bool initiator, const u8 *buf, size_t len);
int (* tdls_oper) (struct wiphy *wiphy, struct net_device *dev,const 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_channel) (struct wiphy *wiphy,struct wireless_dev *wdev,struct cfg80211_chan_def *chandef);
int (* start_p2p_device) (struct wiphy *wiphy,struct wireless_dev *wdev);
void (* stop_p2p_device) (struct wiphy *wiphy,struct wireless_dev *wdev);
int (* set_mac_acl) (struct wiphy *wiphy, struct net_device *dev,const struct cfg80211_acl_data *params);
int (* start_radar_detection) (struct wiphy *wiphy,struct net_device *dev,struct cfg80211_chan_def *chandef,u32 cac_time_ms);
int (* update_ft_ies) (struct wiphy *wiphy, struct net_device *dev,struct cfg80211_update_ft_ies_params *ftie);
int (* crit_proto_start) (struct wiphy *wiphy,struct wireless_dev *wdev,enum nl80211_crit_proto_id protocol,u16 duration);
void (* crit_proto_stop) (struct wiphy *wiphy,struct wireless_dev *wdev);
int (* set_coalesce) (struct wiphy *wiphy,struct cfg80211_coalesce *coalesce);
int (* channel_switch) (struct wiphy *wiphy,struct net_device *dev,struct cfg80211_csa_settings *params);
int (* set_qos_map) (struct wiphy *wiphy,struct net_device *dev,struct cfg80211_qos_map *qos_map);
int (* set_ap_chanwidth) (struct wiphy *wiphy, struct net_device *dev,struct cfg80211_chan_def *chandef);
int (* add_tx_ts) (struct wiphy *wiphy, struct net_device *dev,u8 tsid, const u8 *peer, u8 user_prio,u16 admitted_time);
int (* del_tx_ts) (struct wiphy *wiphy, struct net_device *dev,u8 tsid, const u8 *peer);
int (* tdls_channel_switch) (struct wiphy *wiphy,struct net_device *dev,const u8 *addr, u8 oper_class,struct cfg80211_chan_def *chandef);
void (* tdls_cancel_channel_switch) (struct wiphy *wiphy,struct net_device *dev,const u8 *addr);
int (* start_nan) (struct wiphy *wiphy, struct wireless_dev *wdev,struct cfg80211_nan_conf *conf);
void (* stop_nan) (struct wiphy *wiphy, struct wireless_dev *wdev);
int (* add_nan_func) (struct wiphy *wiphy, struct wireless_dev *wdev,struct cfg80211_nan_func *nan_func);
void (* del_nan_func) (struct wiphy *wiphy, struct wireless_dev *wdev,u64 cookie);
int (* nan_change_conf) (struct wiphy *wiphy,struct wireless_dev *wdev,struct cfg80211_nan_conf *conf,u32 changes);
int (* set_multicast_to_unicast) (struct wiphy *wiphy,struct net_device *dev,const bool enabled);
int (* get_txq_stats) (struct wiphy *wiphy,struct wireless_dev *wdev,struct cfg80211_txq_stats *txqstats);
int (* set_pmk) (struct wiphy *wiphy, struct net_device *dev,const struct cfg80211_pmk_conf *conf);
int (* del_pmk) (struct wiphy *wiphy, struct net_device *dev,const u8 *aa);
int (* external_auth) (struct wiphy *wiphy, struct net_device *dev,struct cfg80211_external_auth_params *params);
int (* tx_control_port) (struct wiphy *wiphy,struct net_device *dev,const u8 *buf, size_t len,const u8 *dest, const __be16 proto,const bool noencrypt);
int (* get_ftm_responder_stats) (struct wiphy *wiphy,struct net_device *dev,struct cfg80211_ftm_responder_stats *ftm_stats);
int (* start_pmsr) (struct wiphy *wiphy, struct wireless_dev *wdev,struct cfg80211_pmsr_request *request);
void (* abort_pmsr) (struct wiphy *wiphy, struct wireless_dev *wdev,struct cfg80211_pmsr_request *request);
int (* update_owe_info) (struct wiphy *wiphy, struct net_device *dev,struct cfg80211_update_owe_info *owe_info);
int (* probe_mesh_link) (struct wiphy *wiphy, struct net_device *dev,const u8 *buf, size_t len); };
MEMBERS¶
suspend
resume
set_wakeup
add_virtual_intf
del_virtual_intf
change_virtual_intf
add_key
get_key
del_key
set_default_key
set_default_mgmt_key
start_ap
change_beacon
stop_ap
add_station
del_station
change_station
get_station
dump_station
add_mpath
del_mpath
change_mpath
get_mpath
dump_mpath
get_mpp
dump_mpp
get_mesh_config
update_mesh_config
join_mesh
leave_mesh
join_ocb
leave_ocb
change_bss
set_txq_params
libertas_set_mesh_channel
set_monitor_channel
scan
abort_scan
auth
assoc
deauth
disassoc
connect
update_connect_params
disconnect
join_ibss
leave_ibss
set_mcast_rate
set_wiphy_params
set_tx_power
get_tx_power
set_wds_peer
rfkill_poll
testmode_cmd
testmode_dump
set_bitrate_mask
dump_survey
set_pmksa
del_pmksa
flush_pmksa
remain_on_channel
cancel_remain_on_channel
mgmt_tx
mgmt_tx_cancel_wait
set_power_mgmt
set_cqm_rssi_config
set_cqm_rssi_range_config
set_cqm_txe_config
mgmt_frame_register
set_antenna
get_antenna
sched_scan_start
sched_scan_stop
set_rekey_data
tdls_mgmt
tdls_oper
probe_client
set_noack_map
get_channel
start_p2p_device
stop_p2p_device
set_mac_acl
start_radar_detection
update_ft_ies
crit_proto_start
crit_proto_stop
set_coalesce
channel_switch
set_qos_map
set_ap_chanwidth
add_tx_ts
del_tx_ts
tdls_channel_switch
tdls_cancel_channel_switch
start_nan
stop_nan
add_nan_func
del_nan_func
nan_change_conf
set_multicast_to_unicast
get_txq_stats
set_pmk
del_pmk
external_auth
tx_control_port
get_ftm_responder_stats
start_pmsr
abort_pmsr
update_owe_info
probe_mesh_link
DESCRIPTION¶
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.
AUTHOR¶
Johannes Berg <johannes@sipsolutions.net>
COPYRIGHT¶
June 2024 | Kernel Hackers Manual 3.10 |