761 lines
21 KiB
C++
761 lines
21 KiB
C++
//
|
|
// Copyright (C) 2012 The Android Open Source Project
|
|
//
|
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
// you may not use this file except in compliance with the License.
|
|
// You may obtain a copy of the License at
|
|
//
|
|
// http://www.apache.org/licenses/LICENSE-2.0
|
|
//
|
|
// Unless required by applicable law or agreed to in writing, software
|
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
// See the License for the specific language governing permissions and
|
|
// limitations under the License.
|
|
//
|
|
|
|
#ifndef SHILL_NET_NL80211_ATTRIBUTE_H_
|
|
#define SHILL_NET_NL80211_ATTRIBUTE_H_
|
|
|
|
#include <string>
|
|
|
|
#include <base/macros.h>
|
|
|
|
#include "shill/net/netlink_attribute.h"
|
|
#include "shill/net/netlink_message.h"
|
|
|
|
struct nlattr;
|
|
|
|
namespace shill {
|
|
|
|
// U8.
|
|
|
|
class Nl80211AttributeDfsRegion : public NetlinkU8Attribute {
|
|
public:
|
|
static const int kName;
|
|
static const char kNameString[];
|
|
Nl80211AttributeDfsRegion() : NetlinkU8Attribute(kName, kNameString) {}
|
|
|
|
private:
|
|
DISALLOW_COPY_AND_ASSIGN(Nl80211AttributeDfsRegion);
|
|
};
|
|
|
|
class Nl80211AttributeKeyIdx : public NetlinkU8Attribute {
|
|
public:
|
|
static const int kName;
|
|
static const char kNameString[];
|
|
Nl80211AttributeKeyIdx() : NetlinkU8Attribute(kName, kNameString) {}
|
|
|
|
private:
|
|
DISALLOW_COPY_AND_ASSIGN(Nl80211AttributeKeyIdx);
|
|
};
|
|
|
|
class Nl80211AttributeMaxMatchSets : public NetlinkU8Attribute {
|
|
public:
|
|
static const int kName;
|
|
static const char kNameString[];
|
|
Nl80211AttributeMaxMatchSets() : NetlinkU8Attribute(kName, kNameString) {}
|
|
|
|
private:
|
|
DISALLOW_COPY_AND_ASSIGN(Nl80211AttributeMaxMatchSets);
|
|
};
|
|
|
|
class Nl80211AttributeMaxNumPmkids : public NetlinkU8Attribute {
|
|
public:
|
|
static const int kName;
|
|
static const char kNameString[];
|
|
Nl80211AttributeMaxNumPmkids() : NetlinkU8Attribute(kName, kNameString) {}
|
|
|
|
private:
|
|
DISALLOW_COPY_AND_ASSIGN(Nl80211AttributeMaxNumPmkids);
|
|
};
|
|
|
|
class Nl80211AttributeMaxNumScanSsids : public NetlinkU8Attribute {
|
|
public:
|
|
static const int kName;
|
|
static const char kNameString[];
|
|
Nl80211AttributeMaxNumScanSsids() : NetlinkU8Attribute(kName, kNameString) {}
|
|
|
|
private:
|
|
DISALLOW_COPY_AND_ASSIGN(Nl80211AttributeMaxNumScanSsids);
|
|
};
|
|
|
|
class Nl80211AttributeMaxNumSchedScanSsids : public NetlinkU8Attribute {
|
|
public:
|
|
static const int kName;
|
|
static const char kNameString[];
|
|
Nl80211AttributeMaxNumSchedScanSsids()
|
|
: NetlinkU8Attribute(kName, kNameString) {}
|
|
|
|
private:
|
|
DISALLOW_COPY_AND_ASSIGN(Nl80211AttributeMaxNumSchedScanSsids);
|
|
};
|
|
|
|
class Nl80211AttributeRegType : public NetlinkU8Attribute {
|
|
public:
|
|
static const int kName;
|
|
static const char kNameString[];
|
|
Nl80211AttributeRegType() : NetlinkU8Attribute(kName, kNameString) {}
|
|
|
|
private:
|
|
DISALLOW_COPY_AND_ASSIGN(Nl80211AttributeRegType);
|
|
};
|
|
|
|
class Nl80211AttributeWiphyCoverageClass : public NetlinkU8Attribute {
|
|
public:
|
|
static const int kName;
|
|
static const char kNameString[];
|
|
Nl80211AttributeWiphyCoverageClass()
|
|
: NetlinkU8Attribute(kName, kNameString) {}
|
|
|
|
private:
|
|
DISALLOW_COPY_AND_ASSIGN(Nl80211AttributeWiphyCoverageClass);
|
|
};
|
|
|
|
class Nl80211AttributeWiphyRetryLong : public NetlinkU8Attribute {
|
|
public:
|
|
static const int kName;
|
|
static const char kNameString[];
|
|
Nl80211AttributeWiphyRetryLong() : NetlinkU8Attribute(kName, kNameString) {}
|
|
|
|
private:
|
|
DISALLOW_COPY_AND_ASSIGN(Nl80211AttributeWiphyRetryLong);
|
|
};
|
|
|
|
class Nl80211AttributeWiphyRetryShort : public NetlinkU8Attribute {
|
|
public:
|
|
static const int kName;
|
|
static const char kNameString[];
|
|
Nl80211AttributeWiphyRetryShort() : NetlinkU8Attribute(kName, kNameString) {}
|
|
|
|
private:
|
|
DISALLOW_COPY_AND_ASSIGN(Nl80211AttributeWiphyRetryShort);
|
|
};
|
|
|
|
// U16.
|
|
|
|
class Nl80211AttributeMaxScanIeLen : public NetlinkU16Attribute {
|
|
public:
|
|
static const int kName;
|
|
static const char kNameString[];
|
|
Nl80211AttributeMaxScanIeLen() : NetlinkU16Attribute(kName, kNameString) {}
|
|
|
|
private:
|
|
DISALLOW_COPY_AND_ASSIGN(Nl80211AttributeMaxScanIeLen);
|
|
};
|
|
|
|
class Nl80211AttributeMaxSchedScanIeLen : public NetlinkU16Attribute {
|
|
public:
|
|
static const int kName;
|
|
static const char kNameString[];
|
|
Nl80211AttributeMaxSchedScanIeLen()
|
|
: NetlinkU16Attribute(kName, kNameString) {}
|
|
|
|
private:
|
|
DISALLOW_COPY_AND_ASSIGN(Nl80211AttributeMaxSchedScanIeLen);
|
|
};
|
|
|
|
class Nl80211AttributeReasonCode : public NetlinkU16Attribute {
|
|
public:
|
|
static const int kName;
|
|
static const char kNameString[];
|
|
Nl80211AttributeReasonCode() : NetlinkU16Attribute(kName, kNameString) {}
|
|
|
|
private:
|
|
DISALLOW_COPY_AND_ASSIGN(Nl80211AttributeReasonCode);
|
|
};
|
|
|
|
class Nl80211AttributeStatusCode : public NetlinkU16Attribute {
|
|
public:
|
|
static const int kName;
|
|
static const char kNameString[];
|
|
Nl80211AttributeStatusCode() : NetlinkU16Attribute(kName, kNameString) {}
|
|
|
|
private:
|
|
DISALLOW_COPY_AND_ASSIGN(Nl80211AttributeStatusCode);
|
|
};
|
|
|
|
// U32.
|
|
|
|
class Nl80211AttributeDuration : public NetlinkU32Attribute {
|
|
public:
|
|
static const int kName;
|
|
static const char kNameString[];
|
|
Nl80211AttributeDuration() : NetlinkU32Attribute(kName, kNameString) {}
|
|
|
|
private:
|
|
DISALLOW_COPY_AND_ASSIGN(Nl80211AttributeDuration);
|
|
};
|
|
|
|
class Nl80211AttributeDeviceApSme : public NetlinkU32Attribute {
|
|
public:
|
|
static const int kName;
|
|
static const char kNameString[];
|
|
Nl80211AttributeDeviceApSme() : NetlinkU32Attribute(kName, kNameString) {}
|
|
|
|
private:
|
|
DISALLOW_COPY_AND_ASSIGN(Nl80211AttributeDeviceApSme);
|
|
};
|
|
|
|
class Nl80211AttributeFeatureFlags : public NetlinkU32Attribute {
|
|
public:
|
|
static const int kName;
|
|
static const char kNameString[];
|
|
Nl80211AttributeFeatureFlags() : NetlinkU32Attribute(kName, kNameString) {}
|
|
|
|
private:
|
|
DISALLOW_COPY_AND_ASSIGN(Nl80211AttributeFeatureFlags);
|
|
};
|
|
|
|
class Nl80211AttributeGeneration : public NetlinkU32Attribute {
|
|
public:
|
|
static const int kName;
|
|
static const char kNameString[];
|
|
Nl80211AttributeGeneration() : NetlinkU32Attribute(kName, kNameString) {}
|
|
|
|
private:
|
|
DISALLOW_COPY_AND_ASSIGN(Nl80211AttributeGeneration);
|
|
};
|
|
|
|
class Nl80211AttributeIfindex : public NetlinkU32Attribute {
|
|
public:
|
|
static const int kName;
|
|
static const char kNameString[];
|
|
Nl80211AttributeIfindex() : NetlinkU32Attribute(kName, kNameString) {}
|
|
|
|
private:
|
|
DISALLOW_COPY_AND_ASSIGN(Nl80211AttributeIfindex);
|
|
};
|
|
|
|
class Nl80211AttributeIftype : public NetlinkU32Attribute {
|
|
public:
|
|
static const int kName;
|
|
static const char kNameString[];
|
|
Nl80211AttributeIftype() : NetlinkU32Attribute(kName, kNameString) {}
|
|
|
|
private:
|
|
DISALLOW_COPY_AND_ASSIGN(Nl80211AttributeIftype);
|
|
};
|
|
|
|
class Nl80211AttributeKeyType : public NetlinkU32Attribute {
|
|
public:
|
|
static const int kName;
|
|
static const char kNameString[];
|
|
Nl80211AttributeKeyType() : NetlinkU32Attribute(kName, kNameString) {}
|
|
|
|
private:
|
|
DISALLOW_COPY_AND_ASSIGN(Nl80211AttributeKeyType);
|
|
};
|
|
|
|
class Nl80211AttributeMaxRemainOnChannelDuration : public NetlinkU32Attribute {
|
|
public:
|
|
static const int kName;
|
|
static const char kNameString[];
|
|
Nl80211AttributeMaxRemainOnChannelDuration()
|
|
: NetlinkU32Attribute(kName, kNameString) {}
|
|
|
|
private:
|
|
DISALLOW_COPY_AND_ASSIGN(Nl80211AttributeMaxRemainOnChannelDuration);
|
|
};
|
|
|
|
class Nl80211AttributeProbeRespOffload : public NetlinkU32Attribute {
|
|
public:
|
|
static const int kName;
|
|
static const char kNameString[];
|
|
Nl80211AttributeProbeRespOffload()
|
|
: NetlinkU32Attribute(kName, kNameString) {}
|
|
|
|
private:
|
|
DISALLOW_COPY_AND_ASSIGN(Nl80211AttributeProbeRespOffload);
|
|
};
|
|
|
|
// Set SHILL_EXPORT to allow unit tests to instantiate these.
|
|
class SHILL_EXPORT Nl80211AttributeRegInitiator : public NetlinkU32Attribute {
|
|
public:
|
|
static const int kName;
|
|
static const char kNameString[];
|
|
Nl80211AttributeRegInitiator() : NetlinkU32Attribute(kName, kNameString) {}
|
|
bool InitFromValue(const ByteString& data) override;
|
|
|
|
private:
|
|
DISALLOW_COPY_AND_ASSIGN(Nl80211AttributeRegInitiator);
|
|
};
|
|
|
|
class Nl80211AttributeWiphy : public NetlinkU32Attribute {
|
|
public:
|
|
static const int kName;
|
|
static const char kNameString[];
|
|
Nl80211AttributeWiphy() : NetlinkU32Attribute(kName, kNameString) {}
|
|
|
|
private:
|
|
DISALLOW_COPY_AND_ASSIGN(Nl80211AttributeWiphy);
|
|
};
|
|
|
|
class Nl80211AttributeWiphyAntennaAvailRx : public NetlinkU32Attribute {
|
|
public:
|
|
static const int kName;
|
|
static const char kNameString[];
|
|
Nl80211AttributeWiphyAntennaAvailRx()
|
|
: NetlinkU32Attribute(kName, kNameString) {}
|
|
|
|
private:
|
|
DISALLOW_COPY_AND_ASSIGN(Nl80211AttributeWiphyAntennaAvailRx);
|
|
};
|
|
|
|
class Nl80211AttributeWiphyAntennaAvailTx : public NetlinkU32Attribute {
|
|
public:
|
|
static const int kName;
|
|
static const char kNameString[];
|
|
Nl80211AttributeWiphyAntennaAvailTx()
|
|
: NetlinkU32Attribute(kName, kNameString) {}
|
|
|
|
private:
|
|
DISALLOW_COPY_AND_ASSIGN(Nl80211AttributeWiphyAntennaAvailTx);
|
|
};
|
|
|
|
class Nl80211AttributeWiphyAntennaRx : public NetlinkU32Attribute {
|
|
public:
|
|
static const int kName;
|
|
static const char kNameString[];
|
|
Nl80211AttributeWiphyAntennaRx() : NetlinkU32Attribute(kName, kNameString) {}
|
|
|
|
private:
|
|
DISALLOW_COPY_AND_ASSIGN(Nl80211AttributeWiphyAntennaRx);
|
|
};
|
|
|
|
class Nl80211AttributeWiphyAntennaTx : public NetlinkU32Attribute {
|
|
public:
|
|
static const int kName;
|
|
static const char kNameString[];
|
|
Nl80211AttributeWiphyAntennaTx() : NetlinkU32Attribute(kName, kNameString) {}
|
|
|
|
private:
|
|
DISALLOW_COPY_AND_ASSIGN(Nl80211AttributeWiphyAntennaTx);
|
|
};
|
|
|
|
class Nl80211AttributeWiphyFragThreshold : public NetlinkU32Attribute {
|
|
public:
|
|
static const int kName;
|
|
static const char kNameString[];
|
|
Nl80211AttributeWiphyFragThreshold()
|
|
: NetlinkU32Attribute(kName, kNameString) {}
|
|
|
|
private:
|
|
DISALLOW_COPY_AND_ASSIGN(Nl80211AttributeWiphyFragThreshold);
|
|
};
|
|
|
|
class Nl80211AttributeWiphyFreq : public NetlinkU32Attribute {
|
|
public:
|
|
static const int kName;
|
|
static const char kNameString[];
|
|
Nl80211AttributeWiphyFreq() : NetlinkU32Attribute(kName, kNameString) {}
|
|
|
|
private:
|
|
DISALLOW_COPY_AND_ASSIGN(Nl80211AttributeWiphyFreq);
|
|
};
|
|
|
|
class Nl80211AttributeChannelType : public NetlinkU32Attribute {
|
|
public:
|
|
static const int kName;
|
|
static const char kNameString[];
|
|
Nl80211AttributeChannelType() : NetlinkU32Attribute(kName, kNameString) {}
|
|
|
|
private:
|
|
DISALLOW_COPY_AND_ASSIGN(Nl80211AttributeChannelType);
|
|
};
|
|
|
|
class Nl80211AttributeChannelWidth : public NetlinkU32Attribute {
|
|
public:
|
|
static const int kName;
|
|
static const char kNameString[];
|
|
Nl80211AttributeChannelWidth() : NetlinkU32Attribute(kName, kNameString) {}
|
|
|
|
private:
|
|
DISALLOW_COPY_AND_ASSIGN(Nl80211AttributeChannelWidth);
|
|
};
|
|
|
|
class Nl80211AttributeCenterFreq1 : public NetlinkU32Attribute {
|
|
public:
|
|
static const int kName;
|
|
static const char kNameString[];
|
|
Nl80211AttributeCenterFreq1() : NetlinkU32Attribute(kName, kNameString) {}
|
|
|
|
private:
|
|
DISALLOW_COPY_AND_ASSIGN(Nl80211AttributeCenterFreq1);
|
|
};
|
|
|
|
class Nl80211AttributeCenterFreq2 : public NetlinkU32Attribute {
|
|
public:
|
|
static const int kName;
|
|
static const char kNameString[];
|
|
Nl80211AttributeCenterFreq2() : NetlinkU32Attribute(kName, kNameString) {}
|
|
|
|
private:
|
|
DISALLOW_COPY_AND_ASSIGN(Nl80211AttributeCenterFreq2);
|
|
};
|
|
|
|
class Nl80211AttributeWiphyRtsThreshold : public NetlinkU32Attribute {
|
|
public:
|
|
static const int kName;
|
|
static const char kNameString[];
|
|
Nl80211AttributeWiphyRtsThreshold()
|
|
: NetlinkU32Attribute(kName, kNameString) {}
|
|
|
|
private:
|
|
DISALLOW_COPY_AND_ASSIGN(Nl80211AttributeWiphyRtsThreshold);
|
|
};
|
|
|
|
// U64.
|
|
|
|
class Nl80211AttributeCookie : public NetlinkU64Attribute {
|
|
public:
|
|
static const int kName;
|
|
static const char kNameString[];
|
|
Nl80211AttributeCookie() : NetlinkU64Attribute(kName, kNameString) {}
|
|
|
|
private:
|
|
DISALLOW_COPY_AND_ASSIGN(Nl80211AttributeCookie);
|
|
};
|
|
|
|
// Flag.
|
|
|
|
class Nl80211AttributeControlPortEthertype : public NetlinkFlagAttribute {
|
|
public:
|
|
static const int kName;
|
|
static const char kNameString[];
|
|
Nl80211AttributeControlPortEthertype()
|
|
: NetlinkFlagAttribute(kName, kNameString) {}
|
|
|
|
private:
|
|
DISALLOW_COPY_AND_ASSIGN(Nl80211AttributeControlPortEthertype);
|
|
};
|
|
|
|
class Nl80211AttributeDisconnectedByAp : public NetlinkFlagAttribute {
|
|
public:
|
|
static const int kName;
|
|
static const char kNameString[];
|
|
Nl80211AttributeDisconnectedByAp() :
|
|
NetlinkFlagAttribute(kName, kNameString) {}
|
|
|
|
private:
|
|
DISALLOW_COPY_AND_ASSIGN(Nl80211AttributeDisconnectedByAp);
|
|
};
|
|
|
|
class Nl80211AttributeOffchannelTxOk : public NetlinkFlagAttribute {
|
|
public:
|
|
static const int kName;
|
|
static const char kNameString[];
|
|
Nl80211AttributeOffchannelTxOk()
|
|
: NetlinkFlagAttribute(kName, kNameString) {}
|
|
|
|
private:
|
|
DISALLOW_COPY_AND_ASSIGN(Nl80211AttributeOffchannelTxOk);
|
|
};
|
|
|
|
class Nl80211AttributeRoamSupport : public NetlinkFlagAttribute {
|
|
public:
|
|
static const int kName;
|
|
static const char kNameString[];
|
|
Nl80211AttributeRoamSupport() : NetlinkFlagAttribute(kName, kNameString) {}
|
|
|
|
private:
|
|
DISALLOW_COPY_AND_ASSIGN(Nl80211AttributeRoamSupport);
|
|
};
|
|
|
|
class Nl80211AttributeSupportApUapsd : public NetlinkFlagAttribute {
|
|
public:
|
|
static const int kName;
|
|
static const char kNameString[];
|
|
Nl80211AttributeSupportApUapsd()
|
|
: NetlinkFlagAttribute(kName, kNameString) {}
|
|
|
|
private:
|
|
DISALLOW_COPY_AND_ASSIGN(Nl80211AttributeSupportApUapsd);
|
|
};
|
|
|
|
class Nl80211AttributeSupportIbssRsn : public NetlinkFlagAttribute {
|
|
public:
|
|
static const int kName;
|
|
static const char kNameString[];
|
|
Nl80211AttributeSupportIbssRsn()
|
|
: NetlinkFlagAttribute(kName, kNameString) {}
|
|
|
|
private:
|
|
DISALLOW_COPY_AND_ASSIGN(Nl80211AttributeSupportIbssRsn);
|
|
};
|
|
|
|
class Nl80211AttributeSupportMeshAuth : public NetlinkFlagAttribute {
|
|
public:
|
|
static const int kName;
|
|
static const char kNameString[];
|
|
Nl80211AttributeSupportMeshAuth() :
|
|
NetlinkFlagAttribute(kName, kNameString) {}
|
|
|
|
private:
|
|
DISALLOW_COPY_AND_ASSIGN(Nl80211AttributeSupportMeshAuth);
|
|
};
|
|
|
|
class Nl80211AttributeTdlsExternalSetup : public NetlinkFlagAttribute {
|
|
public:
|
|
static const int kName;
|
|
static const char kNameString[];
|
|
Nl80211AttributeTdlsExternalSetup()
|
|
: NetlinkFlagAttribute(kName, kNameString) {}
|
|
|
|
private:
|
|
DISALLOW_COPY_AND_ASSIGN(Nl80211AttributeTdlsExternalSetup);
|
|
};
|
|
|
|
class Nl80211AttributeTdlsSupport : public NetlinkFlagAttribute {
|
|
public:
|
|
static const int kName;
|
|
static const char kNameString[];
|
|
Nl80211AttributeTdlsSupport() : NetlinkFlagAttribute(kName, kNameString) {}
|
|
|
|
private:
|
|
DISALLOW_COPY_AND_ASSIGN(Nl80211AttributeTdlsSupport);
|
|
};
|
|
|
|
class Nl80211AttributeTimedOut : public NetlinkFlagAttribute {
|
|
public:
|
|
static const int kName;
|
|
static const char kNameString[];
|
|
Nl80211AttributeTimedOut() : NetlinkFlagAttribute(kName, kNameString) {}
|
|
|
|
private:
|
|
DISALLOW_COPY_AND_ASSIGN(Nl80211AttributeTimedOut);
|
|
};
|
|
|
|
// String.
|
|
|
|
class Nl80211AttributeRegAlpha2 : public NetlinkStringAttribute {
|
|
public:
|
|
static const int kName;
|
|
static const char kNameString[];
|
|
Nl80211AttributeRegAlpha2() : NetlinkStringAttribute(kName, kNameString) {}
|
|
|
|
private:
|
|
DISALLOW_COPY_AND_ASSIGN(Nl80211AttributeRegAlpha2);
|
|
};
|
|
|
|
class Nl80211AttributeWiphyName : public NetlinkStringAttribute {
|
|
public:
|
|
static const int kName;
|
|
static const char kNameString[];
|
|
Nl80211AttributeWiphyName() : NetlinkStringAttribute(kName, kNameString) {}
|
|
|
|
private:
|
|
DISALLOW_COPY_AND_ASSIGN(Nl80211AttributeWiphyName);
|
|
};
|
|
|
|
// Nested.
|
|
|
|
class Nl80211AttributeBss : public NetlinkNestedAttribute {
|
|
public:
|
|
static const int kName;
|
|
static const char kNameString[];
|
|
// These are sorted alphabetically.
|
|
static const int kChallengeTextAttributeId;
|
|
static const int kChannelsAttributeId;
|
|
static const int kCountryInfoAttributeId;
|
|
static const int kDSParameterSetAttributeId;
|
|
static const int kErpAttributeId;
|
|
static const int kExtendedRatesAttributeId;
|
|
static const int kHtCapAttributeId;
|
|
static const int kHtInfoAttributeId;
|
|
static const int kPowerCapabilityAttributeId;
|
|
static const int kPowerConstraintAttributeId;
|
|
static const int kRequestAttributeId;
|
|
static const int kRsnAttributeId;
|
|
static const int kSsidAttributeId;
|
|
static const int kSupportedRatesAttributeId;
|
|
static const int kTpcReportAttributeId;
|
|
static const int kVendorSpecificAttributeId;
|
|
static const int kVhtCapAttributeId;
|
|
static const int kVhtInfoAttributeId;
|
|
|
|
Nl80211AttributeBss();
|
|
|
|
private:
|
|
static bool ParseInformationElements(AttributeList* attribute_list,
|
|
size_t id,
|
|
const std::string& attribute_name,
|
|
ByteString data);
|
|
|
|
DISALLOW_COPY_AND_ASSIGN(Nl80211AttributeBss);
|
|
};
|
|
|
|
class Nl80211AttributeCqm : public NetlinkNestedAttribute {
|
|
public:
|
|
static const int kName;
|
|
static const char kNameString[];
|
|
Nl80211AttributeCqm();
|
|
|
|
private:
|
|
DISALLOW_COPY_AND_ASSIGN(Nl80211AttributeCqm);
|
|
};
|
|
|
|
class Nl80211AttributeRegRules : public NetlinkNestedAttribute {
|
|
public:
|
|
static const int kName;
|
|
static const char kNameString[];
|
|
Nl80211AttributeRegRules();
|
|
|
|
private:
|
|
DISALLOW_COPY_AND_ASSIGN(Nl80211AttributeRegRules);
|
|
};
|
|
|
|
class Nl80211AttributeScanFrequencies : public NetlinkNestedAttribute {
|
|
public:
|
|
static const int kName;
|
|
static const char kNameString[];
|
|
Nl80211AttributeScanFrequencies();
|
|
|
|
private:
|
|
DISALLOW_COPY_AND_ASSIGN(Nl80211AttributeScanFrequencies);
|
|
};
|
|
|
|
class Nl80211AttributeScanSsids : public NetlinkNestedAttribute {
|
|
public:
|
|
static const int kName;
|
|
static const char kNameString[];
|
|
Nl80211AttributeScanSsids();
|
|
|
|
private:
|
|
DISALLOW_COPY_AND_ASSIGN(Nl80211AttributeScanSsids);
|
|
};
|
|
|
|
class Nl80211AttributeStaInfo : public NetlinkNestedAttribute {
|
|
public:
|
|
static const int kName;
|
|
static const char kNameString[];
|
|
Nl80211AttributeStaInfo();
|
|
|
|
private:
|
|
DISALLOW_COPY_AND_ASSIGN(Nl80211AttributeStaInfo);
|
|
};
|
|
|
|
class Nl80211AttributeSupportedIftypes : public NetlinkNestedAttribute {
|
|
public:
|
|
static const int kName;
|
|
static const char kNameString[];
|
|
Nl80211AttributeSupportedIftypes();
|
|
|
|
private:
|
|
DISALLOW_COPY_AND_ASSIGN(Nl80211AttributeSupportedIftypes);
|
|
};
|
|
|
|
class Nl80211AttributeWiphyBands : public NetlinkNestedAttribute {
|
|
public:
|
|
static const int kName;
|
|
static const char kNameString[];
|
|
Nl80211AttributeWiphyBands();
|
|
|
|
private:
|
|
DISALLOW_COPY_AND_ASSIGN(Nl80211AttributeWiphyBands);
|
|
};
|
|
|
|
#if !defined(DISABLE_WAKE_ON_WIFI)
|
|
class Nl80211AttributeWowlanTriggers : public NetlinkNestedAttribute {
|
|
public:
|
|
static const int kName;
|
|
static const char kNameString[];
|
|
explicit Nl80211AttributeWowlanTriggers(
|
|
NetlinkMessage::MessageContext context);
|
|
|
|
private:
|
|
DISALLOW_COPY_AND_ASSIGN(Nl80211AttributeWowlanTriggers);
|
|
};
|
|
|
|
class Nl80211AttributeWowlanTriggersSupported : public NetlinkNestedAttribute {
|
|
public:
|
|
static const int kName;
|
|
static const char kNameString[];
|
|
Nl80211AttributeWowlanTriggersSupported();
|
|
|
|
private:
|
|
DISALLOW_COPY_AND_ASSIGN(Nl80211AttributeWowlanTriggersSupported);
|
|
};
|
|
#endif // DISABLE_WAKE_ON_WIFI
|
|
|
|
// Raw.
|
|
|
|
class Nl80211AttributeCipherSuites : public NetlinkRawAttribute {
|
|
public:
|
|
static const int kName;
|
|
static const char kNameString[];
|
|
Nl80211AttributeCipherSuites() : NetlinkRawAttribute(kName, kNameString) {}
|
|
|
|
private:
|
|
DISALLOW_COPY_AND_ASSIGN(Nl80211AttributeCipherSuites);
|
|
};
|
|
|
|
class Nl80211AttributeFrame : public NetlinkRawAttribute {
|
|
public:
|
|
static const int kName;
|
|
static const char kNameString[];
|
|
Nl80211AttributeFrame() : NetlinkRawAttribute(kName, kNameString) {}
|
|
|
|
private:
|
|
DISALLOW_COPY_AND_ASSIGN(Nl80211AttributeFrame);
|
|
};
|
|
|
|
class Nl80211AttributeHtCapabilityMask : public NetlinkRawAttribute {
|
|
public:
|
|
static const int kName;
|
|
static const char kNameString[];
|
|
Nl80211AttributeHtCapabilityMask()
|
|
: NetlinkRawAttribute(kName, kNameString) {}
|
|
|
|
private:
|
|
DISALLOW_COPY_AND_ASSIGN(Nl80211AttributeHtCapabilityMask);
|
|
};
|
|
|
|
class Nl80211AttributeKeySeq : public NetlinkRawAttribute {
|
|
public:
|
|
static const int kName;
|
|
static const char kNameString[];
|
|
Nl80211AttributeKeySeq() : NetlinkRawAttribute(kName, kNameString) {}
|
|
|
|
private:
|
|
DISALLOW_COPY_AND_ASSIGN(Nl80211AttributeKeySeq);
|
|
};
|
|
|
|
class Nl80211AttributeMac : public NetlinkRawAttribute {
|
|
public:
|
|
static const int kName;
|
|
static const char kNameString[];
|
|
Nl80211AttributeMac() : NetlinkRawAttribute(kName, kNameString) {}
|
|
virtual bool ToString(std::string* value) const;
|
|
|
|
// Stringizes the MAC address found in 'arg'. If there are problems (such
|
|
// as a NULL |arg|), |value| is set to a bogus MAC address.
|
|
static std::string StringFromMacAddress(const uint8_t* arg);
|
|
|
|
private:
|
|
DISALLOW_COPY_AND_ASSIGN(Nl80211AttributeMac);
|
|
};
|
|
|
|
class Nl80211AttributeRespIe : public NetlinkRawAttribute {
|
|
public:
|
|
static const int kName;
|
|
static const char kNameString[];
|
|
Nl80211AttributeRespIe() : NetlinkRawAttribute(kName, kNameString) {}
|
|
|
|
private:
|
|
DISALLOW_COPY_AND_ASSIGN(Nl80211AttributeRespIe);
|
|
};
|
|
|
|
class Nl80211AttributeSurveyInfo : public NetlinkNestedAttribute {
|
|
public:
|
|
static const int kName;
|
|
static const char kNameString[];
|
|
Nl80211AttributeSurveyInfo();
|
|
|
|
private:
|
|
DISALLOW_COPY_AND_ASSIGN(Nl80211AttributeSurveyInfo);
|
|
};
|
|
|
|
} // namespace shill
|
|
|
|
#endif // SHILL_NET_NL80211_ATTRIBUTE_H_
|