Barry,
The last segment is defined by the L bit and the segment with the L bit must be the actual last segment in the stream sent to the transport. See the definition of the L bit in 6.2 which says
The DDP Segment with the L bit set to 1 MUST be posted to the
LLP after all other DDP Segments of the associated DDP Message
have been posted to the LLP. For an Untagged DDP Message, the
DDP Segment with the L bit set to 1 MUST carry the highest MO.
The requirements on the transport include that it must allow DDP to determine that all prior segments have been received (see requirement 5 in section 5). The ordering rules in 7.4 require that all preceding DDP messages MUST have been placed before a message may be delivered. So, segments 1 through 4 in your example MUST be placed before the completion in from segment 5 is delivered.
The receiver doesn't have to scoreboard data placement. It only has to know that the prior data stream has no gaps and that all placements for that prior data stream have been completed.
Regards,
Pat
-----Original Message-----
From: [email protected] [mailto:[email protected]]On Behalf Of Barry
Reinhold
Sent: Thursday, January 15, 2004 1:37 PM
To: Hemal Shah
Cc: RDDP
Subject: [rddp] Some questions related to "last segment" of a ddp
message
Hemal,
I would like to check on a couple of issues:
I believe that it is possible to RECEIVE a sequence of DDP segments
using the untagged buffer model as follows: Let me know if this is not
correct.
Segment 1: QN=1, MSN=1, MO=200, L=0 (payload 100) (MO not 0 on first)
Segment 2: QN=1, MSN=1, MO=200, L=0 (payload 100) (duplicate)
Segment 3: QN=1, MSN=1, MO=100, L=0 (payload 100) (backward)
Segment 4: QN=1, MSN=1, MO=000, L=0 (payload 050) (meets 6.3, MO field)
Segment 5: QN=1, MSN=1, MO=400, L=1 (payload 000) (meets 6.1 L bit
field)
In particular,
1. If no packets have been received w/ a given MSN and QN and a packet
arrives with a non-zero MO this is not an error.
2. The MO fields in intermediate segments are not constrained to be in
order, can have gaps, and can write over buffer space already written
to.
Or from a test perspective, if a receiver returned an error when
receiving the above sequence the receiver would be considered
non-conformant.
I am also a bit confused by the use of the term "last" in the draft.
If the above is considered a valid sequence it is unclear to me how the
receiver can meet the requirements of knowing that all DDP Segments of
the DDP message have been placed before it "delivers" the DDP message to
the ULP. (page 14 under L - Last flag, first bullet)
Is there some method other than the L bit that indicates that all
segments of a DDP message have been placed? (i.e. do implementations
need to keep a scoreboard?) The draft (in clause 7.4, first *, on page
20) references a requirement on the receiver to deliver only when the
last bit is set on the "last DDP Segment". How is the last segment
defined beyond the L bit?
Barry Reinhold
Lamprey Networks
[email protected]
(603) 868-8411
_______________________________________________
rddp mailing list
[email protected]
https://www1.ietf.org/mailman/listinfo/rddp
lmpx.com only provides a reader for public news (NNTP) servers. It is not
affiliated with the servers or forums shown here and is not responsible for
the content of articles, which is written by their respective authors.