drivers/net/wireless/intel/iwlwifi/mld/iface.h

Source file repositories/reference/linux-study-clean/drivers/net/wireless/intel/iwlwifi/mld/iface.h

File Facts

System
Linux kernel
Corpus path
drivers/net/wireless/intel/iwlwifi/mld/iface.h
Extension
.h
Size
11250 bytes
Lines
314
Domain
Driver Families
Bucket
drivers/net
Inferred role
Driver Families: implementation source
Status
source implementation candidate

Why This File Exists

Repeatable hardware-adapter layer. Deep compatibility for every driver is out of scope; this atlas records patterns, probe lifecycles, bus glue, IRQ/DMA usage, and links back to core abstractions.

Dependency Surface

Detected Declarations

Annotated Snippet

struct iwl_mld_emlsr {
	struct_group(zeroed_on_not_authorized,
		u8 primary;

		u8 selected_primary;
		u16 selected_links;

		enum iwl_mld_emlsr_blocked blocked_reasons;

		enum iwl_mld_emlsr_exit last_exit_reason;
		unsigned long last_exit_ts;
		u8 exit_repeat_count;
		unsigned long last_entry_ts;
	);

	struct wiphy_work unblock_tpt_wk;
	struct wiphy_delayed_work check_tpt_wk;

	struct wiphy_delayed_work prevent_done_wk;
	struct wiphy_delayed_work tmp_non_bss_done_wk;
};

/**
 * struct iwl_mld_vif - virtual interface (MAC context) configuration parameters
 *
 * @fw_id: fw id of the mac context.
 * @session_protect: session protection parameters
 * @ap_sta: pointer to AP sta, for easier access to it.
 *	Relevant only for STA vifs.
 * @authorized: indicates the AP station was set to authorized
 * @num_associated_stas: number of associated STAs. Relevant only for AP mode.
 * @ap_ibss_active: whether the AP/IBSS was started
 * @cca_40mhz_workaround: When we are connected in 2.4 GHz and 40 MHz, and the
 *	environment is too loaded, we work around this by reconnecting to the
 *	same AP with 20 MHz. This manages the status of the workaround.
 * @beacon_inject_active: indicates an active debugfs beacon ie injection
 * @low_latency_causes: bit flags, indicating the causes for low-latency,
 *	see @iwl_mld_low_latency_cause.
 * @last_link_activation_time: last time a link was activated, for
 *	deferring MLO scans (to make them more reliable)
 * @mld: pointer to the mld structure.
 * @deflink: default link data, for use in non-MLO,
 * @link: reference to link data for each valid link, for use in MLO.
 * @emlsr: information related to EMLSR
 * @wowlan_data: data used by the wowlan suspend flow
 * @use_ps_poll: use ps_poll frames
 * @disable_bf: disable beacon filter
 * @dbgfs_slink: debugfs symlink for this interface
 * @roc_activity: the id of the roc_activity running. Relevant for STA and
 *	p2p device only. Set to %ROC_NUM_ACTIVITIES when not in use.
 * @aux_sta: station used for remain on channel. Used in P2P device.
 * @mlo_scan_start_wk: worker to start a deferred MLO scan
 * @nan: NAN parameters
 * @nan.links: NAN links for FW (indexed by FW link ID)
 * @nan.mac_added: track whether or not the MAC was added to FW
 * @nan.bcast_sta: internal station used for NAN synchronization and discovery
 *	activities. No queue is associated with it.
 * @nan.mgmt_sta: internal station used for NAN management frames, e.g., SDFs
 *	and NAFs.
 * @nan.mcast_data_sta: internal station used for multicast NAN Data frames.
 * @nan.tx_igtk: TX IGTK key for NAN, tracked separately since NAN does not
 *	use the vif links.
 */
struct iwl_mld_vif {
	/* Add here fields that need clean up on restart */
	struct_group(zeroed_on_hw_restart,
		u8 fw_id;
		struct iwl_mld_session_protect session_protect;
		struct ieee80211_sta *ap_sta;
		bool authorized;
		u8 num_associated_stas;
		bool ap_ibss_active;
		enum iwl_mld_cca_40mhz_wa_status cca_40mhz_workaround;
#ifdef CONFIG_IWLWIFI_DEBUGFS
		bool beacon_inject_active;
#endif
		u8 low_latency_causes;
		time64_t last_link_activation_time;
	);
	/* And here fields that survive a fw restart */
	struct iwl_mld *mld;
	struct iwl_mld_link deflink;
	struct iwl_mld_link __rcu *link[IEEE80211_MLD_MAX_NUM_LINKS];

	struct {
		/* use only with wiphy protection */
		struct iwl_mld_nan_link links[IWL_FW_MAX_LINKS];
		bool mac_added;
		struct iwl_mld_int_sta bcast_sta;
		struct iwl_mld_int_sta mgmt_sta;

Annotation

Implementation Notes