ENUM NL80211_WOWLAN_TRIGGERS(9)
π NAME π
okay so this is the enum nl80211_wowlan_triggers page from the Kernel API Manual, and it's literally the WoWLAN trigger definitions bestie π. It's giving "wake-on-wireless lore" and we're gonna get through every constant together, no cap.
β¨ SYNOPSIS β¨
enum nl80211_wowlan_triggers {
__NL80211_WOWLAN_TRIG_INVALID ,
NL80211_WOWLAN_TRIG_ANY ,
NL80211_WOWLAN_TRIG_DISCONNECT ,
NL80211_WOWLAN_TRIG_MAGIC_PKT ,
NL80211_WOWLAN_TRIG_PKT_PATTERN ,
NL80211_WOWLAN_TRIG_GTK_REKEY_SUPPORTED ,
NL80211_WOWLAN_TRIG_GTK_REKEY_FAILURE ,
NL80211_WOWLAN_TRIG_EAP_IDENT_REQUEST ,
NL80211_WOWLAN_TRIG_4WAY_HANDSHAKE ,
NL80211_WOWLAN_TRIG_RFKILL_RELEASE ,
NL80211_WOWLAN_TRIG_WAKEUP_PKT_80211 ,
NL80211_WOWLAN_TRIG_WAKEUP_PKT_80211_LEN ,
NL80211_WOWLAN_TRIG_WAKEUP_PKT_8023 ,
NL80211_WOWLAN_TRIG_WAKEUP_PKT_8023_LEN ,
NL80211_WOWLAN_TRIG_TCP_CONNECTION ,
NL80211_WOWLAN_TRIG_WAKEUP_TCP_MATCH ,
NL80211_WOWLAN_TRIG_WAKEUP_TCP_CONNLOST ,
NL80211_WOWLAN_TRIG_WAKEUP_TCP_NOMORETOKENS ,
NL80211_WOWLAN_TRIG_NET_DETECT ,
NL80211_WOWLAN_TRIG_NET_DETECT_RESULTS ,
NL80211_WOWLAN_TRIG_UNPROTECTED_DEAUTH_DISASSOC ,
NUM_NL80211_WOWLAN_TRIG ,
MAX_NL80211_WOWLAN_TRIG
};
π Constants π
__NL80211_WOWLAN_TRIG_INVALIDβ invalid number for nested attributes. bestie it's the invalid one, that's the whole vibe π.NL80211_WOWLAN_TRIG_ANYβ wake up on any activity, and it does not really put the chip into a special state β works best with chips that have support for low-power operation already (flag).
π Heads up: Note that this mode is incompatible with all of the others, if any others are even supported by the device. so likeβ¦ it's the solo main character, periodt.
NL80211_WOWLAN_TRIG_DISCONNECTβ wake up on disconnect, and the way disconnect is detected is implementation-specific (flag). lowkey mysterious but okay β¨.NL80211_WOWLAN_TRIG_MAGIC_PKTβ wake up on magic packet:6x 0xff, followed by 16 repetitions of MAC addr, anywhere in payload (flag). iconic packet behavior honestly πͺ.NL80211_WOWLAN_TRIG_PKT_PATTERNβ wake up on the specified packet patterns. These patterns are passed in an array of nested attributes, and each nested attribute defines one using attributes fromstruct nl80211_wowlan_trig_pkt_pattern. Each pattern defines a wakeup packet. Packet offset is associated with each pattern, and that offset is used while matching the pattern. The matching is done on the MSDU, i.e. as though the packet was an 802.3 packet, so the pattern matching is done after the packet is converted to the MSDU π.NL80211_WOWLAN_TRIG_GTK_REKEY_SUPPORTEDβ not a real trigger, and it cannot be used when setting. It's used only to indicate that GTK rekeying is supported by the device (flag). it's giving "support badge, not action button" π .NL80211_WOWLAN_TRIG_GTK_REKEY_FAILUREβ wake up on GTK rekey failure (if done by the device) (flag). π not the rekey failing.NL80211_WOWLAN_TRIG_EAP_IDENT_REQUESTβ wake up on EAP Identity Request packet (flag) β¨.NL80211_WOWLAN_TRIG_4WAY_HANDSHAKEβ wake up on 4-way handshake (flag) π€.NL80211_WOWLAN_TRIG_RFKILL_RELEASEβ wake up when rfkill is released (on devices that have rfkill in the device) (flag) π¦.NL80211_WOWLAN_TRIG_WAKEUP_PKT_80211β for wakeup reporting only. It contains the 802.11 packet that caused the wakeup, e.g. a deauth frame. The frame may be truncated, and theNL80211_WOWLAN_TRIG_WAKEUP_PKT_80211_LENattribute contains the original length π.NL80211_WOWLAN_TRIG_WAKEUP_PKT_80211_LENβ original length of the 802.11 packet; it may be bigger than theNL80211_WOWLAN_TRIG_WAKEUP_PKT_80211attribute if the packet was truncated somewhere π.NL80211_WOWLAN_TRIG_WAKEUP_PKT_8023β for wakeup reporting only. It contains the 802.11 packet that caused the wakeup, e.g. a magic packet. The frame may be truncated, and theNL80211_WOWLAN_TRIG_WAKEUP_PKT_8023_LENattribute contains the original length π«Ά.NL80211_WOWLAN_TRIG_WAKEUP_PKT_8023_LENβ original length of the 802.3 packet; it may be bigger than theNL80211_WOWLAN_TRIG_WAKEUP_PKT_8023attribute if the packet was truncated somewhere πΈ.NL80211_WOWLAN_TRIG_TCP_CONNECTIONβ TCP connection wake; see the DOC section "TCP connection wakeup" for more details. This is a nested attribute containing the exact information for establishing and keeping alive the TCP connection π₯.NL80211_WOWLAN_TRIG_WAKEUP_TCP_MATCHβ for wakeup reporting only: the wakeup packet was received on the TCP connection β .NL80211_WOWLAN_TRIG_WAKEUP_TCP_CONNLOSTβ for wakeup reporting only: the TCP connection was lost or failed to be established π.NL80211_WOWLAN_TRIG_WAKEUP_TCP_NOMORETOKENSβ for wakeup reporting only: the TCP connection ran out of tokens to use for data to send to the service π.NL80211_WOWLAN_TRIG_NET_DETECTβ wake up when a configured network is detected. This is a nested attribute that contains the same attributes used withNL80211_CMD_START_SCHED_SCAN. It specifies how the scan is performed (e.g. the interval, the channels to scan and the initial delay) as well as the scan results that will trigger a wake (i.e. the matchsets). This attribute is also sent in a response toNL80211_CMD_GET_WIPHY, indicating the number of match sets supported by the driver (u32) π§.NL80211_WOWLAN_TRIG_NET_DETECT_RESULTSβ nested attribute containing an array with information about what triggered the wake up. If no elements are present in the array, it means that the information is not available. If more than one element is present, it means that more than one match occurred. Each element in the array is a nested attribute that contains one optionalNL80211_ATTR_SSIDattribute and one optionalNL80211_ATTR_SCAN_FREQUENCIESattribute. At least one of these attributes must be present. IfNL80211_ATTR_SCAN_FREQUENCIEScontains more than one frequency, it means that the match occurred in more than one channel π.NL80211_WOWLAN_TRIG_UNPROTECTED_DEAUTH_DISASSOCβ for wakeup reporting only. Wake up happened due to unprotected deauth or disassoc frame in MFP β.NUM_NL80211_WOWLAN_TRIGβ number of wake on wireless triggers π’.MAX_NL80211_WOWLAN_TRIGβ highest wowlan trigger attribute number π.
πΈ Description πΈ
In NL80211_ATTR_WOWLAN_TRIGGERS_SUPPORTED, it is a binary attribute carrying a struct nl80211_pattern_support π.
When reporting wakeup, it is a u32 attribute containing the 0-based index of the pattern that caused the wakeup, in the patterns passed to the kernel when configuring β¨.
These nested attributes are used to configure the wakeup triggers and to report the wakeup reason(s) π.
π SEE ALSO β¨
okay bestie, this is the part where the page just. keeps. going. Like, the SEE ALSO section said "and what about literally everything else in nl80211" and then answered itself. No cap, this is the whole friend group. Grab a snack π
First up, the source file itself β the mothership:
./include/uapi/linux/nl80211.h
π«Ά the ~concept~ pages (the lore)
Station handling(9)Frame transmission/registration support(9)Virtual interface / concurrency capabilities(9)packet coalesce support(9)WPA/WPA2 EAPOL handshake offload(9)FILS shared key authentication offload(9)SAE authentication offload(9)VLAN offload support for setting group keys and binding STAs to VLANs(9)TID configuration(9)FILS shared key crypto offload(9)Multi-Link Operation(9)OWE DH IE handling offload(9)
π the basics (commands, attrs, iftypes, stations)
enum nl80211_commands(9)enum nl80211_attrs(9)enum nl80211_iftype(9)enum nl80211_sta_flags(9)enum nl80211_sta_p2p_ps_status(9)struct nl80211_sta_flag_update(9)
πΈ HE / EHT / rate / sta info era
enum nl80211_he_gi(9)enum nl80211_he_ltf(9)enum nl80211_he_ru_alloc(9)enum nl80211_eht_gi(9)enum nl80211_eht_ltf(9)enum nl80211_eht_ru_alloc(9)enum nl80211_rate_info(9)enum nl80211_sta_bss_param(9)enum nl80211_sta_info(9)enum nl80211_tid_stats(9)enum nl80211_txq_stats(9)
π¦ mesh paths, bands, NAN, WMM, frequencies, bitrates
enum nl80211_mpath_flags(9)enum nl80211_mpath_info(9)enum nl80211_band_iftype_attr(9)enum nl80211_band_attr(9)enum nl80211_nan_phy_cap_attr(9)enum nl80211_wmm_rule(9)enum nl80211_frequency_attr(9)enum nl80211_bitrate_attr(9)
π regulatory girlies (rules, regions, hints)
enum nl80211_reg_initiator(9)enum nl80211_reg_type(9)enum nl80211_reg_rule_attr(9)enum nl80211_sched_scan_match_attr(9)enum nl80211_reg_rule_flags(9)enum nl80211_dfs_regions(9)enum nl80211_user_reg_hint_type(9)
π§ survey, monitor, mesh, txq, channels, keys
enum nl80211_survey_info(9)enum nl80211_mntr_flags(9)enum nl80211_mesh_power_mode(9)enum nl80211_meshconf_params(9)enum nl80211_mesh_setup_params(9)enum nl80211_txq_attr(9)enum nl80211_channel_type(9)enum nl80211_key_mode(9)enum nl80211_chan_width(9)
π BSS lore + auth/key types
enum nl80211_bss_scan_width(9)enum nl80211_bss_use_for(9)enum nl80211_bss_cannot_use_reasons(9)enum nl80211_bss(9)enum nl80211_bss_status(9)enum nl80211_auth_type(9)enum nl80211_key_type(9)enum nl80211_mfp(9)enum nl80211_key_default_types(9)enum nl80211_key_attributes(9)
β tx rates, band, ps, cqm, tx power, tid config, patterns
enum nl80211_tx_rate_attributes(9)struct nl80211_txrate_vht(9)struct nl80211_txrate_he(9)struct nl80211_txrate_eht(9)enum nl80211_band(9)enum nl80211_ps_state(9)enum nl80211_attr_cqm(9)enum nl80211_cqm_rssi_threshold_event(9)enum nl80211_tx_power_setting(9)enum nl80211_tid_config(9)enum nl80211_packet_pattern_attr(9)struct nl80211_pattern_support(9)
π₯ WoWLAN TCP + coalesce (the sleepytime crew)
TCP connection wakeup(9)struct nl80211_wowlan_tcp_data_seq(9)struct nl80211_wowlan_tcp_data_token(9)struct nl80211_wowlan_tcp_data_token_feature(9)enum nl80211_wowlan_tcp_attrs(9)struct nl80211_coalesce_rule_support(9)enum nl80211_attr_coalesce_rule(9)enum nl80211_coalesce_condition(9)
π iface combos, plinks, rekey, hidden ssid, sta wme, pmksa, tdls, ap sme, feature flags
enum nl80211_iface_limit_attrs(9)enum nl80211_if_combination_attrs(9)enum nl80211_plink_state(9)enum nl80211_plink_action(9)enum nl80211_rekey_data(9)enum nl80211_hidden_ssid(9)enum nl80211_sta_wme_attr(9)enum nl80211_pmksa_candidate_attr(9)enum nl80211_tdls_operation(9)enum nl80211_ap_sme_features(9)enum nl80211_feature_flags(9)enum nl80211_ext_feature_index(9)enum nl80211_probe_resp_offload_support_attr(9)
πΈ connect failures, scan flags, acl, smps, radar, dfs, protocol features
enum nl80211_connect_failed_reason(9)enum nl80211_timeout_reason(9)enum nl80211_scan_flags(9)enum nl80211_acl_policy(9)enum nl80211_smps_mode(9)enum nl80211_radar_event(9)enum nl80211_dfs_state(9)enum nl80211_protocol_features(9)enum nl80211_crit_proto_id(9)enum nl80211_rxmgmt_flags(9)struct nl80211_vendor_cmd_info(9)enum nl80211_tdls_peer_capability(9)enum nl80211_sched_scan_plan(9)struct nl80211_bss_select_rssi_adjust(9)enum nl80211_bss_select_attr(9)
π¦ NAN everything (neighbor awareness, main character energy)
enum nl80211_nan_function_type(9)enum nl80211_nan_publish_type(9)enum nl80211_nan_func_term_reason(9)enum nl80211_nan_func_attributes(9)enum nl80211_nan_srf_attributes(9)enum nl80211_nan_match_attributes(9)enum nl80211_nan_band_conf_attributes(9)enum nl80211_nan_conf_attributes(9)
π external auth, FTM, preamble, peer measurement (the whole saga)
enum nl80211_external_auth_action(9)enum nl80211_ftm_responder_attributes(9)enum nl80211_preamble(9)enum nl80211_peer_measurement_type(9)enum nl80211_peer_measurement_status(9)enum nl80211_peer_measurement_req(9)enum nl80211_peer_measurement_resp(9)enum nl80211_peer_measurement_ftm_req_type(9)enum nl80211_peer_measurement_peer_attrs(9)enum nl80211_peer_measurement_attrs(9)enum nl80211_peer_measurement_ftm_capa(9)enum nl80211_peer_measurement_ftm_type_capa(9)enum nl80211_peer_measurement_ftm_req(9)enum nl80211_peer_measurement_ftm_failure_reasons(9)enum nl80211_peer_measurement_ftm_resp(9)
π the grand finale (obss pd β nan peer map, the last stretch, we made it)
enum nl80211_obss_pd_attributes(9)enum nl80211_bss_color_attributes(9)enum nl80211_iftype_akm_attributes(9)enum nl80211_fils_discovery_attributes(9)enum nl80211_unsol_bcast_probe_resp_attributes(9)enum nl80211_sae_pwe_mechanism(9)enum nl80211_sar_type(9)enum nl80211_sar_attrs(9)enum nl80211_sar_specs_attrs(9)enum nl80211_mbssid_config_attributes(9)enum nl80211_ap_settings_flags(9)enum nl80211_wiphy_radio_attrs(9)enum nl80211_wiphy_radio_freq_range(9)enum nl80211_s1g_short_beacon_attrs(9)enum nl80211_nan_capabilities(9)enum nl80211_nan_peer_map_attrs(9)
fr fr you don't have to read all of these, bestie β but if a name ever shows up in the wild and you're like "wait who is she", it's in here π
and that's the page!! we survived the entire cross-reference list, honestly iconic πβ¨
β¨ that's a wrap, babe β¨ this one lives in the kernel source tree under ./include/uapi/linux, dated October 2026, and it's from the enum nl80211...lan_triggers(9) page in the Kernel API Manual. go touch some wifi ππ«Ά
π¦ where this page comes from
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms