NAME

  AuthWithBadHMACIdentifier.seq - Authentication Chunk is received with an unsupported HMAC Identifier


PURPOSE

  To verify that if the AUTH chunk is received with unsupported HMAC 
  identifier, the ERROR chunk SHOULD be sent with the error cause 
  'Unsupported HMAC Identifier'.


SYNOPSIS

  ./AuthWithBadHMACIdentifier.seq [-tooloption ...] -pkt ./AuthWithBadHMACIdentifier.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 data 
  in endpoint A such that AUTH chunk with unsupported HMAC identifier
  is sent to endpoint B.


TEST PROCEDURE

  Endpoint A                             Endpoint B               ULP
  (ESTABLISHED)                          (ESTABLISHED)
    AUTH          ------------------>
    (with Unsupported HMAC Identifier)
                  <------------------  ERROR
                                       (Unsupported HMAC Identifier Error Cause)
  TEST DESCRIPTION:
  1. Send AUTH chunk from endpoint A to B with Unsupported HMAC 
     Identifier.
  2. Check A: ERROR should be received at endpoint A. And Error 
     cause in ERROR is set to "Unsupported HMAC Identifier".


NOTE

  None


REFERENCE

  RFC 4895
  4.1.  Unsupported HMAC Identifier Error Cause
    This error cause is used to indicate that an AUTH chunk has been
    received with an unsupported HMAC Identifier.
     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
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |      Cause Code = 0x0105      |       Cause Length = 6        |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |         HMAC Identifier       |            Padding            |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                                  Figure 4
    Cause Code: 2 bytes (unsigned integer)
      This value MUST be set to 0x0105.
    Cause Length: 2 bytes (unsigned integer)
      This value MUST be set to 6.
    HMAC Identifier: 2 bytes (unsigned integer)
      This value is the HMAC Identifier which is not supported.
    Padding: 2 bytes (unsigned integer)
      The sender MUST pad the error cause with all zero bytes to make
      the cause 32-bit aligned.  The Padding MUST be 2 bytes long and it
      MUST be ignored by the receiver.
  6.3.  Receiving Authenticated Chunks
    The receiver has a list of chunk types that it expects to be received
    only after an AUTH-chunk.  This list has been sent to the peer during
    the association setup.  It MUST silently discard these chunks if they
    are not placed after an AUTH chunk in the packet.
    The receiver MUST use the HMAC algorithm indicated in the HMAC
    Identifier field.  If this algorithm was not specified by the
    receiver in the HMAC-ALGO parameter in the INIT or INIT-ACK chunk
    during association setup, the AUTH chunk and all the chunks after it
    MUST be discarded and an ERROR chunk SHOULD be sent with the error
    cause defined in Section 4.1.