Internet DRAFT - draft-hss-conformance-test-sctp
draft-hss-conformance-test-sctp
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
<draft-hss-conformance-test-sctp-00.txt>
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<Z.
EXPECTED MESSAGE SEQUENCE :
Endpoint A Endpoint B ULP
(Closed) (Closed)
INIT ----------------> 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<Z.
EXPECTED MESSAGE SEQUENCE :
Endpoint A Endpoint B ULP
(Closed) (Closed)
<------- Associate
<--------------- INIT
(OS = Z, MIS = Y)
INIT_ACK ---------------->
(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)
<---------------- ABORT
(With cause of ABORT)
b)
INIT (OS = 0) ---------------->
<---------------- ABORT
c)
INIT (MIS = 0) ---------------->
<---------------- ABORT
d)
INIT(A_rwnd = 0) ---------------->
<---------------- ABORT
OS= Outbound Stream
MIS= Minimum Inbound Stream
Sunil, Sandeep,Kuleep,Ashok , Hughes Software Systems [Page 63]
Internet Draft Conformance Test For SCTP Feb 2001
TEST DESCRIPTION:
1. Attempt to make an association from endpoint A to endpoint B. Send
INIT message with message length <length of all mandatory
parameters. Record the message sequence using a signal emulator.
2. Check A: INIT message is responded with ABORT including cause of
abort.
3. Check B: Verification_Tag field in the common header of Abort is
equal to the initiate tag value of peer received in INIT message.
4. Check C: Was the message sequence as above.
5. Repeat the above test with value of Outbound stream NULL in INIT
message. It will be responded with ABORT.
6. Repeat the above test with value of Inbound stream NULL in INIT
message. It will be responded with ABORT.
Repeat the above test with value of a_rwnd NULL in INIT message. It
will be responded with ABORT.
Sunil, Sandeep,Kuleep,Ashok , Hughes Software Systems [Page 64]
Internet Draft Conformance Test For SCTP Feb 2001
3.2 INIT-ACK Message with mandatory parameter missing
TEST NUMBER : 3.2
Reference: SCTP RFC 2960 Clause 5.1
TITLE : Invalid Message handling
SUBTITLE: INIT-ACK Message with mandatory parameter missing
PURPOSE: To check the action of the system on reception of invalid
INIT-ACK message.
PRE-TEST CONDITIONS:Association is not established between endpoint and
B.Arrange the data in endpoint A such that INIT-ACK with message length
less than length of mandatory parameters.
EXPECTED MESSAGE SEQUENCE :
Endpoint A Endpoint B ULP
(Closed) (Closed)<-------- Associate
<---------------- INIT
a)
INIT-ACK ---------------->
(message length < length of
all mandatory parameters)
<---------------- ABORT(with cause of abort)
b)
INIT-ACK (OS= 0) ---------------->
<--------------- ABORT
c)
INIT-ACK(MIS= 0) ---------------->
<---------------- ABORT
d)
INIT-ACK(a_rwnd= 0) ---------------->
<---------------- ABORT
TEST DESCRIPTION:
1. Attempt to initiate an association from endpoint B to A. Send
INIT-ACK message, in response to INIT message, with message length
less than length of all mandatory parameters.
Record the message sequence using a signal emulator.
2. Check A: INIT-ACK message is responded with ABORT including cause of
abort.
3. Check B: Verification_Tag field in the common header of Abort is
equal to the initiate tag value of peer received in INIT-ACK.
4. Repeat the above test with value of Outbound stream NULL in INIT-ACK
message. ABORT message will be sent in response to INIT-ACK.
5. Repeat the above test with value of Inbound stream NULL in INIT-ACK
message. ABORT message will be sent in response to INIT-ACK.
6. Repeat the above test with value of a_rwnd NULL in INIT-ACK message.
ABORT message will be sent in response to INIT-ACK.
Sunil, Sandeep,Kuleep,Ashok , Hughes Software Systems [Page 65]
Internet Draft Conformance Test For SCTP Feb 2001
3.3 Invalid Verification Tag field in a message
TEST NUMBER : 3.3
Reference: SCTP RFC 2960 Clause 8.5
TITLE : Invalid Message Handling
SUBTITLE: Invalid Verification Tag field in a message
PURPOSE: To check the action of the system on reception of invalid
verification tag in a message.
PRE-TEST CONDITIONS: Association is not established between endpoint
A an B. Arrange the data in endpoint A such that COOKIE-ECHO message
with a different verification tag (Different from what received in
INIT-ACK) is sent in response to INIT-ACK.
EXPECTED MESSAGE SEQUENCE :
Endpoint A Endpoint B ULP
(Closed) (closed)
a)
INIT ---------------->
<---------------- INIT_ACK
COOKIE-ECHO ----------------> Discard the message
(With verification tag
different from Init tag
received in INIT-ACK)
b) <------- Associate
<---------------- INIT(Start T1-Init timer)
INIT-ACK -----------------> Discard the message
(With verification tag different
from received in INIT-ACK)
<---------------- T1-Init timer expires
INIT
Sunil, Sandeep,Kuleep,Ashok , Hughes Software Systems [Page 66]
Internet Draft Conformance Test For SCTP Feb 2001
c)
<-------- Associate
<---------------- INIT
INIT-ACK ----------------->
<---------------- COOKIE-ECHO
COOKIE-ACK -----------------> Discard the message
(With verification tag different T1-Init timerfrom expires
received in INIT-ACK)
<----------------- COOKIE-ECHO
For the following cases it is assumed that association exists between
endpoint A and B.
Endpoint A Endpoint B
(Established) (Established)
d)
DATA ----------------> Discard the message
(With verification tag different SACK is not sent
from received in INIT-ACK)
e)
<--------- Send
<------------------ DATA
SACK ------------------> |Discard the message
(With verification tag different |T3-rxt timer
from received in INIT-ACK) |expires
<------------------ DATA
f)
HEARTBEAT ----------------> Discard the message
(With verification tag different HEARTBEAT-ACK is not sent
from received in INIT-ACK)
g)
<--------- Request
Heartbeat
<----------------- HEARTBEAT
HEARTBEAT-ACK -----------------> Discard the message
(With verification tag different Retrans.Count counter is
from received in INIT-ACK) not reset
Sunil, Sandeep,Kuleep,Ashok , Hughes Software Systems [Page 67]
Internet Draft Conformance Test For SCTP Feb 2001
TEST DESCRIPTION:
1. Attempt to initiate an association from endpoint A to B. Send
COOKIE-ECHO message (in response to INIT-ACK) with verification
tag value different from received in INIT-ACK.
Record the message sequence using a signal emulator.
2. Check A: COOKIE-ECHO message is discarded.
3. Check B: Was the message sequence as above.
4. Repeat the test with INIT-ACK, COOKIE-ACK, DATA, HEARTBEAT,
HEARTBEAT-ACK, SACK, ERROR chunks.
Note:Value of T3-rxt timer will be calculated after every
retransmission.
Sunil, Sandeep,Kuleep,Ashok , Hughes Software Systems [Page 68]
Internet Draft Conformance Test For SCTP Feb 2001
3.4 Invalid Adler-32 Checksum in SCTP datagram
TEST NUMBER : 3.4
Reference: SCTP RFC 2960 Clause 6.8
TITLE : Invalid Message Handling
SUBTITLE: Invalid Adler-32 Checksum in SCTP datagram.
PURPOSE: To check the action of the system on reception of invalid
message.
PRE-TEST CONDITIONS: Association is not established between endpoint
A and B. Arrange data in endpoint A such that it sends INIT message to
endpoint B with wrong Adler-32 checksum.
EXPECTED MESSAGE SEQUENCE :
Endpoint A Endpoint B ULP
(Closed) (Closed)
a)
INIT ----------------> Discard the message
(Wrong Adler-32 checksm)
b) <------- Associate
<---------------- INIT(Start T1-Init timer)
INIT-ACK ----------------> Discard the message
(Wrong Adler-32 Checksum) T1-Init timer expires
<--------------- INIT
c)
INIT ---------------->
<---------------- INIT-ACK
COOKIE-ECHO ----------------> Discard the message
(Wrong Adler-32 Checksum)
d) <------- Associate
<---------------- INIT
INIT-ACK ----------------> COOKIE-ECHO(Start T1-Init timer)
COOKIE-ACK ----------------> Discard the message
(Wrong Adler-32 Checksum) T1-Init timer expires
<---------------- COOKIE-ECHO
e)
INIT ----------------->
<---------------- INIT-ACK
COOKIE-ECHO ----------------->
<---------------- COOKIE-ACK
DATA -----------------> Discard the DATA
(Wrong Adler-32 Checksum) SACK is not sent
Sunil, Sandeep,Kuleep,Ashok , Hughes Software Systems [Page 69]
Internet Draft Conformance Test For SCTP Feb 2001
f)
INIT ----------------->
<---------------- INIT-ACK
COOKIE-ECHO ----------------->
<----------------- COOKIE-ACK
<-------- Send
<----------------- DATA
SACK T3-rxt timer
(Wrong Adler-32 Checksum) -----------------> Discard SACK expires
DATA
For the following cases, precondition is that endpoint A and B are
having an association between them
Endpoint A Endpoint B ULP
(Established) (Established)
g)
HEARTBEAT -----------------> Discard HEARBEAT
(Wrong Adler-32 Checksum) HEARTBEAT-ACK is not sent
h)
<-------- Heartbeat Request
<----------------- HEARTBEAT
HEARTBEAT-ACK -----------------> HEATBEAT-ACK is discarded
(Wrong Adler-32 Checksum) Retrans.Count counter is not reset
i)
SHUTDOWN -----------------> Discard the message
(Wrong Adler-32 Checksum) <--------- Send
<----------------- DATA
j)
<--------- Terminate
<----------------- SHUTDOWN
SHUTDOWN-ACK ------------------> Discard the message
(Wrong Adler-32 Checksum)
T2-Shutdown timer expires
<------------------
SHUTDOWN
k)
ABORT ------------------> Discard ABORT
(Wrong Adler-32 Checksum) <---------- Send
<----------------- DATA
Sunil, Sandeep,Kuleep,Ashok , Hughes Software Systems [Page 70]
Internet Draft Conformance Test For SCTP Feb 2001
TEST DESCRIPTION:
1. Attempt to initiate an association from endpoint A to B. Send INIT
message with wrong Adler-32 checksum.
Record the message sequence using a signal emulator.
2. Check A: INIT message is discarded and no other actions are taken.
3. Check B: Was the message sequence as above.
4. Repeat the test if other messages like INIT-ACK, COOKIE-ECHO,
COOKIE-ACK, SHUTDOWN, SHUTDOWN-ACK, ERROR, ABORT, SACK, HEARTBEAT,
HEARTBEAT-ACK and DATA message are received with wrong Adler-32
checksum.
Note:Value of T3-rxt timer will be calculated after every
retransmission.
Sunil, Sandeep,Kuleep,Ashok , Hughes Software Systems [Page 71]
Internet Draft Conformance Test For SCTP Feb 2001
3.5 Invalid COOKIE-ECHO message with wrong MD5 signature
TEST NUMBER : 3.5
Reference: SCTP RFC 2960 Clause 5.1.5 (1)&(2)
TITLE : Invalid Message Handling
SUBTITLE: Invalid COOKIE-ECHO message.
PURPOSE: To check the action of the system on reception of invalid
COOKIE-ECHO message.
PRE-TEST CONDITIONS: Association is not established between endpoint A
and B. Arrange the data in endpoint A such that COOKIE-ECHO message is
sent with MD5 signature different from received cookie in INIT-ACK.
EXPECTED MESSAGE SEQUENCE :
Endpoint A Endpoint B
(Closed) (Closed)
INIT ----------------->
<----------------- INIT_ACK
(With Cookie)
COOKIE-ECHO ------------------> Discard the message
(wrong MD5 signature)
COOKIE-ACK will not be sent
TEST DESCRIPTION:
1. Try to initiate an association from endpoint A to B.Send COOKIE-ECHO
message containing different MD5 signature from the one received in
INIT-ACK.
Record the message sequence using a signal emulator.
2. Check A: COOKIE-ECHO message is discarded
3. Check B: Association remains in closed state.
4. Check C: COOKIE-ACK will not be sent from endpoint B.
Sunil, Sandeep,Kuleep,Ashok , Hughes Software Systems [Page 72]
Internet Draft Conformance Test For SCTP Feb 2001
3.6 Invalid COOKIE-ECHO message with life time expired
TEST NUMBER : 3.6
Reference: SCTP RFC 2960 Clause 5.1.5 (3)
TITLE : Invalid Message Handling
SUBTITLE: Invalid COOKIE-ECHO message
PURPOSE: To check the action of the system on reception of invalid
COOKIE-ECHO message.
PRE-TEST CONDITIONS: Association is not established between endpoint A
and B. Arrange the data in endpoint A such that COOKIE-ECHO message is
sent after life time of the received cookie in INIT-ACK message has
expired. Also let the life time of COOKIE-ECHO sent by B is x sec.
EXPECTED MESSAGE SEQUENCE :
Endpoint A Endpoint B
(Closed) (Closed)
INIT ----------------->
Time > x sec <----------------- INIT_ACK
(With Cookie having life time x sec.)
COOKIE-ECHO -----------------> Discard the message
(sent after x sec of
receiving INIT-ACK)
<---------------- OPERATIONAL ERROR
(Cause= Stale Cookie Error)
TEST DESCRIPTION:
1. Attempt to initiate an association between endpoint A and B. Send
COOKIE-ECHO message after the life time received in INIT-ACK has
expired.
Record the message sequence using a signal emulator.
2. Check A: COOKIE-ECHO message is discarded and ERROR message with
cause Stale Cookie Error is sent.
3. Check B: In the ERROR message, Measure of staleness is either set to
0 or to the time past the cookie has expired.
4. Check C: Association remains in closed state.
Sunil, Sandeep,Kuleep,Ashok , Hughes Software Systems [Page 73]
Internet Draft Conformance Test For SCTP Feb 2001
3.7 Invalid ABORT message
TEST NUMBER : 3.7
Reference: SCTP RFC 2960 Clause 8.5.1 (b)
TITLE : Invalid Message Handling
SUBTITLE: Invalid ABORT message.
PURPOSE:To check the action of the system on reception of invalid ABORT
message.
PRE-TEST CONDITION:Association is established between endpoint A and B.
Arrange the data in endpoint A such that ABORT message is sent to
endpoint B with incorrect verification tag.
EXPECTED MESSAGE SEQUENCE :
Endpoint A Endpoint B ULP
(Established) (Established)
ABORT ----------------> Message is discarded
(Incorrect
Verification Tag) <-------- Send
<---------------- DATA
TEST DESCRIPTION:
1. Try to terminate an association between endpoint A and endpoint B by
sending ABORT message. In the ABORT message verification tag value
should match neither its own Init-Tag nor of its peer.
2. Check A: ABORT message is discarded and no actions are taken.
Sunil, Sandeep,Kuleep,Ashok , Hughes Software Systems [Page 74]
Internet Draft Conformance Test For SCTP Feb 2001
3.8 Chunk length greater than packet length
TEST NUMBER : 3.8
Reference: SCTP RFC 2960
TITLE : Invalid Message Handling
SUBTITLE: Chunk length greater than packet length
PURPOSE:To verify that if the packet length received is smaller than
the Chunk length defined then that packet is discarded.
PRE-TEST CONDITIONS: Association is not established between endpoint A
and B. Arrange the data in endpoint A such that chunk length is greater
than the length of the message being sent to other endpoint.
EXPECTED MESSAGE SEQUENCE :
Endpoint A Endpoint B
(Closed) (Closed)
INIT -----------------> Discard the message
(Chunk Length > packet length)
TEST DESCRIPTION:
1. Attempt to make an association from endpoint A to endpoint B. Send
INIT message with chunk length greater than packet length.
Record the message sequence using a signal emulator.
2. Check A: INIT message is discarded.
3. Repeat the above test cases with other messages like INIT-ACK, SACK,
COOKIE-ECHO, COOKIE-ACK, SHUTDOWN, SHUTDOWN-ACK, HEARTBEAT,
HEARTBEAT-ACK, ABORT, DATA and ERROR.
Sunil, Sandeep,Kuleep,Ashok , Hughes Software Systems [Page 75]
Internet Draft Conformance Test For SCTP Feb 2001
3.9 Invalid SHUTDOWN-ACK message
TEST NUMBER : 3.9
Reference: SCTP RFC 2960 8.5.1 (c)
TITLE : Invalid Message Handling
SUBTITLE: Invalid SHUTDOWN-ACK message
PURPOSE: To check the action of the system on reception of invalid
SHUTDOWN-ACK message.
PRE-TEST CONDITIONS:Association is established between endpoint A and B
Arrange the data in endpoint A such that SHUTDOWN-ACK message with
invalid verification tag is sent to endpoint B in Shutdown Sent state.
EXPECTED MESSAGE SEQUENCE :
Endpoint A Endpoint B ULP
(Established) (Established)
<------- Terminate
<----------------- SHUTDOWN
SHUTDOWN-ACK -----------------> Ignore the message
(Invalid verification tag)
DATA ----------------->
<----------------- SACK
TEST DESCRIPTION:
1. Try to send SHUTDOWN-ACK message from endpoint B with verification
tag neither its own nor of its peer while the other end is in
Shutdown Sent state.
2. Check A: SHUTDOWN-ACK message is ignored.
3. Check B: Current state of endpoint B is not disturbed.
Sunil, Sandeep,Kuleep,Ashok , Hughes Software Systems [Page 76]
Internet Draft Conformance Test For SCTP Feb 2001
3.10 Invalid SHUTDOWN COMPLETE message
TEST NUMBER : 3.10
Reference: SCTP RFC 2960 8.5.1 (c)
TITLE : Invalid Message Handling
SUBTITLE: Invalid SHUTDOWN COMPLETE message
PURPOSE: To check the action of the system on reception of invalid
SHUTDOWN COMPLETE message.
PRE-TEST CONDITIONS:Association is established between endpoint A and B
Arrange the data in endpoint A such that SHUTDOWN COMPLETE message with
invalid verification tag is sent to endpoint B in Shutdown Ack Sent
state.
EXPECTED MESSAGE SEQUENCE :
Endpoint A Endpoint B ULP
(Established) (Established)
SHUTDOWN ---------------->
<---------------- SHUTDOWN-ACK
SHUTDOWN COMPLETE ----------------> Ignore the message
(Invalid verification tag)
SHUTDOWN COMPLETE ---------------->
Communication Down -------->
TEST DESCRIPTION:
1. Try to send SHUTDOWN COMPLETE message from endpoint B with
verification tag neither its own tag nor of its peer while the other
end is in Shutdown Ack Sent state.
2. Check A: SHUTDOWN COMPLETE message is ignored.
3. Check B: Current state of endpoint B is not disturbed.
4. Repeat the above test case if verification tag in the SHUTDOWN
COMPLETE message matches the peer verification tag but T bit is not
set to 1.Response should be same.
Sunil, Sandeep,Kuleep,Ashok , Hughes Software Systems [Page 77]
Internet Draft Conformance Test For SCTP Feb 2001
4 Duplicate Message
4.1 INIT Collision
TEST NUMBER : 4.1
Reference: SCTP RFC 2960 Clause 5.2.1
TITLE : Duplicate Message
SUBTITLE : INIT Collision
PURPOSE: To check the action of the system on reception of duplicate
INIT message.
PRE-TEST CONDITIONS: Association is not established between endpoint A
and B. Arrange the data in endpoint A and endpoint B such that INIT
message is sent from both ends simultaneously.
EXPECTED MESSAGE SEQUENCE :
Endpoint A Endpoint B ULP
(Closed) (Closed) <-------Associate
<----------------- INIT
Start T1-Init Timer
INIT ----------------->
<----------------- INIT-ACK
T1-Init timer expires
<----------------- INIT
TEST DESCRIPTION:
1. Attempt to make an association between endpoint B and A by sending
associate primitive from ULP. INIT will be sent to endpoint A. Send
INIT message in response to INIT.
2. Check A: INIT-ACK message is received in response to INIT message.
3. Check B: In the INIT-ACK message, Verification Tag field of common
header is set to the tag value received from the INIT and Initiate
Tag set to its own value (same tag used by it while sending INIT
message).
4. Check C: T1-Init timer is left running after sending INIT-ACK
message in response to duplicate INIT and endpoint will remain in
the Cookie_Wait state.
5. Repeat the above test case if INIT is sent by endpoint A after
receiving COOKIE-ECHO from the other end. In this case Tie Tag
filed of Cookie parameter in INIT-ACK message should be populated
with tag information of endpoint A and B.
Sunil, Sandeep,Kuleep,Ashok , Hughes Software Systems [Page 78]
Internet Draft Conformance Test For SCTP Feb 2001
4.2 Duplicate INIT Message
4.2.1 Duplicate INIT Message in Established state
TEST NUMBER : 4.2.1
Reference: SCTP RFC 2960 Clause 5.2.2
TITLE : Duplicate Message
SUBTITLE: Duplicate INIT Message in established state
PURPOSE: To check the action of the system on reception of duplicate
INIT message.
PRE-TEST CONDITIONS: Arrange the data in Endpoint A such that an INIT
message is sent to Endpoint B when association is established between
endpoint A and endpoint B. Also source IP address and destination IP
address are same as in the established association.
EXPECTED MESSAGE SEQUENCE :
Endpoint A (Established) Endpoint B (Established)
INIT ----------------->
Note Init-Tag and <---------------- INIT-ACK
Verification Tag
DATA ----------------->
<----------------- SACK
TEST DESCRIPTION:
1. Attempt to make an association from endpoint A to endpoint B when
both endpoints have an association between them.
2. Check A: INIT-ACK message is sent in response to INIT message.
3. Check B: In the INIT-ACK message, verification tag field is set to
the peer's new tag value received in the duplicate INIT message.
4. Check C: In the INIT-ACK message, Init Tag is not equal to the Init
Tag in the existing association and it is a new value generated
randomly.
5. Check D: Cookie, sent in the INIT-ACK message,is the newly generated
Cookie with the information in the duplicate INIT message with local
tie tag and peer tie tag equal to current verification tag and peer
verification tag
6. Check :Other parameters in the INIT-ACK are copied from the existing
association like number of OS, a_rwnd.
7. Check F:After sending INIT-ACK message,no other action is taken i.e.
existing association is not disturbed.
8. Repeat the above test case if INIT message is sent to endpoint B
after receiving SHUTDOWN message from endpoint B. response should be
same.
9. Repeat the above test case if INIT message is sent to endpoint B in
Shutdown pending state and Shutdown receive state.Response should be
same.
Sunil, Sandeep,Kuleep,Ashok , Hughes Software Systems [Page 79]
Internet Draft Conformance Test For SCTP Feb 2001
4.2.2 Duplicate INIT message in Shutdown-Ack sent state
TEST NUMBER : 4.2.2
Reference: SCTP RFC 2960 Clause 9.2
TITLE : Duplicate Message
SUBTITLE : Duplicate INIT message in Shutdown-Ack sent state
PURPOSE: To check the action of the system on reception of duplicate
INIT message in Shutdown-Ack Sent state
PRE-TEST CONDITIONS:Association is established between endpoint A and B
Arrange the data in Endpoint A such that after receiving SHUTDOWN-ACK
message,INIT message is sent to endpoint B.Let the T2-Shutdown timer at
endpoint B is x sec.
EXPECTED MESSAGE SEQUENCE :
Endpoint A Endpoint B ULP
(Established) (Established)
SHUTDOWN ----------------->
<---------------- SHUTDOWN-ACK
(Start T2-Shutdown timer)
INIT ----------------->
Discard INIT message
<---------------- SHUTDOWN-ACK
(Restart T2-Shutdown Timer)
Don't send SHUTDOWN COMPLETE |
|
| x sec.
|
<----------------- SHUTDOWN-ACK
TEST DESCRIPTION:
1. Try to terminate the association between endpoint A and B by sending
SHUTDOWN message from endpoint A. After Receiving SHUTDOWN-ACK
message, send INIT message with same transport addresses with which
association is established from the endpoint A.
2. Check A: INIT message is discarded and SHUTDOWN-ACK message is
transmitted again.
3. Check B: T2-Shutdown Timer is restarted after sending SHUTDOWN-ACK
again.
Sunil, Sandeep,Kuleep,Ashok , Hughes Software Systems [Page 80]
Internet Draft Conformance Test For SCTP Feb 2001
4.3 Duplicate INIT-ACK in COOKIE-ECHO Sent state
TEST NUMBER : 4.3
Reference: SCTP RFC 2960 Clause 5.2.3
TITLE : Duplicate Message
SUBTITLE : Duplicate INIT-ACK in Cookie-Sent state
PURPOSE: To check the action of the system on reception of duplicate
INIT-ACK message.
PRE-TEST CONDITIONS: Association is not established between endpoint
A and B. Arrange the data in endpoint A such that INIT-ACK message is
sent to endpoint B after receiving COOKIE-ECHO message.
EXPECTED MESSAGE SEQUENCE :
Endpoint A Endpoint B ULP
(Closed) (Closed) <--------Associate
<---------------- INIT
INIT-ACK ----------------->
<----------------- COOKIE-ECHO
INIT-ACK ------------------>
Discard INIT-ACK
COOKIE-ACK ------------------>
Communication up ------->
DATA ------------------>
<------------------ SACK
TEST DESCRIPTION:
1. Attempt to make an association from endpoint B to endpoint A. Send
INIT-ACK message after receiving COOKIE-ECHO message.
2. Check A:INIT-ACK message received in Cookie-Sent state is discarded.
3. Check B:Current state is not disturbed and an association can be
completed between A and B.
4. Repeat the above test case when INIT-ACK is received in other states
like Closed, Established, Shutdown Sent, Shutdown pending, Shutdown-
Ack sent and Shutdown Receive. In all the cases INIT-ACK should be
ignored.
Sunil, Sandeep,Kuleep,Ashok , Hughes Software Systems [Page 81]
Internet Draft Conformance Test For SCTP Feb 2001
4.4 Duplicate COOKIE-ACK in established state
TEST NUMBER : 4.4
Reference: SCTP RFC 2960 Clause 5.2.5
TITLE : Duplicate message
SUBTITLE : Duplicate COOKIE-ACK in established state
PURPOSE: To check the action of the system on reception of duplicate
COOKIE-ACK message.
PRE-TEST CONDITIONS: Association is not established between endpoint A
and B. Arrange the data in endpoint A such that COOKIE-ACK message is
sent to endpoint B after association is established between endpoint A
and endpoint B.
EXPECTED MESSAGE SEQUENCE :
Endpoint A Endpoint B ULP
(Closed) (Closed) <-------- Associate
<---------------- INIT
INIT-ACK ----------------->
<----------------- COOKIE-ECHO
COOKIE-ACK ----------------->
Communication Up --------->
COOKIE-ACK ----------------->
Discard COOKIE-ACK
DATA ----------------->
<---------------- SACK
TEST DESCRIPTION:
1. Attempt to make an association from endpoint A to endpoint B. Send
COOKIE-ACK message after establishing an association between them.
2. Check A:COOKIE-ACK message received in Established state is
discarded without affecting current association.
3. Check B: Current association is not disturbed.
4. Repeat the above test case for other states like Closed, Cookie_Wait
,Shutdown pending, Shutdown sent, Shutdown receive and Shutdown-Ack
sent state. COOKIE-ACK will be discarded in all cases.
5. Repeat these test cases with ERROR message with cause Stale Cookie
Error instead of COOKIE-ACK message. This will also be discarded.
Sunil, Sandeep,Kuleep,Ashok , Hughes Software Systems [Page 82]
Internet Draft Conformance Test For SCTP Feb 2001
4.5 SHUTDOWN Collision
TEST NUMBER : 4.5
Reference: SCTP RFC 2960 Clause 9.2
TITLE : Duplicate Message
SUBTITLE : SHUTDOWN Collision
PURPOSE: To check the action of the system on reception of SHUTDOWN
message from both ends simultaneously.
PRE-TEST CONDITIONS:Association is established between endpoint A and B
.Arrange the data in endpoint A such that SHUTDOWN message is sent
after receiving SHUTDOWN message from the other end.
EXPECTED MESSAGE SEQUENCE :
Endpoint A Endpoint B ULP
(Established) (Established)
<-------- Terminate
<---------------- SHUTDOWN
(Start T2-Shutdown timer)
SHUTDOWN ---------------->
<---------------- SHUTDOWN-ACK
(Restart T2-Shutdown Timer)
TEST DESCRIPTION:
1. Try to terminate the association between endpoint A and B by sending
SHUTDOWN message.Also send SHUTDOWN message from the other endpoint.
2. Check A: SHUTDOWN message is responded with SHUTDOWN-ACK
3. Check B: T2-Shutdown timer is restarted.
Sunil, Sandeep,Kuleep,Ashok , Hughes Software Systems [Page 83]
Internet Draft Conformance Test For SCTP Feb 2001
4.6 Duplicate Shutdown Message
4.6.1 Duplicate SHUTDOWN message in Cookie Wait state
TEST NUMBER : 4.6.1
Reference: SCTP RFC 2960 Clause 9.2
TITLE : Duplicate Message
SUBTITLE : Duplicate SHUTDOWN message in Cookie Wait state
PURPOSE: To check the action of the system on reception of duplicate
SHUTDOWN message.
PRE-TEST CONDITIONS: Association is not established between endpoint A
and B.Arrange the data in endpoint A such that SHUTDOWN message is sent
to endpoint B after receiving INIT message from it.
EXPECTED MESSAGE SEQUENCE :
Endpoint A Endpoint B ULP
(Closed) (Closed)
<-------- Associate
<---------------- INIT
(Start T1-Init timer)
SHUTDOWN ----------------->
Discard SHUTDOWN message
T1-Init timer expires
<---------------- INIT
TEST DESCRIPTION:
1. Try to create an association between endpoint A and B by sending
INIT message. Send SHUTDOWN message from the other endpoint.
Record the message sequence using an emulator.
2. Check A: SHUTDOWN message is discarded.
3. Check B: After expiry of T1-Init timer INIT message is transmitted
again.
4. Repeat the above test case when SHUTDOWN is received in other states
like Cookie Echoed state. Response will be the same as in the above
case.
Sunil, Sandeep,Kuleep,Ashok , Hughes Software Systems [Page 84]
Internet Draft Conformance Test For SCTP Feb 2001
4.6.2 Duplicate SHUTDOWN message in closed state
TEST NUMBER : 4.6.2
Reference: SCTP RFC 2960 Clause 9.2
TITLE : Duplicate Message
SUBTITLE : Duplicate SHUTDOWN message in Closed state
PURPOSE: To check the action of the system on reception of duplicate
SHUTDOWN message in closed state.
PRE-TEST CONDITIONS: Arrange the data in endpoint A such that SHUTDOWN
message is sent to endpoint B which is in closed state.
EXPECTED MESSAGE SEQUENCE :
Endpoint A Endpoint B
(Closed)
SHUTDOWN ---------------->
<---------------- ABORT
TEST DESCRIPTION:
1. Try to send SHUTDOWN message from one endpoint while the other end
is in closed state.
2. Check A: SHUTDOWN message is responded by ABORT message.
3. Check B: Verification tag field in ABORT message is set to
verification tag received in SHUTDOWN message.
Sunil, Sandeep,Kuleep,Ashok , Hughes Software Systems [Page 85]
Internet Draft Conformance Test For SCTP Feb 2001
4.6.3 Duplicate SHUTDOWN message in Shutdown Receive state
TEST NUMBER : 4.6.3
Reference: SCTP RFC 2960 Clause 9.2
TITLE : Duplicate Message
SUBTITLE : Duplicate SHUTDOWN message in Shutdown Receive state
PURPOSE: To check the action of the system on reception of duplicate
SHUTDOWN message in Shutdown receive state.
PRE-TEST CONDITIONS: Arrange the data in endpoint A such that SHUTDOWN
message is sent to endpoint B which is in established state.
EXPECTED MESSAGE SEQUENCE :
Endpoint A Endpoint B ULP
(Established) (Established)
<---------- send
<---------------- DATA
SHUTDOWN ---------------->
<---------------- DATA(retransmission)
SHUTDOWN -----------------> ignore the SHUTDOWN
SACK ----------------->
<----------------- SHUTDOWN-ACK
Communication Lost ---------->
TEST DESCRIPTION:
1. Try to terminate the association between endpoint A and B by sending
SHUTDOWN message. While endpoint B is in Shutdown receive state,send
another SHUTDOWN from endpoint A.
Record the message sequence using an emulator.
2. Check A: SHUTDOWN message is ignored.
3. Check B: Current state of endpoint B is not disturbed.
Sunil, Sandeep,Kuleep,Ashok , Hughes Software Systems [Page 86]
Internet Draft Conformance Test For SCTP Feb 2001
4.6.4 Duplicate SHUTDOWN message in Shutdown Sent state
TEST NUMBER : 4.6.4
Reference: SCTP RFC 2960 Clause 9.2
TITLE : Duplicate Message
SUBTITLE : Duplicate SHUTDOWN message in Shutdown Sent state
PURPOSE: To check the action of the system on reception of duplicate
SHUTDOWN message in Shutdown sent state.
PRE-TEST CONDITIONS:Association is established between endpoint A and
B. Arrange the data in endpoint B such that terminate primitive is
received from ULP to terminate the association. Arrange data in
endpoint A such that SHUTDOWN message is sent to endpoint B.
EXPECTED MESSAGE SEQUENCE :
Endpoint A Endpoint B ULP
(Established) (Established)
<-------- Terminate
<---------------- SHUTDOWN
SHUTDOWN ---------------->
<---------------- SHUTDOWN-ACK
T2-Shutdown timer is restarted
|
|
| T2-Shutdown timer expires
|
|
<----------------- SHUTDOWN-ACK
TEST DESCRIPTION:
1. Try to terminate the association between endpoint A and B by sending
terminate primitive from ULP. While endpoint B is in Shutdown sent
state, send SHUTDOWN message from endpoint A.
2. Check A: SHUTDOWN-ACK message is sent in response to the SHUTDOWN
message.
3. Check B: T2-Shutdown timer is restarted.
Sunil, Sandeep,Kuleep,Ashok , Hughes Software Systems [Page 87]
Internet Draft Conformance Test For SCTP Feb 2001
4.7 Duplicate SHUTDOWN-ACK
4.7.1 SHUTDOWN-ACK in Cookie_Wait state
TEST NUMBER : 4.7.1
Reference: SCTP RFC 2960 Clause 8.5.1 (e)
TITLE : Duplicate Message
SUBTITLE: SHUTDOWN-ACK in Cookie_Wait state.
PURPOSE: To check the action of the system on reception of duplicate
SHUTDOWN-CK message.
PRE-TEST CONDITIONS: Association is not established between endpoint
A and B. Arranged the data in Endpoint A such that SHUTDOWN-ACK message
is sent to endpoint B after receiving INIT message.
EXPECTED MESSAGE SEQUENCE :
Endpoint A Endpoint B ULP
(Closed) (Closed)
<-------- Associate
<---------------- INIT
(Cookie_Wait State)
SHUTDOWN-ACK ----------------->
<---------------- SHUTDOWN COMPLETE
INIT-ACK ------------------>
<----------------- COOKIE-ECHO
COOKIE-ACK ------------------>
Communication Up -------->
DATA ------------------>
<----------------- SACK
TEST DESCRIPTION:
1. Try to send SHUTDOWN-ACK message with correct verification tag from
one endpoint while the other end is in Cookie_Wait state.
2. Check A: SHUTDOWN COMPLETE message is received with the verification
tag equal to the verification tag received in SHUTDOWN-ACK message
and T bit set to 1.
3. Check B: Current state of endpoint A is not disturbed.
4. Repeat the above test case if endpoint B is in Cookie Echoed state.
Response should be same.
Sunil, Sandeep,Kuleep,Ashok , Hughes Software Systems [Page 88]
Internet Draft Conformance Test For SCTP Feb 2001
4.7.2 SHUTDOWN-ACK in Established state
TEST NUMBER : 4.7.2
Reference: SCTP RFC 2960 Clause 8.5.1 (e)
TITLE : Duplicate Message
SUBTITLE: SHUTDOWN-ACK in Established state.
PURPOSE: To check the action of the system on reception of duplicate
SHUTDOWN-ACK message in Established state.
PRE-TEST CONDITIONS: Association is established between endpoint A and
B. Arranged the data in Endpoint A such that SHUTDOWN-ACK message is
sent to endpoint B with correct verification tag.
EXPECTED MESSAGE SEQUENCE :
Endpoint A Endpoint B ULP
(Established) (Established)
SHUTDOWN-ACK ---------------> Discard the message
<--------------- DATA
SACK ---------------->
TEST DESCRIPTION:
1. Try to send SHUTDOWN-ACK message with correct verification tag from
one endpoint while the other end is in stablished state.
2. Check A: The message is discarded as theend point has send SHUTDOWN
and as such not expecting SHUTDOWN-ACK.
Sunil, Sandeep,Kuleep,Ashok , Hughes Software Systems [Page 89]
Internet Draft Conformance Test For SCTP Feb 2001
4.7.3 SHUTDOWN-ACK in SHUTDOWN-ACK Sent state
TEST NUMBER : 4.7.3
Reference: SCTP RFC 2960 Clause 9.2
TITLE : Duplicate Message
SUBTITLE: SHUTDOWN-ACK in SHUTDOWN-ACK Sent state.
PURPOSE: To check the action of the system on reception of duplicate
SHUTDOWN-ACK message.
PRE-TEST CONDITIONS: Association is established between endpoint A and
B. Arranged the data in Endpoint A such that SHUTDOWN message is sent
to endpoint B. Also SHUTDOWN-ACK message is sent to endpoint B after
receiving SHUTDOWN-ACK message.
EXPECTED MESSAGE SEQUENCE :
Endpoint A Endpoint B
(Established) (Established)
SHUTDOWN ----------------->
<----------------- SHUTDOWN-ACK
SHUTDOWN-ACK ----------------->
<----------------- SHUTDOWN COMPLETE
Communication Down --------->
TEST DESCRIPTION:
1. Send SHUTDOWN message from endpoint A to B to terminate the
association. SHUTDOWN-ACK will be received. Send SHUTDOWN-ACK
message on receiving SHUTDOWN-ACK message.
2. Check A: SHUTDOWN COMPLETE message is received.
3. Check B: Association move to the closed state and communication down
indication is given to ULP.
Sunil, Sandeep,Kuleep,Ashok , Hughes Software Systems [Page 90]
Internet Draft Conformance Test For SCTP Feb 2001
4.8 Duplicate COOKIE-ECHO Message
4.8.1 Duplicate COOKIE-ECHO Message with invalid MAC
TEST NUMBER : 4.8.1
Reference: SCTP RFC 2960 Clause 5.2.4
TITLE : Duplicate COOKIE-ECHO Message
SUBTITLE : Duplicate COOKIE-ECHO Message with invalid MAC.
PURPOSE: To check the action of the system on reception of duplicate
COOKIE-ECHO with invalid MAC in established state.
PRE-TEST CONDITIONS: Association is established between endpoint A and
B. Arrange the data in endpoint A such that COOKIE-ECHO message with
invalid MAC is sent to B.
EXPECTED MESSAGE SEQUENCE :
Endpoint A Endpoint B
(Established) (Established)
COOKIE-ECHO ---------------> Discard the COOKIE-ECHO
(Invalid MAC)
DATA ---------------->
<---------------- SACK
TEST DESCRIPTION:
1. Try to send a message with invalid MAC in the Established state from
endpoint A to B.
2. Check A: COOKIE-ECHO message is discarded.
3. Check B: Existing association is not disturbed.
Sunil, Sandeep,Kuleep,Ashok , Hughes Software Systems [Page 91]
Internet Draft Conformance Test For SCTP Feb 2001
4.8.2 Duplicate COOKIE-ECHO Message with valid MAC but expired life
time.
TEST NUMBER : 4.8.2
Reference: SCTP RFC 2960 Clause 5.2.4
TITLE : Duplicate COOKIE-ECHO Message
SUBTITLE : Duplicate COOKIE-ECHO Message with valid MAC but expired
life time .
PURPOSE: To check the action of the system on reception of duplicate
COOKIE-ECHO with expired life time.
PRE-TEST CONDITIONS: Association is not established between endpoint A
and B. Let the life time of COOKIE-ECHO sent by B is x sec. Arrange the
data in endpoint A such that COOKIE-ECHO message with expired lifetime
is sent to B after establishing an association with a valid MAC and
verification tags in the cookie don't match current association's
verification tags.
EXPECTED MESSAGE SEQUENCE :
Endpoint A Endpoint B ULP
(Established) (Established)
INIT ----------------->
<----------------- INIT-ACK
(Cookie life time = x sec.)
COOKIE-ECHO ---------------->
COOKIE-ACK
Communication Up ---------->
COOKIE-ECHO ----------------->
(send after x
sec of receiving
INIT-ACK)
<----------------- ERROR
DATA ----------------->
<----------------- SACK
TEST DESCRIPTION:
1. Try to send a COOKIE-ECHO message with expired life time in the
Established state from endpoint A to B.
2. Check A: COOKIE-ECHO message is discarded and ERROR message with
"Stale cookie error" is received at endpoint A.
3. Check B: Existing association is not disturbed.
Sunil, Sandeep,Kuleep,Ashok , Hughes Software Systems [Page 92]
Internet Draft Conformance Test For SCTP Feb 2001
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.
TEST NUMBER : 4.8.3
Reference: SCTP RFC 2960 Clause 5.2.4
TITLE : Duplicate COOKIE-ECHO Message
SUBTITLE : 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
PURPOSE: To check the action of the system on reception of duplicate
valid COOKIE-ECHO.
PRE-TEST CONDITIONS: Association is established between endpoint A and
B.Arrange the data in endpoint A such that valid COOKIE-ECHO message in
which local and peer tag don't match the existing association but local
and peer tie tags matches the TCB of existing association is sent to B.
EXPECTED MESSAGE SEQUENCE :
Endpoint A Endpoint B ULP
(Established) (Established)
COOKIE-ECHO --------------->
(valid)
<--------------- COOKIE-ACK
Restart -------->
DATA ---------------->
<---------------- SACK
TEST DESCRIPTION:
1. Try to send a valid COOKIE-ECHO message in the Established state
from endpoint A to B.
2. Check A: COOKIE-ACK message is sent in response to COOKIE-ECHO
message.
3. Check B: Restart indication is given to the ULP.
4. Check C: Association is established.
Note: Valid COOKIE-ECHO means that it is having correct MAC and
verification tags matches the tags in the current association.
Sunil, Sandeep,Kuleep,Ashok , Hughes Software Systems [Page 93]
Internet Draft Conformance Test For SCTP Feb 2001
4.9 Duplicate SHUTDOWN COMPLETE message in Cookie Wait state
TEST NUMBER : 4.9
Reference: SCTP RFC 2960 Clause 9.2
TITLE : Duplicate Message
SUBTITLE : Duplicate SHUTDOWN COMPLETE message in Cookie Wait state
PURPOSE: To check the action of the system on reception of duplicate
SHUTDOWN COMPLETE message.
PRE-TEST CONDITIONS: Association is not established between endpoint A
and B. Arrange the data in endpoint A such that SHUTDOWN COMPLETE
message is sent to endpoint B after receiving INIT message from it.
EXPECTED MESSAGE SEQUENCE :
Endpoint A Endpoint B ULP
(Closed) (Closed)
<--------- Associate
<---------------- INIT
(Start T1-Init timer)
SHUTDOWN COMPLETE ----------------->
Discard the message
T1-Init timer expires
<----------------- INIT
TEST DESCRIPTION:
1. Try to create an association between endpoint A and B by sending
INIT message.Send SHUTDOWN COMPLETE message from the other endpoint.
2. Check A: SHUTDOWN COMPLETE message is ignored.
3. Check B: After expiry of T1-Init timer INIT message is transmitted
again.
4. Repeat the above test case when SHUTDOWN COMPLETE is received in
other states like Cookie Echoed, established, Cookie wait, Shutdown
pending, Shutdown receive and Shutdown sent state. Response will be
the same as in the above case.
Sunil, Sandeep,Kuleep,Ashok , Hughes Software Systems [Page 94]
Internet Draft Conformance Test For SCTP Feb 2001
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.
TEST NUMBER : 4.10
Reference: SCTP RFC 2960 Clause 5.2.4
TITLE : Duplicate COOKIE-ECHO Message
SUBTITLE : 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
PURPOSE: To check the action of the system on reception of duplicate
valid COOKIE-ECHO.
PRE-TEST CONDITIONS: Association is established between endpoint A and
B.Arrange the data in endpoint A such that valid COOKIE-ECHO message in
which local and peer tag don't match the existing association but local
and peer tie tags matches the TCB of existing association is sent to B.
EXPECTED MESSAGE SEQUENCE :
Endpoint A Endpoint B ULP
(Established) (Established)
SHUTDOWN ----------------->
<----------------- SHUTDOWN-ACK
COOKIE-ECHO ----------------->
<----------------- SHUTDOWN-ACK
<------------------ ERROR
TEST DESCRIPTION:
1. Try to send a valid COOKIE-ECHO message in the Shutdown Ack sent
state from endpoint A to B.
2. Check A: COOKIE-ACK message is discarded and SHUTDOWN-ACK message
is sent again.
3. Check B: ERROR message is also sent to endpoint A with error cause
"Cookie received while shutting down".
4. Check C: Current state is not disturbed.
Note: Valid COOKIE-ECHO means that it is having correct MAC and
verification tags matches the tags in the current association.
Sunil, Sandeep,Kuleep,Ashok , Hughes Software Systems [Page 95]
Internet Draft Conformance Test For SCTP Feb 2001
4.11 DATA packet in Shutdown-Ack Sent state
TEST NUMBER : 4.11
Reference: SCTP RFC 2960 Clause 6
TITLE : Duplicate Message
SUBTITLE : DATA packet in Shutdown-Ack Sent state
PURPOSE: To check the action of the system on reception of duplicate
data packet in Shutdown-Ack sent state.
PRE-TEST CONDITIONS:Association is established between endpoint A and
B.Arrange the data in endpoint A such that Shutdown message is sent to
endpoint B. Also DATA message is sent from endpoint A to B.
EXPECTED MESSAGE SEQUENCE :
Endpoint A Endpoint B ULP
(Established) (Established)
SHUTDOWN ----------------->
<----------------- SHUTDOWN-ACK
----------------->
DATA
Data is discarded
TEST DESCRIPTION:
1. Try to send a valid DATA message in the Shutdown Ack sent state from
endpoint A to B.
2. Check A: DATA message is discarded.
3. Check C: Current state is not disturbed.
4. Repeat the above test case for DATA in other states like Shutdown
receive, Cookie Wait and Cookie Echoed.
5. Repeat the above test case for SACK in place of DATA chunk in states
Shutdown-Ack sent, Cookie Wait and Shutdown sent state.
Sunil, Sandeep,Kuleep,Ashok , Hughes Software Systems [Page 96]
Internet Draft Conformance Test For SCTP Feb 2001
5 Fault Handling
1 Association.Max.Retrans Counter
5.1.1 Total number of consecutive retransmission exceeds
Association.Max.Retrans
TEST NUMBER : 5.1.1
Reference: SCTP RFC 2960 Clause 8.1
TITLE : Fault Handling
SUBTITLE: Total number of consecutive retransmission exceeds
Association.Max.Retrans
PURPOSE: To check that when total number of consecutive retransmission
to a peer exceeds the Association.Max.Retrans,the destination transport
address is marked unreachable and association is closed.
PRE-TEST CONDITION: Association is established between endpoint A and
B. The IP addresses of A in association with B are x, y and z. The
Association. Max.Retrans counter for endpoint B is X. Arrange the data
in endpoint A such that no SACK is sent in response to DATA received
from endpoint B. Let the counter name which keeps track of total
retransmission is P.
EXPECTED MESSAGE SEQUENCE :
Endpoint A Endpoint B ULP
(Established) (Established)
<-------- Send
<----------------- DATA (IP = x)
Don't send SACK | T3-rxt expires
|
<------------------ DATA (IP = Note)
Don't send SACK | Increment P.
| T3-rxt expires
<----------------- DATA (IP = Note)
Increment P
Retrans.Count exceeds
Path.Max.Retrans
DATA (IP = Note) Increment P
Don't send SACK <----------------- T3-rxt expires
DATA (IP = Note) Increment P
Don't send SACK <-----------------
P has exceeded X.
Association is closed
Communication Lost ------->
Sunil, Sandeep,Kuleep,Ashok , Hughes Software Systems [Page 97]
Internet Draft Conformance Test For SCTP Feb 2001
TEST DESCRIPTION:
1. From an endpoint in established state,send DATA to another endpoint.
Don't send the SACK from another endpoint and let the T3-rxt timer
expire. Retrans.Count counter will be incremented. DATA will be
retransmitted to the same IP address until Retrans.Count counter
exceeds Path.Max.Retrans. After that data will be retransmitted to
IP address y.
Record the message sequence using a signal emulator.
2. Check A: When the total retransmission to endpoint X exceeds
Association. Max.Retrans then that endpoint is marked unreachable.
3. Check B: ULP are also reported of failure.
Note: The Data may be retransmitted to the same IP address or to an
alternate IP address. In each retransmission the counter Retrans.Count
corresponding to each IP address to which DATA is retransmitted will be
incremented.
Note1: Value of T3-rxt timer will be calculated after every
retransmission.
Sunil, Sandeep,Kuleep,Ashok , Hughes Software Systems [Page 98]
Internet Draft Conformance Test For SCTP Feb 2001
5.1.2 The counter counting total number of retransmission to an
endpoint is reset on receiving a SACK.
TEST NUMBER : 5.1.2
Reference: SCTP RFC 2960 Clause 8.1
TITLE : Fault Handling
SUBTITLE:The counter counting total number of retransmission to
endpoint is reset on receiving SACK.
PURPOSE: To check that when SACK comes from other endpoint for a DATA
which was being retransmitted then the counter which counts the total
retransmission to an endpoint is reset.
PRE-TEST CONDITION: Association is established between endpoint A and
B.The Association.Max.Retrans counter for endpoint B is X. Arrange the
data in endpoint A such that SACK is sent in response to DATA received
from endpoint B only when the DATA has been retransmitted for two to
three times. Let the counter name which keeps track of total
retransmission is P.
EXPECTED MESSAGE SEQUENCE :
Endpoint A Endpoint B ULP
(Established) (Established)
<--------- Send
<----------------- | DATA
Don't send SACK |
| T3-rxt expires
<----------------- DATA Increment counter P
Don't send SACK |
| T3-rxt expires
|
<----------------- DATA Increment counter P
SACK ----------------->
Reset counter P
<--------- Send
<----------------- DATA
Don't send SACK T3-rxt expires
<----------------- DATA Increment counter P
Don't send SACK T3-rxt expires
<----------------- DATA Increment counter P
Don't send SACK
P exceeds X
Endpoint A is marked unreachable
Communication Lost --------->
Sunil, Sandeep,Kuleep,Ashok , Hughes Software Systems [Page 99]
Internet Draft Conformance Test For SCTP Feb 2001
TEST DESCRIPTION:
1. From an endpoint in established state,send DATA to another endpoint.
Dont send the SACK from another endpoint and let the T3-rxt timer
expires Retrans.Count counter will be incremented. DATA will be
retransmitted and counter counting total number of retransmission to
same IP address will be incremented. Now send SACK. Record the
message sequence using a signal emulator.
2. Check A: The counter counting the total number of retransmission to
endpoint A is reset on receiving SACK.
3. Check B: PATH. MAX. RETRANS counter is also reset.
4. Repeat the above test case if endpoint A is multihomed.
Note: Value of T3-rxt timer will be calculated after every
retransmission.
Sunil, Sandeep,Kuleep,Ashok , Hughes Software Systems [Page 100]
Internet Draft Conformance Test For SCTP Feb 2001
5.2 Retrans.Count counter exceeds the Path.Max.Retrans
TEST NUMBER : 5.2
Reference: SCTP RFC 2960 Clause 8.2
TITLE : Fault Handling
SUBTITLE: Retrans.Count counter exceeds the Path.Max.Retrans.
PURPOSE: To check that when Retrans.Count counter exceeds the Path.Max.
Retrans, the destination transport address is marked inactive.
PRE-TEST CONDITION: Association is established between endpoint A and B
The IP addresses of A in association with B are x and y and port is a.
Arrange the data in endpoint A such that no SACK is sent in response to
DATA received from endpoint B.
EXPECTED MESSAGE SEQUENCE :
Endpoint A Endpoint B ULP
(Established) (Established)
<----------------- Send
<----------------- DATA (IP = x port = a)
|
| T3-rxt expires
Increment Retrans.Count
<----------------- DATA (IP = Note, Port = a)
|
| T3-rxt expires
|Increment Retrans.Count
Retrans Count exceeds
Path Max.Retrans
IP address x is marked inactive
Network Status Change ------->
TEST DESCRIPTION:
1. From an endpoint in established state,send DATA to another endpoint.
Don't send the SACK from another endpoint and let the T3-rxt timer
expire. Retrans.Count counter will be incremented. Again send DATA
till Retrans.Count counter exceeds Path.Max.Retrans.
Record the message sequence using a signal emulator.
2. Check A: Endpoint B transport address is marked inactive.
3. Check B: DATA chunks are sent to alternate transport address if one
is available.However this is implementation specific.
Note: The Data may be retransmitted to the same IP address or to an
alternate IP address. In each retransmission the counter Retrans.Count
corresponding to each IP address to which DATA is retransmitted will be
incremented.
Note1: Value of T3-rxt timer will be calculated after every
retransmission.
Sunil, Sandeep,Kuleep,Ashok , Hughes Software Systems [Page 101]
Internet Draft Conformance Test For SCTP Feb 2001
5.3 Retrans.Count counter is reset on receiving HEARTBEAT-ACK or
SACK.
TEST NUMBER : 5.3
Reference: SCTP RFC 2960 Clause 8.2
TITLE : Fault Handling
SUBTITLE: Retrans.Count counter is reset on receiving HEARTBEAT-ACK or
SACK.
PURPOSE: To check that when HEARTBEAT-ACK or SACK for an outstanding
TSN is received from a destination transport address then Retrans.Count
counter corresponding to that destination address is reset.
PRE-TEST CONDITION: Association is established between endpoint A
(with IP address y and z and port c) and B. Let the Path.Max.Retrans
counter of endpoint B is x. Arrange the data in endpoint A such that
SACK is sent after DATA is received in a retransmission.
EXPECTED MESSAGE SEQUENCE :
Endpoint A Endpoint B ULP
(Established) (Established)
<------- Send
<----------------- DATA (IP =y, Port = a ) (IP = y)
|
| T3-rxt expires
| Increment Retrans.Count
<----------------- DATA (IP =Note, Port = a)
|
| T3-rxt expires
| Increment Retrans.Count
SACK ----------------->
Retrans.Count counter is reset
<---------------------- Send
<----------------- DATA(IP =y, Port = a)
T3-rxt timer expires
<----------------- DATA(IP =Note, Port = a)
. T3-Rxt timer expires
DATA is retransmitted x times
IP address y is marked inactive
Network Status change ------->
Sunil, Sandeep,Kuleep,Ashok , Hughes Software Systems [Page 102]
Internet Draft Conformance Test For SCTP Feb 2001
TEST DESCRIPTION:
1. From an endpoint in established state,send DATA to another endpoint.
Don't send the SACK from another endpoint and let the T3-rxt timer
expire. Retrans.Count counter will be incremented. Again send DATA
and let the T3-rxt timer expire again. Now send SACK from another
endpoint for the DATA received.
Record the message sequence using a signal emulator.
2. Check A: Retrans.Count counter is reset on receiving SACK.
3. Check B: Is the message sequence as above.
4. Repeat the above test case when HEARTBEAT-ACK message comes in place
of SACK.Note: The Data may be retransmitted to the same IP address
or to an alternate IP address. In each retransmission the counter
Retrans.Count corresponding to each IP address to which DATA is
retransmitted will be incremented.
Note1: Value of T3-rxt timer will be calculated after every
retransmission.
Sunil, Sandeep,Kuleep,Ashok , Hughes Software Systems [Page 103]
Internet Draft Conformance Test For SCTP Feb 2001
5.4 Retrans.Count counter is not reset on receiving SACK for an
outstanding TSN, which was sent on an alternate transport address.
TEST NUMBER : 5.4
Reference: SCTP RFC 2960 Clause 8.2
TITLE : Fault Handling
SUBTITLE: Retrans.Count counter is not reset on receiving SACK for an
outstanding TSN, which was sent on an alternate transport address.
PURPOSE: To check that when SACK for an outstanding TSN sent on an
alternate address is received, then Retrans.Count counter corresponding
to that destination address is not reset.
PRE-TEST CONDITION: Association is established between endpoint A
(with IP address x and y and port c) and B.Arrange the data in endpoint
B such that if SACK doesn't come for DATA sent in T3-rxt time then DATA
is sent again on an alternate transport address.Let the
Path.Max.Retrans counter for address x is a and for y is b.
EXPECTED MESSAGE SEQUENCE :
Endpoint A Endpoint B ULP
(Established) (Established)
<-------- Send
<----------------- DATA (IP Add = x Port = c) (IP add = x)
|
| T3-rxt expires
Increment Retrans.Count
<----------------- DATA (IP Add = x Port = c)
T3-rxt expires
<----------------- DATA (IP Add = Note Port = c)
. Retransmit "a" times
Path.Max.Retrans for x exceeds
Network Status change ----------->
<----------------- DATA (IP add = y Port = c)
(retransmission)
SACK ----------------->
Retrans.Count counter is not reset
<-------- Send
(IP add = x)
<----------------- DATA (IP add = y Port = c)
Sunil, Sandeep,Kuleep,Ashok , Hughes Software Systems [Page 104]
Internet Draft Conformance Test For SCTP Feb 2001
TEST DESCRIPTION:
1. From an endpoint in established state,send DATA to another endpoint.
Don't send the SACK from another endpoint and let the T3-rxt timer
expire. Retrans.Count counter will be incremented. Again retransmit
DATA to an alternate transport address of the receiver. Now send
SACK from peer for the DATA received. Record the message sequence
using a signal emulator.
2. Check A: Retrans.Count counter is not reset on receiving SACK and
data is sent on alternate address.
Note: The Data may be retransmitted to the same IP address or to an
alternate IP address. In each retransmission the counter Retrans.Count
corresponding to each IP address to which DATA is retransmitted will be
incremented.
Note1: This case is implementation specific.
Note2: Value of T3-rxt timer will be calculated after every
retransmission.
Sunil, Sandeep,Kuleep,Ashok , Hughes Software Systems [Page 105]
Internet Draft Conformance Test For SCTP Feb 2001
5.5 HEARTBEAT message is sent periodically to an idle active station
TEST NUMBER : 5.5
Reference: SCTP RFC 2960 Clause 8.3
TITLE : Fault Handling
SUBTITLE: HEARTBEAT message is sent periodically to an idle active
station.
PURPOSE: To check that when a destination transport address is idle for
a long time then HEARTBEAT message is sent to that address.
PRE-TEST CONDITION: Association is established between endpoint A
(with IP address y and z and port c) and B. Arrange the data in
endpoint A and B such that no DATA or control chunk is exchanged
between them. Let the retrans.count counter for endpoint A is x.
EXPECTED MESSAGE SEQUENCE :
Endpoint A Endpoint B ULP
(Established) (Established)
No message is exchanged within current
Heartbeat period
<----------------- HEARTBEAT(IP = y, Port = c)
| (Increment Retrans.Count Counter)
| Current Heartbeat Interval
|
<----------------- HEARTBEAT(IP = y, Port = c)
(Increment Retrans.Count Counter)
|
| Send HEARTBEAT x
| times
IP address y is marked inactive
Network Status Change ------->
<----------------- HEARTBEAT(IP = y, Port = c)
Retrans.Count Counter is not
incremented as it has reached
the maximum value x
Sunil, Sandeep,Kuleep,Ashok , Hughes Software Systems [Page 106]
Internet Draft Conformance Test For SCTP Feb 2001
TEST DESCRIPTION:
1. From an endpoint in established state, do not send any message to
another endpoint within the current Heartbeat period.
2. Check A: HEARTBEAT message is sent from one endpoint to its peer.
3. Check B: Retrans.Count counter is incremented.
4. Check C: If DATA message is sent in between sending HEARTBEAT from
endpoint B to A then heartbeat interval is started from the time
when DATA message was sent.
5. Check D: Heartbeat interval is equal to the RTO for that destination
plus the HB interval set by the SCTP user.
6. Repeat the above test case when the endpoint A has been marked
inactive.
7. Repeat the above test case if endpoint A is multihomed and all are
idle. Only one HEARTBEAT message to on destination should be sent in
one HB interval.
Sunil, Sandeep,Kuleep,Ashok , Hughes Software Systems [Page 107]
Internet Draft Conformance Test For SCTP Feb 2001
5.6 Heartbeat Request primitive
TEST NUMBER : 5.6
Reference: SCTP RFC 2960 Clause 8.3
TITLE : Fault Handling
SUBTITLE: Heartbeat Request primitive.
PURPOSE: To check that when ULP send Heartbeat Request primitive then
HEARTBEAT message is sent to that address.
PRE-TEST CONDITION:Association is established between endpoint A and B.
Arrange the data in endpoint B such that ULP in B send Heartbeat
Request primitive.
EXPECTED MESSAGE SEQUENCE :
Endpoint A Endpoint B ULP
(Established) (Established)
<--------- Heartbeat request
<----------------- HEARTBEAT
(Increment Retrans.count counter)
TEST DESCRIPTION:
1. From ULP of endpoint B in established state, send Heartbeat Request
primitive for endpoint A.
Record the message sequence using a signal emulator.
2. Check A: HEARTBEAT message is sent from endpoint B to endpoint A.
3. Check B: Retrans.Count counter is incremented.
4. Repeat the above test case when the other endpoint has been marked
inactive.
Sunil, Sandeep,Kuleep,Ashok , Hughes Software Systems [Page 108]
Internet Draft Conformance Test For SCTP Feb 2001
5.7 HEARTBEAT message is responded with HEARBEAT-ACK
TEST NUMBER : 5.7
Reference: SCTP RFC 2960 Clause 8.3
TITLE : Fault Handling
SUBTITLE: HEARTBEAT message is responded with HEARBEAT-ACK.
PURPOSE: To check that when HEARTBEAT message is sent to an idle
destination transport address, it is responded by HEARTBEAT-ACK with
the information carried in the Heartbeat message.
PRE-TEST CONDITION:Association is established between endpoint A and B.
Arrange the data in endpoint A such that HEARTBEAT message is sent to
its peer.
EXPECTED MESSAGE SEQUENCE :
Endpoint A Endpoint B
(Established) (Established)
HEARTBEAT ----------------->
<----------------- HEARTBEAT-ACK
Information copied from the
HEARTBEAT message
TEST DESCRIPTION:
1. From an endpoint in established state, send HEARTBEAT message to
another endpoint.
Record the message sequence using a signal emulator.
2. Check A: HEARTBEAT-ACK message will be sent in response to HEARTBEAT
message.
3. Check B: Information carried in the HEARTBEAT message is carried
back into the HEARTBEAT-ACK message.
Sunil, Sandeep,Kuleep,Ashok , Hughes Software Systems [Page 109]
Internet Draft Conformance Test For SCTP Feb 2001
5.8 HEARTBEAT-ACK message comes from an inactive destination
TEST NUMBER : 5.8
Reference: SCTP RFC 2960 Clause 8.3
TITLE : Fault Handling
SUBTITLE: HEARTBEAT-ACK message comes from an inactive destination.
PURPOSE:To check that when HEARTBEAT-ACK message comes from an inactive
destination transport address, that destination is marked active and
Retrans.Count counter for that destination transport address is reset.
PRE-TEST CONDITION: Association is established between endpoint A (with
IP address y and z and port c) and B. Arrange the data in endpoint A
such thatHEARTBEAT-ACK message is sent to its peer. Let the
Path.Max.Retrans counter for endpoint A is x.
EXPECTED MESSAGE SEQUENCE :
Endpoint A Endpoint B ULP
(Established) (Established)
<------- Send
<----------------- DATA (IP = y, Port = c)
Don't send SACK |
| T3-rxt expires
| Increment Retrans.Count
<----------------- DATA (IP = Note, Port = c)
Don't send SACK
| T3-rxt expires|
| Increment Retrans.Count
| . x times
Retrans.Count exceeds
Path.Max.Retrans
IP y is marked inactive -------->
Network Status Change
<-------- Heartbeat
request
<----------------- HEARTBEAT (IP = y, Port = c) (IP = y)
HEARTBEAT-ACK -----------------> IP address is marked active
Network Status Change ----->
<----------------- DATA <-------- Send
Sunil, Sandeep,Kuleep,Ashok , Hughes Software Systems [Page 110]
Internet Draft Conformance Test For SCTP Feb 2001
TEST DESCRIPTION:
1. From an endpoint in established state, which is inactive, send
HEARTBEAT-ACK message to another endpoint in response to HEARTBEAT
message. Record the message sequence using a signal emulator.
2. Check A: On receiving HEARTBEAT-ACK message from inactive transport
address that transport address is marked active.
3. Check B: Retrans.Count counter for that transport address is reset.
Note: The Data may be retransmitted to the same IP address or to an
alternate IP address. In each retransmission the counter Retrans.Count
corresponding to each IP address to which DATA is retransmitted will be
incremented.
Note1: Value of T3-rxt timer will be calculated after every
retransmission.
Sunil, Sandeep,Kuleep,Ashok , Hughes Software Systems [Page 111]
Internet Draft Conformance Test For SCTP Feb 2001
5.9 OOTB datagram
5.9.1 OOTB DATA Packet
TEST NUMBER : 5.9.1
Reference: SCTP RFC 2960 Clause 8.4
TITLE : Fault Handling
SUBTITLE: Valid DATA packet comes from an address with which endpoint
has no association. (OOTB datagram)
PURPOSE: To check that a data packet, received from a destination
address corresponding to which there is no association, is responded
with ABORT message.
PRE-TEST CONDITION: No association exists between endpoint A and B.
Arrange the data in endpoint A such that DATA is sent to endpoint B.
EXPECTED MESSAGE SEQUENCE :
Endpoint A Endpoint B ULP
(Closed)
DATA -----------------> Passes Adler-32 checksum
<----------------- ABORT
Discard the DATA
<-------- Associate
<----------------- INIT
INIT-ACK ----------------->
<----------------- COOKIE-ECHO
COOKIE-ACK ------------------>
<--------- Send
<----------------- DATA
TEST DESCRIPTION:
1. From endpoint A, send valid DATA message to endpoint B, when there
is no association between them.
Record the message sequence using a signal emulator.
2. Check A: ABORT message will be sent.
3. Check B: Verification tag in the ABORT will be set equal to the
verification tag in the received DATA
4. Check C: DATA is discarded.
5. Check D: State of endpoint B is not disturbed.
6. Check E: T-Bit in the ABORT chunk is set to 1.
7. Repeat the above test case for SHUTDOWN, INIT-ACK and SACK chunk.
Response should be same.
Sunil, Sandeep,Kuleep,Ashok , Hughes Software Systems [Page 112]
Internet Draft Conformance Test For SCTP Feb 2001
5.9.2 OOTB ABORT Packet
TEST NUMBER : 5.9.2
Reference: SCTP RFC 2960 Clause 8.4
TITLE : Fault Handling
SUBTITLE: Valid ABORT chunk comes from an address with which endpoint
has no association. (OOTB datagram)
PURPOSE: To check that ABORT, received from a destination address
corresponding to which there is no association, is silently discarded.
PRE-TEST CONDITION: No association exists between endpoint A and B.
Arrange the data in endpoint A such that ABORT is sent to endpoint B.
EXPECTED MESSAGE SEQUENCE :
Endpoint A Endpoint B ULP
(Closed)
ABORT ----------------> Passes Adler-32 checksum
Discard the ABORT chunk
<------- Associate
<----------------- INIT
INIT-ACK ------------------>
<------------------ COOKIE-ECHO
COOKIE-ACK ------------------>
<------- Send
<------------------ DATA
TEST DESCRIPTION:
1. From endpoint A, send valid ABORT message to endpoint B, when there
is no association between them.
2. Check A: ABORT message will be silently discarded.
3. Check C: State of endpoint B is not disturbed.
4. Repeat the test case with T bit set to 0 and 1.
Sunil, Sandeep,Kuleep,Ashok , Hughes Software Systems [Page 113]
Internet Draft Conformance Test For SCTP Feb 2001
5.9.3 OOTB SHUTDOWN-ACK Packet
TEST NUMBER : 5.9.3
Reference: SCTP RFC 2960 Clause 8.4
TITLE : Fault Handling
SUBTITLE: Valid SHUTDOWN-ACK packet comes from an address with which
endpoint has no association. (OOTB datagram)
PURPOSE: To check that a SHUTDOWN-ACK packet, received from a
destination address corresponding to which there is no association,
is responded with SHUTDOWN-COMPLETE message.
PRE-TEST CONDITION: No association exists between endpoint A and B.
Arrange the data in endpoint A such that SHUTDOWN-ACK is sent to
endpoint B.
EXPECTED MESSAGE SEQUENCE :
Endpoint A Endpoint B ULP
(Closed)
SHUTDOWN-ACK ----------------> Passes Adler-32 checksum
<---------------- SHUTDOWN COMPLETE
Discard the DATA
<--------- Associate
<---------------- INIT
INIT-ACK ---------------->
COOKIE-ECHO
COOKIE-ACK ---------------->
<---------- end
<---------------- DATA
TEST DESCRIPTION:
1. From endpoint A, send valid SHUTDOWN-ACK message to endpoint B, when
there is no association between them.
2. Check A: SHUTDOWN COMPLETE message will be sent.
3. Check B: Verification tag in the SHUTDOWN COMPLETE message will be
set equal
to the verification tag in the received SHUTDOWN-ACK message.
4. Check C: T bit in the chunk flags is set to 1.
5. Check D: State of endpoint B is not disturbed.
Sunil, Sandeep,Kuleep,Ashok , Hughes Software Systems [Page 114]
Internet Draft Conformance Test For SCTP Feb 2001
5.9.4 OOTB SHUTDOWN COMPLETE Packet
TEST NUMBER : 5.9.4
Reference: SCTP RFC 2960 Clause 8.4
TITLE : Fault Handling
SUBTITLE: Valid SHUTDOWN COMPLETE packet comes from an address with
which endpoint has no association. (OOTB datagram)
PURPOSE: To check that a SHUTDOWN COMPLETE packet, received from a
destination address corresponding to which there is no association, is
silently discarded.
PRE-TEST CONDITION: No association exists between endpoint A and B.
Arrange the data in endpoint A such that SHUTDOWN COMPLETE is sent
to endpoint B.
EXPECTED MESSAGE SEQUENCE :
Endpoint A Endpoint B ULP
(Closed)
SHUTDOWN COMPLETE ----------------> Passes Adler-32 checksum
Discard SHUTDOWN COMPLETE
<--------- Associate
<---------------- INIT
INIT-ACK ----------------->
<----------------- COOKIE-ECHO
COOKIE-ACK ----------------->
<--------- Send
<------------------ DATA
TEST DESCRIPTION:
1. From endpoint A, send valid SHUTDOWN COMPLETE message to endpoint B,
when there is no association between them.
2. Check A: SHUTDOWN COMPLETE message will be discarded.
3. Check B: State of endpoint B is not disturbed.
4. Repeat the test case with T bit set to 0 and 1.
5. Repeat the test case if instead of SHUTDOWN COMPLETE message,
"stale cookie" ERROR is received. Response should be same.
6. Repeat the test case if instead of SHUTDOWN COMPLETE message,
COOKIE ACK message is received. Response should be same.
Sunil, Sandeep,Kuleep,Ashok , Hughes Software Systems [Page 115]
Internet Draft Conformance Test For SCTP Feb 2001
5.9.5 OOTB Packet from or to non-unicast address
TEST NUMBER : 5.9.5
Reference: SCTP RFC 2960 Clause 8.4
TITLE : Fault Handling
SUBTITLE:Valid packet comes from non-unicast address with which
endpoint has no association. (OOTB datagram)
PURPOSE: To check that a valid packet, received from a non-unicast
address or destined to non-unicast address is silently discarded.
PRE-TEST CONDITION: No association exists between endpoint A and B.
Arrange the data in endpoint A such that COOKIE ECHO is sent to
endpoint B with non unicast source address.
EXPECTED MESSAGE SEQUENCE :
Endpoint A Endpoint B ULP
(Closed)
COOKIE ECHO ----------------> Passes Adler-32 checksum
Discard COOKIE ECHO
<--------- Associate
<---------------- INIT
INIT-ACK ---------------->
<---------------- COOKIE-ECHO
COOKIE-ACK ---------------->
<--------- Send
<---------------- DATA
TEST DESCRIPTION:
1. From endpoint A, send valid COOKIE ECHO message with non-unicast
source address to endpoint B, when there is no association between
them.
2. Check A: COOKIE-ECHO message will be discarded.
3. Check B: State of endpoint B is not disturbed.
4. Repeat the above with other messages with non unicast source
address.
5. Repeat the above test case for non unicast destination transport
address.
Sunil, Sandeep,Kuleep,Ashok , Hughes Software Systems [Page 116]
Internet Draft Conformance Test For SCTP Feb 2001
6 ERROR
6.1 ERROR message with cause Stale Cookie Error received in Cookie
Echoed State
TEST NUMBER : 6.1
Reference: SCTP RFC 2960 Clause 5.2.6
TITLE : ERROR
SUBTITLE:ERROR message with cause Stale Cookie Error received in Cookie
Echoed State.
PURPOSE: To verify that ERROR message, with cause Stale Cookie Error,
received in Cookie Echoed state is properly handled.
PRE-TEST CONDITIONS: Association is not established between endpoint A
and B. Arrange the data in endpoint A such that ERROR message with
cause stale cookie error is sent in response to COOKIE message.
EXPECTED MESSAGE SEQUENCE :
Endpoint A Endpoint B ULP
(Closed) (Closed) <--------- Send
<---------------- INIT
INIT-ACK ----------------->
<----------------- COOKIE-ECHO
OPERATION ERROR ------------------> Note
Cause Stale Cookie Error
TEST DESCRIPTION:
1. Attempt to make an association from endpoint A to B. Send OPEARTION
ERROR message with cause Stale Cookie Error after receiving COOKIE
message.
2. CHECK A: The action taken by an endpoint on receiving OPERATION
ERROR with cause Stale Cookie Error should be one of the following:
a. Send a new INIT message to the endpoint to generate a new cookie and
reattempt the setup procedure.
b. Discard the TCB and report to the upper layers the inability of
setting up the association.
c. Send a new INIT message to the endpoint adding a cookie preservative
parameter requesting the extension on lifetime of cookie.
Note: Actions to be taken depend upon the implementation
Sunil, Sandeep,Kuleep,Ashok , Hughes Software Systems [Page 117]
Internet Draft Conformance Test For SCTP Feb 2001
6.2 ERROR message with cause Stale Cookie Error received in state
other than Cookie Echoed State
TEST NUMBER : 6.2
Reference: SCTP RFC 2960 Clause 5.2.6
TITLE : ERROR
SUBTITLE: ERROR message with cause Stale Cookie Error received in state
other than Cookie Echoed State.
PURPOSE: To verify that ERROR message, with cause Stale Cookie Error,
received in a state other than Cookie Echoed state is properly handled.
PRE-TEST CONDITIONS: Association is not established between endpoint A
and B. Arrange the data in endpoint A such that ERROR message with
cause stale cookie error is sent in response to COOKIE-ECHO message.
EXPECTED MESSAGE SEQUENCE :
Endpoint A Endpoint B ULP
(Closed) (Closed) <------- Associate
<---------------- INIT
INIT_ACK ---------------->
<---------------- COOKIE-ECHO
COOKIE-ACK ---------------->
Communication Up ------->
<--------------------- Send
<---------------- DATA
SACK ---------------->
ERROR ----------------> Discard the EROOR message
Cause stale cookie
---------------->
DATA <---------------- SACK
TEST DESCRIPTION:
1. Attempt to make an association from endpoint A to B. Send OPEARTION
ERROR message with cause Stale Cookie Error in established state.
Record the message sequence using a signal emulator.
2. CHECK A: ERROR with cause Stale Cookie Error is discarded.
3. CHECK B: Association is not disturbed.
4. Repeat the above test case when ERROR message is received in other
states except Cookie Sent state.
Sunil, Sandeep,Kuleep,Ashok , Hughes Software Systems [Page 118]
Internet Draft Conformance Test For SCTP Feb 2001
6.3 Generation of error cause Invalid Stream Identifier
TEST NUMBER : 6.3
Reference: SCTP RFC 2960 Clause 3.3.10.1
TITLE : ERROR
SUBTITLE: Generation of different error causes
PURPOSE: To verify that if a data is sent to a nonexistent stream then
an ERROR message with cause Invalid Stream Identifier is sent.
PRE-TEST CONDITIONS:Association is established between endpoint A and B
Also let the MIS for endpoint B is x.Arrange the data in endpoint A
such that a DATA is sent to endpoint B on a stream which is not
existing for the association.
EXPECTED MESSAGE SEQUENCE :
Endpoint A Endpoint B
(Established) (Established)
DATA ---------------->
(Stream_id = x)
<---------------- ERROR (cause = Invalid Stream
Identifier with stream identifier)
TEST DESCRIPTION:
1. Attempt to initiate an association from endpoint A to B. Send DATA
from endpoint A on a stream non-existent for the association.
Record the messages using a signal emulator.
2. Check A: ERROR message with cause Invalid Stream Identifier is sent
to Endpoint A.
3. Check B: In the ERROR message, Stream identifier on which the
message comes is included.
Sunil, Sandeep,Kuleep,Ashok , Hughes Software Systems [Page 119]
Internet Draft Conformance Test For SCTP Feb 2001
6.4 Generation of error cause Missing Mandatory parameter
TEST NUMBER : 6.4
Reference: SCTP RFC 2960 Clause 3.3.10.2
TITLE : ERROR
SUBTITLE: Generation of different error causes
PURPOSE: To verify that if a INIT-ACK is sent without COOKIE message
then ERROR message with cause Missing Mandatory Parameter is sent.
PRE-TEST CONDITIONS: Association is not established between endpoint A
and B. Arrange the data in endpoint A such that INIT-ACK is sent to
endpoint B without Cookie parameter.
EXPECTED MESSAGE SEQUENCE :
Endpoint A Endpint B ULP
(Closed) Closed)
<-------- Associate
<---------------- INIT
INIT-ACK ----------------->
(Without Cookie)
<---------------- ERROR (cause = Missing
Mandatory Parameter )
TEST DESCRIPTION:
1. Attempt to initiate an association from endpoint A to B. Send
INIT-ACK from endpoint A without Cookie parameter..
Record the messages using a signal emulator.
2. Check A: ERROR message with cause Missing Mandatory Parameter is
sent to Endpoint A.
3. Check B: In the ERROR message, missing parameter is included.
Sunil, Sandeep,Kuleep,Ashok , Hughes Software Systems [Page 120]
Internet Draft Conformance Test For SCTP Feb 2001
6.5 Generation of error cause Unrecognized Parameters
TEST NUMBER : 6.5
Reference: SCTP RFC 2960 Clause 3.3.10.8
TITLE : ERROR
SUBTITLE: Generation of different error causes
PURPOSE: To verify that if a INIT-ACK is sent with a TLV parameter not
recognized by the receiver then ERROR message with cause Unrecognized
Parameter is sent.
PRE-TEST CONDITIONS: Association is not established between endpoint A
and B. Arrange the data in endpoint A such that INIT-ACK is sent to
endpoint B with IPv6 address. Also endpoint B is not able to recognize
IPv6 addresses.
EXPECTED MESSAGE SEQUENCE :
Endpoint A Endpoint B ULP
(Closed) (Closed)
<---------------------- Associate
<---------------- INIT
INIT-ACK ---------------->
(With IPv6 address )
<---------------- ERROR (cause = Unrecognized
Parameter )
TEST DESCRIPTION:
1. Attempt to initiate an association from endpoint A to B. Send
INIT-ACK from endpoint A without Cookie parameter..
Record the messages using a signal emulator.
2. Check A: ERROR message with cause Missing Mandatory Parameter is
sent to Endpoint A.
3. Check B: In the ERROR message, missing parameter is included.
Sunil, Sandeep,Kuleep,Ashok , Hughes Software Systems [Page 121]
Internet Draft Conformance Test For SCTP Feb 2001
6.6 Reception of COOKIE-ECHO bundled with error cause Unrecognized
Parameters
TEST NUMBER : 6.6
Reference: SCTP RFC 2960 Clause 3.3109
TITLE : ERROR
SUBTITLE: Reception of COOKIE-ECHO bundled with error cause
Unrecognized Parameters
PURPOSE: To verify that if a COOKIE-ECHO message bundled with ERROR
message (cause unrecognized parameter) is sent then endpoint continues
to establish association.
PRE-TEST CONDITIONS: Association is not established between endpoint A
and B.Arrange the data in endpoint A such that COOKIE-ECHO bundled with
ERROR (cause = Unrecognized Parameter) is sent to endpoint B.
EXPECTED MESSAGE SEQUENCE :
Endpoint A Endpoint B ULP
(Closed) (Closed)
INIT ---------------->
<---------------- INIT-ACK
COOKIE-ECHO
(Bundled with ---------------->
ERROR )
<---------------- COOKIE-ACK
Association Up ------>
DATA ----------------->
<----------------- SACK
TEST DESCRIPTION:
1. Attempt to initiate an association from endpoint A to B. Send
COOKIE-ECHO bundled with ERROR having cause Unrecognized Parameter
from endpoint A.
Record the messages using a signal emulator.
2. Check A: COOKIE-ACK message is sent to endpoint A.
3. Check B: Association is established between endpoint A and B.
Sunil, Sandeep,Kuleep,Ashok , Hughes Software Systems [Page 122]
Internet Draft Conformance Test For SCTP Feb 2001
7 Bundling of DATA chunks with Control Chunks
7.1 Chunk Multiplexing with INIT message
TEST NUMBER : 7.1
Reference: SCTP RFC 2960 Clause 6.10
TITLE: Bundling of DATA chunks with control chunks
SUBTITLE: Chunk Multiplexing with INIT message.
PURPOSE: To verify that any data chunks multiplexed with INIT message
is discarded.
PRE-TEST CONDITIONS: Association is not established between endpoint A
and B. Arrange the data in endpoint A such that data chunks are
multiplexed with INIT message.
EXPECTED MESSAGE SEQUENCE :
Endpoint A Endpoint B ULP
(Closed) (Closed)
INIT ----------------> Discard the Datagram
(data chunks
multiplexed)
INIT ---------------->
<---------------- INIT-ACK
COOKIE-ECHO ---------------->
COOKIE-ACK
Communication Up -------->
DATA ---------------->
<---------------- SACK
TEST DESCRIPTION:
1. Attempt to initiate an association from endpoint A to B. Send INIT
message multiplexed with data chunks. INIT chunk should be first
chunk in the packet.
2. Check A: Whole packet will be discarded and no action will be taken.
3. Check C: Endpoint B remains in the closed state.
4. Repeat the above test case if other chunks are bundled with INIT.
Response should be same. INIT may be the first or last chunk in the
packet.
Sunil, Sandeep,Kuleep,Ashok , Hughes Software Systems [Page 123]
Internet Draft Conformance Test For SCTP Feb 2001
7.2 Chunk Multiplexing with INIT-ACK message
TEST NUMBER : 7.2
Reference: SCTP RFC 2960 Clause 6.10
TITLE: Bundling of DATA chunks with control chunks
SUBTITLE: Chunk Multiplexing with INIT-ACK message.
PURPOSE: To verify that any data chunks multiplexed with INIT-ACK
message is discarded.
PRE-TEST CONDITIONS: Association is not established between endpoint A
and B. Arrange the data in endpoint A such that data chunks are
multiplexed with INIT-ACK message.
EXPECTED MESSAGE SEQUENCE :
Endpoint A Endpoint B ULP
(Closed) (Closed) <--------- Associate
<---------------- INIT
INIT-ACK (data ----------------> Discard INIT-ACK
Chunks Multiplexed) | T1-Init
| Timer expires
<---------------- INIT
INIT-ACK ---------------->
<---------------- COOKIE-ECHO
COOKIE-ACK ---------------->
Communication Up ----->
DATA
<---------------- SACK
TEST DESCRIPTION:
1. Attempt to initiate an association from endpoint B to A. Send INIT-
ACK message multiplexed with data chunks. INIT-ACK chunk should be
first chunk in the packet.
Record the messages using a signal emulator.
2. Check A: Packet will be discarded and no action will be taken.
3. Check C: Current State of endpoint B is not disturbed.
4. Repeat the above test case if other chunks are also bundled with
INIT-ACK. Response should be same.
5. Repeat the above test case if INIT-ACK is not the first chunk in the
packet. Response will be the same.
Sunil, Sandeep,Kuleep,Ashok , Hughes Software Systems [Page 124]
Internet Draft Conformance Test For SCTP Feb 2001
7.3 Chunk Multiplexing with SHUTDOWN COMPLETE Chunk
TEST NUMBER : 7.3
Reference: SCTP RFC 2960 Clause 6.10
TITLE: Bundling of DATA chunks with control chunks
SUBTITLE: Chunk Multiplexing with SHUTDOWN COMPLETE Chunk.
PURPOSE: To verify that any data chunks multiplexed with SHUTDOWN
COMPLETE message are discarded.
PRE-TEST CONDITIONS: Association is not established between endpoint A
and B. Arrange the data in endpoint A such that data chunks are
multiplexed with SHUTDOWN COMPLETE chunk.
EXPECTED MESSAGE SEQUENCE :
Endpoint A Endpoint B ULP
(Closed) (Closed)
INIT ---------------->
<---------------- INIT_ACK
COOKIE-ECHO ---------------->
<---------------- COOKIE_ACK
Communication up -------->
SHUTDOWN ---------------->
<---------------- SHUTDOWN ACK
SHUTDOWN COMPLETE ---------------->
( Bundled with DATA chunk)
<---------------- ABORT
TEST DESCRIPTION:
1. Attempt to terminate an association between endpoint A and B by
sending SHUTDOWN message from endpoint A. SHUTDOWN-ACK messages will
be received. Send SHUTDOWN COMPLETE chunk bundled with data chunks
in response to SHUTDOWN-ACK Chunk. SHUTDOWN COMPLETE chunk should
be first chunk in the packet.
2. Check A: SHUTDOWN COMPLETE message will be discarded in this case
and endpoint B will remain in Shutdown-ack sent state.
3. Repeat the above test case if DATA is the first chunk. DATA would
have been discarded and association enter closed state. ABORT would
not be received in that case.
4. Repeat the above test case if SHUTDOWN COMPLETE is bundled with
control chunks.SHUTDOWN COMPLETE will be discarded in this case
and endpoint B will remain in Shutdown-Ack sent state.
Sunil, Sandeep,Kuleep,Ashok , Hughes Software Systems [Page 125]
Internet Draft Conformance Test For SCTP Feb 2001
7.4 COOKIE-ECHO is received bundled with data chunks with cookie as
first chunk
TEST NUMBER : 7.4
Reference: SCTP RFC 2960 Clause 5.1.5(6) & 6.10
TITLE : Bundling of DATA chunks with control chunks
SUBTITLE: COOKIE-ECHO is received bundled with data chunks with
COOKIE-ECHO as first chunk
PURPOSE: To verify that COOKIE-ECHO received bundled with data chunks
with COOKIE-ECHO as first chunk is accepted and responded by
COOKIE-ACK.
PRE-TEST CONDITIONS: Association is not established between endpoint A
and B. Arrange the data in endpoint A such that data chunks are bundled
with COOKIE-ECHO message with COOKIE-ECHO as the first chunk.
EXPECTED MESSAGE SEQUENCE :
Endpoint A Endpoint B ULP
(Closed) (Closed)
INIT ---------------->
<---------------- INIT-ACK
COOKIE-ECHO ----------------->
(bundled with data chunks) COOKIE-ECHO is accepted
<---------------- COOKIE-ACK
Communication Up --------->
<---------------- SACK
DATA ---------------->
<---------------- SACK
TEST DESCRIPTION:
1. Attempt to initiate an association from endpoint A to endpoint B.
Now send COOKIE-ECHO message bundled with data chunks with
COOKIE-ECHO as the first chunk.
2. Check A: COOKIE-ECHO is accepted and COOKIE-ACK is sent.
Check B : SACK is sent for the DATA chunk , bundled with COOKIE-ECHO
and received at A.
3. Repeat the above test case if DATA is the first chunk in the bundled
packet. Whole packet should be discarded in this case.
4. Repeat the above test case if control chunks are bundled with
COOKIE-ECHO. In this case also whole packet should be discarded.
Sunil, Sandeep,Kuleep,Ashok , Hughes Software Systems [Page 126]
Internet Draft Conformance Test For SCTP Feb 2001
7.5 COOKIE-ACK is received bundled with data chunks
TEST NUMBER : 7.5
Reference: SCTP RFC 2960 Clause 5.1.5 (5) & 6.10
TITLE : Bundling of DATA chunks with control chunks
SUBTITLE: COOKIE-ACK is received bundled with data chunks with
COOKIE-ACK as first chunk
PURPOSE: To verify that COOKIE-ACK received bundled with data chunks
with COOKIE-ACK as first chunk is accepted.
PRE-TEST CONDITIONS: Association is not established between endpoint A
and B. Arrange the data in endpoint A such that data chunks are bundled
with COOKIE-ACK message with COOKIE-ACK as the first chunk.
EXPECTED MESSAGE SEQUENCE :
Endpoint A Endpoint B ULP
(Closed) (Closed) <-------- Associate
<---------------- INIT
INIT-ACK ---------------->
<---------------- COOKIE-ECHO
COOKIE-ACK ----------------> COOKIE-ACK is accepted
(bundled with data
chunks) Communication Up ------->
<---------------- SACK
DATA ---------------->
<---------------- SACK
TEST DESCRIPTION:
1. Attempt to initiate an association from endpoint B to endpoint A.
Send COOKIE-ACK message from endpoint A bundled with data chunks
with COOKIE-ACK as the first chunk. In response to INIT-ACK.
2. Check A: COOKIE-ACK is accepted and association is established.
3. Repeat the above test case if DATA is the first chunk in the bundle.
In this case whole chunk should be discarded.
4. Repeat the above test case if SACK is bundled with COOKIE-ACK with
COOKIE-ACK as the first chunk. Response should be same.
5. Repeat the above test case if SACK is bundled with COOKIE-ACK with
COOKIE-ACK as the last chunk. Whole packet will be discarded in this
case.
6. Repeat the above test case if control chunks are bundled with
COOKIE-ECHO. In this case also whole packet should be discarded.
Sunil, Sandeep,Kuleep,Ashok , Hughes Software Systems [Page 127]
Internet Draft Conformance Test For SCTP Feb 2001
7.6 SHUTDOWN is received bundled with SACK
TEST NUMBER : 7.6
Reference: SCTP RFC 2960 Clause 6.10 & 9.2
TITLE : Bundling of SACK with SHUTDOWN
SUBTITLE: SHUTDOWN is received bundled with SACK
PURPOSE:To verify that SHUTDOWN received bundled with SACK is accepted.
PRE-TEST CONDITIONS: Arrange the data in endpoint A such that SACK is
bundled with SHUTDOWN message.
EXPECTED MESSAGE SEQUENCE :
Endpoint A Endpoint B ULP
(Established) (Established)
SHUTDOWN ----------------> SHUTDOWN is accepted
(bundled with SACK) and endpoint enters
Shutdown Receive State
<---------------- SHUTDOWN-ACK
TEST DESCRIPTION:
1. Attempt to terminate an association from endpoint A to endpoint B.
Now send SHUTDOWN message bundled with SACK with SACK as the last
chunk.
2. Check A: SHUTDOWN is accepted and endpoint B enters Shutdown Receive
state.
3. Repeat the above test case with SACK as the first chunk in the
bundled datagram. Response should be same.
4. Repeat the above test case if DATA is bundled with SHUTDOWN chunk as
the first or last chunk.Whole packet will be discarded in this case.
Sunil, Sandeep,Kuleep,Ashok , Hughes Software Systems [Page 128]
Internet Draft Conformance Test For SCTP Feb 2001
7.7 SACK is received bundled with DATA chunks
TEST NUMBER : 7.7
Reference: SCTP RFC 2960 Clause 9.2
TITLE : Bundling of SACK with data chunks
SUBTITLE: SACK is received bundled with DATA chunks
PURPOSE: To verify that SACK received bundled with DATA chunks is
accepted.
PRE-TEST CONDITIONS: Association is established between endpoint A and
B.Arrange the data in endpoint A such that SACK bundled with DATA
chunks is sent to endpoint B.
EXPECTED MESSAGE SEQUENCE :
Endpoint A Endpoint B ULP
(Established) (Established)
<--------- Send
<---------------- DATA
SACK (bundled with ---------------->
DATA chunks) SACK is accepted ---------> Data
<---------------- SACK (For DATA received
Bundled with SACK)
TEST DESCRIPTION:
1. Send DATA from endpoint B to endpoint A. Now send SACK message
bundled with some DATA chunks from endpoint A for the DATA received
(There could be multiple data chunks in single packet)
Record the message sequence using a signal emulator.
2. Check A: SACK is accepted and SACK is also sent for the DATA
received in SACK.
3. Repeat the above test case if SACK is the last chunk in the bundle.
The SACK is dropped.
Sunil, Sandeep,Kuleep,Ashok , Hughes Software Systems [Page 129]
Internet Draft Conformance Test For SCTP Feb 2001
7.8 SHUTDOWN-ACK is received bundled with DATA
TEST NUMBER : 7.8
Reference: SCTP RFC 2960 Clause 9.2
TITLE : Bundling
SUBTITLE: SHUTDOWN ACK is received bundled with DATA
PURPOSE: To verify that SHUTDOWN ACK received bundled with DATA is
discarded.
PRE-TEST CONDITIONS: Association is established between endpoint A and
B.Arrange the data in endpoint A such that DATA is bundled with
SHUTDOWN-ACK message.
EXPECTED MESSAGE SEQUENCE :
Endpoint A Endpoint B ULP
(Established) (Established)
<--------- Terminate
<---------------- SHUTDOWN
SHUTDOWN-ACK ---------------->
(Bundled with DATA) Discard the packet
TEST DESCRIPTION:
1. Attempt to terminate an association from endpoint B by sending
terminate primitive from ULP. Now send SHUTDOWN-ACK message bundled
with DATA with DATA as the last chunk.
2. Check A: Whole Packet is discarded.
3. Check B: State of endpoint B is not disturbed.
4. Repeat the above test case with DATA as the first chunk in the
bundled datagram. Response should be same.
5. Repeat the above test case if control chunks is bundled with
SHUTDOWN-ACK chunk as the first or last chunk. The control chunks
a valid chunk at B.
Sunil, Sandeep,Kuleep,Ashok , Hughes Software Systems [Page 130]
Internet Draft Conformance Test For SCTP Feb 2001
8 DATA
8.1 UN-SEGMENTED DATA
TEST NUMBER : 8.1
Reference: SCTP RFC 2960 Clause 3.3 and 6.9
TITLE : DATA
SUBTITLE : Un-Segmented DATA
PURPOSE: To check that if the data length is less then or equal to MTU
size endpoint B is able to send Un-segmented user message
PRE-TEST CONDITION: Arrange the data from user part such that size
is less then or equal to MTU size
EXPECTED MESSAGE SEQUENCE :
Endpoint A Endpoint B ULP
<--------------- DATA
B Bit =1 [TSN=1,Strm=0,seq=1] <----- Send
E Bit = 1 Data<=data <= MTU
MTU
TEST DESCRIPTION:
1. Check that the B bit is 1 for message received at endpoint A a
un-segmented data
2. Check that the E bit is 1 for message received at endpoint A a
un-segmented data
Sunil, Sandeep,Kuleep,Ashok , Hughes Software Systems [Page 131]
Internet Draft Conformance Test For SCTP Feb 2001
8.2 DATA SEGMENTATION
TEST NUMBER : 8.2
Reference: SCTP RFC 2960 Clause 3.3 and 6.9
TITLE : DATA
SUBTITLE : DATA Segmentation
PURPOSE: To check that in the endpoint B is able to perform data
segmentation and transmission
PRE-TEST CONDITION: Arrange the large size data from user part such
that size exceeding MTU
EXPECTED MESSAGE SEQUENCE :
Endpoint A Endpoint B ULP
B bit =1, E bit =0 <---------------
DATA [TSN=1,Strm=0,seq=1]<-------
(First peace of a segmented data ) Send
data>4
SACK
MTU ---------------->
[TSN ACK=1,Frag=0]
B bit =0, E bit =0 <--------------- DATA [TSN=2,Strm=0,seq=1]
(Middle peace of a segmented data)
B bit =0, E bit =0 <--------------- DATA [TSN=3,Strm=0,seq=1]
| Repeat Data as per MTU size
|
|
<---------------- DATA [TSN=n,Strm=0,seq=1]
B bit =1, E bit =1 (Last peace of segmented data)
TEST DESCRIPTION:
1.Check that segmentation is performed by the endpoint B as per MTU
size.
2.Check that the B bit =1 , E bit =0 first peace of segmented data.
3.Check that the B bit & E bit is 0 middle peace of a segmented data.
4.Check that the E bit =1, B bit =0 last peace of segmented data.
Sunil, Sandeep,Kuleep,Ashok , Hughes Software Systems [Page 132]
Internet Draft Conformance Test For SCTP Feb 2001
8.3 SEGMENTED DATA RECEPTION
TEST NUMBER : 8.3
Reference: SCTP RFC 2960 Clause 3.3 and 6.9
TITLE : DATA
SUBTITLE : Segmented DATA Reception
PURPOSE: To check that in the endpoint B is able to receive segmented
data
PRE-TEST CONDITION: Arrange the segmented data such that endpoint B
receive first , middle and end peace of a segmented data
EXPECTED MESSAGE SEQUENCE :
Endpoint A Endpoint B ULP
DATA [TSN=1,Strm=0,seq=1] ---------------->
<---------------- SACK
[TSN ACK=1,Frag=0]
DATA [TSN=2,Strm=0,seq=1] ---------------->
<---------------- SACK
DATA [TSN=3,Strm=0,seq=1] ---------------->
<---------------- SACK
DATA [TSN=n,Strm=0,seq=1] ---------------->
(Last peace of segmented data)
<---------------- SACK Total
Packet
TEST DESCRIPTION:
1 Check that endpoint B is able to receive complete data packet
Note: Its not necessary to get SACK in the same sequence.
Sunil, Sandeep,Kuleep,Ashok , Hughes Software Systems [Page 133]
Internet Draft Conformance Test For SCTP Feb 2001
8.4 CANCEL T3-rtx TIMER
TEST NUMBER : 8.4
Reference: SCTP RFC 2960 Clause 6.1 , 6.3.2 and
6.3.3
TITLE : DATA
SUBTITLE : T3-rtx timer cancel
PURPOSE: To check that after receiving SACK timer T3-rtx is canceled
PRE-TEST CONDITION: Arrange the data in Endpoint A such that SACK in
response of DATA message.T3 rxt timer is X sec for endpoint B
EXPECTED MESSAGE SEQUENCE :
Endpoint A Endpoint B ULP
<---------------- DATA [TSN=1] <------ Send
(Start T3-rtx timer)
|
| Time= Y sec (<X)
|
SACK ---------------->
[TSN ACK=2,Frag=0] (Cancel T3-rtx timer)
<---------------- DATA [TSN=2] <------ Send
|
|
|
| Time= X sec
<---------------- DATA [TSN=2]
TEST DESCRIPTION:
1. Check that whenever a transmission is made to any address,the sender
should start t3-rtx timer.
2. Check that after receiving the acknowledgement T3 timer is canceled.
Sunil, Sandeep,Kuleep,Ashok , Hughes Software Systems [Page 134]
Internet Draft Conformance Test For SCTP Feb 2001
8.5 T3-rtx TIMER EXPIRE
TEST NUMBER : 8.5
Reference: SCTP RFC 2960 Clause 6.1 , 6.3.2 and
6.3.3
TITLE : DATA
SUBTITLE : T3-rtx timer expire
PURPOSE: To check that after expiry of timer T3-rtx message will be
sent again.
PRE-TEST CONDITION: Association is established between endpoint A and
B.Arrange the data in Endpoint A such that no SACK in response of DATA
message.
EXPECTED MESSAGE SEQUENCE :
Endpoint A Endpoint B ULP
<---------------- DATA[TSN=1] <----- Send
(Start T3-rtx timer)
|
| T3-rtx timer expired
|
<---------------- DATA[TSN=1]
T3-rtx timer expired
|
|
|
<---------------- DATA [ TSN=1]
(Start T3-rtx timer)
TEST DESCRIPTION:
1. Check that whenever a transmission is made to any address, the
sender should start t3-rtx timer.
2. Check that data is sent again after expiry of T3-rtx timer.
3. Check that when data is re transferred again T3 timer is started.
Note: Value of T3-rxt timer will be calculated after every
retransmission.
Sunil, Sandeep,Kuleep,Ashok , Hughes Software Systems [Page 135]
Internet Draft Conformance Test For SCTP Feb 2001
8.6 DUPLICATE DATA
TEST NUMBER : 8.6
Reference: SCTP RFC 2960 Clause 6.2
TITLE : DATA
SUBTITLE : Duplicate DATA
PURPOSE: To check that any duplicate data chunk received should be
reported in SACK and number of duplicate TSN count should be reset
once reported in SACK.
PRE-TEST CONDITION:Association is established between endpoint A and B.
Arrange the data in Endpoint A such that it will send duplicate DATA to
endpoint B.
EXPECTED MESSAGE SEQUENCE :
Endpoint A Endpoint B ULP
DATA ---------------->
[TSN=x] Data ------->
<---------------- SACK
[TSN ACK=x]
DATA ----------------->
[TSN=x]
DATA <---------------- SACK
[TSN=x] [TSN ACK=x]
No of duplicate TSN=2
Duplicate TSN=x
Duplicate TSN=x
DATA ----------------->
[TSN = x]
<---------------- SACK
[TSN Ack=x]
No. of duplicate TSN=1
Duplicate TSN=x
TEST DESCRIPTION:
1. Send DATA chunk from endpoint A to B with TSN x. SACK will be
received with Cum TSN x. Again send two DATA chunks with same TSN.
2. Check A: Number of duplicate TSNs field is 2 and TSN x is reported
duplicate two times.
3. Again Send DATA with same TSN from endpoint B to A.
4. Check B: SACK should be received immediately on receiving duplicate
TSN with number of duplicate TSN 1 and duplicate TSN x.
Sunil, Sandeep,Kuleep,Ashok , Hughes Software Systems [Page 136]
Internet Draft Conformance Test For SCTP Feb 2001
8.7 BUFFER SPACE
TEST NUMBER : 8.7
Reference: SCTP RFC 29605.1 and 6.2.1
TITLE : DATA
SUBTITLE : Buffer space
PURPOSE : To verify that if its peers rwnd indicates that the peer has
no buffer space, then data should not be transmitted
PRE-TEST CONDITIONS : Arrange the data in Endpoint A such that rwnd =0
is sent in SACK in response to DATA message.
Data should be in large size so it will be transmitted in segments
EXPECTED MESSAGE SEQUENCE :
Endpoint A Endpoint B ULP
<--------
<---------------- DATA [TSN=1] Send
SACK
[TSN ACK=1,Frag=0 ---------------->
a_rwnd=0 ]
<-----
Send
<---------------- DATA [TSN=2]
(one data packet in flight)
Data Send Failure <-----
Send
SACK ---------------->
[a_rwnd=20]
<---------------- DATA [TSN=3]
<-------- Send
<----------------- DATA [TSN=4]
SACK ---------------->
TEST DESCRIPTION:
1 To verify that at any given time the sender must not transmit new
data if its peers rwnd=o that the peer has no buffer space
2 To verify that the sender can always have one data packet in flight
to the receiver
Sunil, Sandeep,Kuleep,Ashok , Hughes Software Systems [Page 137]
Internet Draft Conformance Test For SCTP Feb 2001
8.8 USER DATA IN rwnd=0
TEST NUMBER : 8.8
Reference: SCTP RFC 29605.1 and 6.2.1
TITLE : DATA
SUBTITLE : User Data in rwnd=0
PURPOSE :To verify that if rwnd=0 indicates then endpoint should accept
data from user part
PRE-TEST CONDITIONS: Arrange the data in Endpoint A such that rwnd =0
is sent in SACK in response to DATA message. Data should be in large
size so it will be transmitted in segments.
EXPECTED MESSAGE SEQUENCE :
Endpoint A Endpoint B ULP
<------
<----------------- DATA [TSN=1] Send
SACK
[TSN ACK=1,Frag=0 <-----------------
a_rwnd=0 ] <------
Send
Data cant be transmitted as a_rwnd=0
but it will be accepted from user part
DATA [TSN=2 ]
/
/ <------
/ Send
/ / DATA [TSN=3 ]
/ /
SACK --------------/--> /
/ /
[a_rwnd=20 ] <----------------/ /
/
<----------------/
TEST DESCRIPTION:
1. To verify that endpoint B is accepting data from user part when
rwnd=0 is received from endpoint A
2. Verify that after receiving buffer space all outstanding data
should be transmitted
Sunil, Sandeep,Kuleep,Ashok , Hughes Software Systems [Page 138]
Internet Draft Conformance Test For SCTP Feb 2001
8.9 CONGESTION
TEST NUMBER : 8.9
Reference: SCTP RFC 29606.1 and 7.2
TITLE : DATA
SUBTITLE : Congestion
PURPOSE : To verify that sender should not transmit new data if it has
cwnd =un Ack data size
PRE-TEST CONDITIONS :Arrange the Endpoint A such that It sends SACK
with all pending data acknowledge after congestion to Endpoint B
EXPECTED MESSAGE SEQUENCE :
Endpoint A Endpoint B ULP
<----------------- DATA [TSN=1] | <---------
| Send
|
<----------------- DATA [TSN=2] | <---------
| Send
<----------------- DATA [TSN=3] | <---------
Cwnd=Un Ack Data size | Send
| No data transfer |
| because of cwnd |
| |
| | <------
| | Send
| |
|
SACK -----------------> |
|
<----------------- DATA [TSN=4] |
|<---------- Send
<----------------- DATA [TSN=5]
TEST DESCRIPTION:
1 To verify that at any given time the sender must not transmit new
data if its has cwnd bytes of unacknowledged data .
2 To verify that whenever cwnd is greater then zero, the sender is
allowed to have cwnd octets of data outstanding on that transport
address.
Sunil, Sandeep,Kuleep,Ashok , Hughes Software Systems [Page 139]
Internet Draft Conformance Test For SCTP Feb 2001
8.10 RETRANSMISSION
TEST NUMBER : 8.10
Reference: SCTP RFC 29606.1 and 6.2
TITLE : DATA
SUBTITLE : Retransmission
PURPOSE: To verify that before sending new data chunks the sender must
first transmit any outstanding data chunk, which are marked for
retransmission.
PRE-TEST CONDITION: Arrange the segmented data such that endpoint A
ignore TSN 3 and sends SACK receive with gap in DATA
EXPECTED MESSAGE SEQUENCE :
Endpoint A Endpoint B ULP
<--------
<----------------- DATA [TSN=1] Send
SACK ----------------->
[TSN ACK=1,Frag=0]
<----------------- DATA [TSN=2] Send
(Don't send Ack) <----------------- DATA [TSN=3] <--------
Send
<--------
<----------------- DATA [TSN=4] Send
SACK (With Gap) ----------------->
[TSN ACK=2,Frag=1,
Strt=2,End=2]
Rtx expires for DATA[TSN=3]
<----------------- DATA [TSN=3]
SACK[TSN ACK =3,Frag=0]
<----------------- DATA [TSN=5]
<-------- Send
TEST DESCRIPTION:
1. Check that if SACK with fragment report shall be received,the data
at endpoint A not removed form the queue.
2. Check that rtx expires for DATA[TSN=3].It is retransmitted .The data
Chunk with TSN=1 to 4 are removed from the pending Queue after
recieving the SACK for TSN=3.
3. Verify that before sending the new data chunks the sender must first
transmit any any data chunks, which are marked for retransmission.
Sunil, Sandeep,Kuleep,Ashok , Hughes Software Systems [Page 140]
Internet Draft Conformance Test For SCTP Feb 2001
8.11 ORDERED DELIVERY
TEST NUMBER : 8.11
Reference: SCTP RFC 2960 Clause 6.6
TITLE : DATA
SUBTITLE : Ordered Delivery
PURPOSE: To check that if receiver deliver data to the upper layer
according to the order of there stream sequence number
PRE-TEST CONDITION: Arrange the data such that endpoint A sends ordered
DATA
EXPECTED MESSAGE SEQUENCE :
Endpoint A Endpoint B ULP
DATA [TSN=1,Seq=3] -----------------> U bit=0 |
| No DATA
----------------
|
|
DATA [TSN=2,Seq=2] -----------------> |
------------------
<----------------- SACK | No DATA
|
| |
DATA [TSN=3,Seq=1] -----------------> DATA | | Seq 1
----------| Seq 2
Seq 3
TEST DESCRIPTION:
1. Check that if receiver detects gap in the received data chunk
sequence, and SACK with fragment report shall be sent back
immediately.
2. To check that if DATA chunks arriving out of order of there stream
sequence number the receiver hold the received DATA chunks from
delivery until they are re-ordered .
Sunil, Sandeep,Kuleep,Ashok , Hughes Software Systems [Page 141]
Internet Draft Conformance Test For SCTP Feb 2001
8.12 UN-ORDERED DELIVERY
TEST NUMBER : 8.12
Reference: SCTP RFC 2960 6.6
TITLE : DATA
SUBTITLE : Un-Ordered Delivery
PURPOSE: To check that if receiver deliver data to the upper layer
according to the order it receives data
PRE-TEST CONDITION: Arrange the segmented data such that endpoint A
send un-ordered DATA
EXPECTED MESSAGE SEQUENCE :
Endpoint A Endpoint B ULP
DATA [TSN=1,Sq=2] ----------------->
--------->Seq 2
<----------------- SACK Delivered
DATA [TSN=2,Sq=X] ----------------->
U bit=1 Data
<----------------- SACK
DATA [TSN=3,Sq=1] -----------------> --------> Seq 2
Delivered
-----------------> SACK
TEST DESCRIPTION:
1. To check that if DATA chunks arriving out of order of there stream
sequence number the receiver transfer the received DATA chunks to
upper layer as they are received .
Sunil, Sandeep,Kuleep,Ashok , Hughes Software Systems [Page 142]
Internet Draft Conformance Test For SCTP Feb 2001
8.13 Reception of SACK from Alternate address
TEST NUMBER : 8.13
Reference: SCTP RFC 2960 6.6
TITLE : DATA
SUBTITLE : Reception of SACK from Alternate address
PURPOSE: To check that if data is sent to a multihomed endpoint on one
address and SACK comes from the alternate address in that host then it
is accepted
PRE-TEST CONDITION: Endpoint A is multihomed with two addresses X and
Y and association is established between endpoint A and B. Arrange data
in Endpoint B such that ULP sends data send primitive to endpoint A on
address X. Arrange data in endpoint B such that SACK is sent from
address Y to endpoint A.
EXPECTED MESSAGE SEQUENCE :
Endpoint A Endpoint B ULP
(Established) (Established)
<-------------------- Send
-----------------> DATA (IP add X)
SACK(From Add Y) ----------------->
Data should not be retransmitted
TEST DESCRIPTION:
1. Send DATA message from endpoint B to endpoint A on address X by
sending data primitive from ULP. Send SACK from endpoint A from
address Y.
2. Check A:SACK should be accepted and DATA should not be
retransmitted.
Sunil, Sandeep,Kuleep,Ashok , Hughes Software Systems [Page 143]
Internet Draft Conformance Test For SCTP Feb 2001
8.14 DATA Chunk with no user data
TEST NUMBER : 8.14
Reference: SCTP RFC 2960 Clause 6.2
TITLE : DATA
SUBTITLE : DATA chunk with no user data
PURPOSE: To check that if DATA chunk with no user data is received then
ABORT is sent.
PRE-TEST CONDITION:Association is established between endpoint A and B.
Arrange data in endpoint A such that DATA chunk with no user data is
sent to endpoint B.
EXPECTED MESSAGE SEQUENCE :
Endpoint A Endpoint B ULP
DATA ----------------->
<----------------- ABORT
Communication Down --------->
TEST DESCRIPTION:
1. Send DATA chunk from endpoint A to B with no user data i.e. length
should be 16.
2. Check A: ABORT should be received at endpoint A.
3. Check B: Error cause in ABORT is set to "No User Data".
Sunil, Sandeep,Kuleep,Ashok , Hughes Software Systems [Page 144]
Internet Draft Conformance Test For SCTP Feb 2001
8.15 SACK containing Cumulative TSN less than the Cumulative TSN Ack
point.
TEST NUMBER : 8.15
Reference: SCTP RFC 2960 Clause 6.2.1
TITLE : DATA
SUBTITLE: SACK containing Cumulative TSN less than the Cumulative TSN
Ack point.
PURPOSE: To check that if a SACK containing Cumulative TSN field less
than the current Cumulative TSN Ack point, then that SACK is discarded.
PRE-TEST CONDITION:Association is established between endpoint A and B.
Arrange data in endpoint A such that SACK chunk with cumulative TSN
less than the cumulative TSN ack point of endpoint B is sent to
endpoint B.
EXPECTED MESSAGE SEQUENCE :
Endpoint A Endpoint B ULP
<------------- Send
<----------------- DATA [ TSN = x]
SACK[CTSN = x] -----------------> <------------- Send
<----------------- DATA [TSN = x+1]
SACK[CTSN = x] ------------------>
SACK is dropped
TEST DESCRIPTION:
1. Send "send" primitive from ULP at endpoint B. DATA chunk will be
received at endpoint A. Sned SACK from endpoint B with cumulative
TSN which has already been acknowledged.
2. Check A: SACK will be dropped and endpoint B will not update any of
its parameter based on this SACK.
Sunil, Sandeep,Kuleep,Ashok , Hughes Software Systems [Page 145]
Internet Draft Conformance Test For SCTP Feb 2001
8.16 TSN missing in SACK which was previously acknowledged by SACK in
Gap Ack block
TEST NUMBER : 8.16
Reference: SCTP RFC 29606.2.1
TITLE : DATA
SUBTITLE : TSN missing in SACK which was previously acknowledged by
SACK in Gap Ack block.
PURPOSE: To verify that if SACK is missing a TSN that was previously
acked via a Gap Ack Block, then that data chunk is retransmitted and
T3-rxt timer is started for that destination address.
PRE-TEST CONDITION: Association is established between endpoint A and
B.Arrange data in endpoint A such that SACk is sent to endpoint B on
reception of DATA with Gap ACK block acknowledging data.
EXPECTED MESSAGE SEQUENCE :
Endpoint A Endpoint B ULP
<------------- Send
<----------------- DATA [TSN=1]
<------------- Send
<----------------- DATA [TSN=2]
<------------- Send
<----------------- DATA [TSN=3]
SACK[CTSN=1, ----------------->
Gap Start=2, end=2] <------------- Send
<----------------- DATA [TSN=4]
SACK[CTSN=2, ----------------->
Gap Start =2 end =3] <-------------- Send
<----------------- DATA [TSN=5]
SACK[CTSN=1, ----------------->
Gap Start=2, end=4] <------------- Send
<----------------- DATA [TSN=6]
SACK[CTSN=2, ----------------->
Gap Start =2 end =5]
<----------------- Retransmit
DATA [TSN=2]
SACK[TSN=2] ------------------>
TEST DESCRIPTION:
1. Send "send" primitive from ULP to send DATA message from endpoint B
to A. Send two or three DATA messages. Send SACK from endpoint A
acknowledging TSN 1 and 3. Send one more data from endpoint B to A.
Send SACK this time acknowledging upto 2 and not three.
2. Check A: DATA with TSN 2 should be retransmitted.
Sunil, Sandeep,Kuleep,Ashok , Hughes Software Systems [Page 146]
Internet Draft Conformance Test For SCTP Feb 2001
9 Acknowledgement
9.1 NORMAL ACKNOWLEDGE
TEST NUMBER : 9.1
Reference: SCTP RFC 2960 Clause 3.3.3 and 6.2.1
TITLE : Acknowledgement
SUBTITLE : Normal Acknowledge
PURPOSE : To verify that SCTP receiver B acknowledge the SCTP sender A
about the reception of each data chunk
PRE-TEST CONDITIONS: : Arrange the data such that endpoint A send one
TSN and wait for SACK
EXPECTED MESSAGE SEQUENCE :
Endpoint A Endpoint B ULP
DATA ----------------->
[TSN=1] Data Arrive ------->
<----------------- SACK
[TSN ACK=1,Frag=0]
DATA ----------------->
[TSN=2] Data Arrive ------->
<---------------- SACK
TEST DESCRIPTION:
1. Check that TSN ACK value is same as TSN sent by endpoint A
2. Check that endpoint B is sending SACK before T3-rtx timer expires.
3. Check that all the messages are received correctly. (No loss of
messages.)
4. A SACK chunk can acknowledge the reception of multiple data chunk
Sunil, Sandeep,Kuleep,Ashok , Hughes Software Systems [Page 147]
Internet Draft Conformance Test For SCTP Feb 2001
9.2 DELAYED ACKNOWLEDGE
TEST NUMBER : 9.2
Reference: SCTP RFC 2960 Clause 6.2.1
TITLE : Acknowledgement
SUBTITLE : Delayed Acknowledge
PURPOSE : To verify that SCTP receiver B can acknowledge the SCTP
sender A about the reception of multiple data chunk
PRE-TEST CONDITIONS: Arrange the Endpoint A such that it sends multiple
DATA is chunks before receiving SACK
EXPECTED MESSAGE SEQUENCE :
Endpoint A Endpoint B ULP
DATA [TSN=1] -----------------> --------->
DATA [TSN=2] -----------------> --------->
<----------------- SACK
[TSN ACK=2,Frag=0]
TEST DESCRIPTION:
1. Check that endpoint B is sending SACK before T3-rtx timer expires.
2. Check that SACK chunk can acknowledge the reception of multiple data
chunk.
3. Check that , before a sender transmits a data packet if any
received data chunk have not been acknowledged ( due to delay Ack)
the sender should create a SACK and bundle it with outbound data
chunk (this test assumes that endpoint shall ack atleast every
second datagram).
Sunil, Sandeep,Kuleep,Ashok , Hughes Software Systems [Page 148]
Internet Draft Conformance Test For SCTP Feb 2001
9.3 CUMULATIVE TSN ACK
TEST NUMBER : 9.3
Reference: SCTP RFC 2960 Clause 6.2.1
TITLE : SACK
SUBTITLE : cumulative TSN ACK
PURPOSE: To check that if receiver detects gap in the received data
chunk sequence, and SACK with fragment report shall be sent back
immediately.
PRE-TEST CONDITION: Arrange the segmented data such that endpoint B
receive gap in DATA
EXPECTED MESSAGE SEQUENCE :
Endpoint A Endpoint B ULP
DATA [TSN=1] -----------------> Data Arrive ------>
<----------------- SACK
DATA [TSN=2] -----------------> Data Arrive ------->
(Skip TSN 3 )
DATA [TSN=4] -----------------> (TNS 3 lost ,gap detected
immediately send ACK)
-----------------> SACK
[TSN ACK=2,Frag=1,
Strt=2,End=2]
TEST DESCRIPTION:
1. Check that if receiver detects gap in the received data chunk
sequence, and SACK with fragment report shall be sent back
immediately.
2. Check that receiver hold or deliver data to ULP as per ordered or
un-ordered delivery bit.
Sunil, Sandeep,Kuleep,Ashok , Hughes Software Systems [Page 149]
Internet Draft Conformance Test For SCTP Feb 2001
10 Miscellaneous Test Case
10.1 CHUNK TYPE Encoding
TEST NUMBER : 10.1
Reference: SCTP RFC 2960 Clause 3.2
TITLE : Miscellaneous Test Case
SUBTITLE: Chunk type encoding.
PURPOSE: To verify that if a chunk type is not recognized by the
receiver then the highest order 2 bits decide the action that must
be taken.
PRE-TEST CONDITIONS: Association is not established between endpoint
A and B.Arrange the data in endpoint B such that a datagram with
reserved chunk type is sent to endpoint A bundled with DATA chunk in
any state and higher two bytes are set to 11.
EXPECTED MESSAGE SEQUENCE :
Endpoint A Endpoint B ULP
(Closed) (Closed)
INIT ----------------->
<----------------- INIT_ACK
COOKIE-ECHO ------------------>
<------------------ COOKIE_ACK
Communication Up -------->
Chunk type 20 + DATA ------------------>
<------------------ ERROR
<------------------ SACK
DATA ------------------->
<------------------ SACK
Sunil, Sandeep,Kuleep,Ashok , Hughes Software Systems [Page 150]
Internet Draft Conformance Test For SCTP Feb 2001
TEST DESCRIPTION:
1. Attempt to initiate an association from endpoint A to B. In the
established state send a datagram with reserved chunk type bundled
with DATA. Highest order two bits have been set to 11 in the
reserved chunk type.
2. Check A: Datgram with reserved chunk type is discarded and SACK is
sent for the DATA chunk.
3. Check B: ERROR is also received at endpoint A with cause
"Unrecognized Chunk type".
4. Check B: Association is not disturbed.
5. Repeat the above test case if highest order two bits are 00. In this
case, neither ERROR nor SACK will be received at endpoint A and
whole datagram will be discarded.
6. Repeat the above test case if highest order two bits are 01. In this
case, SACK will not be received at endpoint A but ERROR with cause
"Unrecognized Chunk Type" will be received at endpoint A and whole
datagram will be discarded.
7. Repeat the above test case if highest order two bits are 10. In this
case, ERROR will not be received at endpoint A but SACK will be
received at endpoint A.
8. Repeat the above test case for reserved chunk type in other state
like Cookie Wait, Cookie Echoed, Shutdown Sent, Shutdown received,
Shutdown pending and Shutdown-Ack sent. In each state bundle the
appropriate chunk type with reserved chunk type i.e. chunk type
which is allowed in each state.
Sunil, Sandeep,Kuleep,Ashok , Hughes Software Systems [Page 151]
Internet Draft Conformance Test For SCTP Feb 2001
10.2 Parameter Type Encoding
TEST NUMBER : 10.2
Reference: SCTP RFC 2960 Clause 3.2
TITLE : Miscellaneous Test Case
SUBTITLE: Parameter type encoding.
PURPOSE: To verify that if a parameter type is not recognized by the
receiver then the highest order 2 bits decide the action that must be
taken.
PRE-TEST CONDITIONS: Association is not established between endpoint A
and B. Arrange the data in endpoint B such that INIT message with
optional parameter which is not defined for INIT is sent from endpoint
A to B. The highest order two bits of parameter type is 11.
EXPECTED MESSAGE SEQUENCE :
Endpoint A Endpoint B ULP
(Closed) (Closed)
INIT ------------------>
<------------------ INIT-ACK(with Unrecognized
Parameter type)
COOKIE-ECHO ------------------->
<------------------- COOKIE_ACK
Communication Up ----------->
TEST DESCRIPTION:
1. Attempt to initiate an association from endpoint A to B. Send INIT
message with one optional parameter which is not defined in INIT.The
highest order two bits in that parameter should be 11.
2. Check A: That parameter is skipped and INIT-ACK is received at
endpoint A.
3. Check B: Unrecognized parameter type in INIT-ACK contains the
parameter which was not recognized at endpoint B.
4. Repeat the above test case if highest order two bits are 00. In this
case INIT chunk will be discarded.
5. Repeat the above test case if highest order two bits are 01. In this
case, INIT will be discarded but ERROR with cause "Unrecognized
Parameter Type" will be received at endpoint A.
6. Repeat the above test case if highest order two bits are 10. In this
case, INIT-ACK will be received at endpoint A without unrecognized
parameter type.
7. Repeat the above test case for undefined parameter type in INIT-ACK
message. Response will be same.
Sunil, Sandeep,Kuleep,Ashok , Hughes Software Systems [Page 152]
Internet Draft Conformance Test For SCTP Feb 2001
11 Retransmission Timer
11.1 RTO is incremented if T3-rxt expires for DATA chunk(Single IP
address)
TEST NUMBER : 11.1
Reference: SCTP RFC 2960 Clause 6.3.3
TITLE : Retransmission Timer
SUBTITLE: RTO is incremented if T3-rxt expires for a DATA chunk
PURPOSE: To verify that if T3-rxt expires on a destination address then
value of RTO is increased for that address.
PRE-TEST CONDITIONS:Association is established between endpoint A and
B.Arrange the data in endpoint A such that SACK is not sent for the
data received from endpoint B.
EXPECTED MESSAGE SEQUENCE :
Endpoint A Endpoint B ULP
(Established) (Established)
<-----------------Send
<------------------ DATA
Don't send SACK |
| T3-rxt timer expires
|
<------------------ DATA
Don't send SACK |
|
| T3-rxt timer expires
|
<------------------ DATA
TEST DESCRIPTION:
1. Attempt to send DATA from endpoint B to A. Don't send SACK from A.
Let the timer T3-rxt expire. DATA will be retransmitted. Note the
timer. Don't send SACK for the retransmitted DATA. T3-rxt will be
expired again and again DATA will be retransmitted.
Record the messages using a signal emulator.
2. Check A: Value of the second T3-rxt is greater than the first.
Note:Exact calculation of RTO is not tested here. Only it is tested
that it is being incremented.
Sunil, Sandeep,Kuleep,Ashok , Hughes Software Systems [Page 153]
Internet Draft Conformance Test For SCTP Feb 2001
11.2 RTO is incremented if T3-rxt expires for DATA chunk(Multiple IP
addresses)
TEST NUMBER : 11.2
Reference: SCTP RFC 2960 Clause 6.3.3
TITLE : Retransmission Timer
SUBTITLE: RTO is incremented if T3-rxt expires for a DATA chunk
PURPOSE: To verify that if T3-rxt expires on a destination address then
value of RTO is increased for that address.
PRE-TEST CONDITIONS: Association is established between endpoint A
(With IP addresses x and y and Port z) and B. Arrange the data in
endpoint A such that SACK is not sent for the data received.
EXPECTED MESSAGE SEQUENCE :
Endpoint A Endpoint B ULP
(Established) (Established)
<-------- Send
<------------------ DATA (IP = x)
Don't send SACK |
| T3-rxt timer expires
<------------------ DATA (IP = y)
Don't send SACK |
| T3-rxt timer expires
|
<------------------ DATA (IP = x)
Don't send SACK |
| T3-rxt timer expires
|
<------------------ DATA (IP = y)
TEST DESCRIPTION:
1. Attempt to send DATA from endpoint B to A. Don't send SACK from A.
Let the timer T3-rxt expire. DATA will be retransmitted on an
alternate address. Don't send SACK for it also. Now DATA will again
be retransmitted on IP address on which it was initially sent. Don't
send SACK for it and let T3- rxt expire. Note the timer value.Record
the messages using a signal emulator.
2. Check A: Value of the second T3-rxt is greater than the first for IP
address x.
Note: Endpoint B may be having association with more than two IP
addresses. Each time data will be retransmitted on an alternate address
and when DATA has been retransmitted on all addresses then again it
will be retransmitted on the IP address on which it was initially sent.
Note1: Exact calculation of RTO is not tested here. Only it is tested
that it is being incremented.
Sunil, Sandeep,Kuleep,Ashok , Hughes Software Systems [Page 154]
Internet Draft Conformance Test For SCTP Feb 2001
11.3 When DATA is retransmitted to an alternate address then RTO
value corresponding to that address is used.
TEST NUMBER : 11.3
Reference: SCTP RFC 2960 Clause 6.3.3
TITLE : Retransmission Timer
SUBTITLE: When DATA is retransmitted to an alternate address then RTO
value corresponding to that address is used.
PURPOSE: To verify that if DATA is retransmitted on an alternate
address hen RTO value of that address is used and not that of the
previous address.
PRE-TEST CONDITIONS: Association is established between endpoint A
(With IP addresses x and y and Port z) and B. Arrange the data in
endpoint A such that SACK is not sent for the data received. Before
sending the DATA note the T3-rxt value corresponding to both IP
addresses.
EXPECTED MESSAGE SEQUENCE :
Endpoint A Endpoint B ULP
(Established) (Established)
<-------------------Send
<------------------ DATA (IP = x)
Don't send SACK |
| T3-rxt timer expires
<------------------ DATA (IP = y)
Don't send SACK |
| T3-rxt timer expires
|
<------------------ DATA (IP = x)
TEST DESCRIPTION:
1. Attempt to send DATA from endpoint B to A. Don't send SACK from A.
Let the timer T3-rxt Expire. Note this value. DATA will be
retransmitted on an alternate address. Don't send SACK for it Also.
Let T3-rxt expire.
Note the timer value again.
Record the messagesusing a signal emulator.
2. Check A: Value of the second T3-rxt is that corresponding to the IP
address Y.
Sunil, Sandeep,Kuleep,Ashok , Hughes Software Systems [Page 155]
Internet Draft Conformance Test For SCTP Feb 2001
7. Acknowledgement
Authors are highly greatful to Sunil , Harsh and all the members of
VoIP-Stacks group members at Hughes Software Systems . Authors are
thankful to all the members of SIGTRAN mailing list who have floated
their comments on the drafts of SCTP , making it more transparent for
better understanding.
8. Authors Address
Sunil, Sandeep,Kuleep,Ashok
email: hsssigtran@hss.hns.com
Hughes Software Systems
Plot#31, Sector 18
Electronic City
Gurgaon, Haryana
INDIA - 122015
Tel# +91-124-6346666 , 6455 5555
Fax# +91-124- 634 6530
9. References
[1] R. R. Stewart, Q. Xie, K. Morneault, C. Sharp, H. J. Scharzbauer,
T. Taylor, I. Rytina, M. Kalla, L. Zhang, V. Paxson
Simple Control Transmission Protocol RFC 2960
Sunil, Sandeep,Kuleep,Ashok , Hughes Software Systems [Page 156]