NAME

  T1InitExpires.seq - RTO is updated correctly if T1-init timer expires for a INIT message


PURPOSE

  To check that if T1-init expires on a destination address then the
  value of RTO is updated correctly for that address.


SYNOPSIS

  ./T1InitExpires.seq [-tooloption ...] -pkt ./T1InitExpires.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 is not sent in response
  to INIT message.


TEST PROCEDURE

  Endpoint A                           Endpoint B                ULP
  (CLOSED)                             (CLOSED)
                                                   <-----    Associate
                <----------------       INIT
  Don't send                            Start T1-Init timer
  INIT-ACK                                |
                                          | T1-INIT timer Expires
                                          |
                <----------------       INIT
  Don't send                            Restart T1-Init timer
  INIT-ACK                                |
                                          | T1-INIT timer Expires
                                          |
                <----------------       INIT
  TEST DESCRIPTION:
  1. Attempt to make an association from endpoint B to endpoint A by 
     sending INIT message from endpoint B. Don't send SACK from A.
     Let the timer T1-init expire. INIT message will be retransmitted. 
     Note the timer. Don't send INIT-ACK for the retransmitted INIT message.
     T1-init will be expired again and again INIT message will be 
     retransmitted. Record the message sequence using a signal emulator.
  2. Check A: Value of the T1-init RTO is updated correctly.


NOTE

  1. If configure of MAX_INIT_RETRANS is not lager enough, test will exit
     even if RTO is not up to RTO.MAX.
  2. If the retransmit time is 0.5s less or greater than RTO, do accept it
     because we can not exactly calculate it.


REFERENCE

  RFC 4960
  4.  SCTP Association State Diagram
    Notes:
    1)  If the State Cookie in the received COOKIE ECHO is invalid (i.e.,
        failed to pass the integrity check), the receiver MUST silently
        discard the packet.  Or, if the received State Cookie is expired
        (see Section 5.1.5), the receiver MUST send back an ERROR chunk.
        In either case, the receiver stays in the CLOSED state.
    2)  If the T1-init timer expires, the endpoint MUST retransmit INIT
        and restart the T1-init timer without changing state.  This MUST
        be repeated up to 'Max.Init.Retransmits' times.  After that, the
        endpoint MUST abort the initialization process and report the
        error to the SCTP user.