linux/include/uapi/linux/smc.h
<<
>>
Prefs
   1/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
   2/*
   3 *  Shared Memory Communications over RDMA (SMC-R) and RoCE
   4 *
   5 *  Definitions for generic netlink based configuration of an SMC-R PNET table
   6 *
   7 *  Copyright IBM Corp. 2016
   8 *
   9 *  Author(s):  Thomas Richter <tmricht@linux.vnet.ibm.com>
  10 */
  11
  12#ifndef _UAPI_LINUX_SMC_H_
  13#define _UAPI_LINUX_SMC_H_
  14
  15/* Netlink SMC_PNETID attributes */
  16enum {
  17        SMC_PNETID_UNSPEC,
  18        SMC_PNETID_NAME,
  19        SMC_PNETID_ETHNAME,
  20        SMC_PNETID_IBNAME,
  21        SMC_PNETID_IBPORT,
  22        __SMC_PNETID_MAX,
  23        SMC_PNETID_MAX = __SMC_PNETID_MAX - 1
  24};
  25
  26enum {                          /* SMC PNET Table commands */
  27        SMC_PNETID_GET = 1,
  28        SMC_PNETID_ADD,
  29        SMC_PNETID_DEL,
  30        SMC_PNETID_FLUSH
  31};
  32
  33#define SMCR_GENL_FAMILY_NAME           "SMC_PNETID"
  34#define SMCR_GENL_FAMILY_VERSION        1
  35
  36/* gennetlink interface to access non-socket information from SMC module */
  37#define SMC_GENL_FAMILY_NAME            "SMC_GEN_NETLINK"
  38#define SMC_GENL_FAMILY_VERSION         1
  39
  40#define SMC_PCI_ID_STR_LEN              16 /* Max length of pci id string */
  41
  42/* SMC_GENL_FAMILY commands */
  43enum {
  44        SMC_NETLINK_GET_SYS_INFO = 1,
  45        SMC_NETLINK_GET_LGR_SMCR,
  46        SMC_NETLINK_GET_LINK_SMCR,
  47        SMC_NETLINK_GET_LGR_SMCD,
  48        SMC_NETLINK_GET_DEV_SMCD,
  49        SMC_NETLINK_GET_DEV_SMCR,
  50};
  51
  52/* SMC_GENL_FAMILY top level attributes */
  53enum {
  54        SMC_GEN_UNSPEC,
  55        SMC_GEN_SYS_INFO,               /* nest */
  56        SMC_GEN_LGR_SMCR,               /* nest */
  57        SMC_GEN_LINK_SMCR,              /* nest */
  58        SMC_GEN_LGR_SMCD,               /* nest */
  59        SMC_GEN_DEV_SMCD,               /* nest */
  60        SMC_GEN_DEV_SMCR,               /* nest */
  61        __SMC_GEN_MAX,
  62        SMC_GEN_MAX = __SMC_GEN_MAX - 1
  63};
  64
  65/* SMC_GEN_SYS_INFO attributes */
  66enum {
  67        SMC_NLA_SYS_UNSPEC,
  68        SMC_NLA_SYS_VER,                /* u8 */
  69        SMC_NLA_SYS_REL,                /* u8 */
  70        SMC_NLA_SYS_IS_ISM_V2,          /* u8 */
  71        SMC_NLA_SYS_LOCAL_HOST,         /* string */
  72        SMC_NLA_SYS_SEID,               /* string */
  73        __SMC_NLA_SYS_MAX,
  74        SMC_NLA_SYS_MAX = __SMC_NLA_SYS_MAX - 1
  75};
  76
  77/* SMC_NLA_LGR_V2 nested attributes */
  78enum {
  79        SMC_NLA_LGR_V2_VER,             /* u8 */
  80        SMC_NLA_LGR_V2_REL,             /* u8 */
  81        SMC_NLA_LGR_V2_OS,              /* u8 */
  82        SMC_NLA_LGR_V2_NEG_EID,         /* string */
  83        SMC_NLA_LGR_V2_PEER_HOST,       /* string */
  84};
  85
  86/* SMC_GEN_LGR_SMCR attributes */
  87enum {
  88        SMC_NLA_LGR_R_UNSPEC,
  89        SMC_NLA_LGR_R_ID,               /* u32 */
  90        SMC_NLA_LGR_R_ROLE,             /* u8 */
  91        SMC_NLA_LGR_R_TYPE,             /* u8 */
  92        SMC_NLA_LGR_R_PNETID,           /* string */
  93        SMC_NLA_LGR_R_VLAN_ID,          /* u8 */
  94        SMC_NLA_LGR_R_CONNS_NUM,        /* u32 */
  95        __SMC_NLA_LGR_R_MAX,
  96        SMC_NLA_LGR_R_MAX = __SMC_NLA_LGR_R_MAX - 1
  97};
  98
  99/* SMC_GEN_LINK_SMCR attributes */
 100enum {
 101        SMC_NLA_LINK_UNSPEC,
 102        SMC_NLA_LINK_ID,                /* u8 */
 103        SMC_NLA_LINK_IB_DEV,            /* string */
 104        SMC_NLA_LINK_IB_PORT,           /* u8 */
 105        SMC_NLA_LINK_GID,               /* string */
 106        SMC_NLA_LINK_PEER_GID,          /* string */
 107        SMC_NLA_LINK_CONN_CNT,          /* u32 */
 108        SMC_NLA_LINK_NET_DEV,           /* u32 */
 109        SMC_NLA_LINK_UID,               /* u32 */
 110        SMC_NLA_LINK_PEER_UID,          /* u32 */
 111        SMC_NLA_LINK_STATE,             /* u32 */
 112        __SMC_NLA_LINK_MAX,
 113        SMC_NLA_LINK_MAX = __SMC_NLA_LINK_MAX - 1
 114};
 115
 116/* SMC_GEN_LGR_SMCD attributes */
 117enum {
 118        SMC_NLA_LGR_D_UNSPEC,
 119        SMC_NLA_LGR_D_ID,               /* u32 */
 120        SMC_NLA_LGR_D_GID,              /* u64 */
 121        SMC_NLA_LGR_D_PEER_GID,         /* u64 */
 122        SMC_NLA_LGR_D_VLAN_ID,          /* u8 */
 123        SMC_NLA_LGR_D_CONNS_NUM,        /* u32 */
 124        SMC_NLA_LGR_D_PNETID,           /* string */
 125        SMC_NLA_LGR_D_CHID,             /* u16 */
 126        SMC_NLA_LGR_D_PAD,              /* flag */
 127        SMC_NLA_LGR_V2,                 /* nest */
 128        __SMC_NLA_LGR_D_MAX,
 129        SMC_NLA_LGR_D_MAX = __SMC_NLA_LGR_D_MAX - 1
 130};
 131
 132/* SMC_NLA_DEV_PORT nested attributes */
 133enum {
 134        SMC_NLA_DEV_PORT_UNSPEC,
 135        SMC_NLA_DEV_PORT_PNET_USR,      /* u8 */
 136        SMC_NLA_DEV_PORT_PNETID,        /* string */
 137        SMC_NLA_DEV_PORT_NETDEV,        /* u32 */
 138        SMC_NLA_DEV_PORT_STATE,         /* u8 */
 139        SMC_NLA_DEV_PORT_VALID,         /* u8 */
 140        SMC_NLA_DEV_PORT_LNK_CNT,       /* u32 */
 141        __SMC_NLA_DEV_PORT_MAX,
 142        SMC_NLA_DEV_PORT_MAX = __SMC_NLA_DEV_PORT_MAX - 1
 143};
 144
 145/* SMC_GEN_DEV_SMCD and SMC_GEN_DEV_SMCR attributes */
 146enum {
 147        SMC_NLA_DEV_UNSPEC,
 148        SMC_NLA_DEV_USE_CNT,            /* u32 */
 149        SMC_NLA_DEV_IS_CRIT,            /* u8 */
 150        SMC_NLA_DEV_PCI_FID,            /* u32 */
 151        SMC_NLA_DEV_PCI_CHID,           /* u16 */
 152        SMC_NLA_DEV_PCI_VENDOR,         /* u16 */
 153        SMC_NLA_DEV_PCI_DEVICE,         /* u16 */
 154        SMC_NLA_DEV_PCI_ID,             /* string */
 155        SMC_NLA_DEV_PORT,               /* nest */
 156        SMC_NLA_DEV_PORT2,              /* nest */
 157        SMC_NLA_DEV_IB_NAME,            /* string */
 158        __SMC_NLA_DEV_MAX,
 159        SMC_NLA_DEV_MAX = __SMC_NLA_DEV_MAX - 1
 160};
 161
 162#endif /* _UAPI_LINUX_SMC_H */
 163