iw: add support for the new survey data
[openwrt.git] / package / iw / patches / 001-nl80211_sync.patch
1 --- a/nl80211.h
2 +++ b/nl80211.h
3 @@ -295,7 +295,9 @@
4   *     auth and assoc steps. For this, you need to specify the SSID in a
5   *     %NL80211_ATTR_SSID attribute, and can optionally specify the association
6   *     IEs in %NL80211_ATTR_IE, %NL80211_ATTR_AUTH_TYPE, %NL80211_ATTR_MAC,
7 - *     %NL80211_ATTR_WIPHY_FREQ and %NL80211_ATTR_CONTROL_PORT.
8 + *     %NL80211_ATTR_WIPHY_FREQ, %NL80211_ATTR_CONTROL_PORT,
9 + *     %NL80211_ATTR_CONTROL_PORT_ETHERTYPE and
10 + *     %NL80211_ATTR_CONTROL_PORT_NO_ENCRYPT.
11   *     It is also sent as an event, with the BSSID and response IEs when the
12   *     connection is established or failed to be established. This can be
13   *     determined by the STATUS_CODE attribute.
14 @@ -313,8 +315,8 @@
15   *     channel for the specified amount of time. This can be used to do
16   *     off-channel operations like transmit a Public Action frame and wait for
17   *     a response while being associated to an AP on another channel.
18 - *     %NL80211_ATTR_WIPHY or %NL80211_ATTR_IFINDEX is used to specify which
19 - *     radio is used. %NL80211_ATTR_WIPHY_FREQ is used to specify the
20 + *     %NL80211_ATTR_IFINDEX is used to specify which interface (and thus
21 + *     radio) is used. %NL80211_ATTR_WIPHY_FREQ is used to specify the
22   *     frequency for the operation and %NL80211_ATTR_WIPHY_CHANNEL_TYPE may be
23   *     optionally used to specify additional channel parameters.
24   *     %NL80211_ATTR_DURATION is used to specify the duration in milliseconds
25 @@ -385,6 +387,8 @@
26   *     of any other interfaces, and other interfaces will again take
27   *     precedence when they are used.
28   *
29 + * @NL80211_CMD_SET_WDS_PEER: Set the MAC address of the peer on a WDS interface.
30 + *
31   * @NL80211_CMD_MAX: highest used command number
32   * @__NL80211_CMD_AFTER_LAST: internal use
33   */
34 @@ -487,6 +491,7 @@ enum nl80211_commands {
35         NL80211_CMD_NOTIFY_CQM,
36  
37         NL80211_CMD_SET_CHANNEL,
38 +       NL80211_CMD_SET_WDS_PEER,
39  
40         /* add new commands above here */
41  
42 @@ -686,6 +691,15 @@ enum nl80211_commands {
43   *     request, the driver will assume that the port is unauthorized until
44   *     authorized by user space. Otherwise, port is marked authorized by
45   *     default in station mode.
46 + * @NL80211_ATTR_CONTROL_PORT_ETHERTYPE: A 16-bit value indicating the
47 + *     ethertype that will be used for key negotiation. It can be
48 + *     specified with the associate and connect commands. If it is not
49 + *     specified, the value defaults to 0x888E (PAE, 802.1X). This
50 + *     attribute is also used as a flag in the wiphy information to
51 + *     indicate that protocols other than PAE are supported.
52 + * @NL80211_ATTR_CONTROL_PORT_NO_ENCRYPT: When included along with
53 + *     %NL80211_ATTR_CONTROL_PORT_ETHERTYPE, indicates that the custom
54 + *     ethertype frames used for key negotiation must not be encrypted.
55   *
56   * @NL80211_ATTR_TESTDATA: Testmode data blob, passed through to the driver.
57   *     We recommend using nested, driver-specific attributes within this.
58 @@ -787,6 +801,9 @@ enum nl80211_commands {
59   *      This is used in association with @NL80211_ATTR_WIPHY_TX_POWER_SETTING
60   *      for non-automatic settings.
61   *
62 + * @NL80211_ATTR_SUPPORT_IBSS_RSN: The device supports IBSS RSN, which mostly
63 + *     means support for per-station GTKs.
64 + *
65   * @NL80211_ATTR_MAX: highest attribute number currently defined
66   * @__NL80211_ATTR_AFTER_LAST: internal use
67   */
68 @@ -951,6 +968,11 @@ enum nl80211_attrs {
69         NL80211_ATTR_RX_FRAME_TYPES,
70         NL80211_ATTR_FRAME_TYPE,
71  
72 +       NL80211_ATTR_CONTROL_PORT_ETHERTYPE,
73 +       NL80211_ATTR_CONTROL_PORT_NO_ENCRYPT,
74 +
75 +       NL80211_ATTR_SUPPORT_IBSS_RSN,
76 +
77         /* add attributes here, update the policy in nl80211.c */
78  
79         __NL80211_ATTR_AFTER_LAST,
80 @@ -1006,6 +1028,8 @@ enum nl80211_attrs {
81   * @NL80211_IFTYPE_WDS: wireless distribution interface
82   * @NL80211_IFTYPE_MONITOR: monitor interface receiving all frames
83   * @NL80211_IFTYPE_MESH_POINT: mesh point
84 + * @NL80211_IFTYPE_P2P_CLIENT: P2P client
85 + * @NL80211_IFTYPE_P2P_GO: P2P group owner
86   * @NL80211_IFTYPE_MAX: highest interface type number currently defined
87   * @NUM_NL80211_IFTYPES: number of defined interface types
88   *
89 @@ -1022,6 +1046,8 @@ enum nl80211_iftype {
90         NL80211_IFTYPE_WDS,
91         NL80211_IFTYPE_MONITOR,
92         NL80211_IFTYPE_MESH_POINT,
93 +       NL80211_IFTYPE_P2P_CLIENT,
94 +       NL80211_IFTYPE_P2P_GO,
95  
96         /* keep last */
97         NUM_NL80211_IFTYPES,
98 @@ -1111,6 +1137,8 @@ enum nl80211_rate_info {
99   * @NL80211_STA_INFO_RX_PACKETS: total received packet (u32, from this station)
100   * @NL80211_STA_INFO_TX_PACKETS: total transmitted packets (u32, to this
101   *     station)
102 + * @NL80211_STA_INFO_TX_RETRIES: total retries (u32, to this station)
103 + * @NL80211_STA_INFO_TX_FAILED: total failed packets (u32, to this station)
104   */
105  enum nl80211_sta_info {
106         __NL80211_STA_INFO_INVALID,
107 @@ -1124,6 +1152,8 @@ enum nl80211_sta_info {
108         NL80211_STA_INFO_TX_BITRATE,
109         NL80211_STA_INFO_RX_PACKETS,
110         NL80211_STA_INFO_TX_PACKETS,
111 +       NL80211_STA_INFO_TX_RETRIES,
112 +       NL80211_STA_INFO_TX_FAILED,
113  
114         /* keep last */
115         __NL80211_STA_INFO_AFTER_LAST,
116 @@ -1382,6 +1412,17 @@ enum nl80211_reg_rule_flags {
117   * @__NL80211_SURVEY_INFO_INVALID: attribute number 0 is reserved
118   * @NL80211_SURVEY_INFO_FREQUENCY: center frequency of channel
119   * @NL80211_SURVEY_INFO_NOISE: noise level of channel (u8, dBm)
120 + * @NL80211_SURVEY_INFO_IN_USE: channel is currently being used
121 + * @NL80211_SURVEY_INFO_CHANNEL_TIME: amount of time (in ms) that the radio
122 + *     spent on this channel
123 + * @NL80211_SURVEY_INFO_CHANNEL_TIME_BUSY: amount of the time the primary
124 + *     channel was sensed busy (either due to activity or energy detect)
125 + * @NL80211_SURVEY_INFO_CHANNEL_TIME_EXT_BUSY: amount of time the extension
126 + *     channel was sensed busy
127 + * @NL80211_SURVEY_INFO_CHANNEL_TIME_RX: amount of time the radio spent
128 + *     receiving data
129 + * @NL80211_SURVEY_INFO_CHANNEL_TIME_TX: amount of time the radio spent
130 + *     transmitting data
131   * @NL80211_SURVEY_INFO_MAX: highest survey info attribute number
132   *     currently defined
133   * @__NL80211_SURVEY_INFO_AFTER_LAST: internal use
134 @@ -1390,6 +1431,12 @@ enum nl80211_survey_info {
135         __NL80211_SURVEY_INFO_INVALID,
136         NL80211_SURVEY_INFO_FREQUENCY,
137         NL80211_SURVEY_INFO_NOISE,
138 +       NL80211_SURVEY_INFO_IN_USE,
139 +       NL80211_SURVEY_INFO_CHANNEL_TIME,
140 +       NL80211_SURVEY_INFO_CHANNEL_TIME_BUSY,
141 +       NL80211_SURVEY_INFO_CHANNEL_TIME_EXT_BUSY,
142 +       NL80211_SURVEY_INFO_CHANNEL_TIME_RX,
143 +       NL80211_SURVEY_INFO_CHANNEL_TIME_TX,
144  
145         /* keep last */
146         __NL80211_SURVEY_INFO_AFTER_LAST,
147 @@ -1636,11 +1683,14 @@ enum nl80211_auth_type {
148   * @NL80211_KEYTYPE_GROUP: Group (broadcast/multicast) key
149   * @NL80211_KEYTYPE_PAIRWISE: Pairwise (unicast/individual) key
150   * @NL80211_KEYTYPE_PEERKEY: PeerKey (DLS)
151 + * @NUM_NL80211_KEYTYPES: number of defined key types
152   */
153  enum nl80211_key_type {
154         NL80211_KEYTYPE_GROUP,
155         NL80211_KEYTYPE_PAIRWISE,
156         NL80211_KEYTYPE_PEERKEY,
157 +
158 +       NUM_NL80211_KEYTYPES
159  };
160  
161  /**
162 @@ -1671,6 +1721,9 @@ enum nl80211_wpa_versions {
163   *     CCMP keys, each six bytes in little endian
164   * @NL80211_KEY_DEFAULT: flag indicating default key
165   * @NL80211_KEY_DEFAULT_MGMT: flag indicating default management key
166 + * @NL80211_KEY_TYPE: the key type from enum nl80211_key_type, if not
167 + *     specified the default depends on whether a MAC address was
168 + *     given with the command using the key or not (u32)
169   * @__NL80211_KEY_AFTER_LAST: internal
170   * @NL80211_KEY_MAX: highest key attribute
171   */
172 @@ -1682,6 +1735,7 @@ enum nl80211_key_attributes {
173         NL80211_KEY_SEQ,
174         NL80211_KEY_DEFAULT,
175         NL80211_KEY_DEFAULT_MGMT,
176 +       NL80211_KEY_TYPE,
177  
178         /* keep last */
179         __NL80211_KEY_AFTER_LAST,