draft-ietf-tsvwg-sctp-strrst-07.txt   draft-ietf-tsvwg-sctp-strrst-08.txt 
Network Working Group R. Stewart Network Working Group R. Stewart
Internet-Draft Huawei Internet-Draft Huawei
Intended status: Standards Track P. Lei Intended status: Standards Track P. Lei
Expires: April 28, 2011 Cisco Systems, Inc. Expires: June 2, 2011 Cisco Systems, Inc.
M. Tuexen M. Tuexen
Muenster Univ. of Applied Sciences Muenster Univ. of Applied Sciences
October 25, 2010 November 29, 2010
Stream Control Transmission Protocol (SCTP) Stream Reconfiguration Stream Control Transmission Protocol (SCTP) Stream Reconfiguration
draft-ietf-tsvwg-sctp-strrst-07.txt draft-ietf-tsvwg-sctp-strrst-08.txt
Abstract Abstract
Many applications that use SCTP want the ability to "reset" a stream. Many applications that use SCTP want the ability to "reset" a stream.
The intention of resetting a stream is to set the numbering sequence The intention of resetting a stream is to set the numbering sequence
of the stream back to 'zero' with a corresponding notification to the of the stream back to 'zero' with a corresponding notification to the
upper layer that this has been performed. The applications that want upper layer that this has been performed. The applications that want
this feature want it so that they can "re-use" streams for different this feature want it so that they can "re-use" streams for different
purposes but still utilize the stream sequence number so that the purposes but still utilize the stream sequence number so that the
application can track the message flows. Thus, without this feature, application can track the message flows. Thus, without this feature,
skipping to change at page 1, line 44 skipping to change at page 1, line 44
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet- working documents as Internet-Drafts. The list of current Internet-
Drafts is at http://datatracker.ietf.org/drafts/current/. Drafts is at http://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress." material or to cite them other than as "work in progress."
This Internet-Draft will expire on April 28, 2011. This Internet-Draft will expire on June 2, 2011.
Copyright Notice Copyright Notice
Copyright (c) 2010 IETF Trust and the persons identified as the Copyright (c) 2010 IETF Trust and the persons identified as the
document authors. All rights reserved. document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents Provisions Relating to IETF Documents
(http://trustee.ietf.org/license-info) in effect on the date of (http://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents publication of this document. Please review these documents
skipping to change at page 2, line 49 skipping to change at page 2, line 49
Streams Request Parameter . . . . . . . . . . . . . . 16 Streams Request Parameter . . . . . . . . . . . . . . 16
5.2. Receiver Side Procedures . . . . . . . . . . . . . . . . . 16 5.2. Receiver Side Procedures . . . . . . . . . . . . . . . . . 16
5.2.1. Receiver Side Procedures for the Stream Reset Chunk . 16 5.2.1. Receiver Side Procedures for the Stream Reset Chunk . 16
5.2.2. Receiver Side Procedures for the Outgoing SSN 5.2.2. Receiver Side Procedures for the Outgoing SSN
Reset Request Parameter . . . . . . . . . . . . . . . 16 Reset Request Parameter . . . . . . . . . . . . . . . 16
5.2.3. Receiver Side Procedures for the Incoming SSN 5.2.3. Receiver Side Procedures for the Incoming SSN
Reset Request Parameter . . . . . . . . . . . . . . . 17 Reset Request Parameter . . . . . . . . . . . . . . . 17
5.2.4. Receiver Side Procedures for the SSN/TSN Reset 5.2.4. Receiver Side Procedures for the SSN/TSN Reset
Request Parameter . . . . . . . . . . . . . . . . . . 18 Request Parameter . . . . . . . . . . . . . . . . . . 18
5.2.5. Receiver Side Procedures for the Add Outgoing 5.2.5. Receiver Side Procedures for the Add Outgoing
Streams Request Parameter . . . . . . . . . . . . . . 18 Streams Request Parameter . . . . . . . . . . . . . . 19
5.2.6. Receiver Side Procedures for the Stream Reset 5.2.6. Receiver Side Procedures for the Stream Reset
Response Parameter . . . . . . . . . . . . . . . . . . 18 Response Parameter . . . . . . . . . . . . . . . . . . 19
6. Socket API Considerations . . . . . . . . . . . . . . . . . . 19 6. Socket API Considerations . . . . . . . . . . . . . . . . . . 20
6.1. Events . . . . . . . . . . . . . . . . . . . . . . . . . . 19 6.1. Events . . . . . . . . . . . . . . . . . . . . . . . . . . 20
6.1.1. Stream Reset Event . . . . . . . . . . . . . . . . . . 20 6.1.1. Stream Reset Event . . . . . . . . . . . . . . . . . . 21
6.1.2. Association Reset Event . . . . . . . . . . . . . . . 21 6.1.2. Association Reset Event . . . . . . . . . . . . . . . 22
6.1.3. Stream Change Event . . . . . . . . . . . . . . . . . 22 6.1.3. Stream Change Event . . . . . . . . . . . . . . . . . 23
6.2. Event Subscription . . . . . . . . . . . . . . . . . . . . 23 6.2. Event Subscription . . . . . . . . . . . . . . . . . . . . 24
6.3. Socket Options . . . . . . . . . . . . . . . . . . . . . . 24 6.3. Socket Options . . . . . . . . . . . . . . . . . . . . . . 25
6.3.1. Enable/Disable Stream Reset 6.3.1. Enable/Disable Stream Reset
(SCTP_ENABLE_STREAM_RESET) . . . . . . . . . . . . . . 24 (SCTP_ENABLE_STREAM_RESET) . . . . . . . . . . . . . . 25
6.3.2. Reset Incoming and/or Outgoing Streams 6.3.2. Reset Incoming and/or Outgoing Streams
(SCTP_RESET_STREAMS) . . . . . . . . . . . . . . . . . 25 (SCTP_RESET_STREAMS) . . . . . . . . . . . . . . . . . 26
6.3.3. Reset SSN/TSN (SCTP_RESET_ASSOC) . . . . . . . . . . . 26 6.3.3. Reset SSN/TSN (SCTP_RESET_ASSOC) . . . . . . . . . . . 27
6.3.4. Add Outgoing Streams (SCTP_ADD_OUT_STREAMS) . . . . . 26 6.3.4. Add Outgoing Streams (SCTP_ADD_OUT_STREAMS) . . . . . 27
7. Security Considerations . . . . . . . . . . . . . . . . . . . 27 7. Security Considerations . . . . . . . . . . . . . . . . . . . 27
8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 27 8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 28
8.1. A New Chunk Type . . . . . . . . . . . . . . . . . . . . . 28 8.1. A New Chunk Type . . . . . . . . . . . . . . . . . . . . . 28
8.2. Five New Parameter Types . . . . . . . . . . . . . . . . . 28 8.2. Five New Parameter Types . . . . . . . . . . . . . . . . . 29
9. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 28 9. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 29
Appendix A. Examples of the Stream Reset procedures . . . . . . . 29 Appendix A. Examples of the Stream Reset procedures . . . . . . . 29
10. References . . . . . . . . . . . . . . . . . . . . . . . . . . 30 10. References . . . . . . . . . . . . . . . . . . . . . . . . . . 30
10.1. Normative References . . . . . . . . . . . . . . . . . . . 30 10.1. Normative References . . . . . . . . . . . . . . . . . . . 30
10.2. Informative References . . . . . . . . . . . . . . . . . . 30 10.2. Informative References . . . . . . . . . . . . . . . . . . 31
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 30 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 31
1. Introduction 1. Introduction
Many applications that use SCTP want the ability to "reset" a stream. Many applications that use SCTP want the ability to "reset" a stream.
The intention of resetting a stream is to set the numbering sequence The intention of resetting a stream is to set the numbering sequence
of the stream back to 'zero' with a corresponding notification to the of the stream back to 'zero' with a corresponding notification to the
upper layer that this has been performed. The applications that want upper layer that this has been performed. The applications that want
this feature want to "re-use" streams for different purposes but this feature want to "re-use" streams for different purposes but
still utilize the stream sequence number so that the application can still utilize the stream sequence number so that the application can
track the message flows. Thus, without this feature, a new use of an track the message flows. Thus, without this feature, a new use of an
skipping to change at page 14, line 43 skipping to change at page 14, line 43
Reset Request Parameter. Reset Request Parameter.
B3: The Incoming SSN Reset Request Parameter MUST be put into a B3: The Incoming SSN Reset Request Parameter MUST be put into a
STREAM RESET Chunk. It MAY be put together with an Outgoing SSN STREAM RESET Chunk. It MAY be put together with an Outgoing SSN
Reset Request Parameter but MUST NOT be put together with any Reset Request Parameter but MUST NOT be put together with any
other parameter. other parameter.
B4: The STREAM RESET Chunk MUST be sent following the rules given in B4: The STREAM RESET Chunk MUST be sent following the rules given in
Section 5.1.1. Section 5.1.1.
When sending a Incoming SSN Reset Request their is a potential that
the peer has just reset or is in the process of resetting the same
streams via an Outgoing SSN Reset Request. This collision scenario
is discussed in Section 5.2.3.
5.1.4. Sender Side Procedures for the SSN/TSN Reset Request Parameter 5.1.4. Sender Side Procedures for the SSN/TSN Reset Request Parameter
When an SCTP sender wants to reset the SSNs and TSNs it can send an When an SCTP sender wants to reset the SSNs and TSNs it can send an
SSN/TSN Reset Request Parameter provided that the Stream Reset Timer SSN/TSN Reset Request Parameter provided that the Stream Reset Timer
is not running. The following steps must be followed: is not running. The following steps must be followed:
C1: The sender MUST assign the next stream reset request sequence C1: The sender MUST assign the next stream reset request sequence
number and put it into the Stream Reset Request Sequence Number number and put it into the Stream Reset Request Sequence Number
field of the SSN/TSN Reset Request Parameter. After assigning field of the SSN/TSN Reset Request Parameter. After assigning
it the next stream reset request sequence number MUST be it the next stream reset request sequence number MUST be
skipping to change at page 18, line 5 skipping to change at page 17, line 52
In the case that the endpoint is willing to perform a stream reset In the case that the endpoint is willing to perform a stream reset
the following steps must be followed: the following steps must be followed:
F1: An Outgoing SSN Reset Request Parameter MUST be put into an F1: An Outgoing SSN Reset Request Parameter MUST be put into an
STREAM RESET chunk according to Section 5.1.2. STREAM RESET chunk according to Section 5.1.2.
F2: The STREAM RESET chunk MUST be sent after the incoming STREAM F2: The STREAM RESET chunk MUST be sent after the incoming STREAM
RESET chunk is processed completely. RESET chunk is processed completely.
If the endpoint is un-willing to perform the stream reset it MUST
send a Stream Reset Response Parameter with the appropriate error set
to "Denied".
When a peer endpoint requests a Incoming SSN Reset Request it is
possible that the local endpoint has just sent an Outgoing SSN Reset
Request on the same stream and has not yet received a response. In
such a case the local endpoint SHOULD silently discard the request
and continue processing any other request found in the Stream Reset
Chunk.
It is also possible that the Incoming request will arrive after the
Outgoing SSN Reset Request just completed. In such a case all of the
streams being requested will be already set to 0. If so, the local
endpoint SHOULD send back a Stream Reset Response with the success
code "Nothing to do".
Note that in either race condition the local endpoint could
optionally also perform the reset. This would result in streams that
are already at sequence 0 being reset again to 0 which would cause no
harm to the application but will add an extra message to the network.
5.2.4. Receiver Side Procedures for the SSN/TSN Reset Request Parameter 5.2.4. Receiver Side Procedures for the SSN/TSN Reset Request Parameter
In the case that the endpoint is willing to perform an SSN/TSN reset In the case that the endpoint is willing to perform an SSN/TSN reset
the following steps must be followed: the following steps must be followed:
G1: Compute an appropriate value for the Receiver's next TSN, the G1: Compute an appropriate value for the Receiver's next TSN, the
TSN the peer should use to send the next DATA chunk. The value TSN the peer should use to send the next DATA chunk. The value
SHOULD be the smallest TSN not acknowledged by the receiver of SHOULD be the smallest TSN not acknowledged by the receiver of
the request plus 2^31. the request plus 2^31.
skipping to change at page 28, line 47 skipping to change at page 29, line 26
Chunk Parameter Type Value Chunk Parameter Type Value
-------------------- ---------- -------------------- ----------
Outgoing SSN Reset Request Parameter 13 (0x000d) Outgoing SSN Reset Request Parameter 13 (0x000d)
Incoming SSN Reset Request Parameter 14 (0x000e) Incoming SSN Reset Request Parameter 14 (0x000e)
SSN/TSN Reset Request Parameter 15 (0x000f) SSN/TSN Reset Request Parameter 15 (0x000f)
Stream Reset Response Parameter 16 (0x0010) Stream Reset Response Parameter 16 (0x0010)
Add Outgoing Streams Request Parameter 17 (0x0011) Add Outgoing Streams Request Parameter 17 (0x0011)
9. Acknowledgments 9. Acknowledgments
The authors wish to thank Paul Aitken, Gorry Fairhurst, Tom Pelch, The authors wish to thank Paul Aitken, Gorry Fairhurst, Tom Petch,
Kacheong Poon, Irene Ruengeler, Robin Seggelmann, and Vlad Yasevich Kacheong Poon, Irene Ruengeler, Robin Seggelmann, and Vlad Yasevich
for there invaluable comments. for there invaluable comments.
Appendix A. Examples of the Stream Reset procedures Appendix A. Examples of the Stream Reset procedures
Please note that this appendix is informational only. Please note that this appendix is informational only.
The following message flows between an Endpoint A and an Endpoint Z The following message flows between an Endpoint A and an Endpoint Z
illustrate the described procedures. The time progresses in downward illustrate the described procedures. The time progresses in downward
direction. direction.
skipping to change at page 30, line 36 skipping to change at page 31, line 17
Protocol (SCTP) Chunk Flags Registration", Protocol (SCTP) Chunk Flags Registration",
draft-ietf-tsvwg-sctp-chunk-flags-02 (work in progress), draft-ietf-tsvwg-sctp-chunk-flags-02 (work in progress),
October 2010. October 2010.
10.2. Informative References 10.2. Informative References
[I-D.ietf-tsvwg-sctpsocket] [I-D.ietf-tsvwg-sctpsocket]
Stewart, R., Poon, K., Tuexen, M., Yasevich, V., and P. Stewart, R., Poon, K., Tuexen, M., Yasevich, V., and P.
Lei, "Sockets API Extensions for Stream Control Lei, "Sockets API Extensions for Stream Control
Transmission Protocol (SCTP)", Transmission Protocol (SCTP)",
draft-ietf-tsvwg-sctpsocket-23 (work in progress), draft-ietf-tsvwg-sctpsocket-24 (work in progress),
July 2010. October 2010.
Authors' Addresses Authors' Addresses
Randall R. Stewart Randall R. Stewart
Huawei Huawei
Chapin, SC 29036 Chapin, SC 29036
USA USA
Email: rstewart@huawei.com Email: randall@lakerest.net
Peter Lei Peter Lei
Cisco Systems, Inc. Cisco Systems, Inc.
8735 West Higgins Road 8735 West Higgins Road
Suite 300 Suite 300
Chicago, IL 60631 Chicago, IL 60631
USA USA
Email: peterlei@cisco.com Email: peterlei@cisco.com
Michael Tuexen Michael Tuexen
 End of changes. 17 change blocks. 
26 lines changed or deleted 54 lines changed or added

This html diff was produced by rfcdiff 1.40. The latest version is available from http://tools.ietf.org/tools/rfcdiff/