NAME

  InvalidChecksumInCookieAck.seq - COOKIE-ACK chunk is received with invalid checksum


PURPOSE

  To check that if COOKIE-ACK chunk is received with invalid checksum, the
  endpoint should silently discards the COOKIE-ACK.


SYNOPSIS

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


PRE-TEST CONDITION

  Association is not established between endpoint A and B. Arrange
  data in endpoint A such that COOKIE-ACK message is send to endpoint
  B with invalid checksum.


TEST PROCEDURE

  Endpoint A                           Endpoint B                ULP
  (CLOSED)                             (COOKIE-WAIT)
                <----------------       COOKIE-ECHO
  COOKIE-ACK    ----------------->      Silently discard
  (with invalid checksum)
                <----------------       COOKIE-ECHO
  COOKIE-ACK    ----------------->
  TEST DESCRIPTION:
  1. Attempt to initiate an association from endpoint A to B. Send COOKIE-ACK 
     message with wrong CRC-32 checksum.
     Record the message sequence using a signal emulator.
  2. Check A: COOKIE-ACK message is discarded and no other actions are taken. 
  3. Check B: Was the message sequence as above.


NOTE

  None


REFERENCE

  RFC 4960
  1.5.6.  Packet Validation
    A mandatory Verification Tag field and a 32-bit checksum field (see
    Appendix B for a description of the CRC32c checksum) are included in
    the SCTP common header.  The Verification Tag value is chosen by each
    end of the association during association startup.  Packets received
    without the expected Verification Tag value are discarded, as a
    protection against blind masquerade attacks and against stale SCTP
    packets from a previous association.  The CRC32c checksum should be
    set by the sender of each SCTP packet to provide additional
    protection against data corruption in the network.  The receiver of
    an SCTP packet with an invalid CRC32c checksum silently discards the
    packet.