'\" t .\" Title: enum ieee80211_hw_flags .\" Author: .\" Generator: DocBook XSL Stylesheets v1.79.1 .\" Date: January 2017 .\" Manual: The basic mac80211 driver interface .\" Source: Kernel Hackers Manual 4.8.15 .\" Language: English .\" .TH "ENUM IEEE80211_HW_FL" "9" "January 2017" "Kernel Hackers Manual 4\&.8\&." "The basic mac80211 driver inte" .\" ----------------------------------------------------------------- .\" * 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" enum_ieee80211_hw_flags \- hardware flags .SH "SYNOPSIS" .sp .nf enum ieee80211_hw_flags { IEEE80211_HW_HAS_RATE_CONTROL, IEEE80211_HW_RX_INCLUDES_FCS, IEEE80211_HW_HOST_BROADCAST_PS_BUFFERING, IEEE80211_HW_SIGNAL_UNSPEC, IEEE80211_HW_SIGNAL_DBM, IEEE80211_HW_NEED_DTIM_BEFORE_ASSOC, IEEE80211_HW_SPECTRUM_MGMT, IEEE80211_HW_AMPDU_AGGREGATION, IEEE80211_HW_SUPPORTS_PS, IEEE80211_HW_PS_NULLFUNC_STACK, IEEE80211_HW_SUPPORTS_DYNAMIC_PS, IEEE80211_HW_MFP_CAPABLE, IEEE80211_HW_WANT_MONITOR_VIF, IEEE80211_HW_NO_AUTO_VIF, IEEE80211_HW_SW_CRYPTO_CONTROL, IEEE80211_HW_SUPPORT_FAST_XMIT, IEEE80211_HW_REPORTS_TX_ACK_STATUS, IEEE80211_HW_CONNECTION_MONITOR, IEEE80211_HW_QUEUE_CONTROL, IEEE80211_HW_SUPPORTS_PER_STA_GTK, IEEE80211_HW_AP_LINK_PS, IEEE80211_HW_TX_AMPDU_SETUP_IN_HW, IEEE80211_HW_SUPPORTS_RC_TABLE, IEEE80211_HW_P2P_DEV_ADDR_FOR_INTF, IEEE80211_HW_TIMING_BEACON_ONLY, IEEE80211_HW_SUPPORTS_HT_CCK_RATES, IEEE80211_HW_CHANCTX_STA_CSA, IEEE80211_HW_SUPPORTS_CLONED_SKBS, IEEE80211_HW_SINGLE_SCAN_ON_ALL_BANDS, IEEE80211_HW_TDLS_WIDER_BW, IEEE80211_HW_SUPPORTS_AMSDU_IN_AMPDU, IEEE80211_HW_BEACON_TX_STATUS, IEEE80211_HW_NEEDS_UNIQUE_STA_ADDR, IEEE80211_HW_SUPPORTS_REORDERING_BUFFER, IEEE80211_HW_USES_RSS, IEEE80211_HW_TX_AMSDU, IEEE80211_HW_TX_FRAG_LIST, NUM_IEEE80211_HW_FLAGS }; .fi .SH "CONSTANTS" .PP IEEE80211_HW_HAS_RATE_CONTROL .RS 4 The hardware or firmware includes rate control, and cannot be controlled by the stack\&. As such, no rate control algorithm should be instantiated, and the TX rate reported to userspace will be taken from the TX status instead of the rate control algorithm\&. Note that this requires that the driver implement a number of callbacks so it has the correct information, it needs to have the \fIset_rts_threshold\fR callback and must look at the BSS config \fIuse_cts_prot\fR for G/N protection, \fIuse_short_slot\fR for slot timing in 2\&.4 GHz and \fIuse_short_preamble\fR for preambles for CCK frames\&. .RE .PP IEEE80211_HW_RX_INCLUDES_FCS .RS 4 Indicates that received frames passed to the stack include the FCS at the end\&. .RE .PP IEEE80211_HW_HOST_BROADCAST_PS_BUFFERING .RS 4 Some wireless LAN chipsets buffer broadcast/multicast frames for power saving stations in the hardware/firmware and others rely on the host system for such buffering\&. This option is used to configure the IEEE 802\&.11 upper layer to buffer broadcast and multicast frames when there are power saving stations so that the driver can fetch them with \fBieee80211_get_buffered_bc\fR\&. .RE .PP IEEE80211_HW_SIGNAL_UNSPEC .RS 4 Hardware can provide signal values but we don\*(Aqt know its units\&. We expect values between 0 and \fImax_signal\fR\&. If possible please provide dB or dBm instead\&. .RE .PP IEEE80211_HW_SIGNAL_DBM .RS 4 Hardware gives signal values in dBm, decibel difference from one milliwatt\&. This is the preferred method since it is standardized between different devices\&. \fImax_signal\fR does not need to be set\&. .RE .PP IEEE80211_HW_NEED_DTIM_BEFORE_ASSOC .RS 4 This device needs to get data from beacon before association (i\&.e\&. dtim_period)\&. .RE .PP IEEE80211_HW_SPECTRUM_MGMT .RS 4 Hardware supports spectrum management defined in 802\&.11h Measurement, Channel Switch, Quieting, TPC .RE .PP IEEE80211_HW_AMPDU_AGGREGATION .RS 4 Hardware supports 11n A\-MPDU aggregation\&. .RE .PP IEEE80211_HW_SUPPORTS_PS .RS 4 Hardware has power save support (i\&.e\&. can go to sleep)\&. .RE .PP IEEE80211_HW_PS_NULLFUNC_STACK .RS 4 Hardware requires nullfunc frame handling in stack, implies stack support for dynamic PS\&. .RE .PP IEEE80211_HW_SUPPORTS_DYNAMIC_PS .RS 4 Hardware has support for dynamic PS\&. .RE .PP IEEE80211_HW_MFP_CAPABLE .RS 4 Hardware supports management frame protection (MFP, IEEE 802\&.11w)\&. .RE .PP IEEE80211_HW_WANT_MONITOR_VIF .RS 4 The driver would like to be informed of a virtual monitor interface when monitor interfaces are the only active interfaces\&. .RE .PP IEEE80211_HW_NO_AUTO_VIF .RS 4 The driver would like for no wlanX to be created\&. It is expected user\-space will create vifs as desired (and thus have them named as desired)\&. .RE .PP IEEE80211_HW_SW_CRYPTO_CONTROL .RS 4 The driver wants to control which of the crypto algorithms can be done in software \- so don\*(Aqt automatically try to fall back to it if hardware crypto fails, but do so only if the driver returns 1\&. This also forces the driver to advertise its supported cipher suites\&. .RE .PP IEEE80211_HW_SUPPORT_FAST_XMIT .RS 4 The driver/hardware supports fast\-xmit, this currently requires only the ability to calculate the duration for frames\&. .RE .PP IEEE80211_HW_REPORTS_TX_ACK_STATUS .RS 4 Hardware can provide ack status reports of Tx frames to the stack\&. .RE .PP IEEE80211_HW_CONNECTION_MONITOR .RS 4 The hardware performs its own connection monitoring, including periodic keep\-alives to the AP and probing the AP on beacon loss\&. .RE .PP IEEE80211_HW_QUEUE_CONTROL .RS 4 The driver wants to control per\-interface queue mapping in order to use different queues (not just one per AC) for different virtual interfaces\&. See the doc section on HW queue control for more details\&. .RE .PP IEEE80211_HW_SUPPORTS_PER_STA_GTK .RS 4 The device\*(Aqs crypto engine supports per\-station GTKs as used by IBSS RSN or during fast transition\&. If the device doesn\*(Aqt support per\-station GTKs, but can be asked not to decrypt group addressed frames, then IBSS RSN support is still possible but software crypto will be used\&. Advertise the wiphy flag only in that case\&. .RE .PP IEEE80211_HW_AP_LINK_PS .RS 4 When operating in AP mode the device autonomously manages the PS status of connected stations\&. When this flag is set mac80211 will not trigger PS mode for connected stations based on the PM bit of incoming frames\&. Use \fBieee80211_start_ps\fR/\fBieee8021_end_ps\fR to manually configure the PS mode of connected stations\&. .RE .PP IEEE80211_HW_TX_AMPDU_SETUP_IN_HW .RS 4 The device handles TX A\-MPDU session setup strictly in HW\&. mac80211 should not attempt to do this in software\&. .RE .PP IEEE80211_HW_SUPPORTS_RC_TABLE .RS 4 The driver supports using a rate selection table provided by the rate control algorithm\&. .RE .PP IEEE80211_HW_P2P_DEV_ADDR_FOR_INTF .RS 4 Use the P2P Device address for any P2P Interface\&. This will be honoured even if more than one interface is supported\&. .RE .PP IEEE80211_HW_TIMING_BEACON_ONLY .RS 4 Use sync timing from beacon frames only, to allow getting TBTT of a DTIM beacon\&. .RE .PP IEEE80211_HW_SUPPORTS_HT_CCK_RATES .RS 4 Hardware supports mixing HT/CCK rates and can cope with CCK rates in an aggregation session (e\&.g\&. by not using aggregation for such frames\&.) .RE .PP IEEE80211_HW_CHANCTX_STA_CSA .RS 4 Support 802\&.11h based channel\-switch (CSA) for a single active channel while using channel contexts\&. When support is not enabled the default action is to disconnect when getting the CSA frame\&. .RE .PP IEEE80211_HW_SUPPORTS_CLONED_SKBS .RS 4 The driver will never modify the payload or tailroom of TX skbs without copying them first\&. .RE .PP IEEE80211_HW_SINGLE_SCAN_ON_ALL_BANDS .RS 4 The HW supports scanning on all bands in one command, mac80211 doesn\*(Aqt have to run separate scans per band\&. .RE .PP IEEE80211_HW_TDLS_WIDER_BW .RS 4 The device/driver supports wider bandwidth than then BSS bandwidth for a TDLS link on the base channel\&. .RE .PP IEEE80211_HW_SUPPORTS_AMSDU_IN_AMPDU .RS 4 The driver supports receiving A\-MSDUs within A\-MPDU\&. .RE .PP IEEE80211_HW_BEACON_TX_STATUS .RS 4 The device/driver provides TX status for sent beacons\&. .RE .PP IEEE80211_HW_NEEDS_UNIQUE_STA_ADDR .RS 4 Hardware (or driver) requires that each station has a unique address, i\&.e\&. each station entry can be identified by just its MAC address; this prevents, for example, the same station from connecting to two virtual AP interfaces at the same time\&. .RE .PP IEEE80211_HW_SUPPORTS_REORDERING_BUFFER .RS 4 Hardware (or driver) manages the reordering buffer internally, guaranteeing mac80211 receives frames in order and does not need to manage its own reorder buffer or BA session timeout\&. .RE .PP IEEE80211_HW_USES_RSS .RS 4 The device uses RSS and thus requires parallel RX, which implies using per\-CPU station statistics\&. .RE .PP IEEE80211_HW_TX_AMSDU .RS 4 Hardware (or driver) supports software aggregated A\-MSDU frames\&. Requires software tx queueing and fast\-xmit support\&. When not using minstrel/minstrel_ht rate control, the driver must limit the maximum A\-MSDU size based on the current tx rate by setting max_rc_amsdu_len in struct ieee80211_sta\&. .RE .PP IEEE80211_HW_TX_FRAG_LIST .RS 4 Hardware (or driver) supports sending frag_list skbs, needed for zero\-copy software A\-MSDU\&. .RE .PP NUM_IEEE80211_HW_FLAGS .RS 4 number of hardware flags, used for sizing arrays .RE .SH "DESCRIPTION" .PP .PP These flags are used to indicate hardware capabilities to the stack\&. Generally, flags here should have their meaning done in a way that the simplest hardware doesn\*(Aqt need setting any particular flags\&. There are some exceptions to this rule, however, so you are advised to review these flags carefully\&. .SH "AUTHOR" .PP \fBJohannes Berg\fR <\&johannes@sipsolutions.net\&> .RS 4 Author. .RE .SH "COPYRIGHT" .br