1STRUCT CFG80211_OPS(9) Actions and configuration STRUCT CFG80211_OPS(9)
2
3
4
6 struct_cfg80211_ops - backend description for wireless configuration
7
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
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
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
587 Johannes Berg <johannes@sipsolutions.net>
588 Author.
589
591Kernel Hackers Manual 3.10 June 2019 STRUCT CFG80211_OPS(9)