NAME

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


PURPOSE

  To check if ASCONF-ACK 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

  ./AsconfAckWithZeroChunkLen.seq [-tooloption ...] -pkt ./AsconfAckWithZeroChunkLen.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-ACK chunk with chunk length set to
  zero is sent to endpoint B.


TEST PROCEDURE

  Endpoint A                           Endpoint B                ULP
  (ESTABLISHED)                        (ESTABLISHED)
  ASCONF-ACK      ----------------->
  (with chunk length set to zero)
                  <-----------------    ABORT
                                        (Protocol Violation)
  TEST DESCRIPTION:
  1. Send ASCONF-ACK 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.2.  Address Configuration Acknowledgment Chunk (ASCONF-ACK)
    This chunk is used by the receiver of an ASCONF Chunk to acknowledge
    the reception.  It carries zero or more results for any ASCONF
    parameters that were processed by the receiver.  This chunk MUST be
    sent in an authenticated way by using the mechanism defined in
    [RFC4895].  If this chunk is received unauthenticated it MUST be
    silently discarded as described in [RFC4895].
         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 = 0x80   |  Chunk Flags  |      Chunk Length             |
        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
        |                     Sequence Number                           |
        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
        |                 ASCONF Parameter Response#1                   |
        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
        \                                                               \
        /                             ....                              /
        \                                                               \
        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
        |                 ASCONF Parameter Response#N                   |
        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    Sequence Number: 32 bits (unsigned integer)
    This value represents the Sequence Number for the received ASCONF
    Chunk that is acknowledged by this chunk.  This value is copied from
    the received ASCONF Chunk.
    ASCONF Parameter Response: TLV format
    The ASCONF Parameter Response is used in the ASCONF-ACK to report the
    status of ASCONF processing.  By default, if a responding endpoint
    does not include any Error Cause, a success is indicated.  Thus a
    sender of an ASCONF-ACK MAY indicate complete success of all TLVs in
    an ASCONF by returning only the Chunk Type, Chunk Flags, Chunk Length
    (set to 8), and the Sequence Number.