Re: [PATCH rdma-next v2 01/11] RDMA: Add EFA related definitions

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, Feb 28, 2019 at 09:31:07AM +0200, Gal Pressman wrote:
> 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
> >> +++ 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
> >> +++ 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
> >> +++ 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).

It is possible this should just *_UNSPECIFIED/OTHER or something
general so it can be shared. Neither USNIC nor EFA need these values
for any purpose, AFAIK.

They come out of sysfs and a few APIs they don't use anyhow.

Jason



[Index of Archives]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Photo]     [Yosemite News]     [Yosemite Photos]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux