RE: [Ipoverib] Comments on IPoIB Connected Mode Connection Establ ishment

Dror Goldenberg <gdror@mellanox.co.il> Wed, 17 August 2005 08:36 UTC

Received: from localhost.localdomain ([127.0.0.1] helo=megatron.ietf.org) by megatron.ietf.org with esmtp (Exim 4.32) id 1E5JOz-0002KS-Rz; Wed, 17 Aug 2005 04:36:01 -0400
Received: from odin.ietf.org ([132.151.1.176] helo=ietf.org) by megatron.ietf.org with esmtp (Exim 4.32) id 1E5JOv-0002Ik-2O for ipoverib@megatron.ietf.org; Wed, 17 Aug 2005 04:35:59 -0400
Received: from ietf-mx.ietf.org (ietf-mx [132.151.6.1]) by ietf.org (8.9.1a/8.9.1a) with ESMTP id EAA15325 for <ipoverib@ietf.org>; Wed, 17 Aug 2005 04:35:53 -0400 (EDT)
Received: from [194.90.237.34] (helo=mtlex01.yok.mtl.com) by ietf-mx.ietf.org with esmtp (Exim 4.43) id 1E5JyL-0007vJ-S7 for ipoverib@ietf.org; Wed, 17 Aug 2005 05:12:36 -0400
Received: by mtlex01.yok.mtl.com with Internet Mail Service (5.5.2653.19) id <Q46B9X7T>; Wed, 17 Aug 2005 11:35:17 +0300
Message-ID: <506C3D7B14CDD411A52C00025558DED608749581@mtlex01.yok.mtl.com>
From: Dror Goldenberg <gdror@mellanox.co.il>
To: Vivek Kashyap <kashyapv@us.ibm.com>, Dror Goldenberg <gdror@mellanox.co.il>
Subject: RE: [Ipoverib] Comments on IPoIB Connected Mode Connection Establ ishment
Date: Wed, 17 Aug 2005 11:35:14 +0300
MIME-Version: 1.0
X-Mailer: Internet Mail Service (5.5.2653.19)
X-Spam-Score: 0.5 (/)
X-Scan-Signature: 14278aea5bdd1edf35ec09ffb7b61f9d
Cc: IPoverIB <ipoverib@ietf.org>
X-BeenThere: ipoverib@ietf.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: IP over InfiniBand WG Discussion List <ipoverib.ietf.org>
List-Unsubscribe: <https://www1.ietf.org/mailman/listinfo/ipoverib>, <mailto:ipoverib-request@ietf.org?subject=unsubscribe>
List-Post: <mailto:ipoverib@ietf.org>
List-Help: <mailto:ipoverib-request@ietf.org?subject=help>
List-Subscribe: <https://www1.ietf.org/mailman/listinfo/ipoverib>, <mailto:ipoverib-request@ietf.org?subject=subscribe>
Content-Type: multipart/mixed; boundary="===============0459601813=="
Sender: ipoverib-bounces@ietf.org
Errors-To: ipoverib-bounces@ietf.org


> From: Vivek Kashyap [mailto:kashyapv@us.ibm.com] 
> Sent: Monday, August 15, 2005 9:41 AM
> 
> On Wed, 10 Aug 2005, Dror Goldenberg wrote:
> 
> > Reviewing the ipoib-cm draft 
> > 
> (http://www1.ietf.org/mail-archive/web/ipoverib/current/msg01372.html
> > 
> <http://www1.ietf.org/mail-archive/web/ipoverib/current/msg013
72.html> 
> > ) I have three comments about the connection establishment of 
> > IPoIB-CM.
> >
> > (1) Service ID Reserved Bits
> >
> > Section 3.3. defines the Service-ID as having reserved bits which must 
> > be transmitted as zeroes and ignored on receive.
> > It doesn't sound right to ignore those bits on the receive  side.
Ignoring
> > those bits on
> > receive essentially means that the IPoIB-CM has to listen on a range of
> > service IDs.
> > I believe that it's better to define a service ID without  reserved bits
such
> > that the
> > passive side listens on a single service ID.
> > For example, service IDs defined for SDP, don't have any reserved bits.
> 
> Is it not possible to mask the bits marked as reserved (or 
> unused)? The draft requires that the reserved bits must be 
> zeroes on send. If it is a limitation 
> of the connection manager that it cannot mask the bits and 
> will have to listen to the 'range' then I agree that the 
> service-ID will have to be specified 
> received as zeroes instead of ignoring them.
> 

The CM interface is not defined in the IB spec, it is therefore
implementation
dependent. My understanding is that in OpenIB, the Linux CM is capable of
masking the Service ID, but the Windows CM is not. I personally think that 
we should define those reserved as zero in send and receive, unless we 
can come up with an example of how future extension can leverage 
this feature. 

> >
> >
> > (2) Active/Active Model Support
> >
> > 2.3 implies that it is desirable to have one connection between peers, 
> > i.e. one QP on each side. I believe that active-active connection 
> > establishment model is more
> > appropriate here. Otherwise, there may be cases of simultaneous access
that
> > will
> > end up having two connections between the same two nodes  (one for each
> > direction).
> > The current Service ID assignment, makes it impossible to use the
> > active-active
> > model. The main reason is that the service ID has to be  identical at
both
> > ends. In
> > other words, active-active requires that both REQ messages  be used with
the
> > same
> > Service ID. The current Service ID is different (it has the  QP number
in
> > it).
> >
> > A model that enables active-active, for example, is using a  Service ID 
> > which is a derivative of the PKey (no QP# in the Service  ID). However, 
> > it will not support the model of more than
> > one UD QP on the same HCA on the same PKey. This model is important.
> >
> > Another model that enables active-active is to have both local and 
> > remote QP numbers in the service ID. However, it will require both 
> > ends to listen on many Service IDs.
> >
> > Another alternative is to stay with active-passive connection 
> > establishment, but add an interface through which one of the 
> > connection can be quiesced and closed. In the
> > case where you happened to open two connections between the  hosts, then
you
> > can close one of them afterwards.
> >
> >
> > (3) Identification of Remote Peer in Passive Side
> >
> > It is unclear to me how can the passive side tell which is  the remote 
> > peer. It must be able to tell that, so that it can use the  other half 
> > of the connection to send messages
> > back to the active side (instead of creating a new connection).
> > The identification of the peer is based on Link-Layer  Address, which is
> > {GID,QPN}. The
> > CM REQ message only includes GID. Maybe the QPN (the UD QP)  should be
passed
> > through the REQ private data ?
> 
> ok..thinking about the above points, how about:
> 
> 1. Include the local QPN in the request
> 2. The receiver of CM REQ will have:
>  	- local QPN (by way of ServiceID requested)
>  	- remote QPN (in private data as above)
>  	- remote GID (in REQ)

Sounds good. It will fully solve item (3) in my original mail.

> 3. In case of the active-active connection the request from 
> the numerically 
> smaller MAC Address (QPN+GID or probably just the GID) is 
> terminated. The error code 'state connection' is a possibility here.
> 
> The active-active situation is known when it is determined 
> that there is an outstanding request to the remote peer (as 
> determined by 
> GID+QPN) while a request from the same is received on local ServiceID.

In IB, active-active is only determined by equal Service IDs. See IB 
spec 1.2 vol1 12.9.7.1, the Active CM state machine goes to 
Peer-Compare state based solely on the Service ID.
Therefore, if you want to have active-active, then you must ensure that
both service IDs are identical. In the current draft, the Service IDs are
different, as they include a remote QP number.

> 
> 4. However, there might be a need to establish multiple 
> connections between the same two peers. Therefore, if a 
> connection already exits between the remote GID+QPN on the 
> local ServiceID, it is up to the 
> receiver to accept this connection. The implementation 
> accepting multiple connections and the one requesting 
> multiple connections on the same ServiceID must manage the 
> load; it is beyond the scope of this spec.

I agree.

> 
> If two connection requests cross then case 3. above applies.


They must have same Service ID in order to cross, from the IB
perspective.

> 
> thoughts?
> 
> Vivek
> 
> >
> > -Dror
> >
> 
_______________________________________________
IPoverIB mailing list
IPoverIB@ietf.org
https://www1.ietf.org/mailman/listinfo/ipoverib