blob: a46971a045434905d856aa947f3f8c3ebb1db615 [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.
#include "shill/net/control_netlink_attribute.h"
#include <linux/genetlink.h>
#include <base/logging.h>
namespace shill {
const int ControlAttributeFamilyId::kName = CTRL_ATTR_FAMILY_ID;
const char ControlAttributeFamilyId::kNameString[] = "CTRL_ATTR_FAMILY_ID";
const int ControlAttributeFamilyName::kName = CTRL_ATTR_FAMILY_NAME;
const char ControlAttributeFamilyName::kNameString[] = "CTRL_ATTR_FAMILY_NAME";
const int ControlAttributeVersion::kName = CTRL_ATTR_VERSION;
const char ControlAttributeVersion::kNameString[] = "CTRL_ATTR_VERSION";
const int ControlAttributeHdrSize::kName = CTRL_ATTR_HDRSIZE;
const char ControlAttributeHdrSize::kNameString[] = "CTRL_ATTR_HDRSIZE";
const int ControlAttributeMaxAttr::kName = CTRL_ATTR_MAXATTR;
const char ControlAttributeMaxAttr::kNameString[] = "CTRL_ATTR_MAXATTR";
const int ControlAttributeAttrOps::kName = CTRL_ATTR_OPS;
const char ControlAttributeAttrOps::kNameString[] = "CTRL_ATTR_OPS";
ControlAttributeAttrOps::ControlAttributeAttrOps()
: NetlinkNestedAttribute(kName, kNameString) {
NestedData array(kTypeNested, "FIRST", true);
array.deeper_nesting.insert(AttrDataPair(
CTRL_ATTR_OP_UNSPEC, NestedData(kTypeU32, "CTRL_ATTR_OP_UNSPEC", false)));
array.deeper_nesting.insert(AttrDataPair(
CTRL_ATTR_OP_ID, NestedData(kTypeU32, "CTRL_ATTR_OP_ID", false)));
array.deeper_nesting.insert(AttrDataPair(
CTRL_ATTR_OP_UNSPEC, NestedData(kTypeU32, "CTRL_ATTR_OP_UNSPEC", false)));
nested_template_.insert(AttrDataPair(kArrayAttrEnumVal, array));
}
const int ControlAttributeMcastGroups::kName = CTRL_ATTR_MCAST_GROUPS;
const char ControlAttributeMcastGroups::kNameString[] =
"CTRL_ATTR_MCAST_GROUPS";
ControlAttributeMcastGroups::ControlAttributeMcastGroups()
: NetlinkNestedAttribute(kName, kNameString) {
NestedData array(kTypeNested, "FIRST", true);
array.deeper_nesting.insert(
AttrDataPair(CTRL_ATTR_MCAST_GRP_UNSPEC,
NestedData(kTypeU32, "CTRL_ATTR_MCAST_GRP_UNSPEC", false)));
array.deeper_nesting.insert(
AttrDataPair(CTRL_ATTR_MCAST_GRP_NAME,
NestedData(kTypeString, "CTRL_ATTR_MCAST_GRP_NAME", false)));
array.deeper_nesting.insert(
AttrDataPair(CTRL_ATTR_MCAST_GRP_ID,
NestedData(kTypeU32, "CTRL_ATTR_MCAST_GRP_ID", false)));
nested_template_.insert(AttrDataPair(kArrayAttrEnumVal, array));
}
} // namespace shill