Ieee80211_HW_uses_rss the device uses rss and thus requires parallel rx, which implies using per-cpu station statistics. Ieee80211_HW_TX_amsdu 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. Ieee80211_HW_TX_frag_list hardware (or driver) supports sending frag_list skbs, needed for zero-copy software a-msdu. Ieee80211_HW_reports_LOW_ack the driver (or firmware) reports low ack event by ieee80211_report_low_ack based on its own algorithm.
Power levels wlan lessons learned
hardware supports mixing HT/cck rates and can cope with cck rates in an aggregation essay session (e.g. By not using aggregation for such frames.) ieee80211_HW_chanctx_STA_csa 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. The driver will never modify the payload or tailroom of tx skbs without copying them first. The hw supports scanning on all bands in one command, mac80211 doesnt have to run separate scans per band. Ieee80211_HW_tdls_wider_bw the device/driver supports wider bandwidth than then bss bandwidth for a tdls link on the base channel. The driver supports receiving a-msdus within a-mpdu. Ieee80211_HW_beacon_TX_status the device/driver provides tx status for sent beacons. hardware (or driver) requires that each station has a unique address,. 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. 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.
Ieee80211_HW_AP_link_ps 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 to manually configure the ps mode of connected stations. The estate device handles tx a-mpdu session setup strictly. Mac80211 should not attempt to do this in software. Ieee80211_HW_supports_RC_table the driver supports using a rate selection table provided by the rate control algorithm. Use the P2p device address for any P2P Interface. This will be honoured even if more than one interface is supported. Use sync timing from beacon frames only, to allow getting tbtt of a dtim beacon.
This also forces the driver to advertise its supported cipher suites. Ieee80211_HW_support_fast_xmit the driver/hardware supports fast-xmit, this currently requires only the ability to calculate the duration for yardage frames. hardware can provide ack status reports of Tx frames to the stack. The hardware performs its own connection monitoring, including periodic keep-alives to the ap and probing the ap on beacon loss. Ieee80211_HW_queue_control 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. The devices crypto engine supports per-station gtks as used by ibss rsn or during fast transition. If the device doesnt support per-station gtks, but can be asked not to decrypt group online addressed frames, then ibss rsn support is still possible but software crypto will be used. Advertise the wiphy flag only in that case.
Ieee80211_HW_supports_ps hardware has power save support (i.e. Can go to sleep). Ieee80211_HW_PS_nullfunc_stack hardware requires nullfunc frame handling in stack, implies stack support for dynamic. hardware has support for dynamic. Ieee80211_HW_MFP_capable hardware supports management frame protection (mfp, ieee 802.11w). Ieee80211_HW_want_monitor_vif the driver would like to be informed of a virtual monitor interface when monitor interfaces are the only active interfaces. Ieee80211_HW_NO_auto_vif 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). Ieee80211_HW_SW_crypto_control the driver wants to control which of the crypto algorithms can be done in software - so dont automatically try to fall back to it if hardware crypto fails, but do so only if the driver returns.
"Cisco wlc 2500" (9)
Note that this requires that the driver implement a number of callbacks so it has the correct information, it needs to have the set_rts_threshold callback and must look at the bss config use_cts_prot for G/N protection, use_short_slot for slot timing.4 ghz and use_short_preamble. Ieee80211_HW_RX_includes_fcs indicates that received frames passed to the stack include the fcs at the end. 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 ieee80211_get_buffered_bc. Ieee80211_HW_signal_unspec hardware can provide signal values but we dont know its units.
We expect values between 0 and max_signal. If possible please provide dB or dBm instead. Ieee80211_HW_signal_dbm hardware gives signal values in dBm, decibel difference from one milliwatt. This is the preferred method since it is standardized between different devices. Max_signal does not need to be set. This device needs to get data karl from beacon before association (i.e. Ieee80211_HW_spectrum_mgmt hardware supports spectrum management defined in 802.11h measurement, Channel Switch, quieting, tpc ieee80211_HW_ampdu_aggregation hardware supports 11n a-mpdu aggregation.
Use to set this bitmap. Each bit corresponds to different. Value 1 in specific bit means that corresponding ac is both trigger- and delivery-enabled. 0 means neither enabled. Uapsd_max_sp_len maximum number of total buffered frames the wmm ap may deliver to a wmm sta during any service period triggered by the wmm sta. Use for correct values.
N_cipher_schemes a size of an array of cipher schemes definitions. Cipher_schemes a pointer to an array of cipher scheme definitions supported. Max_nan_de_entries maximum number of nan de functions supported by the device. Description This structure contains the configuration and hardware information for an 802.11 phy. Enum ieee80211_hw_flags hardware flags Constants ieee80211_HW_HAS_rate_control 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.
Revolution wi-fi: Determining ap transmit
Radiotap_vht_details lists which vht mcs information the hw reports, the default is _gi _bandwidth. Use the ieee80211_radiotap_VHT_known values. Radiotap_timestamp Information for the radiotap timestamp field; if the units_pos member is set to father's a non-negative value it must be set to a combination of a and a value, and then the timestamp field will be added and populated from the struct ieee80211_rx_status device_timestamp. If the accuracy member is non-negative, its put into the accuracy radiotap field and the accuracy known flag is set. Netdev_features netdev features to be set in each netdev created from this. Note that not all features are usable with mac80211, other features will be rejected during hw registration. Uapsd_queues This apple bitmap is included in (re)association frame to indicate for each access category if it is uapsd trigger-enabled and delivery- enabled.
Max_listen_interval max listen interval in paralegal units of beacon interval that hw supports max_signal Maximum value for signal (rssi) in rx information, used only when ieee80211_HW_signal_unspec or ieee80211_HW_signal_DB max_rates maximum number of alternate rate retry stages the hw can handle. Max_report_rates maximum number of alternate rate retry stages the hw can report back. Max_rate_tries maximum number of tries for each stage max_rx_aggregation_subframes maximum buffer size (number of sub-frames) to be used for a-mpdu block ack receiver aggregation. This is only relevant if the device has restrictions on the number of subframes, if it relies on mac80211 to do reordering it shouldnt be set. Max_tx_aggregation_subframes maximum number of subframes in an aggregate an ht driver will transmit. Though addba will advertise a constant value of 64 as some older APs can crash if the window size is smaller (an example is LinkSys wrt120N with.0.07 build 002 Jun 18 2012). Max_tx_fragments maximum number of tx buffers per (A)-msdu, sum of 1 skb_shinfo(skb)- nr_frags for each skb in the frag_list. Offchannel_tx_hw_queue hw queue id to use for offchannel tx (if ieee80211_HW_queue_control is set) radiotap_mcs_details lists which mcs information can the hw reports, by default it is set to _mcs, _gi and _BW but doesnt include _FMT. Use ieee80211_radiotap_MCS_have values, only adding _bw is supported today.
ies. Vif_data_size size (in bytes) of the drv_priv data area within struct ieee80211_vif. Sta_data_size size (in bytes) of the drv_priv data area within struct ieee80211_sta. Chanctx_data_size size (in bytes) of the drv_priv data area within struct ieee80211_chanctx_conf. Txq_data_size size (in bytes) of the drv_priv data area within struct ieee80211_txq. Queues number of available hardware transmit queues for data packets. Wmm/qos requires at least four, these queues need to have configurable access parameters.
This points to the struct wiphy allocated for this 802.11 phy. You must fill in the perm_addr and dev members of this structure using, sET_ieee80211_dev and, sET_ieee80211_perm_addr. Additionally, all supported bands (with channels, bitrates) are registered here. Rate_control_algorithm rate control algorithm for this hardware. If unset (null the default algorithm will be used. Must be set before calling ieee80211_register_hw. Priv essay pointer to private area that was allocated for driver use along with this structure.
Complaint about coverage of wlan in Specific Area - uniNets Blog
You should read and understand the guaranteed information contained within this part of the book while implementing a mac80211 driver. In some chapters, advanced usage is noted, those may be skipped if this isnt needed. This part of the book only covers station and monitor mode functionality, additional information required to implement the other modes is covered in the second part of the book. Basic hardware handling, tbd, this chapter shall contain information on getting a hw struct allocated and registered with mac80211. Since it is required to allocate rates/modes before registering a hw struct, this chapter shall also contain information on setting up the rate/mode structs. Additionally, some discussion about the callbacks and the general programming model should be in here, including the definition of ieee80211_ops which will be referred to a lot. Finally, a discussion of hardware capabilities should be done with references to other parts of the book. Struct ieee80211_hw hardware information and state, definition struct ieee80211_hw struct ieee80211_conf conf; struct wiphy *wiphy; const char *rate_control_algorithm; void *priv; unsigned long unsigned int extra_tx_headroom; unsigned int extra_beacon_tailroom; int vif_data_size; int sta_data_size; int chanctx_data_size; int txq_data_size; u16 queues; u16 max_listen_interval; s8 max_signal; u8 max_rates;.