NAME

  InitAckWithMoreAddr.seq - INIT-ACK chunk is received with more than one address parameters


PURPOSE

  To check that if there are one or more transport addresses are received in INIT-ACK
  message then one of these IP address plus the IP address from where INIT-ACK comes
  combined with the SCTP source port number is used as the destination transport
  address.


SYNOPSIS

  ./InitAckWithMoreAddr.seq [-tooloption ...] -pkt ./InitAckWithMoreAddr.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 A such that INIT-ACK message with more than one
  transport addresses is sent to endpoint B.


TEST PROCEDURE

  Endpoint A                           Endpoint B                ULP
  (CLOSED)                             (CLOSED)
                                                   <-----    Associate
                <-----------------      INIT
  INIT-ACK      ----------------->
  (Transport Address = x, y)
                <-----------------      COOKIE-ECHO
  COOKIE-ACK    ----------------->
                <-----------------      DATA
                                        (Address = x)
                <-----------------      DATA
                                        (Address = y)
                <-----------------      DATA
                                        (Address = x)
  SACK          ----------------->
  (Address = x)
  TEST DESCRIPTION:
  1. Attempt to make an association from endpoint B to endpoint A. Send 
     INIT-ACK Message containing two IPv4/IPv6 addresses. 
     Record the message sequence using a signal emulator.
  2. Check A: INIT-ACK message is accepted.
  3. Check B: COOKIE-ECHO is sent at one of the transport addresses 
     received in INIT-ACK plus the address from where INIT-ACK was 
     received. 
  4. Check C: Was the message sequence as above.


NOTE

  None


REFERENCE

  RFC 4960
  5.1.2.  Handle Address Parameters
    C) If there are only IPv4/IPv6 addresses present in the received INIT
       or INIT ACK chunk, the receiver MUST derive and record all the
       transport addresses from the received chunk AND the source IP
       address that sent the INIT or INIT ACK.  The transport addresses
       are derived by the combination of SCTP source port (from the
       common header) and the IP Address parameter(s) carried in the INIT
       or INIT ACK chunk and the source IP address of the IP datagram.
       The receiver should use only these transport addresses as
       destination transport addresses when sending subsequent packets to
       its peer.
    D) An INIT or INIT ACK chunk MUST be treated as belonging to an
       already established association (or one in the process of being
       established) if the use of any of the valid address parameters
       contained within the chunk would identify an existing TCB.