NAME

  InitCwndAfterIdle.seq - The cwnd of the transport address should be adjusted to max(cwnd/2, 4*MTU) when does not transmit data


PURPOSE

  To check that when the endpoint does not transmit data on a given
  transport address, the cwnd of the transport address should be 
  adjusted to max(cwnd/2, 4*MTU) per RTO.


SYNOPSIS

  ./InitCwndAfterIdle.seq [-tooloption ...] -pkt ./InitCwndAfterIdle.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 B such that DATA chunk is sent to endpoint A.


TEST PROCEDURE

  Endpoint A                             Endpoint B                ULP
  (ESTABLISHED)                          (ESTABLISHED)
                                                   <-----    Send
                  <----------------      DATA 1
  Don't Send SACK  
                  <----------------      DATA 2
  Don't Send SACK  
                  <----------------      DATA 3
  Don't Send SACK  
                  <----------------      DATA 4
  SACK            ----------------->
  (From DATA1 to DATA 4)
                  <----------------      DATA 5
  SACK            ----------------->
               (Does not transmit data)
                  <-----------------     HEARTBEAT
  HEARTBEAT-ACK   ------------------>
  TEST DESCRIPTION:
  1. Check A: the initial cwnd before DATA transmission is set to 4380.
  2. From endpoint B, send valid DATA message 5 times to endpoint A,
     when there is association between them.
  3. From endpoint A, after received 4 DATA message, send SACK of all 
     the DATA to endpoint B.
  4. Check B: Congestion control window is 5880 now.
  5. Received one DATA message on endpoint A and send SACK to this 
     message.
  6. Do not send any message to another endpoint within the current
     Heartbeat period. HEARTBEAT message is sent from endpoint B. 
  7. Check C: Congestion control window is 6000 now.


NOTE

  None


REFERENCE

  RFC 4960
  7.2.1.  Slow-Start
    Because an endpoint's cwnd is not tied to its Cumulative TSN Ack
    Point, as duplicate SACKs come in, even though they may not advance
    the Cumulative TSN Ack Point an endpoint can still use them to clock
    out new data.  That is, the data newly acknowledged by the SACK
    diminishes the amount of data now in flight to less than cwnd, and so
    the current, unchanged value of cwnd now allows new data to be sent.
    On the other hand, the increase of cwnd must be tied to the
    Cumulative TSN Ack Point advancement as specified above.  Otherwise,
    the duplicate SACKs will not only clock out new data, but also will
    adversely clock out more new data than what has just left the
    network, during a time of possible congestion.
    o  When the endpoint does not transmit data on a given transport
       address, the cwnd of the transport address should be adjusted to
       max(cwnd/2, 4*MTU) per RTO.