/****************************************************************************
 ****************************************************************************
 ***
 ***   This header was automatically generated from a Linux kernel header
 ***   of the same name, to make information necessary for userspace to
 ***   call into the kernel available to libc.  It contains only constants,
 ***   structures, and macros generated from the original header, and thus,
 ***   contains no copyrightable information.
 ***
 ***   To edit the content of this header, modify the corresponding
 ***   source file (e.g. under external/kernel-headers/original/) then
 ***   run bionic/libc/kernel/tools/update_all.py
 ***
 ***   Any manual change here will be lost the next time this script will
 ***   be run. You've been warned!
 ***
 ****************************************************************************
 ****************************************************************************/
#ifndef _UAPI_LINUX_BATMAN_ADV_H_
#define _UAPI_LINUX_BATMAN_ADV_H_
#define BATADV_NL_NAME "batadv"
#define BATADV_NL_MCAST_GROUP_CONFIG "config"
#define BATADV_NL_MCAST_GROUP_TPMETER "tpmeter"
enum batadv_tt_client_flags {
  BATADV_TT_CLIENT_DEL = (1 << 0),
  BATADV_TT_CLIENT_ROAM = (1 << 1),
  BATADV_TT_CLIENT_WIFI = (1 << 4),
  BATADV_TT_CLIENT_ISOLA = (1 << 5),
  BATADV_TT_CLIENT_NOPURGE = (1 << 8),
  BATADV_TT_CLIENT_NEW = (1 << 9),
  BATADV_TT_CLIENT_PENDING = (1 << 10),
  BATADV_TT_CLIENT_TEMP = (1 << 11),
};
enum batadv_mcast_flags_priv {
  BATADV_MCAST_FLAGS_BRIDGED = (1 << 0),
  BATADV_MCAST_FLAGS_QUERIER_IPV4_EXISTS = (1 << 1),
  BATADV_MCAST_FLAGS_QUERIER_IPV6_EXISTS = (1 << 2),
  BATADV_MCAST_FLAGS_QUERIER_IPV4_SHADOWING = (1 << 3),
  BATADV_MCAST_FLAGS_QUERIER_IPV6_SHADOWING = (1 << 4),
};
enum batadv_gw_modes {
  BATADV_GW_MODE_OFF,
  BATADV_GW_MODE_CLIENT,
  BATADV_GW_MODE_SERVER,
};
enum batadv_nl_attrs {
  BATADV_ATTR_UNSPEC,
  BATADV_ATTR_VERSION,
  BATADV_ATTR_ALGO_NAME,
  BATADV_ATTR_MESH_IFINDEX,
  BATADV_ATTR_MESH_IFNAME,
  BATADV_ATTR_MESH_ADDRESS,
  BATADV_ATTR_HARD_IFINDEX,
  BATADV_ATTR_HARD_IFNAME,
  BATADV_ATTR_HARD_ADDRESS,
  BATADV_ATTR_ORIG_ADDRESS,
  BATADV_ATTR_TPMETER_RESULT,
  BATADV_ATTR_TPMETER_TEST_TIME,
  BATADV_ATTR_TPMETER_BYTES,
  BATADV_ATTR_TPMETER_COOKIE,
  BATADV_ATTR_PAD,
  BATADV_ATTR_ACTIVE,
  BATADV_ATTR_TT_ADDRESS,
  BATADV_ATTR_TT_TTVN,
  BATADV_ATTR_TT_LAST_TTVN,
  BATADV_ATTR_TT_CRC32,
  BATADV_ATTR_TT_VID,
  BATADV_ATTR_TT_FLAGS,
  BATADV_ATTR_FLAG_BEST,
  BATADV_ATTR_LAST_SEEN_MSECS,
  BATADV_ATTR_NEIGH_ADDRESS,
  BATADV_ATTR_TQ,
  BATADV_ATTR_THROUGHPUT,
  BATADV_ATTR_BANDWIDTH_UP,
  BATADV_ATTR_BANDWIDTH_DOWN,
  BATADV_ATTR_ROUTER,
  BATADV_ATTR_BLA_OWN,
  BATADV_ATTR_BLA_ADDRESS,
  BATADV_ATTR_BLA_VID,
  BATADV_ATTR_BLA_BACKBONE,
  BATADV_ATTR_BLA_CRC,
  BATADV_ATTR_DAT_CACHE_IP4ADDRESS,
  BATADV_ATTR_DAT_CACHE_HWADDRESS,
  BATADV_ATTR_DAT_CACHE_VID,
  BATADV_ATTR_MCAST_FLAGS,
  BATADV_ATTR_MCAST_FLAGS_PRIV,
  BATADV_ATTR_VLANID,
  BATADV_ATTR_AGGREGATED_OGMS_ENABLED,
  BATADV_ATTR_AP_ISOLATION_ENABLED,
  BATADV_ATTR_ISOLATION_MARK,
  BATADV_ATTR_ISOLATION_MASK,
  BATADV_ATTR_BONDING_ENABLED,
  BATADV_ATTR_BRIDGE_LOOP_AVOIDANCE_ENABLED,
  BATADV_ATTR_DISTRIBUTED_ARP_TABLE_ENABLED,
  BATADV_ATTR_FRAGMENTATION_ENABLED,
  BATADV_ATTR_GW_BANDWIDTH_DOWN,
  BATADV_ATTR_GW_BANDWIDTH_UP,
  BATADV_ATTR_GW_MODE,
  BATADV_ATTR_GW_SEL_CLASS,
  BATADV_ATTR_HOP_PENALTY,
  BATADV_ATTR_LOG_LEVEL,
  BATADV_ATTR_MULTICAST_FORCEFLOOD_ENABLED,
  BATADV_ATTR_NETWORK_CODING_ENABLED,
  BATADV_ATTR_ORIG_INTERVAL,
  BATADV_ATTR_ELP_INTERVAL,
  BATADV_ATTR_THROUGHPUT_OVERRIDE,
  BATADV_ATTR_MULTICAST_FANOUT,
  __BATADV_ATTR_AFTER_LAST,
  NUM_BATADV_ATTR = __BATADV_ATTR_AFTER_LAST,
  BATADV_ATTR_MAX = __BATADV_ATTR_AFTER_LAST - 1
};
enum batadv_nl_commands {
  BATADV_CMD_UNSPEC,
  BATADV_CMD_GET_MESH,
  BATADV_CMD_GET_MESH_INFO = BATADV_CMD_GET_MESH,
  BATADV_CMD_TP_METER,
  BATADV_CMD_TP_METER_CANCEL,
  BATADV_CMD_GET_ROUTING_ALGOS,
  BATADV_CMD_GET_HARDIF,
  BATADV_CMD_GET_HARDIFS = BATADV_CMD_GET_HARDIF,
  BATADV_CMD_GET_TRANSTABLE_LOCAL,
  BATADV_CMD_GET_TRANSTABLE_GLOBAL,
  BATADV_CMD_GET_ORIGINATORS,
  BATADV_CMD_GET_NEIGHBORS,
  BATADV_CMD_GET_GATEWAYS,
  BATADV_CMD_GET_BLA_CLAIM,
  BATADV_CMD_GET_BLA_BACKBONE,
  BATADV_CMD_GET_DAT_CACHE,
  BATADV_CMD_GET_MCAST_FLAGS,
  BATADV_CMD_SET_MESH,
  BATADV_CMD_SET_HARDIF,
  BATADV_CMD_GET_VLAN,
  BATADV_CMD_SET_VLAN,
  __BATADV_CMD_AFTER_LAST,
  BATADV_CMD_MAX = __BATADV_CMD_AFTER_LAST - 1
};
enum batadv_tp_meter_reason {
  BATADV_TP_REASON_COMPLETE = 3,
  BATADV_TP_REASON_CANCEL = 4,
  BATADV_TP_REASON_DST_UNREACHABLE = 128,
  BATADV_TP_REASON_RESEND_LIMIT = 129,
  BATADV_TP_REASON_ALREADY_ONGOING = 130,
  BATADV_TP_REASON_MEMORY_ERROR = 131,
  BATADV_TP_REASON_CANT_SEND = 132,
  BATADV_TP_REASON_TOO_MANY = 133,
};
#endif
