NAME

  SACK_MultiDataChunks.seq - A SACK chunk can acknowledge the reception of multiple DATA chunks


PURPOSE

  To check that SACK chunk can be send to acknowledge the reception
  of multiple DATA chunks.


SYNOPSIS

  ./SACK_MultiDataChunks.seq [-tooloption ...] -pkt ./SACK_MultiDataChunks.def
    -tooloption : v6eval tool option
  See Also: ../common/STD_PKT_COMMON.def
            ../common/SCTP_COMMON.def


PRE-TEST CONDITION

  Association is established between endpoint A and B. Arrange the data
  in endpoint A such that multiple DATA messages are sent to endpoint B.


TEST PROCEDURE

  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.


NOTE

  None


REFERENCE

  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.