INTERNET-DRAFT Sunil Mahajan Ashok K. Singh Kuldeep Kumar Sandeep Mahajan Hughes Software Systems Feb 08,2001 expires: SEP 08, 2001 Conformance Test Specification for SCTP Status of This Memo This document is an Internet-Draft and is in full conformance with all provisions of Section 10 of RFC 2026. Internet-Drafts are working documents of the Internet Engineering Task Force (IETF), its areas, and its working groups. Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet-Drafts can be accessed at http://www.ietf.org/ietf/1id-abstracts.txt The list of Internet-Draft Shadow Directories can be accessed at http://www.ietf.org/shadow.html. Sunil, Sandeep,Kuleep,Ashok Hughes Software Systems [Page 1] Internet Draft Conformance Test For SCTP Feb 2001 Abstract This document presents the conformance test specification for SCTP prototcol (RFC2960), which can be used to test SCTP implementations for conformance to the protocol definition. The list of test is exhaustive and covers almost all the categories of test, except few test for timer calculation and congestion) which will be added in the next revision of the draft. This draft can also be used in conjunction with SCTP specification by implementor of protocol as implementors guide, as the pictorial representation of various scenarios help understand the protocol. Next revision of the draft will also cover the additions done to the protocol revision RFC2960 and any subsequent RFC published by IETF. Sunil, Sandeep,Kuleep,Ashok , Hughes Software Systems [Page 2] Internet Draft Conformance Test For SCTP Feb 2001 TABLE OF CONTENTS 1. INTRODUCTION ----------------------------------------------3 1.1 Purpose ------------------------------------------------- 3 1.2 Scope ------------------------------------------------- 3 1.3 Intended Audience ---------------------------------------- 3 1.4 Document Organization ----------------------------------- 4 1.5 Terms Used ---------------------------------------------- 4 2 GENERAL PRINCIPLES OF SCTP TESTS ------------------------- 6 2.1 Presentation of test descriptions ----------------------- 6 2.2 Presentation of the test list ------------------------ 6 2.3 Pre-Test Condition --------------------------------------- 6 2.4 Post Test Condition -------------------------------------- 6 2.5 Consideration ------------------------------------------ 6 3 TEST CONFIGURATION --------------------------------------- 7 4 TEST ENVIRONMENT ---------------------------------------- 7 4.1 SCTP validation testing ---------------------------------- 7 4.2 SCTP user simulator -------------------------------------- 7 4.3 Test simulator ------------------------------------------- 7 4.4 Link Monitor -------------------------------------------- 8 5 Test List ------------------------------------------------ 8 6 Test Description -----------------------------------------12 7 Acknowledgement -----------------------------------------156 8 Authors Address -----------------------------------------156 9 References ----------------------------------------------156 1. Introduction 1.1 Purpose This document forms the basis of the testing of the SCTP(Stream Control Transmission Protocol). It is the reference document for ensuring that the implementation has met the desired requirements and is conforming to the Protocol. 1.2 Scope The scope of this document is limited to listing the Test Specification for the Stream Control Transmission Protocol. 1.3 Intended Audience This document is intended to be used by implementers and testing person to verify the conformance of implementation to RFC 2960. Efforts have been to make the test cases, explicitly clear and self explanatory. The flow of messages have been explained with focus on -ve test case to very the implementation to maximum possible extent . Sunil, Sandeep,Kuleep,Ashok , Hughes Software Systems [Page 3] Internet Draft Conformance Test For SCTP Feb 2001 1.4 Document Organization This document is organized as follows: Chapter 1 Introduction: This chapter gives the overall scope of this document and the document organization. Chapter 2 General Principles of SCTP Tests:This chapter gives present- ation of the tests and pre-test and post-test conditions for the tests. Chapter 3 Test configuration: This chapter gives configuration for testing the Stream Control Transmission Protocol. Chapter 4 Test Environment: This chapter gives detail about various tools required for testing the Stream Control Transmission Protocol. Chapter 5 Test lists : This chapter gives details about the listing of all the test cases which are covered in detail in chapter 6. Chapter 6 Test Description : All the tests , listed in chapter 5 , are discribed in detail . Standard tamplate has been across the chapter, giving all the details e.g. cross reference to RFC 2960 , test setup reference , objective etc. 1.5 Terms Used The following terms are used in this document: SCTP: Stream Control Transmission Protocol. SCTP User: The logical upper-layer application entity, which uses the services of SCTP also called the ULP. SCTP Datagram: The unit of data delivery across the interface between SCTP and the underlying Transport Layer (e.g. UDP or IP). SCTP Host: A physical unit within which SCTP is running. Transport Address: An address which serves as a source or destination for the unreliable packet transport service used by SCTP. In IP networks, a transport address is defined by the combination of an IP address and an SCTP port number. SCTP endpoint: The logical sender/receiver of SCTP datagrams. On a multi-homed host, an SCTP endpoint is represented to its peers as a combination of a set of eligible destination transport addresses to which SCTP datagrams can be sent and a set of eligible source transport addresses from which SCTP datagrams can be received. Protocol: This refers to the SCTP Stack entity. Sunil, Sandeep,Kuleep,Ashok , Hughes Software Systems [Page 4] Internet Draft Conformance Test For SCTP Feb 2001 SCTP Association: Representation of an on going logical communication channel between two SCTP end points on two SCTP Hosts. It is a protocol relationship between SCTP endpoints, comprising the two SCTP endpoints and protocol state information. Chunk: A unit of information within an SCTP datagram, consisting of a chunk header and chunk-specific content. Transmission Sequence Number (TSN): A TSN is a 32-bit sequence number which is assigned to each chunk containing user data to permit the receiving SCTP endpoint to acknowledge its receipt and detect duplicate deliveries. In case a datagram is lost, TSN number is used to detect which datagram has not been acknowledged and hence is retransmitted. Stream: A uni-directional logical channel established from one to another associated SCTP endpoints, within which all user messages are delivered in sequence except for those submitted to the un-ordered delivery service. Stream Sequence Number: A 16-bit sequence number used internally by SCTP to assure sequenced delivery of the user messages within a given stream. One stream sequence number is attached to each user message. Bundling: This is an optional multiplexing operation provided to the SCTP user, whereby more than one user datagram may be carried in the same SCTP datagram. Segmentation: This is another multiplexing operation done by the SCTP, whereby a user datagram of size more than the path MTU size is segmented into more than one datagrams at the sending end and de - segmented (reassembled) at the receiving end transparently. Transmission Control Block (TCB): An internal data structure created by an SCTP host for each of its existing SCTP associations to maintain and manage the association. Receiver Window: This indicates, in number of octets, the available buffer space for incoming packets at the receiver's inbound buffer. Congestion Window: An SCTP variable that limits the data, in number of octets, a sender can send into the network before receiving an acknowledgement on a particular destination transport address. SCTP Stack Entity: The SCTP software to be built according to this functional specifications. System Management: A management entity that does not use the SCTP services for transport but performs functions such as initialization of the stack or handling of error conditions to name a few. ULP: The Upper Layer Protocol which is the service user of SCTP. ULP will denote the local ULP unless otherwise specified. Sunil, Sandeep,Kuleep,Ashok , Hughes Software Systems [Page 5] Internet Draft Conformance Test For SCTP Feb 2001 2 General principles of SCTP tests These tests aim to verify a given implementation of a protocol in accordance with the relevant Recommendation. The specification is independent of a given implementation and does not generally imply any modification of the endpoint under test. However, it is recognized that certain tests require capabilities of the system that are not explicitly defined in the Recommendation, and these capabilities may not be present in all implementations. As a consequence, certain tests may not be possible in all implementations. Therefore, for testing individual Administrations may unilaterally choose the tests to be performed. 2.1 Presentation of test descriptions The SCTP tests aim at testing the SCTP protocol conformance in a given implementation. Although datagrams are transmitted and received continuously, only the datagram which cause and/or indicate the changes of endpoint status are shown in the EXPECTED MESSAGE SEQUENCE column of each test description. 2.2 Presentation of the test list These tests as a whole, aim at a complete validation of the SCTP protocol without redundancies. Each test is described as simply as possible to check precisely each elementary function of the protocol, which is referred in the columns "reference", "title" and "sub-title" of each test description. This list is presented in the form of a succession of tests. The presentation order is essentially functional. However, the operator performing these tests may change this order, taking into account some other practical criteria such as: use pre-test conditions to order the list, the end of a given test may be the pre-test condition of another test. 2.3 Pre-Test Condition Before starting the test we need to get the setup into a condition from where test can be started. These conditions are specified in Pre-Test condition. 2.4 Post Test Condition After executing each test the association should be closed by sending ABORT from either end. 2.5 CONSIDERATIONS The test plan covers the functional test to cover all the clause and sub clause of IETF Draft for SCTP Ver13 with exceptions as listed below A) Clause 6.3 : Management of Retransmission Timer B) Clause 7.2 : SCTP Slow -Start and Congestion Avoidance. C) Clause 7.3 : Path MTU discovery Sunil, Sandeep,Kuleep,Ashok , Hughes Software Systems [Page 6] Internet Draft Conformance Test For SCTP Feb 2001 3 Test configuration Figure 1 shows test configuration involving endpoint A and endpoint B. Test specifications are written to test the SCTP protocol of endpoint B ____________ ____________ | | | | |End point A |---------------------------|End point B | |____________| User Test |____________| Fig 1: TEST CONFIGURATION OF SCTP 4 Test Environment ________________ | | |User Simulator | |_______________| | | ______________ ______|________ | | | | |Endpoint A |--------------------------------|End point B | |Simulator | | | Under Test | |_____________| | |_______________| _____________ | | |Link Monitor| |____________| ( Fig 2 ) 4.1 SCTP validation testing The SCTP test environment consists of the following items(see Figure 2) - The SCTP user simulator; - The test simulator; - The link monitor; - The IP link. 4.2 SCTP user simulator During the SCTP tests, it is necessary to inject messages and indications to and from the SCTP endpoint under test. It is desirable that the SCTP user function used is the actual SCTP user of the SCTP with some additional functions for test purposes or a more controlled user function. The application should also provide means to check the interface interaction with the SCTP implementation under test. 4.3 Test simulator During SCTP testing it is necessary to inject some abnormal messages (as well as normal messages) to fully test the SCTP under test, the test simulator should have this function. In addition, the simulator Sunil, Sandeep,Kuleep,Ashok , Hughes Software Systems [Page 7] Internet Draft Conformance Test For SCTP Feb 2001 should have the capability to receive and check messages from the SCTP under test. The generation of certain abnormal sequences of messages should also be a capability of the test simulator. 4.4 Link Monitor During SCTP testing it is necessary to monitor the various messages being exchanged between the two SCTP endpoints. Link monitor should have this function. It should also have the capability to show all the parameters of the message. Test Simulator may be having this functionality. 5 TEST List 1 Association Setup 1.1 Normal Association 1.2 T1-Init Timer 1.2.1 TI_Init timer for INIT 1.2.2 T1-Cookie timer for COOKIE 1.3 MAX.INIT.RETRANS 1.3.1 MAX.INIT.RETRANS: Failure to receive INIT-ACK 1.3.2 MAX.INIT.RETRANS: Failure to receive COOKIE-ACK 1.4 Failure to receive COOKIE-ECHO Message 1.5 Association Re-establishment (different init-tag) 1.5.1 Different Tag Values in different association being Initiated from endpoint being tested 1.5.2 Different Tag Values in different association being initiated from other endpoint 1.6 Optional Parameters 1.6.1 Optional parameters in the INIT message 1.6.2 Optional parameters in the INIT-ACK message 1.7 Stream Parameters Mismatch 1.7.1 Mismatch in the Outbound Stream and Inbound Stream parameters in NIT 1.7.2 Outbound Stream and Inbound Stream parameters set to zero in INIT 1.7.3 Mismatch in the Outbound Stream and Inbound Stream parameters in NIT-ACK 1.7.4 Outbound Stream and Inbound Stream parameters equal to zero in INIT-ACK 1.8 Unrecognized Parameters parameter in INIT-ACK 1.9 IP address in multiple association 1.10 No Transport Addresses 1.10.1 No Transport addresses in INIT messages 1.10.2 Host Name Address in INIT messages 1.10.3 No Transport addresses in INIT-ACK messages 1.10.4 Host Name Address in INIT-ACK 1.11 Transport addresses 1.11.1 One or more Transport addresses in INIT message 1.11.2 One or more Transport addresses in INIT-ACK messages 1.12 Host Name Address Parameter 1.12.1 Unresolvable Host Name Address in INIT messages Sunil, Sandeep,Kuleep,Ashok , Hughes Software Systems [Page 8] Internet Draft Conformance Test For SCTP Feb 2001 1.12.2 Unresolvable Host Name Address in INIT-ACK 1.13 Supported Address Field 1.13.1 Supported Address field in INIT messages 1.13.2 Supported Address Type in INIT messages which the receiver is incapable of using 1.14 Init-Tag equal to zero 1.14.1 Value of Init-tag equal to zero in INIT message 1.14.2 Value of Init-tag equal to zero in INIT-ACK message 2 Association Termination 2.1 Generation of ABORT 2.2 Termination of an association by receiving ABORT with no error cause 2.3 Termination of an association by receiving Terminate primitive from upper layers 2.4 T2-Shutdown timer expires for SHUTDOWN message 2.5 ASSOCIATION.MAX.RETRANS tries exceeds for SHUTDOWN message 2.6 Receiving SHUTDOWN-ACK message in response to SHUTDOWN message 2.7 Data From Upper Layers 2.7.1 Data from upper layer in Shutdown sent state 2.7.2 Data from upper layer in Shutdown receive state 2.7.3 Data from upper layer in Shutdown pending state 2.7.4 Data from upper layer in Shutdown-Ack sent state 2.8 Data from Peer in Shutdown sent state 2.9 Data Chunks are received in Shutdown Receive state 2.10 SHUTDOWN from peer in Shutdown receive state 2.11 T2-Shutdown timer expires for SHUTDOWN-ACK message 2.12 ASSOCIATION.MAX.RETRANS tries exceeds for SHUTDOWN-ACK message 2.13 Receiving SHUTDOWN COMPLETE message in response to SHUTDOWN-ACK message 3 Invalid Message Handling 3.1 Invalid INIT Message with message length < length of all mandatory parameters 3.2 INIT-ACK Message with mandatory parameter missing 3.3 Invalid Verification Tag field in a message 3.4 Invalid Adler-32 Checksum in SCTP datagram 3.5 Invalid COOKIE-ECHO message with wrong MD5 signature 3.6 Invalid COOKIE-ECHO message with life time expired 3.7 Invalid ABORT message 3.8 Chunk length greater than packet length 3.9 Invalid SHUTDOWN-ACK message 3.10 Invalid SHUTDOWN COMPLETE message 4 Duplicate Message 4.1 INIT Collision 4.2 Duplicate INIT Message 4.2.1 Duplicate INIT Message in Established state 4.2.2 Duplicate INIT message in Shutdown-Ack sent state Sunil, Sandeep,Kuleep,Ashok , Hughes Software Systems [Page 9] Internet Draft Conformance Test For SCTP Feb 2001 4.3 Duplicate INIT-ACK in COOKIE-ECHO Sent state 4.4 Duplicate COOKIE-ACK in established state 4.5 SHUTDOWN Collision 4.6 Duplicate Shutdown Message 4.6.1 Duplicate SHUTDOWN message in Cookie Wait state 4.6.2 Duplicate SHUTDOWN message in closed state 4.6.3 Duplicate SHUTDOWN message in Shutdown Receive state 4.6.4 Duplicate SHUTDOWN message in Shutdown Sent state 4.7 Duplicate SHUTDOWN-ACK 4.7.1 SHUTDOWN-ACK in Cookie_Wait state 4.7.2 SHUTDOWN-ACK in Established state 4.7.3 SHUTDOWN-ACK in SHUTDOWN-ACK Sent state 4.8 Duplicate COOKIE-ECHO Message 4.8.1 Duplicate COOKIE-ECHO Message with invalid MAC 4.8.2 Duplicate COOKIE-ECHO Message with valid MAC but expired life time 4.8.3 Duplicate valid COOKIE-ECHO Message when Local and Peer tags don't match the existing TCB but local and peer tie tag matches the existing TCB 4.9 Duplicate SHUTDOWN COMPLETE message in Cookie Wait state 4.10 Duplicate valid COOKIE-ECHO Message in Shutdown Ack sent state when Local and Peer tags don't match the existing TCB but local and peer tie tag matches the existing TCB 4.11 DATA packet in Shutdown-Ack Sent state 5 Fault Handling 5.1 Association.Max.Retrans Counter 5.1.1 Total number of consecutive retransmission exceeds Association.Max.Retrans 5.1.2 The counter counting total number of retransmission to an endpoint is reset on receiving a SACK. 5.2 Retrans.Count counter exceeds the Path.Max.Retrans 5.3 Retrans.Count counter is reset on receiving HEARTBEAT-ACK or SACK. 5.4 Retrans.Count counter is not reset on receiving SACK for an outstanding TSN, which was sent on an alternate transport address 5.5 HEARTBEAT message is sent periodically to an idle active station 5.6 Heartbeat Request primitive 5.7 HEARTBEAT message is responded with HEARBEAT-ACK 5.8 HEARTBEAT-ACK message comes from an inactive destination 5.9 OOTB datagram 5.9.1 OOTB DATA Packet 5.9.2 OOTB ABORT Packet 5.9.3 OOTB SHUTDOWN-ACK Packet 5.9.4 OOTB SHUTDOWN COMPLETE Packet 5.9.5 OOTB Packet from or to non-unicast address Sunil, Sandeep,Kuleep,Ashok , Hughes Software Systems [Page 10] Internet Draft Conformance Test For SCTP Feb 2001 6 ERROR 6.1 ERROR message with cause Stale Cookie Error received in Cookie Echoed State 6.2 ERROR message with cause Stale Cookie Error received in state other than Cookie Echoed State 6.3 Generation of error cause Invalid Stream Identifier 6.4 Generation of error cause Missing Mandatory parameter 6.5 Generation of error cause Unrecognized Parameters 6.6 Reception of COOKIE-ECHO bundled with error cause Unrecognized Parameters 7 Bundling of DATA chunks with Control Chunks 7.1 Chunk Multiplexing with INIT message 7.2 Chunk Multiplexing with INIT-ACK message 7.3 Chunk Multiplexing with SHUTDOWN COMPLETE Chunk 7.4 COOKIE-ECHO is received bundled with data chunks with cookie as first chunk 7.5 COOKIE-ACK is received bundled with data chunks with COOKIE-ECHO as first chunk 7.6 SHUTDOWN is received bundled with SACK 7.7 SACK is received bundled with DATA chunks 7.8 SHUTDOWN-ACK is received bundled with DATA 8 DATA 8.1 UN-SEGMENTED DATA 8.2 DATA SEGMENTATION 8.3 SEGMENTED DATA RECEPTION 8.4 CANCEL T3-rtx TIMER 8.5 T3-rtx TIMER EXPIRE 8.6 DUPLICATE DATA 8.7 BUFFER SPACE 8.8 USER DATA IN rwnd=0 8.9 CONGESTION 8.10 RETRANSMISSION 8.11 ORDERED DELIVERY 8.12 UN-ORDERED DELIVERY 8.13 Reception of SACK from Alternate address 8.14 DATA Chunk with no user data 8.15 SACK containing Cumulative TSN less than the Cumulative TSN Ack point 8.16 TSN missing in SACK which was previously acknowledged by SACK in Gap Ack block Sunil, Sandeep,Kuleep,Ashok , Hughes Software Systems [Page 11] Internet Draft Conformance Test For SCTP Feb 2001 9 Acknowledgement 9.1 NORMAL ACKNOWLEDGE 9.2 DELAYED ACKNOWLEDGE 9.3 CUMULATIVE TSN ACK 10 Miscellaneous Test Case 10.1 CHUNK TYPE Encoding 10.2 Parameter Type Encoding 11 Retransmission Timer 11.1 RTO is incremented if T3-rxt expires for DATA chunk (Single IP address) 11.2 RTO is incremented if T3-rxt expires for DATA chunk (Multiple IP addresses) 11.3 When DATA is retransmitted to an alternate address then RTO value corresponding to that address is used Sunil, Sandeep,Kuleep,Ashok , Hughes Software Systems [Page 12] Internet Draft Conformance Test For SCTP Feb 2001 6 Test Description 1.1 Normal Association TEST NUMBER : 1.1 Reference: SCTP RFC 2960 Clause 5.1 and 5.1.6 TITLE : Association Startup SUBTITLE : Normal Association PURPOSE : To check normal association procedure PRE-TEST CONDITIONS: Association not established between endpoint A and B. Also arrange the data in endpoint B such that upper layers send Associate primitive to startup an association with endpoint A. EXPECTED MESSAGE SEQUENCE : Endpoint A Endpoint B ULP (Closed) (Closed) <----- Associate <---------------- INIT INIT_ACK -----------------> <----------------- COOKIE-ECHO COOKIE_ACK ------------------> Communication Up ----> <---- Send <------------------ DATA SACK ------------------> DATA ------------------> Data Arrive -----> <------------------ SACK TEST DESCRIPTION: 1. Start normal association procedure by sending associate primitive from ULP in endpoint B.Record the message sequence using a signal emulator. 2. Check A: Association is established. 3. Check B: First data chunk sent after establishing association is immediately acknowledged by SACK. 4. Check C: Reception and transmission of various length data chunks on the established association. 5. Check D: All the DATA messages are received correctly. (No loss of messages.) Sunil, Sandeep,Kuleep,Ashok , Hughes Software Systems [Page 13] Internet Draft Conformance Test For SCTP Feb 2001 1.2 T1-Init Timer 1.2.1 T1-Init timer for INIT TEST NUMBER : 1.2.1 Reference: SCTP RFC 2960 Clause 5.1.6 and 4 (Note 2) TITLE : Association Startup SUBTITLE : T1-Init timer for INIT PURPOSE: To check that if T1-Init timer expires then INIT message is transmitted again. 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. EXPECTED MESSAGE SEQUENCE : Endpoint A Endpoint B ULP (Closed) (Closed) <----- Associate Note Init-Tag value <---------------- INIT Don't send Start T1-Init timer INIT-ACK message | | | T1-INIT timer | Expires | | Note Init-Tag value <----------------- INIT Restart T1-Init timer TEST DESCRIPTION: 1. Try to make an association from endpoint B to endpoint A by sending INIT message from endpoint B. Don't send INIT-ACK in response to INIT message. Record the message sequence using a signal emulator. 2. Check A: INIT message is sent again after expiry of T1-Init timer. 3. Check B: In the retransmitted message, Init-Tag value is same as was in the previous INIT message. 4. Check C: Was the message sequence as above Sunil, Sandeep,Kuleep,Ashok , Hughes Software Systems [Page 14] Internet Draft Conformance Test For SCTP Feb 2001 1.2.2 T1-Cookie timer for COOKIE TEST NUMBER : 1.2.2 Reference: SCTP RFC 2960 Clause 5.1.6 and 4 (Note 3) TITLE : Association Startup SUBTITLE : T1-Cookie timer for COOKIE-ECHO PURPOSE: To check that if T1-Cookie timer expires then COOKIE-ECHO message is transmitted again. PRE-TEST CONDITION: Association is not established between endpoint A and B. Arrange the data in Endpoint A such that COOKIE-ACK is not sent in response to COOKIE-ECHO message. EXPECTED MESSAGE SEQUENCE : Endpoint A Endpoint B ULP (Closed) (Closed) <----- Associate <---------------- INIT INIT-ACK -----------------> <---------------- COOKIE-ECHO Don't send Start T1-Init timer COOKIE-ACK message | | | T1-Cookie timer expires | | | <---------------- COOKIE-ECHO Restart T1-Cookie Timer TEST DESCRIPTION: 1. Try to make an association from endpoint B to endpoint A by sending INIT message from endpoint B. Record the message sequence using a signal emulator. 2. Check A: COOKIE-ECHO message is sent again after expiry of T1-Cookie timer. 3. Check B: Was the message sequence as above Sunil, Sandeep,Kuleep,Ashok , Hughes Software Systems [Page 15] Internet Draft Conformance Test For SCTP Feb 2001 1.3 MAX.INIT.RETRANS 1.3.1 MAX.INIT.RETRANS: Failure to receive INIT-ACK TEST NUMBER : 1.3.1 Reference: SCTP RFC 2960 Clause 4 (Note 2) and 5.1.6 TITLE : Association Startup SUBTITLE : MAX.INIT.RETRANS: Failure to receive INIT-ACK PURPOSE: To verify that if INIT is retransmitted for MAX.INIT.RETRANS then the process to make the association is aborted. PRE-TEST CONDITIONS: 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. Let MAX.INIT.RETRANS counter for endpoint B is x. EXPECTED MESSAGE SEQUENCE : Endpoint A Endpoint B ULP (Closed) (Closed) <------ Associate <------------ INIT Don't Send INIT-ACK | | T1-INIT timer | <------------ INIT Don't Send INIT-ACK | | T1-INIT timer | <------------ INIT .Retransmit INIT .x Times MAX INT. RETRANS Counter exceeds. Communications Lost -------> <------- Associate <------------------ INIT INIT-ACK ------------------> <------------------ COOKIE-ECHO COOKIE-ACK ------------------> Communication Up -------> ------------------> DATA ------------------> <------------------ SACK Sunil, Sandeep,Kuleep,Ashok , Hughes Software Systems [Page 16] Internet Draft Conformance Test For SCTP Feb 2001 TEST DESCRIPTION: 1. Attempt to make an association from endpoint B to endpoint A by sending INIT message from endpoint B. Record the message sequence using a signal emulator. 2. Check A: If INIT message is transmitted for MAX.INIT.RETRANS times without getting an INIT-ACK, Association is aborted and upper layers are reported of this. 3. Check B: Can endpoint B start and establish a new association with endpoint A. Check this by sending Associate primitive from ULP. 4. Check C: Was the message sequence as above. 1.3.2 MAX.INIT.RETRANS: Failure to receive COOKIE-ACK TEST NUMBER : 1.3.2 Reference: SCTP RFC 2960 Clause 4 (Note 3) and 5.1.6 TITLE : Association Startup SUBTITLE : MAX.INIT.RETRANS: Failure to receive COOKIE-ACK PURPOSE: To verify that if COOKIE is retransmitted for MAX.INIT.RETRANS then association is aborted. PRE-TEST CONDITIONS: Association is not established between endpoint A and B. Arrange the data in Endpoint A such that COOKIE-ACK is not sent in response to COOKIE message. Let MAX.INIT.RETRANS counter for endpoint B is x. Sunil, Sandeep,Kuleep,Ashok , Hughes Software Systems [Page 17] Internet Draft Conformance Test For SCTP Feb 2001 EXPECTED MESSAGE SEQUENCE : Endpoint A Endpoint B ULP (Closed) (Closed) <------ Associate <------------------ INIT INIT-ACK ------------------> <------------------ COOKIE-ECHO Don't Send COOKIE-ACK | | T1-Cookie timer | <------------------ COOKIE -ECHO Don't Send COOKIE-ACK | | T1-Cookie timer | <------------------ COOKIE-ECHO . . Retransmit x . times MAX.INIT.RETRANS Counter exceeds. Communication Lost --------> <--------- Associate <------------------ INIT INIT-ACK ------------------> <------------------ COOKIE-ECHO COOKIE-ACK ------------------> Communication Up ---------> DATA ------------------> <------------------ SACK TEST DESCRIPTION: 1. Attempt to make an association from endpoint B to endpoint A by Sending INIT message from endpoint B. Record the message sequence using a signal emulator. 2. Check A: If COOKIE-ECHO message is transmitted for MAX.INIT.RETRANS times without getting an COOKIE-ACK, Association is aborted and upper layers are reported of this. 3. Check B: Can endpoint B start and establish a new association. 4. Check C: Was the message sequence as above. Sunil, Sandeep,Kuleep,Ashok , Hughes Software Systems [Page 18] Internet Draft Conformance Test For SCTP Feb 2001 1.4 Failure to receive COOKIE-ECHO Message TEST NUMBER : 1.4 Reference: SCTP RFC 2960 Clause 5.1 B (Note) TITLE : Association Startup SUBTITLE : Failure to receive COOKIE-ECHO Message PURPOSE: To verify that endpoint remains in closed state if COOKIE-ECHO message is not received and resources are not allocated for that. PRE-TEST CONDITIONS: Association is not established between endpoint A and B. Arrange the data in Endpoint A, such that COOKIE-ECHO is not sent in response to INIT-ACK message.Also let maximum no of association which endpoint A can establish is n and n-1of them are already established. It is necessary to check that resources are not allocated after sending INIT-ACK messages.We are trying to make the nth association. EXPECTED MESSAGE SEQUENCE : Endpoint A Endpoint B ULP (Closed) (Closed) INIT ------------------> <------------------ INIT_ACK (With Cookie) Cookie message is not received. <--------- Associate <------------------ INIT INIT_ACK ------------------> ------------------> COOKIE-ECHO COOKIE-ACK ------------------> Communication Up ---------> DATA ------------------> <------------------ SACK TEST DESCRIPTION: 1. Attempt to make an association from endpoint A to endpoint B. Don't send COOKIE-ECHO message in response to INIT-ACK. Record the message sequence using a signal emulator. 2. Check A: Endpoint B remains in closed state. 3. Check B: Was the message sequence as above. 4. Check C: Can endpoint B start and establish a new association With endpoint A. Sunil, Sandeep,Kuleep,Ashok , Hughes Software Systems [Page 19] Internet Draft Conformance Test For SCTP Feb 2001 1.5 Association Re-establishment (different init-tag) 1.5.1 Different Tag Values in different association being initiated from endpoint being tested TEST NUMBER : 1.5.1 Reference: SCTP RFC 2960 Clause 5.3.1 TITLE : Association SUBTITLE: Different Tag Values in different association with same endpoint. PURPOSE: To verify that when an association is re-established to a peer then a different (Different from the previous association between the two endpoints) Init-Tag value is used. PRE-TEST CONDITIONS: Association is not established between endpoint A and B. Arrange the data in endpoint A such that normal association can be established and terminated between endpoint A and B. EXPECTED MESSAGE SEQUENCE : Endpoint A Endpoint B ULP (Closed) (Closed) <------- Associate Note Init-Tag Value <------------------ INIT INIT_ACK ------------------> <------------------ COOKIE-ECHO COOKIE_ACK ------------------> Communication Up -------> <------ Send <------------------ DATA SACK ------------------> DATA ------------------> Data Arrive -----------> <------------------- SACK SHUTDOWN -------------------> <------------------- SHUTDOWN ACK Communication Lost-----> <----------- Associate Note Init-Tag value <------------------- INIT INIT-ACK -------------------> Sunil, Sandeep,Kuleep,Ashok , Hughes Software Systems [Page 20] Internet Draft Conformance Test For SCTP Feb 2001 TEST DESCRIPTION: 1. Try to initiate an association between endpoint A and B. Note the values of Init-Tag parameters received in INIT messages.Terminate the association by sending SHUTDOWN message and try to re-establish the association. Again note the value of Init-Tag parameters in INIT message. 2. Check A: Value of Init-Tag parameter in the new association is different from the old one. Sunil, Sandeep,Kuleep,Ashok , Hughes Software Systems [Page 21] Internet Draft Conformance Test For SCTP Feb 2001 1.5.2 Different Tag Values in different association being initiated from other endpoint TEST NUMBER : 1.5.2 Reference: SCTP RFC 2960 Clause 5.3.1 TITLE : Association SUBTITLE: Different Tag Values in different association with same endpoint. PURPOSE: To verify that when an association is re-established to a peer then a different (Different from the previous association between the two endpoints) Init-Tag value is used. PRE-TEST CONDITIONS: Association is not established between endpoint A and B. Arrange the data in endpoint A such that normal association can be established and terminated between endpoint A and B. EXPECTED MESSAGE SEQUENCE : Endpoint A Endpoint B ULP (Closed) (Closed) INIT ------------------> Note Init-Tag Value <------------------ INIT-ACK COOKIE-ECHO ------------------> <------------------ COOKIE-ACK Communication Up ---------> <---------------- Send <------------------ DATA SACK -------------------> DATA -------------------> Data Arrive ----------> <------------------ SACK SHUTDOWN -------------------> <------------------ SHUTDOWN ACK Communication Lost ----------> INIT -------------------> <------------------- INIT-ACK Note Init-Tag value Sunil, Sandeep,Kuleep,Ashok , Hughes Software Systems [Page 22] Internet Draft Conformance Test For SCTP Feb 2001 TEST DESCRIPTION: 1. Try to initiate an association between endpoint A and B. Note the values of Init-Tag parameters received in INIT-ACK messages. Terminate the association by sending SHUTDOWN message and try to re-establish the association. Again note the value of Init-Tag parameters in INIT-ACK message. 2. Check A: Value of Init-Tag parameter in the new association is different from the old one. Sunil, Sandeep,Kuleep,Ashok , Hughes Software Systems [Page 23] Internet Draft Conformance Test For SCTP Feb 2001 1.6 Optional Parameters 1.6.1 Optional parameters in the INIT message TEST NUMBER : 1.6.1 Reference: SCTP RFC 2960 Clause 3.3.2 TITLE : Association Startup SUBTITLE: Optional parameters in the INIT message PURPOSE: To verify that if there are one or more optional parameters in the received INIT message then message is accepted and responded. PRE-TEST CONDITIONS: Association is not established between endpoint A and B. Arrange the data in endpoint A such that all optional parameters are sent in INIT message. Also endpoint B should be IPv6 enabled. EXPECTED MESSAGE SEQUENCE : Endpoint A Endpoint B ULP (Closed) (Closed) INIT ------------------> (All optional Parameters) ------------------> INIT_ACK COOKIE-ECHO ------------------> <------------------ COOKIE-ACK Communication Up -----------> DATA -------------------> <------------------- SACK TEST DESCRIPTION: 1. Attempt to make an association from endpoint A to endpoint B. Send INIT message containing all optional parameters (IPv4 address, IPv6 address, COOKIE-ECHO preservative, supported address type). Record the message sequence using a signal emulator. 2. Check A: INIT message is accepted and INIT-ACK is sent. 3. Check B: Association is established between endpoint A and B. Sunil, Sandeep,Kuleep,Ashok , Hughes Software Systems [Page 24] Internet Draft Conformance Test For SCTP Feb 2001 1.6.2 Optional parameters in the INIT-ACK message TEST NUMBER : 1.6.2 Reference: SCTP RFC 2960 Clause 3.3.3 TITLE : Association Startup SUBTITLE: Optional parameters in the INIT-ACK message PURPOSE: To verify that if there are one or more optional parameters in the received INIT-ACK message then message is accepted and responded PRE-TEST CONDITIONS: Association is not established between endpoint A and B. Arrange the data in endpoint A such that all optional parameters are sent in INIT-ACK messages. Also endpoint B should be IPv6 enabled. EXPECTED MESSAGE SEQUENCE : Endpoint A Endpoint B ULP (Closed) (Closed) <--------- Associate <---------------- INIT INIT_ACK -----------------> (With all optional Parameters) <---------------- COOKIE-ECHO COOKIE-ACK ----------------> Communication Up ---------> DATA ----------------> <---------------- SACK TEST DESCRIPTION: 1. Attempt to make an association from endpoint B to endpoint A. Send INIT-ACK message containing all optional parameters (IPv4 address, IPv6 address, Unrecognized Parameters). Record the message sequence using a signal emulator. 2. Check A: INIT-ACK message is accepted and COOKIE-ECHO message is sent. 3. Check B: Association is established between endpoint A and B. 4. Repeat the above test case if COOKIE is not the first parameter after the mandatory parameter in the INIT-ACK message but is after the optional parameter or in between the optional parameter.INIT-ACK should be accepted in this case. Sunil, Sandeep,Kuleep,Ashok , Hughes Software Systems [Page 25] Internet Draft Conformance Test For SCTP Feb 2001 1.7 Stream Parameters Mismatch 1.7.1 Mismatch in the Outbound Stream and Inbound Stream parameters in INIT TEST NUMBER : 1.7.1 Reference: SCTP RFC 2960 Clause 5.1.1 TITLE : Stream parameter mismatch SUBTITLE: Mismatch in the Outbound Stream and Inbound Stream parameters in INIT. PURPOSE: To verify that if there is a mismatch in the Outbound Stream and Inbound Stream parameters in INIT and INIT-ACK message then either association is aborted or endpoint settle with minimum of the two parameters. PRE-TEST CONDITIONS: Association is not established between endpoint A and B. Also let the OS of B is Z. Arrange data in endpoint A such that INIT message is sent from endpoint A with MIS Y OS of B is Z > Y (OS = X, MIS = Y) Note value of OS <---------------- INIT_ACK (Note) (OS = Y, MIS = X) COOKIE-ECHO ----------------> COOKIE-ACK <---------------- Communication Up ---------> <---------- Send (Stream id = Y) Send Failure ---------> OS = Outbound Stream MIS = Maximal Inbound Stream TEST DESCRIPTION: 1. Attempt to initiate an association from endpoint A to B. Send INIT message with Maximal Inbound stream parameter less than the Outbound Stream of B. Record the message sequence using a signal emulator. 2. Check A: Either the association is aborted or INIT-ACK is received with Outbound stream parameter equal to the MIS received in INIT. 3. Check B: Range of OS Stream id in endpoint B and MIS stream id in endpoint A is 0 to Y-1. 4. Check C: Was the message sequence as above. Note: Association may be aborted in this case. Sunil, Sandeep,Kuleep,Ashok , Hughes Software Systems [Page 26] Internet Draft Conformance Test For SCTP Feb 2001 1.7.2 Outbound Stream and Inbound Stream parameters set to zero in INIT TEST NUMBER : 1.7.2 Reference: SCTP RFC 2960 Clause 3.3.2 TITLE : Stream parameter mismatch SUBTITLE: Outbound Stream and Inbound Stream parameters set to zero in INIT PURPOSE: To verify that if OS or MIS are found zero in the received INIT message then ABORT message is sent for that INIT and endpoint remains in the closed state. PRE-TEST CONDITIONS: Association is not established between endpoint A and B. Arrange data in endpoint A such that INIT message with OS or MIS equal to 0 is sent from endpoint A. EXPECTED MESSAGE SEQUENCE : Endpoint A Endpoint B ULP (Closed) Closed) INIT ----------------> (OS = 0, MIS = Y) <---------------- ABORT TEST DESCRIPTION: 1. Attempt to initiate an association from endpoint A to B. Send INIT message with OS equal to zero and MIS any value. 2. Check A: ABORT message is received at the endpoint A with cause "Invalid Mandatory Parameter". 3. Repeat the above test case if value of MIS is zero and OS is having any value in INIT message. 4. Repeat the above test case if value of MIS and OS are zero. Sunil, Sandeep,Kuleep,Ashok , Hughes Software Systems [Page 27] Internet Draft Conformance Test For SCTP Feb 2001 1.7.3 Mismatch in the Outbound Stream and Inbound Stream parameters in INIT-ACK TEST NUMBER : 1.7.3 Reference: SCTP RFC 2960 Clause 5.1.1 TITLE : Stream parameter mismatch SUBTITLE: Mismatch in the Outbound Stream and Inbound Stream parameters in INIT-ACK. PURPOSE: To verify that if there is a mismatch in the Outbound Stream and Inbound Stream parameters in INIT and INIT-ACK message then either association is aborted or endpoint settle with minimum of the two parameters. PRE-TEST CONDITIONS: Association is not established between endpoint A and B. Also let the OS of B is Z. Arrange data in endpoint A such that INIT-ACK message is sent from endpoint A with MIS X (OS = Y, MIS = X) <---------------- COOKIE-ECHO (Note) COOKIE-ACK ----------------> Communication Up -------> <------- Send <---------------- DATA (Stream id = x-1) SACK ----------------> <-------- Send (Stream id = x) Send Failure --------> OS = Outbound Stream MIS = Maximal Inbound Stream Sunil, Sandeep,Kuleep,Ashok , Hughes Software Systems [Page 28] Internet Draft Conformance Test For SCTP Feb 2001 TEST DESCRIPTION: 1. Attempt to initiate an association from endpoint B to A. Send INIT-ACK message with Maximal Inbound stream parameter less than the Outbound Stream of B. Record the message sequence using a signal emulator. 2. Check A: Either the association is aborted or COOKIE-ECHO is received 3. Check B: Range of MIS Stream id in endpoint B is 0 to Y-1. 4. Check C: Was the message sequence as above. Note: Association may be aborted in this case. Sunil, Sandeep,Kuleep,Ashok , Hughes Software Systems [Page 29] Internet Draft Conformance Test For SCTP Feb 2001 1.7.4 Outbound Stream and Inbound Stream parameters equal to zero in INIT-ACK TEST NUMBER : 1.7.4 Reference: SCTP RFC 2960 Clause 3.3.3 TITLE : Stream parameter mismatch SUBTITLE: Outbound Stream and Inbound Stream parameters equal to zero in INIT-ACK PURPOSE: To verify that if OS or MIS are found zero in the received INIT-ACK message then ABORT message is sent for that INIT-ACK and endpoint remains in the closed state. PRE-TEST CONDITIONS: Association is not established between endpoint A and B. Also let the OS of B is Z. Arrange data in endpoint A such that INIT-ACK message is sent from endpoint A with OS or MIS equal to zero. EXPECTED MESSAGE SEQUENCE : Endpoint A Endpoint B ULP (Closed) (Closed) <-------Associate <---------------- INIT (OS = Z, MIS = Y) INIT_ACK ----------------> (OS = 0, MIS = Z) <---------------- ABORT Communication Down -------> TEST DESCRIPTION: 1. Attempt to initiate an association from endpoint B to A. Send INIT- ACK message with OS equal to zero and MIS equal to Z. 2. Check A: ABORT message is received at the endpoint A. 3. Repeat the above test case if value of MIS is zero and OS is having value Y. Response should be same. 4. Repeat the above test case if value of both MIS and OS is zero. Response should be same. Sunil, Sandeep,Kuleep,Ashok , Hughes Software Systems [Page 30] Internet Draft Conformance Test For SCTP Feb 2001 1.8 Unrecognized Parameters parameter in INIT-ACK TEST NUMBER : 1.8 Reference: SCTP RFC 2960 Clause 3.3.3.1 TITLE : Association Startup SUBTITLE: Unrecognized Parameters parameter in INIT-ACK. PURPOSE: To verify that if unrecognized TLV parameters are received in INIT message then they are filled in the Unrecognized Parameters parameter of INIT-ACK. PRE-TEST CONDITIONS: Association is not established between endpoint A and B. Arrange the data in endpoint A such that a datagram with undefined parameter type and MSB two bits in the parameter type equal to 11 is sent to endpoint A. EXPECTED MESSAGE SEQUENCE : Endpoint A Endpoint B ULP (Closed) (Closed) INIT ----------------> With undefined Parameter Accept INIT message Type optional parameters Note Unrecognized <---------------- INIT_ACK Parameters field (Unrecognised parameters inunrecognised Parameters field ) COOKIE-ECHO ----------------> <---------------- COOKIE-ACK Communication Up ------> DATA ----------------> <---------------- SACK TEST DESCRIPTION: 1. Attempt to initiate an association from endpoint A to B by sending INIT message from A. In the INIT message, send some optional parameters with undefined parameter type. The most significant two bits in parameter type is 11. Record the messages using a signal emulator. 2. Check A: INIT message is accepted and an INIT-ACK is sent. 3. Check B: In the INIT-ACK message, Unrecognised Parameters field is filled with undefined parameter received in INIT. 4. Check C: Association is established between endpoint A and B. Sunil, Sandeep,Kuleep,Ashok , Hughes Software Systems [Page 31] Internet Draft Conformance Test For SCTP Feb 2001 1.9 IP address in multiple association TEST NUMBER : 1.9 Reference: SCTP RFC 2960 Clause 1.4 TITLE: Association Startup SUBTITLE: IP address in multiple association PURPOSE:To verify that if an INIT message comes for starting association with a transport address which is already in association, that INIT message is responded with ABORT message. PRE-TEST CONDITION: Association is not established between endpoint A and B. Arrange the data in endpoint A such that INIT message is sent for making an association with endpoint B. EXPECTED MESSAGE SEQUENCE : Endpoint A Endpoint B ULP (Closed) (Closed) INIT ----------------> (IP address = x, y Port = a) <---------------- INIT-ACK COOKIE-ECHO ----------------> <---------------- COOKIE-ACK Communication up ------> INIT ----------------> (IP address = x, z Port = a) <---------------- ABORT DATA ----------------> <--------------- SACK TEST DESCRIPTION: 1. Attempt to make an association between endpoint A and endpoint B by sending INIT message from endpoint A. Endpoint B is already in association with endpoint A with IP address x and y. Record the message sequence using a signal emulator. 2. Check A: Association is not established and ABORT message is sent 3. Check B: Existing association between endpoint A and endpoint B is not disturbed. Sunil, Sandeep,Kuleep,Ashok , Hughes Software Systems [Page 32] Internet Draft Conformance Test For SCTP Feb 2001 1.10 No Transport Addresses 1.10.1 No Transport addresses in INIT messages TEST NUMBER : 1.10.1 Reference: SCTP RFC 2960 Clause 5.1.2 A TITLE : Association Startup SUBTITLE: No Transport addresses in INIT messages. PURPOSE:To check the action of the system when INIT message is received Containing no IP address. PRE-TEST CONDITIONS: Association is not established between endpoint A and B. Arrange the data in endpoint A such that no IP addresses are sent in INIT. EXPECTED MESSAGE SEQUENCE : Endpoint A Endpoint B ULP (Closed) (Closed) INIT ----------------> (No IP Address) <---------------- INIT_ACK COOKIE-ECHO ----------------> ----------------> COOKIE-ACK Communication Up --------> DATA ----------------> <---------------- SACK TEST DESCRIPTION: 1. Attempt to make an association from endpoint A to B. Send INIT message containing no IP address. Record the message sequence using a signal emulator. 2. Check A: INIT-ACK is sent at the source IP address from which INIT is received. 3. Check B: Other messages from endpoint B are sent at the source IP address from which INIT is received 4. Check C: Association is established between endpoint A and B. Sunil, Sandeep,Kuleep,Ashok , Hughes Software Systems [Page 33] Internet Draft Conformance Test For SCTP Feb 2001 1.10.2 Host Name Address in INIT messages. TEST NUMBER : 1.10.2 Reference: SCTP RFC 2960 Clause 5.1.2 B TITLE : Association Startup SUBTITLE: Host Name address in INIT messages. PURPOSE:To check the action of the system when INIT message is received containing Host Name address with no other IP address. PRE-TEST CONDITIONS: Association is not established between endpoint A and B. Arrange the data in endpoint A such that Host Name address is sent to Endpoint B with no other IP address in INIT message. Also Host Name address sent by endpoint A is resolvable at Endpoint B. EXPECTED MESSAGE SEQUENCE : Endpoint A Endpoint B ULP (Closed) (Closed) INIT ----------------> (Host Name Address) <----------------- INIT_ACK COOKIE-ECHO ------------------> <------------------ COOKIE-ACK Communication Up -------> DATA ------------------> <------------------ SACK TEST DESCRIPTION: 1. Attempt to make an association from endpoint A to B. Send INIT message containing Host Name address with no other IP address parameter. Record the message sequence using a signal emulator. 2. Check A: INIT-ACK is sent at one of the IP address resolved from the Host Name address received in INIT message. 3. Check B: Other messages from endpoint B are sent at one of the IP address resolved from the Host Name address received in INIT message. 4. Check C: Association is established between endpoint A and B. 5. Repeat the above test case if other IP address such as IPv4 and IPv6 addresses is also present in the INIT message along with Host Name address parameter. Receiver of INIT i.e. Endpoint B should ignore IPv4 and IPv6 addresses if present along with Host Name address and continue to establish association with the addresses obtained by resolving Host Name address parameter. Sunil, Sandeep,Kuleep,Ashok , Hughes Software Systems [Page 34] Internet Draft Conformance Test For SCTP Feb 2001 1.10.3 No Transport addresses in INIT-ACK messages TEST NUMBER : 1.10.3 Reference: SCTP RFC 2960 Clause 5.1.2 A TITLE : Association Startup SUBTITLE: No Transport addresses in INIT-ACK messages. PURPOSE: To check the action of the system when INIT-ACK message is received containing no IP address in the optional IP address field. PRE-TEST CONDITIONS: Association is not established between endpoint A and B. Arrange the data in endpoint A such that no IP addresses are sent in INIT-ACK optional IP address field. EXPECTED MESSAGE SEQUENCE : Endpoint A Endpoint B ULP (Closed) (Closed) <------- Associate <----------------- INIT INIT-ACK -----------------> (No Optional IP Address) <----------------- COOKIE-ECHO COOKIE-ACK -----------------> Communication Up -----------> DATA -----------------> <----------------- SACK TEST DESCRIPTION: 1. Attempt to make an association from endpoint B to A. Send INIT-ACK message containing no IP address. Record the message sequence using a signal emulator. 2. Check A: COOKIE-ECHO is sent at the source IP address from which INIT-ACK is received. 3. Check B: Other messages from endpoint B are sent at the source IP address from which INIT-ACK is received. 4. Check C: Association is established between endpoint A and B. Sunil, Sandeep,Kuleep,Ashok , Hughes Software Systems [Page 35] Internet Draft Conformance Test For SCTP Feb 2001 1.10.4 Host Name Address in INIT-ACK TEST NUMBER : 1.10.4 Reference: SCTP RFC 2960 Clause 5.1.2 B TITLE : Association Startup SUBTITLE: Host Name Address in INIT-ACK message without any other IP address. PURPOSE: To check the action of the system when INIT-ACK message is received containing Host Name Address with no other IP address. PRE-TEST CONDITIONS: Association is not established between endpoint A and B.Arrange the data in endpoint A such that Host Name Address with no other IP address is sent in INIT-ACK message.Also Endpoint B is able to resolve the Host Name Address sent by Endpoint A to a list of IP addresses. EXPECTED MESSAGE SEQUENCE : Endpoint A Endpoint B ULP (Closed) (Closed) <--------- Associate <----------------- INIT INIT-ACK -----------------> (Host Name Address) <----------------- COOKIE-ECHO COOKIE-ACK -----------------> Communication Up ---------> DATA -----------------> <----------------- SACK TEST DESCRIPTION: 1. Attempt to make an association from endpoint B to A. Send INIT-ACK message containing Host Name Address with no other IP address. Record the message sequence using a signal emulator. 2. Check A: COOKIE-ECHO is sent at one of the IP address resolved from the Host Name Address present in INIT-ACK. 3. Check B: Other messages from endpoint B are sent at the IP address resolved from the Host Name Address present in INIT-ACK. 4. Check C: Association is established between endpoint A and B. 5. Repeat the above test case if other IP address such as IPv4 and IPv6 addresses is also present in the INIT-ACK message along with Host Name address parameter. Receiver of INIT-ACK i.e. Endpoint B should ignore IPv4 and IPv6 addresses if present along with Host Name address and continue to establish association with the addresses obtained by resolving Host Name address parameter. Sunil, Sandeep,Kuleep,Ashok , Hughes Software Systems [Page 36] Internet Draft Conformance Test For SCTP Feb 2001 1.11 Transport addresses 1.11.1 One or more Transport addresses in INIT message TEST NUMBER : 1.11.1 Reference: SCTP RFC 2960 Clause 5.1.2 B TITLE : Association Startup SUBTITLE: One or more Transport addresses in INIT message. PURPOSE:To verify 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. PRE-TEST CONDITIONS: Association is not established between endpoint A and B.Arrange the data in endpoint A such that one or more IP addresses are sent in INIT message. Endpoint B is IPv6 capable EXPECTED MESSAGE SEQUENCE : Endpoint A Endpoint B ULP (Closed) (Closed) INIT -----------------> (Transport Address = x, y, z Port = a ) <---------------- INIT_ACK COOKIE-ECHO -----------------> <---------------- COOKIE-ACK Communication Up ------> DATA (IP = x Port = a) --------------------> <---------------- SACK DATA (IP = y Port = a) -----------------> <----------------- SACK DATA (IP = z Port = a) -----------------> <---------------- SACK TEST DESCRIPTION: 1. Attempt to make an association from endpoint A to endpoint B. Send INIT message containing one or more IPv4 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: Other messages from endpoint B are sent at the IP addresses received in INIT message. 5. Check D: Send DATA from each IP address in endpoint A. Check that they are accepted and responded with SACK. 6. Repeat the above test case when one or more IPv6 addresses are present. 7. Repeat the above test case when both IPv4 and IPv6 addresses are present in INIT. Sunil, Sandeep,Kuleep,Ashok , Hughes Software Systems [Page 37] Internet Draft Conformance Test For SCTP Feb 2001 1.11.2 One or more Transport addresses in INIT-ACK messages TEST NUMBER : 1.11.2 Reference: SCTP RFC 2960 Clause 5.1.2 B TITLE : Association Startup SUBTITLE: One or more Transport addresses in INIT-ACK messages. PURPOSE:To verify that if there are one or more transport addresses are received in INIT-ACK message then one of these IP address plus the address from where the INIT-ACK comes combined with the SCTP source port number is used as the destination transport address. PRE-TEST CONDITIONS: Association is not established between endpoint A and B. Arrange the data in endpoint A such that one or more IP addresses are sent in INIT-ACK messages. EXPECTED MESSAGE SEQUENCE : Endpoint A Endpoint B ULP (Closed) (Closed) <-------- Associate <----------------- INIT INIT-ACK -----------------> (Transport Address = x, y, z Port =a) <---------------- COOKIE-ECHO COOKIE-ACK -----------------> Communication Up ----------> DATA (IP = x Port = a) -----------------> <----------------- SACK DATA (IP = y Port = a) ------------------> <------------------ SACK DATA (IP = z Port = a) ------------------> <------------------ SACK Sunil, Sandeep,Kuleep,Ashok , Hughes Software Systems [Page 38] Internet Draft Conformance Test For SCTP Feb 2001 TEST DESCRIPTION: 1. Attempt to make an association from endpoint B to endpoint A. Send INIT-ACK Message containing one or more IPv4 addresses. Record the message sequence using a signal emulator. 2. Check A: INIT-ACK message is accepted. 3. Check B: COOKIE-ECHO is sent at one of the transport addresses received in INIT-ACK plus the address from where INIT-ACK was received. 4. Check C: Other messages from endpoint B are sent at the IP address received in INIT-ACK message. 5. Check D: Send data from each of the IP address. Check that they are accepted and responded with SACK. 6. Repeat the above test case when one or more IPv6 addresses are present. 7. Repeat the above test case when both IPv4 and IPv6 addresses are present in INIT-ACK. Sunil, Sandeep,Kuleep,Ashok , Hughes Software Systems [Page 39] Internet Draft Conformance Test For SCTP Feb 2001 1.12 Host Name Address Parameter 1.12.1 Unresolvable Host Name Address in INIT messages TEST NUMBER : 1.12.1 Reference: SCTP RFC 2960 Clause 5.1.2 C TITLE : Association Startup SUBTITLE: Unresolvable Host Name address in INIT messages. PURPOSE:To check the action of the system when INIT message is received containing Unresolvable Host Name address with no other IP address. PRE-TEST CONDITIONS: Association is not established between endpoint A and B. Arrange the data in endpoint A such that Host Name address is sent to Endpoint B with no other IP address in INIT message. Also Host Name address sent by endpoint A is not resolvable at Endpoint B. EXPECTED MESSAGE SEQUENCE : Endpoint A Endpoint B ULP (Closed) (Closed) INIT -----------------> (Host Name Address) <----------------- ABORT (with error Unresolvable Address) TEST DESCRIPTION: 1. Attempt to make an association from endpoint A to B. Send INIT message containing Host Name address with no other IP address parameter. Record the message sequence using a signal emulator. 2. Check A: ABORT is sent at the IP address from where INIT message is received with error cause Unresolvable Address. 3. Repeat the above test case if other IP address such as Ipv4 and IPv6 addresses is also present in the INIT message along with Host Name address parameter. Response will be same. Sunil, Sandeep,Kuleep,Ashok , Hughes Software Systems [Page 40] Internet Draft Conformance Test For SCTP Feb 2001 1.12.2 Unresolvable Host Name Address in INIT-ACK TEST NUMBER : 1.12.2 Reference: SCTP RFC 2960 Clause 5.1.2 C TITLE : Association Startup SUBTITLE:Unresolvable Host Name Address in INIT-ACK message without any other IP address. PURPOSE: To check the action of the system when INIT-ACK message is received containing Unresolvable Host Name Address with no other IP address. PRE-TEST CONDITIONS:Association is not established between endpoint A and B.Arrange the data in endpoint A such that Host Name Address with no other IP address is sent in INIT-ACK message.Also Endpoint B is not able to resolve the Host Name Address sent by Endpoint A. EXPECTED MESSAGE SEQUENCE : Endpoint A Endpoint B ULP (Closed) (Closed) <--------- Associate <--------------- INIT INIT-ACK ---------------> (Unresolvable Host Name Address) <--------------- ABORT (with error Unresolvable Address) TEST DESCRIPTION: 1. Attempt to make an association from endpoint B to A. Send INIT-ACK message containing Host Name Address with no other IP address. Record the message sequence using a signal emulator. 2. Check A: ABORT is sent at the IP address from where INIT-ACK is received. 3. Repeat the above test case if other IP address such as IPv4 and IPv6 addresses is also present in the INIT-ACK message along with Host Name address parameter. Response will be same. Note: After sending ABORT, Endpoint B may send INIT message again to establish the association. Sunil, Sandeep,Kuleep,Ashok , Hughes Software Systems [Page 41] Internet Draft Conformance Test For SCTP Feb 2001 1.13 Supported Address Field 1.13.1 Supported Address field in INIT messages TEST NUMBER : 1.13.1 Reference: SCTP RFC 2960 Clause 5.1.2 Note TITLE : Association Startup SUBTITLE: Supported address field in INIT messages. PURPOSE:To check the action of the system when INIT message is received containing Supported address field. PRE-TEST CONDITIONS: Association is not established between endpoint A and B. Arrange the data in endpoint A such that Supported Address field is sent in INIT. Also the endpoint B is capable of using the address type mentioned in Supported Address filed EXPECTED MESSAGE SEQUENCE : Endpoint A Endpoint B ULP (Closed) (Closed) INIT ---------------> (With Supported Address Field) <--------------- INIT_ACK COOKIE-ECHO ----------------> <---------------- COOKIE-ACK Communication Up --------> DATA ----------------> <---------------- SACK TEST DESCRIPTION: 1. Attempt to make an association from endpoint A to B. Send INIT message containing Supported Address field. Record the message sequence using a signal emulator. 2. Check A: INIT-ACK is sent with the address of the type contained in the Supported address field in the received INIT. 3. Check B: Association is established between endpoint A and B. 4. Repeat the above test cases for the Supported address filed containing only IPv4 Address type, only IPv6 Address type and both address types. Sunil, Sandeep,Kuleep,Ashok , Hughes Software Systems [Page 42] Internet Draft Conformance Test For SCTP Feb 2001 1.13.2 Supported Address Type in INIT messages which the receiver is incapable of using TEST NUMBER : 1.13.2 Reference: SCTP RFC 2960 Clause 5.1.2 Note TITLE : Association Startup SUBTITLE: Supported Address Type in INIT messages which the receiver is incapable of using PURPOSE:To check the action of the system when INIT message is received containing Supported Address Type which the receiver is incapable of using. PRE-TEST CONDITIONS: Association is not established between endpoint A and B. Arrange the data in endpoint A such that Supported address type field is sent to Endpoint B in INIT message. Also receiver i.e.endpoint B is not capable of using supported address type. EXPECTED MESSAGE SEQUENCE : Endpoint A Endpoint B ULP (Closed) (Closed) INIT ----------------> (Supported Address Type) <----------------- INIT-ACK TEST DESCRIPTION: 1. Attempt to make an association from endpoint A to B. Send INIT message containing Supported Address type parameter. Record the message sequence using a signal emulator. 2. Check A: INIT-ack is sent at one of the IP address contained in INIT message. 3. Check B: the optional parameter in INIT-ACK is coded by copying the parameter from the original INIT message i.e. variable filled up in Supported Address Type of INIT. Sunil, Sandeep,Kuleep,Ashok , Hughes Software Systems [Page 43] Internet Draft Conformance Test For SCTP Feb 2001 1.14 Init-Tag equal to zero 1.14.1 Value of Init-tag equal to zero in INIT message TEST NUMBER : 1.14.1 Reference: SCTP RFC 2960 Clause 3.3.2 TITLE : Association Startup SUBTITLE: Value of Init-tag equal to zero in INIT message PURPOSE:To check the action of the system when INIT message is received containing Init-Tag equal to zero. PRE-TEST CONDITIONS: Association is not established between endpoint A and B. Arrange the data in endpoint A such that Init-tag field equal to zero is sent to Endpoint B in INIT message. EXPECTED MESSAGE SEQUENCE : Endpoint A Endpoint B ULP (Closed) (Closed) INIT ---------------> (Init_Tag = 0) <--------------- ABORT TEST DESCRIPTION: 1. Attempt to make an association from endpoint A to B.Send INIT message containing Init-Tag equal to zero. 2. Check A: ABORT is sent with error cause Invalid mandatory parameter. 3. Repeat the above test case if a_rwnd parameter is zero in the INIT message and Init-Tag is non zero. Response should be same. 4. Repeat the above test case if verification tag is not zero in the INIT message and other parameters are valid.Response should be same. Sunil, Sandeep,Kuleep,Ashok , Hughes Software Systems [Page 44] Internet Draft Conformance Test For SCTP Feb 2001 1.14.2 Value of Init-tag equal to zero in INIT-ACK message TEST NUMBER : 1.14.2 Reference: SCTP RFC 2960 Clause 3.3.3 TITLE : Association Startup SUBTITLE: Value of Init-tag equal to zero in INIT-ACK message PURPOSE: To check the action of the system when INIT-ACK message is received containing Init-Tag equal to zero in response to INIT message. PRE-TEST CONDITIONS: Association is not established between endpoint A and B. Arrange the data in endpoint A such that Init-tag field equal to zero is sent to Endpoint B in INIT-ACK message. EXPECTED MESSAGE SEQUENCE : Endpoint A Endpoint B ULP (Closed) (Closed) <----------Associate <--------------- INIT INIT-ACK ---------------> (Init-Tag = 0) TEST DESCRIPTION: 1. Attempt to make an association from endpoint B to A. Send INIT-ACK message containing Init-Tag equal to zero. 2. Check A: INIT-ACK will be discarded and ABORT will not be sent to endpoint B. 3. Repeat the above test case if a_rwnd parameter is zero in the INIT- ACK message and Init-Tag is non zero. Response should be same. Sunil, Sandeep,Kuleep,Ashok , Hughes Software Systems [Page 45] Internet Draft Conformance Test For SCTP Feb 2001 2 Association Termination 2.1 Generation of ABORT TEST NUMBER : 2.1 Reference: SCTP RFC 2960 Clause 9.1 TITLE : Termination SUBTITLE : Generation of ABORT PURPOSE: To check that when ULP send Abort primitive, an ABORT message is sent to the other endpoint and association is aborted. PRE-TEST CONDITION:Association is established between endpoint A and B. Arrange the data in endpoint B such that ULP sends Abort primitive. EXPECTED MESSAGE SEQUENCE : Endpoint A Endpoint B ULP (Established) (Established) <------- Abort (with some error cause) Association is removed <----------------- ABORT (With error cause) TEST DESCRIPTION: 1. Attempt to terminate an association between endpoint A and endpoint B by sending Abort primitive from ULP in endpoint B. Also send the error cause in Abort primitive. 2. Check A: On receiving Abort primitive, ABORT message is sent to the peer with error cause received in Abort primitive. 3. Check B: Association is removed. 4. Repeat the above test case when Abort primitive is received with no error cause. Sunil, Sandeep,Kuleep,Ashok , Hughes Software Systems [Page 46] Internet Draft Conformance Test For SCTP Feb 2001 2.2 Termination of an association by receiving ABORT with no error cause. TEST NUMBER : 2.2 Reference: SCTP RFC 2960 Clause 9.1 TITLE : Termination SUBTITLE :Termination of an association by receiving ABORT with no error cause. PURPOSE: To check that receiving ABORT message with no error cause can terminate an association. PRE-TEST CONDITION:Association is established between endpoint A and B. Arrange the data in endpoint A such that an ABORT message is sent to endpoint B containing no error cause in it. EXPECTED MESSAGE SEQUENCE : Endpoint A Endpoint B ULP (Established) (Established) ABORT --------------> Association is removed With no error cause Communication Lost ---------> TEST DESCRIPTION: 1. Attempt to terminate an association between endpoint A and endpoint B by sending ABORT message with no error cause. 2. ABORT message is sent either with Peer's V-tag or Local V-tag with T-bit set. 3. Check A: No Acknowledgement is sent for the ABORT message and association is removed. 4. Check B: ULP are reported of the association closure. 5. Repeat the above test case with verification tag value equal to the sender's Init-Tag. 6. Repeat the above test cases when ABORT message is sent with one or more error causes. Sunil, Sandeep,Kuleep,Ashok , Hughes Software Systems [Page 47] Internet Draft Conformance Test For SCTP Feb 2001 2.3 Termination of an association by receiving Terminate primitive from upper layers TEST NUMBER : 2.3 Reference: SCTP RFC 2960 Clause 9.2 TITLE : Termination SUBTITLE:Termination of an association by receiving Terminate primitive from upper layers. PURPOSE: To check that receiving Terminate primitive will cause the endpoint to send a SHUTDOWN message to its peer only when all the outstanding DATA has been acknowledged by A. PRE-TEST CONDITION:Association is established between endpoint A and B. Arrange the data in endpoint B such that Terminate primitive is received from upper layers. EXPECTED MESSAGE SEQUENCE : Endpoint A Endpoint B ULP (Established) (Established) <--------- Send Don't send SACK <--------------- DATA <--------- Send <--------------- DATA Don't send SACK <--------- Terminate <--------------- DATA <--------------- DATA (retransmission) SACK ----------------> (for all outstanding data at B) <--------------- SHUTDOWN SHUTDOWN ACK ---------------> <--------------- SHUTDOWN COMPLETE Sunil, Sandeep,Kuleep,Ashok , Hughes Software Systems [Page 48] Internet Draft Conformance Test For SCTP Feb 2001 TEST DESCRIPTION: 1. Try to terminate an association between endpoint A and endpoint B by sending Terminate primitive to endpoint B from ULP. Before sending Terminate, send some data to endpoint A and don't send SACK for them from A. 2. Check A: SHUTDOWN message is sent to endpoint A. 3. Check B: SHUTDOWN is sent only when any data queued up at B has been sent to A and acknowledged by A. 4. Check C: Value of Cumulative TSN Ack in SHUTDOWN message. It should be equal to the Initial TSN received in INIT or INIT-ACK message. 5. Send one or two data message from endpoint A to endpoint B before sending SACK. SACK will be received at endpoint A.Now check the value of Cumulative TSN field in SHUTDOWN message.It should be equal to the last TSN acked. Note: There may be one or more DATA and SACK till all the data at the endpoint A is not acknowledged. Sunil, Sandeep,Kuleep,Ashok , Hughes Software Systems [Page 49] Internet Draft Conformance Test For SCTP Feb 2001 2.4 T2-Shutdown timer expires for SHUTDOWN message TEST NUMBER : 2.4 Reference: SCTP RFC 2960 Clause 9.2 TITLE : Termination SUBTITLE: T2-Shutdown timer expires for SHUTDOWN message. PURPOSE: To check that T2-Shutdown timer is started and after its expiry, SHUTDOWN message is sent again. PRE-TEST CONDITION:Association is established between endpoint A and B. Arrange the data in endpoint A such that no SHUTDOWN-ACK or DATA is sent in response to SHUTDOWN. EXPECTED MESSAGE SEQUENCE : Endpoint A Endpoint B ULP (Established) Established) <---------- Terminate <----------------- SHUTDOWN | | T2-Shutdown | Timer | | <---------------- SHUTDOWN | 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: After expiry of T2-Shutdown timer, SHUTDOWN message is sent again. 3. Repeat the test case if endpoint A is multihomed. In this case Shutdown message will be retransmitted to the alternate address. Sunil, Sandeep,Kuleep,Ashok , Hughes Software Systems [Page 50] Internet Draft Conformance Test For SCTP Feb 2001 2.5 ASSOCIATION.MAX.RETRANS tries exceeds for SHUTDOWN message TEST NUMBER : 2.5 Reference: SCTP RFC 2960 Clause 9.2 TITLE : Termination SUBTITLE : ASSOCIATION.MAX.RETRANS tries exceeds for SHUTDOWN message PURPOSE: To verify that if SHUTDOWN is retransmitted for ASSOCIATION. MAX.RETRANS then association is removed. PRE-TEST CONDITIONS: Association is established between endpoint A and B. Arrange the data in Endpoint A such that in response to SHUTDOWN no SHUTDOWN-ACK or DATA message is sent.Let the ASSOCIATION.MAX.RETRANS is x. EXPECTED MESSAGE SEQUENCE : Endpoint A Endpoint B ULP (Established) (Established) <-------- Terminate <----------------- SHUTDOWN | | T2-Shutdown timer | <----------------- SHUTDOWN | | T2-Shutdown timer | <----------------- SHUTDOWN . Retransmit . SHUTDOWN x . times ASSOCIATION.MAX.RETRANS Counter exceeds. Close the association Communication Lost ---------------------------> TEST DESCRIPTION: 1. Try to terminate the association between endpoint A and B by sending SHUTDOWN message from endpoint B. No SHUTDOWN-ACK or DATA comes from endpoint A. 2. Check A: If SHUTDOWN message is transmitted for ASSOCIATION.MAX. RETRANS times without getting an SHUTDOWN-ACK or Data chunks, association is closed and upper layers are reported of this. Note: Value of the T2-Shutdown timer will increase after every retransmission. Sunil, Sandeep,Kuleep,Ashok , Hughes Software Systems [Page 51] Internet Draft Conformance Test For SCTP Feb 2001 2.6 Receiving SHUTDOWN-ACK message in response to SHUTDOWN message TEST NUMBER : 2.6 Reference: SCTP RFC 2960 Clause 8.5.1 (c) TITLE : Termination SUBTITLE:Receiving SHUTDOWN-ACK message in response to SHUTDOWN message. PURPOSE: To check that SHUTDOWN-ACK message is accepted in Shutdown Sent state, SHUTDOWN COMPLETE message is sent and association is terminated. PRE-TEST CONDITION: Association is established between endpoint A and B. Arrange the data in endpoint A such that SHUTDOWN-ACK is sent in response to SHUTDOWN message. EXPECTED MESSAGE SEQUENCE : Endpoint A Endpoint B ULP (Established) (Established) <----------------- SHUTDOWN SHUTDOWN-ACK -----------------> Remove the association <----------------- SHUTDOWN COMPLTE Communication down --------> TEST DESCRIPTION: 1. Try to terminate association between endpoint A and B by sending SHUTDOWN message from endpoint B. Send SHUTDOWN-ACK message. 2. Check A: SHUTDOWN COMPLETE message is received at endpoint A. 3. Check B: Association is removed and endpoint B enters closed state. Sunil, Sandeep,Kuleep,Ashok , Hughes Software Systems [Page 52] Internet Draft Conformance Test For SCTP Feb 2001 2.7 Data From Upper Layers 2.7.1 Data from upper layer in Shutdown sent state TEST NUMBER : 2.7.1 Reference: SCTP RFC 2960 Clause 9.2 TITLE : Termination SUBTITLE: Data from upper layer in Shutdown sent state PURPOSE: To verify that data received for transmission from upper layer in Shutdown sent state is rejected. PRE-TEST CONDITIONS:Association is established between endpoint A and B Arrange the data in endpoint B such that upper layers send data to transmit when it is in Shutdown Sent state. EXPECTED MESSAGE SEQUENCE : Endpoint A Endpoint B ULP (Established) (Established) <---------- Terminate <----------------- SHUTDOWN Shutdown sent state <---------- Send Send Failure -----------> SHUTDOWN-ACK -----------------> Communication is Lost -----------> TEST DESCRIPTION: 1. Attempt to terminate an association from endpoint B to endpoint A by sending SHUTDOWN. Now send data from ULP in B to transmit. Record the message sequence using a signal emulator. 2. Check A: Data is rejected. 3. Check B: Current state is not disturbed. Sunil, Sandeep,Kuleep,Ashok , Hughes Software Systems [Page 53] Internet Draft Conformance Test For SCTP Feb 2001 2.7.2 Data from upper layer in Shutdown receive state TEST NUMBER : 2.7.2 Reference: SCTP RFC 2960 Clause 9.2 TITLE : Termination SUBTITLE: Data from upper layer in Shutdown receive state PURPOSE:To verify that data received for transmissions from upper layer in Shutdown receive state is rejected. PRE-TEST CONDITIONS:Association is established between endpoint A and B Arrange the data in endpoint B such that upper layers send data to transmit when it is in Shutdown receive state. EXPECTED MESSAGE SEQUENCE : Endpoint A Endpoint B ULP (Established) (Established) <-------- send <----------------- DATA Don't send SACK SHUTDOWN -----------------> Shutdown receive state <----------------- DATA <-------- Send Send Failure --------> SACK -----------------> <----------------- SHUTDOWN-ACK SHOTDOWN COMPLETE -----------------> TEST DESCRIPTION: 1. Attempt to terminate an association from endpoint A to endpoint B by sending SHUTDOWN. Now send data from ULP in B to transmit. Record the message sequence using a signal emulator. 2. Check A: Data is rejected. 3. Check B: Current state is not disturbed. 4. Check C: Send the Shutdown message with Cumulative TSN field acknow ledging the DATA received from B. In this case DATA will not be retransmitted from endpoint A and SHUTDOWN-ACK will be sent on receiving SHUTDOWN. 5. Send Terminate primitive from ULP while in Shutdown-Receive state. SHUTDOWN will not be sent. Sunil, Sandeep,Kuleep,Ashok , Hughes Software Systems [Page 54] Internet Draft Conformance Test For SCTP Feb 2001 2.7.3 Data from upper layer in Shutdown pending state TEST NUMBER : 2.7.3 Reference: SCTP RFC 2960 Clause 9.2 TITLE : Termination SUBTITLE: Data from upper layer in Shutdown pending state PURPOSE:To verify that data received for transmissions from upper layer in Shutdown pending state is rejected. PRE-TEST CONDITIONS:Association is established between endpoint A and B Arrange the data in endpoint B such that upper layers send data to transmit when it is in Shutdown pending state. EXPECTED MESSAGE SEQUENCE : Endpoint A Endpoint B ULP (Established) (Established) <--------- Send <----------------- DATA Don't send SACK <--------- Terminate SHUTDOWN will not be sent B is in Shutdown pending state <--------- Send Send Failure ---------> SACK -----------------> <---------------- SHUTDOWN SHUTDOWN-ACK -----------------> <----------------- SHUTDOWN COMPLETE TEST DESCRIPTION: 1. Attempt to terminate an association from endpoint B to endpoint A by sending Terminate primitive. Also prior to this send DATA from endpoint B and don't acknowledge it.Endpoint B is in Shutdown pending state. Now send data from ULP to transmit to endpoint A. Record the message sequence using a signal emulator. 2. Check A: Data is rejected. 3. Check B: Current state is not disturbed. Sunil, Sandeep,Kuleep,Ashok , Hughes Software Systems [Page 55] Internet Draft Conformance Test For SCTP Feb 2001 2.7.4 Data from upper layer in Shutdown-Ack sent state TEST NUMBER : 2.7.4 Reference: SCTP RFC 2960 Clause 9.2 TITLE : Termination SUBTITLE: Data from upper layer in Shutdown-Ack sent state PURPOSE:To verify that data received for transmissions from upper layer in Shutdown-Ack sent state is rejected. PRE-TEST CONDITIONS:Association is established between endpoint A and B Arrange the data in endpoint B such that upper layers send data to transmit when it is in Shutdown-Ack sent state. EXPECTED MESSAGE SEQUENCE : Endpoint A Endpoint B ULP (Established) (Established) SHUTDOWN -----------------> <---------------- SHUTDOWN-ACK <------- Send Send Failure --------> SHUTDOWN COMPLETE -----------------> Communication Down -------> TEST DESCRIPTION: 1. Attempt to terminate an association from endpoint A to endpoint B by sending SHUTDOWN. SHUTDOWN-ACK will be received at endpoint A. Now send Send primitive from ULP to SCTP to send DATA to endpoint A. 2. Check A: Send failure is returned. 3. Check B: Current state is not disturbed. Sunil, Sandeep,Kuleep,Ashok , Hughes Software Systems [Page 56] Internet Draft Conformance Test For SCTP Feb 2001 2.8 Data from Peer in Shutdown sent state TEST NUMBER : 2.8 Reference: SCTP RFC 2960 Clause 9.2 TITLE : Termination SUBTITLE : Data chunks received in Shutdown Sent state from peer PURPOSE: To verify that if data chunks are received in Shutdown Sent state, they are immediately reported by SACK and timer T2-shutdown is restarted. PRE-TEST CONDITIONS:Association is established between endpoint A and B Arrange the data in endpoint A such that after receiving SHUTDOWN message,DATA message is sent to endpoint B. Let the value of T2-Shutdown timer in B is x sec. EXPECTED MESSAGE SEQUENCE : Wndpoint A Endpoint B ULP (Established) (Established) <---------Terminate <---------------- SHUTDOWN (Start T2-Shutdown timer) DATA ----------------> <---------------- SACK + SHUTDOWN (Restart T2-Shutdown Timer) Don't send | SHUTDOWN-ACK | time = x sec. | <---------------- SHUTDOWN TEST DESCRIPTION: 1. Try to terminate the association between endpoint A and B by sending SHUTDOWN message from endpoint B. After receiving Shutdown message, send some data chunks from the endpoint A. 2. Check A: Data chunks are responded by SACK immediately. 3. Check B: T2-Shutdown timer is restarted with each SACK sent. Note:SACK may not be bundled with SHUTDOWN in this case but they may go separately. Sunil, Sandeep,Kuleep,Ashok , Hughes Software Systems [Page 57] Internet Draft Conformance Test For SCTP Feb 2001 2.9 Data Chunks are received in Shutdown Receive state TEST NUMBER : 2.9 Reference: SCTP RFC 2960 Clause 9.2 TITLE : Termination SUBTITLE : Data Chunks are received in Shutdown Receive state PURPOSE: To verify that data chunks received in Shutdown Receive state are discarded. PRE-TEST CONDITIONS:Association is established between endpoint A and B Arrange the data in endpoint A such that DATA is sent to endpoint B after sending SHUTDOWN message.Also in endpoint B there is outstanding DATA for which SACK has not come from endpoint A. EXPECTED MESSAGE SEQUENCE : Endpoint A Endpoint B ULP (Established) (Established ) <-------- Send <---------------- DATA Don't send SACK SHUTDOWN ----------------> Shutdown Receive State <---------------- DATA (Retransmission) DATA ----------------> Discard the data chunks No SACK No data Delivery to ULP SACK ----------------> <---------------- SHUTDOWN-ACK SHUTDOWN COMPLETE -----------------> Communication Lost --------> TEST DESCRIPTION: 1. Try to terminate an association by sending SHUTDOWN message from endpoint A. After sending the SHUTDOWN message send the DATA chunks. Record the message sequence using an emulator. 2. Check A: Data chunks are ignored in this case. 3. Check B: Endpoint B remains in the Shutdown Receive state. Sunil, Sandeep,Kuleep,Ashok , Hughes Software Systems [Page 58] Internet Draft Conformance Test For SCTP Feb 2001 2.10 SHUTDOWN from peer in Shutdown receive state TEST NUMBER : 2.10 Reference: SCTP RFC 2960 Clause 9.2 TITLE : Termination SUBTITLE: SHUTDOWN message from peer in Shutdown receive state PURPOSE: To verify that SHUTDOWN message received for peer in Shutdown receive state is discarded. PRE-TEST CONDITIONS:Association is established between endpoint A and B Arrange the data in endpoint A such that it sends SHUTDOWN message to endpoint A. EXPECTED MESSAGE SEQUENCE : Endpoint A Endpoint B ULP (Established) (Established) <-------- send <---------------- DATA Don't send SACK SHUTDOWN ----------------> Shutdown receive state <---------------- DATA SHUTDOWN ----------------> Discard the message SACK ----------------> <---------------- SHUTDOWN-ACK TEST DESCRIPTION: 1. Attempt to terminate an association from endpoint A to endpoint B by sending SHUTDOWN. Send one more SHUTDOWN message to endpoint B from A before receiving SHUTDOWN-ACK message. 2. Check A: SHUTDOWN message is discarded. 3. Check B: Current state is not disturbed. Sunil, Sandeep,Kuleep,Ashok , Hughes Software Systems [Page 59] Internet Draft Conformance Test For SCTP Feb 2001 2.11 T2-Shutdown timer expires for SHUTDOWN-ACK message TEST NUMBER : 2.11 Reference: SCTP RFC 2960 Clause 9.2 TITLE : Termination SUBTITLE: T2-Shutdown timer expires for SHUTDOWN-ACK message. PURPOSE: To check that after expiry of T2-Shutdown timer, SHUTDOWN-ACK message is sent again. 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. EXPECTED MESSAGE SEQUENCE : Endpoint A Endpoint B ULP (Established) (Established) SHUTDOWN ----------------> <---------------- SHUTDOWN-ACK | T2 Shutdown | Timer | <---------------- SHUTDOWN-ACK TEST DESCRIPTION: 1. Try to terminate an association between endpoint A and endpoint B by sending SHUTDOWN message from endpoint A. SHUTDOWN-ACK will be sent from the endpoint A. Don't send SHUTDOWN COMPLETE message from endpoint A. 2. Check A: After expiry of T2-Shutdown timer, SHUTDOWN-ACK message is received again at endpoint A. 3. Repeat the test case if endpoint A is multihomed. In this case SHUTDOWN-ACK message will be retransmitted to the alternate address. Sunil, Sandeep,Kuleep,Ashok , Hughes Software Systems [Page 60] Internet Draft Conformance Test For SCTP Feb 2001 2.12 ASSOCIATION.MAX.RETRANS tries exceeds for SHUTDOWN-ACK message TEST NUMBER : 2.12 Reference: SCTP RFC 2960 Clause 9.2 TITLE : Termination SUBTITLE :ASSOCIATION.MAX.RETRANS tries exceeds for SHUTDOWN-ACK message PURPOSE: To verify that if SHUTDOWN-ACK is retransmitted for ASSOCIATION.MAX.RETRANS then association is removed. PRE-TEST CONDITIONS:Association is established between endpoint A and B.Arrange the data in Endpoint A such that in response to SHUTDOWN-ACK, no SHUTDOWN COMPLETE message is sent. Let the ASSOCIATION.MAX.RETRANS is x. EXPECTED MESSAGE SEQUENCE : Endpoint A Endpoint B ULP (Established) (Established) SHUTDOWN ----------------> <--------------- SHUTDOWN-ACK | | T2-Shutdown timer | <---------------- SHUTDOWN-ACK | | T2-Shutdown timer | <---------------- SHUTDOWN-ACK . Retransmit . SHUTDOWN-ACK . x times ASSOCIATION.MAX.RETRANS Counter exceeds. Close the association Communication Lost -------> TEST DESCRIPTION: 1. Try to terminate the association between endpoint A and B by sending SHUTDOWN message from endpoint A. SHUTDOWN-ACK comes from endpoint B Don't send SHUTDOWN COMPLETE message from endpoint A. 2. Check B: SHUTDOWN-ACK will be retransmitted after T2-Shutdown timer. Again don't send SHUTDOWN COMPLETE message from endpoint A. 3. Check A: If SHUTDOWN-ACK message is transmitted for ASSOCIATION.MAX.RETRANS times without getting an SHUTDOWN COMPLETE, association is closed and upper layers are reported of this. Note: Value of the T2-Shutdown timer will increase after every retransmission. Sunil, Sandeep,Kuleep,Ashok , Hughes Software Systems [Page 61] Internet Draft Conformance Test For SCTP Feb 2001 2.13 Receiving SHUTDOWN COMPLETE message in response to SHUTDOWN-ACK message TEST NUMBER : 2.13 Reference: SCTP RFC 2960 Clause 9.2 TITLE : Termination SUBTITLE:Receiving SHUTDOWN COMPLETE message in response to SHUTDOWN- ACK message. PURPOSE:To check that SHUTDOWN COMPLETE message is accepted in Shutdown Ack Sent state and association is terminated. PRE-TEST CONDITION:Association is established between endpoint A and B. Arrange the data in endpoint A such that SHUTDOWN COMPLETE is sent in response to SHUTDOWN-ACK message. EXPECTED MESSAGE SEQUENCE : Endpoint A Endpoint B ULP (Established) (Established) SHUTDOWN ----------------> <--------------- SHUTDOWN-ACK SHUTDOWN COMPLETE ----------------> Remove the association Communication down ------> TEST DESCRIPTION: 1. Try to terminate association between endpoint A and B by sending SHUTDOWN message from endpoint A. SHUTDOWN-ACK message will be received at endpoint A. Send SHUTDOWN COMPLETE message from endpoint A. 2. Check A: SHUTDOWN COMPLETE message is received at endpoint A. 3. Check B: Association is removed and endpoint B enters closed state. 4. Repeat the above test case if T bit in SHUTDOWN COMPLETE message is set to 1 and verification tag is equal to that of peer. Sunil, Sandeep,Kuleep,Ashok , Hughes Software Systems [Page 62] Internet Draft Conformance Test For SCTP Feb 2001 3 Invalid Message Handling 3.1Invalid INIT Message with message length < length of all mandatory parameters TEST NUMBER : 3.1 Reference: SCTP RFC 2960 Clause 5.1 TITLE : Invalid Message Handling SUBTITLE: Invalid INIT Message with message length < length of all mandatory parameters PURPOSE:To check the action of the system on reception of invalid INIT message. PRE-TEST CONDITIONS: Association is not established between endpoint A and B. Arrange the data in endpoint A such that INIT message is sent to endpoint B with message length less than the length of all mandatory parameters. EXPECTED MESSAGE SEQUENCE : Endpoint A Endpoint B (Closed) (Closed) a) INIT ----------------> (message length < length of all mandatory parameters)