1STRUCT CFG80211_OPS(9)     Actions and configuration    STRUCT CFG80211_OPS(9)
2
3
4

NAME

6       struct_cfg80211_ops - backend description for wireless configuration
7

SYNOPSIS

9       struct cfg80211_ops {
10         int (* suspend) (struct wiphy *wiphy, struct cfg80211_wowlan *wow);
11         int (* resume) (struct wiphy *wiphy);
12         void (* set_wakeup) (struct wiphy *wiphy, bool enabled);
13         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);
14         int (* del_virtual_intf) (struct wiphy *wiphy,struct wireless_dev *wdev);
15         int (* change_virtual_intf) (struct wiphy *wiphy,struct net_device *dev,enum nl80211_iftype type,struct vif_params *params);
16         int (* add_key) (struct wiphy *wiphy, struct net_device *netdev,u8 key_index, bool pairwise, const u8 *mac_addr,struct key_params *params);
17         int (* get_key) (struct wiphy *wiphy, struct net_device *netdev,u8 key_index, bool pairwise, const u8 *mac_addr,void *cookie,void (*callback);
18         int (* del_key) (struct wiphy *wiphy, struct net_device *netdev,u8 key_index, bool pairwise, const u8 *mac_addr);
19         int (* set_default_key) (struct wiphy *wiphy,struct net_device *netdev,u8 key_index, bool unicast, bool multicast);
20         int (* set_default_mgmt_key) (struct wiphy *wiphy,struct net_device *netdev,u8 key_index);
21         int (* start_ap) (struct wiphy *wiphy, struct net_device *dev,struct cfg80211_ap_settings *settings);
22         int (* change_beacon) (struct wiphy *wiphy, struct net_device *dev,struct cfg80211_beacon_data *info);
23         int (* stop_ap) (struct wiphy *wiphy, struct net_device *dev);
24         int (* add_station) (struct wiphy *wiphy, struct net_device *dev,const u8 *mac,struct station_parameters *params);
25         int (* del_station) (struct wiphy *wiphy, struct net_device *dev,struct station_del_parameters *params);
26         int (* change_station) (struct wiphy *wiphy, struct net_device *dev,const u8 *mac,struct station_parameters *params);
27         int (* get_station) (struct wiphy *wiphy, struct net_device *dev,const u8 *mac, struct station_info *sinfo);
28         int (* dump_station) (struct wiphy *wiphy, struct net_device *dev,int idx, u8 *mac, struct station_info *sinfo);
29         int (* add_mpath) (struct wiphy *wiphy, struct net_device *dev,const u8 *dst, const u8 *next_hop);
30         int (* del_mpath) (struct wiphy *wiphy, struct net_device *dev,const u8 *dst);
31         int (* change_mpath) (struct wiphy *wiphy, struct net_device *dev,const u8 *dst, const u8 *next_hop);
32         int (* get_mpath) (struct wiphy *wiphy, struct net_device *dev,u8 *dst, u8 *next_hop, struct mpath_info *pinfo);
33         int (* dump_mpath) (struct wiphy *wiphy, struct net_device *dev,int idx, u8 *dst, u8 *next_hop,struct mpath_info *pinfo);
34         int (* get_mpp) (struct wiphy *wiphy, struct net_device *dev,u8 *dst, u8 *mpp, struct mpath_info *pinfo);
35         int (* dump_mpp) (struct wiphy *wiphy, struct net_device *dev,int idx, u8 *dst, u8 *mpp,struct mpath_info *pinfo);
36         int (* get_mesh_config) (struct wiphy *wiphy,struct net_device *dev,struct mesh_config *conf);
37         int (* update_mesh_config) (struct wiphy *wiphy,struct net_device *dev, u32 mask,const struct mesh_config *nconf);
38         int (* join_mesh) (struct wiphy *wiphy, struct net_device *dev,const struct mesh_config *conf,const struct mesh_setup *setup);
39         int (* leave_mesh) (struct wiphy *wiphy, struct net_device *dev);
40         int (* join_ocb) (struct wiphy *wiphy, struct net_device *dev,struct ocb_setup *setup);
41         int (* leave_ocb) (struct wiphy *wiphy, struct net_device *dev);
42         int (* change_bss) (struct wiphy *wiphy, struct net_device *dev,struct bss_parameters *params);
43         int (* set_txq_params) (struct wiphy *wiphy, struct net_device *dev,struct ieee80211_txq_params *params);
44         int (* libertas_set_mesh_channel) (struct wiphy *wiphy,struct net_device *dev,struct ieee80211_channel *chan);
45         int (* set_monitor_channel) (struct wiphy *wiphy,struct cfg80211_chan_def *chandef);
46         int (* scan) (struct wiphy *wiphy,struct cfg80211_scan_request *request);
47         void (* abort_scan) (struct wiphy *wiphy, struct wireless_dev *wdev);
48         int (* auth) (struct wiphy *wiphy, struct net_device *dev,struct cfg80211_auth_request *req);
49         int (* assoc) (struct wiphy *wiphy, struct net_device *dev,struct cfg80211_assoc_request *req);
50         int (* deauth) (struct wiphy *wiphy, struct net_device *dev,struct cfg80211_deauth_request *req);
51         int (* disassoc) (struct wiphy *wiphy, struct net_device *dev,struct cfg80211_disassoc_request *req);
52         int (* connect) (struct wiphy *wiphy, struct net_device *dev,struct cfg80211_connect_params *sme);
53         int (* update_connect_params) (struct wiphy *wiphy,struct net_device *dev,struct cfg80211_connect_params *sme,u32 changed);
54         int (* disconnect) (struct wiphy *wiphy, struct net_device *dev,u16 reason_code);
55         int (* join_ibss) (struct wiphy *wiphy, struct net_device *dev,struct cfg80211_ibss_params *params);
56         int (* leave_ibss) (struct wiphy *wiphy, struct net_device *dev);
57         int (* set_mcast_rate) (struct wiphy *wiphy, struct net_device *dev,int rate[NUM_NL80211_BANDS]);
58         int (* set_wiphy_params) (struct wiphy *wiphy, u32 changed);
59         int (* set_tx_power) (struct wiphy *wiphy, struct wireless_dev *wdev,enum nl80211_tx_power_setting type, int mbm);
60         int (* get_tx_power) (struct wiphy *wiphy, struct wireless_dev *wdev,int *dbm);
61         int (* set_wds_peer) (struct wiphy *wiphy, struct net_device *dev,const u8 *addr);
62         void (* rfkill_poll) (struct wiphy *wiphy);
63       #ifdef CONFIG_NL80211_TESTMODE
64         int (* testmode_cmd) (struct wiphy *wiphy, struct wireless_dev *wdev,void *data, int len);
65         int (* testmode_dump) (struct wiphy *wiphy, struct sk_buff *skb,struct netlink_callback *cb,void *data, int len);
66       #endif
67         int (* set_bitrate_mask) (struct wiphy *wiphy,struct net_device *dev,const u8 *peer,const struct cfg80211_bitrate_mask *mask);
68         int (* dump_survey) (struct wiphy *wiphy, struct net_device *netdev,int idx, struct survey_info *info);
69         int (* set_pmksa) (struct wiphy *wiphy, struct net_device *netdev,struct cfg80211_pmksa *pmksa);
70         int (* del_pmksa) (struct wiphy *wiphy, struct net_device *netdev,struct cfg80211_pmksa *pmksa);
71         int (* flush_pmksa) (struct wiphy *wiphy, struct net_device *netdev);
72         int (* remain_on_channel) (struct wiphy *wiphy,struct wireless_dev *wdev,struct ieee80211_channel *chan,unsigned int duration,u64 *cookie);
73         int (* cancel_remain_on_channel) (struct wiphy *wiphy,struct wireless_dev *wdev,u64 cookie);
74         int (* mgmt_tx) (struct wiphy *wiphy, struct wireless_dev *wdev,struct cfg80211_mgmt_tx_params *params,u64 *cookie);
75         int (* mgmt_tx_cancel_wait) (struct wiphy *wiphy,struct wireless_dev *wdev,u64 cookie);
76         int (* set_power_mgmt) (struct wiphy *wiphy, struct net_device *dev,bool enabled, int timeout);
77         int (* set_cqm_rssi_config) (struct wiphy *wiphy,struct net_device *dev,s32 rssi_thold, u32 rssi_hyst);
78         int (* set_cqm_rssi_range_config) (struct wiphy *wiphy,struct net_device *dev,s32 rssi_low, s32 rssi_high);
79         int (* set_cqm_txe_config) (struct wiphy *wiphy,struct net_device *dev,u32 rate, u32 pkts, u32 intvl);
80         void (* mgmt_frame_register) (struct wiphy *wiphy,struct wireless_dev *wdev,u16 frame_type, bool reg);
81         int (* set_antenna) (struct wiphy *wiphy, u32 tx_ant, u32 rx_ant);
82         int (* get_antenna) (struct wiphy *wiphy, u32 *tx_ant, u32 *rx_ant);
83         int (* sched_scan_start) (struct wiphy *wiphy,struct net_device *dev,struct cfg80211_sched_scan_request *request);
84         int (* sched_scan_stop) (struct wiphy *wiphy, struct net_device *dev,u64 reqid);
85         int (* set_rekey_data) (struct wiphy *wiphy, struct net_device *dev,struct cfg80211_gtk_rekey_data *data);
86         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);
87         int (* tdls_oper) (struct wiphy *wiphy, struct net_device *dev,const u8 *peer, enum nl80211_tdls_operation oper);
88         int (* probe_client) (struct wiphy *wiphy, struct net_device *dev,const u8 *peer, u64 *cookie);
89         int (* set_noack_map) (struct wiphy *wiphy,struct net_device *dev,u16 noack_map);
90         int (* get_channel) (struct wiphy *wiphy,struct wireless_dev *wdev,struct cfg80211_chan_def *chandef);
91         int (* start_p2p_device) (struct wiphy *wiphy,struct wireless_dev *wdev);
92         void (* stop_p2p_device) (struct wiphy *wiphy,struct wireless_dev *wdev);
93         int (* set_mac_acl) (struct wiphy *wiphy, struct net_device *dev,const struct cfg80211_acl_data *params);
94         int (* start_radar_detection) (struct wiphy *wiphy,struct net_device *dev,struct cfg80211_chan_def *chandef,u32 cac_time_ms);
95         int (* update_ft_ies) (struct wiphy *wiphy, struct net_device *dev,struct cfg80211_update_ft_ies_params *ftie);
96         int (* crit_proto_start) (struct wiphy *wiphy,struct wireless_dev *wdev,enum nl80211_crit_proto_id protocol,u16 duration);
97         void (* crit_proto_stop) (struct wiphy *wiphy,struct wireless_dev *wdev);
98         int (* set_coalesce) (struct wiphy *wiphy,struct cfg80211_coalesce *coalesce);
99         int (* channel_switch) (struct wiphy *wiphy,struct net_device *dev,struct cfg80211_csa_settings *params);
100         int (* set_qos_map) (struct wiphy *wiphy,struct net_device *dev,struct cfg80211_qos_map *qos_map);
101         int (* set_ap_chanwidth) (struct wiphy *wiphy, struct net_device *dev,struct cfg80211_chan_def *chandef);
102         int (* add_tx_ts) (struct wiphy *wiphy, struct net_device *dev,u8 tsid, const u8 *peer, u8 user_prio,u16 admitted_time);
103         int (* del_tx_ts) (struct wiphy *wiphy, struct net_device *dev,u8 tsid, const u8 *peer);
104         int (* tdls_channel_switch) (struct wiphy *wiphy,struct net_device *dev,const u8 *addr, u8 oper_class,struct cfg80211_chan_def *chandef);
105         void (* tdls_cancel_channel_switch) (struct wiphy *wiphy,struct net_device *dev,const u8 *addr);
106         int (* start_nan) (struct wiphy *wiphy, struct wireless_dev *wdev,struct cfg80211_nan_conf *conf);
107         void (* stop_nan) (struct wiphy *wiphy, struct wireless_dev *wdev);
108         int (* add_nan_func) (struct wiphy *wiphy, struct wireless_dev *wdev,struct cfg80211_nan_func *nan_func);
109         void (* del_nan_func) (struct wiphy *wiphy, struct wireless_dev *wdev,u64 cookie);
110         int (* nan_change_conf) (struct wiphy *wiphy,struct wireless_dev *wdev,struct cfg80211_nan_conf *conf,u32 changes);
111         int (* set_multicast_to_unicast) (struct wiphy *wiphy,struct net_device *dev,const bool enabled);
112         int (* set_pmk) (struct wiphy *wiphy, struct net_device *dev,const struct cfg80211_pmk_conf *conf);
113         int (* del_pmk) (struct wiphy *wiphy, struct net_device *dev,const u8 *aa);
114       };
115

MEMBERS

117       suspend
118           wiphy device needs to be suspended. The variable wow will be NULL
119           or contain the enabled Wake-on-Wireless triggers that are
120           configured for the device.
121
122       resume
123           wiphy device needs to be resumed
124
125       set_wakeup
126           Called when WoWLAN is enabled/disabled, use this callback to call
127           device_set_wakeup_enable to enable/disable wakeup from the device.
128
129       add_virtual_intf
130           create a new virtual interface with the given name, must set the
131           struct wireless_dev's iftype. Beware: You must create the new
132           netdev in the wiphy's network namespace! Returns the struct
133           wireless_dev, or an ERR_PTR. For P2P device wdevs, the driver must
134           also set the address member in the wdev.
135
136       del_virtual_intf
137           remove the virtual interface
138
139       change_virtual_intf
140           change type/configuration of virtual interface, keep the struct
141           wireless_dev's iftype updated.
142
143       add_key
144           add a key with the given parameters.  mac_addr will be NULL when
145           adding a group key.
146
147       get_key
148           get information about the key with the given parameters.  mac_addr
149           will be NULL when requesting information for a group key. All
150           pointers given to the callback function need not be valid after it
151           returns. This function should return an error if it is not possible
152           to retrieve the key, -ENOENT if it doesn't exist.
153
154       del_key
155           remove a key given the mac_addr (NULL for a group key) and
156           key_index, return -ENOENT if the key doesn't exist.
157
158       set_default_key
159           set the default key on an interface
160
161       set_default_mgmt_key
162           set the default management frame key on an interface
163
164       start_ap
165           Start acting in AP mode defined by the parameters.
166
167       change_beacon
168           Change the beacon parameters for an access point mode interface.
169           This should reject the call when AP mode wasn't started.
170
171       stop_ap
172           Stop being an AP, including stopping beaconing.
173
174       add_station
175           Add a new station.
176
177       del_station
178           Remove a station
179
180       change_station
181           Modify a given station. Note that flags changes are not much
182           validated in cfg80211, in particular the auth/assoc/authorized
183           flags might come to the driver in invalid combinations -- make sure
184           to check them, also against the existing state! Drivers must call
185           cfg80211_check_station_change to validate the information.
186
187       get_station
188           get station information for the station identified by mac
189
190       dump_station
191           dump station callback -- resume dump at index idx
192
193       add_mpath
194           add a fixed mesh path
195
196       del_mpath
197           delete a given mesh path
198
199       change_mpath
200           change a given mesh path
201
202       get_mpath
203           get a mesh path for the given parameters
204
205       dump_mpath
206           dump mesh path callback -- resume dump at index idx
207
208       get_mpp
209           get a mesh proxy path for the given parameters
210
211       dump_mpp
212           dump mesh proxy path callback -- resume dump at index idx
213
214       get_mesh_config
215           Get the current mesh configuration
216
217       update_mesh_config
218           Update mesh parameters on a running mesh. The mask is a bitfield
219           which tells us which parameters to set, and which to leave alone.
220
221       join_mesh
222           join the mesh network with the specified parameters (invoked with
223           the wireless_dev mutex held)
224
225       leave_mesh
226           leave the current mesh network (invoked with the wireless_dev mutex
227           held)
228
229       join_ocb
230           join the OCB network with the specified parameters (invoked with
231           the wireless_dev mutex held)
232
233       leave_ocb
234           leave the current OCB network (invoked with the wireless_dev mutex
235           held)
236
237       change_bss
238           Modify parameters for a given BSS.
239
240       set_txq_params
241           Set TX queue parameters
242
243       libertas_set_mesh_channel
244           Only for backward compatibility for libertas, as it doesn't
245           implement join_mesh and needs to set the channel to join the mesh
246           instead.
247
248       set_monitor_channel
249           Set the monitor mode channel for the device. If other interfaces
250           are active this callback should reject the configuration. If no
251           interfaces are active or the device is down, the channel should be
252           stored for when a monitor interface becomes active.
253
254       scan
255           Request to do a scan. If returning zero, the scan request is given
256           the driver, and will be valid until passed to cfg80211_scan_done.
257           For scan results, call cfg80211_inform_bss; you can call this
258           outside the scan/scan_done bracket too.
259
260       abort_scan
261           Tell the driver to abort an ongoing scan. The driver shall indicate
262           the status of the scan through cfg80211_scan_done.
263
264       auth
265           Request to authenticate with the specified peer (invoked with the
266           wireless_dev mutex held)
267
268       assoc
269           Request to (re)associate with the specified peer (invoked with the
270           wireless_dev mutex held)
271
272       deauth
273           Request to deauthenticate from the specified peer (invoked with the
274           wireless_dev mutex held)
275
276       disassoc
277           Request to disassociate from the specified peer (invoked with the
278           wireless_dev mutex held)
279
280       connect
281           Connect to the ESS with the specified parameters. When connected,
282           call cfg80211_connect_result/cfg80211_connect_bss with status code
283           WLAN_STATUS_SUCCESS. If the connection fails for some reason, call
284           cfg80211_connect_result/cfg80211_connect_bss with the status code
285           from the AP or cfg80211_connect_timeout if no frame with status
286           code was received. The driver is allowed to roam to other BSSes
287           within the ESS when the other BSS matches the connect parameters.
288           When such roaming is initiated by the driver, the driver is
289           expected to verify that the target matches the configured security
290           parameters and to use Reassociation Request frame instead of
291           Association Request frame. The connect function can also be used to
292           request the driver to perform a specific roam when connected to an
293           ESS. In that case, the prev_bssid parameter is set to the BSSID of
294           the currently associated BSS as an indication of requesting
295           reassociation. In both the driver-initiated and new connect call
296           initiated roaming cases, the result of roaming is indicated with a
297           call to cfg80211_roamed. (invoked with the wireless_dev mutex held)
298
299       update_connect_params
300           Update the connect parameters while connected to a BSS. The updated
301           parameters can be used by driver/firmware for subsequent BSS
302           selection (roaming) decisions and to form the
303           Authentication/(Re)Association Request frames. This call does not
304           request an immediate disassociation or reassociation with the
305           current BSS, i.e., this impacts only subsequent (re)associations.
306           The bits in changed are defined in enum
307           cfg80211_connect_params_changed. (invoked with the wireless_dev
308           mutex held)
309
310       disconnect
311           Disconnect from the BSS/ESS or stop connection attempts if
312           connection is in progress. Once done, call cfg80211_disconnected in
313           case connection was already established (invoked with the
314           wireless_dev mutex held), otherwise call cfg80211_connect_timeout.
315
316       join_ibss
317           Join the specified IBSS (or create if necessary). Once done, call
318           cfg80211_ibss_joined, also call that function when changing BSSID
319           due to a merge. (invoked with the wireless_dev mutex held)
320
321       leave_ibss
322           Leave the IBSS. (invoked with the wireless_dev mutex held)
323
324       set_mcast_rate
325           Set the specified multicast rate (only if vif is in ADHOC or MESH
326           mode)
327
328       set_wiphy_params
329           Notify that wiphy parameters have changed; changed bitfield (see
330           enum wiphy_params_flags) describes which values have changed. The
331           actual parameter values are available in struct wiphy. If returning
332           an error, no value should be changed.
333
334       set_tx_power
335           set the transmit power according to the parameters, the power
336           passed is in mBm, to get dBm use MBM_TO_DBM. The wdev may be NULL
337           if power was set for the wiphy, and will always be NULL unless the
338           driver supports per-vif TX power (as advertised by the nl80211
339           feature flag.)
340
341       get_tx_power
342           store the current TX power into the dbm variable; return 0 if
343           successful
344
345       set_wds_peer
346           set the WDS peer for a WDS interface
347
348       rfkill_poll
349           polls the hw rfkill line, use cfg80211 reporting functions to
350           adjust rfkill hw state
351
352       testmode_cmd
353           run a test mode command; wdev may be NULL
354
355       testmode_dump
356           Implement a test mode dump. The cb->args[2] and up may be used by
357           the function, but 0 and 1 must not be touched. Additionally, return
358           error codes other than -ENOBUFS and -ENOENT will terminate the dump
359           and return to userspace with an error, so be careful. If any data
360           was passed in from userspace then the data/len arguments will be
361           present and point to the data contained in NL80211_ATTR_TESTDATA.
362
363       set_bitrate_mask
364           set the bitrate mask configuration
365
366       dump_survey
367           get site survey information.
368
369       set_pmksa
370           Cache a PMKID for a BSSID. This is mostly useful for fullmac
371           devices running firmwares capable of generating the (re)
372           association RSN IE. It allows for faster roaming between WPA2
373           BSSIDs.
374
375       del_pmksa
376           Delete a cached PMKID.
377
378       flush_pmksa
379           Flush all cached PMKIDs.
380
381       remain_on_channel
382           Request the driver to remain awake on the specified channel for the
383           specified duration to complete an off-channel operation (e.g.,
384           public action frame exchange). When the driver is ready on the
385           requested channel, it must indicate this with an event notification
386           by calling cfg80211_ready_on_channel.
387
388       cancel_remain_on_channel
389           Cancel an on-going remain-on-channel operation. This allows the
390           operation to be terminated prior to timeout based on the duration
391           value.
392
393       mgmt_tx
394           Transmit a management frame.
395
396       mgmt_tx_cancel_wait
397           Cancel the wait time from transmitting a management frame on
398           another channel
399
400       set_power_mgmt
401           Configure WLAN power management. A timeout value of -1 allows the
402           driver to adjust the dynamic ps timeout value.
403
404       set_cqm_rssi_config
405           Configure connection quality monitor RSSI threshold. After
406           configuration, the driver should (soon) send an event indicating
407           the current level is above/below the configured threshold; this may
408           need some care when the configuration is changed (without first
409           being disabled.)
410
411       set_cqm_rssi_range_config
412           Configure two RSSI thresholds in the connection quality monitor. An
413           event is to be sent only when the signal level is found to be
414           outside the two values. The driver should set
415           NL80211_EXT_FEATURE_CQM_RSSI_LIST if this method is implemented. If
416           it is provided then there's no point providing set_cqm_rssi_config.
417
418       set_cqm_txe_config
419           Configure connection quality monitor TX error thresholds.
420
421       mgmt_frame_register
422           Notify driver that a management frame type was registered. The
423           callback is allowed to sleep.
424
425       set_antenna
426           Set antenna configuration (tx_ant, rx_ant) on the device.
427           Parameters are bitmaps of allowed antennas to use for TX/RX.
428           Drivers may reject TX/RX mask combinations they cannot support by
429           returning -EINVAL (also see nl80211.h
430           NL80211_ATTR_WIPHY_ANTENNA_TX).
431
432       get_antenna
433           Get current antenna configuration from device (tx_ant, rx_ant).
434
435       sched_scan_start
436           Tell the driver to start a scheduled scan.
437
438       sched_scan_stop
439           Tell the driver to stop an ongoing scheduled scan with given
440           request id. This call must stop the scheduled scan and be ready for
441           starting a new one before it returns, i.e.  sched_scan_start may be
442           called immediately after that again and should not fail in that
443           case. The driver should not call cfg80211_sched_scan_stopped for a
444           requested stop (when this method returns 0).
445
446       set_rekey_data
447           give the data necessary for GTK rekeying to the driver
448
449       tdls_mgmt
450           Transmit a TDLS management frame.
451
452       tdls_oper
453           Perform a high-level TDLS operation (e.g. TDLS link setup).
454
455       probe_client
456           probe an associated client, must return a cookie that it later
457           passes to cfg80211_probe_status.
458
459       set_noack_map
460           Set the NoAck Map for the TIDs.
461
462       get_channel
463           Get the current operating channel for the virtual interface. For
464           monitor interfaces, it should return NULL unless there's a single
465           current monitoring channel.
466
467       start_p2p_device
468           Start the given P2P device.
469
470       stop_p2p_device
471           Stop the given P2P device.
472
473       set_mac_acl
474           Sets MAC address control list in AP and P2P GO mode. Parameters
475           include ACL policy, an array of MAC address of stations and the
476           number of MAC addresses. If there is already a list in driver this
477           new list replaces the existing one. Driver has to clear its ACL
478           when number of MAC addresses entries is passed as 0. Drivers which
479           advertise the support for MAC based ACL have to implement this
480           callback.
481
482       start_radar_detection
483           Start radar detection in the driver.
484
485       update_ft_ies
486           Provide updated Fast BSS Transition information to the driver. If
487           the SME is in the driver/firmware, this information can be used in
488           building Authentication and Reassociation Request frames.
489
490       crit_proto_start
491           Indicates a critical protocol needs more link reliability for a
492           given duration (milliseconds). The protocol is provided so the
493           driver can take the most appropriate actions.
494
495       crit_proto_stop
496           Indicates critical protocol no longer needs increased link
497           reliability. This operation can not fail.
498
499       set_coalesce
500           Set coalesce parameters.
501
502       channel_switch
503           initiate channel-switch procedure (with CSA). Driver is responsible
504           for veryfing if the switch is possible. Since this is inherently
505           tricky driver may decide to disconnect an interface later with
506           cfg80211_stop_iface. This doesn't mean driver can accept
507           everything. It should do it's best to verify requests and reject
508           them as soon as possible.
509
510       set_qos_map
511           Set QoS mapping information to the driver
512
513       set_ap_chanwidth
514           Set the AP (including P2P GO) mode channel width for the given
515           interface This is used e.g. for dynamic HT 20/40 MHz channel width
516           changes during the lifetime of the BSS.
517
518       add_tx_ts
519           validate (if admitted_time is 0) or add a TX TS to the device with
520           the given parameters; action frame exchange has been handled by
521           userspace so this just has to modify the TX path to take the TS
522           into account. If the admitted time is 0 just validate the
523           parameters to make sure the session can be created at all; it is
524           valid to just always return success for that but that may result in
525           inefficient behaviour (handshake with the peer followed by
526           immediate teardown when the addition is later rejected)
527
528       del_tx_ts
529           remove an existing TX TS
530
531       tdls_channel_switch
532           Start channel-switching with a TDLS peer. The driver is responsible
533           for continually initiating channel-switching operations and
534           returning to the base channel for communication with the AP.
535
536       tdls_cancel_channel_switch
537           Stop channel-switching with a TDLS peer. Both peers must be on the
538           base channel when the call completes.
539
540       start_nan
541           Start the NAN interface.
542
543       stop_nan
544           Stop the NAN interface.
545
546       add_nan_func
547           Add a NAN function. Returns negative value on failure. On success
548           nan_func ownership is transferred to the driver and it may access
549           it outside of the scope of this function. The driver should free
550           the nan_func when no longer needed by calling
551           cfg80211_free_nan_func. On success the driver should assign an
552           instance_id in the provided nan_func.
553
554       del_nan_func
555           Delete a NAN function.
556
557       nan_change_conf
558           changes NAN configuration. The changed parameters must be specified
559           in changes (using enum cfg80211_nan_conf_changes); All other
560           parameters must be ignored.
561
562       set_multicast_to_unicast
563           configure multicast to unicast conversion for BSS
564
565       set_pmk
566           configure the PMK to be used for offloaded 802.1X 4-Way handshake.
567           If not deleted through del_pmk the PMK remains valid until
568           disconnect upon which the driver should clear it. (invoked with the
569           wireless_dev mutex held)
570
571       del_pmk
572           delete the previously configured PMK for the given authenticator.
573           (invoked with the wireless_dev mutex held)
574

DESCRIPTION

576       This struct is registered by fullmac card drivers and/or wireless
577       stacks in order to handle configuration requests on their interfaces.
578
579       All callbacks except where otherwise noted should return 0 on success
580       or a negative error code.
581
582       All operations are currently invoked under rtnl for consistency with
583       the wireless extensions but this is subject to reevaluation as soon as
584       this code is used more widely and we have a first user without wext.
585

AUTHOR

587       Johannes Berg <johannes@sipsolutions.net>
588           Author.
589
591Kernel Hackers Manual 3.10         June 2019            STRUCT CFG80211_OPS(9)
Impressum