FM_PartialDelivery.seq - Fragmented DATA chunks are received for reassembly (Partial Delivery)
To check that if the data receiver runs out of buffer space while still
waiting for more fragments to complete the reassembly of the message, it
should dispatch part of its inbound message through a partial delivery API.
./FM_PartialDelivery.seq [-tooloption ...] -pkt ./FM_PartialDelivery.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 fragmented DATA messages are sent to
endpoint B for reassembly.
Endpoint A Endpoint B ULP
(ESTABLISHED) (ESTABLISHED)
DATA ---------------->
[TSN=0,B=1,E=0]
<---------------- SACK
DATA ---------------->
[TSN=1,B=0,E=0]
<---------------- SACK
......
DATA ---------------->
[TSN=47,B=0,E=1]
<---------------- SACK
TEST DESCRIPTION:
1. Send DATA from endpoint A to B with B=1, E=0.
2. Check A: DATA is not delivered to the ULP.
3. Send DATA from endpoint A to B with B=0, E=0 until the
data receiver runs out of buffer space.
4. Check B: Fragmented DATA chunks is delivered to the ULP
after reassemble and be send back.
5. Send DATA from endpoint A to B with B=0, E=1.
6. Check C: Fragmented DATA chunks is delivered to the ULP
after reassemble and be send back.
None
RFC 4960
6.9. Fragmentation and Reassembly
An endpoint MUST recognize fragmented DATA chunks by examining the
B/E bits in each of the received DATA chunks, and queue the
fragmented DATA chunks for reassembly. Once the user message is
reassembled, SCTP shall pass the reassembled user message to the
specific stream for possible reordering and final dispatching.
Note: If the data receiver runs out of buffer space while still
waiting for more fragments to complete the reassembly of the message,
it should dispatch part of its inbound message through a partial
delivery API (see Section 10), freeing some of its receive buffer
space so that the rest of the message may be received.