1STRUCT IEEE80211_HW(9) The basic mac80211 driver inte STRUCT IEEE80211_HW(9)
2
3
4
6 struct_ieee80211_hw - hardware information and state
7
9 struct ieee80211_hw {
10 struct ieee80211_conf conf;
11 struct wiphy * wiphy;
12 const char * rate_control_algorithm;
13 void * priv;
14 unsigned long flags[BITS_TO_LONGS(NUM_IEEE80211_HW_FLAGS)];
15 unsigned int extra_tx_headroom;
16 unsigned int extra_beacon_tailroom;
17 int vif_data_size;
18 int sta_data_size;
19 int chanctx_data_size;
20 int txq_data_size;
21 u16 queues;
22 u16 max_listen_interval;
23 s8 max_signal;
24 u8 max_rates;
25 u8 max_report_rates;
26 u8 max_rate_tries;
27 u8 max_rx_aggregation_subframes;
28 u8 max_tx_aggregation_subframes;
29 u8 max_tx_fragments;
30 u8 offchannel_tx_hw_queue;
31 u8 radiotap_mcs_details;
32 u16 radiotap_vht_details;
33 struct radiotap_timestamp;
34 netdev_features_t netdev_features;
35 u8 uapsd_queues;
36 u8 uapsd_max_sp_len;
37 u8 n_cipher_schemes;
38 const struct ieee80211_cipher_scheme * cipher_schemes;
39 u8 max_nan_de_entries;
40 };
41
43 conf
44 struct ieee80211_conf, device configuration, don't use.
45
46 wiphy
47 This points to the struct wiphy allocated for this 802.11 PHY. You
48 must fill in the perm_addr and dev members of this structure using
49 SET_IEEE80211_DEV and SET_IEEE80211_PERM_ADDR. Additionally, all
50 supported bands (with channels, bitrates) are registered here.
51
52 rate_control_algorithm
53 rate control algorithm for this hardware. If unset (NULL), the
54 default algorithm will be used. Must be set before calling
55 ieee80211_register_hw.
56
57 priv
58 pointer to private area that was allocated for driver use along
59 with this structure.
60
61 flags[BITS_TO_LONGS(NUM_IEEE80211_HW_FLAGS)]
62 hardware flags, see enum ieee80211_hw_flags.
63
64 extra_tx_headroom
65 headroom to reserve in each transmit skb for use by the driver
66 (e.g. for transmit headers.)
67
68 extra_beacon_tailroom
69 tailroom to reserve in each beacon tx skb. Can be used by drivers
70 to add extra IEs.
71
72 vif_data_size
73 size (in bytes) of the drv_priv data area within struct
74 ieee80211_vif.
75
76 sta_data_size
77 size (in bytes) of the drv_priv data area within struct
78 ieee80211_sta.
79
80 chanctx_data_size
81 size (in bytes) of the drv_priv data area within struct
82 ieee80211_chanctx_conf.
83
84 txq_data_size
85 size (in bytes) of the drv_priv data area within struct
86 ieee80211_txq.
87
88 queues
89 number of available hardware transmit queues for data packets.
90 WMM/QoS requires at least four, these queues need to have
91 configurable access parameters.
92
93 max_listen_interval
94 max listen interval in units of beacon interval that HW supports
95
96 max_signal
97 Maximum value for signal (rssi) in RX information, used only when
98 IEEE80211_HW_SIGNAL_UNSPEC or IEEE80211_HW_SIGNAL_DB
99
100 max_rates
101 maximum number of alternate rate retry stages the hw can handle.
102
103 max_report_rates
104 maximum number of alternate rate retry stages the hw can report
105 back.
106
107 max_rate_tries
108 maximum number of tries for each stage
109
110 max_rx_aggregation_subframes
111 maximum buffer size (number of sub-frames) to be used for A-MPDU
112 block ack receiver aggregation. This is only relevant if the device
113 has restrictions on the number of subframes, if it relies on
114 mac80211 to do reordering it shouldn't be set.
115
116 max_tx_aggregation_subframes
117 maximum number of subframes in an aggregate an HT driver will
118 transmit. Though ADDBA will advertise a constant value of 64 as
119 some older APs can crash if the window size is smaller (an example
120 is LinkSys WRT120N with FW v1.0.07 build 002 Jun 18 2012).
121
122 max_tx_fragments
123 maximum number of tx buffers per (A)-MSDU, sum of 1 +
124 skb_shinfo(skb)->nr_frags for each skb in the frag_list.
125
126 offchannel_tx_hw_queue
127 HW queue ID to use for offchannel TX (if IEEE80211_HW_QUEUE_CONTROL
128 is set)
129
130 radiotap_mcs_details
131 lists which MCS information can the HW reports, by default it is
132 set to _MCS, _GI and _BW but doesn't include _FMT. Use
133 IEEE80211_RADIOTAP_MCS_HAVE_\* values, only adding _BW is supported
134 today.
135
136 radiotap_vht_details
137 lists which VHT MCS information the HW reports, the default is _GI
138 | _BANDWIDTH. Use the IEEE80211_RADIOTAP_VHT_KNOWN_\* values.
139
140 radiotap_timestamp
141 Information for the radiotap timestamp field; if the 'units_pos'
142 member is set to a non-negative value it must be set to a
143 combination of a IEEE80211_RADIOTAP_TIMESTAMP_UNIT_* and a
144 IEEE80211_RADIOTAP_TIMESTAMP_SPOS_* value, and then the timestamp
145 field will be added and populated from the struct
146 ieee80211_rx_status device_timestamp. If the 'accuracy' member is
147 non-negative, it's put into the accuracy radiotap field and the
148 accuracy known flag is set.
149
150 netdev_features
151 netdev features to be set in each netdev created from this HW. Note
152 that not all features are usable with mac80211, other features will
153 be rejected during HW registration.
154
155 uapsd_queues
156 This bitmap is included in (re)association frame to indicate for
157 each access category if it is uAPSD trigger-enabled and delivery-
158 enabled. Use IEEE80211_WMM_IE_STA_QOSINFO_AC_* to set this bitmap.
159 Each bit corresponds to different AC. Value '1' in specific bit
160 means that corresponding AC is both trigger- and delivery-enabled.
161 '0' means neither enabled.
162
163 uapsd_max_sp_len
164 maximum number of total buffered frames the WMM AP may deliver to a
165 WMM STA during any Service Period triggered by the WMM STA. Use
166 IEEE80211_WMM_IE_STA_QOSINFO_SP_* for correct values.
167
168 n_cipher_schemes
169 a size of an array of cipher schemes definitions.
170
171 cipher_schemes
172 a pointer to an array of cipher scheme definitions supported by HW.
173
174 max_nan_de_entries
175 maximum number of NAN DE functions supported by the device.
176
178 This structure contains the configuration and hardware information for
179 an 802.11 PHY.
180
182 Johannes Berg <johannes@sipsolutions.net>
183 Author.
184
186Kernel Hackers Manual 3.10 June 2019 STRUCT IEEE80211_HW(9)