<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE rfc [
<!ENTITY nbsp "&#160;">
<!ENTITY zwsp "&#8203;">
<!ENTITY nbhy "&#8209;">
<!ENTITY wj "&#8288;">
]>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" category="exp" ipr="trust200902" docName="draft-dreibholz-tsvwg-sctpsocket-sqinfo-32" obsoletes="" updates="" submissionType="IETF" xml:lang="en" tocInclude="true" symRefs="false" version="3">
  <?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?>
  <front>
    <title abbrev="Sender Queue Info Option">Sender Queue Info Option for the SCTP Socket API</title>
    <seriesInfo name="Internet-Draft" value="draft-dreibholz-tsvwg-sctpsocket-sqinfo-32"/>
    <!-- ************** THOMAS DREIBHOLZ *************** -->
    <author initials="T." surname="Dreibholz" fullname="Thomas Dreibholz">
      <organization abbrev="SimulaMet">Simula Metropolitan Centre for Digital Engineering</organization>
      <address>
        <postal>
          <street>Stensberggata 27</street>
          <city>0170 Oslo</city>
          <country>Norway</country>
        </postal>
        <email>dreibh@simula.no</email>
        <uri>https://www.simula.no/people/dreibh</uri>
      </address>
    </author>
    <!-- ************** ROBIN SEGGELMANN *************** -->
    <author initials="R." surname="Seggelmann" fullname="Robin Seggelmann">
      <organization abbrev="Münster Univ. of App. Sciences">Münster University of Applied Sciences</organization>
      <address>
        <postal>
          <street>Stegerwaldstraße 39</street>
          <city>48565 Steinfurt</city>
          <country>Germany</country>
        </postal>
        <email>seggelmann@fh-muenster.de</email>
      </address>
    </author>
    <!-- ************** MARTIN BECKE *************** -->
    <author initials="M." surname="Becke" fullname="Martin Becke">
      <organization abbrev="HAW Hamburg">HAW Hamburg, Informatics Department</organization>
      <address>
        <postal>
          <street>Berliner Tor 7</street>
          <city>20099 Hamburg</city>
          <country>Germany</country>
        </postal>
        <phone>+49-40-42875-8104</phone>
        <email>martin.becke@haw-hamburg.de</email>
        <uri>http://www.scimbe.de/about.html</uri>
      </address>
    </author>
    <date day="15" month="March" year="2026" />
    <keyword>Internet-Draft</keyword>
    <abstract>
      <t>This document describes an extension to the SCTP sockets API for querying information about the sender queue.</t>
    </abstract>
  </front>
  <middle>
    <section toc="default">
      <name>Introduction</name>
      <t>This draft describes an extension to the SCTP sockets API (see <xref target="RFC6458" format="default"/>, <xref target="I-D.dreibholz-tsvwg-sctpsocket-multipath" format="default"/> <xref target="RFC4960" format="default"/>) which allows an application to query the sender queue utilization per stream. This information is necessary for applications to make efficient use of a mapping of streams to dissimilar paths. A detailed description including simulation results can be found in <xref target="PFLDNeT2010" format="default"/>.</t>
      <t>In particular, this API extension is useful when using the CMT-SCTP, CMT/RPv1-SCTP, CMT/RPv2-SCTP and MPTCP-like extensions (see <xref target="I-D.tuexen-tsvwg-sctp-multipath" format="default"/>, <xref target="Dre2012" format="default"/>, <xref target="PAMS2012" format="default"/>, <xref target="PAMS2011" format="default"/>, <xref target="ConTEL2011" format="default"/>, <xref target="SoftCOM2011" format="default"/>, <xref target="Globecom2010" format="default"/>) for Concurrent Multipath Transfer (CMT) with SCTP.</t>
    </section>
    <section toc="default">
      <name>Conventions</name>
      <t>
   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL
   NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED",
   "MAY", and "OPTIONAL" in this document are to be interpreted as
   described in BCP 14 <xref target="RFC2119" format="default"/> <xref target="RFC8174" format="default"/> when, and only when, they
   appear in all capitals, as shown here.
</t>
    </section>
    <section toc="default">
      <name>Sender Queue Info (SCTP_SQINFO)</name>
      <t>This socket option obtains
the maximum sender queue size (in bytes),
the current total sender queue utilization (in bytes) as well as
the current utilization per stream (in bytes).</t>
      <t>The following structure is used to obtain the sender queue information:
</t>
      <artwork name="" type="" align="left" alt=""><![CDATA[
struct sctp_sndqueueinfo {
  sctp_assoc_t sq_assoc_id;
  uint32_t     sq_queue_limit;
  uint32_t     sq_total_queued;
  uint32_t     sq_number_of_streams;
  uint32_t     sq_queued_on_stream[];
};
]]></artwork>
      <dl newline="false" spacing="normal">
        <dt>sq_assoc_id:</dt>
        <dd>
This parameter is ignored for one-to-one style sockets. For one-to-many style sockets this parameter indicates which association the user is performing an action upon. It is an error to use SCTP_{CURRENT|ALL}_ASSOC in sq_assoc_id.</dd>
        <dt>sq_queue_limit:</dt>
        <dd>
This field gives the maximum sender queue size in bytes.</dd>
        <dt>sq_total_queued:</dt>
        <dd>
This field gives the current total sender queue utilization in bytes.</dd>
        <dt>sq_number_of_streams:</dt>
        <dd>
This field gives the number of outgoing streams. That is, it will contain the number of valid sq_queued_on_stream entries.
</dd>
        <dt>sq_queued_on_stream:</dt>
        <dd>
This array gives the current number of bytes queued for the streams 0 to sq_number_of_streams-1.</dd>
      </dl>
      <t>Note, that the caller of getsockopt() MUST provide a sctp_sndqueueinfo structure which can hold at least as many sq_queued_on_stream entries as the association's number of outgoing streams. Otherwise, the getsockopt() call will fail and return an error.</t>
    </section>
    <section toc="default">
      <name>Testbed Platform</name>
      <t>A large-scale and realistic Internet testbed platform with support for the multi-homing feature of the underlying SCTP protocol is NorNet. A description of NorNet is provided in <xref target="PAMS2013-NorNet" format="default"/>, <xref target="ComNets2013-Core" format="default"/>, some further information can be found on the project website <xref target="NorNet-Website" format="default"/>.</t>
    </section>
    <section toc="default">
      <name>Security Considerations</name>
      <t>Security considerations for the SCTP sockets API are described by
   <xref target="RFC6458" format="default"/>.</t>
    </section>
    <section toc="default">
      <name>IANA Considerations</name>
      <t>This document does not require IANA actions.</t>
    </section>
    <section toc="default">
      <name>Acknowledgments</name>
      <t>
   The authors would like to thank
   Michael Tuexen and Irene Ruengeler
   for their support.
</t>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references>
        <name>Normative References</name>
        <reference anchor="RFC2119" target="https://www.rfc-editor.org/info/rfc2119" xml:base="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author initials="S." surname="Bradner" fullname="S. Bradner">
              <organization/>
            </author>
            <date year="1997" month="March"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification.  These words are often capitalized. This document defines these words as they should be interpreted in IETF documents.  This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC8174" target="https://www.rfc-editor.org/info/rfc8174" xml:base="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author initials="B." surname="Leiba" fullname="B. Leiba">
              <organization/>
            </author>
            <date year="2017" month="May"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol  specifications.  This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the  defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
        <reference anchor="RFC4960" target="https://www.rfc-editor.org/info/rfc4960" xml:base="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.4960.xml">
          <front>
            <title>Stream Control Transmission Protocol</title>
            <author initials="R." surname="Stewart" fullname="R. Stewart" role="editor">
              <organization/>
            </author>
            <date year="2007" month="September"/>
            <abstract>
              <t>This document obsoletes RFC 2960 and RFC 3309.  It describes the Stream Control Transmission Protocol (SCTP).  SCTP is designed to transport Public Switched Telephone Network (PSTN) signaling messages over IP networks, but is capable of broader applications.</t>
              <t>SCTP is a reliable transport protocol operating on top of a connectionless packet network such as IP.  It offers the following services to its users:</t>
              <t>--  acknowledged error-free non-duplicated transfer of user data,</t>
              <t>--  data fragmentation to conform to discovered path MTU size,</t>
              <t>--  sequenced delivery of user messages within multiple streams, with an option for order-of-arrival delivery of individual user messages,</t>
              <t>--  optional bundling of multiple user messages into a single SCTP packet, and</t>
              <t>--  network-level fault tolerance through supporting of multi-homing at either or both ends of an association.</t>
              <t> The design of SCTP includes appropriate congestion avoidance behavior and resistance to flooding and masquerade attacks.  [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4960"/>
          <seriesInfo name="DOI" value="10.17487/RFC4960"/>
        </reference>
        <reference anchor="RFC6458" target="https://www.rfc-editor.org/info/rfc6458" xml:base="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.6458.xml">
          <front>
            <title>Sockets API Extensions for the Stream Control Transmission Protocol (SCTP)</title>
            <author initials="R." surname="Stewart" fullname="R. Stewart">
              <organization/>
            </author>
            <author initials="M." surname="Tuexen" fullname="M. Tuexen">
              <organization/>
            </author>
            <author initials="K." surname="Poon" fullname="K. Poon">
              <organization/>
            </author>
            <author initials="P." surname="Lei" fullname="P. Lei">
              <organization/>
            </author>
            <author initials="V." surname="Yasevich" fullname="V. Yasevich">
              <organization/>
            </author>
            <date year="2011" month="December"/>
            <abstract>
              <t>This document describes a mapping of the Stream Control Transmission Protocol (SCTP) into a sockets API.  The benefits of this mapping include compatibility for TCP applications, access to new SCTP features, and a consolidated error and event notification scheme. This document is not an Internet Standards Track specification; it is published for informational purposes.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6458"/>
          <seriesInfo name="DOI" value="10.17487/RFC6458"/>
        </reference>
        <reference anchor="I-D.tuexen-tsvwg-sctp-multipath" xml:base="https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference.I-D.tuexen-tsvwg-sctp-multipath.xml" target="https://www.ietf.org/archive/id/draft-tuexen-tsvwg-sctp-multipath-23.txt">
          <front>
            <title>Load Sharing for the Stream Control Transmission Protocol (SCTP)</title>
            <author fullname="Paul D. Amer">
              <organization>University of Delaware</organization>
            </author>
            <author fullname="Martin Becke">
              <organization>HAW Hamburg</organization>
            </author>
            <author fullname="Thomas Dreibholz">
              <organization>SimulaMet</organization>
            </author>
            <author fullname="Nasif Ekiz">
              <organization>University of Delaware</organization>
            </author>
            <author fullname="Janardhan Iyengar">
              <organization>Franklin and Marshall College</organization>
            </author>
            <author fullname="Preethi Natarajan">
              <organization>Cisco Systems</organization>
            </author>
            <author fullname="Randall R. Stewart">
              <organization>Netflix</organization>
            </author>
            <author fullname="Michael Tuexen">
              <organization>Muenster Univ. of Appl. Sciences</organization>
            </author>
            <date month="February" day="9" year="2022"/>
            <abstract>
              <t>   The Stream Control Transmission Protocol (SCTP) supports multi-homing
   for providing network fault tolerance.  However, mainly one path is
   used for data transmission.  Only timer-based retransmissions are
   carried over other paths as well.

   This document describes how multiple paths can be used simultaneously
   for transmitting user messages.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-tuexen-tsvwg-sctp-multipath-23"/>
        </reference>
        <reference anchor="I-D.dreibholz-tsvwg-sctpsocket-multipath" xml:base="https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference.I-D.dreibholz-tsvwg-sctpsocket-multipath.xml" target="https://www.ietf.org/archive/id/draft-dreibholz-tsvwg-sctpsocket-multipath-23.txt">
          <front>
            <title>SCTP Socket API Extensions for Concurrent Multipath Transfer</title>
            <author fullname="Thomas Dreibholz">
              <organization>SimulaMet</organization>
            </author>
            <author fullname="Martin Becke">
              <organization>HAW Hamburg</organization>
            </author>
            <author fullname="Hakim Adhari">
              <organization>University of Duisburg-Essen</organization>
            </author>
            <date month="September" day="6" year="2021"/>
            <abstract>
              <t>   This document describes extensions to the SCTP sockets API for
   configuring the CMT-SCTP and CMT/RP-SCTP extensions.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-dreibholz-tsvwg-sctpsocket-multipath-23"/>
        </reference>
      </references>
      <references>
        <name>Informative References</name>
        <reference anchor="PFLDNeT2010" target="https://www.wiwi.uni-due.de/fileadmin/fileupload/I-TDR/SCTP/Paper/PFLDNeT2010.pdf">
          <front>
            <title>Transmission Scheduling Optimizations for Concurrent Multipath Transfer</title>
            <author initials="T." surname="Dreibholz" fullname="Thomas&nbsp;Dreibholz"/>
            <author initials="R." surname="Seggelmann" fullname="Robin&nbsp;Seggelmann"/>
            <author initials="M." surname="Tüxen" fullname="Michael&nbsp;Tüxen"/>
            <author initials="E.&nbsp;P." surname="Rathgeb" fullname="Erwin Paul&nbsp;Rathgeb"/>
            <date day="29" month="November" year="2010"/>
          </front>
          <seriesInfo name="Proceedings of the 8th International Workshop on Protocols for Future, Large-Scale and Diverse Network Transports&nbsp;(PFLDNeT)" value="Volume 8, ISSN&nbsp;2074-5168"/>
        </reference>
        <reference anchor="Globecom2010" target="https://www.wiwi.uni-due.de/fileadmin/fileupload/I-TDR/SCTP/Paper/Globecom2010.pdf">
          <front>
            <title>On the Use of Concurrent Multipath Transfer over Asymmetric Paths</title>
            <author initials="T." surname="Dreibholz" fullname="Thomas&nbsp;Dreibholz"/>
            <author initials="M." surname="Becke" fullname="Martin&nbsp;Becke"/>
            <author initials="E.&nbsp;P." surname="Rathgeb" fullname="Erwin Paul&nbsp;Rathgeb"/>
            <author initials="M." surname="Tüxen" fullname="Michael&nbsp;Tüxen"/>
            <date day="7" month="December" year="2010"/>
          </front>
          <seriesInfo name="Proceedings of the IEEE Global Communications Conference&nbsp;(GLOBECOM)" value="ISBN&nbsp;978-1-4244-5637-6, DOI&nbsp;10.1109/GLOCOM.2010.5683579"/>
        </reference>
        <reference anchor="PAMS2011" target="https://www.wiwi.uni-due.de/fileadmin/fileupload/I-TDR/SCTP/Paper/PAMS2011.pdf">
          <front>
            <title>Evaluation of Concurrent Multipath Transfer over Dissimilar Paths</title>
            <author initials="H." surname="Adhari" fullname="Hakim&nbsp;Adhari"/>
            <author initials="T." surname="Dreibholz" fullname="Thomas&nbsp;Dreibholz"/>
            <author initials="M." surname="Becke" fullname="Martin&nbsp;Becke"/>
            <author initials="E.&nbsp;P." surname="Rathgeb" fullname="Erwin Paul&nbsp;Rathgeb"/>
            <author initials="M." surname="Tüxen" fullname="Michael&nbsp;Tüxen"/>
            <date day="22" month="March" year="2011"/>
          </front>
          <seriesInfo name="Proceedings of the 1st International Workshop on Protocols and Applications with Multi-Homing Support&nbsp;(PAMS)" value="Pages 708-714, ISBN&nbsp;978-0-7695-4338-3, DOI&nbsp;10.1109/WAINA.2011.92"/>
        </reference>
        <reference anchor="ConTEL2011" target="https://www.wiwi.uni-due.de/fileadmin/fileupload/I-TDR/SCTP/Paper/ConTEL2011.pdf">
          <front>
            <title>On the Impact of Congestion Control for Concurrent Multipath Transfer on the Transport Layer</title>
            <author initials="T." surname="Dreibholz" fullname="Thomas&nbsp;Dreibholz"/>
            <author initials="M." surname="Becke" fullname="Martin&nbsp;Becke"/>
            <author initials="H." surname="Adhari" fullname="Hakim&nbsp;Adhari"/>
            <author initials="E.&nbsp;P." surname="Rathgeb" fullname="Erwin Paul&nbsp;Rathgeb"/>
            <date day="16" month="June" year="2011"/>
          </front>
          <seriesInfo name="Proceedings of the 11th IEEE International Conference on Telecommunications&nbsp;(ConTEL)" value="Pages 397-404, ISBN&nbsp;978-953-184-152-8"/>
        </reference>
        <reference anchor="SoftCOM2011" target="https://www.wiwi.uni-due.de/fileadmin/fileupload/I-TDR/SCTP/Paper/SoftCOM2011.pdf">
          <front>
            <title>Evaluation of A New Multipath Congestion Control Scheme using the NetPerfMeter Tool-Chain</title>
            <author initials="T." surname="Dreibholz" fullname="Thomas&nbsp;Dreibholz"/>
            <author initials="M." surname="Becke" fullname="Martin&nbsp;Becke"/>
            <author initials="H." surname="Adhari" fullname="Hakim&nbsp;Adhari"/>
            <author initials="E.&nbsp;P." surname="Rathgeb" fullname="Erwin Paul&nbsp;Rathgeb"/>
            <date day="16" month="September" year="2011"/>
          </front>
          <seriesInfo name="Proceedings of the 19th IEEE International Conference on Software, Telecommunications and Computer Networks&nbsp;(SoftCOM)" value="Pages 1-6, ISBN&nbsp;978-953-290-027-9"/>
        </reference>
        <reference anchor="PAMS2012" target="https://www.wiwi.uni-due.de/fileadmin/fileupload/I-TDR/SCTP/Paper/PAMS2012.pdf">
          <front>
            <title>Simulation and Experimental Evaluation of Multipath Congestion Control Strategies</title>
            <author initials="T." surname="Dreibholz" fullname="Thomas&nbsp;Dreibholz"/>
            <author initials="H." surname="Adhari" fullname="Hakim&nbsp;Adhari"/>
            <author initials="M." surname="Becke" fullname="Martin&nbsp;Becke"/>
            <author initials="E.&nbsp;P." surname="Rathgeb" fullname="Erwin Paul&nbsp;Rathgeb"/>
            <date day="29" month="March" year="2012"/>
          </front>
          <seriesInfo name="Proceedings of the 2nd International Workshop on Protocols and Applications with Multi-Homing Support&nbsp;(PAMS)" value="ISBN&nbsp;978-0-7695-4652-0, DOI&nbsp;10.1109/WAINA.2012.186"/>
        </reference>
        <reference anchor="Dre2012" target="https://duepublico.uni-duisburg-essen.de/servlets/DerivateServlet/Derivate-29737/Dre2012_final.pdf">
          <front>
            <title>Evaluation and Optimisation of Multi-Path Transport using the Stream Control Transmission Protocol</title>
            <author initials="T." surname="Dreibholz" fullname="Thomas&nbsp;Dreibholz"/>
            <date day="13" month="March" year="2012"/>
          </front>
          <seriesInfo name="" value="Habilitation Treatise"/>
        </reference>
        <reference anchor="PAMS2013-NorNet" target="https://www.simula.no/file/threfereedinproceedingsreference2012-12-207643198512pdf/download">
          <front>
            <title>Design and Implementation of the NorNet Core Research Testbed for Multi-Homed Systems</title>
            <author initials="T." surname="Dreibholz" fullname="Thomas&nbsp;Dreibholz"/>
            <author initials="E.&nbsp;G." surname="Gran" fullname="Ernst Gunnar&nbsp;Gran"/>
            <date day="27" month="March" year="2013"/>
          </front>
          <seriesInfo name="Proceedings of the 3nd International Workshop on Protocols and Applications with Multi-Homing Support&nbsp;(PAMS)" value="Pages 1094-1100, ISBN&nbsp;978-0-7695-4952-1, DOI&nbsp;10.1109/WAINA.2013.71"/>
        </reference>
        <reference anchor="ComNets2013-Core" target="https://www.simula.no/file/simulasimula2236pdf/download">
          <front>
            <title>NorNet Core – A Multi-Homed Research Testbed</title>
            <author initials="E.&nbsp;G." surname="Gran" fullname="Ernst Gunnar&nbsp;Gran"/>
            <author initials="T." surname="Dreibholz" fullname="Thomas&nbsp;Dreibholz"/>
            <author initials="A." surname="Kvalbein" fullname="Amund&nbsp;Kvalbein"/>
            <date day="14" month="March" year="2014"/>
          </front>
          <seriesInfo name="Computer Networks, Special Issue on Future Internet Testbeds" value="Volume 61, Pages 75-87, ISSN&nbsp;1389-1286, DOI&nbsp;10.1016/j.bjp.2013.12.035"/>
        </reference>
        <reference anchor="NorNet-Website" target="https://www.nntb.no/">
          <front>
            <title>NorNet – A Real-World, Large-Scale Multi-Homing Testbed</title>
            <author initials="T." surname="Dreibholz" fullname="Thomas Dreibholz"/>
            <date year="2022"/>
          </front>
        </reference>
      </references>
    </references>
  </back>
</rfc>
