> -----Original Message-----
> From: Sean Hefty [mailto:[EMAIL PROTECTED]
> Sent: Thursday, August 25, 2005 2:37 PM
> To: 'James Lentini'; Yaron Haviv
> Cc: openib-general@openib.org
> Subject: RE: [openib-general] RDMA connection and address translation
API
> 
> >> Any way providing src/dst IPs in the CM Private data is simple, and
we
> >> can come with IBTA extension blessing that data structure as a
general
> >> way to map IP oriented protocols over IB (a 1-2 page draft at the
most)
> >> This way it can also address Caitlin concerns regarding NFS & IETF
> >> (since now it's a transport specific issue)
> >
> >How long do you estimate it would take to standardize an IP<->GID
> >mechanism (ATS, CM embedded, ...) in the IBTA? 3 months? 6 months? A
> >year?....
> >
> >Let's assume that everyone on this list is in agreement.
> 
> Does anyone in the IB world disagree with adding IP addresses in the
CM
> private
> data area?  Would we want to extend this concept to SIDR as well?
> 
> - Sean

I send my proposal from 2004 re-send again as text (attached)
Also addresses the ServiceID issue, this can be a baseline for
discussions
Feel free to change 

Yaron

           Mapping of iWarp/TCP connections to InfiniBand


AUTHOR   Yaron Haviv  ([EMAIL PROTECTED])
VERSION  0.30, Mon June 28 2004


I.      INTRODUCTION


 InfiniBand and iWarp semantics are similar especially with the latest
 Verb Extensions, the major difference is in the way connections are 
 established, iWarp uses TCP based connection establishment while 
 InfiniBand uses a CM for that. 
 Another related difference is that in iWarp a user can start in a 
 standard TCP mode and migrate to RDMA verbs in the middle of a session.

 The following document provides a general mapping from iWarp/TCP 
 connection establishment to InfiniBand which can be used by ULPs over 
 InfiniBand or by any other future iWarp protocols, it imitates the SDP
 connection establishment process and CM headers (does not require SDP,
 just have the same data formats for CM messages).
 
 
II.     Establishing a TCP/iWarp like connections over InfiniBand

 In order to emulate an iWarp connection, it is required to open an 
 InfiniBand RC connection, associate it with IP addresses and TCP ports
 In addition protocols may transfer control/login packets before
 the migration to the RDMA mode; this requires exchanging receiver buffer
 size and depth for initial usage (the ULP’s will manage the flow control
 for the duration of the connection).

 The mapping uses the same data structures already defined for connection 
 establishment in SDP  (IBTA Socket Direct Protocol) which accomplish the
 same goal of mapping TCP Sockets addressing to InfiniBand, the non 
 relevant SDP fields were Reserved. 

 iWarp emulation CM Request (Hello) Private Data header
  
        0                   1                   2                   3     
        0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1   
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+  
 04    |      MID      |     Rsvd      |             bufs              |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+  
 08    |                              len                              |  
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+  
 12    |                           Reserved                            |  
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+  
 16    |                           Reserved                            |  
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+  
 20    | MajVer| MinVer| IPVer | FlowC |           Reserved            |  
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+  
 24    |                          DesRemRcvSz                          |  
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+  
 28    |                          LocalRcvSz                           |  
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+  
 32    |         Local Port            |           Reserved            |  
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+  
 36    |                       Src IP (127-96)                         |  
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+  
 40    |                       Src IP ( 95-64)                         |  
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+  
 44    |                       Src IP ( 63-32)                         |  
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+  
 48    |                       Src IP ( 31-00)                         |  
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+  
 52    |                       Dst IP (127-96)                         |  
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+  
 56    |                       Dst IP ( 95-64)                         |  
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+  
 60    |                       Dst IP ( 63-32)                         |  
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+  
 64    |                       Dst IP ( 31-00)                         |  
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+  
             Figure 1 CM Hello private data structure   
  

 iWarp emulation CM Response (HelloReply) Private Data header

        0                   1                   2                   3     
        0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1   
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+  
 04    |      MID      |     Rsvd      |             bufs              |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+  
 08    |                              len                              |  
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+  
 12    |                           Reserved                            |  
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+  
 16    |                           Reserved                            |  
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+  
 20    | MajVer| MinVer|    Reserved   |           Reserved            |  
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+  
 24    |                           ActRcvSz                            |  
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+  
             Figure 1 CM Reply private data structure   

 All the fields mentioned have the same functionality as defined in SDP
 The MID field can accept only the values 0 and 1, a new field called 
 FlowC is added that indicate that the ULP is responsible for the Flow
 Control and the Verb API usage (unlike SDP).

    MID – Message Identifier: 8 bits  
  
         0 – Hello message  
         1 – Reply message  

         Other values are reserved  

    FlowC – Flow Control and verb owner: 4 bits  
  
         0 – Transport owns flow control and may embed a 16 byte headers 
             in RC Send (just like SDP does, and uses zero in that field)  
         1 – ULP owns flow control and control the entire Send buffer
             (e.g. iSER does not require any additional headers)   

         Other values are reserved  


 IB Service ID’s used:

 Any iWarp emulated connection will use a Service ID in the form of a 
 constant base Service ID (IBTA_IWARP_PREFIX) + Listener TCP Port 
 where IBTA_IWARP_PREFIX will be allocated by IBTA or IETF, and until then a 
value
 of IBTA_IWARP_PREFIX= "0x0000 0000 0002 0000" will be used 
 Optionally it is possible to use SDP's Service ID format, and distinguish 
 between SDP and raw iWarp emulation based on the FlowC field.

 
_______________________________________________
openib-general mailing list
openib-general@openib.org
http://openib.org/mailman/listinfo/openib-general

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

Reply via email to