Some questions related to "last segment" of a ddp message
"Barry Reinhold" <[email protected]>
| Newsgroups | gmane.ietf.rddp |
|---|---|
| Message-ID | <002701c3dbaf$b6d02580$467fa8c0@i8600> |
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