drivers/net/wireless/intel/iwlwifi/mld/session-protect.h

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

File Facts

System
Linux kernel
Corpus path
drivers/net/wireless/intel/iwlwifi/mld/session-protect.h
Extension
.h
Size
3420 bytes
Lines
103
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_session_protect {
	unsigned long end_jiffies;
	u32 duration;
	bool session_requested;
};

#define IWL_MLD_SESSION_PROTECTION_ASSOC_TIME_MS 900
#define IWL_MLD_SESSION_PROTECTION_MIN_TIME_MS 400

/**
 * iwl_mld_handle_session_prot_notif - handles %SESSION_PROTECTION_NOTIF
 * @mld: the mld component
 * @pkt: the RX packet containing the notification
 */
void iwl_mld_handle_session_prot_notif(struct iwl_mld *mld,
				       struct iwl_rx_packet *pkt);

/**
 * iwl_mld_schedule_session_protection - schedule a session protection
 * @mld: the mld component
 * @vif: the virtual interface for which the protection issued
 * @duration: the requested duration of the protection
 * @min_duration: the minimum duration of the protection
 * @link_id: The link to schedule a session protection for
 */
void iwl_mld_schedule_session_protection(struct iwl_mld *mld,
					 struct ieee80211_vif *vif,
					 u32 duration, u32 min_duration,
					 int link_id);

/**
 * iwl_mld_start_session_protection - start a session protection
 * @mld: the mld component
 * @vif: the virtual interface for which the protection issued
 * @duration: the requested duration of the protection
 * @min_duration: the minimum duration of the protection
 * @link_id: The link to schedule a session protection for
 * @timeout: timeout for waiting
 *
 * This schedules the session protection, and waits for it to start
 * (with timeout)
 *
 * Returns: 0 if successful, error code otherwise
 */
int iwl_mld_start_session_protection(struct iwl_mld *mld,
				     struct ieee80211_vif *vif,
				     u32 duration, u32 min_duration,
				     int link_id, unsigned long timeout);

/**
 * iwl_mld_cancel_session_protection - cancel the session protection.
 * @mld: the mld component
 * @vif: the virtual interface for which the session is issued
 * @link_id: cancel the session protection for given link
 *
 * This functions cancels the session protection which is an act of good
 * citizenship. If it is not needed any more it should be canceled because
 * the other mac contexts wait for the medium during that time.
 *
 * Returns: 0 if successful, error code otherwise
 *
 */
int iwl_mld_cancel_session_protection(struct iwl_mld *mld,
				      struct ieee80211_vif *vif,
				      int link_id);

#endif /* __session_protect_h__ */

Annotation

Implementation Notes