UnorderDelivery.seq - Unordered Data chunks are received for Delivery
To check that if receiver deliver data to the upper layer
according to the order it receives data.
./UnorderDelivery.seq [-tooloption ...] -pkt ./UnorderDelivery.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 unordered DATA messages are sent to endpoint B.
Endpoint A Endpoint B ULP
(ESTABLISHED) (ESTABLISHED)
DATA 1 ----------------->
--------->DATA 1 Delivered
<----------------- SACK
<----------------- DATA
SACK ----------------->
DATA 2 ----------------->
--------->DATA 2 Delivered
<----------------- SACK
<----------------- DATA
SACK ----------------->
DATA 3 ----------------->
--------->DATA 3 Delivered
<----------------- SACK
<----------------- DATA
SACK ----------------->
DATA 4 ----------------->
--------->DATA 4 Delivered
<----------------- SACK
<----------------- DATA
SACK ----------------->
TEST DESCRIPTION:
1. To check that if DATA chunks arriving out of order of there stream
sequence number the receiver transfer the received DATA chunks to
upper layer as they are received.
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.
When an endpoint receives a DATA chunk with the U flag set to 1, it
must bypass the ordering mechanism and immediately deliver the data
to the upper layer (after reassembly if the user data is fragmented
by the data sender).
This provides an effective way of transmitting "out-of-band" data in
a given stream. Also, a stream can be used as an "unordered" stream
by simply setting the U flag to 1 in all DATA chunks sent through
that stream.
IMPLEMENTATION NOTE: When sending an unordered DATA chunk, an
implementation may choose to place the DATA chunk in an outbound
packet that is at the head of the outbound transmission queue if
possible.
The 'Stream Sequence Number' field in a DATA chunk with U flag set to
1 has no significance. The sender can fill it with arbitrary value,
but the receiver MUST ignore the field.
Note: When transmitting ordered and unordered data, an endpoint does
not increment its Stream Sequence Number when transmitting a DATA
chunk with U flag set to 1.