ShutInEstab2.seq - SHUTDOWN MUST NOT be send in SHUTDOWN-RECEIVED State
To check that if endpoint is in SHUTDOWN-RECEIVED state the the endpoint MUST NOT send a SHUTDOWN in response to a ULP request.
./ShutInEstab2.seq [-tooloption ...] -pkt ./ShutInEstab2.def -tooloption : v6eval tool option See Also: ../common/STD_PKT_COMMON.def ../common/SCTP_COMMON.def
Association is established between endpoint A and B. Arrange the data in endpoint B such that Terminate primitive is received from upper layers in SHUTDOWN-RECEIVED state.
Endpoint A Endpoint B ULP (ESTABLISHED) (ESTABLISHED)
<----- Send <---------------- DATA
SHUTDOWN ----------------->
SACK -----------------> <----- Terminate SHUTDOWN will not be sent <---------------- SHUTDOWN-ACK
SHUTDOWN- -----------------> COMPLETE
TEST DESCRIPTION:
1. Attempt to terminate an association from endpoint A to endpoint B by sending SHUTDOWN. Record the message sequence using a signal emulator. 2. Send Terminate primitive from ULP while in SHUTDOWN-RECEIVED state. 3. Check A: SHUTDOWN will not be sent.
None
RFC 4960
9.2. Shutdown of an Association
An endpoint should limit the number of retransmissions of the SHUTDOWN chunk to the protocol parameter 'Association.Max.Retrans'. If this threshold is exceeded, the endpoint should destroy the TCB and MUST report the peer endpoint unreachable to the upper layer (and thus the association enters the CLOSED state). The reception of any packet from its peer (i.e., as the peer sends all of its queued DATA chunks) should clear the endpoint's retransmission count and restart the T2-shutdown timer, giving its peer ample opportunity to transmit all of its queued DATA chunks that have not yet been sent.
Upon reception of the SHUTDOWN, the peer endpoint shall
- enter the SHUTDOWN-RECEIVED state,
- stop accepting new data from its SCTP user, and
- verify, by checking the Cumulative TSN Ack field of the chunk, that all its outstanding DATA chunks have been received by the SHUTDOWN sender.
Once an endpoint has reached the SHUTDOWN-RECEIVED state, it MUST NOT send a SHUTDOWN in response to a ULP request, and should discard subsequent SHUTDOWN chunks.