'\" t .\" Title: struct wiphy .\" Author: .\" Generator: DocBook XSL Stylesheets v1.79.1 .\" Date: January 2017 .\" Manual: Device registration .\" Source: Kernel Hackers Manual 4.8.15 .\" Language: English .\" .TH "STRUCT WIPHY" "9" "January 2017" "Kernel Hackers Manual 4\&.8\&." "Device registration" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .\" http://bugs.debian.org/507673 .\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- .\" disable hyphenation .nh .\" disable justification (adjust text to left margin only) .ad l .\" ----------------------------------------------------------------- .\" * MAIN CONTENT STARTS HERE * .\" ----------------------------------------------------------------- .SH "NAME" struct_wiphy \- wireless hardware description .SH "SYNOPSIS" .sp .nf struct wiphy { u8 perm_addr[ETH_ALEN]; u8 addr_mask[ETH_ALEN]; struct mac_address * addresses; const struct ieee80211_txrx_stypes * mgmt_stypes; const struct ieee80211_iface_combination * iface_combinations; int n_iface_combinations; u16 software_iftypes; u16 n_addresses; u16 interface_modes; u16 max_acl_mac_addrs; u32 flags; u32 regulatory_flags; u32 features; u8 ext_features[DIV_ROUND_UP(NUM_NL80211_EXT_FEATURES# 8)]; u32 ap_sme_capa; enum cfg80211_signal_type signal_type; int bss_priv_size; u8 max_scan_ssids; u8 max_sched_scan_ssids; u8 max_match_sets; u16 max_scan_ie_len; u16 max_sched_scan_ie_len; u32 max_sched_scan_plans; u32 max_sched_scan_plan_interval; u32 max_sched_scan_plan_iterations; int n_cipher_suites; const u32 * cipher_suites; u8 retry_short; u8 retry_long; u32 frag_threshold; u32 rts_threshold; u8 coverage_class; char fw_version[ETHTOOL_FWVERS_LEN]; u32 hw_version; #ifdef CONFIG_PM const struct wiphy_wowlan_support * wowlan; struct cfg80211_wowlan * wowlan_config; #endif u16 max_remain_on_channel_duration; u8 max_num_pmkids; u32 available_antennas_tx; u32 available_antennas_rx; u32 probe_resp_offload; const u8 * extended_capabilities; const u8 * extended_capabilities_mask; u8 extended_capabilities_len; const struct wiphy_iftype_ext_capab * iftype_ext_capab; unsigned int num_iftype_ext_capab; const void * privid; struct ieee80211_supported_band * bands[NUM_NL80211_BANDS]; void (* reg_notifier) (struct wiphy *wiphy,struct regulatory_request *request); const struct ieee80211_regdomain __rcu * regd; struct device dev; bool registered; struct dentry * debugfsdir; const struct ieee80211_ht_cap * ht_capa_mod_mask; const struct ieee80211_vht_cap * vht_capa_mod_mask; struct list_head wdev_list; possible_net_t _net; #ifdef CONFIG_CFG80211_WEXT const struct iw_handler_def * wext; #endif const struct wiphy_coalesce_support * coalesce; const struct wiphy_vendor_command * vendor_commands; const struct nl80211_vendor_cmd_info * vendor_events; int n_vendor_commands; int n_vendor_events; u16 max_ap_assoc_sta; u8 max_num_csa_counters; u8 max_adj_channel_rssi_comp; u32 bss_select_support; char priv[0]; }; .fi .SH "MEMBERS" .PP perm_addr[ETH_ALEN] .RS 4 permanent MAC address of this device .RE .PP addr_mask[ETH_ALEN] .RS 4 If the device supports multiple MAC addresses by masking, set this to a mask with variable bits set to 1, e\&.g\&. if the last four bits are variable then set it to 00\-00\-00\-00\-00\-0f\&. The actual variable bits shall be determined by the interfaces added, with interfaces not matching the mask being rejected to be brought up\&. .RE .PP addresses .RS 4 If the device has more than one address, set this pointer to a list of addresses (6 bytes each)\&. The first one will be used by default for perm_addr\&. In this case, the mask should be set to all\-zeroes\&. In this case it is assumed that the device can handle the same number of arbitrary MAC addresses\&. .RE .PP mgmt_stypes .RS 4 bitmasks of frame subtypes that can be subscribed to or transmitted through nl80211, points to an array indexed by interface type .RE .PP iface_combinations .RS 4 Valid interface combinations array, should not list single interface types\&. .RE .PP n_iface_combinations .RS 4 number of entries in \fIiface_combinations\fR array\&. .RE .PP software_iftypes .RS 4 bitmask of software interface types, these are not subject to any restrictions since they are purely managed in SW\&. .RE .PP n_addresses .RS 4 number of addresses in \fIaddresses\fR\&. .RE .PP interface_modes .RS 4 bitmask of interfaces types valid for this wiphy, must be set by driver .RE .PP max_acl_mac_addrs .RS 4 Maximum number of MAC addresses that the device supports for ACL\&. .RE .PP flags .RS 4 wiphy flags, see enum wiphy_flags .RE .PP regulatory_flags .RS 4 wiphy regulatory flags, see enum ieee80211_regulatory_flags .RE .PP features .RS 4 features advertised to nl80211, see enum nl80211_feature_flags\&. .RE .PP ext_features[DIV_ROUND_UP(NUM_NL80211_EXT_FEATURES# 8)] .RS 4 extended features advertised to nl80211, see enum nl80211_ext_feature_index\&. .RE .PP ap_sme_capa .RS 4 AP SME capabilities, flags from enum nl80211_ap_sme_features\&. .RE .PP signal_type .RS 4 signal type reported in struct cfg80211_bss\&. .RE .PP bss_priv_size .RS 4 each BSS struct has private data allocated with it, this variable determines its size .RE .PP max_scan_ssids .RS 4 maximum number of SSIDs the device can scan for in any given scan .RE .PP max_sched_scan_ssids .RS 4 maximum number of SSIDs the device can scan for in any given scheduled scan .RE .PP max_match_sets .RS 4 maximum number of match sets the device can handle when performing a scheduled scan, 0 if filtering is not supported\&. .RE .PP max_scan_ie_len .RS 4 maximum length of user\-controlled IEs device can add to probe request frames transmitted during a scan, must not include fixed IEs like supported rates .RE .PP max_sched_scan_ie_len .RS 4 same as max_scan_ie_len, but for scheduled scans .RE .PP max_sched_scan_plans .RS 4 maximum number of scan plans (scan interval and number of iterations) for scheduled scan supported by the device\&. .RE .PP max_sched_scan_plan_interval .RS 4 maximum interval (in seconds) for a single scan plan supported by the device\&. .RE .PP max_sched_scan_plan_iterations .RS 4 maximum number of iterations for a single scan plan supported by the device\&. .RE .PP n_cipher_suites .RS 4 number of supported cipher suites .RE .PP cipher_suites .RS 4 supported cipher suites .RE .PP retry_short .RS 4 Retry limit for short frames (dot11ShortRetryLimit) .RE .PP retry_long .RS 4 Retry limit for long frames (dot11LongRetryLimit) .RE .PP frag_threshold .RS 4 Fragmentation threshold (dot11FragmentationThreshold); \-1 = fragmentation disabled, only odd values >= 256 used .RE .PP rts_threshold .RS 4 RTS threshold (dot11RTSThreshold); \-1 = RTS/CTS disabled .RE .PP coverage_class .RS 4 current coverage class .RE .PP fw_version[ETHTOOL_FWVERS_LEN] .RS 4 firmware version for ethtool reporting .RE .PP hw_version .RS 4 hardware version for ethtool reporting .RE .PP wowlan .RS 4 WoWLAN support information .RE .PP wowlan_config .RS 4 current WoWLAN configuration; this should usually not be used since access to it is necessarily racy, use the parameter passed to the \fBsuspend\fR operation instead\&. .RE .PP max_remain_on_channel_duration .RS 4 Maximum time a remain\-on\-channel operation may request, if implemented\&. .RE .PP max_num_pmkids .RS 4 maximum number of PMKIDs supported by device .RE .PP available_antennas_tx .RS 4 bitmap of antennas which are available to be configured as TX antennas\&. Antenna configuration commands will be rejected unless this or \fIavailable_antennas_rx\fR is set\&. .RE .PP available_antennas_rx .RS 4 bitmap of antennas which are available to be configured as RX antennas\&. Antenna configuration commands will be rejected unless this or \fIavailable_antennas_tx\fR is set\&. .RE .PP probe_resp_offload .RS 4 Bitmap of supported protocols for probe response offloading\&. See enum nl80211_probe_resp_offload_support_attr\&. Only valid when the wiphy flag \fIWIPHY_FLAG_AP_PROBE_RESP_OFFLOAD\fR is set\&. .RE .PP extended_capabilities .RS 4 extended capabilities supported by the driver, additional capabilities might be supported by userspace; these are the 802\&.11 extended capabilities (\(lqExtended Capabilities element\(rq) and are in the same format as in the information element\&. See 802\&.11\-2012 8\&.4\&.2\&.29 for the defined fields\&. These are the default extended capabilities to be used if the capabilities are not specified for a specific interface type in iftype_ext_capab\&. .RE .PP extended_capabilities_mask .RS 4 mask of the valid values .RE .PP extended_capabilities_len .RS 4 length of the extended capabilities .RE .PP iftype_ext_capab .RS 4 array of extended capabilities per interface type .RE .PP num_iftype_ext_capab .RS 4 number of interface types for which extended capabilities are specified separately\&. .RE .PP privid .RS 4 a pointer that drivers can use to identify if an arbitrary wiphy is theirs, e\&.g\&. in global notifiers .RE .PP bands[NUM_NL80211_BANDS] .RS 4 information about bands/channels supported by this device .RE .PP reg_notifier .RS 4 the driver\*(Aqs regulatory notification callback, note that if your driver uses \fBwiphy_apply_custom_regulatory\fR the reg_notifier\*(Aqs request can be passed as NULL .RE .PP regd .RS 4 the driver\*(Aqs regulatory domain, if one was requested via the \fBregulatory_hint\fR API\&. This can be used by the driver on the \fBreg_notifier\fR if it chooses to ignore future regulatory domain changes caused by other drivers\&. .RE .PP dev .RS 4 (virtual) struct device for this wiphy .RE .PP registered .RS 4 helps synchronize suspend/resume with wiphy unregister .RE .PP debugfsdir .RS 4 debugfs directory used for this wiphy, will be renamed automatically on wiphy renames .RE .PP ht_capa_mod_mask .RS 4 Specify what ht_cap values can be over\-ridden\&. If null, then none can be over\-ridden\&. .RE .PP vht_capa_mod_mask .RS 4 Specify what VHT capabilities can be over\-ridden\&. If null, then none can be over\-ridden\&. .RE .PP wdev_list .RS 4 the list of associated (virtual) interfaces; this list must not be modified by the driver, but can be read with RTNL/RCU protection\&. .RE .PP _net .RS 4 the network namespace this wiphy currently lives in .RE .PP wext .RS 4 wireless extension handlers .RE .PP coalesce .RS 4 packet coalescing support information .RE .PP vendor_commands .RS 4 array of vendor commands supported by the hardware .RE .PP vendor_events .RS 4 array of vendor events supported by the hardware .RE .PP n_vendor_commands .RS 4 number of vendor commands .RE .PP n_vendor_events .RS 4 number of vendor events .RE .PP max_ap_assoc_sta .RS 4 maximum number of associated stations supported in AP mode (including P2P GO) or 0 to indicate no such limit is advertised\&. The driver is allowed to advertise a theoretical limit that it can reach in some cases, but may not always reach\&. .RE .PP max_num_csa_counters .RS 4 Number of supported csa_counters in beacons and probe responses\&. This value should be set if the driver wishes to limit the number of csa counters\&. Default (0) means infinite\&. .RE .PP max_adj_channel_rssi_comp .RS 4 max offset of between the channel on which the frame was sent and the channel on which the frame was heard for which the reported rssi is still valid\&. If a driver is able to compensate the low rssi when a frame is heard on different channel, then it should set this variable to the maximal offset for which it can compensate\&. This value should be set in MHz\&. .RE .PP bss_select_support .RS 4 bitmask indicating the BSS selection criteria supported by the driver in the \&.\fBconnect\fR callback\&. The bit position maps to the attribute indices defined in enum nl80211_bss_select_attr\&. .RE .PP priv[0] .RS 4 driver private data (sized according to \fBwiphy_new\fR parameter) .RE .SH "AUTHOR" .PP \fBJohannes Berg\fR <\&johannes@sipsolutions.net\&> .RS 4 Author. .RE .SH "COPYRIGHT" .br