Re: Meaning of preceding
"Michael C. Cambria" <[email protected]>
| Newsgroups | gmane.ietf.rddp |
|---|---|
| Message-ID | <[email protected]> |
Barry Reinhold wrote:
> 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.
Assuming you are referring to the start of a connection (e.g. not
wrapping from MSN 0xffffffff to 0), wouldn't this be covered by:
5. The Message Sequence Number falls in the range of legal Message
Sequence Numbers, for the queue defined by the QN. The legal
range is defined as being between the MSN value assigned to the
first available buffer for a specific QN and the MSN value
assigned to the last available buffer for a specific QN.
A compliant receiver starts their range at MSN=1 for the first buffer,
MSN=2 for the next etc., so MSN=0 is out of range. An error should be
signaled to ULP since (top of 9.1) "...the DDP Segment MUST be validated
before Placement"
> 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?
In this case, your questions re placement & delivery make a good point.
When looking for text in section 9 regarding what to do, I found
nothing re MSN ordering other than that quote above regarding range. I
also found no error code for something like "unexpected MSN".
Section 7.3 only says:
At the Data Source, DDP:
* MUST transmit DDP Messages in the order they were submitted to
the DDP layer,
The MSN definition in section 4.3 does state that the MSN increases with
each DDP message.
Other than intuition, nothing is explicitly said about the "next" MSN
must/should be used by the sender. The receiver will find MSN 3 in your
example to be "in range" with available buffers and as I read things,
place it, unless there is text I'm (hopefully) missing. If this isn't
meant to be allowed, perhaps another test in sec 9 could be added to
make this explicit.
MikeC