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]