RE: DDP segment sequences for Untagged DDP message
Michael Krause <[email protected]>
| Newsgroups | gmane.ietf.rddp |
|---|---|
| Message-ID | <[email protected]> |
At 08:01 AM 1/27/2004 -0600, Culley, Paul wrote: >Note: this is the second sending, it did not show after the first time >within 24 hours... > >OK, I realize that I missed a small point; in the first case below > > 1. QN = 0, MSN = 1, MO = 100 L = 1 Payload = 100 bytes > 2. QN = 0, MSN = 1, MO = 0 L = 0 Payload = 100 bytes > Result: DDP Message (bytes 0-200) is delivered to ULP > [prc] yes > [pat]DDP message (bytes 0-200) occurs after 1. > 2 will cause an invalid MSN error > >I was thinking of TCP segments as they arrive at the receiver, not as >sent at the transmitter. If the example was sent in this order, I agree >that an invalid MSN error is the correct answer, if they were merely >received in this order (they got flipped in route and were received out >of order, but sent in order), then the result would be a normal >delivery. > >I am not certain I agree with Pat on the "optional" nature of checking >for errors that are not even mentioned in the specification. I think >that if we have to list all of the checks that we DO NOT perform in the >specifications, then we have quite a bit of writing left to do. It would be both impractical to document all that should not be done and a pain / low ROI to test for compliance. >That said, we should perhaps be a bit more clear about the rules on >Sending overlapped segments, or Sending Gaps. I am definitely not in >favor of requiring the receiver to check for either case. Concur. >If we were to add text to DDP for this I think it would say something like: > >When sending an Untagged Message, the Sender MUST send data to each >offset within the target buffer only one time. > >When sending an Untagged Message, the Sender MUST send a contiguous >stream of bytes to the destination buffer, starting at offset 0. > >In my mind, we should allow the receiver to check for these conditions >only if these rules are made on the sender. I don't think we need to add these. Mike >Paul R. Culley >HP Fellow >281-514-5543 > > >-----Original Message----- >From: [email protected] [mailto:[email protected]] >Sent: Friday, January 23, 2004 4:45 PM >To: Culley, Paul; [email protected]; [email protected] >Subject: RE: [rddp] DDP segment sequences for Untagged DDP message > > >My responses are marked pat > >-----Original Message----- >From: Culley, Paul [mailto:[email protected]] >Sent: Friday, January 16, 2004 12:28 PM >To: Barry Reinhold; RDDP >Subject: RE: [rddp] DDP segment sequences for Untagged DDP message > > >Below... > >Paul R. Culley >HP Fellow >281-514-5543 > > >-----Original Message----- >From: [email protected] [mailto:[email protected]] On Behalf Of >Barry Reinhold >Sent: Friday, January 16, 2004 1:09 PM >To: RDDP >Subject: [rddp] DDP segment sequences for Untagged DDP message > > > >So, is there agreement, for the sequences that follow, that the >specified "result" given below is the correct (and desired?) behavior as >defined by the 01 draft. > >Untagged DDP Segment Sequences: > >1. QN = 0, MSN = 1, MO = 100 L = 1 Payload = 100 bytes >2. QN = 0, MSN = 1, MO = 0 L = 0 Payload = 100 bytes >Result: DDP Message (bytes 0-200) is delivered to ULP >[prc] yes >[pat]DDP message (bytes 0-200) occurs after 1. > 2 will cause an invalid MSN error > >1. QN = 0, MSN = 1, MO = 100, L = 0, Payload = 100 bytes >2. QN = 0, MSN = 1, MO = 0, L = 1, Payload = 100 bytes >Result: ULP sent Error type=Untagged Buffer Error, Error Code=Invalid MO >[prc] No, the receiver will place both segments, but inform the ULP that >only 100 bytes was delivered, ending at MO=99. No error should be >detected or reported, unless the receiver's buffer was not large enough >to hold the second 100 bytes. [pat] Checking for the error of last >segment not containing highest MO is optional. Both behaviors above >would be valid responses. > >1. QN = 0, MSN = 1, MO = 0, L = 0, Payload = 100 bytes >2. QN = 0, MSN = 1, MO = 0, L = 1, Payload = 100 bytes >Result: DDP Message (bytes 0-100) is delivered to ULP >[prc] yes, but it is not certain which segment ends up in the buffer, it >won't matter unless the two payloads are different. [pat] agree. > >1. QN = 0, MSN = 1, MO = 000, L = 0, Payload = 100 bytes >2. QN = 0, MSN = 1, MO = 200, L = 1, Payload = 100 bytes >Result: DDP Message (bytes 0-300) is delivered to ULP >[prc] yes, but the middle 100 will contain unknown values (probably what >they had before the buffer went through DDP). [pat] There are two valid >behaviors. The receiver may deliver the message as above or it may be >checking and report an error. > >1. QN = 0, MSN = 1, MO = 300, L = 1, Payload = 100 bytes >Result: DDP Message (bytes 0-400) is delivered to ULP >(This is based on wording in 6.3, MO field. Note that the second >sentence simply says that the MO "that references the first octet MUST >be set to zero", not that a segment having a zero MO is required) [prc] >yes, but first 300 is unknown [pat] Again the receiver is allowed to >deliver or to report an error. > >1. QN = 0, MSN = 1, MO = 100, L = 0, Payload = 100 bytes >2. QN = 0, MSN = 1, MO = 000, L = 1, Payload = 0 bytes >Result: ULP sent Error type=Untagged Buffer Error, Error Code = Invalid >MO (There is ambiguity between 6.1 L bit field description ( Segment w/ >L bit set must have highest MO), and 9.1 (implies that for non-zero >length segments the header fields are not validated.) [prc] no, at least >not because of a protocol error. There is only an error if the buffer >limits as defined by the ULP is exceeded. You should get an indication >that a zero length message was delivered. [pat] The ambiguity you point >out is probably an error. The MUST on checking Untagged DDP segments >required that they be validated before placement. A zero length segment >isn't placed so the MUST didn't apply to it. There probably should be a >statement about checking the fields before delivery of zero length >untagged messages or zero length segments with the L bit set. Also even >if that statement is added, this is another case where the receiver is >allowed to deliver or report an error. > >1. QN = 0, MSN = 1, MO = 000, L = 0, Payload = 100 bytes >2. QN = 0, MSN = 1, MO = 100, L = 1, Payload = 0 bytes >Result: DDP Message (bytes 0 - 100) is delivered to ULP >[prc] yes >[pat] yes. Note that this is another case where there should be a >requirement that the zero length segment header values be checked before >delivery. > >1. QN = 0, MSN = 1, MO = 100, L = 1, Payload = 0 bytes >Result: DDP Message (bytes 0 - 100) id delivered to ULP. >[prc], yes, but with unknown data values. >[pat] May deliver the message or may scoreboard and report an error. > >Barry Reinhold >Lamprey Networks >[email protected] >(603) 868-8411 > > > > >_______________________________________________ >rddp mailing list >[email protected] >https://www1.ietf.org/mailman/listinfo/rddp > >_______________________________________________ >rddp mailing list >[email protected] >https://www1.ietf.org/mailman/listinfo/rddp > >_______________________________________________ >rddp mailing list >[email protected] >https://www1.ietf.org/mailman/listinfo/rddp