blob: 2268ccff24659bf14f59127774e57827961b41f1 [file] [log] [blame]
Wade Guthrief162f8b2013-02-27 14:13:55 -08001// Copyright (c) 2013 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
5#ifndef SHILL_CONTROL_NETLINK_ATTRIBUTE_H_
6#define SHILL_CONTROL_NETLINK_ATTRIBUTE_H_
7
Wade Guthrie89e6cb32013-03-07 08:03:45 -08008#include <base/basictypes.h>
Wade Guthrief162f8b2013-02-27 14:13:55 -08009
10#include "shill/netlink_attribute.h"
11
12struct nlattr;
13
14namespace shill {
15
16// Control.
17
18class ControlAttributeFamilyId : public NetlinkU16Attribute {
19 public:
20 static const int kName;
21 static const char kNameString[];
22 ControlAttributeFamilyId() : NetlinkU16Attribute(kName, kNameString) {}
Wade Guthrie89e6cb32013-03-07 08:03:45 -080023
24 private:
25 DISALLOW_COPY_AND_ASSIGN(ControlAttributeFamilyId);
Wade Guthrief162f8b2013-02-27 14:13:55 -080026};
27
28class ControlAttributeFamilyName : public NetlinkStringAttribute {
29 public:
30 static const int kName;
31 static const char kNameString[];
32 ControlAttributeFamilyName() : NetlinkStringAttribute(kName, kNameString) {}
Wade Guthrie89e6cb32013-03-07 08:03:45 -080033
34 private:
35 DISALLOW_COPY_AND_ASSIGN(ControlAttributeFamilyName);
Wade Guthrief162f8b2013-02-27 14:13:55 -080036};
37
38class ControlAttributeVersion : public NetlinkU32Attribute {
39 public:
40 static const int kName;
41 static const char kNameString[];
42 ControlAttributeVersion() : NetlinkU32Attribute(kName, kNameString) {}
Wade Guthrie89e6cb32013-03-07 08:03:45 -080043
44 private:
45 DISALLOW_COPY_AND_ASSIGN(ControlAttributeVersion);
Wade Guthrief162f8b2013-02-27 14:13:55 -080046};
47
48class ControlAttributeHdrSize : public NetlinkU32Attribute {
49 public:
50 static const int kName;
51 static const char kNameString[];
52 ControlAttributeHdrSize() : NetlinkU32Attribute(kName, kNameString) {}
Wade Guthrie89e6cb32013-03-07 08:03:45 -080053
54 private:
55 DISALLOW_COPY_AND_ASSIGN(ControlAttributeHdrSize);
Wade Guthrief162f8b2013-02-27 14:13:55 -080056};
57
58class ControlAttributeMaxAttr : public NetlinkU32Attribute {
59 public:
60 static const int kName;
61 static const char kNameString[];
62 ControlAttributeMaxAttr() : NetlinkU32Attribute(kName, kNameString) {}
Wade Guthrie89e6cb32013-03-07 08:03:45 -080063
64 private:
65 DISALLOW_COPY_AND_ASSIGN(ControlAttributeMaxAttr);
Wade Guthrief162f8b2013-02-27 14:13:55 -080066};
67
68class ControlAttributeAttrOps : public NetlinkNestedAttribute {
69 public:
70 static const int kName;
71 static const char kNameString[];
72 ControlAttributeAttrOps();
Wade Guthrie89e6cb32013-03-07 08:03:45 -080073
74 private:
75 DISALLOW_COPY_AND_ASSIGN(ControlAttributeAttrOps);
Wade Guthrief162f8b2013-02-27 14:13:55 -080076};
77
78class ControlAttributeMcastGroups : public NetlinkNestedAttribute {
79 public:
80 static const int kName;
81 static const char kNameString[];
82 ControlAttributeMcastGroups();
Wade Guthrie89e6cb32013-03-07 08:03:45 -080083
84 private:
85 DISALLOW_COPY_AND_ASSIGN(ControlAttributeMcastGroups);
Wade Guthrief162f8b2013-02-27 14:13:55 -080086};
87
88} // namespace shill
89
90#endif // SHILL_CONTROL_NETLINK_ATTRIBUTE_H_