Lines Matching refs:vif

102  * a single per-vif queue for multicast data frames.
294 * struct ieee80211_vif_chanctx_switch - vif chanctx switch information
296 * This is structure is used to pass information about a vif that
301 * @vif: the vif that should be switched from old_ctx to new_ctx
303 * @old_ctx: the old context to which the vif was assigned
304 * @new_ctx: the new context to which the vif must be assigned
307 struct ieee80211_vif *vif;
559 * @vif: reference to owning VIF
625 * @hidden_ssid: The SSID of the current vif is hidden. Only valid in AP-mode.
628 * Power Control (TPC) in lower driver for the current vif. In particular
706 struct ieee80211_vif *vif;
1155 * @control.vif: virtual interface (may be NULL)
1207 /* NB: vif can be NULL for injected frames */
1208 struct ieee80211_vif *vif;
1798 * this is not pure P2P vif.
1854 * @ssid: The SSID of the current vif. Valid in AP and IBSS mode.
1918 * @cfg: vif configuration, see &struct ieee80211_vif_cfg
1940 * vif. mac80211 initializes this to hw->netdev_features, and the driver
2001 * ieee80211_vif_usable_links - Return the usable links for the vif
2002 * @vif: the vif for which the usable links are requested
2005 static inline u16 ieee80211_vif_usable_links(const struct ieee80211_vif *vif)
2007 return vif->valid_links & ~vif->dormant_links;
2011 * ieee80211_vif_is_mld - Returns true iff the vif is an MLD one
2012 * @vif: the vif
2013 * Return: %true if the vif is an MLD, %false otherwise.
2015 static inline bool ieee80211_vif_is_mld(const struct ieee80211_vif *vif)
2017 /* valid_links != 0 indicates this vif is an MLD */
2018 return vif->valid_links != 0;
2023 * @vif: the vif
2025 * Return: %true if the vif is an MLD and the link is active, or if
2026 * the vif is not an MLD and the link ID is 0; %false otherwise.
2028 static inline bool ieee80211_vif_link_active(const struct ieee80211_vif *vif,
2031 if (!ieee80211_vif_is_mld(vif))
2033 return vif->active_links & BIT(link_id);
2036 #define for_each_vif_active_link(vif, link, link_id) \
2037 for (link_id = 0; link_id < ARRAY_SIZE((vif)->link_conf); link_id++) \
2038 if ((!(vif)->active_links || \
2039 (vif)->active_links & BIT(link_id)) && \
2040 (link = link_conf_dereference_check(vif, link_id)))
2042 static inline bool ieee80211_vif_is_mesh(struct ieee80211_vif *vif)
2045 return vif->type == NL80211_IFTYPE_MESH_POINT;
2051 * wdev_to_ieee80211_vif - return a vif struct from a wdev
2052 * @wdev: the wdev to get the vif for
2058 * associated with a vif that the driver knows about (e.g. monitor
2064 * ieee80211_vif_to_wdev - return a wdev struct from a vif
2065 * @vif: the vif to get the wdev for
2068 * (like the vendor commands) that needs to get the wdev for a vif.
2069 * This can also be useful to get the netdev associated to a vif.
2073 struct wireless_dev *ieee80211_vif_to_wdev(struct ieee80211_vif *vif);
2075 static inline bool lockdep_vif_wiphy_mutex_held(struct ieee80211_vif *vif)
2077 return lockdep_is_held(&ieee80211_vif_to_wdev(vif)->wiphy->mtx);
2080 #define link_conf_dereference_protected(vif, link_id) \
2081 rcu_dereference_protected((vif)->link_conf[link_id], \
2082 lockdep_vif_wiphy_mutex_held(vif))
2084 #define link_conf_dereference_check(vif, link_id) \
2085 rcu_dereference_check((vif)->link_conf[link_id], \
2086 lockdep_vif_wiphy_mutex_held(vif))
2494 #define for_each_sta_active_link(vif, sta, link_sta, link_id) \
2496 if ((!(vif)->active_links || \
2497 (vif)->active_links & BIT(link_id)) && \
2526 * @vif: &struct ieee80211_vif pointer from the add_interface callback.
2527 * @sta: station table entry, %NULL for per-vif queue
2528 * @tid: the TID for this queue (unused for per-vif queue),
2537 struct ieee80211_vif *vif;
3533 * 4 AC HW queues for 1st vif: 0, 1, 2, 3
3534 * 4 AC HW queues for 2nd vif: 4, 5, 6, 7
3542 * vif.hw_queue[IEEE80211_AC_VO] = 0
3543 * vif.hw_queue[IEEE80211_AC_VI] = 1
3544 * vif.hw_queue[IEEE80211_AC_BE] = 2
3545 * vif.hw_queue[IEEE80211_AC_BK] = 3
3546 * vif.cab_queue = 8 // if AP mode, otherwise %IEEE80211_INVAL_HW_QUEUE
3552 * Note that the vif.cab_queue value should be set to %IEEE80211_INVAL_HW_QUEUE
3982 * @vif_add_debugfs: Drivers can use this callback to add a debugfs vif
3987 * when a link is added to a mac80211 vif. This callback should be within
3990 * with the vif's directory rather than a separate subdirectory.
4095 * @testmode_cmd: Implement a cfg80211 test mode command. The passed @vif may
4104 * Note that vif can be NULL.
4240 * to vif. Possible use is for hw queue remapping.
4243 * unbound from vif.
4395 * flow offloading for flows originating from the vif.
4396 * Note that the driver must not assume that the vif driver_data is valid
4415 struct ieee80211_vif *vif);
4417 struct ieee80211_vif *vif,
4420 struct ieee80211_vif *vif);
4423 struct ieee80211_vif *vif,
4427 struct ieee80211_vif *vif,
4430 struct ieee80211_vif *vif,
4434 int (*start_ap)(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
4436 void (*stop_ap)(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
4446 struct ieee80211_vif *vif,
4452 struct ieee80211_vif *vif, struct ieee80211_sta *sta,
4455 struct ieee80211_vif *vif,
4460 struct ieee80211_vif *vif,
4463 struct ieee80211_vif *vif, int idx);
4464 int (*hw_scan)(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
4467 struct ieee80211_vif *vif);
4469 struct ieee80211_vif *vif,
4473 struct ieee80211_vif *vif);
4475 struct ieee80211_vif *vif,
4478 struct ieee80211_vif *vif);
4486 int (*sta_add)(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
4488 int (*sta_remove)(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
4492 struct ieee80211_vif *vif);
4494 struct ieee80211_vif *vif,
4498 struct ieee80211_vif *vif,
4502 struct ieee80211_vif *vif,
4506 void (*sta_notify)(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
4509 struct ieee80211_vif *vif,
4511 int (*sta_state)(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
4516 struct ieee80211_vif *vif,
4519 struct ieee80211_vif *vif,
4523 struct ieee80211_vif *vif,
4526 struct ieee80211_vif *vif,
4530 struct ieee80211_vif *vif,
4533 u64 (*get_tsf)(struct ieee80211_hw *hw, struct ieee80211_vif *vif);
4534 void (*set_tsf)(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
4536 void (*offset_tsf)(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
4538 void (*reset_tsf)(struct ieee80211_hw *hw, struct ieee80211_vif *vif);
4573 struct ieee80211_vif *vif,
4580 int (*testmode_cmd)(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
4586 void (*flush)(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
4588 void (*flush_sta)(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
4591 struct ieee80211_vif *vif,
4597 struct ieee80211_vif *vif,
4602 struct ieee80211_vif *vif);
4607 int (*set_bitrate_mask)(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
4610 struct ieee80211_vif *vif,
4625 struct ieee80211_vif *vif, int sset);
4627 struct ieee80211_vif *vif,
4630 struct ieee80211_vif *vif,
4634 struct ieee80211_vif *vif,
4637 struct ieee80211_vif *vif,
4641 struct ieee80211_vif *vif,
4652 struct ieee80211_vif *vif,
4656 struct ieee80211_vif *vif,
4669 struct ieee80211_vif *vif,
4673 struct ieee80211_vif *vif,
4676 struct ieee80211_vif *vif,
4680 struct ieee80211_vif *vif,
4683 struct ieee80211_vif *vif,
4686 struct ieee80211_vif *vif,
4689 int (*join_ibss)(struct ieee80211_hw *hw, struct ieee80211_vif *vif);
4690 void (*leave_ibss)(struct ieee80211_hw *hw, struct ieee80211_vif *vif);
4693 int (*get_txpower)(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
4697 struct ieee80211_vif *vif,
4702 struct ieee80211_vif *vif,
4705 struct ieee80211_vif *vif,
4713 struct ieee80211_vif *vif,
4716 struct ieee80211_vif *vif);
4718 struct ieee80211_vif *vif,
4721 struct ieee80211_vif *vif,
4724 struct ieee80211_vif *vif,
4730 struct ieee80211_vif *vif,
4732 int (*start_pmsr)(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
4734 void (*abort_pmsr)(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
4737 struct ieee80211_vif *vif,
4741 struct ieee80211_vif *vif,
4744 struct ieee80211_vif *vif);
4745 void (*sta_set_4addr)(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
4750 struct ieee80211_vif *vif,
4760 struct ieee80211_vif *vif,
4765 struct ieee80211_vif *vif,
4768 struct ieee80211_vif *vif,
4772 struct ieee80211_vif *vif,
4776 struct ieee80211_vif *vif,
4779 struct ieee80211_vif *vif,
4784 (*can_neg_ttlm)(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
5251 * @vif: &struct ieee80211_vif pointer from the add_interface callback.
5257 void ieee80211_get_tx_rates(struct ieee80211_vif *vif,
5426 * @vif: &struct ieee80211_vif pointer from the add_interface callback.
5446 struct ieee80211_vif *vif,
5453 * @vif: &struct ieee80211_vif pointer from the add_interface callback.
5467 struct ieee80211_vif *vif,
5491 * @vif: &struct ieee80211_vif pointer from the add_interface callback.
5506 struct ieee80211_vif *vif,
5521 * @vif: &struct ieee80211_vif pointer from the add_interface callback.
5543 struct ieee80211_vif *vif,
5550 * @vif: &struct ieee80211_vif pointer from the add_interface callback.
5559 struct ieee80211_vif *vif,
5562 return ieee80211_beacon_get_tim(hw, vif, NULL, NULL, link_id);
5567 * @vif: &struct ieee80211_vif pointer from the add_interface callback.
5578 u8 ieee80211_beacon_update_cntdwn(struct ieee80211_vif *vif,
5583 * @vif: &struct ieee80211_vif pointer from the add_interface callback.
5592 void ieee80211_beacon_set_cntdwn(struct ieee80211_vif *vif, u8 counter);
5596 * @vif: &struct ieee80211_vif pointer from the add_interface callback.
5603 void ieee80211_csa_finish(struct ieee80211_vif *vif, unsigned int link_id);
5607 * @vif: &struct ieee80211_vif pointer from the add_interface callback.
5612 bool ieee80211_beacon_cntdwn_is_complete(struct ieee80211_vif *vif,
5617 * @vif: &struct ieee80211_vif pointer from the add_interface callback.
5624 void ieee80211_color_change_finish(struct ieee80211_vif *vif, u8 link_id);
5629 * @vif: &struct ieee80211_vif pointer from the add_interface callback.
5639 struct ieee80211_vif *vif);
5644 * @vif: &struct ieee80211_vif pointer from the add_interface callback.
5656 struct ieee80211_vif *vif);
5661 * @vif: &struct ieee80211_vif pointer from the add_interface callback.
5662 * @link_id: If the vif is an MLD, get a frame with the link addresses
5681 struct ieee80211_vif *vif,
5705 * @vif: &struct ieee80211_vif pointer from the add_interface callback.
5716 void ieee80211_rts_get(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
5724 * @vif: &struct ieee80211_vif pointer from the add_interface callback.
5735 struct ieee80211_vif *vif, size_t frame_len,
5741 * @vif: &struct ieee80211_vif pointer from the add_interface callback.
5753 struct ieee80211_vif *vif,
5761 * @vif: &struct ieee80211_vif pointer from the add_interface callback.
5772 struct ieee80211_vif *vif,
5779 * @vif: &struct ieee80211_vif pointer from the add_interface callback.
5790 struct ieee80211_vif *vif,
5798 * @vif: &struct ieee80211_vif pointer from the add_interface callback.
5817 ieee80211_get_buffered_bc(struct ieee80211_hw *hw, struct ieee80211_vif *vif);
5948 * @vif: the virtual interface to add the key on
5977 ieee80211_gtk_rekey_add(struct ieee80211_vif *vif,
5983 * @vif: virtual interface the rekeying was done on
5988 void ieee80211_gtk_rekey_notify(struct ieee80211_vif *vif, const u8 *bssid,
6129 struct ieee80211_vif *vif),
6150 struct ieee80211_vif *vif),
6176 struct ieee80211_vif *vif),
6195 struct ieee80211_vif *vif),
6270 * @vif: &struct ieee80211_vif pointer from the add_interface callback
6278 void ieee80211_start_tx_ba_cb_irqsafe(struct ieee80211_vif *vif, const u8 *ra,
6296 * @vif: &struct ieee80211_vif pointer from the add_interface callback
6304 void ieee80211_stop_tx_ba_cb_irqsafe(struct ieee80211_vif *vif, const u8 *ra,
6310 * @vif: virtual interface to look for station on
6318 struct ieee80211_sta *ieee80211_find_sta(struct ieee80211_vif *vif,
6326 * @localaddr: local address (vif->sdata->vif.addr). Use NULL for 'any'.
6496 * @vif: virtual interface to iterate, may be %NULL for all
6512 struct ieee80211_vif *vif,
6514 struct ieee80211_vif *vif,
6523 * @vif: virtual interface to iterate, may be %NULL for all
6536 struct ieee80211_vif *vif,
6538 struct ieee80211_vif *vif,
6573 * @vif: &struct ieee80211_vif pointer from the add_interface callback.
6585 struct ieee80211_vif *vif);
6590 * @vif: &struct ieee80211_vif pointer from the add_interface callback.
6596 void ieee80211_beacon_loss(struct ieee80211_vif *vif);
6601 * @vif: &struct ieee80211_vif pointer from the add_interface callback.
6612 void ieee80211_connection_loss(struct ieee80211_vif *vif);
6617 * @vif: &struct ieee80211_vif pointer from the add_interface callback.
6623 void ieee80211_disconnect(struct ieee80211_vif *vif, bool reconnect);
6628 * @vif: &struct ieee80211_vif pointer from the add_interface callback.
6646 void ieee80211_resume_disconnect(struct ieee80211_vif *vif);
6651 * @vif: &struct ieee80211_vif pointer from the add_interface callback.
6656 void ieee80211_hw_restart_disconnect(struct ieee80211_vif *vif);
6662 * @vif: &struct ieee80211_vif pointer from the add_interface callback.
6671 void ieee80211_cqm_rssi_notify(struct ieee80211_vif *vif,
6679 * @vif: &struct ieee80211_vif pointer from the add_interface callback.
6682 void ieee80211_cqm_beacon_loss_notify(struct ieee80211_vif *vif, gfp_t gfp);
6693 * @vif: &struct ieee80211_vif pointer from the add_interface callback.
6701 void ieee80211_chswitch_done(struct ieee80211_vif *vif, bool success,
6706 * @vif: &struct ieee80211_vif pointer from the add_interface callback.
6713 void ieee80211_channel_switch_disconnect(struct ieee80211_vif *vif,
6718 * @vif: &struct ieee80211_vif pointer from the add_interface callback.
6726 void ieee80211_request_smps(struct ieee80211_vif *vif, unsigned int link_id,
6751 * @vif: &struct ieee80211_vif pointer from the add_interface callback.
6755 void ieee80211_stop_rx_ba_session(struct ieee80211_vif *vif, u16 ba_rx_bitmap,
6783 * @vif: &struct ieee80211_vif pointer from the add_interface callback.
6788 void ieee80211_send_bar(struct ieee80211_vif *vif, u8 *ra, u16 tid, u16 ssn);
6792 * @vif: &struct ieee80211_vif pointer from the add_interface callback
6796 void ieee80211_manage_rx_ba_offl(struct ieee80211_vif *vif, const u8 *addr,
6809 * @vif: &struct ieee80211_vif pointer from the add_interface callback
6813 static inline void ieee80211_start_rx_ba_session_offl(struct ieee80211_vif *vif,
6818 ieee80211_manage_rx_ba_offl(vif, addr, tid);
6831 * @vif: &struct ieee80211_vif pointer from the add_interface callback
6835 static inline void ieee80211_stop_rx_ba_session_offl(struct ieee80211_vif *vif,
6840 ieee80211_manage_rx_ba_offl(vif, addr, tid + IEEE80211_NUM_TIDS);
6851 * @vif: &struct ieee80211_vif pointer from the add_interface callback
6855 void ieee80211_rx_ba_timer_expired(struct ieee80211_vif *vif,
7052 ieee80211_vif_type_p2p(struct ieee80211_vif *vif)
7054 return ieee80211_iftype_p2p(vif->type, vif->p2p);
7058 * ieee80211_get_he_iftype_cap_vif - return HE capabilities for sband/vif
7060 * @vif: the vif to get the iftype from
7066 struct ieee80211_vif *vif)
7068 return ieee80211_get_he_iftype_cap(sband, ieee80211_vif_type_p2p(vif));
7074 * @vif: the vif to get the iftype from
7080 struct ieee80211_vif *vif)
7082 return ieee80211_get_he_6ghz_capa(sband, ieee80211_vif_type_p2p(vif));
7086 * ieee80211_get_eht_iftype_cap_vif - return ETH capabilities for sband/vif
7088 * @vif: the vif to get the iftype from
7094 struct ieee80211_vif *vif)
7096 return ieee80211_get_eht_iftype_cap(sband, ieee80211_vif_type_p2p(vif));
7102 * @vif: the specified virtual interface
7107 * Note: This function assumes that the given vif is valid and the position and
7112 void ieee80211_update_mu_groups(struct ieee80211_vif *vif, unsigned int link_id,
7115 void ieee80211_enable_rssi_reports(struct ieee80211_vif *vif,
7119 void ieee80211_disable_rssi_reports(struct ieee80211_vif *vif);
7124 * @vif: the specified virtual interface
7126 * Note: This function assumes that the given vif is valid.
7131 int ieee80211_ave_rssi(struct ieee80211_vif *vif);
7135 * @vif: virtual interface
7141 void ieee80211_report_wowlan_wakeup(struct ieee80211_vif *vif,
7148 * @vif: virtual interface
7158 struct ieee80211_vif *vif, struct sk_buff *skb,
7226 * @vif: virtual interface
7234 void ieee80211_tdls_oper_request(struct ieee80211_vif *vif, const u8 *peer,
7451 * @vif: &struct ieee80211_vif pointer from the add_interface callback.
7456 void ieee80211_nan_func_terminated(struct ieee80211_vif *vif,
7468 * @vif: &struct ieee80211_vif pointer from the add_interface callback.
7472 void ieee80211_nan_func_match(struct ieee80211_vif *vif,
7511 * @vif: &struct ieee80211_vif pointer from the add_interface callback.
7518 struct ieee80211_vif *vif);
7524 * @vif: &struct ieee80211_vif pointer from the add_interface callback.
7532 struct ieee80211_vif *vif);
7539 * @vif: &struct ieee80211_vif pointer from the add_interface callback.
7544 ieee80211_obss_color_collision_notify(struct ieee80211_vif *vif,
7568 * @vif: interface to set active links on
7576 * and @active_links must be a subset of the vif's valid_links.
7594 int ieee80211_set_active_links(struct ieee80211_vif *vif, u16 active_links);
7598 * @vif: interface to set active links on
7606 void ieee80211_set_active_links_async(struct ieee80211_vif *vif,
7611 * @vif: the interface on which the tear down request should be sent.
7616 void ieee80211_send_teardown_neg_ttlm(struct ieee80211_vif *vif);