RE: [PATCH 0/4] RDMA/nes and RDMA/cxgb4: iWARP Port Mapper Overview

2013-09-05 Thread Nikolova, Tatyana E
Hello Sean,

+   RDMA_NL_NES,
+   RDMA_NL_C4IW

>> Why is the communication with the daemon device specific?  

These enums are necessary. The communication with the IWPM daemon is device 
specific, because each device is a different netlink client and needs to 
register with netlink a set of callback functions. The drivers nes and cxgb4 
are consuming two netlink clients, using the following 

ibnl_add_client(RDMA_NL_NES, RDMA_NL_IWPM_NUM_OPS, nes_nl_cb_table)
ibnl_add_client(RDMA_NL_C4IW, RDMA_NL_IWPM_NUM_OPS, c4iw_nl_cb_table)

The current implementation will work with two iwarp providers (nes and cxgb4) 
on the same system and the user space iwarp port mapper will be servicing two 
clients at the same time.

>> Can the iwarp cm fully encapsulate these changes?
This needs more consideration, because it may not be a trivial change.

Thank you,
Tatyana

-Original Message-
From: Hefty, Sean 
Sent: Tuesday, September 03, 2013 12:22 PM
To: Steve Wise; Nikolova, Tatyana E
Cc: Roland Dreier; Sharp, Robert O; Lacombe, John S; vi...@chelsio.com; 
linux-rdma@vger.kernel.org
Subject: RE: [PATCH 0/4] RDMA/nes and RDMA/cxgb4: iWARP Port Mapper Overview

> I think there are lots of #defines and enums replicated in both 
> nes_netlink.h and c4iw_netlink.h.  For example, the IWPM_* defines and 
> enums.  It seems like we could put all this in a common header file to 
> be included by all iwarp providers?  Say include/rdma/iw_portmap.h or 
> something.  Basically the interface to the user mode daemon is the 
> same for all providers, no?  Those bits should be in a common header.  
> (and maybe even a common core module if there is enough common functions).
> 
> Thoughts?

I agree.  This enum change looks off:

+   RDMA_NL_NES,
+   RDMA_NL_C4IW

Why is the communication with the daemon device specific?  Can the iwarp cm 
fully encapsulate these changes?

- Sean
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


RE: [PATCH 0/4] RDMA/nes and RDMA/cxgb4: iWARP Port Mapper Overview

2013-09-05 Thread Nikolova, Tatyana E
Hello Or,

>> Does this series follows the netconf 2011session e.g from this link 
>> http://vger.kernel.org/netconf2011_slides/pj_netconf2011.ppt?
Yes

Thanks,
Tatyana

-Original Message-
From: linux-rdma-ow...@vger.kernel.org 
[mailto:linux-rdma-ow...@vger.kernel.org] On Behalf Of Or Gerlitz
Sent: Wednesday, September 04, 2013 5:19 AM
To: Nikolova, Tatyana E
Cc: Roland Dreier; Sharp, Robert O; Lacombe, John S; Vipul Pandya; Steve Wise; 
linux-rdma
Subject: Re: [PATCH 0/4] RDMA/nes and RDMA/cxgb4: iWARP Port Mapper Overview

On Sat, Aug 31 2013, Tatyana Nikolova  wrote:
[...]
> The patches are built against Roland's infiniband tree for-next branch.
> We would like this series to get in the linux-3.12 merge window.

So why submitting it only 48 hours before the merge window opens up?

Does this series follows the netconf 2011session e.g from this link 
http://vger.kernel.org/netconf2011_slides/pj_netconf2011.ppt ?
Personally, I will not be able to review the concept and core patches before 
next week, but if others here can and are OK for this to 3.12, let it be.

Or.
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in the 
body of a message to majord...@vger.kernel.org More majordomo info at  
http://vger.kernel.org/majordomo-info.html
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


RE: [PATCH 0/4] RDMA/nes and RDMA/cxgb4: iWARP Port Mapper Overview

2013-09-05 Thread Nikolova, Tatyana E

Hello Steve,

Thank you for the feedback.

>> I think there are lots of #defines and enums replicated in both 
>> nes_netlink.h and c4iw_netlink.h.  For example, the IWPM_* 
>> defines and enums.  It seems like we could put all this in a common header 
>> file to be included by all iwarp providers?  
>> Say include/rdma/iw_portmap.h or something.

Having a common rdma/iw_portmap.h is a good idea. 

>> (and maybe even a common core module if there is enough common 
>> functions)

At this early stage of the project, I think that having a separate core module 
for the iwarp port mapper could be overhead. That is the reason we initially 
decided to keep the changes locally in the drivers using the service.

Tatyana

-Original Message-
From: Steve Wise [mailto:sw...@opengridcomputing.com] 
Sent: Tuesday, September 03, 2013 10:34 AM
To: Nikolova, Tatyana E
Cc: Roland Dreier; Sharp, Robert O; Lacombe, John S; vi...@chelsio.com; 
linux-rdma@vger.kernel.org
Subject: Re: [PATCH 0/4] RDMA/nes and RDMA/cxgb4: iWARP Port Mapper Overview

On 8/31/2013 2:41 PM, Tatyana Nikolova wrote:
> Hello All,
>
> This patch series adds iWARP Port Mapper (IWPM) service support in 
> RDMA/core, RDMA/nes driver and RDMA/cxgb4 driver. The iWARP Port 
> Mapper implementation is based on the port mapper specification 
> section in the Sockets Direct Protocol paper - 
> http://www.rdmaconsortium.org/home/draft-pinkerton-iwarp-sdp-v1.0.pdf
>

Hey Tatyana,

I'm replying to 0/4 because these comments are for both iwarp providers.

I think there are lots of #defines and enums replicated in both nes_netlink.h 
and c4iw_netlink.h.  For example, the IWPM_* defines and enums.  It seems like 
we could put all this in a common header file to be included by all iwarp 
providers?  Say include/rdma/iw_portmap.h or something.  Basically the 
interface to the user mode daemon is the same for all providers, no?  Those 
bits should be in a common header.  (and maybe even a common core module if 
there is enough common functions).

Thoughts?

Steve.

--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 0/4] RDMA/nes and RDMA/cxgb4: iWARP Port Mapper Overview

2013-09-04 Thread Or Gerlitz
On Sat, Aug 31 2013, Tatyana Nikolova  wrote:
[...]
> The patches are built against Roland's infiniband tree for-next branch.
> We would like this series to get in the linux-3.12 merge window.

So why submitting it only 48 hours before the merge window opens up?

Does this series follows the netconf 2011session e.g from this link
http://vger.kernel.org/netconf2011_slides/pj_netconf2011.ppt ?
Personally, I will not be able to review the concept and core patches
before next week, but if others here can and are OK for this to 3.12,
let it be.

Or.
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


RE: [PATCH 0/4] RDMA/nes and RDMA/cxgb4: iWARP Port Mapper Overview

2013-09-03 Thread Hefty, Sean
> I think there are lots of #defines and enums replicated in both
> nes_netlink.h and c4iw_netlink.h.  For example, the IWPM_* defines and
> enums.  It seems like we could put all this in a common header file to
> be included by all iwarp providers?  Say include/rdma/iw_portmap.h or
> something.  Basically the interface to the user mode daemon is the same
> for all providers, no?  Those bits should be in a common header.  (and
> maybe even a common core module if there is enough common functions).
> 
> Thoughts?

I agree.  This enum change looks off:

+   RDMA_NL_NES,
+   RDMA_NL_C4IW

Why is the communication with the daemon device specific?  Can the iwarp cm 
fully encapsulate these changes?

- Sean
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 0/4] RDMA/nes and RDMA/cxgb4: iWARP Port Mapper Overview

2013-09-03 Thread Steve Wise

On 8/31/2013 2:41 PM, Tatyana Nikolova wrote:

Hello All,

This patch series adds iWARP Port Mapper (IWPM) service support in RDMA/core,
RDMA/nes driver and RDMA/cxgb4 driver. The iWARP Port Mapper implementation is
based on the port mapper specification section in the Sockets Direct Protocol
paper - http://www.rdmaconsortium.org/home/draft-pinkerton-iwarp-sdp-v1.0.pdf



Hey Tatyana,

I'm replying to 0/4 because these comments are for both iwarp providers.

I think there are lots of #defines and enums replicated in both 
nes_netlink.h and c4iw_netlink.h.  For example, the IWPM_* defines and 
enums.  It seems like we could put all this in a common header file to 
be included by all iwarp providers?  Say include/rdma/iw_portmap.h or 
something.  Basically the interface to the user mode daemon is the same 
for all providers, no?  Those bits should be in a common header.  (and 
maybe even a common core module if there is enough common functions).


Thoughts?

Steve.

--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH 0/4] RDMA/nes and RDMA/cxgb4: iWARP Port Mapper Overview

2013-08-31 Thread Tatyana Nikolova
Hello All,

This patch series adds iWARP Port Mapper (IWPM) service support in RDMA/core,
RDMA/nes driver and RDMA/cxgb4 driver. The iWARP Port Mapper implementation is
based on the port mapper specification section in the Sockets Direct Protocol
paper - http://www.rdmaconsortium.org/home/draft-pinkerton-iwarp-sdp-v1.0.pdf 

Existing iWARP RDMA providers use the same IP address as the native TCP/IP
stack when creating RDMA connections. They need to ensure a mechanism to claim 
the TCP ports used for RDMA connections, thereby preventing TCP port collisions
when other host applications are consuming TCP ports. The iWARP Port Mapper
provides a standard mechanism to accomplish this. Without this service it is
possible for RDMA application to bind/listen on the same port which is already
being used by native TCP host application. If that happens the incoming TCP
connection data can be passed to the RDMA stack with error.

The iWARP Port Mapper solution doesn't contain any changes to the existing
network stack in the kernel space. All the changes are contained with the
infiniband tree and also in user space.

The iWARP Port Mapper service is implemented as a user space daemon process.
Interested readers could look at the source code of the IWPM service located at
http://git.openfabrics.org/git?p=~tnikolova/libiwpm-1.0.0/.git;a=summary

The iWARP driver (port mapper client) sends to the IWPM service the local IP
address and TCP port it has received from the RDMA application, when starting a
connection. The IWPM service performs a socket bind from user space to get
an available TCP port, called a mapped port, and communicates it back to the
client. In that sense, the IWPM service is used to map the TCP port, which the
RDMA application uses to any port available from the host TCP port space. The
mapped ports are used in iWARP RDMA connections to avoid collisions with native
TCP stack which is aware that these ports are taken. When an RDMA connection
using a mapped port is terminated, the client notifies the IWPM service, which
then releases the TCP port.

The message exchange between the IWPM service and the iWARP drivers
(between user space and kernel space) is implemented using netlink sockets.
This patch series adds driver support for sending/receiving/parsing netlink
messages, to make the communication with the IWPM service possible.

The patches are built against Roland's infiniband tree for-next branch.
We would like this series to get in the linux-3.12 merge window.

Kindly review it and provide feedback.
Thanks,

Tatyana Nikolova (3):
  RDMA/core: Add support for iWARP Port Mapper user space service
  RDMA/nes: Add support for iWARP Port Mapper user space service
  RDMA/nes: Change the nes driver version to reflect added IWPM functionality

Vipul Pandya (1):
  RDMA/cxgb4: Add support for iWARP Port Mapper user space service

 drivers/infiniband/core/cma.c  |2 +-
 drivers/infiniband/core/netlink.c  |   18 +-
 drivers/infiniband/hw/cxgb4/Makefile   |2 +-
 drivers/infiniband/hw/cxgb4/c4iw_netlink.c | 1021 +++
 drivers/infiniband/hw/cxgb4/c4iw_netlink.h |  273 +++
 drivers/infiniband/hw/cxgb4/cm.c   |  138 +++-
 drivers/infiniband/hw/cxgb4/device.c   |   24 +-
 drivers/infiniband/hw/cxgb4/iw_cxgb4.h |   16 +
 drivers/infiniband/hw/nes/Makefile |2 +-
 drivers/infiniband/hw/nes/nes.c|   16 +-
 drivers/infiniband/hw/nes/nes.h|4 +-
 drivers/infiniband/hw/nes/nes_cm.c |  189 --
 drivers/infiniband/hw/nes/nes_cm.h |   12 +-
 drivers/infiniband/hw/nes/nes_netlink.c| 1223 
 drivers/infiniband/hw/nes/nes_netlink.h|  108 +++
 drivers/infiniband/hw/nes/nes_nic.c|5 +
 include/rdma/rdma_netlink.h|   23 +-
 include/uapi/rdma/rdma_netlink.h   |   94 +++-
 18 files changed, 3083 insertions(+), 87 deletions(-)
 create mode 100644 drivers/infiniband/hw/cxgb4/c4iw_netlink.c
 create mode 100644 drivers/infiniband/hw/cxgb4/c4iw_netlink.h
 create mode 100644 drivers/infiniband/hw/nes/nes_netlink.c
 create mode 100644 drivers/infiniband/hw/nes/nes_netlink.h

-- 
1.8.0

--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html