SACK_MultiDataChunks.seq - A SACK chunk can acknowledge the reception of multiple DATA chunks
To check that SACK chunk can be send to acknowledge the reception of multiple DATA chunks.
./SACK_MultiDataChunks.seq [-tooloption ...] -pkt ./SACK_MultiDataChunks.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 the data in endpoint A such that multiple DATA messages are sent to endpoint B.
Endpoint A Endpoint B ULP (ESTABLISHED) (ESTABLISHED)
DATA 1 ----------------->
<----------------- SACK
DATA 2 ----------------->
DATA 3 ----------------->
<----------------- SACK (ACK DATA 2 and DATA 3)
TEST DESCRIPTION:
1. Send DATA 1 from endpoint A to B and immediately received a SACK. 2. Send DATA 2 and DATA 3 from endpoint A to B. 3. Check A: A SACK is send to acknowledge the reception of multiple DATA chunks from endpoint B.
None
RFC 4960
6.2. Acknowledgement on Reception of DATA Chunks
Acknowledgements MUST be sent in SACK chunks unless shutdown was requested by the ULP, in which case an endpoint MAY send an acknowledgement in the SHUTDOWN chunk. A SACK chunk can acknowledge the reception of multiple DATA chunks. See Section 3.3.4 for SACK chunk format. In particular, the SCTP endpoint MUST fill in the Cumulative TSN Ack field to indicate the latest sequential TSN (of a valid DATA chunk) it has received. Any received DATA chunks with TSN greater than the value in the Cumulative TSN Ack field are reported in the Gap Ack Block fields. The SCTP endpoint MUST report as many Gap Ack Blocks as can fit in a single SACK chunk limited by the current path MTU.