<?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-33" obsoletes="" updates="" 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-33" />
  <!-- ************** 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="16" month="September" 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 document describes an extension to the SCTP sockets API (see
    <xref target="RFC6458" />,
    <xref target="I-D.dreibholz-tsvwg-sctpsocket-multipath" />,
    <xref target="RFC9260" />) that 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" />.
   </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" />,
    <xref target="Dre2012" />, <xref target="PAMS2012" />,
    <xref target="PAMS2011" />, <xref target="ConTEL2011" />,
    <xref target="SoftCOM2011" />, <xref target="Globecom2010" />) for
    Concurrent Multipath Transfer (CMT) with SCTP.
   </t>
  </section>
  <section toc="default">
   <name>Conventions</name>
   <t>
    The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>",
    "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
    NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>",
    "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
    "<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are
    to be interpreted as described in BCP 14 <xref target="RFC2119" />
    <xref target="RFC8174" /> 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() <bcp14>MUST</bcp14> provide a
    sctp_sndqueueinfo structure that 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="ComNets2013-Core" />
    and <xref target="PAMS2013-NorNet" />. Further information can be found on
    the project website <xref target="NorNet-Website" />.
   </t>
  </section>
  <section toc="default">
   <name>Security Considerations</name>
   <t>
    Security considerations for the SCTP sockets API are described in
    <xref target="RFC6458" />.
   </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 Tüxen and Irene Rüngeler for their
    support.
   </t>
  </section>
 </middle>
 <back>
  <references>
   <name>Normative References</name>
   <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml" />
   <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml" />
   <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9260.xml" />
   <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6458.xml" />
   <xi:include href="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.tuexen-tsvwg-sctp-multipath.xml" />
   <xi:include href="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.dreibholz-tsvwg-sctpsocket-multipath.xml" />
  </references>
  <references>
   <name>Informative References</name>
   <reference anchor="PFLDNeT2010" target="https://web.archive.org/web/20260420112909/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://web.archive.org/web/20260420112909/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://web.archive.org/web/20260420112909/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://web.archive.org/web/20260420112909/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://web.archive.org/web/20260420112909/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://web.archive.org/web/20260420112909/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://www.nntb.no/~dreibh/habilitation/Dre2012.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://web-backend.simula.no/sites/default/files/publications/threfereedinproceedingsreference.2012-12-20.7643198512.pdf">
    <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 3rd 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://web-backend.simula.no/sites/default/files/publications/Simula.simula.2236.pdf">
    <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="2026" month="September" day="16" />
    </front>
   </reference>
  </references>
 </back>
</rfc>
