<?xml version='1.0' encoding='utf-8'?>
<?xml-model href="rfc7991bis.rnc"?>
<!DOCTYPE rfc SYSTEM "rfc2629-xhtml.ent">
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" category="std" docName="draft-ietf-manet-dlep-channel-utilization-01" ipr="trust200902" obsoletes="" updates="" submissionType="IETF" xml:lang="en" tocInclude="true" tocDepth="4" symRefs="true" sortRefs="true" version="3" consensus="true">
  <front>
    <title abbrev="DLEP Channel Utilization">DLEP Radio Channel Utilization Extension</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-manet-dlep-channel-utilization-01"/>
    <author fullname="Henning Rogge" initials="H.R." surname="Rogge">
      <organization>Fraunhofer FKIE</organization>
      <address>
        <postal>
          <street>Fraunhofer Strasse 20</street>
          <city>Wachtberg</city>
          <region/>
          <code>53343</code>
          <country>DE</country>
        </postal>
        <email>henning.rogge@fkie.fraunhofer.de</email>
      </address>
    </author>
    <date year="2024"/>
    <area>Routing</area>
    <workgroup>Manet</workgroup>
    <keyword>DLEP</keyword>
    <keyword>PHY</keyword>
    <keyword>TLV</keyword>
    <abstract>
      <t>This document defines an extension to the Dynamic Link Exchange Protocol (DLEP) to provide the utilization of a radio channel.</t>
    </abstract>
  </front>
  <middle>
    <section numbered="true" toc="default">
      <name>Introduction</name>
      <t>The Dynamic Link Exchange Protocol (DLEP) is defined in
        <xref target="RFC8175" format="default"/>.
        It provides the exchange of link-related control information
        between DLEP peers. DLEP peers are comprised of a modem and
        a router.  DLEP defines a base set of mechanisms as well as
        support for possible extensions. This document defines one such
        extension.
        
        Radio channel utilization provides a packet/frame independent measurement
        how a radio channel is used and how much resources are still available.
        While incoming and outgoing traffic can be easily measured on the router, the
        amount of airtime used by management traffic of the radio is invisible to the
        router, as is unicast traffic between two adjecant radios (unless the radio
        supports promiscous mode). This could present the a fully utilized radio channel
        to the router as totally empty.
        Getting a direct radio level information how much time on the radio channel has
        been used up by incoming or outgoing data or control frames allows a router to
        calculate a better routing metric or allows management
        agents to detect a channel being unusable for communication because of
        external jamming.</t>
      <section numbered="true" toc="default">
        <name>Requirements Language</name>
        <t>In many IETF documents, several words, when they are in all capitals
          as shown below, are used to signify the requirements in the
          specification.  These capitalized words can bring significant clarity
          and consistency to documents because their meanings are well defined.
          This document defines how those words are interpreted in IETF
          documents when the words are in all capitals.
        </t>
        <ul>
          <li>These words can be used as defined here, but using them is not
            required.  Specifically, normative text does not require the use
            of these key words.  They are used for clarity and consistency
            when that is what's wanted, but a lot of normative text does not
            use them and is still normative.</li>
          <li>The words have the meanings specified herein only when they are in
            all capitals.</li>
          <li>When these words are not capitalized, they have their normal
            English meanings and are not affected by this document.</li>
        </ul>
        <t>
          Authors who follow these guidelines should incorporate this phrase
          near the beginning of their document:

          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>
    <section numbered="true" toc="default">
      <name>Extension Usage and Identification</name>
      <t>The use of the Channel Utilization Extension SHOULD be
        configurable. To indicate that the Channel Utilization Extension
        is to be used, an implementation MUST include the Radio Channel Utilization Extension ID in the Extensions Supported Data Item. The Extensions Supported Data Item is sent and processed according to
        <xref target="RFC8175" format="default"/>.</t>
      <t>The Channel Utilization TLVs can be used by the router to improve the tracking of channel usage by different radios and give a more exact estimate how much free capacity the channel has currently.
        This information can be used for adjusting timing intervals between automatically generated data, e.g. HELLO messages of the local routing protocol.</t>
      <t>All four Data Items are time measurements in nanoseconds since an arbitrary starting point, e.g. the radio bootup. They are never reseted and will just increase monotonic.</t>
      <t>The first Data Item (Radio Channel Active) announces the channels livetime of the radio channel while the other three provide the amount of time the channel has been used in different ways. Radio Channel Rx provides the time the radio is receiving data, Radio Channel Tx the time the radio is sending data and Radio Channel Busy the time the radio channel is blocked for any unknown reason.</t>
      <t>A radio that doesn't track the time for receiving and transmitting data explicitly can just add all times the radio channel is not free into the Radio Channel Busy Data Item.</t>
      <t>The time the radio channel has been free can be calculated by substracting the values of Busy, Rx and Tx from the value provided by the Radio Active Channel Data Item. By tracking these values over time
        The router can calculate statistics on the channel usage for routing metrics or report the received value to a management layer.</t>
    </section>
    <section numbered="true" toc="default">
      <name>Data Items</name>
      <t>All four Data Items of this extension can be used both as Session specific and Destination specific metrics. If the radio is only tracking channel usage on interface level, the Data Items are used in SessionInitResponse and SessionUpdate messages. If the radio also is tracking channel usage for each Destination, they are also used in DestinationUp, DestinationUpdate and DestinationAnnounceResponse messages.</t>
      <section numbered="true" toc="default">
        <name>Radio Channel Active Data Item</name>
        <t>Radio Channel Active Item contains information how long the radio channel has been active. This provides the router with a reference to interpret the values provided by the other three Data Items. Because of this the value in this item must be larger than the values in the other three Data Items this extensions defines together.</t>
        <t>This Data Item is mandatory for SessionInitResponse messages.</t>
        <t>The format of the Radio Channel Active Data Item is:</t>
        <figure anchor="channel_active">
          <artwork align="left" name="" type="" alt=""><![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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Data Item Type                | Length                        |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                          Active Time                          |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                          Active Time                          |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
          ]]></artwork>
        </figure>
        <dl>
          <dt>Data Item Type:</dt>
          <dd>TBD</dd>
          <dt>Length:</dt>
          <dd>8</dd>
          <dt>Active Time:</dt>
          <dd>Time in nanoseconds since the channel has been active.</dd>
        </dl>
      </section>
      <section numbered="true" toc="default">
        <name>Radio Channel Busy Data Item</name>
        <t>Radio Channel Busy Item contains information how much time the radio channel has been busy, not including the time provided in the Channel Rx and Chanel Tx Data Item.</t>
        <t>The format of the Radio Channel Busy Data Item is:</t>
        <figure anchor="channel_busy">
          <artwork align="left" name="" type="" alt=""><![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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Data Item Type                | Length                        |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                           Busy Time                           |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                           Busy Time                           |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
          ]]></artwork>
        </figure>
        <dl>
          <dt>Data Item Type:</dt>
          <dd>TBD</dd>
          <dt>Length:</dt>
          <dd>8</dd>
          <dt>Busy Time:</dt>
          <dd>Time in nanoseconds the channel was busy during its active time.</dd>
        </dl>
      </section>
      <section numbered="true" toc="default">
        <name>Radio Channel Rx Data Item</name>
        <t>Radio Channel Rx Item contains information how much time the local radio has been receiving data from other radios.</t>
        <t>The format of the Radio Channel Rx Data Item is:</t>
        <figure anchor="channel_rx">
          <artwork align="left" name="" type="" alt=""><![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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Data Item Type                | Length                        |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                            Rx Time                            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                            Rx Time                            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
          ]]></artwork>
        </figure>
        <dl>
          <dt>Data Item Type:</dt>
          <dd>TBD</dd>
          <dt>Length:</dt>
          <dd>8</dd>
          <dt>Rx Time:</dt>
          <dd>Time in nanoseconds the local radio was receiving data from other radios during its active time.</dd>
        </dl>
      </section>
      <section numbered="true" toc="default">
        <name>Radio Channel Tx Data Item</name>
        <t>Radio Channel Tx Item contains information how much time the local radio has been transmitting data to other radios.</t>
        <t>The format of the Radio Channel Tx Data Item is:</t>
        <figure anchor="channel_tx">
          <artwork align="left" name="" type="" alt=""><![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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Data Item Type                | Length                        |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                            Tx Time                            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                            Tx Time                            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
          ]]></artwork>
        </figure>
        <dl>
          <dt>Data Item Type:</dt>
          <dd>TBD</dd>
          <dt>Length:</dt>
          <dd>8</dd>
          <dt>Tx Time:</dt>
          <dd>Time in nanoseconds the local radio was transmitting data to other radios during its active time.</dd>
        </dl>
      </section>
    </section>
    <section numbered="true" toc="default">
      <name>Security Considerations</name>
      <t>The extension introduces a new Data Item for DLEP.
        The extension does not inherently introduce any additional
        vulnerabilities above those documented in
        <xref target="RFC8175" format="default"/>.
        The approach taken to security in that document applies
        equally when running the extension defined in this document.</t>
    </section>
    <section numbered="true" toc="default">
      <name>IANA Considerations</name>
      <t>As described below, IANA has assigned two values per this document.
        Both assignments are to registries defined by
        <xref target="RFC8175" format="default"/>.</t>
      <section numbered="true" toc="default">
        <name>Extension Type Value</name>
        <t>IANA has assigned the following value in the "Extension Type Values"
          registry within the "Dynamic Link Exchange Protocol (DLEP)
          Parameters" registry.  The new value is in the range with the
          "Specification Required" <xref target="RFC8126" format="default"/> policy:</t>
        <table>
          <name>New Extension Type Value</name>
          <thead>
            <tr>
              <td>Code</td>
              <td>Description</td>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td>TBD</td>
              <td>Radio Channel Utilization</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section numbered="true" toc="default">
        <name>Data Item Value</name>
        <t>IANA has assigned the following value in the "Data Item Type
          Values" registry within the "Dynamic Link Exchange Protocol
          (DLEP) Parameters" registry.  The new value is in the range
          with the "Specification Required"
          <xref target="RFC8126" format="default"/>
          policy:</t>
        <table>
          <name>New Data Item Value</name>
          <thead>
            <tr>
              <td>Type Code</td>
              <td>Description</td>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td>TBD</td>
              <td>Radio Channel Active</td>
            </tr>
            <tr>
              <td>TBD</td>
              <td>Radio Channel Busy</td>
            </tr>
            <tr>
              <td>TBD</td>
              <td>Radio Channel Rx</td>
            </tr>
            <tr>
              <td>TBD</td>
              <td>Radio Channel Tx</td>
            </tr>
          </tbody>
        </table>
      </section>
    </section>
  </middle>
  <back>
    <references>
      <name>Normative References</name>
      <reference anchor="RFC2119" target="https://www.rfc-editor.org/info/rfc2119" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml">
        <front>
          <title>Key words for use in RFCs to Indicate Requirement Levels</title>
          <author fullname="S. Bradner" initials="S." surname="Bradner"/>
          <date month="March" year="1997"/>
          <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://bib.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml">
        <front>
          <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
          <author fullname="B. Leiba" initials="B." surname="Leiba"/>
          <date month="May" year="2017"/>
          <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="RFC8175" target="https://www.rfc-editor.org/info/rfc8175" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8175.xml">
        <front>
          <title>Dynamic Link Exchange Protocol (DLEP)</title>
          <author fullname="S. Ratliff" initials="S." surname="Ratliff"/>
          <author fullname="S. Jury" initials="S." surname="Jury"/>
          <author fullname="D. Satterwhite" initials="D." surname="Satterwhite"/>
          <author fullname="R. Taylor" initials="R." surname="Taylor"/>
          <author fullname="B. Berry" initials="B." surname="Berry"/>
          <date month="June" year="2017"/>
          <abstract>
            <t>When routing devices rely on modems to effect communications over wireless links, they need timely and accurate knowledge of the characteristics of the link (speed, state, etc.) in order to make routing decisions. In mobile or other environments where these characteristics change frequently, manual configurations or the inference of state through routing or transport protocols does not allow the router to make the best decisions. This document introduces a new protocol called the Dynamic Link Exchange Protocol (DLEP), which provides a bidirectional, event-driven communication channel between the router and the modem to facilitate communication of changing link characteristics.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="8175"/>
        <seriesInfo name="DOI" value="10.17487/RFC8175"/>
      </reference>
    </references>
    <references>
      <name>Informative References</name>
      <reference anchor="RFC8126" target="https://www.rfc-editor.org/info/rfc8126" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8126.xml">
        <front>
          <title>Guidelines for Writing an IANA Considerations Section in RFCs</title>
          <author fullname="M. Cotton" initials="M." surname="Cotton"/>
          <author fullname="B. Leiba" initials="B." surname="Leiba"/>
          <author fullname="T. Narten" initials="T." surname="Narten"/>
          <date month="June" year="2017"/>
          <abstract>
            <t>Many protocols make use of points of extensibility that use constants to identify various protocol parameters. To ensure that the values in these fields do not have conflicting uses and to promote interoperability, their allocations are often coordinated by a central record keeper. For IETF protocols, that role is filled by the Internet Assigned Numbers Authority (IANA).</t>
            <t>To make assignments in a given registry prudently, guidance describing the conditions under which new values should be assigned, as well as when and how modifications to existing values can be made, is needed. This document defines a framework for the documentation of these guidelines by specification authors, in order to assure that the provided guidance for the IANA Considerations is clear and addresses the various issues that are likely in the operation of a registry.</t>
            <t>This is the third edition of this document; it obsoletes RFC 5226.</t>
          </abstract>
        </front>
        <seriesInfo name="BCP" value="26"/>
        <seriesInfo name="RFC" value="8126"/>
        <seriesInfo name="DOI" value="10.17487/RFC8126"/>
      </reference>
    </references>
  </back>
</rfc>
