Internet DRAFT - draft-tuexen-tsvwg-sctp-scheduling
draft-tuexen-tsvwg-sctp-scheduling
Network Working Group R. Seggelmann
Internet-Draft T-Systems International GmbH
Intended status: Informational R. Stewart
Expires: May 23, 2013 Adara Networks
M. Tuexen
Muenster Univ. of Appl. Sciences
November 19, 2012
Pluggable Stream Scheduling for the Stream Control Transmission Protocol
draft-tuexen-tsvwg-sctp-scheduling-00.txt
Abstract
This document describes pluggable stream scheduling to change the
scheduling behavior of the Stream Control Transmission Protocol
(SCTP).
Pluggable stream scheduling allows to use different scheduling
algorithms to optimize SCTP's behavior in different scenarios.
Status of this Memo
This Internet-Draft is submitted in full conformance with the
provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet-
Drafts is at http://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress."
This Internet-Draft will expire on May 23, 2013.
Copyright Notice
Copyright (c) 2012 IETF Trust and the persons identified as the
document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents
(http://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents
carefully, as they describe your rights and restrictions with respect
Seggelmann, et al. Expires May 23, 2013 [Page 1]
Internet-Draft SCTP Stream Scheduling November 2012
to this document. Code Components extracted from this document must
include Simplified BSD License text as described in Section 4.e of
the Trust Legal Provisions and are provided without warranty as
described in the Simplified BSD License.
Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3
2. SCTP Scheduling API . . . . . . . . . . . . . . . . . . . . . . 3
3. Default scheduling . . . . . . . . . . . . . . . . . . . . . . 4
4. Round-Robin scheduling (SCTP_SS_RR) . . . . . . . . . . . . . . 4
5. Round-Robin per Packet scheduling (SCTP_SS_RR_PACKET) . . . . . 5
6. Priority scheduling (SCTP_SS_PRIORITY) . . . . . . . . . . . . 5
7. Fair Bandwidth scheduling (SCTP_SS_FAIR_BANDWITH) . . . . . . . 5
8. First-Come, First-Serve scheduling (SCTP_SS_FCFS) . . . . . . . 5
9. IANA Considerations . . . . . . . . . . . . . . . . . . . . . . 5
10. Security Considerations . . . . . . . . . . . . . . . . . . . . 5
11. References . . . . . . . . . . . . . . . . . . . . . . . . . . 6
11.1. Normative References . . . . . . . . . . . . . . . . . . . 6
11.2. Informative References . . . . . . . . . . . . . . . . . . 6
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 6
Seggelmann, et al. Expires May 23, 2013 [Page 2]
Internet-Draft SCTP Stream Scheduling November 2012
1. Introduction
1.1. Overview
This document describes pluggable stream scheduling for the Stream
Control Transmission Protocol (SCTP). It allows the user to choose
between multiple scheduling algorithms to optimize the sending
behavior of SCTP in scenarios with different requirements.
1.2. Data Types
This documents uses data types from Draft 6.6 (March 1997) of POSIX
1003.1g: uintN_t means an unsigned integer of exactly N bits (e.g.
uint16_t). This is the same as in [RFC6458]
2. SCTP Scheduling API
This API extends the one described in [RFC6458] by defining two new
socket options. They both use IPPROTO_SCTP at their level.
+-------------------+--------------------------+-----+-----+
| option name | data type | get | set |
+-------------------+--------------------------+-----+-----+
| SCTP_PLUGGABLE_SS | struct sctp_assoc_value | X | X |
| SCTP_SS_VALUE | struct sctp_stream_value | X | X |
+-------------------+--------------------------+-----+-----+
Table 1
A stream scheduler can be selected with the SCTP_PLUGGABLE_SS option
for setsockopt(). The struct sctp_assoc_value is used to specify the
association for which the scheduler should be changed and the value
of the desired algorithm.
The definition of struct sctp_assoc_value is the same as in
[RFC6458]:
struct sctp_assoc_value {
sctp_assoc_t assoc_id;
uint32_t assoc_value;
};
assoc_id: Holds the identifier for the association of which the
scheduler should be changed. The special SCTP_{FUTURE|CURRENT|
ALL}_ASSOC can also be used. This parameter is ignored for one-
to-one style sockets.
Seggelmann, et al. Expires May 23, 2013 [Page 3]
Internet-Draft SCTP Stream Scheduling November 2012
assoc_value: This specifies which scheduler is used. The values
defined in this document are given in Table 2.
+-----------------------+-----------------+
| name | per stream info |
+-----------------------+-----------------+
| SCTP_SS_RR | no |
| SCTP_SS_RR_PACKET | no |
| SCTP_SS_PRIORITY | yes |
| SCTP_SS_FAIR_BANDWITH | no |
| SCTP_SS_FCFS | no |
+-----------------------+-----------------+
Table 2
Some schedulers require additional information to be set for single
streams. This is achieved with the SCTP_SS_VALUE option and the
corresponding struct sctp_stream_value.
The definition of struct sctp_stream_value is as follows:
struct sctp_stream_value {
uint16_t stream_id;
uint16_t stream_value;
};
stream_id: Holds the stream id for the stream for which additional
information has to be provided.
stream_value: The meaning of this field depends on the scheduler
specified. It is ignored when the scheduler does not need
additional information.
3. Default scheduling
By default the standard algorithm of the SCTP implementation will be
used. This is usually either round-robin or first-come, first-serve.
4. Round-Robin scheduling (SCTP_SS_RR)
This scheduler can be used with SCTP_SS_RR for fair scheduling based
on the number of packets per stream. The scheduler cycles trough all
available streams and always selects the first message in the queue
of each stream.
Seggelmann, et al. Expires May 23, 2013 [Page 4]
Internet-Draft SCTP Stream Scheduling November 2012
5. Round-Robin per Packet scheduling (SCTP_SS_RR_PACKET)
This variant of the round-robin scheduler can be activated with the
option SCTP_SS_RR_PACKET. It is a round-robin scheduler but only
bundles user messages of the same stream in one packet. This
minimizes head-of-line blocking when a packet is lost because only a
single stream is affected.
6. Priority scheduling (SCTP_SS_PRIORITY)
Scheduling with different priorities can be used with the option
SCTP_SS_PRIORITY. Streams having a higher priority will be scheduled
first and when multiple streams have the same priority, a round robin
scheduling should be used for them. The priority can be assigned
with the sctp_stream_value struct. The higher the assigned value,
the lower the priority, that is the default value 0 is the highest
priority and therefore the round robin scheduling will be used if no
priorities have been assigned.
7. Fair Bandwidth scheduling (SCTP_SS_FAIR_BANDWITH)
A fair bandwidth distribution between the streams can be activated
with the SCTP_SS_FAIR_BANDWITH option. This scheduler considers the
lengths of the messages of each stream and schedules them in a
certain way to maintain an equal bandwidth for all streams.
8. First-Come, First-Serve scheduling (SCTP_SS_FCFS)
The simple first-come, first-serve algorithm can be selected with the
option SCTP_SS_FCFS. It just passes through the messages in the
order in which they have been delivered by the application. No
modification of the order is done at all.
9. IANA Considerations
This document requires no actions from IANA.
10. Security Considerations
This document does not add any additional security considerations in
addition to the ones given in [RFC4960] and [RFC6458].
Seggelmann, et al. Expires May 23, 2013 [Page 5]
Internet-Draft SCTP Stream Scheduling November 2012
11. References
11.1. Normative References
[RFC4960] Stewart, R., "Stream Control Transmission Protocol",
RFC 4960, September 2007.
11.2. Informative References
[RFC6458] Stewart, R., Tuexen, M., Poon, K., Lei, P., and V.
Yasevich, "Sockets API Extensions for the Stream Control
Transmission Protocol (SCTP)", RFC 6458, December 2011.
Authors' Addresses
Robin Seggelmann
T-Systems International GmbH
Fasanenweg 5
70771 Leinfelden-Echterdingen
DE
Email: robin.seggelmann@t-systems.com
Randall R. Stewart
Adara Networks
Chapin, SC 29036
US
Email: randall@lakerest.net
Michael Tuexen
Muenster University of Applied Sciences
Stegerwaldstrasse 39
48565 Steinfurt
DE
Email: tuexen@fh-muenster.de
Seggelmann, et al. Expires May 23, 2013 [Page 6]