<?xml version='1.0' encoding='utf-8'?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" version="3" category="info" consensus="true" docName="draft-ietf-babel-applicability-10" indexInclude="true" ipr="trust200902" number="8965" prepTime="2021-01-11T11:52:11" scripts="Common,Latin" sortRefs="true" submissionType="IETF" symRefs="true" tocDepth="2" tocInclude="true" xml:lang="en">
  <link href="https://datatracker.ietf.org/doc/draft-ietf-babel-applicability-10" rel="prev"/>
  <link href="https://dx.doi.org/10.17487/rfc8965" rel="alternate"/>
  <link href="urn:issn:2070-1721" rel="alternate"/>
  <front>
    <title abbrev="Babel Protocol Applicability">Applicability of the Babel Routing Protocol</title>
    <seriesInfo name="RFC" value="8965" stream="IETF"/>
    <author fullname="Juliusz Chroboczek" initials="J." surname="Chroboczek">
      <organization showOnFrontPage="true">IRIF, University of Paris-Diderot</organization>
      <address>
        <postal>
          <street>Case 7014</street>
          <city>Paris CEDEX 13</city>
          <region/>
          <code>75205</code>
          <country>France</country>
        </postal>
        <email>jch@irif.fr</email>
      </address>
    </author>
    <date month="01" year="2021"/>
    <keyword>distance-vector</keyword>
    <keyword>loop</keyword>
    <keyword>starvation</keyword>
    <keyword>Bellman-Ford</keyword>
    <keyword>routing</keyword>
    <keyword>routing protocol</keyword>
    <keyword>wireless</keyword>
    <keyword>mesh network</keyword>
    <keyword>IGP</keyword>
    <abstract pn="section-abstract">
      <t indent="0" pn="section-abstract-1">Babel is a routing protocol based on the distance-vector algorithm
augmented with mechanisms for loop avoidance and starvation avoidance.
This document describes a number of niches where Babel has been found
to be useful and that are arguably not adequately served by more mature
protocols.</t>
    </abstract>
    <boilerplate>
      <section anchor="status-of-memo" numbered="false" removeInRFC="false" toc="exclude" pn="section-boilerplate.1">
        <name slugifiedName="name-status-of-this-memo">Status of This Memo</name>
        <t indent="0" pn="section-boilerplate.1-1">
            This document is not an Internet Standards Track specification; it is
            published for informational purposes.  
        </t>
        <t indent="0" pn="section-boilerplate.1-2">
            This document is a product of the Internet Engineering Task Force
            (IETF).  It represents the consensus of the IETF community.  It has
            received public review and has been approved for publication by the
            Internet Engineering Steering Group (IESG).  Not all documents
            approved by the IESG are candidates for any level of Internet
            Standard; see Section 2 of RFC 7841. 
        </t>
        <t indent="0" pn="section-boilerplate.1-3">
            Information about the current status of this document, any
            errata, and how to provide feedback on it may be obtained at
            <eref target="https://www.rfc-editor.org/info/rfc8965" brackets="none"/>.
        </t>
      </section>
      <section anchor="copyright" numbered="false" removeInRFC="false" toc="exclude" pn="section-boilerplate.2">
        <name slugifiedName="name-copyright-notice">Copyright Notice</name>
        <t indent="0" pn="section-boilerplate.2-1">
            Copyright (c) 2021 IETF Trust and the persons identified as the
            document authors. All rights reserved.
        </t>
        <t indent="0" pn="section-boilerplate.2-2">
            This document is subject to BCP 78 and the IETF Trust's Legal
            Provisions Relating to IETF Documents
            (<eref target="https://trustee.ietf.org/license-info" brackets="none"/>) in effect on the date of
            publication of this document. Please review these documents
            carefully, as they describe your rights and restrictions with
            respect 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.
        </t>
      </section>
    </boilerplate>
    <toc>
      <section anchor="toc" numbered="false" removeInRFC="false" toc="exclude" pn="section-toc.1">
        <name slugifiedName="name-table-of-contents">Table of Contents</name>
        <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1">
          <li pn="section-toc.1-1.1">
            <t indent="0" keepWithNext="true" pn="section-toc.1-1.1.1"><xref derivedContent="1" format="counter" sectionFormat="of" target="section-1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-introduction-and-background">Introduction and Background</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.1.2">
              <li pn="section-toc.1-1.1.2.1">
                <t indent="0" keepWithNext="true" pn="section-toc.1-1.1.2.1.1"><xref derivedContent="1.1" format="counter" sectionFormat="of" target="section-1.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-technical-overview-of-the-b">Technical Overview of the Babel Protocol</xref></t>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.2">
            <t indent="0" pn="section-toc.1-1.2.1"><xref derivedContent="2" format="counter" sectionFormat="of" target="section-2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-properties-of-the-babel-pro">Properties of the Babel Protocol</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.2.2">
              <li pn="section-toc.1-1.2.2.1">
                <t indent="0" keepWithNext="true" pn="section-toc.1-1.2.2.1.1"><xref derivedContent="2.1" format="counter" sectionFormat="of" target="section-2.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-simplicity-and-implementabi">Simplicity and Implementability</xref></t>
              </li>
              <li pn="section-toc.1-1.2.2.2">
                <t indent="0" pn="section-toc.1-1.2.2.2.1"><xref derivedContent="2.2" format="counter" sectionFormat="of" target="section-2.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-robustness">Robustness</xref></t>
              </li>
              <li pn="section-toc.1-1.2.2.3">
                <t indent="0" pn="section-toc.1-1.2.2.3.1"><xref derivedContent="2.3" format="counter" sectionFormat="of" target="section-2.3"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-extensibility">Extensibility</xref></t>
              </li>
              <li pn="section-toc.1-1.2.2.4">
                <t indent="0" pn="section-toc.1-1.2.2.4.1"><xref derivedContent="2.4" format="counter" sectionFormat="of" target="section-2.4"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-limitations">Limitations</xref></t>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.3">
            <t indent="0" pn="section-toc.1-1.3.1"><xref derivedContent="3" format="counter" sectionFormat="of" target="section-3"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-successful-deployments-of-b">Successful Deployments of Babel</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.3.2">
              <li pn="section-toc.1-1.3.2.1">
                <t indent="0" pn="section-toc.1-1.3.2.1.1"><xref derivedContent="3.1" format="counter" sectionFormat="of" target="section-3.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-heterogeneous-networks">Heterogeneous Networks</xref></t>
              </li>
              <li pn="section-toc.1-1.3.2.2">
                <t indent="0" pn="section-toc.1-1.3.2.2.1"><xref derivedContent="3.2" format="counter" sectionFormat="of" target="section-3.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-large-scale-overlay-network">Large-Scale Overlay Networks</xref></t>
              </li>
              <li pn="section-toc.1-1.3.2.3">
                <t indent="0" pn="section-toc.1-1.3.2.3.1"><xref derivedContent="3.3" format="counter" sectionFormat="of" target="section-3.3"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-pure-mesh-networks">Pure Mesh Networks</xref></t>
              </li>
              <li pn="section-toc.1-1.3.2.4">
                <t indent="0" pn="section-toc.1-1.3.2.4.1"><xref derivedContent="3.4" format="counter" sectionFormat="of" target="section-3.4"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-small-unmanaged-networks">Small Unmanaged Networks</xref></t>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.4">
            <t indent="0" pn="section-toc.1-1.4.1"><xref derivedContent="4" format="counter" sectionFormat="of" target="section-4"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-security-considerations">Security Considerations</xref></t>
          </li>
          <li pn="section-toc.1-1.5">
            <t indent="0" pn="section-toc.1-1.5.1"><xref derivedContent="5" format="counter" sectionFormat="of" target="section-5"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-references">References</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.5.2">
              <li pn="section-toc.1-1.5.2.1">
                <t indent="0" pn="section-toc.1-1.5.2.1.1"><xref derivedContent="5.1" format="counter" sectionFormat="of" target="section-5.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-normative-references">Normative References</xref></t>
              </li>
              <li pn="section-toc.1-1.5.2.2">
                <t indent="0" pn="section-toc.1-1.5.2.2.1"><xref derivedContent="5.2" format="counter" sectionFormat="of" target="section-5.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-informative-references">Informative References</xref></t>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.6">
            <t indent="0" pn="section-toc.1-1.6.1"><xref derivedContent="" format="none" sectionFormat="of" target="section-appendix.a"/><xref derivedContent="" format="title" sectionFormat="of" target="name-acknowledgments">Acknowledgments</xref></t>
          </li>
          <li pn="section-toc.1-1.7">
            <t indent="0" pn="section-toc.1-1.7.1"><xref derivedContent="" format="none" sectionFormat="of" target="section-appendix.b"/><xref derivedContent="" format="title" sectionFormat="of" target="name-authors-address">Author's Address</xref></t>
          </li>
        </ul>
      </section>
    </toc>
  </front>
  <middle>
    <section numbered="true" toc="include" removeInRFC="false" pn="section-1">
      <name slugifiedName="name-introduction-and-background">Introduction and Background</name>
      <t indent="0" pn="section-1-1">Babel <xref target="RFC8966" format="default" sectionFormat="of" derivedContent="RFC8966"/> is a routing protocol based on the
familiar distance-vector algorithm (sometimes known as distributed
Bellman-Ford) augmented with mechanisms for loop avoidance (there is no
"counting to infinity") and starvation avoidance.  This document describes
a number of niches where Babel is useful and that are arguably not
adequately served by more mature protocols such as OSPF <xref target="RFC5340" format="default" sectionFormat="of" derivedContent="RFC5340"/> and IS-IS <xref target="RFC1195" format="default" sectionFormat="of" derivedContent="RFC1195"/>.</t>
      <section numbered="true" toc="include" removeInRFC="false" pn="section-1.1">
        <name slugifiedName="name-technical-overview-of-the-b">Technical Overview of the Babel Protocol</name>
        <t indent="0" pn="section-1.1-1">At its core, Babel is a distance-vector protocol based on the
distributed Bellman-Ford algorithm, similar in principle to RIP
<xref target="RFC2453" format="default" sectionFormat="of" derivedContent="RFC2453"/> but with two important extensions: provisions for
sensing of neighbour reachability, bidirectional reachability, and link
quality, and support for multiple address families (e.g., IPv6 and IPv4)
in a single protocol instance.</t>
        <t indent="0" pn="section-1.1-2">Algorithms of this class are simple to understand and simple to
implement, but unfortunately they do not work very well -- they
suffer from "counting to infinity", a case of pathologically slow
convergence in some topologies after a link failure.  Babel uses a mechanism
pioneered by the Enhanced Interior Gateway Routing Protocol (EIGRP) <xref target="DUAL" format="default" sectionFormat="of" derivedContent="DUAL"/> <xref target="RFC7868" format="default" sectionFormat="of" derivedContent="RFC7868"/>, known
as "feasibility", which avoids routing loops and therefore makes counting
to infinity impossible.</t>
        <t indent="0" pn="section-1.1-3">Feasibility is a conservative mechanism, one that not only avoids all
looping routes but also rejects some loop-free routes.  Thus, it can lead
to a situation known as "starvation", where a router rejects all routes to
a given destination, even those that are loop-free.  In order to recover
from starvation, Babel uses a mechanism pioneered by the
Destination-Sequenced Distance-Vector Routing Protocol (DSDV)
<xref target="DSDV" format="default" sectionFormat="of" derivedContent="DSDV"/> and known as "sequenced routes".  In Babel, this
mechanism is generalised to deal with prefixes of arbitrary length and
routes announced at multiple points in a single routing domain (DSDV was
a pure mesh protocol, and only carried host routes).</t>
        <t indent="0" pn="section-1.1-4">In DSDV, the sequenced routes algorithm is slow to react to
a starvation episode.  In Babel, starvation recovery is accelerated by
using explicit requests (known as "seqno requests" in the protocol) that
signal a starvation episode and cause a new sequenced route to be
propagated in a timely manner.  In the absence of packet loss, this
mechanism is provably complete and clears the starvation in time
proportional to the diameter of the network, at the cost of some
additional signalling traffic.</t>
      </section>
    </section>
    <section numbered="true" toc="include" removeInRFC="false" pn="section-2">
      <name slugifiedName="name-properties-of-the-babel-pro">Properties of the Babel Protocol</name>
      <t indent="0" pn="section-2-1">This section describes the properties of the Babel protocol as well as
its known limitations.</t>
      <section numbered="true" toc="include" removeInRFC="false" pn="section-2.1">
        <name slugifiedName="name-simplicity-and-implementabi">Simplicity and Implementability</name>
        <t indent="0" pn="section-2.1-1">Babel is a conceptually simple protocol.  It consists of a familiar
algorithm (distributed Bellman-Ford) augmented with three simple and
well-defined mechanisms (feasibility, sequenced routes, and explicit
requests).  Given a sufficiently friendly audience, the principles behind
Babel can be explained in 15 minutes, and a full description of the
protocol can be done in 52 minutes (one microcentury).</t>
        <t indent="0" pn="section-2.1-2">An important consequence is that Babel is easy to implement.  At the
time of writing, there exist four independent, interoperable implementations,
including one that was reportedly written and debugged in just two nights.</t>
      </section>
      <section numbered="true" toc="include" removeInRFC="false" pn="section-2.2">
        <name slugifiedName="name-robustness">Robustness</name>
        <t indent="0" pn="section-2.2-1">The fairly strong properties of the Babel protocol (convergence, loop
avoidance, and starvation avoidance) rely on some reasonably weak properties
of the network and the metric being used.  The most significant are:
</t>
        <ul empty="true" bare="false" indent="3" spacing="normal" pn="section-2.2-2">
          <li pn="section-2.2-2.1">
            <dl spacing="normal" indent="3" newline="false" pn="section-2.2-2.1.1">
              <dt pn="section-2.2-2.1.1.1">causality:</dt>
              <dd pn="section-2.2-2.1.1.2">the "happens-before" relation is acyclic (intuitively,
a control message is not received before it has been sent);</dd>
              <dt pn="section-2.2-2.1.1.3">strict monotonicity of the metric:</dt>
              <dd pn="section-2.2-2.1.1.4">for any metric M and link cost C,
M &lt; C + M (intuitively, this implies that cycles
have a strictly positive metric);</dd>
              <dt pn="section-2.2-2.1.1.5">left-distributivity of the metric:</dt>
              <dd pn="section-2.2-2.1.1.6">for any metrics M and M'
and cost C, if M &lt;= M', then
C + M &lt;= C + M' (intuitively, this implies
that a good choice made by a neighbour B of a node A is also a good choice
for A).</dd>
            </dl>
          </li>
        </ul>
        <t indent="0" pn="section-2.2-3">
See <xref target="METAROUTING" format="default" sectionFormat="of" derivedContent="METAROUTING"/> for more information about these
properties and their consequences.</t>
        <t indent="0" pn="section-2.2-4">In particular, Babel does not assume a reliable transport, it does not
assume ordered delivery, it does not assume that communication is
transitive, and it does not require that the metric be discrete
(continuous metrics are possible, for example, reflecting packet loss
rates).  This is in contrast to link-state routing protocols such as OSPF
<xref target="RFC5340" format="default" sectionFormat="of" derivedContent="RFC5340"/> or IS-IS <xref target="RFC1195" format="default" sectionFormat="of" derivedContent="RFC1195"/>, which
incorporate a reliable flooding algorithm and make stronger requirements
on the underlying network and metric.</t>
        <t indent="0" pn="section-2.2-5">These weak requirements make Babel a robust protocol:
</t>
        <ul empty="true" bare="false" indent="3" spacing="normal" pn="section-2.2-6">
          <li pn="section-2.2-6.1">
            <dl spacing="normal" indent="3" newline="false" pn="section-2.2-6.1.1">
              <dt pn="section-2.2-6.1.1.1">robust with respect to unusual networks:</dt>
              <dd pn="section-2.2-6.1.1.2">an unusual network
(non-transitive links, unstable link costs, etc.) is likely not
to violate the assumptions of the protocol;</dd>
              <dt pn="section-2.2-6.1.1.3">robust with respect to novel metrics:</dt>
              <dd pn="section-2.2-6.1.1.4">an unusual metric (continuous,
constantly fluctuating, etc.) is likely not to violate the assumptions of
the protocol.</dd>
            </dl>
          </li>
        </ul>
        <t indent="0" pn="section-2.2-7">
<xref target="successful" format="default" sectionFormat="of" derivedContent="Section 3"/> gives examples of successful deployments
of Babel that illustrate these properties.</t>
        <t indent="0" pn="section-2.2-8">These robustness properties have important consequences for the
applicability of the protocol: Babel works (more or less efficiently) in
a range of circumstances where traditional routing protocols don't work
well (or at all).</t>
      </section>
      <section numbered="true" toc="include" removeInRFC="false" pn="section-2.3">
        <name slugifiedName="name-extensibility">Extensibility</name>
        <t indent="0" pn="section-2.3-1">Babel's packet format has a number of features that make the protocol
extensible (see <xref target="RFC8966" section="D" sectionFormat="of" format="default" derivedLink="https://rfc-editor.org/rfc/rfc8966#appendix-D" derivedContent="RFC8966"/>), and
a number of extensions have been designed to make Babel work better in
situations that were not envisioned when the protocol was initially
designed.  The ease of extensibility is not an accident, but a consequence
of the design of the protocol: it is reasonably easy to check whether
a given extension violates the assumptions on which Babel relies.</t>
        <t indent="0" pn="section-2.3-2">All of the extensions designed to date interoperate with the base
protocol and with each other.  This, again, is a consequence of the
protocol design: in order to check that two extensions to the Babel
protocol are interoperable, it is enough to verify that the interaction of
the two does not violate the base protocol's assumptions.</t>
        <t indent="0" pn="section-2.3-3">Notable extensions deployed to date include:
</t>
        <ul spacing="normal" bare="false" empty="false" indent="3" pn="section-2.3-4">
          <li pn="section-2.3-4.1">source-specific routing (also known as Source-Address Dependent
   Routing, SADR) <xref target="I-D.ietf-babel-source-specific" format="default" sectionFormat="of" derivedContent="BABEL-SS"/> allows
forwarding to take a packet's source address into account, thus enabling
a cheap form of multihoming <xref target="SS-ROUTING" format="default" sectionFormat="of" derivedContent="SS-ROUTING"/>;</li>
          <li pn="section-2.3-4.2">RTT-based routing <xref target="I-D.jonglez-babel-rtt-extension" format="default" sectionFormat="of" derivedContent="BABEL-RTT"/> minimises link delay,
which is useful in overlay network (where both hop count and packet loss
are poor metrics).</li>
        </ul>
        <t indent="0" pn="section-2.3-5">
Some other extensions have been designed but have not seen deployment
in production (and their usefulness is yet to be demonstrated):
</t>
        <ul spacing="normal" bare="false" empty="false" indent="3" pn="section-2.3-6">
          <li pn="section-2.3-6.1">frequency-aware routing <xref target="I-D.chroboczek-babel-diversity-routing" format="default" sectionFormat="of" derivedContent="BABEL-Z"/> aims to minimise radio
interference in wireless networks;</li>
          <li pn="section-2.3-6.2">ToS-aware routing 
<xref target="I-D.chouasne-babel-tos-specific" format="default" sectionFormat="of" derivedContent="BABEL-TOS"/> allows routing to take
a packet's Type of Service (ToS) marking into account for selected routes without incurring
the full cost of a multi-topology routing protocol.</li>
        </ul>
      </section>
      <section numbered="true" toc="include" removeInRFC="false" pn="section-2.4">
        <name slugifiedName="name-limitations">Limitations</name>
        <t indent="0" pn="section-2.4-1">Babel has some undesirable properties that make it suboptimal or even
unusable in some deployments.</t>
        <section numbered="true" toc="exclude" removeInRFC="false" pn="section-2.4.1">
          <name slugifiedName="name-periodic-updates">Periodic Updates</name>
          <t indent="0" pn="section-2.4.1-1">The main mechanisms used by Babel to reconverge after a topology change
are reactive: triggered updates, triggered retractions and explicit
requests.  However, Babel relies on periodic updates to clear pathologies
after a mobility event or in the presence of heavy packet loss.  The use
of periodic updates makes Babel unsuitable in at least two kinds of
environments:
</t>
          <ul empty="true" bare="false" indent="3" spacing="normal" pn="section-2.4.1-2">
            <li pn="section-2.4.1-2.1">
              <dl spacing="normal" indent="3" newline="false" pn="section-2.4.1-2.1.1">
                <dt pn="section-2.4.1-2.1.1.1">large, stable networks:</dt>
                <dd pn="section-2.4.1-2.1.1.2">since Babel sends periodic updates even in the
absence of topology changes, in well-managed, large, stable networks the
amount of control traffic will be reduced by using a protocol that uses
a reliable transport (such as OSPF, IS-IS, or EIGRP);</dd>
                <dt pn="section-2.4.1-2.1.1.3">low-power networks:</dt>
                <dd pn="section-2.4.1-2.1.1.4">the periodic updates use up battery power even when
there are no topology changes and no user traffic, which makes Babel
wasteful in low-power networks.</dd>
              </dl>
            </li>
          </ul>
        </section>
        <section numbered="true" toc="exclude" removeInRFC="false" pn="section-2.4.2">
          <name slugifiedName="name-full-routing-table">Full Routing Table</name>
          <t indent="0" pn="section-2.4.2-1">While there exist techniques that allow a Babel speaker to function
with a partial routing table (e.g., by learning just a default route or,
more generally, performing route aggregation), Babel is designed around
the assumption that every router has a full routing table.  In networks
where some nodes are too constrained to hold a full routing table, it
might be preferable to use a protocol that was designed from the outset to
work with a partial routing table (such as 
the Ad hoc On-Demand Distance Vector (AODV) routing protocol <xref target="RFC3561" format="default" sectionFormat="of" derivedContent="RFC3561"/>,
the IPv6 Routing Protocol for Low-Power and Lossy Networks (RPL) <xref target="RFC6550" format="default" sectionFormat="of" derivedContent="RFC6550"/>, or the
Lightweight On-demand Ad hoc Distance-vector Routing Protocol - Next Generation (LOADng) <xref target="I-D.clausen-lln-loadng" format="default" sectionFormat="of" derivedContent="LOADng"/>).</t>
        </section>
        <section numbered="true" toc="exclude" removeInRFC="false" pn="section-2.4.3">
          <name slugifiedName="name-slow-aggregation">Slow Aggregation</name>
          <t indent="0" pn="section-2.4.3-1">Babel's loop-avoidance mechanism relies on making a route unreachable
after a retraction until all neighbours have been guaranteed to have acted
upon the retraction, even in the presence of packet loss.  Unless the
second algorithm described in <xref target="RFC8966" sectionFormat="of" section="3.5.5" format="default" derivedLink="https://rfc-editor.org/rfc/rfc8966#section-3.5.5" derivedContent="RFC8966"/>
is implemented, this entails that a node is unreachable for a few minutes
after the most specific route to it has been retracted.  This delay makes
Babel slow to recover from a topology change in networks that perform
automatic route aggregation.</t>
        </section>
      </section>
    </section>
    <section anchor="successful" numbered="true" toc="include" removeInRFC="false" pn="section-3">
      <name slugifiedName="name-successful-deployments-of-b">Successful Deployments of Babel</name>
      <t indent="0" pn="section-3-1">This section gives a few examples of environments where Babel has been
successfully deployed.</t>
      <section numbered="true" toc="include" removeInRFC="false" pn="section-3.1">
        <name slugifiedName="name-heterogeneous-networks">Heterogeneous Networks</name>
        <t indent="0" pn="section-3.1-1">Babel is able to deal with both classical, prefix-based
("Internet-style") routing and flat ("mesh-style") routing over
non-transitive link technologies.  Just like traditional distance-vector
protocols, Babel is able to carry prefixes of arbitrary length, to suppress
redundant announcements by applying the split-horizon optimisation where
applicable, and can be configured to filter out redundant announcements
(manual aggregation).  Just like specialised mesh protocols, Babel doesn't
by default assume that links are transitive or symmetric, can dynamically
compute metrics based on an estimation of link quality, and carries large
numbers of host routes efficiently by omitting common prefixes.</t>
        <t indent="0" pn="section-3.1-2">Because of these properties, Babel has seen a number of successful
deployments in medium-sized heterogeneous networks, networks that combine
a wired, aggregated backbone with meshy wireless bits at the edges.</t>
        <t indent="0" pn="section-3.1-3">Efficient operation in heterogeneous networks requires the implementation
to distinguish between wired and wireless links, and to perform link quality
estimation on wireless links.</t>
      </section>
      <section numbered="true" toc="include" removeInRFC="false" pn="section-3.2">
        <name slugifiedName="name-large-scale-overlay-network">Large-Scale Overlay Networks</name>
        <t indent="0" pn="section-3.2-1">The algorithms used by Babel (loop avoidance, hysteresis, delayed
updates) allow it to remain stable in the presence of unstable metrics,
even in the presence of a feedback loop.  For this reason, it has been
successfully deployed in large-scale overlay networks, built out of
thousands of tunnels spanning continents, where it is used with a metric
computed from links' latencies.</t>
        <t indent="0" pn="section-3.2-2">This particular application depends on the extension for RTT-sensitive
routing <xref target="DELAY-BASED" format="default" sectionFormat="of" derivedContent="DELAY-BASED"/>.</t>
      </section>
      <section numbered="true" toc="include" removeInRFC="false" pn="section-3.3">
        <name slugifiedName="name-pure-mesh-networks">Pure Mesh Networks</name>
        <t indent="0" pn="section-3.3-1">While Babel is a general-purpose routing protocol, it has been shown to
be competitive with dedicated routing protocols for wireless mesh networks
<xref target="REAL-WORLD" format="default" sectionFormat="of" derivedContent="REAL-WORLD"/> <xref target="BRIDGING-LAYERS" format="default" sectionFormat="of" derivedContent="BRIDGING-LAYERS"/>.  Although
this particular niche is already served by a number of mature protocols,
notably the Optimized Link State Routing Protocol with Expected Transmission Count (OLSR-ETX) and 
OLSRv2 (OLSR Version 2) <xref target="RFC7181" format="default" sectionFormat="of" derivedContent="RFC7181"/> (equipped
e.g., with the Directional Airtime (DAT) metric <xref target="RFC7779" format="default" sectionFormat="of" derivedContent="RFC7779"/>), Babel has seen
a moderate amount of successful deployment in pure mesh networks.</t>
      </section>
      <section numbered="true" toc="include" removeInRFC="false" pn="section-3.4">
        <name slugifiedName="name-small-unmanaged-networks">Small Unmanaged Networks</name>
        <t indent="0" pn="section-3.4-1">Because of its small size and simple configuration, Babel has been
deployed in small, unmanaged networks (e.g., home and small office
networks), where it serves as a more efficient replacement for RIP
<xref target="RFC2453" format="default" sectionFormat="of" derivedContent="RFC2453"/>, over which it has two significant advantages: the
ability to route multiple address families (IPv6 and IPv4) in a single
protocol instance and good support for using wireless links for
transit.</t>
      </section>
    </section>
    <section numbered="true" toc="include" removeInRFC="false" pn="section-4">
      <name slugifiedName="name-security-considerations">Security Considerations</name>
      <t indent="0" pn="section-4-1">As is the case in all distance-vector routing protocols, a Babel
speaker receives reachability information from its neighbours, which by
default is trusted by all nodes in the routing domain.</t>
      <t indent="0" pn="section-4-2">At the time of writing, the Babel protocol is usually run over
a network that is secured either at the physical layer (e.g., physically
protecting Ethernet sockets) or at the link layer (using a protocol such
as Wi-Fi Protected Access 2 (WPA2)).  If Babel is being run over an
unprotected network, then the routing traffic needs to be protected using
a sufficiently strong cryptographic mechanism.</t>
      <t indent="0" pn="section-4-3">At the time of writing, two such mechanisms have been defined.
Message Authentication Code (MAC) authentication for Babel (Babel-MAC) 
<xref target="RFC8967" format="default" sectionFormat="of" derivedContent="RFC8967"/> is a simple and easy to implement
mechanism that only guarantees authenticity, integrity, and replay
protection of the routing traffic and only supports symmetric keying with
a small number of keys (typically just one or two).  Babel-DTLS
<xref target="RFC8968" format="default" sectionFormat="of" derivedContent="RFC8968"/> is a more complex mechanism that requires
some minor changes to be made to a typical Babel implementation and
depends on a DTLS stack being available, but inherits all of the features
of DTLS, notably confidentiality, optional replay protection, and the
ability to use asymmetric keys.</t>
      <t indent="0" pn="section-4-4">Due to its simplicity, Babel-MAC should be the preferred security
mechanism in most deployments, with Babel-DTLS available for networks
that require its additional features.</t>
      <t indent="0" pn="section-4-5">In addition to the above, the information that a mobile Babel node
announces to the whole routing domain is often sufficient to determine
a mobile node's physical location with reasonable precision.  This might
make Babel unapplicable in scenarios where a node's location is considered
confidential.</t>
    </section>
  </middle>
  <back>
    <displayreference target="I-D.chouasne-babel-tos-specific" to="BABEL-TOS"/>
    <displayreference target="I-D.ietf-babel-source-specific" to="BABEL-SS"/>
    <displayreference target="I-D.jonglez-babel-rtt-extension" to="BABEL-RTT"/>
    <displayreference target="I-D.chroboczek-babel-diversity-routing" to="BABEL-Z"/>
    <displayreference target="I-D.clausen-lln-loadng" to="LOADng"/>
    <references pn="section-5">
      <name slugifiedName="name-references">References</name>
      <references pn="section-5.1">
        <name slugifiedName="name-normative-references">Normative References</name>
        <reference anchor="RFC8966" target="https://www.rfc-editor.org/info/rfc8966" quoteTitle="true" derivedAnchor="RFC8966">
          <front>
            <title>The Babel Routing Protocol</title>
            <author fullname="Juliusz Chroboczek" initials="J." surname="Chroboczek"/>
            <author fullname="David Schinazi" initials="D." surname="Schinazi"/>
            <date month="January" year="2021"/>
          </front>
          <seriesInfo name="RFC" value="8966"/>
          <seriesInfo name="DOI" value="10.17487/RFC8966"/>
        </reference>
      </references>
      <references pn="section-5.2">
        <name slugifiedName="name-informative-references">Informative References</name>
        <reference anchor="I-D.jonglez-babel-rtt-extension" quoteTitle="true" target="https://tools.ietf.org/html/draft-jonglez-babel-rtt-extension-02" derivedAnchor="BABEL-RTT">
          <front>
            <title>Delay-based Metric Extension for the Babel Routing Protocol</title>
            <author fullname="Baptiste Jonglez">
              <organization showOnFrontPage="true">ENS Lyon</organization>
            </author>
            <author fullname="Juliusz Chroboczek">
              <organization showOnFrontPage="true">IRIF, University of Paris-Diderot</organization>
            </author>
            <date month="March" day="11" year="2019"/>
            <abstract>
              <t indent="0">   This document defines an extension to the Babel routing protocol that
   uses symmetric delay in metric computation and therefore makes it
   possible to prefer lower latency links to higher latency ones.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-jonglez-babel-rtt-extension-02"/>
          <format type="TXT" target="https://www.ietf.org/internet-drafts/draft-jonglez-babel-rtt-extension-02.txt"/>
          <refcontent>Work in Progress</refcontent>
        </reference>
        <reference anchor="I-D.ietf-babel-source-specific" quoteTitle="true" target="https://tools.ietf.org/html/draft-ietf-babel-source-specific-07" derivedAnchor="BABEL-SS">
          <front>
            <title>Source-Specific Routing in Babel</title>
            <author fullname="Matthieu Boutier">
              <organization showOnFrontPage="true">IRIF, University of Paris-Diderot</organization>
            </author>
            <author fullname="Juliusz Chroboczek">
              <organization showOnFrontPage="true">IRIF, University of Paris-Diderot</organization>
            </author>
            <date month="October" day="28" year="2020"/>
            <abstract>
              <t indent="0">   Source-specific routing (also known as Source-Address Dependent
   Routing, SADR) is an extension to traditional next-hop routing where
   packets are forwarded according to both their destination and their
   source address.  This document describes an extension for source-
   specific routing to the Babel routing protocol.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-babel-source-specific-07"/>
          <format type="TXT" target="https://www.ietf.org/internet-drafts/draft-ietf-babel-source-specific-07.txt"/>
          <refcontent>Work in Progress</refcontent>
        </reference>
        <reference anchor="I-D.chouasne-babel-tos-specific" quoteTitle="true" target="https://tools.ietf.org/html/draft-chouasne-babel-tos-specific-00" derivedAnchor="BABEL-TOS">
          <front>
            <title>TOS-Specific Routing in Babel</title>
            <author fullname="Gwendoline Chouasne">
              <organization showOnFrontPage="true">PPS, University of Paris-Diderot</organization>
            </author>
            <author fullname="Juliusz Chroboczek">
              <organization showOnFrontPage="true">PPS, University of Paris-Diderot</organization>
            </author>
            <date month="July" day="3" year="2017"/>
            <abstract>
              <t indent="0">   This document describes an extension to the Babel routing protocol to
   support TOS-specific routing.  This version is using mandatory sub-
   TLVs.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-chouasne-babel-tos-specific-00"/>
          <format type="TXT" target="https://www.ietf.org/internet-drafts/draft-chouasne-babel-tos-specific-00.txt"/>
          <refcontent>Work in Progress</refcontent>
        </reference>
        <reference anchor="I-D.chroboczek-babel-diversity-routing" quoteTitle="true" target="https://tools.ietf.org/html/draft-chroboczek-babel-diversity-routing-01" derivedAnchor="BABEL-Z">
          <front>
            <title>Diversity Routing for the Babel Routing Protocol</title>
            <author fullname="Juliusz Chroboczek">
	 </author>
            <date month="February" day="15" year="2016"/>
            <abstract>
              <t indent="0">   This document defines an extension to the Babel routing protocol that
   allows routing updates to carry radio frequency information, and
   therefore makes it possible to use radio diversity information for
   route selection.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-chroboczek-babel-diversity-routing-01"/>
          <format type="TXT" target="https://www.ietf.org/internet-drafts/draft-chroboczek-babel-diversity-routing-01.txt"/>
          <refcontent>Work in Progress</refcontent>
        </reference>
        <reference anchor="BRIDGING-LAYERS" quoteTitle="true" target="https://doi.org/10.1109/ATNAC.2010.5680190" derivedAnchor="BRIDGING-LAYERS">
          <front>
            <title>An Experimental Comparison of Routing Protocols in Multi Hop Ad Hoc Networks</title>
            <author initials="D." surname="Murray" fullname="David Murray"/>
            <author initials="M." surname="Dixon" fullname="Michael Dixon"/>
            <author initials="T." surname="Koziniec" fullname="Terry Koziniec"/>
            <date month="October" year="2010"/>
          </front>
          <refcontent>In Proceedings of ATNAC</refcontent>
          <seriesInfo name="DOI" value="10.1109/ATNAC.2010.5680190"/>
        </reference>
        <reference anchor="DELAY-BASED" target="http://arxiv.org/abs/1403.3488" quoteTitle="true" derivedAnchor="DELAY-BASED">
          <front>
            <title>A delay-based routing metric</title>
            <author fullname="Baptiste Jonglez" initials="B." surname="Jonglez"/>
            <author fullname="Matthieu Boutier" initials="M." surname="Boutier"/>
            <author fullname="Juliusz Chroboczek" initials="J." surname="Chroboczek"/>
            <date month="March" year="2014"/>
          </front>
        </reference>
        <reference anchor="DSDV" target="https://doi.org/10.1145/190314.190336" quoteTitle="true" derivedAnchor="DSDV">
          <front>
            <title>Highly Dynamic Destination-Sequenced Distance-Vector Routing (DSDV) for Mobile Computers</title>
            <author fullname="Charles Perkins" initials="C." surname="Perkins"/>
            <author fullname="Pravin Bhagwat" initials="P." surname="Bhagwat"/>
            <date month="October" year="1994"/>
          </front>
          <refcontent>ACM SIGCOMM '94: Proceedings of the Conference on Communications Architectures, Protocols and Applications, pp. 234-244</refcontent>
          <seriesInfo name="DOI" value="10.1145/190314.190336"/>
        </reference>
        <reference anchor="DUAL" quoteTitle="true" target="https://doi.org/10.1109/90.222913" derivedAnchor="DUAL">
          <front>
            <title>Loop-Free Routing Using Diffusing Computations</title>
            <author fullname="J. J. Garcia-Luna-Aceves" initials="J. J." surname="Garcia-Luna-Aceves"/>
            <date month="February" year="1993"/>
          </front>
          <refcontent>IEEE/ACM Transactions on Networking, Volume 1, Issue 1</refcontent>
          <seriesInfo name="DOI" value="10.1109/90.222913"/>
        </reference>
        <reference anchor="I-D.clausen-lln-loadng" quoteTitle="true" target="https://tools.ietf.org/html/draft-clausen-lln-loadng-15" derivedAnchor="LOADng">
          <front>
            <title>The Lightweight On-demand Ad hoc Distance-vector Routing Protocol - Next Generation (LOADng)</title>
            <author fullname="Thomas Heide Clausen">
	 </author>
            <author fullname="Axel Colin de Verdiere">
	 </author>
            <author fullname="Jiazi Yi">
	 </author>
            <author fullname="Afshin Niktash">
	 </author>
            <author fullname="Yuichi Igarashi">
	 </author>
            <author fullname="Hiroki Satoh">
	 </author>
            <author fullname="Ulrich Herberg">
	 </author>
            <author fullname="Cedric Lavenu">
	 </author>
            <author fullname="Thierry Lys">
	 </author>
            <author fullname="Justin Dean">
	 </author>
            <date month="July" day="4" year="2016"/>
            <abstract>
              <t indent="0">   This document describes the Lightweight Ad hoc On-Demand - Next
   Generation (LOADng) distance vector routing protocol, a reactive
   routing protocol intended for use in Mobile Ad hoc NETworks (MANETs).

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-clausen-lln-loadng-15"/>
          <format type="TXT" target="https://www.ietf.org/internet-drafts/draft-clausen-lln-loadng-15.txt"/>
          <refcontent>Work in Progress</refcontent>
        </reference>
        <reference anchor="METAROUTING" quoteTitle="true" target="https://doi.org/10.1145/1090191.1080094" derivedAnchor="METAROUTING">
          <front>
            <title>Metarouting</title>
            <author initials="T. G." surname="Griffin" fullname="Timothy G. Griffin"/>
            <author initials="J. L." surname="Sobrinho" fullname="Joao Luis Sobrinho"/>
            <date month="August" year="2005"/>
          </front>
          <refcontent>ACM SIGCOMM Computer Communication Review, Volume 35, Issue 4</refcontent>
          <seriesInfo name="DOI" value="10.1145/1090191.1080094"/>
        </reference>
        <reference anchor="REAL-WORLD" quoteTitle="true" target="https://doi.org/10.1109/APCC.2009.5375690" derivedAnchor="REAL-WORLD">
          <front>
            <title>Real-world performance of current proactive multi-hop mesh protocols</title>
            <author initials="M." surname="Abolhasan"/>
            <author initials="B." surname="Hagelstein"/>
            <author initials="J. C.-P." surname="Wang"/>
            <date month="October" year="2009"/>
          </front>
          <refcontent>15th Asia-Pacific Conference on Communications</refcontent>
          <seriesInfo name="DOI" value="10.1109/APCC.2009.5375690"/>
        </reference>
        <reference anchor="RFC1195" target="https://www.rfc-editor.org/info/rfc1195" quoteTitle="true" derivedAnchor="RFC1195">
          <front>
            <title>Use of OSI IS-IS for routing in TCP/IP and dual environments</title>
            <author initials="R.W." surname="Callon" fullname="R.W. Callon">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="1990" month="December"/>
            <abstract>
              <t indent="0">This memo specifies an integrated routing protocol, based on the OSI Intra-Domain IS-IS Routing Protocol, which may be used as an interior gateway protocol (IGP) to support TCP/IP as well as OSI.  This allows a single routing protocol to be used to support pure IP environments, pure OSI environments, and dual environments.  This specification was developed by the IS-IS working group of the Internet Engineering Task Force.  [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="1195"/>
          <seriesInfo name="DOI" value="10.17487/RFC1195"/>
        </reference>
        <reference anchor="RFC2453" target="https://www.rfc-editor.org/info/rfc2453" quoteTitle="true" derivedAnchor="RFC2453">
          <front>
            <title>RIP Version 2</title>
            <author initials="G." surname="Malkin" fullname="G. Malkin">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="1998" month="November"/>
            <abstract>
              <t indent="0">This document specifies an extension of the Routing Information Protocol (RIP) to expand the amount of useful information carried in RIP messages and to add a measure of security.  [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="56"/>
          <seriesInfo name="RFC" value="2453"/>
          <seriesInfo name="DOI" value="10.17487/RFC2453"/>
        </reference>
        <reference anchor="RFC3561" target="https://www.rfc-editor.org/info/rfc3561" quoteTitle="true" derivedAnchor="RFC3561">
          <front>
            <title>Ad hoc On-Demand Distance Vector (AODV) Routing</title>
            <author initials="C." surname="Perkins" fullname="C. Perkins">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="E." surname="Belding-Royer" fullname="E. Belding-Royer">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="S." surname="Das" fullname="S. Das">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2003" month="July"/>
            <abstract>
              <t indent="0">The Ad hoc On-Demand Distance Vector (AODV) routing protocol is intended for use by mobile nodes in an ad hoc network.  It offers quick adaptation to dynamic link conditions, low processing and memory overhead, low network utilization, and determines unicast routes to destinations within the ad hoc network.  It uses destination sequence numbers to ensure loop freedom at all times (even in the face of anomalous delivery of routing control messages), avoiding problems (such as "counting to infinity") associated with classical distance vector protocols.  This memo defines an Experimental Protocol for the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="3561"/>
          <seriesInfo name="DOI" value="10.17487/RFC3561"/>
        </reference>
        <reference anchor="RFC5340" target="https://www.rfc-editor.org/info/rfc5340" quoteTitle="true" derivedAnchor="RFC5340">
          <front>
            <title>OSPF for IPv6</title>
            <author initials="R." surname="Coltun" fullname="R. Coltun">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="D." surname="Ferguson" fullname="D. Ferguson">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="J." surname="Moy" fullname="J. Moy">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="A." surname="Lindem" fullname="A. Lindem">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2008" month="July"/>
            <abstract>
              <t indent="0">This document describes the modifications to OSPF to support version 6 of the Internet Protocol (IPv6).  The fundamental mechanisms of OSPF (flooding, Designated Router (DR) election, area support, Short Path First (SPF) calculations, etc.) remain unchanged.  However, some changes have been necessary, either due to changes in protocol semantics between IPv4 and IPv6, or simply to handle the increased address size of IPv6.  These modifications will necessitate incrementing the protocol version from version 2 to version 3.  OSPF for IPv6 is also referred to as OSPF version 3 (OSPFv3).</t>
              <t indent="0">Changes between OSPF for IPv4, OSPF Version 2, and OSPF for IPv6 as described herein include the following.  Addressing semantics have been removed from OSPF packets and the basic Link State Advertisements (LSAs).  New LSAs have been created to carry IPv6 addresses and prefixes.  OSPF now runs on a per-link basis rather than on a per-IP-subnet basis.  Flooding scope for LSAs has been generalized.  Authentication has been removed from the OSPF protocol and instead relies on IPv6's Authentication Header and Encapsulating Security Payload (ESP).</t>
              <t indent="0">Even with larger IPv6 addresses, most packets in OSPF for IPv6 are almost as compact as those in OSPF for IPv4.  Most fields and packet- size limitations present in OSPF for IPv4 have been relaxed.  In addition, option handling has been made more flexible.</t>
              <t indent="0">All of OSPF for IPv4's optional capabilities, including demand circuit support and Not-So-Stubby Areas (NSSAs), are also supported in OSPF for IPv6.  [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5340"/>
          <seriesInfo name="DOI" value="10.17487/RFC5340"/>
        </reference>
        <reference anchor="RFC6550" target="https://www.rfc-editor.org/info/rfc6550" quoteTitle="true" derivedAnchor="RFC6550">
          <front>
            <title>RPL: IPv6 Routing Protocol for Low-Power and Lossy Networks</title>
            <author initials="T." surname="Winter" fullname="T. Winter" role="editor">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="P." surname="Thubert" fullname="P. Thubert" role="editor">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="A." surname="Brandt" fullname="A. Brandt">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="J." surname="Hui" fullname="J. Hui">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="R." surname="Kelsey" fullname="R. Kelsey">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="P." surname="Levis" fullname="P. Levis">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="K." surname="Pister" fullname="K. Pister">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="R." surname="Struik" fullname="R. Struik">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="JP." surname="Vasseur" fullname="JP. Vasseur">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="R." surname="Alexander" fullname="R. Alexander">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2012" month="March"/>
            <abstract>
              <t indent="0">Low-Power and Lossy Networks (LLNs) are a class of network in which both the routers and their interconnect are constrained.  LLN routers typically operate with constraints on processing power, memory, and energy (battery power).  Their interconnects are characterized by high loss rates, low data rates, and instability.  LLNs are comprised of anything from a few dozen to thousands of routers.  Supported traffic flows include point-to-point (between devices inside the LLN), point-to-multipoint (from a central control point to a subset of devices inside the LLN), and multipoint-to-point (from devices inside the LLN towards a central control point).  This document specifies the IPv6 Routing Protocol for Low-Power and Lossy Networks (RPL), which provides a mechanism whereby multipoint-to-point traffic from devices inside the LLN towards a central control point as well as point-to-multipoint traffic from the central control point to the devices inside the LLN are supported.  Support for point-to-point traffic is also available.  [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6550"/>
          <seriesInfo name="DOI" value="10.17487/RFC6550"/>
        </reference>
        <reference anchor="RFC7181" target="https://www.rfc-editor.org/info/rfc7181" quoteTitle="true" derivedAnchor="RFC7181">
          <front>
            <title>The Optimized Link State Routing Protocol Version 2</title>
            <author initials="T." surname="Clausen" fullname="T. Clausen">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="C." surname="Dearlove" fullname="C. Dearlove">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="P." surname="Jacquet" fullname="P. Jacquet">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="U." surname="Herberg" fullname="U. Herberg">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2014" month="April"/>
            <abstract>
              <t indent="0">This specification describes version 2 of the Optimized Link State Routing Protocol (OLSRv2) for Mobile Ad Hoc Networks (MANETs).</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7181"/>
          <seriesInfo name="DOI" value="10.17487/RFC7181"/>
        </reference>
        <reference anchor="RFC7779" target="https://www.rfc-editor.org/info/rfc7779" quoteTitle="true" derivedAnchor="RFC7779">
          <front>
            <title>Directional Airtime Metric Based on Packet Sequence Numbers for Optimized Link State Routing Version 2 (OLSRv2)</title>
            <author initials="H." surname="Rogge" fullname="H. Rogge">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="E." surname="Baccelli" fullname="E. Baccelli">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2016" month="April"/>
            <abstract>
              <t indent="0">This document specifies a Directional Airtime (DAT) link metric for usage in Optimized Link State Routing version 2 (OLSRv2).</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7779"/>
          <seriesInfo name="DOI" value="10.17487/RFC7779"/>
        </reference>
        <reference anchor="RFC7868" target="https://www.rfc-editor.org/info/rfc7868" quoteTitle="true" derivedAnchor="RFC7868">
          <front>
            <title>Cisco's Enhanced Interior Gateway Routing Protocol (EIGRP)</title>
            <author initials="D." surname="Savage" fullname="D. Savage">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="J." surname="Ng" fullname="J. Ng">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="S." surname="Moore" fullname="S. Moore">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="D." surname="Slice" fullname="D. Slice">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="P." surname="Paluch" fullname="P. Paluch">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="R." surname="White" fullname="R. White">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2016" month="May"/>
            <abstract>
              <t indent="0">This document describes the protocol design and architecture for Enhanced Interior Gateway Routing Protocol (EIGRP).  EIGRP is a routing protocol based on Distance Vector technology.  The specific algorithm used is called "DUAL", a Diffusing Update Algorithm as referenced in "Loop-Free Routing Using Diffusing Computations" (Garcia-Luna-Aceves 1993).  The algorithm and procedures were researched, developed, and simulated by SRI International.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7868"/>
          <seriesInfo name="DOI" value="10.17487/RFC7868"/>
        </reference>
        <reference anchor="RFC8967" target="https://www.rfc-editor.org/info/rfc8967" quoteTitle="true" derivedAnchor="RFC8967">
          <front>
            <title>MAC Authentication for the Babel Routing Protocol</title>
            <author initials="C." surname="Dô" fullname="Clara Dô">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="W." surname="Kolodziejak" fullname="Weronika Kolodziejak">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="J." surname="Chroboczek" fullname="Juliusz Chroboczek">
              <organization showOnFrontPage="true"/>
            </author>
            <date month="January" year="2021"/>
          </front>
          <seriesInfo name="RFC" value="8967"/>
          <seriesInfo name="DOI" value="10.17487/RFC8967"/>
        </reference>
        <reference anchor="RFC8968" target="https://www.rfc-editor.org/info/rfc8968" quoteTitle="true" derivedAnchor="RFC8968">
          <front>
            <title>Babel Routing Protocol over Datagram Transport Layer Security</title>
            <author initials="A." surname="Décimo" fullname="Antonin Décimo">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="D." surname="Schinazi" fullname="David Schinazi">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="J." surname="Chroboczek" fullname="Juliusz Chroboczek">
              <organization showOnFrontPage="true"/>
            </author>
            <date month="January" year="2021"/>
          </front>
          <seriesInfo name="RFC" value="8968"/>
          <seriesInfo name="DOI" value="10.17487/RFC8968"/>
        </reference>
        <reference anchor="SS-ROUTING" target="http://arxiv.org/pdf/1403.0445" quoteTitle="true" derivedAnchor="SS-ROUTING">
          <front>
            <title>Source-specific routing</title>
            <author initials="M." surname="Boutier" fullname="Matthieu Boutier"/>
            <author initials="J." surname="Chroboczek" fullname="Juliusz Chroboczek"/>
            <date year="2015" month="May"/>
          </front>
          <refcontent>In Proceedings of the IFIP Networking Conference</refcontent>
          <seriesInfo name="DOI" value="10.1109/IFIPNetworking.2015.7145305"/>
        </reference>
      </references>
    </references>
    <section numbered="false" toc="include" removeInRFC="false" pn="section-appendix.a">
      <name slugifiedName="name-acknowledgments">Acknowledgments</name>
      <t indent="0" pn="section-appendix.a-1">The author is indebted to <contact fullname="Jean-Paul Smetz"/> and 
      <contact fullname="Alexander Vainshtein"/> for their input to this document.</t>
    </section>
    <section anchor="authors-addresses" numbered="false" removeInRFC="false" toc="include" pn="section-appendix.b">
      <name slugifiedName="name-authors-address">Author's Address</name>
      <author fullname="Juliusz Chroboczek" initials="J." surname="Chroboczek">
        <organization showOnFrontPage="true">IRIF, University of Paris-Diderot</organization>
        <address>
          <postal>
            <street>Case 7014</street>
            <city>Paris CEDEX 13</city>
            <region/>
            <code>75205</code>
            <country>France</country>
          </postal>
          <email>jch@irif.fr</email>
        </address>
      </author>
    </section>
  </back>
</rfc>
