NAME

  ChunkListLengthLargerThan260.seq - The maximum length of Chunk List Parameter is 260 bytes


PURPOSE

  To verify that if the the length of Chunk List Parameter larger than
  260 bytes, the association MUST be aborted. The ABORT chunk SHOULD
  contain the error cause 'Protocol Violation'.


SYNOPSIS

  ./ChunkListLengthLargerThan260.seq [-tooloption ...] -pkt ./ChunkListLengthLargerThan260.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 the 
  data in endpoint B such that INIT message with Chunk List Parameter is
  sent from endpoint A to B. The length of Chunk List Parameter larger 
  than 260 bytes.


TEST PROCEDURE

  Endpoint A                             Endpoint B               ULP
  (CLOSED)                               (CLOSED)
    INIT          ------------------>
    (with Length of Chunk List Parameter larger than 260)
                  <------------------  ABORT
                                       (Protocol Violation Error Cause)
  TEST DESCRIPTION:
  1. Attempt to initiate an association from endpoint A to B. Send INIT
     message with Chunk List Parameter. The length of Chunk List Parameter
     larger than 260 bytes.
  2. Check A: ABORT should be received at endpoint A. And Error cause in
     ABORT is set to "Protocol Violation".


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.