NAME

  AuthIgnoreChunkTypes.seq - INIT, INIT-ACK, SHUTDOWN-COMPLETE, and AUTH chunks listed in the CHUNKS parameter MUST be ignored


PURPOSE

  To verify that if the chunk types for INIT, INIT-ACK, SHUTDOWN-COMPLETE,
  and AUTH chunks be listed in the CHUNKS parameter, then the types for
  INIT, INIT-ACK, SHUTDOWN-COMPLETE, and AUTH chunks MUST be ignored.


SYNOPSIS

  ./AuthIgnoreChunkTypes.seq [-tooloption ...] -pkt ./AuthIgnoreChunkTypes.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 INIT chunk with CHUNKS parameter.
  The chunk types for INIT, INIT-ACK, SHUTDOWN-COMPLETE, and AUTH 
  chunks be listed in CHUNKS parameter.


TEST PROCEDURE

  Endpoint A                             Endpoint B               ULP
  (CLOSED)                               (CLOSED)
    INIT          ------------------>
    (with CHUNKS parameter)
                  <------------------   INIT-ACK
                                        (with AUTH capable)
    COOKIE-ECHO   ------------------>
                  <------------------   COOKIE-ACK
    DATA          ------------------>
                  <------------------   AUTH + SACK
  TEST DESCRIPTION:
  1. Attempt to make an association from endpoint A to B. Send INIT 
     message containing CHUNKS Parameter. The chunk types for INIT, 
     INIT-ACK, SHUTDOWN-COMPLETE, and AUTH chunks be listed in 
     CHUNKS parameter.
  2. Check A: Association is established between endpoint A and B 
     with AUTH capable.
  3. Check B: INIT, INIT-ACK, SHUTDOWN-COMPLETE, and AUTH chunks 
     should be received at endpoint A in no authenticated way.


NOTE

  None


REFERENCE

  RFC 4895
  3.2.  Chunk List Parameter (CHUNKS)
    This parameter is used to specify which chunk types are required to
    be authenticated before being sent by the peer.
     0                   1                   2                   3
     0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |     Parameter Type = 0x8003   |       Parameter Length        |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    | Chunk Type 1  | Chunk Type 2  | Chunk Type 3  | Chunk Type 4  |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    /                                                               /
    \                              ...                              \
    /                                                               /
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    | Chunk Type n  |                   Padding                     |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                                  Figure 2
    Parameter Type: 2 bytes (unsigned integer)
      This value MUST be set to 0x8003.
    Parameter Length: 2 bytes (unsigned integer)
      This value is the number of listed Chunk Types plus 4.
    Chunk Type n: 1 byte (unsigned integer)
      Each Chunk Type listed is required to be authenticated when sent
      by the peer.
    Padding: 0, 1, 2, or 3 bytes (unsigned integer)
      If the number of Chunk Types is not a multiple of 4, the sender
      MUST pad the parameter with all zero bytes to make the parameter
      32-bit aligned.  The Padding MUST NOT be longer than 3 bytes and
      it MUST be ignored by the receiver.
    The CHUNKS parameter MUST be included once in the INIT or INIT-ACK
    chunk if the sender wants to receive authenticated chunks.  Its
    maximum length is 260 bytes.
    The chunk types for INIT, INIT-ACK, SHUTDOWN-COMPLETE, and AUTH
    chunks MUST NOT be listed in the CHUNKS parameter.  However, if a
    CHUNKS parameter is received then the types for INIT, INIT-ACK,
    SHUTDOWN-COMPLETE, and AUTH chunks MUST be ignored.