blob: e74fef49ab4eba5583f06a67314241fea03502ab [file] [log] [blame]
Wade Guthrie16196242012-11-20 15:53:52 -08001// Copyright (c) 2012 The Chromium OS Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
Wade Guthrief162f8b2013-02-27 14:13:55 -08005#ifndef SHILL_NL80211_ATTRIBUTE_H_
6#define SHILL_NL80211_ATTRIBUTE_H_
Wade Guthrie16196242012-11-20 15:53:52 -08007
Wade Guthrie8343f7f2012-12-04 13:52:32 -08008#include <netlink/attr.h>
Wade Guthrie16196242012-11-20 15:53:52 -08009
Wade Guthrie89e6cb32013-03-07 08:03:45 -080010#include <base/basictypes.h>
11
Wade Guthrief162f8b2013-02-27 14:13:55 -080012#include "shill/netlink_attribute.h"
Wade Guthrie16196242012-11-20 15:53:52 -080013
14struct nlattr;
15
16namespace shill {
17
Wade Guthrie25cdb382012-12-04 14:04:05 -080018// U8.
Wade Guthrie16196242012-11-20 15:53:52 -080019
Wade Guthrie68da97c2013-02-26 13:09:35 -080020class Nl80211AttributeKeyIdx : public NetlinkU8Attribute {
Wade Guthrie25cdb382012-12-04 14:04:05 -080021 public:
Wade Guthrie68da97c2013-02-26 13:09:35 -080022 static const int kName;
Wade Guthrie25cdb382012-12-04 14:04:05 -080023 static const char kNameString[];
Wade Guthrie68da97c2013-02-26 13:09:35 -080024 Nl80211AttributeKeyIdx() : NetlinkU8Attribute(kName, kNameString) {}
Wade Guthrie89e6cb32013-03-07 08:03:45 -080025
26 private:
27 DISALLOW_COPY_AND_ASSIGN(Nl80211AttributeKeyIdx);
Wade Guthrie25cdb382012-12-04 14:04:05 -080028};
29
Wade Guthrie1f355e82013-04-11 15:46:12 -070030class Nl80211AttributeMaxMatchSets : public NetlinkU8Attribute {
31 public:
32 static const int kName;
33 static const char kNameString[];
34 Nl80211AttributeMaxMatchSets() : NetlinkU8Attribute(kName, kNameString) {}
35
36 private:
37 DISALLOW_COPY_AND_ASSIGN(Nl80211AttributeMaxMatchSets);
38};
39
40class Nl80211AttributeMaxNumPmkids : public NetlinkU8Attribute {
41 public:
42 static const int kName;
43 static const char kNameString[];
44 Nl80211AttributeMaxNumPmkids() : NetlinkU8Attribute(kName, kNameString) {}
45
46 private:
47 DISALLOW_COPY_AND_ASSIGN(Nl80211AttributeMaxNumPmkids);
48};
49
50class Nl80211AttributeMaxNumScanSsids : public NetlinkU8Attribute {
51 public:
52 static const int kName;
53 static const char kNameString[];
54 Nl80211AttributeMaxNumScanSsids() : NetlinkU8Attribute(kName, kNameString) {}
55
56 private:
57 DISALLOW_COPY_AND_ASSIGN(Nl80211AttributeMaxNumScanSsids);
58};
59
60class Nl80211AttributeMaxNumSchedScanSsids : public NetlinkU8Attribute {
61 public:
62 static const int kName;
63 static const char kNameString[];
64 Nl80211AttributeMaxNumSchedScanSsids()
65 : NetlinkU8Attribute(kName, kNameString) {}
66
67 private:
68 DISALLOW_COPY_AND_ASSIGN(Nl80211AttributeMaxNumSchedScanSsids);
69};
70
Wade Guthrie68da97c2013-02-26 13:09:35 -080071class Nl80211AttributeRegType : public NetlinkU8Attribute {
Wade Guthrie25cdb382012-12-04 14:04:05 -080072 public:
Wade Guthrie68da97c2013-02-26 13:09:35 -080073 static const int kName;
Wade Guthrie25cdb382012-12-04 14:04:05 -080074 static const char kNameString[];
Wade Guthrie68da97c2013-02-26 13:09:35 -080075 Nl80211AttributeRegType() : NetlinkU8Attribute(kName, kNameString) {}
Wade Guthrie89e6cb32013-03-07 08:03:45 -080076
77 private:
78 DISALLOW_COPY_AND_ASSIGN(Nl80211AttributeRegType);
Wade Guthrie25cdb382012-12-04 14:04:05 -080079};
80
Wade Guthrie1f355e82013-04-11 15:46:12 -070081class Nl80211AttributeWiphyCoverageClass : public NetlinkU8Attribute {
82 public:
83 static const int kName;
84 static const char kNameString[];
85 Nl80211AttributeWiphyCoverageClass()
86 : NetlinkU8Attribute(kName, kNameString) {}
87
88 private:
89 DISALLOW_COPY_AND_ASSIGN(Nl80211AttributeWiphyCoverageClass);
90};
91
92class Nl80211AttributeWiphyRetryLong : public NetlinkU8Attribute {
93 public:
94 static const int kName;
95 static const char kNameString[];
96 Nl80211AttributeWiphyRetryLong() : NetlinkU8Attribute(kName, kNameString) {}
97
98 private:
99 DISALLOW_COPY_AND_ASSIGN(Nl80211AttributeWiphyRetryLong);
100};
101
102class Nl80211AttributeWiphyRetryShort : public NetlinkU8Attribute {
103 public:
104 static const int kName;
105 static const char kNameString[];
106 Nl80211AttributeWiphyRetryShort() : NetlinkU8Attribute(kName, kNameString) {}
107
108 private:
109 DISALLOW_COPY_AND_ASSIGN(Nl80211AttributeWiphyRetryShort);
110};
111
Wade Guthrie25cdb382012-12-04 14:04:05 -0800112// U16.
113
Wade Guthrie1f355e82013-04-11 15:46:12 -0700114class Nl80211AttributeMaxScanIeLen : public NetlinkU16Attribute {
115 public:
116 static const int kName;
117 static const char kNameString[];
118 Nl80211AttributeMaxScanIeLen() : NetlinkU16Attribute(kName, kNameString) {}
119
120 private:
121 DISALLOW_COPY_AND_ASSIGN(Nl80211AttributeMaxScanIeLen);
122};
123
124class Nl80211AttributeMaxSchedScanIeLen : public NetlinkU16Attribute {
125 public:
126 static const int kName;
127 static const char kNameString[];
128 Nl80211AttributeMaxSchedScanIeLen()
129 : NetlinkU16Attribute(kName, kNameString) {}
130
131 private:
132 DISALLOW_COPY_AND_ASSIGN(Nl80211AttributeMaxSchedScanIeLen);
133};
134
Wade Guthrie68da97c2013-02-26 13:09:35 -0800135class Nl80211AttributeReasonCode : public NetlinkU16Attribute {
Wade Guthrie25cdb382012-12-04 14:04:05 -0800136 public:
Wade Guthrie68da97c2013-02-26 13:09:35 -0800137 static const int kName;
Wade Guthrie25cdb382012-12-04 14:04:05 -0800138 static const char kNameString[];
Wade Guthrie68da97c2013-02-26 13:09:35 -0800139 Nl80211AttributeReasonCode() : NetlinkU16Attribute(kName, kNameString) {}
Wade Guthrie89e6cb32013-03-07 08:03:45 -0800140
141 private:
142 DISALLOW_COPY_AND_ASSIGN(Nl80211AttributeReasonCode);
Wade Guthrie25cdb382012-12-04 14:04:05 -0800143};
144
Wade Guthrie68da97c2013-02-26 13:09:35 -0800145class Nl80211AttributeStatusCode : public NetlinkU16Attribute {
Wade Guthrie25cdb382012-12-04 14:04:05 -0800146 public:
Wade Guthrie68da97c2013-02-26 13:09:35 -0800147 static const int kName;
Wade Guthrie25cdb382012-12-04 14:04:05 -0800148 static const char kNameString[];
Wade Guthrie68da97c2013-02-26 13:09:35 -0800149 Nl80211AttributeStatusCode() : NetlinkU16Attribute(kName, kNameString) {}
Wade Guthrie89e6cb32013-03-07 08:03:45 -0800150
151 private:
152 DISALLOW_COPY_AND_ASSIGN(Nl80211AttributeStatusCode);
Wade Guthrie25cdb382012-12-04 14:04:05 -0800153};
154
155// U32.
156
Wade Guthrie68da97c2013-02-26 13:09:35 -0800157class Nl80211AttributeDuration : public NetlinkU32Attribute {
Wade Guthrie25cdb382012-12-04 14:04:05 -0800158 public:
Wade Guthrie68da97c2013-02-26 13:09:35 -0800159 static const int kName;
Wade Guthrie25cdb382012-12-04 14:04:05 -0800160 static const char kNameString[];
Wade Guthrie68da97c2013-02-26 13:09:35 -0800161 Nl80211AttributeDuration() : NetlinkU32Attribute(kName, kNameString) {}
Wade Guthrie89e6cb32013-03-07 08:03:45 -0800162
163 private:
164 DISALLOW_COPY_AND_ASSIGN(Nl80211AttributeDuration);
Wade Guthrie25cdb382012-12-04 14:04:05 -0800165};
166
Wade Guthrie1f355e82013-04-11 15:46:12 -0700167class Nl80211AttributeDeviceApSme : public NetlinkU32Attribute {
168 public:
169 static const int kName;
170 static const char kNameString[];
171 Nl80211AttributeDeviceApSme() : NetlinkU32Attribute(kName, kNameString) {}
172
173 private:
174 DISALLOW_COPY_AND_ASSIGN(Nl80211AttributeDeviceApSme);
175};
176
177class Nl80211AttributeFeatureFlags : public NetlinkU32Attribute {
178 public:
179 static const int kName;
180 static const char kNameString[];
181 Nl80211AttributeFeatureFlags() : NetlinkU32Attribute(kName, kNameString) {}
182
183 private:
184 DISALLOW_COPY_AND_ASSIGN(Nl80211AttributeFeatureFlags);
185};
186
Wade Guthrie68da97c2013-02-26 13:09:35 -0800187class Nl80211AttributeGeneration : public NetlinkU32Attribute {
Wade Guthrie25cdb382012-12-04 14:04:05 -0800188 public:
Wade Guthrie68da97c2013-02-26 13:09:35 -0800189 static const int kName;
Wade Guthrie25cdb382012-12-04 14:04:05 -0800190 static const char kNameString[];
Wade Guthrie68da97c2013-02-26 13:09:35 -0800191 Nl80211AttributeGeneration() : NetlinkU32Attribute(kName, kNameString) {}
Wade Guthrie89e6cb32013-03-07 08:03:45 -0800192
193 private:
194 DISALLOW_COPY_AND_ASSIGN(Nl80211AttributeGeneration);
Wade Guthrie25cdb382012-12-04 14:04:05 -0800195};
196
Wade Guthrie68da97c2013-02-26 13:09:35 -0800197class Nl80211AttributeIfindex : public NetlinkU32Attribute {
Wade Guthrie25cdb382012-12-04 14:04:05 -0800198 public:
Wade Guthrie68da97c2013-02-26 13:09:35 -0800199 static const int kName;
Wade Guthrie25cdb382012-12-04 14:04:05 -0800200 static const char kNameString[];
Wade Guthrie68da97c2013-02-26 13:09:35 -0800201 Nl80211AttributeIfindex() : NetlinkU32Attribute(kName, kNameString) {}
Wade Guthrie89e6cb32013-03-07 08:03:45 -0800202
203 private:
204 DISALLOW_COPY_AND_ASSIGN(Nl80211AttributeIfindex);
Wade Guthrie25cdb382012-12-04 14:04:05 -0800205};
206
Paul Stewart2ddf2c62013-04-16 09:47:34 -0700207class Nl80211AttributeIftype : public NetlinkU32Attribute {
208 public:
209 static const int kName;
210 static const char kNameString[];
211 Nl80211AttributeIftype() : NetlinkU32Attribute(kName, kNameString) {}
212
213 private:
214 DISALLOW_COPY_AND_ASSIGN(Nl80211AttributeIftype);
215};
216
Wade Guthrie68da97c2013-02-26 13:09:35 -0800217class Nl80211AttributeKeyType : public NetlinkU32Attribute {
Wade Guthrie25cdb382012-12-04 14:04:05 -0800218 public:
Wade Guthrie68da97c2013-02-26 13:09:35 -0800219 static const int kName;
Wade Guthrie25cdb382012-12-04 14:04:05 -0800220 static const char kNameString[];
Wade Guthrie68da97c2013-02-26 13:09:35 -0800221 Nl80211AttributeKeyType() : NetlinkU32Attribute(kName, kNameString) {}
Wade Guthrie89e6cb32013-03-07 08:03:45 -0800222
223 private:
224 DISALLOW_COPY_AND_ASSIGN(Nl80211AttributeKeyType);
Wade Guthrie25cdb382012-12-04 14:04:05 -0800225};
226
Wade Guthrie1f355e82013-04-11 15:46:12 -0700227class Nl80211AttributeMaxRemainOnChannelDuration : public NetlinkU32Attribute {
228 public:
229 static const int kName;
230 static const char kNameString[];
231 Nl80211AttributeMaxRemainOnChannelDuration()
232 : NetlinkU32Attribute(kName, kNameString) {}
233
234 private:
235 DISALLOW_COPY_AND_ASSIGN(Nl80211AttributeMaxRemainOnChannelDuration);
236};
237
238class Nl80211AttributeProbeRespOffload : public NetlinkU32Attribute {
239 public:
240 static const int kName;
241 static const char kNameString[];
242 Nl80211AttributeProbeRespOffload()
243 : NetlinkU32Attribute(kName, kNameString) {}
244
245 private:
246 DISALLOW_COPY_AND_ASSIGN(Nl80211AttributeProbeRespOffload);
247};
248
Wade Guthrie68da97c2013-02-26 13:09:35 -0800249class Nl80211AttributeRegInitiator : public NetlinkU32Attribute {
Wade Guthrie25cdb382012-12-04 14:04:05 -0800250 public:
Wade Guthrie68da97c2013-02-26 13:09:35 -0800251 static const int kName;
Wade Guthrie25cdb382012-12-04 14:04:05 -0800252 static const char kNameString[];
Wade Guthrie68da97c2013-02-26 13:09:35 -0800253 Nl80211AttributeRegInitiator() : NetlinkU32Attribute(kName, kNameString) {}
Wade Guthrie89e6cb32013-03-07 08:03:45 -0800254
255 private:
256 DISALLOW_COPY_AND_ASSIGN(Nl80211AttributeRegInitiator);
Wade Guthrie25cdb382012-12-04 14:04:05 -0800257};
258
Wade Guthrie68da97c2013-02-26 13:09:35 -0800259class Nl80211AttributeWiphy : public NetlinkU32Attribute {
Wade Guthrie25cdb382012-12-04 14:04:05 -0800260 public:
Wade Guthrie68da97c2013-02-26 13:09:35 -0800261 static const int kName;
Wade Guthrie25cdb382012-12-04 14:04:05 -0800262 static const char kNameString[];
Wade Guthrie68da97c2013-02-26 13:09:35 -0800263 Nl80211AttributeWiphy() : NetlinkU32Attribute(kName, kNameString) {}
Wade Guthrie89e6cb32013-03-07 08:03:45 -0800264
265 private:
266 DISALLOW_COPY_AND_ASSIGN(Nl80211AttributeWiphy);
Wade Guthrie25cdb382012-12-04 14:04:05 -0800267};
268
Wade Guthrie1f355e82013-04-11 15:46:12 -0700269class Nl80211AttributeWiphyAntennaAvailRx : public NetlinkU32Attribute {
270 public:
271 static const int kName;
272 static const char kNameString[];
273 Nl80211AttributeWiphyAntennaAvailRx()
274 : NetlinkU32Attribute(kName, kNameString) {}
275
276 private:
277 DISALLOW_COPY_AND_ASSIGN(Nl80211AttributeWiphyAntennaAvailRx);
278};
279
280class Nl80211AttributeWiphyAntennaAvailTx : public NetlinkU32Attribute {
281 public:
282 static const int kName;
283 static const char kNameString[];
284 Nl80211AttributeWiphyAntennaAvailTx()
285 : NetlinkU32Attribute(kName, kNameString) {}
286
287 private:
288 DISALLOW_COPY_AND_ASSIGN(Nl80211AttributeWiphyAntennaAvailTx);
289};
290
291class Nl80211AttributeWiphyAntennaRx : public NetlinkU32Attribute {
292 public:
293 static const int kName;
294 static const char kNameString[];
295 Nl80211AttributeWiphyAntennaRx() : NetlinkU32Attribute(kName, kNameString) {}
296
297 private:
298 DISALLOW_COPY_AND_ASSIGN(Nl80211AttributeWiphyAntennaRx);
299};
300
301class Nl80211AttributeWiphyAntennaTx : public NetlinkU32Attribute {
302 public:
303 static const int kName;
304 static const char kNameString[];
305 Nl80211AttributeWiphyAntennaTx() : NetlinkU32Attribute(kName, kNameString) {}
306
307 private:
308 DISALLOW_COPY_AND_ASSIGN(Nl80211AttributeWiphyAntennaTx);
309};
310
311class Nl80211AttributeWiphyFragThreshold : public NetlinkU32Attribute {
312 public:
313 static const int kName;
314 static const char kNameString[];
315 Nl80211AttributeWiphyFragThreshold()
316 : NetlinkU32Attribute(kName, kNameString) {}
317
318 private:
319 DISALLOW_COPY_AND_ASSIGN(Nl80211AttributeWiphyFragThreshold);
320};
321
Wade Guthrie68da97c2013-02-26 13:09:35 -0800322class Nl80211AttributeWiphyFreq : public NetlinkU32Attribute {
Wade Guthrie25cdb382012-12-04 14:04:05 -0800323 public:
Wade Guthrie68da97c2013-02-26 13:09:35 -0800324 static const int kName;
Wade Guthrie25cdb382012-12-04 14:04:05 -0800325 static const char kNameString[];
Wade Guthrie68da97c2013-02-26 13:09:35 -0800326 Nl80211AttributeWiphyFreq() : NetlinkU32Attribute(kName, kNameString) {}
Wade Guthrie89e6cb32013-03-07 08:03:45 -0800327
328 private:
329 DISALLOW_COPY_AND_ASSIGN(Nl80211AttributeWiphyFreq);
Wade Guthrie25cdb382012-12-04 14:04:05 -0800330};
331
Wade Guthrie1f355e82013-04-11 15:46:12 -0700332class Nl80211AttributeWiphyRtsThreshold : public NetlinkU32Attribute {
333 public:
334 static const int kName;
335 static const char kNameString[];
336 Nl80211AttributeWiphyRtsThreshold()
337 : NetlinkU32Attribute(kName, kNameString) {}
338
339 private:
340 DISALLOW_COPY_AND_ASSIGN(Nl80211AttributeWiphyRtsThreshold);
341};
342
Wade Guthrie25cdb382012-12-04 14:04:05 -0800343// U64.
344
Wade Guthrie68da97c2013-02-26 13:09:35 -0800345class Nl80211AttributeCookie : public NetlinkU64Attribute {
Wade Guthrie25cdb382012-12-04 14:04:05 -0800346 public:
Wade Guthrie68da97c2013-02-26 13:09:35 -0800347 static const int kName;
Wade Guthrie25cdb382012-12-04 14:04:05 -0800348 static const char kNameString[];
Wade Guthrie68da97c2013-02-26 13:09:35 -0800349 Nl80211AttributeCookie() : NetlinkU64Attribute(kName, kNameString) {}
Wade Guthrie89e6cb32013-03-07 08:03:45 -0800350
351 private:
352 DISALLOW_COPY_AND_ASSIGN(Nl80211AttributeCookie);
Wade Guthrie25cdb382012-12-04 14:04:05 -0800353};
354
355// Flag.
356
Wade Guthrie1f355e82013-04-11 15:46:12 -0700357class Nl80211AttributeControlPortEthertype : public NetlinkFlagAttribute {
358 public:
359 static const int kName;
360 static const char kNameString[];
361 Nl80211AttributeControlPortEthertype()
362 : NetlinkFlagAttribute(kName, kNameString) {}
363
364 private:
365 DISALLOW_COPY_AND_ASSIGN(Nl80211AttributeControlPortEthertype);
366};
367
Wade Guthrie68da97c2013-02-26 13:09:35 -0800368class Nl80211AttributeDisconnectedByAp : public NetlinkFlagAttribute {
Wade Guthrie25cdb382012-12-04 14:04:05 -0800369 public:
Wade Guthrie68da97c2013-02-26 13:09:35 -0800370 static const int kName;
Wade Guthrie25cdb382012-12-04 14:04:05 -0800371 static const char kNameString[];
372 Nl80211AttributeDisconnectedByAp() :
Wade Guthrie68da97c2013-02-26 13:09:35 -0800373 NetlinkFlagAttribute(kName, kNameString) {}
Wade Guthrie89e6cb32013-03-07 08:03:45 -0800374
375 private:
376 DISALLOW_COPY_AND_ASSIGN(Nl80211AttributeDisconnectedByAp);
Wade Guthrie25cdb382012-12-04 14:04:05 -0800377};
378
Wade Guthrie1f355e82013-04-11 15:46:12 -0700379class Nl80211AttributeOffchannelTxOk : public NetlinkFlagAttribute {
380 public:
381 static const int kName;
382 static const char kNameString[];
383 Nl80211AttributeOffchannelTxOk()
384 : NetlinkFlagAttribute(kName, kNameString) {}
385
386 private:
387 DISALLOW_COPY_AND_ASSIGN(Nl80211AttributeOffchannelTxOk);
388};
389
390class Nl80211AttributeRoamSupport : public NetlinkFlagAttribute {
391 public:
392 static const int kName;
393 static const char kNameString[];
394 Nl80211AttributeRoamSupport() : NetlinkFlagAttribute(kName, kNameString) {}
395
396 private:
397 DISALLOW_COPY_AND_ASSIGN(Nl80211AttributeRoamSupport);
398};
399
400class Nl80211AttributeSupportApUapsd : public NetlinkFlagAttribute {
401 public:
402 static const int kName;
403 static const char kNameString[];
404 Nl80211AttributeSupportApUapsd()
405 : NetlinkFlagAttribute(kName, kNameString) {}
406
407 private:
408 DISALLOW_COPY_AND_ASSIGN(Nl80211AttributeSupportApUapsd);
409};
410
411class Nl80211AttributeSupportIbssRsn : public NetlinkFlagAttribute {
412 public:
413 static const int kName;
414 static const char kNameString[];
415 Nl80211AttributeSupportIbssRsn()
416 : NetlinkFlagAttribute(kName, kNameString) {}
417
418 private:
419 DISALLOW_COPY_AND_ASSIGN(Nl80211AttributeSupportIbssRsn);
420};
421
Wade Guthrie68da97c2013-02-26 13:09:35 -0800422class Nl80211AttributeSupportMeshAuth : public NetlinkFlagAttribute {
Wade Guthrie25cdb382012-12-04 14:04:05 -0800423 public:
Wade Guthrie68da97c2013-02-26 13:09:35 -0800424 static const int kName;
Wade Guthrie25cdb382012-12-04 14:04:05 -0800425 static const char kNameString[];
426 Nl80211AttributeSupportMeshAuth() :
Wade Guthrie68da97c2013-02-26 13:09:35 -0800427 NetlinkFlagAttribute(kName, kNameString) {}
Wade Guthrie89e6cb32013-03-07 08:03:45 -0800428
429 private:
430 DISALLOW_COPY_AND_ASSIGN(Nl80211AttributeSupportMeshAuth);
Wade Guthrie25cdb382012-12-04 14:04:05 -0800431};
432
Wade Guthrie1f355e82013-04-11 15:46:12 -0700433class Nl80211AttributeTdlsExternalSetup : public NetlinkFlagAttribute {
434 public:
435 static const int kName;
436 static const char kNameString[];
437 Nl80211AttributeTdlsExternalSetup()
438 : NetlinkFlagAttribute(kName, kNameString) {}
439
440 private:
441 DISALLOW_COPY_AND_ASSIGN(Nl80211AttributeTdlsExternalSetup);
442};
443
444class Nl80211AttributeTdlsSupport : public NetlinkFlagAttribute {
445 public:
446 static const int kName;
447 static const char kNameString[];
448 Nl80211AttributeTdlsSupport() : NetlinkFlagAttribute(kName, kNameString) {}
449
450 private:
451 DISALLOW_COPY_AND_ASSIGN(Nl80211AttributeTdlsSupport);
452};
453
Wade Guthrie68da97c2013-02-26 13:09:35 -0800454class Nl80211AttributeTimedOut : public NetlinkFlagAttribute {
Wade Guthrie25cdb382012-12-04 14:04:05 -0800455 public:
Wade Guthrie68da97c2013-02-26 13:09:35 -0800456 static const int kName;
Wade Guthrie25cdb382012-12-04 14:04:05 -0800457 static const char kNameString[];
Wade Guthrie68da97c2013-02-26 13:09:35 -0800458 Nl80211AttributeTimedOut() : NetlinkFlagAttribute(kName, kNameString) {}
Wade Guthrie89e6cb32013-03-07 08:03:45 -0800459
460 private:
461 DISALLOW_COPY_AND_ASSIGN(Nl80211AttributeTimedOut);
Wade Guthrie25cdb382012-12-04 14:04:05 -0800462};
463
464// String.
465
Wade Guthrie68da97c2013-02-26 13:09:35 -0800466class Nl80211AttributeRegAlpha2 : public NetlinkStringAttribute {
Wade Guthrie25cdb382012-12-04 14:04:05 -0800467 public:
Wade Guthrie68da97c2013-02-26 13:09:35 -0800468 static const int kName;
Wade Guthrie25cdb382012-12-04 14:04:05 -0800469 static const char kNameString[];
Wade Guthrie68da97c2013-02-26 13:09:35 -0800470 Nl80211AttributeRegAlpha2() : NetlinkStringAttribute(kName, kNameString) {}
Wade Guthrie89e6cb32013-03-07 08:03:45 -0800471
472 private:
473 DISALLOW_COPY_AND_ASSIGN(Nl80211AttributeRegAlpha2);
Wade Guthrie25cdb382012-12-04 14:04:05 -0800474};
475
Wade Guthrie68da97c2013-02-26 13:09:35 -0800476class Nl80211AttributeWiphyName : public NetlinkStringAttribute {
Wade Guthrie25cdb382012-12-04 14:04:05 -0800477 public:
Wade Guthrie68da97c2013-02-26 13:09:35 -0800478 static const int kName;
Wade Guthrie25cdb382012-12-04 14:04:05 -0800479 static const char kNameString[];
Wade Guthrie68da97c2013-02-26 13:09:35 -0800480 Nl80211AttributeWiphyName() : NetlinkStringAttribute(kName, kNameString) {}
Wade Guthrie89e6cb32013-03-07 08:03:45 -0800481
482 private:
483 DISALLOW_COPY_AND_ASSIGN(Nl80211AttributeWiphyName);
Wade Guthrie25cdb382012-12-04 14:04:05 -0800484};
485
repo sync12cca802012-12-19 17:34:22 -0800486// Nested.
487
Wade Guthrief54872f2013-04-11 15:11:50 -0700488class Nl80211AttributeBss : public NetlinkNestedAttribute {
489 public:
490 static const int kName;
491 static const char kNameString[];
492 // These are sorted alphabetically.
493 static const int kChallengeTextAttributeId;
494 static const int kChannelsAttributeId;
495 static const int kCountryInfoAttributeId;
496 static const int kDSParameterSetAttributeId;
497 static const int kErpAttributeId;
498 static const int kExtendedRatesAttributeId;
499 static const int kHtCapAttributeId;
500 static const int kHtInfoAttributeId;
501 static const int kPowerCapabilityAttributeId;
502 static const int kPowerConstraintAttributeId;
503 static const int kRequestAttributeId;
504 static const int kRsnAttributeId;
505 static const int kSsidAttributeId;
506 static const int kSupportedRatesAttributeId;
507 static const int kTcpReportAttributeId;
508 static const int kVendorSpecificAttributeId;
509
510 Nl80211AttributeBss();
511
512 private:
513 static bool ParseInformationElements(AttributeList *attribute_list,
514 size_t id,
515 const std::string &attribute_name,
516 ByteString data);
517
518 DISALLOW_COPY_AND_ASSIGN(Nl80211AttributeBss);
519};
520
Wade Guthrie68da97c2013-02-26 13:09:35 -0800521class Nl80211AttributeCqm : public NetlinkNestedAttribute {
repo sync12cca802012-12-19 17:34:22 -0800522 public:
Wade Guthrie68da97c2013-02-26 13:09:35 -0800523 static const int kName;
repo sync12cca802012-12-19 17:34:22 -0800524 static const char kNameString[];
525 Nl80211AttributeCqm();
Wade Guthrie89e6cb32013-03-07 08:03:45 -0800526
527 private:
528 DISALLOW_COPY_AND_ASSIGN(Nl80211AttributeCqm);
Wade Guthried3dfd6c2013-02-28 17:40:36 -0800529};
530
531class Nl80211AttributeScanFrequencies : public NetlinkNestedAttribute {
532 public:
533 static const int kName;
534 static const char kNameString[];
535 explicit Nl80211AttributeScanFrequencies();
Wade Guthrie89e6cb32013-03-07 08:03:45 -0800536
537 private:
538 DISALLOW_COPY_AND_ASSIGN(Nl80211AttributeScanFrequencies);
Wade Guthried3dfd6c2013-02-28 17:40:36 -0800539};
540
541class Nl80211AttributeScanSsids : public NetlinkNestedAttribute {
542 public:
543 static const int kName;
544 static const char kNameString[];
545 explicit Nl80211AttributeScanSsids();
Wade Guthrie89e6cb32013-03-07 08:03:45 -0800546
547 private:
548 DISALLOW_COPY_AND_ASSIGN(Nl80211AttributeScanSsids);
repo sync12cca802012-12-19 17:34:22 -0800549};
550
Wade Guthrie68da97c2013-02-26 13:09:35 -0800551class Nl80211AttributeStaInfo : public NetlinkNestedAttribute {
repo sync12cca802012-12-19 17:34:22 -0800552 public:
Wade Guthrie68da97c2013-02-26 13:09:35 -0800553 static const int kName;
repo sync12cca802012-12-19 17:34:22 -0800554 static const char kNameString[];
Wade Guthried3dfd6c2013-02-28 17:40:36 -0800555 Nl80211AttributeStaInfo();
Wade Guthrie89e6cb32013-03-07 08:03:45 -0800556
557 private:
558 DISALLOW_COPY_AND_ASSIGN(Nl80211AttributeStaInfo);
repo sync12cca802012-12-19 17:34:22 -0800559};
560
Wade Guthrie1f355e82013-04-11 15:46:12 -0700561class Nl80211AttributeWiphyBands : public NetlinkNestedAttribute {
562 public:
563 static const int kName;
564 static const char kNameString[];
565 Nl80211AttributeWiphyBands();
566
567 private:
568 DISALLOW_COPY_AND_ASSIGN(Nl80211AttributeWiphyBands);
569};
570
571
Wade Guthrie25cdb382012-12-04 14:04:05 -0800572// Raw.
573
Wade Guthrie1f355e82013-04-11 15:46:12 -0700574class Nl80211AttributeCipherSuites : public NetlinkRawAttribute {
575 public:
576 static const int kName;
577 static const char kNameString[];
578 Nl80211AttributeCipherSuites() : NetlinkRawAttribute(kName, kNameString) {}
579
580 private:
581 DISALLOW_COPY_AND_ASSIGN(Nl80211AttributeCipherSuites);
582};
583
Wade Guthrie68da97c2013-02-26 13:09:35 -0800584class Nl80211AttributeFrame : public NetlinkRawAttribute {
Wade Guthrie25cdb382012-12-04 14:04:05 -0800585 public:
Wade Guthrie68da97c2013-02-26 13:09:35 -0800586 static const int kName;
Wade Guthrie25cdb382012-12-04 14:04:05 -0800587 static const char kNameString[];
Wade Guthrie68da97c2013-02-26 13:09:35 -0800588 Nl80211AttributeFrame() : NetlinkRawAttribute(kName, kNameString) {}
Wade Guthrie89e6cb32013-03-07 08:03:45 -0800589
590 private:
591 DISALLOW_COPY_AND_ASSIGN(Nl80211AttributeFrame);
Wade Guthrie16196242012-11-20 15:53:52 -0800592};
593
Wade Guthrie1f355e82013-04-11 15:46:12 -0700594class Nl80211AttributeHtCapabilityMask : public NetlinkRawAttribute {
595 public:
596 static const int kName;
597 static const char kNameString[];
598 Nl80211AttributeHtCapabilityMask()
599 : NetlinkRawAttribute(kName, kNameString) {}
600
601 private:
602 DISALLOW_COPY_AND_ASSIGN(Nl80211AttributeHtCapabilityMask);
603};
604
Wade Guthrie68da97c2013-02-26 13:09:35 -0800605class Nl80211AttributeKeySeq : public NetlinkRawAttribute {
Wade Guthrie25cdb382012-12-04 14:04:05 -0800606 public:
Wade Guthrie68da97c2013-02-26 13:09:35 -0800607 static const int kName;
Wade Guthrie25cdb382012-12-04 14:04:05 -0800608 static const char kNameString[];
Wade Guthrie68da97c2013-02-26 13:09:35 -0800609 Nl80211AttributeKeySeq() : NetlinkRawAttribute(kName, kNameString) {}
Wade Guthrie89e6cb32013-03-07 08:03:45 -0800610
611 private:
612 DISALLOW_COPY_AND_ASSIGN(Nl80211AttributeKeySeq);
Wade Guthrie25cdb382012-12-04 14:04:05 -0800613};
614
Wade Guthrie68da97c2013-02-26 13:09:35 -0800615class Nl80211AttributeMac : public NetlinkRawAttribute {
Wade Guthrie25cdb382012-12-04 14:04:05 -0800616 public:
Wade Guthrie68da97c2013-02-26 13:09:35 -0800617 static const int kName;
Wade Guthrie25cdb382012-12-04 14:04:05 -0800618 static const char kNameString[];
Wade Guthrie68da97c2013-02-26 13:09:35 -0800619 Nl80211AttributeMac() : NetlinkRawAttribute(kName, kNameString) {}
Wade Guthrie89e6cb32013-03-07 08:03:45 -0800620
621 private:
622 DISALLOW_COPY_AND_ASSIGN(Nl80211AttributeMac);
Wade Guthrie25cdb382012-12-04 14:04:05 -0800623};
624
Wade Guthrie68da97c2013-02-26 13:09:35 -0800625class Nl80211AttributeRespIe : public NetlinkRawAttribute {
Wade Guthrie25cdb382012-12-04 14:04:05 -0800626 public:
Wade Guthrie68da97c2013-02-26 13:09:35 -0800627 static const int kName;
Wade Guthrie25cdb382012-12-04 14:04:05 -0800628 static const char kNameString[];
Wade Guthrie68da97c2013-02-26 13:09:35 -0800629 Nl80211AttributeRespIe() : NetlinkRawAttribute(kName, kNameString) {}
Wade Guthrie89e6cb32013-03-07 08:03:45 -0800630
631 private:
632 DISALLOW_COPY_AND_ASSIGN(Nl80211AttributeRespIe);
Wade Guthrie25cdb382012-12-04 14:04:05 -0800633};
634
Wade Guthrie16196242012-11-20 15:53:52 -0800635} // namespace shill
636
Wade Guthriebb9fca22013-04-10 17:21:42 -0700637#endif // SHILL_NL80211_ATTRIBUTE_H_