Re: Meaning of preceding
"Caitlin Bestler" <[email protected]>
| Newsgroups | gmane.ietf.rddp |
|---|---|
| Message-ID | <[email protected]> |
Barry Reinhold said: > Questions on DDP receiver > > Assume a DDP receiver has a set of buffers "associated with" MSN > 0,1,2,3,4 and 5. (unexpected association for MSN 0) for a given constant > QN. > > Question 1: > > If the first DDP segment that arrives has MSN = 0 (no TCP sequence gap, > violation of initial MSN rule) does the receiver: (1) Place and deliver, > (2) place and hold, (3) signal error to ULP. > The expected MSN window would be at 1 (since the receiver has completed no prior receive operations). Therefore MSN 0 is 2**32 messages in the future. I do not believe that more than 2**31 messages could be in flight with any known LLP. The SCTP mapping explicitly limits this, and it is implicitly limited by the number of bytes that can be in-flight for TCP. More importantly, it is highly unlikely that the receiving ULP has made anywhere near that many buffers available. The legal range of MSNs is defined by the base and the number of available buffers. What is "available" gets tricky if the local interface uses SRQs, but resolving that is a local issue. > Question 2: > > If MSN 1 has been received, and the next MSN is 3 (with no TCP sequence > gap, sender protocol error) what is the receiver's expected behavior? > I presume you mean that there is no gap in the LLP sequencing between MSN 1 and MSN 3. In that case the receiver should, at some point, determine that MSN 2 will never arrive, and teardown the connection. MSN 3 may have been placed before the error condition can be noted, but obviously not completed. I am not aware of any language that requires the receiver to *promptly* note this condition. As that the only damage is hanging the connection where the mistake was made, simply waiting for things to time-out would strike me as acceptable. The sender is in violation. The receiver MUST protect itself, but is under no obligation to provide prompt courteous diagnostics. Of course it is very nice of it to do so. It should also be noted that when checking for this condition under SCTP that the adaptation layer's stream sequence number (which represents the stream specific order of *submission* to the sending LLP) must be used. Cheking using the TSN, can result in a mistaken ordering. It is legal for the SCTP TSN for the chunk containing MSN n to be earlier than for the chunk containing MSN n+1 because the sending SCTP stack is allowed to re-order chunks to optimize bundling. -- Caitlin Bestler http://asomi.com/