blob: 9cc197e07e819c9c3c25b777b5c4ea45d6f1ff71 [file] [log] [blame]
// Copyright (c) 2012 The Chromium OS Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef SHILL_NL80211_ATTRIBUTE_H_
#define SHILL_NL80211_ATTRIBUTE_H_
#include <netlink/attr.h>
#include "shill/netlink_attribute.h"
#include "shill/refptr_types.h"
struct nlattr;
namespace shill {
// U8.
class Nl80211AttributeKeyIdx : public NetlinkU8Attribute {
public:
static const int kName;
static const char kNameString[];
Nl80211AttributeKeyIdx() : NetlinkU8Attribute(kName, kNameString) {}
};
class Nl80211AttributeRegType : public NetlinkU8Attribute {
public:
static const int kName;
static const char kNameString[];
Nl80211AttributeRegType() : NetlinkU8Attribute(kName, kNameString) {}
};
// U16.
class Nl80211AttributeReasonCode : public NetlinkU16Attribute {
public:
static const int kName;
static const char kNameString[];
Nl80211AttributeReasonCode() : NetlinkU16Attribute(kName, kNameString) {}
};
class Nl80211AttributeStatusCode : public NetlinkU16Attribute {
public:
static const int kName;
static const char kNameString[];
Nl80211AttributeStatusCode() : NetlinkU16Attribute(kName, kNameString) {}
};
// U32.
class Nl80211AttributeDuration : public NetlinkU32Attribute {
public:
static const int kName;
static const char kNameString[];
Nl80211AttributeDuration() : NetlinkU32Attribute(kName, kNameString) {}
};
class Nl80211AttributeGeneration : public NetlinkU32Attribute {
public:
static const int kName;
static const char kNameString[];
Nl80211AttributeGeneration() : NetlinkU32Attribute(kName, kNameString) {}
};
class Nl80211AttributeIfindex : public NetlinkU32Attribute {
public:
static const int kName;
static const char kNameString[];
Nl80211AttributeIfindex() : NetlinkU32Attribute(kName, kNameString) {}
};
class Nl80211AttributeKeyType : public NetlinkU32Attribute {
public:
static const int kName;
static const char kNameString[];
Nl80211AttributeKeyType() : NetlinkU32Attribute(kName, kNameString) {}
};
class Nl80211AttributeRegInitiator : public NetlinkU32Attribute {
public:
static const int kName;
static const char kNameString[];
Nl80211AttributeRegInitiator() : NetlinkU32Attribute(kName, kNameString) {}
};
class Nl80211AttributeWiphy : public NetlinkU32Attribute {
public:
static const int kName;
static const char kNameString[];
Nl80211AttributeWiphy() : NetlinkU32Attribute(kName, kNameString) {}
};
class Nl80211AttributeWiphyFreq : public NetlinkU32Attribute {
public:
static const int kName;
static const char kNameString[];
Nl80211AttributeWiphyFreq() : NetlinkU32Attribute(kName, kNameString) {}
};
// U64.
class Nl80211AttributeCookie : public NetlinkU64Attribute {
public:
static const int kName;
static const char kNameString[];
Nl80211AttributeCookie() : NetlinkU64Attribute(kName, kNameString) {}
};
// Flag.
class Nl80211AttributeDisconnectedByAp : public NetlinkFlagAttribute {
public:
static const int kName;
static const char kNameString[];
Nl80211AttributeDisconnectedByAp() :
NetlinkFlagAttribute(kName, kNameString) {}
};
class Nl80211AttributeSupportMeshAuth : public NetlinkFlagAttribute {
public:
static const int kName;
static const char kNameString[];
Nl80211AttributeSupportMeshAuth() :
NetlinkFlagAttribute(kName, kNameString) {}
};
class Nl80211AttributeTimedOut : public NetlinkFlagAttribute {
public:
static const int kName;
static const char kNameString[];
Nl80211AttributeTimedOut() : NetlinkFlagAttribute(kName, kNameString) {}
};
// String.
class Nl80211AttributeRegAlpha2 : public NetlinkStringAttribute {
public:
static const int kName;
static const char kNameString[];
Nl80211AttributeRegAlpha2() : NetlinkStringAttribute(kName, kNameString) {}
};
class Nl80211AttributeWiphyName : public NetlinkStringAttribute {
public:
static const int kName;
static const char kNameString[];
Nl80211AttributeWiphyName() : NetlinkStringAttribute(kName, kNameString) {}
};
// Nested.
class Nl80211AttributeCqm : public NetlinkNestedAttribute {
public:
static const int kName;
static const char kNameString[];
Nl80211AttributeCqm();
virtual bool InitFromNlAttr(const nlattr *data);
};
class Nl80211AttributeScanFrequencies : public NetlinkNestedAttribute {
public:
static const int kName;
static const char kNameString[];
explicit Nl80211AttributeScanFrequencies();
virtual bool InitFromNlAttr(const nlattr *const_data);
};
class Nl80211AttributeScanSsids : public NetlinkNestedAttribute {
public:
static const int kName;
static const char kNameString[];
explicit Nl80211AttributeScanSsids();
virtual bool InitFromNlAttr(const nlattr *const_data);
};
class Nl80211AttributeStaInfo : public NetlinkNestedAttribute {
public:
static const int kName;
static const char kNameString[];
Nl80211AttributeStaInfo();
virtual bool InitFromNlAttr(const nlattr *const_data);
};
// Raw.
class Nl80211AttributeFrame : public NetlinkRawAttribute {
public:
static const int kName;
static const char kNameString[];
Nl80211AttributeFrame() : NetlinkRawAttribute(kName, kNameString) {}
};
class Nl80211AttributeKeySeq : public NetlinkRawAttribute {
public:
static const int kName;
static const char kNameString[];
Nl80211AttributeKeySeq() : NetlinkRawAttribute(kName, kNameString) {}
};
class Nl80211AttributeMac : public NetlinkRawAttribute {
public:
static const int kName;
static const char kNameString[];
Nl80211AttributeMac() : NetlinkRawAttribute(kName, kNameString) {}
};
class Nl80211AttributeRespIe : public NetlinkRawAttribute {
public:
static const int kName;
static const char kNameString[];
Nl80211AttributeRespIe() : NetlinkRawAttribute(kName, kNameString) {}
};
} // namespace shill
#endif // SHILL_NLATTRIBUTE_H_