NAME

  InitWithMoreAddr.seq - INIT 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
  message then one of these IP address plus the IP address from where INIT comes
  combined with the SCTP source port number is used as the destination transport
  address.


SYNOPSIS

  ./InitWithMoreAddr.seq [-tooloption ...] -pkt ./InitWithMoreAddr.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 message with more than one transport
  addresses is sent to endpoint B.


TEST PROCEDURE

  Endpoint A                           Endpoint B                ULP
  (CLOSED)                             (CLOSED)
  INIT          ----------------->
  (Transport Address = x, y)
                <-----------------      INIT-ACK
  COOKIE-ECHO   ----------------->
                <-----------------      COOKIE-ACK
  DATA          ----------------->
  (Address = x)
                <-----------------      SACK
                                        (Address = x)
                <-----------------      DATA
                                        (Address = x)
                <-----------------      DATA
                                        (Address = y)
                <-----------------      DATA
                                        (Address = x)
  SACK          ----------------->
  (Address = x)
  TEST DESCRIPTION:
  1. Attempt to make an association from endpoint A to endpoint B. Send 
     INIT message containing two IPv4/IPv6 addresses. 
  2. Check A: INIT message is accepted.
  3. Check B: INIT-ACK is sent at the transport addresses from where INIT 
     message 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.