Re: [ewg] [PATCHv8 01/11] ib core: Add link layer property to ports

2010-05-06 Thread Eli Cohen
On Wed, May 05, 2010 at 03:19:50PM -0700, Roland Dreier wrote:
 Hi Eli,
 
 I'm hoping to get this IBoE stuff in for 2.6.35.  I started an iboe
 branch in my tree (similar to the xrc branch I've been carrying for a
 while), and I added this patch in, except I renamed
 rdma_port_link_layer() to rdma_port_get_link_layer().  This seems to
 match rdma_node_get_transport() better.
 
 In any case as I add patches to my branch, you can stop worrying about
 them, which should make keeping this series updated easier.
 

Hi Roland,

I am glad to hear this and will be happy to help.
___
ewg mailing list
ewg@lists.openfabrics.org
http://lists.openfabrics.org/cgi-bin/mailman/listinfo/ewg


Re: [ewg] [PATCHv8 01/11] ib core: Add link layer property to ports

2010-05-05 Thread Roland Dreier
Hi Eli,

I'm hoping to get this IBoE stuff in for 2.6.35.  I started an iboe
branch in my tree (similar to the xrc branch I've been carrying for a
while), and I added this patch in, except I renamed
rdma_port_link_layer() to rdma_port_get_link_layer().  This seems to
match rdma_node_get_transport() better.

In any case as I add patches to my branch, you can stop worrying about
them, which should make keeping this series updated easier.

 - R.
-- 
Roland Dreier rola...@cisco.com || For corporate legal information go to:
http://www.cisco.com/web/about/doing_business/legal/cri/index.html
___
ewg mailing list
ewg@lists.openfabrics.org
http://lists.openfabrics.org/cgi-bin/mailman/listinfo/ewg


[ewg] [PATCHv8 01/11] ib core: Add link layer property to ports

2010-02-18 Thread Eli Cohen
This patch adds the infrastructure for querying the link layer of a port, which
can be either IB_LINK_LAYER_INFINIBAND or IB_LINK_LAYER_ETHERNET. This is
required for adding IBoE support to Infiniband drivers so that branching
decisions can be made according to the value of this property. For devices that
do not provide an implementation for querying the link layer property of a
port, the returned value depends on the node transport such that
RMA_TRANSPORT_IB nodes will return IB_LINK_LAYER_INFINIBAND and
RDMA_TRANSPORT_IWARP nodes will return IB_LINK_LAYER_ETHERNET.

Signed-off-by: Eli Cohen e...@mellanox.co.il
---
 drivers/infiniband/core/verbs.c |   16 
 include/rdma/ib_verbs.h |   12 
 2 files changed, 28 insertions(+), 0 deletions(-)

diff --git a/drivers/infiniband/core/verbs.c b/drivers/infiniband/core/verbs.c
index a7da9be..f9cbdb6 100644
--- a/drivers/infiniband/core/verbs.c
+++ b/drivers/infiniband/core/verbs.c
@@ -94,6 +94,22 @@ rdma_node_get_transport(enum rdma_node_type node_type)
 }
 EXPORT_SYMBOL(rdma_node_get_transport);
 
+enum rdma_link_layer rdma_port_link_layer(struct ib_device *device, u8 
port_num)
+{
+   if (device-get_link_layer)
+   return device-get_link_layer(device, port_num);
+
+   switch (rdma_node_get_transport(device-node_type)) {
+   case RDMA_TRANSPORT_IB:
+   return IB_LINK_LAYER_INFINIBAND;
+   case RDMA_TRANSPORT_IWARP:
+   return IB_LINK_LAYER_ETHERNET;
+   default:
+   return IB_LINK_LAYER_UNSPECIFIED;
+   }
+}
+EXPORT_SYMBOL(rdma_port_link_layer);
+
 /* Protection domains */
 
 struct ib_pd *ib_alloc_pd(struct ib_device *device)
diff --git a/include/rdma/ib_verbs.h b/include/rdma/ib_verbs.h
index 09509ed..bbfe315 100644
--- a/include/rdma/ib_verbs.h
+++ b/include/rdma/ib_verbs.h
@@ -75,6 +75,12 @@ enum rdma_transport_type {
 enum rdma_transport_type
 rdma_node_get_transport(enum rdma_node_type node_type) __attribute_const__;
 
+enum rdma_link_layer {
+   IB_LINK_LAYER_UNSPECIFIED,
+   IB_LINK_LAYER_INFINIBAND,
+   IB_LINK_LAYER_ETHERNET,
+};
+
 enum ib_device_cap_flags {
IB_DEVICE_RESIZE_MAX_WR = 1,
IB_DEVICE_BAD_PKEY_CNTR = (11),
@@ -298,6 +304,7 @@ struct ib_port_attr {
u8  active_width;
u8  active_speed;
u8  phys_state;
+   enum rdma_link_layerlink_layer;
 };
 
 enum ib_device_modify_flags {
@@ -1003,6 +1010,8 @@ struct ib_device {
int(*query_port)(struct ib_device *device,
 u8 port_num,
 struct ib_port_attr 
*port_attr);
+   enum rdma_link_layer   (*get_link_layer)(struct ib_device *device,
+u8 port_num);
int(*query_gid)(struct ib_device *device,
u8 port_num, int index,
union ib_gid *gid);
@@ -1213,6 +1222,9 @@ int ib_query_device(struct ib_device *device,
 int ib_query_port(struct ib_device *device,
  u8 port_num, struct ib_port_attr *port_attr);
 
+enum rdma_link_layer rdma_port_link_layer(struct ib_device *device,
+ u8 port_num);
+
 int ib_query_gid(struct ib_device *device,
 u8 port_num, int index, union ib_gid *gid);
 
-- 
1.7.0

___
ewg mailing list
ewg@lists.openfabrics.org
http://lists.openfabrics.org/cgi-bin/mailman/listinfo/ewg