/*
 * This file is auto-generated. Modifications will be lost.
 *
 * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
 * for more information.
 */
#ifndef __UAPI_NCSI_NETLINK_H__
#define __UAPI_NCSI_NETLINK_H__
enum ncsi_nl_commands {
  NCSI_CMD_UNSPEC,
  NCSI_CMD_PKG_INFO,
  NCSI_CMD_SET_INTERFACE,
  NCSI_CMD_CLEAR_INTERFACE,
  NCSI_CMD_SEND_CMD,
  NCSI_CMD_SET_PACKAGE_MASK,
  NCSI_CMD_SET_CHANNEL_MASK,
  __NCSI_CMD_AFTER_LAST,
  NCSI_CMD_MAX = __NCSI_CMD_AFTER_LAST - 1
};
enum ncsi_nl_attrs {
  NCSI_ATTR_UNSPEC,
  NCSI_ATTR_IFINDEX,
  NCSI_ATTR_PACKAGE_LIST,
  NCSI_ATTR_PACKAGE_ID,
  NCSI_ATTR_CHANNEL_ID,
  NCSI_ATTR_DATA,
  NCSI_ATTR_MULTI_FLAG,
  NCSI_ATTR_PACKAGE_MASK,
  NCSI_ATTR_CHANNEL_MASK,
  __NCSI_ATTR_AFTER_LAST,
  NCSI_ATTR_MAX = __NCSI_ATTR_AFTER_LAST - 1
};
enum ncsi_nl_pkg_attrs {
  NCSI_PKG_ATTR_UNSPEC,
  NCSI_PKG_ATTR,
  NCSI_PKG_ATTR_ID,
  NCSI_PKG_ATTR_FORCED,
  NCSI_PKG_ATTR_CHANNEL_LIST,
  __NCSI_PKG_ATTR_AFTER_LAST,
  NCSI_PKG_ATTR_MAX = __NCSI_PKG_ATTR_AFTER_LAST - 1
};
enum ncsi_nl_channel_attrs {
  NCSI_CHANNEL_ATTR_UNSPEC,
  NCSI_CHANNEL_ATTR,
  NCSI_CHANNEL_ATTR_ID,
  NCSI_CHANNEL_ATTR_VERSION_MAJOR,
  NCSI_CHANNEL_ATTR_VERSION_MINOR,
  NCSI_CHANNEL_ATTR_VERSION_STR,
  NCSI_CHANNEL_ATTR_LINK_STATE,
  NCSI_CHANNEL_ATTR_ACTIVE,
  NCSI_CHANNEL_ATTR_FORCED,
  NCSI_CHANNEL_ATTR_VLAN_LIST,
  NCSI_CHANNEL_ATTR_VLAN_ID,
  __NCSI_CHANNEL_ATTR_AFTER_LAST,
  NCSI_CHANNEL_ATTR_MAX = __NCSI_CHANNEL_ATTR_AFTER_LAST - 1
};
#endif
