[ofa-general] RE: [ewg] [PATCH 2/8 v3] ib_core: RDMAoE support onlyQP1

Liran Liss liranl at mellanox.co.il
Tue Jul 14 13:20:11 PDT 2009


Hi Robert,

Your suggestion to represent RDMAoE as a transport indeed makes the code
simpler.
Thus, we will have:
switch(port_transport) {
case RDMA_TRANSPORT_IB:
	...
	break;
case RDMA_TRANSPORT_RDMAOE:
	...
	break;
case RDMA_TRANSPORT_IWARP:
	...
	break;
};

instead of:
switch(port_transport) {
case RDMA_TRANSPORT_IB:
	if (port_type == IB) {
		...
	} else {
		...
	}
	break;
case RDMA_TRANSPORT_IWARP:
	...
	break;
};

which is cleaner.
In addition, for places in which IB and RDMAOE behave the same, we will
have:
case RDMA_TRANSPORT_IB:
case RDMA_TRANSPORT_RDMAOE:
	...
	break;

which will make this fact explicit.
The only difference is that the switch() will operate on port-transport
rather than node transport.
(We can add a wrapper that if the ib_dev didn't regsiter a
port-transport function, it will default to the node transport.)

Thanks!
--Liran


-----Original Message-----
From: Liran Liss 
Sent: Tuesday, July 14, 2009 11:53 AM
To: 'Woodruff, Robert J'; Eli Cohen; Hefty, Sean; Roland Dreier
Cc: ewg; general-list
Subject: RE: [ofa-general] RE: [ewg] [PATCH 2/8 v3] ib_core: RDMAoE
support onlyQP1

S.B.
--Liran 


> Trying to emulate IB for mad services is a total hack and not how this
new transport should be added into the core. It should be it's own
transport type, just like iWarp was added.
> You should start with adding a new transport type to ib_verbs.h, e.g.,

LL: it is not a hack: RDMAoE will probably use mad services at least for
connection management, and additional ones in the future.


--- ib_verbs.h  2009-07-13 09:06:10.000000000 -0400
+++ ib_verbs_new.h      2009-07-14 03:00:23.000000000 -0400
@@ -64,12 +64,14 @@ enum rdma_node_type {
        RDMA_NODE_IB_CA         = 1,
        RDMA_NODE_IB_SWITCH,
        RDMA_NODE_IB_ROUTER,
-       RDMA_NODE_RNIC
+       RDMA_NODE_RNIC,
+       RDMA_NODE_IBXOE
 };

LL: a multi-port HCA can have both IB and Ethernet ports, so this is not
a per-node thing.

 enum rdma_transport_type {
        RDMA_TRANSPORT_IB,
-       RDMA_TRANSPORT_IWARP
+       RDMA_TRANSPORT_IWARP,
+       RDMA_TRANSPORT_IBXOE
 };

LL: thanks, we will look into this. I am not sure that "transport" is
the right terminology, since we are using the IB transport layer.


 enum rdma_transport_type_______________________________________________
general mailing list
general at lists.openfabrics.org
http://lists.openfabrics.org/cgi-bin/mailman/listinfo/general

To unsubscribe, please visit
http://openib.org/mailman/listinfo/openib-general



More information about the general mailing list