/****************************************************************************
 ****************************************************************************
 ***
 ***   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_SMC_H_
#define _UAPI_LINUX_SMC_H_
enum {
  SMC_PNETID_UNSPEC,
  SMC_PNETID_NAME,
  SMC_PNETID_ETHNAME,
  SMC_PNETID_IBNAME,
  SMC_PNETID_IBPORT,
  __SMC_PNETID_MAX,
  SMC_PNETID_MAX = __SMC_PNETID_MAX - 1
};
enum {
  SMC_PNETID_GET = 1,
  SMC_PNETID_ADD,
  SMC_PNETID_DEL,
  SMC_PNETID_FLUSH
};
#define SMCR_GENL_FAMILY_NAME "SMC_PNETID"
#define SMCR_GENL_FAMILY_VERSION 1
#define SMC_GENL_FAMILY_NAME "SMC_GEN_NETLINK"
#define SMC_GENL_FAMILY_VERSION 1
#define SMC_PCI_ID_STR_LEN 16
#define SMC_MAX_HOSTNAME_LEN 32
#define SMC_MAX_UEID 4
#define SMC_MAX_EID_LEN 32
enum {
  SMC_NETLINK_GET_SYS_INFO = 1,
  SMC_NETLINK_GET_LGR_SMCR,
  SMC_NETLINK_GET_LINK_SMCR,
  SMC_NETLINK_GET_LGR_SMCD,
  SMC_NETLINK_GET_DEV_SMCD,
  SMC_NETLINK_GET_DEV_SMCR,
  SMC_NETLINK_GET_STATS,
  SMC_NETLINK_GET_FBACK_STATS,
  SMC_NETLINK_DUMP_UEID,
  SMC_NETLINK_ADD_UEID,
  SMC_NETLINK_REMOVE_UEID,
  SMC_NETLINK_FLUSH_UEID,
  SMC_NETLINK_DUMP_SEID,
  SMC_NETLINK_ENABLE_SEID,
  SMC_NETLINK_DISABLE_SEID,
  SMC_NETLINK_DUMP_HS_LIMITATION,
  SMC_NETLINK_ENABLE_HS_LIMITATION,
  SMC_NETLINK_DISABLE_HS_LIMITATION,
};
enum {
  SMC_GEN_UNSPEC,
  SMC_GEN_SYS_INFO,
  SMC_GEN_LGR_SMCR,
  SMC_GEN_LINK_SMCR,
  SMC_GEN_LGR_SMCD,
  SMC_GEN_DEV_SMCD,
  SMC_GEN_DEV_SMCR,
  SMC_GEN_STATS,
  SMC_GEN_FBACK_STATS,
  __SMC_GEN_MAX,
  SMC_GEN_MAX = __SMC_GEN_MAX - 1
};
enum {
  SMC_NLA_SYS_UNSPEC,
  SMC_NLA_SYS_VER,
  SMC_NLA_SYS_REL,
  SMC_NLA_SYS_IS_ISM_V2,
  SMC_NLA_SYS_LOCAL_HOST,
  SMC_NLA_SYS_SEID,
  SMC_NLA_SYS_IS_SMCR_V2,
  __SMC_NLA_SYS_MAX,
  SMC_NLA_SYS_MAX = __SMC_NLA_SYS_MAX - 1
};
enum {
  SMC_NLA_LGR_V2_VER,
  SMC_NLA_LGR_V2_REL,
  SMC_NLA_LGR_V2_OS,
  SMC_NLA_LGR_V2_NEG_EID,
  SMC_NLA_LGR_V2_PEER_HOST,
  __SMC_NLA_LGR_V2_MAX,
  SMC_NLA_LGR_V2_MAX = __SMC_NLA_LGR_V2_MAX - 1
};
enum {
  SMC_NLA_LGR_R_V2_UNSPEC,
  SMC_NLA_LGR_R_V2_DIRECT,
  __SMC_NLA_LGR_R_V2_MAX,
  SMC_NLA_LGR_R_V2_MAX = __SMC_NLA_LGR_R_V2_MAX - 1
};
enum {
  SMC_NLA_LGR_R_UNSPEC,
  SMC_NLA_LGR_R_ID,
  SMC_NLA_LGR_R_ROLE,
  SMC_NLA_LGR_R_TYPE,
  SMC_NLA_LGR_R_PNETID,
  SMC_NLA_LGR_R_VLAN_ID,
  SMC_NLA_LGR_R_CONNS_NUM,
  SMC_NLA_LGR_R_V2_COMMON,
  SMC_NLA_LGR_R_V2,
  SMC_NLA_LGR_R_NET_COOKIE,
  SMC_NLA_LGR_R_PAD,
  __SMC_NLA_LGR_R_MAX,
  SMC_NLA_LGR_R_MAX = __SMC_NLA_LGR_R_MAX - 1
};
enum {
  SMC_NLA_LINK_UNSPEC,
  SMC_NLA_LINK_ID,
  SMC_NLA_LINK_IB_DEV,
  SMC_NLA_LINK_IB_PORT,
  SMC_NLA_LINK_GID,
  SMC_NLA_LINK_PEER_GID,
  SMC_NLA_LINK_CONN_CNT,
  SMC_NLA_LINK_NET_DEV,
  SMC_NLA_LINK_UID,
  SMC_NLA_LINK_PEER_UID,
  SMC_NLA_LINK_STATE,
  __SMC_NLA_LINK_MAX,
  SMC_NLA_LINK_MAX = __SMC_NLA_LINK_MAX - 1
};
enum {
  SMC_NLA_LGR_D_UNSPEC,
  SMC_NLA_LGR_D_ID,
  SMC_NLA_LGR_D_GID,
  SMC_NLA_LGR_D_PEER_GID,
  SMC_NLA_LGR_D_VLAN_ID,
  SMC_NLA_LGR_D_CONNS_NUM,
  SMC_NLA_LGR_D_PNETID,
  SMC_NLA_LGR_D_CHID,
  SMC_NLA_LGR_D_PAD,
  SMC_NLA_LGR_D_V2_COMMON,
  __SMC_NLA_LGR_D_MAX,
  SMC_NLA_LGR_D_MAX = __SMC_NLA_LGR_D_MAX - 1
};
enum {
  SMC_NLA_DEV_PORT_UNSPEC,
  SMC_NLA_DEV_PORT_PNET_USR,
  SMC_NLA_DEV_PORT_PNETID,
  SMC_NLA_DEV_PORT_NETDEV,
  SMC_NLA_DEV_PORT_STATE,
  SMC_NLA_DEV_PORT_VALID,
  SMC_NLA_DEV_PORT_LNK_CNT,
  __SMC_NLA_DEV_PORT_MAX,
  SMC_NLA_DEV_PORT_MAX = __SMC_NLA_DEV_PORT_MAX - 1
};
enum {
  SMC_NLA_DEV_UNSPEC,
  SMC_NLA_DEV_USE_CNT,
  SMC_NLA_DEV_IS_CRIT,
  SMC_NLA_DEV_PCI_FID,
  SMC_NLA_DEV_PCI_CHID,
  SMC_NLA_DEV_PCI_VENDOR,
  SMC_NLA_DEV_PCI_DEVICE,
  SMC_NLA_DEV_PCI_ID,
  SMC_NLA_DEV_PORT,
  SMC_NLA_DEV_PORT2,
  SMC_NLA_DEV_IB_NAME,
  __SMC_NLA_DEV_MAX,
  SMC_NLA_DEV_MAX = __SMC_NLA_DEV_MAX - 1
};
enum {
  SMC_NLA_STATS_PLOAD_PAD,
  SMC_NLA_STATS_PLOAD_8K,
  SMC_NLA_STATS_PLOAD_16K,
  SMC_NLA_STATS_PLOAD_32K,
  SMC_NLA_STATS_PLOAD_64K,
  SMC_NLA_STATS_PLOAD_128K,
  SMC_NLA_STATS_PLOAD_256K,
  SMC_NLA_STATS_PLOAD_512K,
  SMC_NLA_STATS_PLOAD_1024K,
  SMC_NLA_STATS_PLOAD_G_1024K,
  __SMC_NLA_STATS_PLOAD_MAX,
  SMC_NLA_STATS_PLOAD_MAX = __SMC_NLA_STATS_PLOAD_MAX - 1
};
enum {
  SMC_NLA_STATS_RMB_PAD,
  SMC_NLA_STATS_RMB_SIZE_SM_PEER_CNT,
  SMC_NLA_STATS_RMB_SIZE_SM_CNT,
  SMC_NLA_STATS_RMB_FULL_PEER_CNT,
  SMC_NLA_STATS_RMB_FULL_CNT,
  SMC_NLA_STATS_RMB_REUSE_CNT,
  SMC_NLA_STATS_RMB_ALLOC_CNT,
  SMC_NLA_STATS_RMB_DGRADE_CNT,
  __SMC_NLA_STATS_RMB_MAX,
  SMC_NLA_STATS_RMB_MAX = __SMC_NLA_STATS_RMB_MAX - 1
};
enum {
  SMC_NLA_STATS_T_PAD,
  SMC_NLA_STATS_T_TX_RMB_SIZE,
  SMC_NLA_STATS_T_RX_RMB_SIZE,
  SMC_NLA_STATS_T_TXPLOAD_SIZE,
  SMC_NLA_STATS_T_RXPLOAD_SIZE,
  SMC_NLA_STATS_T_TX_RMB_STATS,
  SMC_NLA_STATS_T_RX_RMB_STATS,
  SMC_NLA_STATS_T_CLNT_V1_SUCC,
  SMC_NLA_STATS_T_CLNT_V2_SUCC,
  SMC_NLA_STATS_T_SRV_V1_SUCC,
  SMC_NLA_STATS_T_SRV_V2_SUCC,
  SMC_NLA_STATS_T_SENDPAGE_CNT,
  SMC_NLA_STATS_T_SPLICE_CNT,
  SMC_NLA_STATS_T_CORK_CNT,
  SMC_NLA_STATS_T_NDLY_CNT,
  SMC_NLA_STATS_T_URG_DATA_CNT,
  SMC_NLA_STATS_T_RX_BYTES,
  SMC_NLA_STATS_T_TX_BYTES,
  SMC_NLA_STATS_T_RX_CNT,
  SMC_NLA_STATS_T_TX_CNT,
  __SMC_NLA_STATS_T_MAX,
  SMC_NLA_STATS_T_MAX = __SMC_NLA_STATS_T_MAX - 1
};
enum {
  SMC_NLA_STATS_PAD,
  SMC_NLA_STATS_SMCD_TECH,
  SMC_NLA_STATS_SMCR_TECH,
  SMC_NLA_STATS_CLNT_HS_ERR_CNT,
  SMC_NLA_STATS_SRV_HS_ERR_CNT,
  __SMC_NLA_STATS_MAX,
  SMC_NLA_STATS_MAX = __SMC_NLA_STATS_MAX - 1
};
enum {
  SMC_NLA_FBACK_STATS_PAD,
  SMC_NLA_FBACK_STATS_TYPE,
  SMC_NLA_FBACK_STATS_SRV_CNT,
  SMC_NLA_FBACK_STATS_CLNT_CNT,
  SMC_NLA_FBACK_STATS_RSN_CODE,
  SMC_NLA_FBACK_STATS_RSN_CNT,
  __SMC_NLA_FBACK_STATS_MAX,
  SMC_NLA_FBACK_STATS_MAX = __SMC_NLA_FBACK_STATS_MAX - 1
};
enum {
  SMC_NLA_EID_TABLE_UNSPEC,
  SMC_NLA_EID_TABLE_ENTRY,
  __SMC_NLA_EID_TABLE_MAX,
  SMC_NLA_EID_TABLE_MAX = __SMC_NLA_EID_TABLE_MAX - 1
};
enum {
  SMC_NLA_SEID_UNSPEC,
  SMC_NLA_SEID_ENTRY,
  SMC_NLA_SEID_ENABLED,
  __SMC_NLA_SEID_TABLE_MAX,
  SMC_NLA_SEID_TABLE_MAX = __SMC_NLA_SEID_TABLE_MAX - 1
};
enum {
  SMC_NLA_HS_LIMITATION_UNSPEC,
  SMC_NLA_HS_LIMITATION_ENABLED,
  __SMC_NLA_HS_LIMITATION_MAX,
  SMC_NLA_HS_LIMITATION_MAX = __SMC_NLA_HS_LIMITATION_MAX - 1
};
#define SMC_LIMIT_HS 1
#endif
