MS-SMBD and RDMA/Infiniband ...

Stefan (metze) Metzmacher metze at samba.org
Tue Feb 28 20:41:32 MST 2012


Hi Richard,

> I recently acquired some 10Gbps Infiniband cards and am looking at
> getting a switch as I have acquired some Infiniband/RDMA coding
> experience.
> 
> I am interested in implementing MS-SMBD, the Direct Placement variant
> of SMB2.2, for Samba.

First try to setup two Windows8 beta (when it's available within the
next days)
with RDMA support. (Please document the steps in our wiki)

Then find a way to capture traffic between the windows hosts.

Then we need an implementation of SMB-Direct, I guess we need to
define an transport abstraction.

struct smb_transport;

uint32_t smb_transport_max_pdu_size(struct smb_transport *transport);

bool smb_transport_is_connected(struct smb_transport *transport);

struct tevent_req *smb_transport_write_pdu_send(TALLOC_CTX *mem_ctx,
											 struct tevent_context *ev,
											 struct smb_transport *transport,
											 int num_iov,
											 struct iovec *iov);
NTSTATUS smb_transport_write_pdu_recv(struct tevent_req *req);

struct tevent_req *smb_transport_read_pdu_send(TALLOC_CTX *mem_ctx,
											 struct tevent_context *ev,
											 struct smb_transport *transport);
NTSTATUS smb_transport_read_pdu_recv(struct tevent_req *req,
									 TALLOC_CTX *mem_ctx,
									 struct iovec *iov);

And then specific constructors like:

struct tevent_req *smb_transport_rdma_connect_send(TALLOC_CTX *mem_ctx,
												 struct tevent_context *ev,
												 ....
												 src and dest addresses);
NTSTATUS smb_transport_rdma_connect_recv(struct tevent_req *req,
										 TALLOC_CTX *mem_ctx,
										 struct smb_transport **transport);

something similar for TCP (port 445) and NBSS over TCP (port 139).

We need the client side first....

You may want to look at the ctdb code for some event based rdma programming.

Also note that there's software bases iwarp support on linux,
so it would be cool to find out how to configure windows to do rdma over
iwrap,
then we may only need to buy hardware for the windows test machines.

See
http://voidreflections.blogspot.com/2011/03/how-to-install-soft-iwarp-on-ubuntu.html

You can test with
Server: rping -s -vVd -a 127.0.0.1 -p 5555
Client: rping -c -vVd -a 127.0.0.1 -p 5555

> What is the status of the SMB 2.2 implementation? Will I have to
> implement enough of that first?

I think the core SMB-Direct can be implement without any SMB2 reference.

metze

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 262 bytes
Desc: OpenPGP digital signature
URL: <http://lists.samba.org/pipermail/samba-technical/attachments/20120229/33440585/attachment.pgp>


More information about the samba-technical mailing list