NAME

  T2ShutdownExpires2.seq - RTO is updated correctly if T2-shutdown timer expires for a SHUTDOWN-ACK message


PURPOSE

  To check that if T2-Shutdown expires on a destination address then 
  value of RTO is updated correctly for that address.


SYNOPSIS

  ./T2ShutdownExpires2.seq [-tooloption ...] -pkt ./T2ShutdownExpires2.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 the data
  in endpoint A such that no SHUTDOWN-COMPLETE is sent in response to
  SHUTDOWN-ACK.


TEST PROCEDURE

  Endpoint A                           Endpoint B                ULP
  (ESTABLISHED)                        (ESTABLISHED)
  SHUTDOWN      ----------------->
                <-----------------      SHUTDOWN-ACK
                                            |
                                            | T2 Shutdown
                                            | Timer
                                            |
                <-----------------      SHUTDOWN-ACK
                                            .
                                            . Retransmit x
                                            .  times
  TEST DESCRIPTION:
  1. Try to terminate an association between endpoint A and endpoint B by 
     sending SHUTDOWN message from endpoint B. Don't send the SHUTDOWN-ACK 
     or any DATAGRAM from the endpoint A.
  2. Check A: If SHUTDOWN message is transmitted for ASSOCIATION.MAX.RETRANS 
     times without getting an SHUTDOWN-ACK, Association is aborted and 
     upper layers are reported of this.


NOTE

  None


REFERENCE

  RFC 4960
  6.3.3.  Handle T3-rtx Expiration
    Whenever the retransmission timer T3-rtx expires for a destination
    address, do the following:
    E1)  For the destination address for which the timer expires, adjust
         its ssthresh with rules defined in Section 7.2.3 and set the
         cwnd <- MTU.
    E2)  For the destination address for which the timer expires, set RTO
         <- RTO * 2 ("back off the timer").  The maximum value discussed
         in rule C7 above (RTO.max) may be used to provide an upper bound
         to this doubling operation.
    E3)  Determine how many of the earliest (i.e., lowest TSN)
         outstanding DATA chunks for the address for which the T3-rtx has
         expired will fit into a single packet, subject to the MTU
         constraint for the path corresponding to the destination
         transport address to which the retransmission is being sent
         (this may be different from the address for which the timer
         expires; see Section 6.4).  Call this value K.  Bundle and
         retransmit those K DATA chunks in a single packet to the
         destination endpoint.
    E4)  Start the retransmission timer T3-rtx on the destination address
         to which the retransmission is sent, if rule R1 above indicates
         to do so.  The RTO to be used for starting T3-rtx should be the
         one for the destination address to which the retransmission is
         sent, which, when the receiver is multi-homed, may be different
         from the destination address for which the timer expired (see
         Section 6.4 below).