On 28-Feb-19 00:08, Saleem, Shiraz wrote: >> Subject: [PATCH rdma-next v2 01/11] RDMA: Add EFA related definitions >> >> 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, >> }; >> > > Link layer is Ethernet? And layer 3, network type? Our link layer is Ethernet, but the wire protocol is not the same as RoCE so it was decided to use unspecified link layer. The wire protocol is tightly coupled to the wire protocol for EC2’s VPC software defined network (EFA is not designed to be used independently of EC2’s VPC data plane). > > Reviewed-by: Shiraz Saleem <shiraz.saleem@xxxxxxxxx> Thanks Shiraz!