blob: 27ce590ff13f786a932e108f4df3364d5224b6a7 [file] [log] [blame]
// Copyright 2018 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_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"
namespace shill {
// U8.
class Nl80211AttributeDfsRegion : public NetlinkU8Attribute {
public:
static const int kName;
static const char kNameString[];
Nl80211AttributeDfsRegion() : NetlinkU8Attribute(kName, kNameString) {}
Nl80211AttributeDfsRegion(const Nl80211AttributeDfsRegion&) = delete;
Nl80211AttributeDfsRegion& operator=(const Nl80211AttributeDfsRegion&) =
delete;
};
class Nl80211AttributeKeyIdx : public NetlinkU8Attribute {
public:
static const int kName;
static const char kNameString[];
Nl80211AttributeKeyIdx() : NetlinkU8Attribute(kName, kNameString) {}
Nl80211AttributeKeyIdx(const Nl80211AttributeKeyIdx&) = delete;
Nl80211AttributeKeyIdx& operator=(const Nl80211AttributeKeyIdx&) = delete;
};
class Nl80211AttributeMaxMatchSets : public NetlinkU8Attribute {
public:
static const int kName;
static const char kNameString[];
Nl80211AttributeMaxMatchSets() : NetlinkU8Attribute(kName, kNameString) {}
Nl80211AttributeMaxMatchSets(const Nl80211AttributeMaxMatchSets&) = delete;
Nl80211AttributeMaxMatchSets& operator=(const Nl80211AttributeMaxMatchSets&) =
delete;
};
class Nl80211AttributeMaxNumPmkids : public NetlinkU8Attribute {
public:
static const int kName;
static const char kNameString[];
Nl80211AttributeMaxNumPmkids() : NetlinkU8Attribute(kName, kNameString) {}
Nl80211AttributeMaxNumPmkids(const Nl80211AttributeMaxNumPmkids&) = delete;
Nl80211AttributeMaxNumPmkids& operator=(const Nl80211AttributeMaxNumPmkids&) =
delete;
};
class Nl80211AttributeMaxNumScanSsids : public NetlinkU8Attribute {
public:
static const int kName;
static const char kNameString[];
Nl80211AttributeMaxNumScanSsids() : NetlinkU8Attribute(kName, kNameString) {}
Nl80211AttributeMaxNumScanSsids(const Nl80211AttributeMaxNumScanSsids&) =
delete;
Nl80211AttributeMaxNumScanSsids& operator=(
const Nl80211AttributeMaxNumScanSsids&) = delete;
};
class Nl80211AttributeMaxNumSchedScanSsids : public NetlinkU8Attribute {
public:
static const int kName;
static const char kNameString[];
Nl80211AttributeMaxNumSchedScanSsids()
: NetlinkU8Attribute(kName, kNameString) {}
Nl80211AttributeMaxNumSchedScanSsids(
const Nl80211AttributeMaxNumSchedScanSsids&) = delete;
Nl80211AttributeMaxNumSchedScanSsids& operator=(
const Nl80211AttributeMaxNumSchedScanSsids&) = delete;
};
class Nl80211AttributeRegType : public NetlinkU8Attribute {
public:
static const int kName;
static const char kNameString[];
Nl80211AttributeRegType() : NetlinkU8Attribute(kName, kNameString) {}
Nl80211AttributeRegType(const Nl80211AttributeRegType&) = delete;
Nl80211AttributeRegType& operator=(const Nl80211AttributeRegType&) = delete;
};
class Nl80211AttributeWiphyCoverageClass : public NetlinkU8Attribute {
public:
static const int kName;
static const char kNameString[];
Nl80211AttributeWiphyCoverageClass()
: NetlinkU8Attribute(kName, kNameString) {}
Nl80211AttributeWiphyCoverageClass(
const Nl80211AttributeWiphyCoverageClass&) = delete;
Nl80211AttributeWiphyCoverageClass& operator=(
const Nl80211AttributeWiphyCoverageClass&) = delete;
};
class Nl80211AttributeWiphyRetryLong : public NetlinkU8Attribute {
public:
static const int kName;
static const char kNameString[];
Nl80211AttributeWiphyRetryLong() : NetlinkU8Attribute(kName, kNameString) {}
Nl80211AttributeWiphyRetryLong(const Nl80211AttributeWiphyRetryLong&) =
delete;
Nl80211AttributeWiphyRetryLong& operator=(
const Nl80211AttributeWiphyRetryLong&) = delete;
};
class Nl80211AttributeWiphyRetryShort : public NetlinkU8Attribute {
public:
static const int kName;
static const char kNameString[];
Nl80211AttributeWiphyRetryShort() : NetlinkU8Attribute(kName, kNameString) {}
Nl80211AttributeWiphyRetryShort(const Nl80211AttributeWiphyRetryShort&) =
delete;
Nl80211AttributeWiphyRetryShort& operator=(
const Nl80211AttributeWiphyRetryShort&) = delete;
};
// U16.
class Nl80211AttributeMaxScanIeLen : public NetlinkU16Attribute {
public:
static const int kName;
static const char kNameString[];
Nl80211AttributeMaxScanIeLen() : NetlinkU16Attribute(kName, kNameString) {}
Nl80211AttributeMaxScanIeLen(const Nl80211AttributeMaxScanIeLen&) = delete;
Nl80211AttributeMaxScanIeLen& operator=(const Nl80211AttributeMaxScanIeLen&) =
delete;
};
class Nl80211AttributeMaxSchedScanIeLen : public NetlinkU16Attribute {
public:
static const int kName;
static const char kNameString[];
Nl80211AttributeMaxSchedScanIeLen()
: NetlinkU16Attribute(kName, kNameString) {}
Nl80211AttributeMaxSchedScanIeLen(const Nl80211AttributeMaxSchedScanIeLen&) =
delete;
Nl80211AttributeMaxSchedScanIeLen& operator=(
const Nl80211AttributeMaxSchedScanIeLen&) = delete;
};
class Nl80211AttributeReasonCode : public NetlinkU16Attribute {
public:
static const int kName;
static const char kNameString[];
Nl80211AttributeReasonCode() : NetlinkU16Attribute(kName, kNameString) {}
Nl80211AttributeReasonCode(const Nl80211AttributeReasonCode&) = delete;
Nl80211AttributeReasonCode& operator=(const Nl80211AttributeReasonCode&) =
delete;
};
class Nl80211AttributeStatusCode : public NetlinkU16Attribute {
public:
static const int kName;
static const char kNameString[];
Nl80211AttributeStatusCode() : NetlinkU16Attribute(kName, kNameString) {}
Nl80211AttributeStatusCode(const Nl80211AttributeStatusCode&) = delete;
Nl80211AttributeStatusCode& operator=(const Nl80211AttributeStatusCode&) =
delete;
};
// U32.
class Nl80211AttributeDuration : public NetlinkU32Attribute {
public:
static const int kName;
static const char kNameString[];
Nl80211AttributeDuration() : NetlinkU32Attribute(kName, kNameString) {}
Nl80211AttributeDuration(const Nl80211AttributeDuration&) = delete;
Nl80211AttributeDuration& operator=(const Nl80211AttributeDuration&) = delete;
};
class Nl80211AttributeDeviceApSme : public NetlinkU32Attribute {
public:
static const int kName;
static const char kNameString[];
Nl80211AttributeDeviceApSme() : NetlinkU32Attribute(kName, kNameString) {}
Nl80211AttributeDeviceApSme(const Nl80211AttributeDeviceApSme&) = delete;
Nl80211AttributeDeviceApSme& operator=(const Nl80211AttributeDeviceApSme&) =
delete;
};
class Nl80211AttributeFeatureFlags : public NetlinkU32Attribute {
public:
static const int kName;
static const char kNameString[];
Nl80211AttributeFeatureFlags() : NetlinkU32Attribute(kName, kNameString) {}
Nl80211AttributeFeatureFlags(const Nl80211AttributeFeatureFlags&) = delete;
Nl80211AttributeFeatureFlags& operator=(const Nl80211AttributeFeatureFlags&) =
delete;
};
class Nl80211AttributeGeneration : public NetlinkU32Attribute {
public:
static const int kName;
static const char kNameString[];
Nl80211AttributeGeneration() : NetlinkU32Attribute(kName, kNameString) {}
Nl80211AttributeGeneration(const Nl80211AttributeGeneration&) = delete;
Nl80211AttributeGeneration& operator=(const Nl80211AttributeGeneration&) =
delete;
};
class Nl80211AttributeIfindex : public NetlinkU32Attribute {
public:
static const int kName;
static const char kNameString[];
Nl80211AttributeIfindex() : NetlinkU32Attribute(kName, kNameString) {}
Nl80211AttributeIfindex(const Nl80211AttributeIfindex&) = delete;
Nl80211AttributeIfindex& operator=(const Nl80211AttributeIfindex&) = delete;
};
class Nl80211AttributeIftype : public NetlinkU32Attribute {
public:
static const int kName;
static const char kNameString[];
Nl80211AttributeIftype() : NetlinkU32Attribute(kName, kNameString) {}
Nl80211AttributeIftype(const Nl80211AttributeIftype&) = delete;
Nl80211AttributeIftype& operator=(const Nl80211AttributeIftype&) = delete;
};
class Nl80211AttributeKeyType : public NetlinkU32Attribute {
public:
static const int kName;
static const char kNameString[];
Nl80211AttributeKeyType() : NetlinkU32Attribute(kName, kNameString) {}
Nl80211AttributeKeyType(const Nl80211AttributeKeyType&) = delete;
Nl80211AttributeKeyType& operator=(const Nl80211AttributeKeyType&) = delete;
};
class Nl80211AttributeMaxRemainOnChannelDuration : public NetlinkU32Attribute {
public:
static const int kName;
static const char kNameString[];
Nl80211AttributeMaxRemainOnChannelDuration()
: NetlinkU32Attribute(kName, kNameString) {}
Nl80211AttributeMaxRemainOnChannelDuration(
const Nl80211AttributeMaxRemainOnChannelDuration&) = delete;
Nl80211AttributeMaxRemainOnChannelDuration& operator=(
const Nl80211AttributeMaxRemainOnChannelDuration&) = delete;
};
class Nl80211AttributeProbeRespOffload : public NetlinkU32Attribute {
public:
static const int kName;
static const char kNameString[];
Nl80211AttributeProbeRespOffload()
: NetlinkU32Attribute(kName, kNameString) {}
Nl80211AttributeProbeRespOffload(const Nl80211AttributeProbeRespOffload&) =
delete;
Nl80211AttributeProbeRespOffload& operator=(
const Nl80211AttributeProbeRespOffload&) = delete;
};
// 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) {}
Nl80211AttributeRegInitiator(const Nl80211AttributeRegInitiator&) = delete;
Nl80211AttributeRegInitiator& operator=(const Nl80211AttributeRegInitiator&) =
delete;
bool InitFromValue(const ByteString& data) override;
};
class Nl80211AttributeWiphy : public NetlinkU32Attribute {
public:
static const int kName;
static const char kNameString[];
Nl80211AttributeWiphy() : NetlinkU32Attribute(kName, kNameString) {}
Nl80211AttributeWiphy(const Nl80211AttributeWiphy&) = delete;
Nl80211AttributeWiphy& operator=(const Nl80211AttributeWiphy&) = delete;
};
class Nl80211AttributeWiphyAntennaAvailRx : public NetlinkU32Attribute {
public:
static const int kName;
static const char kNameString[];
Nl80211AttributeWiphyAntennaAvailRx()
: NetlinkU32Attribute(kName, kNameString) {}
Nl80211AttributeWiphyAntennaAvailRx(
const Nl80211AttributeWiphyAntennaAvailRx&) = delete;
Nl80211AttributeWiphyAntennaAvailRx& operator=(
const Nl80211AttributeWiphyAntennaAvailRx&) = delete;
};
class Nl80211AttributeWiphyAntennaAvailTx : public NetlinkU32Attribute {
public:
static const int kName;
static const char kNameString[];
Nl80211AttributeWiphyAntennaAvailTx()
: NetlinkU32Attribute(kName, kNameString) {}
Nl80211AttributeWiphyAntennaAvailTx(
const Nl80211AttributeWiphyAntennaAvailTx&) = delete;
Nl80211AttributeWiphyAntennaAvailTx& operator=(
const Nl80211AttributeWiphyAntennaAvailTx&) = delete;
};
class Nl80211AttributeWiphyAntennaRx : public NetlinkU32Attribute {
public:
static const int kName;
static const char kNameString[];
Nl80211AttributeWiphyAntennaRx() : NetlinkU32Attribute(kName, kNameString) {}
Nl80211AttributeWiphyAntennaRx(const Nl80211AttributeWiphyAntennaRx&) =
delete;
Nl80211AttributeWiphyAntennaRx& operator=(
const Nl80211AttributeWiphyAntennaRx&) = delete;
};
class Nl80211AttributeWiphyAntennaTx : public NetlinkU32Attribute {
public:
static const int kName;
static const char kNameString[];
Nl80211AttributeWiphyAntennaTx() : NetlinkU32Attribute(kName, kNameString) {}
Nl80211AttributeWiphyAntennaTx(const Nl80211AttributeWiphyAntennaTx&) =
delete;
Nl80211AttributeWiphyAntennaTx& operator=(
const Nl80211AttributeWiphyAntennaTx&) = delete;
};
class Nl80211AttributeWiphyFragThreshold : public NetlinkU32Attribute {
public:
static const int kName;
static const char kNameString[];
Nl80211AttributeWiphyFragThreshold()
: NetlinkU32Attribute(kName, kNameString) {}
Nl80211AttributeWiphyFragThreshold(
const Nl80211AttributeWiphyFragThreshold&) = delete;
Nl80211AttributeWiphyFragThreshold& operator=(
const Nl80211AttributeWiphyFragThreshold&) = delete;
};
class Nl80211AttributeWiphyFreq : public NetlinkU32Attribute {
public:
static const int kName;
static const char kNameString[];
Nl80211AttributeWiphyFreq() : NetlinkU32Attribute(kName, kNameString) {}
Nl80211AttributeWiphyFreq(const Nl80211AttributeWiphyFreq&) = delete;
Nl80211AttributeWiphyFreq& operator=(const Nl80211AttributeWiphyFreq&) =
delete;
};
class Nl80211AttributeChannelType : public NetlinkU32Attribute {
public:
static const int kName;
static const char kNameString[];
Nl80211AttributeChannelType() : NetlinkU32Attribute(kName, kNameString) {}
Nl80211AttributeChannelType(const Nl80211AttributeChannelType&) = delete;
Nl80211AttributeChannelType& operator=(const Nl80211AttributeChannelType&) =
delete;
};
class Nl80211AttributeChannelWidth : public NetlinkU32Attribute {
public:
static const int kName;
static const char kNameString[];
Nl80211AttributeChannelWidth() : NetlinkU32Attribute(kName, kNameString) {}
Nl80211AttributeChannelWidth(const Nl80211AttributeChannelWidth&) = delete;
Nl80211AttributeChannelWidth& operator=(const Nl80211AttributeChannelWidth&) =
delete;
};
class Nl80211AttributeCenterFreq1 : public NetlinkU32Attribute {
public:
static const int kName;
static const char kNameString[];
Nl80211AttributeCenterFreq1() : NetlinkU32Attribute(kName, kNameString) {}
Nl80211AttributeCenterFreq1(const Nl80211AttributeCenterFreq1&) = delete;
Nl80211AttributeCenterFreq1& operator=(const Nl80211AttributeCenterFreq1&) =
delete;
};
class Nl80211AttributeCenterFreq2 : public NetlinkU32Attribute {
public:
static const int kName;
static const char kNameString[];
Nl80211AttributeCenterFreq2() : NetlinkU32Attribute(kName, kNameString) {}
Nl80211AttributeCenterFreq2(const Nl80211AttributeCenterFreq2&) = delete;
Nl80211AttributeCenterFreq2& operator=(const Nl80211AttributeCenterFreq2&) =
delete;
};
class Nl80211AttributeWiphyRtsThreshold : public NetlinkU32Attribute {
public:
static const int kName;
static const char kNameString[];
Nl80211AttributeWiphyRtsThreshold()
: NetlinkU32Attribute(kName, kNameString) {}
Nl80211AttributeWiphyRtsThreshold(const Nl80211AttributeWiphyRtsThreshold&) =
delete;
Nl80211AttributeWiphyRtsThreshold& operator=(
const Nl80211AttributeWiphyRtsThreshold&) = delete;
};
// U64.
class Nl80211AttributeCookie : public NetlinkU64Attribute {
public:
static const int kName;
static const char kNameString[];
Nl80211AttributeCookie() : NetlinkU64Attribute(kName, kNameString) {}
Nl80211AttributeCookie(const Nl80211AttributeCookie&) = delete;
Nl80211AttributeCookie& operator=(const Nl80211AttributeCookie&) = delete;
};
// Flag.
class Nl80211AttributeControlPortEthertype : public NetlinkFlagAttribute {
public:
static const int kName;
static const char kNameString[];
Nl80211AttributeControlPortEthertype()
: NetlinkFlagAttribute(kName, kNameString) {}
Nl80211AttributeControlPortEthertype(
const Nl80211AttributeControlPortEthertype&) = delete;
Nl80211AttributeControlPortEthertype& operator=(
const Nl80211AttributeControlPortEthertype&) = delete;
};
class Nl80211AttributeDisconnectedByAp : public NetlinkFlagAttribute {
public:
static const int kName;
static const char kNameString[];
Nl80211AttributeDisconnectedByAp()
: NetlinkFlagAttribute(kName, kNameString) {}
Nl80211AttributeDisconnectedByAp(const Nl80211AttributeDisconnectedByAp&) =
delete;
Nl80211AttributeDisconnectedByAp& operator=(
const Nl80211AttributeDisconnectedByAp&) = delete;
};
class Nl80211AttributeOffchannelTxOk : public NetlinkFlagAttribute {
public:
static const int kName;
static const char kNameString[];
Nl80211AttributeOffchannelTxOk() : NetlinkFlagAttribute(kName, kNameString) {}
Nl80211AttributeOffchannelTxOk(const Nl80211AttributeOffchannelTxOk&) =
delete;
Nl80211AttributeOffchannelTxOk& operator=(
const Nl80211AttributeOffchannelTxOk&) = delete;
};
class Nl80211AttributeRoamSupport : public NetlinkFlagAttribute {
public:
static const int kName;
static const char kNameString[];
Nl80211AttributeRoamSupport() : NetlinkFlagAttribute(kName, kNameString) {}
Nl80211AttributeRoamSupport(const Nl80211AttributeRoamSupport&) = delete;
Nl80211AttributeRoamSupport& operator=(const Nl80211AttributeRoamSupport&) =
delete;
};
class Nl80211AttributeSupportApUapsd : public NetlinkFlagAttribute {
public:
static const int kName;
static const char kNameString[];
Nl80211AttributeSupportApUapsd() : NetlinkFlagAttribute(kName, kNameString) {}
Nl80211AttributeSupportApUapsd(const Nl80211AttributeSupportApUapsd&) =
delete;
Nl80211AttributeSupportApUapsd& operator=(
const Nl80211AttributeSupportApUapsd&) = delete;
};
class Nl80211AttributeSupportIbssRsn : public NetlinkFlagAttribute {
public:
static const int kName;
static const char kNameString[];
Nl80211AttributeSupportIbssRsn() : NetlinkFlagAttribute(kName, kNameString) {}
Nl80211AttributeSupportIbssRsn(const Nl80211AttributeSupportIbssRsn&) =
delete;
Nl80211AttributeSupportIbssRsn& operator=(
const Nl80211AttributeSupportIbssRsn&) = delete;
};
class Nl80211AttributeSupportMeshAuth : public NetlinkFlagAttribute {
public:
static const int kName;
static const char kNameString[];
Nl80211AttributeSupportMeshAuth()
: NetlinkFlagAttribute(kName, kNameString) {}
Nl80211AttributeSupportMeshAuth(const Nl80211AttributeSupportMeshAuth&) =
delete;
Nl80211AttributeSupportMeshAuth& operator=(
const Nl80211AttributeSupportMeshAuth&) = delete;
};
class Nl80211AttributeTdlsExternalSetup : public NetlinkFlagAttribute {
public:
static const int kName;
static const char kNameString[];
Nl80211AttributeTdlsExternalSetup()
: NetlinkFlagAttribute(kName, kNameString) {}
Nl80211AttributeTdlsExternalSetup(const Nl80211AttributeTdlsExternalSetup&) =
delete;
Nl80211AttributeTdlsExternalSetup& operator=(
const Nl80211AttributeTdlsExternalSetup&) = delete;
};
class Nl80211AttributeTdlsSupport : public NetlinkFlagAttribute {
public:
static const int kName;
static const char kNameString[];
Nl80211AttributeTdlsSupport() : NetlinkFlagAttribute(kName, kNameString) {}
Nl80211AttributeTdlsSupport(const Nl80211AttributeTdlsSupport&) = delete;
Nl80211AttributeTdlsSupport& operator=(const Nl80211AttributeTdlsSupport&) =
delete;
};
class Nl80211AttributeTimedOut : public NetlinkFlagAttribute {
public:
static const int kName;
static const char kNameString[];
Nl80211AttributeTimedOut() : NetlinkFlagAttribute(kName, kNameString) {}
Nl80211AttributeTimedOut(const Nl80211AttributeTimedOut&) = delete;
Nl80211AttributeTimedOut& operator=(const Nl80211AttributeTimedOut&) = delete;
};
// String.
class Nl80211AttributeRegAlpha2 : public NetlinkStringAttribute {
public:
static const int kName;
static const char kNameString[];
Nl80211AttributeRegAlpha2() : NetlinkStringAttribute(kName, kNameString) {}
Nl80211AttributeRegAlpha2(const Nl80211AttributeRegAlpha2&) = delete;
Nl80211AttributeRegAlpha2& operator=(const Nl80211AttributeRegAlpha2&) =
delete;
};
class Nl80211AttributeWiphyName : public NetlinkStringAttribute {
public:
static const int kName;
static const char kNameString[];
Nl80211AttributeWiphyName() : NetlinkStringAttribute(kName, kNameString) {}
Nl80211AttributeWiphyName(const Nl80211AttributeWiphyName&) = delete;
Nl80211AttributeWiphyName& operator=(const Nl80211AttributeWiphyName&) =
delete;
};
// 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 kMeshIdAttributeId;
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();
Nl80211AttributeBss(const Nl80211AttributeBss&) = delete;
Nl80211AttributeBss& operator=(const Nl80211AttributeBss&) = delete;
private:
static bool ParseInformationElements(AttributeList* attribute_list,
size_t id,
const std::string& attribute_name,
ByteString data);
};
class Nl80211AttributeCqm : public NetlinkNestedAttribute {
public:
static const int kName;
static const char kNameString[];
Nl80211AttributeCqm();
Nl80211AttributeCqm(const Nl80211AttributeCqm&) = delete;
Nl80211AttributeCqm& operator=(const Nl80211AttributeCqm&) = delete;
};
class Nl80211AttributeRegRules : public NetlinkNestedAttribute {
public:
static const int kName;
static const char kNameString[];
Nl80211AttributeRegRules();
Nl80211AttributeRegRules(const Nl80211AttributeRegRules&) = delete;
Nl80211AttributeRegRules& operator=(const Nl80211AttributeRegRules&) = delete;
};
class Nl80211AttributeScanFrequencies : public NetlinkNestedAttribute {
public:
static const int kName;
static const char kNameString[];
Nl80211AttributeScanFrequencies();
Nl80211AttributeScanFrequencies(const Nl80211AttributeScanFrequencies&) =
delete;
Nl80211AttributeScanFrequencies& operator=(
const Nl80211AttributeScanFrequencies&) = delete;
};
class Nl80211AttributeScanSsids : public NetlinkNestedAttribute {
public:
static const int kName;
static const char kNameString[];
Nl80211AttributeScanSsids();
Nl80211AttributeScanSsids(const Nl80211AttributeScanSsids&) = delete;
Nl80211AttributeScanSsids& operator=(const Nl80211AttributeScanSsids&) =
delete;
};
class Nl80211AttributeStaInfo : public NetlinkNestedAttribute {
public:
static const int kName;
static const char kNameString[];
Nl80211AttributeStaInfo();
Nl80211AttributeStaInfo(const Nl80211AttributeStaInfo&) = delete;
Nl80211AttributeStaInfo& operator=(const Nl80211AttributeStaInfo&) = delete;
};
class Nl80211AttributeMPathInfo : public NetlinkNestedAttribute {
public:
static const int kName;
static const char kNameString[];
Nl80211AttributeMPathInfo();
Nl80211AttributeMPathInfo(const Nl80211AttributeMPathInfo&) = delete;
Nl80211AttributeMPathInfo& operator=(const Nl80211AttributeMPathInfo&) =
delete;
};
class Nl80211AttributeSupportedIftypes : public NetlinkNestedAttribute {
public:
static const int kName;
static const char kNameString[];
Nl80211AttributeSupportedIftypes();
Nl80211AttributeSupportedIftypes(const Nl80211AttributeSupportedIftypes&) =
delete;
Nl80211AttributeSupportedIftypes& operator=(
const Nl80211AttributeSupportedIftypes&) = delete;
};
class Nl80211AttributeWiphyBands : public NetlinkNestedAttribute {
public:
static const int kName;
static const char kNameString[];
Nl80211AttributeWiphyBands();
Nl80211AttributeWiphyBands(const Nl80211AttributeWiphyBands&) = delete;
Nl80211AttributeWiphyBands& operator=(const Nl80211AttributeWiphyBands&) =
delete;
};
#if !defined(DISABLE_WAKE_ON_WIFI)
class Nl80211AttributeWowlanTriggers : public NetlinkNestedAttribute {
public:
static const int kName;
static const char kNameString[];
explicit Nl80211AttributeWowlanTriggers(
NetlinkMessage::MessageContext context);
Nl80211AttributeWowlanTriggers(const Nl80211AttributeWowlanTriggers&) =
delete;
Nl80211AttributeWowlanTriggers& operator=(
const Nl80211AttributeWowlanTriggers&) = delete;
};
class Nl80211AttributeWowlanTriggersSupported : public NetlinkNestedAttribute {
public:
static const int kName;
static const char kNameString[];
Nl80211AttributeWowlanTriggersSupported();
Nl80211AttributeWowlanTriggersSupported(
const Nl80211AttributeWowlanTriggersSupported&) = delete;
Nl80211AttributeWowlanTriggersSupported& operator=(
const Nl80211AttributeWowlanTriggersSupported&) = delete;
};
#endif // DISABLE_WAKE_ON_WIFI
// Raw.
class Nl80211AttributeCipherSuites : public NetlinkRawAttribute {
public:
static const int kName;
static const char kNameString[];
Nl80211AttributeCipherSuites() : NetlinkRawAttribute(kName, kNameString) {}
Nl80211AttributeCipherSuites(const Nl80211AttributeCipherSuites&) = delete;
Nl80211AttributeCipherSuites& operator=(const Nl80211AttributeCipherSuites&) =
delete;
};
class Nl80211AttributeFrame : public NetlinkRawAttribute {
public:
static const int kName;
static const char kNameString[];
Nl80211AttributeFrame() : NetlinkRawAttribute(kName, kNameString) {}
Nl80211AttributeFrame(const Nl80211AttributeFrame&) = delete;
Nl80211AttributeFrame& operator=(const Nl80211AttributeFrame&) = delete;
};
class Nl80211AttributeHtCapabilityMask : public NetlinkRawAttribute {
public:
static const int kName;
static const char kNameString[];
Nl80211AttributeHtCapabilityMask()
: NetlinkRawAttribute(kName, kNameString) {}
Nl80211AttributeHtCapabilityMask(const Nl80211AttributeHtCapabilityMask&) =
delete;
Nl80211AttributeHtCapabilityMask& operator=(
const Nl80211AttributeHtCapabilityMask&) = delete;
};
class Nl80211AttributeKeySeq : public NetlinkRawAttribute {
public:
static const int kName;
static const char kNameString[];
Nl80211AttributeKeySeq() : NetlinkRawAttribute(kName, kNameString) {}
Nl80211AttributeKeySeq(const Nl80211AttributeKeySeq&) = delete;
Nl80211AttributeKeySeq& operator=(const Nl80211AttributeKeySeq&) = delete;
};
class Nl80211AttributeMac : public NetlinkRawAttribute {
public:
static const int kName;
static const char kNameString[];
Nl80211AttributeMac() : NetlinkRawAttribute(kName, kNameString) {}
Nl80211AttributeMac(const Nl80211AttributeMac&) = delete;
Nl80211AttributeMac& operator=(const Nl80211AttributeMac&) = delete;
bool ToString(std::string* value) const override;
// 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);
};
class Nl80211AttributeRespIe : public NetlinkRawAttribute {
public:
static const int kName;
static const char kNameString[];
Nl80211AttributeRespIe() : NetlinkRawAttribute(kName, kNameString) {}
Nl80211AttributeRespIe(const Nl80211AttributeRespIe&) = delete;
Nl80211AttributeRespIe& operator=(const Nl80211AttributeRespIe&) = delete;
};
class Nl80211AttributeSurveyInfo : public NetlinkNestedAttribute {
public:
static const int kName;
static const char kNameString[];
Nl80211AttributeSurveyInfo();
Nl80211AttributeSurveyInfo(const Nl80211AttributeSurveyInfo&) = delete;
Nl80211AttributeSurveyInfo& operator=(const Nl80211AttributeSurveyInfo&) =
delete;
};
class Nl80211AttributeSupportedCommands : public NetlinkNestedAttribute {
public:
static const int kName;
static const char kNameString[];
Nl80211AttributeSupportedCommands();
Nl80211AttributeSupportedCommands(const Nl80211AttributeSupportedCommands&) =
delete;
Nl80211AttributeSupportedCommands& operator=(
const Nl80211AttributeSupportedCommands&) = delete;
};
} // namespace shill
#endif // SHILL_NET_NL80211_ATTRIBUTE_H_