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 offchannel_tx_hw_queue;
30 u8 radiotap_mcs_details;
31 u16 radiotap_vht_details;
32 netdev_features_t netdev_features;
33 u8 uapsd_queues;
34 u8 uapsd_max_sp_len;
35 u8 n_cipher_schemes;
36 const struct ieee80211_cipher_scheme * cipher_schemes;
37 int txq_ac_max_pending;
38 };
39
41 conf
42
43 struct ieee80211_conf, device configuration, don´t use.
44
45 wiphy
46 This points to the struct wiphy allocated for this 802.11 PHY. You
47 must fill in the perm_addr and dev members of this structure using
48 SET_IEEE80211_DEV and SET_IEEE80211_PERM_ADDR. Additionally, all
49 supported bands (with channels, bitrates) are registered here.
50
51 rate_control_algorithm
52 rate control algorithm for this hardware. If unset (NULL), the
53 default algorithm will be used. Must be set before calling
54 ieee80211_register_hw.
55
56 priv
57 pointer to private area that was allocated for driver use along
58 with this structure.
59
60 flags[BITS_TO_LONGS(NUM_IEEE80211_HW_FLAGS)]
61 hardware flags, see enum ieee80211_hw_flags.
62
63 extra_tx_headroom
64 headroom to reserve in each transmit skb for use by the driver
65 (e.g. for transmit headers.)
66
67 extra_beacon_tailroom
68 tailroom to reserve in each beacon tx skb. Can be used by drivers
69 to add extra IEs.
70
71 vif_data_size
72 size (in bytes) of the drv_priv data area within struct
73 ieee80211_vif.
74
75 sta_data_size
76 size (in bytes) of the drv_priv data area within struct
77 ieee80211_sta.
78
79 chanctx_data_size
80 size (in bytes) of the drv_priv data area within struct
81 ieee80211_chanctx_conf.
82
83 txq_data_size
84 size (in bytes) of the drv_priv data area within struct
85 ieee80211_txq.
86
87 queues
88 number of available hardware transmit queues for data packets.
89 WMM/QoS requires at least four, these queues need to have
90 configurable access parameters.
91
92 max_listen_interval
93 max listen interval in units of beacon interval that HW supports
94
95 max_signal
96 Maximum value for signal (rssi) in RX information, used only when
97 IEEE80211_HW_SIGNAL_UNSPEC or IEEE80211_HW_SIGNAL_DB
98
99 max_rates
100 maximum number of alternate rate retry stages the hw can handle.
101
102 max_report_rates
103 maximum number of alternate rate retry stages the hw can report
104 back.
105
106 max_rate_tries
107 maximum number of tries for each stage
108
109 max_rx_aggregation_subframes
110 maximum buffer size (number of sub-frames) to be used for A-MPDU
111 block ack receiver aggregation. This is only relevant if the device
112 has restrictions on the number of subframes, if it relies on
113 mac80211 to do reordering it shouldn´t be set.
114
115 max_tx_aggregation_subframes
116 maximum number of subframes in an aggregate an HT driver will
117 transmit, used by the peer as a hint to size its reorder buffer.
118
119 offchannel_tx_hw_queue
120 HW queue ID to use for offchannel TX (if IEEE80211_HW_QUEUE_CONTROL
121 is set)
122
123 radiotap_mcs_details
124 lists which MCS information can the HW reports, by default it is
125 set to _MCS, _GI and _BW but doesn´t include _FMT. Use
126 IEEE80211_RADIOTAP_MCS_HAVE_* values, only adding _BW is supported
127 today.
128
129 radiotap_vht_details
130 lists which VHT MCS information the HW reports, the default is _GI
131 | _BANDWIDTH. Use the IEEE80211_RADIOTAP_VHT_KNOWN_* values.
132
133 netdev_features
134 netdev features to be set in each netdev created from this HW. Note
135 that not all features are usable with mac80211, other features will
136 be rejected during HW registration.
137
138 uapsd_queues
139 This bitmap is included in (re)association frame to indicate for
140 each access category if it is uAPSD trigger-enabled and delivery-
141 enabled. Use IEEE80211_WMM_IE_STA_QOSINFO_AC_* to set this bitmap.
142 Each bit corresponds to different AC. Value ´1´ in specific bit
143 means that corresponding AC is both trigger- and delivery-enabled.
144 ´0´ means neither enabled.
145
146 uapsd_max_sp_len
147 maximum number of total buffered frames the WMM AP may deliver to a
148 WMM STA during any Service Period triggered by the WMM STA. Use
149 IEEE80211_WMM_IE_STA_QOSINFO_SP_* for correct values.
150
151 n_cipher_schemes
152 a size of an array of cipher schemes definitions.
153
154 cipher_schemes
155 a pointer to an array of cipher scheme definitions supported by HW.
156
157 txq_ac_max_pending
158 maximum number of frames per AC pending in all txq entries for a
159 vif.
160
162 This structure contains the configuration and hardware information for
163 an 802.11 PHY.
164
166 Johannes Berg <johannes@sipsolutions.net>
167 Author.
168
170Kernel Hackers Manual 2.6. June 2019 STRUCT IEEE80211_HW(9)