SO_MixA1A2A3A4.seq - Ordered Data chunks are received for Re-order (A1->A2->A3->A4)
To check that if DATA chunks arrive out of order of their stream sequence number, the endpoint MUST hold the received DATA chunks from delivery to the ULP until they are re-ordered.
./SO_MixA1A2A3A4.seq [-tooloption ...] -pkt ./SO_Segment.def -tooloption : v6eval tool option See Also: ../common/STD_PKT_COMMON.def ../common/SCTP_COMMON.def
Association is established between endpoint A and B. Arrange data in endpoint A such that ordered DATA messages are sent to endpoint B.
Endpoint A Endpoint B ULP (ESTABLISHED) (ESTABLISHED)
DATA A1 ----------------> [Strm=0, Seq=0] <---------------- SACK DATA Arrive -----> <---------------- DATA R1 (ECHO of A1)
SACK ---------------->
DATA A2 ----------------> [Strm=0, Seq=1] <---------------- SACK DATA Arrive -----> <---------------- DATA R2 (ECHO of A2)
SACK ---------------->
DATA A3 ----------------> [Strm=0, Seq=2] <---------------- SACK DATA Arrive -----> <---------------- DATA R3 (ECHO of A3)
SACK ---------------->
DATA A3 ----------------> [Strm=0, Seq=3] <---------------- SACK DATA Arrive -----> <---------------- DATA R4 (ECHO of A4)
SACK ---------------->
TEST DESCRIPTION:
1. Send DATA A1 from endpoint A to B with Strm=0 and Seq=0. 2. Check A: DATA A1 is delivered to the ULP and be send back. 3. Send DATA A2 from endpoint A to B with Strm=0 and Seq=1. 4. Check B: DATA A2 is delivered to the ULP and be send back. 5. Send DATA A3 from endpoint A to B with Strm=0 and Seq=2. 6. Check C: DATA A3 is delivered to the ULP and be send back. 7. Send DATA A4 from endpoint A to B with Strm=0 and Seq=3. 8. Check D: DATA A4 is delivered to the ULP and be send back.
None
RFC 4960
6.6. Ordered and Unordered Delivery
Within a stream, an endpoint MUST deliver DATA chunks received with the U flag set to 0 to the upper layer according to the order of their Stream Sequence Number. If DATA chunks arrive out of order of their Stream Sequence Number, the endpoint MUST hold the received DATA chunks from delivery to the ULP until they are reordered.
However, an SCTP endpoint can indicate that no ordered delivery is required for a particular DATA chunk transmitted within the stream by setting the U flag of the DATA chunk to 1.