<?xml version="1.0" encoding="US-ASCII"?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd">
<?rfc toc="yes"?>
<?rfc tocompact="yes"?>
<?rfc tocdepth="3"?>
<?rfc tocindent="yes"?>
<?rfc symrefs="yes"?>
<?rfc sortrefs="yes"?>
<?rfc comments="yes"?>
<?rfc inline="yes"?>
<?rfc compact="yes"?>
<?rfc subcompact="no"?>
<rfc category="std" docName="draft-geng-idr-bgp-ls-enhanced-detnet-01"
     ipr="trust200902">
  <front>
    <title abbrev="draft-geng-idr-bgp-ls-enhanced-detnet-00">BGP - Link State
    (BGP-LS) Advertisement of IGP DetNet Extensions</title>

    <author fullname="Xuesong Geng" initials="X." surname="Geng">
      <organization>Huawei</organization>

      <address>
        <postal>
          <street/>

          <city/>

          <code/>

          <country/>
        </postal>

        <email>gengxuesong@huawei.com</email>
      </address>
    </author>

    <author fullname="Zhenbin Li" initials="Z." surname="Li">
      <organization>Huawei</organization>

      <address>
        <postal>
          <street/>

          <city/>

          <region/>

          <code/>

          <country/>
        </postal>

        <phone/>

        <facsimile/>

        <email>lizhenbin@huawei.com</email>

        <uri/>
      </address>
    </author>

    <author fullname="Tianran Zhou" initials="T." surname="Zhou">
      <organization>Huawei</organization>

      <address>
        <postal>
          <street/>

          <city/>

          <region/>

          <code/>

          <country/>
        </postal>

        <phone/>

        <facsimile/>

        <email>zhoutianran@huawei.com</email>

        <uri/>
      </address>
    </author>

    <date day="13" month="March" year="2023"/>

    <area>Routing Area</area>

    <workgroup>IDR Working Group</workgroup>

    <keyword>Sample</keyword>

    <keyword>Draft</keyword>

    <abstract>
      <t>This document defines extensions to BGP-LS to distribute the enhanced
      DetNet information</t>
    </abstract>

    <note title="Requirements Language">
      <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
      "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
      document are to be interpreted as described in <xref
      target="RFC2119">RFC 2119</xref>.</t>
    </note>
  </front>

  <middle>
    <section title="Introduction">
      <t>DetNet<xref target="RFC8655"/> provides the capability to carry
      specified unicast or multicast data flows with extremely low data loss
      rates and bounded end-to-end latency within a network domain. Three
      primary goals of DetNet QoS are defined in section 3.1 of <xref
      target="RFC8655"/>;</t>

      <t><list style="symbols">
          <t>Minimum and maximum end-to-end latency from source to
          destination, timely delivery, and bounded jitter (packet delay
          variation) derived from these constraints.</t>

          <t>Packet loss ratio under various assumptions as to the operational
          states of the nodes and links.</t>

          <t>An upper bound on out-of-order packet delivery. It is worth
          noting that some DetNet applications are unable to tolerate any
          out-of-order delivery.</t>
        </list>This document defines extensions to BGP-LS to distribute the
      inforamtion for bounded latency(enhanced DetNet) .</t>

      <t>BGP - Link State (BGP-LS)<xref target="RFC7752"/> defines Network
      Layer Reachability Information (NLRI) and attributes in order to carry
      link-state information. New BGP-LS Link Attribute TLVs for enhanced
      DetNet information are required in order to carry the Traffic
      Engineering Metric Extensions defined in
      [draft-geng-lsr-isis-extension-enhanced-detnet] .</t>

      <t/>
    </section>

    <section title="Terminology">
      <t>All the DetNet related terminologies used in this document conform to
      the <xref target="RFC8655"/>.</t>
    </section>

    <section title="Link Attribute TLVs for Enhanced DetNet">
      <t/>

      <section title="Max DetNet Reservable Bandwidth Sub-TLV">
        <t>This sub-TLV specifies the maximum amount of bandwidth that is
        reserved for DetNet on this link. Note that this value SHOULD be
        smaller than the value of <xref target="RFC5305">Maximum Reservable
        Link Bandwidth</xref>.</t>

        <t>The format of this sub-TLV is shown in the following diagram:</t>

        <t><figure>
            <artwork><![CDATA[     0                   1                   2                   3
     0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |            Type(TBD1)         |           Length(4)           |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |   RESERVED    |      Maximum DetNet Reservable Bandwidth      |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

]]></artwork>
          </figure></t>

        <t>The Type field is 2 octets in length, and the value is TBD2.</t>

        <t>The Length field is 2 octets in length and its value is 4.</t>

        <t>The RESERVED field is reserved for future use. It MUST be set to 0
        when sent and MUST be ignored when received.</t>

        <t>This Maximum DetNet Reservable Bandwidth field is 3 octets in
        length and presents the maximum bandwidth that may be reserved for
        DetNet. The units are bytes per second.</t>
      </section>

      <section title="DetNet Available Bandwidth Sub-TLV">
        <t>This sub-TLV specifies the available bandwidth that can be reserved
        for DetNet flow on this link for now. It is different from the
        Unreserved Bandwidth sub-TLV defined <xref target="RFC5305">in</xref>
        referring to section 3.3.</t>

        <t>The format of this sub-TLV is shown in the following diagram:</t>

        <t><figure>
            <artwork><![CDATA[     0                   1                   2                   3
     0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |        Type(TBD2)             |       Length(4)               |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |   RESERVED    |          Available DetNet Bandwidth           |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+]]></artwork>
          </figure></t>

        <t>The Type field is 2 octets in length, and the value is TBD1.</t>

        <t>The Length field is 2 octets in length and its value is 4.</t>

        <t>The RESERVED field is reserved for future use. It MUST be set to 0
        when sent and MUST be ignored when received.</t>

        <t>This Available DetNet Bandwidth field is 3 octets in length and
        presents the available bandwidth for DetNet in this link. The units
        are bytes per second.</t>
      </section>

      <section title="DetNet Time Resource Sub-TLV">
        <t>Time resource ID represent different types of identifiers used to
        indicate the capability of underlying bounded latency mechanisms. When
        the underlying technique is a logical queue based scheduling
        mechanisms, it represents a queue ID (There may different technologies
        for implementing logical queues, for example QoS, Flex-E, etc.). When
        the underlying technique is a time scheduling based mechanisms, it
        represents a time slot ID.(Cyclic queuing mechanisms could be
        considered as a special form of time scheduling, whose time slot is
        with equal length)</t>

        <t>There are 2 types of Time Resource Sub-TLV: Time Resource for
        Logical queues sub-TLV and Time Resource for Time Scheduling
        sub-TLV:</t>

        <t>The format of Time Resource for Logical queues sub-TLV is shown in
        the following diagram:</t>

        <t><figure>
            <artwork><![CDATA[     0                   1                   2                   3
     0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |        Type(TBD3)             |          Length(10)           |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |                    Time resource ID                           |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |   RESERVED   |             Queue Buffer Size                  |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |   RESERVED   |           Queue Bandwidth Volume               |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |   RESERVED   |            Maximum Queuing Delay               |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |   RESERVED   |            Minimum Queuing Delay               |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |   RESERVED   |        Maximum Queuing Delay Variation         |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

]]></artwork>
          </figure></t>

        <t>The Type field is 2 octets in length, and the value is TBD3.</t>

        <t>The Length field is 2 octets in length and its value is 24.</t>

        <t>Time resource ID for Logical Queues is 3 octets in length, and
        specifies the identifier of a logical queue.</t>

        <t>The queue The Queue Buffer Size field is 3 octets in length, and
        specifies the size of a queue with unit of bytes.</t>

        <t>Queue Bandwidth Volume: is 3 octets in length, and carries maximum
        bandwidth could be put into the queue to provide the latency boundary.
        It is encoded in G bps encoded as an integer value.</t>

        <t>Minimum Queuing Delay is 3 octets in length, and carries minimum
        queuing delay value (in microseconds) encoded as an integer value.
        Implementations may also add this to the value of Min Delay
        Unidirectional Link Delay Sub-TLV <xref target="RFC7471"/> in order to
        advertise the minimum delay of this link. Min Queuing Delay can be the
        same with the Max Queuing Delay.</t>

        <t>Maximum Queuing Delay is 3 octets in length, and carries the
        maximum queuing delay value (in microseconds) encoded as an integer
        value. Implementations may also add this to the value of Max Delay
        Unidirectional Link Delay Sub-TLV<xref target="RFC7471"/> in order to
        advertise the maximum delay of this link.</t>

        <t>Maximum Queuing Delay variation is 3 octets in length, and carries
        the maximum queuing delay variation value (in microseconds) encoded as
        an integer value.</t>

        <t>The RESERVED field is reserved for future use. It MUST be set to 0
        when sent and MUST be ignored when received.</t>

        <t>The format of Time Resource for Time Scheduling sub-TLV is shown in
        the following diagram:</t>

        <t><figure>
            <artwork><![CDATA[     0                   1                   2                   3
     0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |        Type(TBD4)             |          Length(16)           |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |           Time resource ID for Time Slot                      |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |   RESERVED   |            Time Slot Length                    |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |   RESERVED   |           Time Slot Start Time                 |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |   RESERVED   |             Time Slot End Time                 |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
          </figure></t>

        <t>The Type field is 2 octets in length, and the value is TBD4.</t>

        <t>The Length field is 2 octets in length and its value is 16.</t>

        <t>Time Resource ID for Time Slot is 4 octets in length, and specifies
        the identifier of a time slot.</t>

        <t>The Time Slot Length field is 3 octets in length, and specifies the
        length of time slot value (in microseconds) encoded as an integer
        value. When it is based on IEEE 802.1 Qch, time slot granularity
        presents cycle length.</t>

        <t>The Time Slot Start Time field is 3 octets in length, and specifies
        the start time of the time slot in the time scheduling (in
        microseconds) encoded as an integer value.</t>

        <t>The Time Slot End Time field is 3 octets in length, and specifies
        the end time of the time slot in the time scheduling (in microseconds)
        encoded as an integer value.</t>

        <t>The RESERVED field is reserved for future use. It MUST be set to 0
        when sent and MUST be ignored when received.</t>
      </section>
    </section>

    <section title="Node Attribute TLVs for Enhanced Detnet">
      <t/>

      <section title="DetNet Processing Delay Sub-TLV">
        <t>In the scope of DetNet, packet processing delay, which begins after
        the packet goes into the input port and ends before the packet arrives
        the output buffer, can expected in a known range, and the value of the
        delay bound is specified in this sub-TLV, including:</t>

        <t><list style="symbols">
            <t>Maximum DetNet packet processing delay</t>

            <t>Minimum DetNet packet processing delay</t>

            <t>Maximum DetNet packet processing delay variation</t>
          </list>The format of this sub-TLV is shown in the following
        diagram:</t>

        <figure>
          <artwork><![CDATA[  0                   1                   2                   3
  0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |        Type(TBD5)             |          Length(10)           |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |   RESERVED    |      Minimum DetNet Processing Delay          |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |   RESERVED    |      Maximum DetNet Processing Delay          |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |   RESERVED    |   Maximum DetNet Processing Delay Variation   |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+]]></artwork>
        </figure>

        <t>The Type field is 2 octets in length, and the value is TBD5.</t>

        <t>The Length field is 2 octets in length and its value is 8.</t>

        <t>The RESERVED field is reserved for future use. It MUST be set to 0
        when sent and MUST be ignored when received.</t>

        <t>The Minimum DetNet Processing Delay is 3 octets in length and
        presents the minimum delay for a DetNet flow in the device, excluding
        the queuing delay in output port. The units are microsecond.</t>

        <t>The Maximum DetNet Processing Delay is 3 octets in length and
        presents the maximum delay for a DetNet flow in the device, excluding
        the queuing delay in output port. The units are microsecond.</t>

        <t>The Maximum DetNet Processing Delay Variation is 3 octets in length
        and presents the maximum delay variation for a DetNet flow in the
        device, excluding the queuing delay in output port. The units are
        microsecond.</t>
      </section>
    </section>

    <section title="IANA Considerations">
      <t>IANA has made assignments in the "BGP-LS Node Descriptor, Link
      Descriptor, Prefix Descriptor, and Attribute TLVs" registry for the new
      Link Attribute TLVs as listed below:</t>

      <t><figure>
          <artwork><![CDATA[         Type        Description
         ----        ------------------------------
         TBD1         Maximum DetNet Reservable Bandwidth
         TBD2         DetNet Available Bandwidth
         TBD3         Time Resource ID for Logical Queue
         TBD4         Time Resource ID for Time Slot
         TBD5        Packet Processing Delay
]]></artwork>
        </figure></t>
    </section>

    <section anchor="Security" title="Security Considerations">
      <t>This document does not introduce security issues beyond those
      discussed <xref target="RFC7471">in</xref> <xref
      target="RFC7810">and</xref>.</t>
    </section>

    <section title="Acknowledgements">
      <t/>
    </section>
  </middle>

  <back>
    <references title="Normative References">
      <?rfc include="reference.RFC.2119"?>

      <?rfc include="reference.RFC.7471"
?>

      <?rfc include="reference.RFC.7810"?>

      <?rfc include='reference.RFC.5786'?>

      <?rfc ?>

      <?rfc include='reference.RFC.7981'?>

      <?rfc ?>

      <?rfc include='reference.RFC.8655'?>

      <?rfc ?>

      <?rfc include='reference.RFC.7752'?>
    </references>

    <references title="Informative References">
      <?rfc include="reference.RFC.3630"?>

      <?rfc include="reference.RFC.5305"?>

      <?rfc include="reference.RFC.5316"?>

      <?rfc include="reference.RFC.7310"?>

      <reference anchor="IEEE802.1Q-2014">
        <front>
          <title>MAC Bridges and VLANs (IEEE 802.1Q-2014)</title>

          <author fullname="">
            <organization/>
          </author>

          <date year="2014"/>
        </front>
      </reference>

      <reference anchor="IIEEE802.1Qbv">
        <front>
          <title>Enhancements for Scheduled Traffic</title>

          <author fullname="IEEE" surname="">
            <organization/>
          </author>

          <date year="2016"/>
        </front>
      </reference>

      <reference anchor="IEEE802.1Qch">
        <front>
          <title>Cyclic Queuing and Forwarding</title>

          <author fullname="IEEE" surname="">
            <organization/>
          </author>

          <date year="2016"/>
        </front>
      </reference>

      <reference anchor="IEEE802.1Qcr">
        <front>
          <title>Asynchronous Traffic Shaping</title>

          <author fullname="IEEE" surname="">
            <organization/>
          </author>

          <date year="2016"/>
        </front>
      </reference>
    </references>
  </back>
</rfc>
