Subject: [rddp] Association of STag and RDMAP Stream(s) - version 2

From: Renato Recio <[email-masked]>
Date: Tue, 11 Feb 2003 12:43:10 -0600

Folks,
      I believe the following text addresses the issue raised by Caitlin
regarding STag validation.

Following is text I propose to add to bullet #3 in section 10.3 of the DDP
-01 specification:

   DDP MAY choose several locally defined mechanisms for associating a DDP
   Stream and a STag. One such mechanism is to provide two association
   types: a protection domain association and an DDP Stream association.

      Under the protection domain (PD) association, a unique protection
      domain identifier (PD ID) is created and used locally to associate
      the STag with a set of DDP Streams. Under this mechanism, only DDP
      Streams that have the same PD ID as the STag are allowed to use the
      STag. For an incoming Tagged Message on an DDP Stream, if the PD ID
      associated with that DDP Stream is not the same as the PD ID
      associated with the STag targeted by the Tagged Message, then the
      Message is not placed and the DDP Layer MUST surface a local error to
      the ULP.  Note that the PD ID is locally defined, and cannot be
      directly manipulated by the Remote Peer.

      Under DDP Stream association, a given DDP Stream is identified
      locally by a unique DDP Stream identifier (ID) and that DDP Stream ID
      is associated with the STag and DDP Stream. In this case, for an
      incoming Tagged Message on an DDP Stream, if the DDP Stream ID
      associated with that DDP Stream is not the same as the DDP Stream ID
      associated with the STag targeted by the Tagged Message, then the
      Message is not placed and and the DDP Layer MUST surface a local
      error to the ULP. Note that the DDP Stream ID is locally defined, and
      cannot be directly manipulated by the Remote Peer.

Following is text I propose to add to bullet #5 in section 10.3 of the -01
specification:

   RDMAP MAY choose several locally defined mechanisms for associating a
   RDMAP Stream and a STag. One such mechanism is to provide two
   association types: a protection domain association and an RDMAP Stream
   association.

      Under the protection domain (PD) association, a unique protection
      domain identifier (PD ID) is created and used locally to associate
      the STag with a set of RDMAP Streams. Under this mechanism, only
      RDMAP Streams that have the same PD ID as the STag are allowed to use
      the STag.

         For an incoming RDMA Read Request Message on an RDMAP Stream, if
         the PD ID associated with that RDMAP Stream is not the same as the
         PD ID associated with the Data Source STag, the Message is not
         placed and the RDMAP Stream MUST be Terminated with an Invalid
         STag error. Finally, for a Send with Invalidate or Send with SE
         and Invalidate on an RDMAP Stream, if the PD ID associated with
         that RDMAP Stream is not the same as the PD ID associated with the
         STag that is to be Invalidated, the Message is not placed and the
         RDMAP Stream MUST be Terminated with an STag cannot be Invalidated
         error. Note that the PD ID is locally defined, and cannot be
         directly manipulated by the Remote Peer.

      Under RDMAP Stream association, a given RDMAP Stream is identified
      locally by a unique RDMAP Stream identifier (ID) and that RDMA Stream
      ID is associated with the STag and RDMAP Stream.

         For an incoming RDMA Read Request Message on an RDMAP Stream, if
         the RDMAP Stream ID associated with that RDMAP Stream is not the
         same as the RDMAP Stream ID associated with the Data Source STag,
         then the Message is not placed and the RDMAP Stream MUST be
         Terminated with an Invalid STag error. Finally, for a Send with
         Invalidate or Send with SE and Invalidate on an RDMAP Stream, if
         the RDMAP Stream ID associated with that RDMAP Stream is not the
         same as the RDMAP Stream ID associated with the STag that is to be
         Invalidated, the Message is not placed and the RDMAP Stream MUST
         be Terminated with an STag cannot be Invalidated error. Note that
         the RDMA Stream ID is locally defined, and cannot be directly
         manipulated by the Remote Peer.

   Note:  For an incoming RDMA Write or RDMA Read Response Message on an
   RDMAP Stream, the DDP layer MUST associate the STag targeted by the RDMA
   Write or RDMA Read Response Message (respectively) to the RDMAP Stream.
   If an STag targeted by the RDMA Write or RDMA Read Response Message
   Segment is not associated with the RDMAP Stream that received the
   Message Segment,  DDP MUST surface an Invalid STag error to the RDMAP
   layer. The RDMAP layer MUST Terminate the RDMAP Stream if the DDP Layer
   surfaces an Invalid STag error.

I believe the above text resolves the problem Caitlin surfaced, folks,
please let me know if you agree.  Also,  please note,  the STag cannot be
Invalidated error is one of the two new error codes I surfaced on this
reflector.

Renato J Recio
IBM Distinguished Engineer
Member IBM Academy of Technology
IBM I/O Architecture and Technology
Tel 512-838-3685, T/L 678-3685

_______________________________________________
rddp mailing list
[email-masked]
https://www1.ietf.org/mailman/listinfo/rddp

---

From: Caitlin Bestler <[email-masked]>
Date: Thu, 13 Feb 2003 13:14:58 -0600

On 2/11/03, Renato Recio wrote:

>
> Under the protection domain (PD) association, a unique
                                                  ^^^^^^
> protection domain identifier (PD ID) is created and used
> locally to associate the STag with a set of DDP Streams.

The use of "unique" as an adjective begs the question "over
what domain?". I believe there is a danger of implementers
falsely assuming they know what that scope is. Isn't it
obvious that the scope is [the interface, the adapter,
the host, the IP address]?

I believe adding a sentence to the effect that "The scope
of the protection domain identifier (PD ID) MUST include at
least all of the DDP Streams associated with it. The scope
MAY be larger, but to what extent is undefined."

Caitlin Bestler
http://asomi.com/CaitlinBestler/
_______________________________________________
rddp mailing list
[email-masked]
https://www1.ietf.org/mailman/listinfo/rddp