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@lists.openfabrics.org http://lists.openfabrics.org/cgi-bin/mailman/listinfo/general To unsubscribe, please visit http://openib.org/mailman/listinfo/openib-general _______________________________________________ general mailing list general@lists.openfabrics.org http://lists.openfabrics.org/cgi-bin/mailman/listinfo/general To unsubscribe, please visit http://openib.org/mailman/listinfo/openib-general