Clause 3 comments for draft-ietf-rddp-ddp-01
"Barry Reinhold" <[email protected]>
| Newsgroups | gmane.ietf.rddp |
|---|---|
| Message-ID | <000b01c3ad37$cf6e1350$467fa8c0@i8600> |
Below are comments on clause 3 of draft-ietf-rddp-ddp-01
There are 10 Editorial comments here all dealing with editorial nits.
This is only of interest to the editor(s).
Comments are given in the following form:
Number, type, significance, reference
Comment
CLAUSE 3
1, Editorial, Low 3 1st PP, page 3
Is: Direct Data Placement Protocol (DDP) enables an Upper Layer Protocol
(ULP) to send data to a Data Sink without requiring the Data Sink to
Place the data in an intermediate buffer - thus when the data
arrives at the Data Sink, the network interface can Place the data
directly into the ULP's buffer. This can enable the Data Sink to
consume substantially less memory bandwidth than a buffered model
because the Data Sink is not required to move the data from the
intermediate buffer to the final destination. Additionally, this can
also enable the network protocol to consume substantially fewer CPU
cycles than if the CPU was used to move the data, and removes the
bandwidth limitation of only being able to move data as fast as the
CPU can copy the data.
Suggest: Direct Data Placement Protocol (DDP) enables an Upper Layer
Protocol
(ULP) to send data to a data sink without requiring the data sink to
place the data in an intermediate buffer - thus when the data
arrives at the data sink, the network interface can place the data
directly into the ULP's buffer. This can enable the data sink to
consume substantially less memory bandwidth than a buffered model
because the data sink is not required to move the data from the
intermediate buffer to the final destination. Additionally, this can
also enable the network protocol to consume substantially fewer CPU
cycles than if the CPU was used to move the data, and removes the
bandwidth limitation of only being able to move data as fast as the
CPU can copy the data.
Changes: Removed capitalization on "data sink" and "place"
2, Editorial, Low 3.1 1st bullet page 4
Is:
* Provide a buffer model that enables the Local Peer to Advertise
a named buffer (i.e. a Tag for a buffer) to the Remote Peer,
such that across the network the Remote Peer can Place data
into the buffer at Remote Peer specified locations. This is
referred to as the Tagged Buffer Model.
Suggest:
* Provide a buffer model that enables the local peer to advertise
a named buffer (i.e. a tag for a buffer) to the remote peer,
such that across the network the remote peer can place data
into the buffer at remote peer specified locations. This is
referred to as the tagged buffer model.
Changes: removed capitalization of "local peer", "advertise", "remote
peer", tagged buffer model, and "place".
3, Editorial, Low 3.1, 2nd bullet page 4
Is:
* Provide a second receive buffer model which preserves ULP
message boundaries from the Remote Peer and keeps the Local
Peer's buffers anonymous (i.e. Untagged). This is referred to
as the Untagged Buffer Model.
Suggest:
* Provide a second receive buffer model which preserves ULP
message boundaries from the remote peer and keeps the local
peer's buffers anonymous (i.e. untagged). This is referred to
as the untagged buffer model.
Changes: removed capitalization
4, Editorial, Low 3.1, 3rd bullet page 4
Is:
* Provide reliable, in-order Delivery semantics for both Tagged
and Untagged Buffer Models.
Suggest:
* Provide reliable, in-order delivery semantics for both Tagged
and untagged buffer models.
Changes: Capitalization
5, Editorial, Low 3.1, 5th bullet page 4
Is:
* Enable the ULP buffer to be used as a reassembly buffer,
without a need for a copy, even if incoming DDP Segments arrive
out of order. This requires the protocol to separate Data
Placement of ULP Payload contained in an incoming DDP Segment
from Data Delivery of completed ULP Messages.
Suggest:
* Enable the ULP buffer to be used as a reassembly buffer,
without a need for a copy, even if incoming DDP segments arrive
out of order. This requires the protocol to separate data
placement of ULP payload contained in an incoming DDP segment
from data delivery of completed ULP messages.
Change: Capitalization
6 Editorial, Low 3.1 6th bullet page 4
Is:
* If the LLP supports multiple LLP streams within a LLP
Connection, provide the above capabilities independently on
each LLP stream and enable the capability to be exported on a
per LLP stream basis to the ULP.
Suggest:
* If the LLP supports multiple LLP streams within a LLP
connection, provide the above capabilities independently on
each LLP stream and enable the capability to be exported on a
per LLP stream basis to the ULP.
Change: Capitalization
7 Editorial, Low 3.2 1st three pps page 4
Is:
DDP supports two basic data transfer models - a Tagged Buffer data
transfer model and an Untagged Buffer data transfer model.
The Tagged Buffer data transfer model requires the Data Sink to send
the Data Source an identifier for the ULP buffer, referred to as a
Steering Tag (STag). The STag is transferred to the Data Source
using a ULP defined method. Once the Data Source ULP has an STag for
a destination ULP buffer, it can request that DDP send the ULP data
to the destination ULP buffer by specifying the STag to DDP. Note
that the Tagged Buffer does not have to be filled starting at the
beginning of the ULP buffer. The ULP Data Source can provide an
arbitrary offset into the ULP buffer.
The Untagged Buffer data transfer model enables data transfer to
occur without requiring the Data Sink to Advertise a ULP Buffer to
the Data Source. The Data Sink can queue up a series of receive ULP
buffers. An Untagged DDP Message from the Data Source consumes an
Untagged Buffer at the Data Sink. Because DDP is message oriented,
even if the Data Source sends a DDP Message payload smaller than the
receive ULP buffer, the partially filled receive ULP buffer is
Delivered to the ULP anyway. If the Data Source sends a DDP Message
payload larger than the receive ULP buffer, it results in an error.
There are several key differences between the Tagged and Untagged
Buffer Model:
Suggest:
DDP supports two basic data transfer models - a tagged buffer data
transfer model and an untagged buffer data transfer model.
The tagged buffer data transfer model requires the data sink to send
the data source an identifier for the ULP buffer, referred to as a
Steering Tag (STag). The STag is transferred to the data source
using a ULP defined method. Once the data source ULP has an STag for
a destination ULP buffer, it can request that DDP send the ULP data
to the destination ULP buffer by specifying the STag to DDP. Note
that the tagged buffer does not have to be filled starting at the
beginning of the ULP buffer. The ULP data source can provide an
arbitrary offset into the ULP buffer.
The untagged buffer data transfer model enables data transfer to
occur without requiring the data sink to advertise a ULP buffer to
the data source. The data sink can queue up a series of receive ULP
buffers. An untagged DDP message from the data source consumes an
untagged buffer at the data sink. Because DDP is message oriented,
even if the data source sends a DDP message payload smaller than the
receive ULP buffer, the partially filled receive ULP buffer is
delivered to the ULP anyway. If the data source sends a DDP message
payload larger than the receive ULP buffer, it results in an error.
There are several key differences between the tagged and untagged
buffer model:
Changes: Capitalization
8 Editorial, Low, 3.2, bullets on page 5
Is:
* For the Tagged Buffer Model, the Data Source specifies which
received Tagged Buffer will be used for a specific Tagged DDP
Message (sender-based ULP buffer management). For the Untagged
Buffer Model, the Data Sink specifies the order in which
Untagged Buffers will be consumed as Untagged DDP Messages are
received (receiver-based ULP buffer management).
* For the Tagged Buffer Model, the ULP at the Data Sink must
Advertise the ULP buffer to the Data Source through a ULP
specific mechanism before data transfer can occur. For the
Untagged Buffer Model, data transfer can occur without an end-
to-end explicit ULP buffer Advertisement. Note, however, that
the ULP needs to address flow control issues.
* For the Tagged Buffer Model, a DDP Message can start at an
arbitrary offset within the Tagged Buffer. For the Untagged
Buffer Model, a DDP Message can only start at offset 0.
* The Tagged Buffer Model allows multiple DDP Messages targeted
to a Tagged Buffer with a single ULP buffer Advertisement. The
Untagged Buffer Model requires associating a receive ULP buffer
for each DDP Message targeted to an Untagged Buffer.
Suggest:
* For the tagged buffer model, the data source specifies which
received tagged buffer will be used for a specific tagged DDP
message (sender-based ULP buffer management). For the untagged
buffer model, the data sink specifies the order in which
untagged buffers will be consumed as untagged DDP messages are
received (receiver-based ULP buffer management).
* For the tagged buffer model, the ULP at the data sink must
advertise the ULP buffer to the data source through a ULP
specific mechanism before data transfer can occur. For the
untagged buffer model, data transfer can occur without an end-
to-end explicit ULP buffer advertisement. Note, however, that
the ULP needs to address flow control issues.
* For the tagged buffer model, a DDP message can start at an
arbitrary offset within the tagged buffer. For the untagged
buffer model, a DDP message can only start at offset 0.
* The tagged buffer model allows multiple DDP messages targeted
to a tagged buffer with a single ULP buffer advertisement. The
untagged buffer model requires associating a receive ULP buffer
for each DDP message targeted to an untagged buffer.
Change: Capitalization
9 Editorial, Low 3.2, text following bullets to end of clause
Is:
Either data transfer model Places a ULP Message into a DDP Message.
Each DDP Message is then sliced into DDP Segments that are intended
shah, et. al. Expires April 2004 5
Internet-Draft DDP Protocol Specification October 2003
to fit within a lower-layer-protocol's (LLP) Maximum Upper Layer
Protocol Data Unit (MULPDU). Thus the ULP can post arbitrary size
ULP Messages, containing up to 2^32 - 1 octets of ULP Payload, and
DDP slices the ULP message into DDP Segments which are reassembled
transparently at the Data Sink.
DDP provides in-order Delivery for the ULP. However, DDP
differentiates between Data Delivery and Data Placement. DDP
provides enough information in each DDP Segment to allow the ULP
Payload in each inbound DDP Segment payloads to be directly Placed
into the correct ULP Buffer, even when the DDP Segments arrive out-
of-order. Thus, DDP enables the reassembly of ULP Payload contained
in DDP Segments of a DDP Message into a ULP Message to occur within
the ULP Buffer, therefore eliminating the traditional copy out of
the reassembly buffer into the ULP Buffer.
A DDP Message's payload is Delivered to the ULP when:
* all DDP Segments of a DDP Message have been completely received
and the payload of the DDP Message has been Placed into the
associated ULP Buffer,
* all prior DDP Messages have been Placed, and
* all prior DDP Message Deliveries have been performed.
The LLP under DDP may support a single LLP stream of data per
connection (e.g. TCP) or multiple LLP streams of data per connection
(e.g. SCTP). But in either case, DDP is specified such that each DDP
Stream is independent and maps to a single LLP stream. Within a
specific DDP Stream, the LLP Stream is required to provide in-order,
reliable Delivery. Note that DDP has no ordering guarantees between
DDP Streams.
A DDP protocol could potentially run over reliable Delivery LLPs or
unreliable Delivery LLPs. This specification requires reliable, in
order Delivery LLPs.
Suggest:
Either data transfer model places a ULP message into a DDP message.
Each DDP message is then sliced into DDP segments that are intended
shah, et. al. Expires April 2004 5
Internet-Draft DDP Protocol Specification October 2003
to fit within a lower-layer-protocol's (LLP) Maximum Upper Layer
Protocol Data Unit (MULPDU). Thus the ULP can post arbitrary size
ULP messages, containing up to 2^32 - 1 octets of ULP payload, and
DDP slices the ULP message into DDP segments which are reassembled
transparently at the data sink.
DDP provides in-order delivery for the ULP. However, DDP
differentiates between data delivery and data placement. DDP
provides enough information in each DDP Segment to allow the ULP
payload in each inbound DDP segment payloads to be directly placed
into the correct ULP Buffer, even when the DDP Segments arrive out-
of-order. Thus, DDP enables the reassembly of ULP payload contained
in DDP segments of a DDP message into a ULP message to occur within
the ULP buffer, therefore eliminating the traditional copy out of
the reassembly buffer into the ULP buffer.
A DDP message's payload is delivered to the ULP when:
* all DDP segments of a DDP message have been completely received
and the payload of the DDP message has been placed into the
associated ULP buffer,
* all prior DDP messages have been placed, and
* all prior DDP message deliveries have been performed.
The LLP under DDP may support a single LLP stream of data per
connection (e.g. TCP) or multiple LLP streams of data per connection
(e.g. SCTP). But in either case, DDP is specified such that each DDP
stream is independent and maps to a single LLP stream. Within a
specific DDP stream, the LLP stream is required to provide in-order,
reliable delivery. Note that DDP has no ordering guarantees between
DDP streams.
A DDP protocol could potentially run over reliable delivery LLPs or
unreliable delivery LLPs. This specification requires reliable, in
order delivery LLPs.
Changes: Capitalization
10 Editorial Low 3.3 text before figure 1
Is:
DDP enables direct data Placement capability for any ULP, but it has
been specifically designed to work well with RDMAP (see [RDMA]), and
is part of the iWARP protocol suite.
Suggest:
DDP enables direct data placement capability for any ULP, but it has
been specifically designed to work well with RDMAP (see [RDMA]), and
is part of the iWARP protocol suite.
Change: Capitalization of "placement"
Barry Reinhold
Lamprey Networks
[email protected]
(603) 868-8411