NAME

  AsconfWithZeroChunkLen.seq - ASCONF chunk is received with chunk length set to zero


PURPOSE

  To check if ASCONF chunk is received with chunk length set to zero
  then the receiver MUST send ABORT with the error cause set to the
  error code 'Protocol Violation'.


SYNOPSIS

  ./AsconfWithZeroChunkLen.seq [-tooloption ...] -pkt ./AsconfWithZeroChunkLen.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 ASCONF
  in endpoint A such that ASCONF chunk with chunk length set to zero
  is sent to endpoint B.


TEST PROCEDURE

  Endpoint A                           Endpoint B                ULP
  (ESTABLISHED)                        (ESTABLISHED)
  ASCONF          ---------------->
  (with chunk length set to zero)
                  <-----------------    ABORT
                                        (Protocol Violation)
  TEST DESCRIPTION:
  1. Send ASCONF chunk from endpoint A to B with chunk length set
     to zero.
  2. Check A: ABORT with error code 'Protocol Violation' should be
     received at endpoint A.


NOTE

  None


REFERENCE

  RFC 5061
  4.1.1.  Address Configuration Change Chunk (ASCONF)
    This chunk is used to communicate to the remote endpoint one of the
    configuration change requests that MUST be acknowledged.  The
    information carried in the ASCONF Chunk uses the form of a Type-
    Length-Value (TLV), as described in "3.2.1 Optional/Variable-length
    Parameter Format" in [I-D.ietf-tsvwg-2960bis] for all variable
    parameters.  This chunk MUST be sent in an authenticated way by using
    the mechanism defined in [I-D.ietf-tsvwg-sctp-auth].  If this chunk
    is received unauthenticated it MUST be silently discarded as
    described in [I-D.ietf-tsvwg-sctp-auth].
                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
        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
        | Type = 0xC1   |  Chunk Flags  |      Chunk Length             |
        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
        |                      Sequence Number                          |
        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
        |                    Address Parameter                          |
        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
        |                     ASCONF Parameter #1                       |
        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
        \                                                               \
        /                             ....                              /
        \                                                               \
        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
        |                     ASCONF Parameter #N                       |
        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    Sequence Number : 32 bits (unsigned integer)
    This value represents a Sequence Number for the ASCONF Chunk.  The
    valid range of Sequence Number is from 0 to 4294967295 (2**32 - 1).
    Sequence Numbers wrap back to 0 after reaching 4294967295.
    Address Parameter : 8 or 20 bytes (depending on the address type)
    This field contains an address parameter, either IPv6 or IPv4, from
    [I-D.ietf-tsvwg-2960bis].  The address is an address of the sender of
    the ASCONF Chunk, the address MUST be considered part of the
    association by the peer endpoint (the receiver of the ASCONF Chunk).
    This field may be used by the receiver of the ASCONF to help in
    finding the association.  If the address 0.0.0.0 or ::0 is provided
    the receiver MAY lookup the association by other information provided
    in the packet.  This parameter MUST be present in every ASCONF
    message, i.e. it is a mandatory TLV parameter.
    Note: the host name address MUST NOT be sent and MUST be ignored if
    received in any ASCONF message.
    It should be noted that the ASCONF Chunk format requires the receiver
    to report to the sender if it does not understand the ASCONF Chunk.
    This is accomplished by setting the upper bits in the chunk type as
    described in [I-D.ietf-tsvwg-2960bis]. section 3.2.  Note that the
    upper two bits in the ASCONF Chunk are set to one.  As defined in
    [I-D.ietf-tsvwg-2960bis] section 3.2, when setting these upper bits
    in this manner the receiver that does not understand this chunk MUST
    skip the chunk and continue processing, and report in an Operation
    Error Chunk using the 'Unrecognized Chunk Type' cause of error.  This
    will NOT abort the association but indicates to the sender that it
    MUST not send any further ASCONF chunks.
    ASCONF Parameter: TLV format
    Each Address configuration change is represented by a TLV parameter
    as defined in Section 4.2.  One or more requests may be present in an
    ASCONF Chunk.