On 26-Feb-19 19:56, Steve Wise wrote: > > On 2/26/2019 11:47 AM, Steve Wise wrote: >> On 2/21/2019 9:33 AM, Gal Pressman wrote: >>> Add EFA node, transport and protocol types to core code. >>> In addition, EFA driver ID is added to the IOCTL interface uapi. >>> >>> Signed-off-by: Gal Pressman <galpress@xxxxxxxxxx> >>> --- >>> drivers/infiniband/core/sysfs.c | 1 + >>> drivers/infiniband/core/verbs.c | 2 ++ >>> include/rdma/ib_verbs.h | 8 ++++++-- >>> include/uapi/rdma/rdma_user_ioctl_cmds.h | 1 + >>> 4 files changed, 10 insertions(+), 2 deletions(-) >>> >>> diff --git a/drivers/infiniband/core/sysfs.c b/drivers/infiniband/core/sysfs.c >>> index 9b6a065bdfa5..f7fac4c81559 100644 >>> --- a/drivers/infiniband/core/sysfs.c >>> +++ b/drivers/infiniband/core/sysfs.c >>> @@ -1194,6 +1194,7 @@ static ssize_t node_type_show(struct device *device, >>> case RDMA_NODE_RNIC: return sprintf(buf, "%d: RNIC\n", dev->node_type); >>> case RDMA_NODE_USNIC: return sprintf(buf, "%d: usNIC\n", dev->node_type); >>> case RDMA_NODE_USNIC_UDP: return sprintf(buf, "%d: usNIC UDP\n", dev->node_type); >>> + case RDMA_NODE_EFA: return sprintf(buf, "%d: EFA\n", dev->node_type); >>> case RDMA_NODE_IB_SWITCH: return sprintf(buf, "%d: switch\n", dev->node_type); >>> case RDMA_NODE_IB_ROUTER: return sprintf(buf, "%d: router\n", dev->node_type); >>> default: return sprintf(buf, "%d: <unknown>\n", dev->node_type); >>> diff --git a/drivers/infiniband/core/verbs.c b/drivers/infiniband/core/verbs.c >>> index 5a5e83f5f0fc..fc6f748a1933 100644 >>> --- a/drivers/infiniband/core/verbs.c >>> +++ b/drivers/infiniband/core/verbs.c >>> @@ -218,6 +218,8 @@ rdma_node_get_transport(enum rdma_node_type node_type) >>> return RDMA_TRANSPORT_USNIC_UDP; >>> if (node_type == RDMA_NODE_RNIC) >>> return RDMA_TRANSPORT_IWARP; >>> + if (node_type == RDMA_NODE_EFA) >>> + return RDMA_TRANSPORT_EFA; >>> >>> return RDMA_TRANSPORT_IB; >>> } >>> diff --git a/include/rdma/ib_verbs.h b/include/rdma/ib_verbs.h >>> index 225cb76d469f..55534aba22bf 100644 >>> --- a/include/rdma/ib_verbs.h >>> +++ b/include/rdma/ib_verbs.h >>> @@ -108,6 +108,7 @@ enum rdma_node_type { >>> RDMA_NODE_RNIC, >>> RDMA_NODE_USNIC, >>> RDMA_NODE_USNIC_UDP, >>> + RDMA_NODE_EFA, >>> }; >>> >>> enum { >>> @@ -119,14 +120,16 @@ enum rdma_transport_type { >>> RDMA_TRANSPORT_IB, >>> RDMA_TRANSPORT_IWARP, >>> RDMA_TRANSPORT_USNIC, >>> - RDMA_TRANSPORT_USNIC_UDP >>> + RDMA_TRANSPORT_USNIC_UDP, >>> + RDMA_TRANSPORT_EFA, >>> }; >>> >>> enum rdma_protocol_type { >>> RDMA_PROTOCOL_IB, >>> RDMA_PROTOCOL_IBOE, >>> RDMA_PROTOCOL_IWARP, >>> - RDMA_PROTOCOL_USNIC_UDP >>> + RDMA_PROTOCOL_USNIC_UDP, >>> + RDMA_PROTOCOL_EFA, >>> }; >>> >>> __attribute_const__ enum rdma_transport_type >>> @@ -543,6 +546,7 @@ static inline struct rdma_hw_stats *rdma_alloc_hw_stats_struct( >>> #define RDMA_CORE_CAP_PROT_ROCE_UDP_ENCAP 0x00800000 >>> #define RDMA_CORE_CAP_PROT_RAW_PACKET 0x01000000 >>> #define RDMA_CORE_CAP_PROT_USNIC 0x02000000 >>> +#define RDMA_CORE_CAP_PROT_EFA 0x04000000 >>> >>> #define RDMA_CORE_PORT_IB_GRH_REQUIRED (RDMA_CORE_CAP_IB_GRH_REQUIRED \ >>> | RDMA_CORE_CAP_PROT_ROCE \ >>> diff --git a/include/uapi/rdma/rdma_user_ioctl_cmds.h b/include/uapi/rdma/rdma_user_ioctl_cmds.h >>> index 06c34d99be85..26213f49f5c8 100644 >>> --- a/include/uapi/rdma/rdma_user_ioctl_cmds.h >>> +++ b/include/uapi/rdma/rdma_user_ioctl_cmds.h >>> @@ -102,6 +102,7 @@ enum rdma_driver_id { >>> RDMA_DRIVER_RXE, >>> RDMA_DRIVER_HFI1, >>> RDMA_DRIVER_QIB, >>> + RDMA_DRIVER_EFA, >>> }; >>> >>> #endif >> >> Looks fine. >> >> Signed-off-by: Steve Wise <swise@xxxxxxxxxxxxxxxxxxxxx> >> > Oops - correction: > > Reviewed-by: Steve Wise <swise@xxxxxxxxxxxxxxxxxxxxx> Thanks Steve!