Internet DRAFT - draft-mrw-homenet-rtg-comparison

draft-mrw-homenet-rtg-comparison







Homenet Working Group                                       M. Wasserman
Internet-Draft                                         Painless Security
Intended status: Informational                                  C. Hopps
Expires: September 6, 2015                              Deutsche Telekom
                                                           J. Chroboczek
                                   University of Paris-Diderot (Paris 7)
                                                           March 5, 2015


                   Homenet IS-IS and Babel Comparison
                draft-mrw-homenet-rtg-comparison-02.txt

Abstract

   This document is intended to provide information to members of the
   IETF Home Networks Working Group (Homenet WG), so that we can make an
   informed decision regarding which routing protocol to use in home
   networks.  The routing protocols compared in this document are: The
   Babel Routing Protocol (Babel) and The Intermediate System to
   Intermediate System Intra-Domain Routing Protocol (IS-IS).

Status of This Memo

   This Internet-Draft is submitted in full conformance with the
   provisions of BCP 78 and BCP 79.

   Internet-Drafts are working documents of the Internet Engineering
   Task Force (IETF).  Note that other groups may also distribute
   working documents as Internet-Drafts.  The list of current Internet-
   Drafts is at http://datatracker.ietf.org/drafts/current/.

   Internet-Drafts are draft documents valid for a maximum of six months
   and may be updated, replaced, or obsoleted by other documents at any
   time.  It is inappropriate to use Internet-Drafts as reference
   material or to cite them other than as "work in progress."

   This Internet-Draft will expire on September 6, 2015.

Copyright Notice

   Copyright (c) 2015 IETF Trust and the persons identified as the
   document authors.  All rights reserved.

   This document is subject to BCP 78 and the IETF Trust's Legal
   Provisions Relating to IETF Documents
   (http://trustee.ietf.org/license-info) in effect on the date of
   publication of this document.  Please review these documents
   carefully, as they describe your rights and restrictions with respect



Wasserman, et al.       Expires September 6, 2015               [Page 1]

Internet-Draft     Homenet IS-IS and Babel Comparison         March 2015


   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.

Table of Contents

   1.  Introduction  . . . . . . . . . . . . . . . . . . . . . . . .   4
   2.  Protocols and Extensions Included in Comparison . . . . . . .   5
     2.1.  IS-IS Protocol and Extensions . . . . . . . . . . . . . .   5
     2.2.  Babel Protocol and Extensions . . . . . . . . . . . . . .   6
   3.  Routing Algorithms  . . . . . . . . . . . . . . . . . . . . .   6
     3.1.  Link State Algorithm  . . . . . . . . . . . . . . . . . .   6
     3.2.  Loop-Avoiding Distance-Vector Algorithm (Babel) . . . . .   6
     3.3.  Discussion  . . . . . . . . . . . . . . . . . . . . . . .   7
   4.  Convergence Times . . . . . . . . . . . . . . . . . . . . . .   7
     4.1.  IS-IS . . . . . . . . . . . . . . . . . . . . . . . . . .   7
     4.2.  Babel . . . . . . . . . . . . . . . . . . . . . . . . . .   7
     4.3.  Discussion  . . . . . . . . . . . . . . . . . . . . . . .   8
   5.  Autoconfiguration . . . . . . . . . . . . . . . . . . . . . .   8
     5.1.  IS-IS . . . . . . . . . . . . . . . . . . . . . . . . . .   8
     5.2.  Babel . . . . . . . . . . . . . . . . . . . . . . . . . .   8
     5.3.  Discussion  . . . . . . . . . . . . . . . . . . . . . . .   8
   6.  Support for Source-Specific Routing . . . . . . . . . . . . .   9
     6.1.  Source-Specific Routing in IS-IS  . . . . . . . . . . . .   9
     6.2.  Source-Specific Routing in Babel  . . . . . . . . . . . .   9
     6.3.  Discussion  . . . . . . . . . . . . . . . . . . . . . . .   9
   7.  Support for Link Metrics  . . . . . . . . . . . . . . . . . .  10
     7.1.  Link Metrics in IS-IS . . . . . . . . . . . . . . . . . .  10
     7.2.  Link Metrics in Babel . . . . . . . . . . . . . . . . . .  10
     7.3.  Discussion  . . . . . . . . . . . . . . . . . . . . . . .  11
   8.  Support for Stub Networks and Stub Routers  . . . . . . . . .  11
     8.1.  IS-IS Support for Stub Networks and Stub Routers  . . . .  12
     8.2.  Babel Support for Stub Networks . . . . . . . . . . . . .  12
     8.3.  Discussion  . . . . . . . . . . . . . . . . . . . . . . .  13
   9.  Support for non-IEEE 802.2 link layers  . . . . . . . . . . .  13
     9.1.  IS-IS . . . . . . . . . . . . . . . . . . . . . . . . . .  13
     9.2.  Babel . . . . . . . . . . . . . . . . . . . . . . . . . .  13
   10. Security Features . . . . . . . . . . . . . . . . . . . . . .  13
     10.1.  Security Features in IS-IS . . . . . . . . . . . . . . .  13
     10.2.  Security Features in Babel . . . . . . . . . . . . . . .  13
     10.3.  Discussion . . . . . . . . . . . . . . . . . . . . . . .  14
   11. Support for Multicast . . . . . . . . . . . . . . . . . . . .  14
     11.1.  Multicast Routing in IS-IS . . . . . . . . . . . . . . .  14
     11.2.  Multicast Routing in Babel . . . . . . . . . . . . . . .  14
     11.3.  Discussion . . . . . . . . . . . . . . . . . . . . . . .  14
   12. Implementation Status . . . . . . . . . . . . . . . . . . . .  14
   13. Code and State Size . . . . . . . . . . . . . . . . . . . . .  15



Wasserman, et al.       Expires September 6, 2015               [Page 2]

Internet-Draft     Homenet IS-IS and Babel Comparison         March 2015


     13.1.  IS-IS Code and State Size  . . . . . . . . . . . . . . .  15
     13.2.  Babel Code and State Size  . . . . . . . . . . . . . . .  15
     13.3.  Comparison . . . . . . . . . . . . . . . . . . . . . . .  16
   14. Ease of porting . . . . . . . . . . . . . . . . . . . . . . .  17
     14.1.  IS-IS ease of porting  . . . . . . . . . . . . . . . . .  17
     14.2.  Babel ease of porting  . . . . . . . . . . . . . . . . .  17
     14.3.  Discussion . . . . . . . . . . . . . . . . . . . . . . .  18
   15. Behaviour upon resource exhaustion  . . . . . . . . . . . . .  18
     15.1.  IS-IS  . . . . . . . . . . . . . . . . . . . . . . . . .  18
     15.2.  Babel  . . . . . . . . . . . . . . . . . . . . . . . . .  18
   16. Performance and scaling on IEEE 802.11 Wireless Networks  . .  18
     16.1.  IS-IS Performance on 802.11  . . . . . . . . . . . . . .  19
     16.2.  Babel Performance on 802.11  . . . . . . . . . . . . . .  19
     16.3.  Discussion . . . . . . . . . . . . . . . . . . . . . . .  20
   17. Standardization Status  . . . . . . . . . . . . . . . . . . .  20
     17.1.  IS-IS Standardization  . . . . . . . . . . . . . . . . .  20
     17.2.  Babel Standardization Status . . . . . . . . . . . . . .  20
   18. Evaluation of RFC 7368 Criteria . . . . . . . . . . . . . . .  21
   19. Evaluation of RFC 5218 Criteria . . . . . . . . . . . . . . .  22
     19.1.  Critical Success Factors . . . . . . . . . . . . . . . .  22
       19.1.1.  IS-IS Success Factors  . . . . . . . . . . . . . . .  22
       19.1.2.  Babel Success Factors  . . . . . . . . . . . . . . .  23
     19.2.  Willing Implementors . . . . . . . . . . . . . . . . . .  24
       19.2.1.  IS-IS  . . . . . . . . . . . . . . . . . . . . . . .  24
       19.2.2.  Babel  . . . . . . . . . . . . . . . . . . . . . . .  24
     19.3.  Willing Customers  . . . . . . . . . . . . . . . . . . .  24
       19.3.1.  IS-IS  . . . . . . . . . . . . . . . . . . . . . . .  24
       19.3.2.  Babel  . . . . . . . . . . . . . . . . . . . . . . .  24
     19.4.  Potential Niches . . . . . . . . . . . . . . . . . . . .  25
       19.4.1.  IS-IS  . . . . . . . . . . . . . . . . . . . . . . .  25
       19.4.2.  Babel  . . . . . . . . . . . . . . . . . . . . . . .  25
     19.5.  Complexity Removal . . . . . . . . . . . . . . . . . . .  25
       19.5.1.  IS-IS  . . . . . . . . . . . . . . . . . . . . . . .  25
       19.5.2.  Babel  . . . . . . . . . . . . . . . . . . . . . . .  25
     19.6.  Killer App . . . . . . . . . . . . . . . . . . . . . . .  25
       19.6.1.  IS-IS  . . . . . . . . . . . . . . . . . . . . . . .  26
       19.6.2.  Babel  . . . . . . . . . . . . . . . . . . . . . . .  26
     19.7.  Extensible . . . . . . . . . . . . . . . . . . . . . . .  26
       19.7.1.  IS-IS  . . . . . . . . . . . . . . . . . . . . . . .  26
       19.7.2.  Babel  . . . . . . . . . . . . . . . . . . . . . . .  26
     19.8.  Success Predictable  . . . . . . . . . . . . . . . . . .  27
       19.8.1.  IS-IS  . . . . . . . . . . . . . . . . . . . . . . .  27
       19.8.2.  Babel  . . . . . . . . . . . . . . . . . . . . . . .  27
   20. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . .  27
   21. Informative References  . . . . . . . . . . . . . . . . . . .  27
   Authors' Addresses  . . . . . . . . . . . . . . . . . . . . . . .  29





Wasserman, et al.       Expires September 6, 2015               [Page 3]

Internet-Draft     Homenet IS-IS and Babel Comparison         March 2015


1.  Introduction

   This document compares IS-IS (ISO/IEC 10589:2002) [ISO10589] and
   Babel [RFC6126] according to several criteria related to their use in
   home networks (Homenets), as defined by the Homenet WG.

   [There has been a request that this document compare OSPF as well as
   Babel and IS-IS.  If the WG would find that useful, we would need an
   OSPF expert who is willing to provide text on OSPF similar to the
   information that has been provided for IS-IS and Babel.]

   Please note that this document does not represent the consenus of any
   group, not even the authors.  It is an organized collection of facts
   and well-informed opinions provided by experts on Babel and IS-IS
   that may be useful to the Homenet WG in choosing a routing protocol.

   The Homenet environment is different from the environment of a
   professionally administered network.  The most obvious difference is
   that most home networks are not administered: any protocols used must
   be robust and fully self-configuring, and any tuning knobs that they
   provide will be unused in the vast majority of deployments.  There
   may be exceptions to the "no configuration" rule in some
   environments.  For instance, Homenet products may be used in
   environments where network security is important enough to warrant
   the configuration of security information, such as keys or
   certificates.  However, even in those environments, minimal
   configuration should be necessary to deploy a Homenet network.

   Another difference is that Homenets are usually built out of a
   specific class of cheap device, the "Plastic Home Router".  A Plastic
   Home Router's firmware is installed at the factory, and is most
   likely never updated.  Additionally, experience shows that home
   routers are often used way beyond their warranty period, and even
   after their manufacturer leaves the router business.  This, again,
   argues in favour of simple, robust protocols that are easy to
   implement and can be expected to keep functioning without software
   updates.

   A Plastic Home Router is usually equipped with a reasonable CPU but
   fairly small amounts of flash and RAM.  At the time of writing, a
   typical example of the bottom of the range has a 200MHz MIPS 4KEc CPU
   (8kB data cache), but only 4MB of flash and 8MB of RAM.  More
   expensive multi-purpose products may have a 700MHz MIPS 24Kc with
   32MB of flash and as much as 128MB of RAM.

   We expect smaller devices to want to participate in the Homenet
   protocols.  In particular, some vendors have expressed interest in
   producing sensor-class hardware that is able to interoperate with



Wasserman, et al.       Expires September 6, 2015               [Page 4]

Internet-Draft     Homenet IS-IS and Babel Comparison         March 2015


   Homenet (smart thermostats, home automation hardware, etc.).  It is
   therefore desirable to be able to scale down the Homenet protocols
   down to a few tens of kB, at least in a stub role.

   Homenets are built and grow organically, and often end up consisting
   of multiple link technologies with widely different performance
   characteristics (twisted-pair Ethernet at gigabit speed, IEEE 802.11
   (WiFi) and its multiple variants, Powerline Ethernet, etc.).  It is
   desirable for a Homenet routing protocol to be able to dynamically
   optimise paths according to the link characteristics.

   Experts appear to disagree on the expected size of a Homenet: we have
   heard estimates ranging from just one router up to 250 routers.  In
   any case, while scaling beyond a few thousand nodes is not likely to
   be relevant to Homenet in the foreseeable future, the Homenet
   protocols, if successful, will be repurposed to larger networks,
   whether we like it or not, and it is desirable to use a protocol that
   scales well.

2.  Protocols and Extensions Included in Comparison

   Both the IS-IS and Babel protocols are updated and extended over
   time.  This section lists the extensions that were considered in this
   comparison.  Additional protocol extensions could affect some of the
   information included in this document.

2.1.  IS-IS Protocol and Extensions

   In addition to the base IS-IS protocol specification [ISO10589], this
   comparison considers the following IS-IS extensions:

   Homenet related specifications

   o  ISIS Auto-Configuration [ISIS-AUTOCONF];

   o  Source-Specific routing in IS-IS [ISIS-SS].

   Base protocol specifications.

   o  Use of OSI IS-IS for Routing in TCP/IP and Dual Environments
      [RFC1195]

   o  IS-IS Extensions for Traffic Engineering [RFC5305]

   o  Routing IPv6 with IS-IS [RFC5308]






Wasserman, et al.       Expires September 6, 2015               [Page 5]

Internet-Draft     Homenet IS-IS and Babel Comparison         March 2015


2.2.  Babel Protocol and Extensions

   In addition to the base Babel Protocol specification (RFC 6126), this
   comparison considers the following Babel extensions:

   o  Extension Mechanism for the Babel Routing Protocol [BABEL-EXT];

   o  Source-Specific Routing [BABEL-SS], described in more detail in
      [SS-ROUTING].

3.  Routing Algorithms

   IS-IS is a Link State routing protocol, and Babel is a Loop-Avoiding
   Distance Vector routing protocol.  There are some differences between
   these algorithms, particularly in terms of scalability, how much
   information is exchanged when the routing topology changes, and how
   far topology changes are propagated.

3.1.  Link State Algorithm

   Link state algorithms distribute information for each node to all
   other nodes in the network using a flooding algorithm.  This database
   of information is then used by each node to compute the best path to
   the other nodes in the network.

   One benefit of this algorithm is that each node contains the full
   knowledge of the topology of the network.  This information can be
   used by other applications outside the routing protocol itself.

   Additionally the flooding algorithm has been found as an efficient
   method for other applications to distribute node-specific application
   data, although some care must be taken with this use so as not to
   disrupt the fundamental routing function.

3.2.  Loop-Avoiding Distance-Vector Algorithm (Babel)

   Distance-vector algorithms distribute information about the path
   length to reach each destination through a given neighbor.  Packets
   are forwarded through the neighbor that is advertising the best path
   towards the destination.

   Babel, like EIGRP, DSDV, and to a certain extent BGP, uses a loop-
   avoiding distance-vector algorithm: it avoids creating a loop even
   during reconvergence, there is no "counting to infinity", and even
   short-lived "microloops" are avoided in most cases.






Wasserman, et al.       Expires September 6, 2015               [Page 6]

Internet-Draft     Homenet IS-IS and Babel Comparison         March 2015


3.3.  Discussion

   From a purely algorithmic point of view, both kinds of algorithms are
   known to scale well beyond the needs of Homenet.  Issues of scaling
   over wireless and lossy links is discussed in Section 16.

4.  Convergence Times

   Convergence time is defined as the amount of time after a link
   failure is detected during which the network is not fully
   operational.  It does not include the time necessary to detect a link
   failure.

4.1.  IS-IS

   Given fast flooding of any change in the network, IS-IS has been
   shown to acheive sub 200ms end-to-end convergence even in very large
   provider networks (single area 900+ nodes).  Basically the time for
   convergence is the time to propagate new link state from one end of
   the network to the other plus the SPF (tree computation interval) and
   FIB loading time.  The flooding is done without delay and prior to
   running the SPF (tree-calculation) algorithm.  Thus is roughly
   proportional to propagation delay across the diameter of the network.
   The tree calculation is sub 20ms on modern CPUs.  FIB load time
   depends on the FIB hardware and design and not the routing protocol
   choice.

   [According to Gredler, "today, 1000-2000 routers in a single area are
   said to represent the upper boundary of IS-IS [...] The authors do
   not endorse these optimistic area numbers, since a lot is dependent
   on other factors than just the raw number of routers." (p. 84).  And
   I'm pretty sure he's not thinking of 200MHz CPUs with 8kB data
   caches, 802.11 and powerline. -- jch]

   We easily should expect sub-second convergence for any change in
   reachability (addition or subtraction) in any conceivable Homenet
   deployment that does not use IEEE 802.11 for router-to-router links
   (see Section 16).

4.2.  Babel

   Since Babel maintains a redundant routing table, it is most often
   able to reconverge almost instantaneously after a link failure (this
   is similar to e.g.  EIGRP).  In the case where no feasible routes are
   available, Babel reconverges in 20ms per hop to the source.






Wasserman, et al.       Expires September 6, 2015               [Page 7]

Internet-Draft     Homenet IS-IS and Babel Comparison         March 2015


4.3.  Discussion

   Both protocols enjoy fast convergence.  However, the time needed to
   reconverge is dwarfed by the amount of time needed to detect a link
   failure, which is the hold time in IS-IS (30s by default), and 2.5
   hello intervals on Babel wired links (2.5*4s, i.e. 10s by default).
   (Babel performs link quality estimation on wireless links, so the
   delay is a little higher when wireless links are involved.)

   This can be mitigated somewhat by using smaller timers, at the cost
   of higher overhead, especially on wireless links, which tend to
   suffer from abominable per-frame overhead.  IS-IS supports hold times
   as small as 1s, while Babel supports hello intervals as low as 10ms
   (leading to a 25ms hold time).  (Either protocol could of course be
   combined with BFD, which supports arbitrarily small hold times.)

   It has been suggested that physical layer carrier sense could be used
   to detect broken links in a timely manner.  Unfortunately, this
   technique is not useful in Homenet, since most Plastic Home Routers
   put their Ethernet ports behind an internal switch in order to
   provide 5 or more Ethernet ports using a single NIC: carrier sense
   indicates the status of the internal link to the switch, not that of
   the user-visible Ethernet link.  Carrier sense has also been found to
   be unreliable on wireless links.

5.  Autoconfiguration

   Most home networks are not administered, so a routing protocol needs
   to be entirely self-configuring in order to be suitable for Homenets.

5.1.  IS-IS

   The only required configuration for IS-IS is a unique area/system
   identifier.  The Homenet implementation of IS-IS uses an
   autoconfiguration extension defined in an Internet Draft
   [ISIS-AUTOCONF], to set this value.

5.2.  Babel

   Babel is a fully self-configuring protocol -- the standard
   implementation of Babel only requires a list of interfaces in order
   to start routing.

5.3.  Discussion

   When combined with HNCP, both protocols are able to run in an
   unadministered network (but see also Section 7).




Wasserman, et al.       Expires September 6, 2015               [Page 8]

Internet-Draft     Homenet IS-IS and Babel Comparison         March 2015


6.  Support for Source-Specific Routing

   Source-Specific Routing is a hard requirement for Homenets, as it
   will allow traffic to be routed to the correct outbound network based
   on host source address selection.  Routing packets to the wrong
   outbound network could result in packets being dropped due to ISP
   ingress filtering rules.

   Both Babel and IS-IS have extensions for source-specific routing.

6.1.  Source-Specific Routing in IS-IS

   IS-IS support for source specific routing is implemented with the
   addition of a sub-TLV to a reachability (prefix) TLV.  The
   implementation assumes that all IS-IS routers have support for the
   sub-TLV.  This assumption is safe to make due to the requirement that
   all homenet IS-IS routers also use a homenet specific area ID and
   cleartext password.  Mixing in IS-IS routers without support for
   source specific routing is not supported as it may cause routing
   loops.

6.2.  Source-Specific Routing in Babel

   The Source-specific extension to the Babel routing protocol
   [BABEL-SS] has been implemented for over a year, has been made widely
   available and has seen a fair amount deployment as part of OpenWRT
   and CeroWRT.  The source-specific code is currently in the process of
   being merged into the standard Babel implementation, and is scheduled
   to be included in version 1.6 (planned for March 2015).

   Babel's source-specific extensions were carefully designed so that
   source-specific and ordinary (non-specific) routers can coexist in a
   single routing domain, without causing routing loops.  However,
   unless there is a connected backbone of source-specific routers, any
   non-specific routers present in the Homenet may experience
   blackholes.  Interoperability between plain Babel and Source-Specific
   Babel is described in detail in Section VI.A of [SS-ROUTING].

6.3.  Discussion

   Both protocols have been extended with support for source-specific
   routing.  The IS-IS extension is not able to coexist with non-
   extended implementations, but this is probably not a serious problem
   for Homenet.







Wasserman, et al.       Expires September 6, 2015               [Page 9]

Internet-Draft     Homenet IS-IS and Babel Comparison         March 2015


7.  Support for Link Metrics

   Typical Homenets are built out of multiple link technologies with
   very different performance characteristics -- Gigabit Ethernet can
   easily have three orders of magnitude higher throughput than a
   marginal wireless link.  Both IS-IS and Babel model the notion of
   greater or lesser desirability of a link by a value called a metric;
   the smaller the metric, the more desirable the link.

   The following example illustrates the importance of assigning
   suitable metrics to links in a home network:

         Internet --- A --- B....C          --- is Ethernet
                       .        .           ... is WiFi
                        ........

   A is the CPE (edge router), and lives in a storeroom.  B is the
   home's main router, lives in the living room, and is connected to A
   over Ethernet.  C is a wireless router in the guest room, or perhaps
   in the garden shed.  All the routers are equipped with wireless
   interfaces.

   Suppose that the wireless link B..C is solid, but the longer A..C
   link has very high packet loss.  Murphy's law dictates that the link
   A..C will be just good enough for the routing instances on A and C to
   become neighbours.  If the routing protocol doesn't take link quality
   into account in its metric computation, even if it is smart enough to
   prefer wired links to wireless ones, it will prefer the lossy route
   A..C to the solid route A-B..C.

7.1.  Link Metrics in IS-IS

   The Homenet implementation of IS-IS uses the wide-metric (24-bit)
   link metric.  Additionally IS-IS includes multi-topology support
   allowing for a variable number of metrics per link, as well as per-
   link and per-prefix tags allowing for coloring of links and
   reachability, and finally per-link and per-prefix sub-tlv's allowing
   for any future additional extensions.

7.2.  Link Metrics in Babel

   Since Babel was originally designed for heterogeneous networks, the
   protocol is able to automatically include a number of sources of
   information in its metric computation.  The current implementation is
   able to automatically take the following criteria into account:

   o  whether a link is wired or wireless;




Wasserman, et al.       Expires September 6, 2015              [Page 10]

Internet-Draft     Homenet IS-IS and Babel Comparison         March 2015


   o  packet loss;

   o  link latency [BABEL-RTT];

   o  intra-route radio interference [BABEL-Z].

   This wealth of information can produce conflicting data in edge
   cases.  Babel's loop-avoidance mechanisms ensure that the network
   remains in a consistent state in all cases, and a hysteresis
   mechanism ensures that, should a feedback loop occur, the frequency
   of oscillations remains bounded [DELAY-BASED].

7.3.  Discussion

   Babel has reasonably good support for dynamically computed metrics
   for IEEE 802.11 links and high-latency tunnels.  The current
   implementation doesn't have explicit support for variable-speed
   Ethernet and Powerline Ethernet, both technologies are bundled into a
   single "good quality link" category.

   Current implementations of IS-IS will supply a default metric for
   links if not configured.  We are unaware of any implementation that
   computes this default metric dynamically, rather it is static and
   supplied by the vendor.  While support for dynamically computed
   metrics could potentially be added to IS-IS, this is not completely
   trivial to do right, since a naive approach would cause unacceptable
   churn, potentially leading to repeated SPF computations and transient
   microloops.  Suitable mitigation techniques could probably be
   developed, but they would likely be different from the mitigation
   techniques that work well in Babel, since the link-state algorithm
   used by IS-IS and the triggered updates used by Babel have
   fundamentally different dynamics.

8.  Support for Stub Networks and Stub Routers

   A stub network is one that is attached to a Homenet, possibly through
   multiple Homenet routers, but must not be used for transit.  In the
   following example, if the dotted link between C and D is a stub
   network, then it must not be used for transit even if the link
   between A and B fails:

         ---- A ----- B -----
              |       |
              |       |
              C ..... D






Wasserman, et al.       Expires September 6, 2015              [Page 11]

Internet-Draft     Homenet IS-IS and Babel Comparison         March 2015


   Similarly a stub router is a router which may advertise and be a
   destination for stub networks but should never be used for transit
   traffic.

   A number of people have expressed interest in attaching sensor class
   equipment to Homenets, such as smart thermostats and home automation
   hardware.  Presumably, the sensor-class devices will run over a
   dedicated low-power link (e.g.  IEEE 802.15.4), with a small number
   of devices acting as gateways between the homenet and the low power
   network.  Ideally, the gateway nodes would not be dedicated devices,
   but merely sensor nodes that happen to have been equipped with an
   Ethernet or WiFi interface.

   Since low power links have orders of magnitude lower throughput than
   Homenet links, routing Homenet traffic through the low power link
   would cause it to collapse.  Designating this link as a stub network
   avoids this issue.

8.1.  IS-IS Support for Stub Networks and Stub Routers

   In IS-IS reachability (prefixes) and topology (links/adjacencies) are
   separate things.  IS-IS supports stub-networks as defined above
   simply by advertising the prefix associated with a link, but not the
   link itself.  This is sometimes referred to as a "passive link".

   Further an IS-IS router has the ability to set a bit (the overload
   bit) to indicate that it should not be used for any transit traffic,
   and that it will only be considered a destination for the prefixes it
   has advertised, i.e., it is a stub router as defined above.  As per
   the IS-IS standard [ISO10589] an IS-IS router marked as such is not
   expected to participate in the propagation of link state or the SPF
   computation.

8.2.  Babel Support for Stub Networks

   As all distance vector protocols, Babel supports fairly arbitrary
   route filtering.  Designating a stub network is done with two
   statements in the current implementation's filtering language.

   For resource-limited deployments, a minimalistic, stub-only
   implementation of Babel is available that consists of less than 1000
   lines of C code that compile to a dozen kilobytes of text.  Just like
   the standard implementation, the stub implementation is mostly
   portable code, and should be easily ported to any embedded
   environment that supports the "sockets" API.






Wasserman, et al.       Expires September 6, 2015              [Page 12]

Internet-Draft     Homenet IS-IS and Babel Comparison         March 2015


8.3.  Discussion

   A tiny, stub-only implementation of Babel is available.

   A tiny, stub-router-only implementation of IS-IS is available.  This
   is the "tinyisis" referred to later in the document when comparing
   implementation sizes.

9.  Support for non-IEEE 802.2 link layers

   Most link technologies employed in a Homenet use the IEEE 802.2 frame
   format; this is notably the case of Ethernet, IEEE 802.11 and common
   powerline technologies.  However, other framing formats exist, and at
   least PPP, PPPoE, IEEE 802.15.4, GRE and various VPN technologies are
   likely to be used in Homenets.

9.1.  IS-IS

   IS-IS is built directly above the link layer (IS-IS control data is
   not encapsulated within IP packets), and therefore needs explicit
   support for every type of lower layer encapsulation.  It is not known
   what particular kinds of framing the Homenet implementation of IS-IS
   supports.

9.2.  Babel

   Babel is built above UDP over link-local IPv6, and is able to run
   with no modifications over any link that supports IPv6.

10.  Security Features

10.1.  Security Features in IS-IS

   IS-IS offers multiple levels of security from none, to simple clear-
   text (password) authentication, to fully generic cryptographic
   authentication using any number of hashing algorithms [RFC5304].
   Currently, the Homenet implementation of IS-IS uses the cleartext
   password set to a predefined value for auto-configuration purposes.

10.2.  Security Features in Babel

   Babel supports symmetric key authentication using an extensible HMAC-
   based cryptographic authentication mechanism [RFC7298].  This
   mechanism is not vulnerable to replay attacks.







Wasserman, et al.       Expires September 6, 2015              [Page 13]

Internet-Draft     Homenet IS-IS and Babel Comparison         March 2015


10.3.  Discussion

   Both protocols support password authentication.  This probably
   provides the necessary hooks for the Homenet Configuration Protocol
   (HNCP) to implement whatever security policies are required by
   Homenet.

11.  Support for Multicast

   Although the Homenet WG has not yet determined whether to support
   multicast in Homenet Networks, it might be desirable to pick a
   routing protocol that supports multicast, so that it will be easier
   to add multicast support in the future.

11.1.  Multicast Routing in IS-IS

   The IS-IS protocol supports multicast routing.  However, none of the
   available implementations include support for multicast.

11.2.  Multicast Routing in Babel

   There is no support for multicast routing in Babel.

11.3.  Discussion

   Some experts believe that it may be better to run a dedicated
   multicast routing protocol rather than extensions to a unicast
   routing protocol.

12.  Implementation Status

   There are Homenet implementations of both IS-IS and Babel.

   The Homenet implementation of IS-IS is the only IS-IS implementation
   that supports source-specific routing, which is a hard requirement
   for Homenet.  If source-specific routing is not required, there are
   several independent, interoperable proprietary implementations of IS-
   IS (all major router vendors implement IS-IS).  We are not aware of
   any production-quality open-source implementation of IS-IS other than
   the Homenet one.

   There are multiple open source implementations of Babel, two of which
   support source-specific routing.  All implementations (except the
   stub-only version) were originally derived from the same codebase.







Wasserman, et al.       Expires September 6, 2015              [Page 14]

Internet-Draft     Homenet IS-IS and Babel Comparison         March 2015


13.  Code and State Size

13.1.  IS-IS Code and State Size

   The Homenet implementation of IS-IS consists of 7000 lines of Erlang
   code and has an installed size of over 11MB.  Its initial memory
   usage (as reported by the operating system) is 22MB, and its working
   set increases by XXX bytes for each new edge in the network graph.
   To put these numbers into perspective, in a network with XXX nodes
   each of which has XXX neighbours, the Homenet implementation of IS-IS
   requires XXX bytes for its data structures.

   The code size of IS-IS depends greatly on what aspects of the
   protocol have been implemented.  IS-IS supports multiple address
   families as well as completely different protocol stacks (OSI and
   IP), multiple area hierachical operation with automatic virtual link
   support for repairing area partitions, and multiple link types.
   Additionally many other protocol features have been added over time
   to augment the protocol or replace previous behavior.  The protocol
   lends itself well to not only extension, but pairing down of
   features.

   For Homenet we need a level-1 only implementation supporting a common
   topology for IPv4 and IPv6 over broadcast (i.e., ethernet) link
   types.  Additionally, we only require support of the latest extended
   metric TLVs (i.e., not implement legacy metric support).

   [Does that mean that we don't care about PPP, PPPeE, GRE etc?]

   The operational state required by IS-IS is proportional to the number
   of routers, links, and prefixes in the network.  Each router in the
   network generates and advertises a Link State Protocol Data Unit
   (LSP) that describes it's attached links and prefixes.  A copy of
   each of these LSPs is stored by each router in the network.  IS-IS
   uses these LSPs to construct a shortest-path-first (SPF) tree with
   attached prefix information from which routes to the prefixes are
   created.

   Concrete numbers lacking.

13.2.  Babel Code and State Size

   The source-specific implementation of Babel, which implements many
   non-Homenet extensions to the protocol, consists of roughly 10000
   lines of C and has an installed size of less than 130kB on AMD-64.
   Its initial memory usage (as reported by the operating system) is
   300kB.




Wasserman, et al.       Expires September 6, 2015              [Page 15]

Internet-Draft     Homenet IS-IS and Babel Comparison         March 2015


   The amount of state stored by a Babel router is at worst one routing
   table entry for each destination through each neighbour.  In the
   source-specific implementation, one routing entry occupies roughly
   100 bytes of memory.  To put these figures into perspective, in a
   network with 1000 nodes, a Babel router with 10 neighbours needs
   roughly a megabyte of memory to store its routing table (not counting
   malloc overhead).

   The stub-only implementation of Babel consists of 900 lines of C and
   compiles to 13kB (dynamically linked).  Its memory usage (as reported
   by the operating system) is 200kB, and remains constant (it doesn't
   perform any dynamic memory allocation).

   The stub-only implementation of IS-IS consists of 1300 lines of C and
   compiles to 18kB (stripped and dynamically linked).  Its base memory
   usage (as reported by 32-bit linux) is 330kB.

13.3.  Comparison

   Table 1 summarises the sizes of the available Homenet routing
   protocol implementations.  (Babel data courtesy of Steven Barth and
   Markus Stenberg.)

   +------------+------------+------------+---------------+------------+
   |            |   babeld   |  sbabeld   | AutoISIS (SS) |  tinyisis  |
   |            |    (SS)    |   (stub)   |               |   (stub)   |
   +------------+------------+------------+---------------+------------+
   |  Version   |  2598774   |  cc7d681   | [update]0.8.0 |  3ed2068   |
   |    Date    | 2014-09-08 | 2014-11-21 |   2014-08-26  | 2015-02-22 |
   |  License   |    MIT     |    MIT     |   Apache 2.0  | Apache 2.0 |
   |  Lines of  | 10000 (C)  |  1000 (C)  | 7000 (Erlang) |  1300 (C)  |
   |    Code    |            |            |               |            |
   | Installed  |   129kB    |    13kB    |     732kB     |    17kB    |
   |    size    |            |            |               |            |
   |  (AMD64)   |            |            |               |            |
   |   Total    |   129kB    |    13kB    |      7MB      |    17kB    |
   | installed  |            |            |               |            |
   |    size    |            |            |               |            |
   |  Baseline  |   ~300kB   |   ~200kB   |      11MB     |   330kB    |
   |    RSS     |            |            |               |            |
   +------------+------------+------------+---------------+------------+

            Table 1: Comparison of Homenet implementation size

   In this table, "Installed size" is the size reported by the package
   manager for the routing daemon's package(s), while "Total installed
   size" is the sum of the size of the deamon's packages and all its
   dependencies, excluding the C library.



Wasserman, et al.       Expires September 6, 2015              [Page 16]

Internet-Draft     Homenet IS-IS and Babel Comparison         March 2015


   The erlang AutoISIS has not been optimized for space or features
   (i.e., it is a full IS-IS multilevel multi-address family
   implementation).  One example of how this affects the reported
   numbers, is that the erlang logging package is taking up 4MB of ram.

   Additionally, as erlang is interpreted and not compiled as with the C
   implementations, there's not much use in directly comparing the
   numbers themselves.

   [We should add the size of the native Quagga isisd.  While this
   implementation is incomplete and doesn't support the Homenet
   extensions, it should give us an idea how much we can hope to scale
   IS-IS down.  It's roughly 20000 lines of C, not counting the
   additional 20000 for zebra. -- jch]

14.  Ease of porting

   If successful, the Homenet protocols will be implemented on exotic
   devices, such as sensor-class devices, set-top boxes and mobile
   phones.  Rather than a full Unix system, such devices sometimes
   provide a more exotic environment, such as an embedded operating
   system or one designed for mobile phones.

14.1.  IS-IS ease of porting

   As IS-IS runs directly over layer 2, an implementation needs to be
   able to send and receive layer 2 frames itself.  On Unix systems,
   this can be done using raw sockets or by hooking into the Berkeley
   Packet Filter.  Such interfaces might not be available on non-Unix
   systems, and even on Unix are restricted to priviledged processes.

14.2.  Babel ease of porting

   Babel is layered above UDP.  Except for a thin layer interfacing to
   the kernel, the reference implementation of Babel consists of
   portable code using the familiar "sockets" API (RFC 3493).  Enabling
   forwarding and manipulating the kernel's routing tables is the only
   priviledged operation it performs.

   Babel has been successfully ported to Android.  Android does not
   currently allow unpriviledged code to manipulate the kernel's routing
   table, so Babel can only run on "rooted" phones.  Should a future
   version of Android provide the ability to manipulate the kernel's
   routing table, Babel could conceivably be packaged as an installable
   "app".






Wasserman, et al.       Expires September 6, 2015              [Page 17]

Internet-Draft     Homenet IS-IS and Babel Comparison         March 2015


14.3.  Discussion

   IS-IS is somewhat difficult to port, due to the requirement for raw
   sockets.  Except for the requirement to install routes, Babel is
   portable code, and has been successfully ported to Android.

15.  Behaviour upon resource exhaustion

15.1.  IS-IS

   The IS-IS protocol has an overload indicator.  When the protocol is
   unable to acquire a needed resource, it enters overloaded state.
   This state is signaled to the other routers and the overloaded router
   is considered to be destination only (i.e., it becomes a stub
   router).

15.2.  Babel

   Babel degrades gracefully.  Since Babel is a distance-vector
   protocol, a Babel implementation can simply drop excess routes when
   it runs out of memory.  As long as the default route is not
   discarded, connectivity will be degraded but not completely lost.

   The current implementation of Babel discards redundant routes before
   it starts dropping announcements, but doesn't yet prioritise the
   default route.  (This behaviour was tested when somebody
   redistributed the entire IPv6 default-free zone into a Babel network.
   We had a lot of fun that day.)

16.  Performance and scaling on IEEE 802.11 Wireless Networks

   We expect wireless networks, and notably IEEE 802.11 wireless
   networks, to be in wide use in Homenets, not only for client
   connections but also for router-to-router connections.  In fact, some
   of us believe that the ability to cheaply and easily extend wireless
   coverage by adding a wireless router is a "killer feature" of
   Homenet, one that is easy to explain both to one's boss and to end
   users.

   IEEE 802.11 has some rather unpleasant performance characteristics.
   First, wireless links are of very variable quality.  Second,
   multicast traffic is sent at a lowest common denominator speed,
   typically 2Mbit/s, which makes multicast outrageously expensive (13ms
   for a full-size frame).  Third, multicast traffic is not protected by
   link-layer ARQ, which makes multicast packet drops very common,
   especially in the presence of collisions, which are particularly
   likely when the routing protocol is in the process of reconverging.




Wasserman, et al.       Expires September 6, 2015              [Page 18]

Internet-Draft     Homenet IS-IS and Babel Comparison         March 2015


   This has some consequences for routing protocols:

   o  the routing protocol must be able to deal with varying link
      qualities (see Section 7);

   o  if the routing protocol uses multicast for transmitting control
      data, it must deal gracefully with packet loss during
      reconvergence;

   o  the routing protocol must avoid sending large bursts of multicast
      traffic from multiple nodes simultaneously during reconvergence.

   IEEE 802.11 has two main modes of operation.  In "infrastructure
   mode", a small number of "access points" (APs), often just one,
   communicate with a number of "stations" (STAs); communication between
   two stations transits through one or at most two APs.  In "IBSS mode"
   (also called "ad hoc mode"), communication is unrestricted, and any
   node can directly communicate with any other node in range; as there
   is no link-layer forwarding, IBSS mode does not guarantee that
   communication is transitive.  Virtually all home network deployments
   today use infrastructure mode, with the router acting as AP and
   client devices acting as stations.  We believe that IBSS may be out
   of scope for Homenet, but we expect that people will attempt to use
   the Homenet protocols in IBSS mode, whether we like it or not.

16.1.  IS-IS Performance on 802.11

   IS-IS is in active use in in the Internet in large non-hierachical
   (i.e., level-2 or single area level-1) deployments with hundreds of
   nodes.  The protocol has proven to be very scalable.

   We are not aware of any results in the open litterature about the
   behaviour of IS-IS over IEEE 802.11.  In particular, we do not know
   how IS-IS's reliable flooding mechanism behaves over IEEE 802.11.

16.2.  Babel Performance on 802.11

   Babel has been carefully optimised for IEEE 802.11 networks.  While
   Babel transmits most control data over multicast, it applies large
   amounts of random jitter (on the order of seconds) to all but its
   most urgent control messages.  Roughly speaking, Babel sends in a
   timely manner those control messages that are likely to repair a
   broken route, but delays sending those messages that merely announce
   a slightly better route than one that is already available.  This
   mechanism has been shown to work well in dense wireless deployments,
   with recent versions of Babel being able to avoid link-layer
   meltdowns even when a whole network is being rebooted simultaneously.




Wasserman, et al.       Expires September 6, 2015              [Page 19]

Internet-Draft     Homenet IS-IS and Babel Comparison         March 2015


   As explained in Section 7, Babel performs link quality estimation on
   wireless links in a manner that works relatively well with the 802.11
   MAC.  In addition, Babel has provisions for estimating radio
   interference [BABEL-Z], which is necessary in order to provide decent
   throughput on multi-hop radio routes.

   Babel has been designed to work well in IBSS mode, where
   communication is not transitive and therefore a packet may be routed
   through the same interface it was received on.

16.3.  Discussion

   Babel has been designed with wireless networks in mind, and has been
   shown to work reasonably well even in the extremely hostile
   environment of wireless mesh networks built over IEEE 802.11 in IBSS
   ("ad hoc") mode.

   We are not aware of any results about the behaviour of IS-IS's
   reliable flooding sub-protocol over IEEE 802.11 multicast.  IS-IS
   will not work over IEEE 802.11 IBSS mode without changes, since both
   the pseudonode optimisation and DIS election assume that
   communication is transitive.

17.  Standardization Status

17.1.  IS-IS Standardization

   IS-IS is an ISO Standard documented in ISO/IEC 10589:2002 [ISO10589]
   There is an active IETF IS-IS Working Group (isis-wg) that maintains
   and extends the IS-IS protocol, and the IS-IS protocol has been
   extended in several IS-IS Working Group documents.

   The autoconfiguration and source-specific extensions to IS-IS, which
   are both hard requirements for Homenet, are documented in (non-WG)
   Internet Drafts [ISIS-AUTOCONF] [ISIS-SS].

17.2.  Babel Standardization Status

   Babel is documented in an Experimental RFC (RFC 6126) published in
   2011, and it has been updated in several individual-submission RFCs
   and Internet Drafts.  An Internet Draft establishing an IANA registry
   of Babel extensions has been submitted for publication as an RFC
   [BABEL-EXT].

   The use of Babel in a Standards Track Homenet RFC would require a
   "downref" to non-Standards Track documents.  It would also be
   necessary to finish publishing the extensions that are needed for the
   Homenet use case as RFCs.



Wasserman, et al.       Expires September 6, 2015              [Page 20]

Internet-Draft     Homenet IS-IS and Babel Comparison         March 2015


18.  Evaluation of RFC 7368 Criteria

   Section 3.5 of [RFC7368] lists a set of criteria that the Homenet
   routing protocol must satisfy.

   o  border discovery: out of scope, as this is done by HNCP.

   o  self configuring: both protocols are self-configuring, see
      Section 5.

   o  behaviour during reconfiguration and reconvergence:

      *  both protocols are able to establish adjacencies and to route
         IPv6 before they even receive an IPv6 address due to their use
         of stable neighbour identifiers;

      *  Babel will avoid creating loops even during reconvergence, but
         might create temporary blackholes;

      *  IS-IS may create short-lived loops during reconvergence;

      *  since HNCP doesn't depend on unicast, in principle it is not
         impacted by the routing protocol's behaviour during
         reconvergence; however, on a wireless network, the interference
         caused by routing loops may delay HNCP's reconvergence.

   o  the Homenet routing protocol should be based on a previously
      deployed protocol:

      *  IS-IS is more widely deployed in carrier networks,

      *  there is more experience with running Babel on Plastic Home
         Routers

      *  Only the Babel implementation of source-specific routing has
         seen any deployment.

   o  support for IPv4: both protocols are intrinsically double-stack --
      a single routing instance is able to carry both IPv6 and IPv4.

   o  multiple types of physical interfaces must be accounted for: only
      Babel is able to differentiate between different link
      technologies, see Section 7; nothing is known about IS-IS's
      behaviour on wireless links.

   o  minimising convergence time: both protocols converge fast, see
      Section 4.




Wasserman, et al.       Expires September 6, 2015              [Page 21]

Internet-Draft     Homenet IS-IS and Babel Comparison         March 2015


   o  support the generic use of multiple Internet connections: both
      protocols support source-specific routing, see Section 6.

   o  scalable to higher hop counts: both protocols have reasonably wide
      metrics (24 bits in IS-IS, 16 bits in Babel).

   o  support for attached LLNs and other non-transit networks: both
      protocols are able to designate a link as non-transit.  Tiny stub
      implementations of Babel and IS-IS are available.  See Section 8.

   o  support for Multicast: IS-IS is able to carry multicast routes,
      Babel is not.

19.  Evaluation of RFC 5218 Criteria

19.1.  Critical Success Factors

   Does the protocol exhibit one or more of the critical initial success
   factors as defined in RFC 5218?

19.1.1.  IS-IS Success Factors

   IS-IS exhibits the following critical initial success factors:

   o  Positive Net Value:

      *  Hardware cost: None.

      *  Operational interface: Existing and extensive.

      *  Retraining: None.

      *  Business dependencies: None.

   o  Incremental Deployment: Yes.

   o  Open Code Availability: Yes. One implementation of the Homenet
      extensions, multiple proprietary implementations of the base
      protocol.

   o  Freedom from Usage Restrictions: Yes.

   o  Open Specification Availability: Yes.

   o  Open Maintenance Processes: Yes.






Wasserman, et al.       Expires September 6, 2015              [Page 22]

Internet-Draft     Homenet IS-IS and Babel Comparison         March 2015


   o  Good Technical Design: Proven with extensive deployment and
      experience with the base protocol, little deployment of the
      Homenet extensions.

   o  Extensible: Yes.

   o  No Hard Scalability bound: Yes.

   o  Threats Sufficiently Mitigated: Yes.

19.1.2.  Babel Success Factors

   Babel exhibits the following critical initial success factors:

   o  Positive Net Value:

      *  Hardware cost: None.

      *  Operational interface: tcpdump and wireshark support, dedicated
         monitoring software.

      *  Retraining: None.

      *  Business dependencies: None.

   o  Incremental Deployment: Yes.

   o  Open Code Availability: Yes.  Multiple implementations derived
      from a common source.

   o  Freedom from Usage Restrictions: Yes.

   o  Open Specification Availability: Yes.

   o  Open Maintenance Processes: IANA registry in the process of being
      created.

   o  Good Technical Design: Yes.

   o  Extensible: Yes.

   o  No Hard Scalability bound: Yes.

   o  Threats Sufficiently Mitigated: probably.







Wasserman, et al.       Expires September 6, 2015              [Page 23]

Internet-Draft     Homenet IS-IS and Babel Comparison         March 2015


19.2.  Willing Implementors

   Are there implementers who are ready to implement the technology in
   ways that are likely to be deployed?

19.2.1.  IS-IS

   There is only one implementation of autoconfiguration and source-
   specific routing for IS-IS.  There are some other open source
   implementations of the base protocol, but they are incomplete (as of
   February 2015).

   As all major routing vendors have (proprietary) IS-IS
   implementations, the barrier for implmeneting IS-IS for Homenet use
   is probably manageable, assuming that the willingness to implement
   modifications needed for Homenet use is present.

19.2.2.  Babel

   The Babel implementation is open source software (MIT licensed), and
   the codebase has proven of sufficiently high quality to be easily
   extended by people who were not in direct contact with the author
   [RFC7298].

   With the exception of a small number of functions used for
   interfacing with the kernel's routing tables, Babel is portable code,
   and is easily ported to any environment that supports the familiar
   "sockets" API.

19.3.  Willing Customers

   Are there customers (especially high-profile customers) who are ready
   to deploy the technology?

19.3.1.  IS-IS

   Yes.  IS-IS is already widely deployed in operational networks.

19.3.2.  Babel

   Source-Specific Babel is currently deployed as part of the OpenWRT
   and CeroWRT operating systems.  Additionally, the current version is
   used as a testbed for the Homenet configuration protocol.








Wasserman, et al.       Expires September 6, 2015              [Page 24]

Internet-Draft     Homenet IS-IS and Babel Comparison         March 2015


19.4.  Potential Niches

   Are there potential niches where the technology is compelling?

19.4.1.  IS-IS

   [TBD]

19.4.2.  Babel

   Babel is a simple and flexible routing protocol.  Like most distance-
   vector protocols, it requires little to no configuration in most
   topologies, and has proved popular in scenarios where competent
   network administration was not available.  In addition, it has been
   shown to be particularly useful in scenarios where non-standard
   dynamically computed metrics are beneficial, notably wireless mesh
   networks and overlay networks.

19.5.  Complexity Removal

   If so, can complexity be removed to reduce cost?

19.5.1.  IS-IS

   As mentioned previously IS-IS can be significantly and easily pared
   down to fit the more limited scope of homenet use.  However, no such
   pared down implementation exists, and the subset of the protocol that
   needs to be implemented has never been formally defined.

19.5.2.  Babel

   Babel is a fairly simple protocol -- RFC 6126 is just 40 pages long
   (not counting informative appendices), and it has been successfully
   explained to fourth year university students in less than two hours.

   The stub-only implementation of Babel consists of 900 lines of C
   code, and has deliberately been kept as simple as possible.  We
   expect a competent engineer to get up to speed with it within hours.

19.6.  Killer App

   Is there a potential killer app?  Or can the technology work
   underneath existing unmodified applications?








Wasserman, et al.       Expires September 6, 2015              [Page 25]

Internet-Draft     Homenet IS-IS and Babel Comparison         March 2015


19.6.1.  IS-IS

   As IS-IS already qualifies as successful (bordering on wildly) a
   killer app is not particularly relevant.

19.6.2.  Babel

   Since Babel requires virtually no configuration, it is particularly
   suitable to scenarios where a dedicated network administrator is not
   available.  Additionally, its support for dynamically computed non-
   standard metrics makes it particularly appealing in highly
   heterogeneous networks, (networks built on multiple link-layer
   technologies with widely varying performance characteristics).

19.7.  Extensible

   Is the protocol sufficiently extensible to allow potential
   deficiencies to be addressed in the future?

19.7.1.  IS-IS

   IS-IS has been shown to be incredibly extensible, originally designed
   for a completely different protocol stack (OSI) it was easily adapted
   for IP use, then to multiple address families (IPv4, IPv6) and multi-
   topology.  Indeed one of the major drivers of IS-IS's success is its
   extensibility and adaptability.

19.7.2.  Babel

   The extension mechanisms built into the Babel protocol [BABEL-EXT]
   have been used to build a number of extensions, including one that
   significantly extends the structure of announcements [BABEL-SS] and
   one that needs a non-trivial extension to the space of metrics
   [BABEL-Z].

   All Babel extensions that have been defined interoperate with the
   original protocol, as defined in RFC 6126, to the extent possible.
   For example, a router that doesn't implement the radio interference
   extension will just ignore the frequency information attached to
   route updates, which may lead to slightly sub-optimal routing but
   will cause neither blackholes nor routing loops.  To the contrary, a
   router that doesn't support the source-specific extensions will
   silently ignore any source-specific update, and therefore route
   according to the non-specific subset of available routes, which might
   cause blackholes, but under no circumstances will cause routing
   loops.  Backwards compatibility provisions are described in Section 4
   of [BABEL-EXT].




Wasserman, et al.       Expires September 6, 2015              [Page 26]

Internet-Draft     Homenet IS-IS and Babel Comparison         March 2015


19.8.  Success Predictable

   If it is not known whether the protocol will be successful, should
   the market decide first?  Or should the IETF work on multiple
   alternatives and let the market decide among them?  Are there factors
   listed in this document that may predict which is more likely to
   succeed?

19.8.1.  IS-IS

   For IS-IS the market has already decided that the protocol is
   successful in a fairly wide variety of deployments.

19.8.2.  Babel

   Plain (non-source-specific) Babel has seen a modest amount of
   deployment, most notably for routing over wireless mesh networks and
   intercontinental overlay networks.  Babel is included as an
   installable package in many Linux distributions, which makes it
   easily available to interested parties.

   Source-specific Babel is probably the only source-specific routing
   protocol that has seen any deployment.  Source-specific Babel is
   available as an installable package for OpenWRT, and is used by
   default by CeroWRT.

20.  Acknowledgments

   The authors are grateful for the input of Steven Barth, Denis
   Ovsienko, Mark Townsley, and Curtis Villamizar.

21.  Informative References

   [BABEL-EXT]
              Chroboczek, J., "Extension Mechanism for the Babel Routing
              Protocol", draft-chroboczek-babel-extension-mechanism-03
              (work in progress), June 2013.

   [BABEL-RTT]
              Jonglez, B. and J. Chroboczek, "Delay-based Metric
              Extension for the Babel Routing Protocol", Internet Draft
              draft-jonglez-babel-rtt-extension-00, July 2014.

   [BABEL-SS]
              Boutier, M. and J. Chroboczek, "Source-Specific Routing in
              Babel", draft-boutier-babel-source-specific-00 (work in
              progress), November 2014.




Wasserman, et al.       Expires September 6, 2015              [Page 27]

Internet-Draft     Homenet IS-IS and Babel Comparison         March 2015


   [BABEL-Z]  Chroboczek, J., "Diversity Routing for the Babel Routing
              Protocol", draft-chroboczek-babel-diversity-routing-00
              (work in progress), July 2014.

   [DELAY-BASED]
              Jonglez, B. and M. Boutier, "A delay-based routing
              metric", March 2014, <http://arxiv.org/abs/1403.3488>.

   [ISIS-AUTOCONF]
              Liu, B., "ISIS Auto-Configuration", draft-liu-isis-auto-
              conf-03 (work in progress), October 2014.

   [ISIS-SS]  Baker, F. and D. Lamparter, "IPv6 Source/Destination
              Routing using IS-IS", draft-baker-ipv6-isis-dst-src-
              routing-02 (work in progress), October 2014.

   [ISO10589]
              ISO/IEC, "Intermediate system to Intermediate system
              intra-domain routeing information exchange protocol for
              use in conjunction with the protocol for providing the
              connectionless-mode Network Service (ISO 8473) Second
              Edition", Novmeber 2002.

              ISO 10589:2002 Second Edition

   [RFC1195]  Callon, R., "Use of OSI IS-IS for routing in TCP/IP and
              dual environments", RFC 1195, December 1990.

   [RFC5304]  Li, T. and R. Atkinson, "IS-IS Cryptographic
              Authentication", RFC 5304, October 2008.

   [RFC5305]  Li, T. and H. Smit, "IS-IS Extensions for Traffic
              Engineering", RFC 5305, October 2008.

   [RFC5308]  Hopps, C., "Routing IPv6 with IS-IS", RFC 5308, October
              2008.

   [RFC6126]  Chroboczek, J., "The Babel Routing Protocol", RFC 6126,
              April 2011.

   [RFC7298]  Ovsienko, D., "Babel Hashed Message Authentication Code
              (HMAC) Cryptographic Authentication", RFC 7298, July 2014.

   [RFC7368]  Chown, T., Arkko, J., Brandt, A., Troan, O., and J. Weil,
              "IPv6 Home Networking Architecture Principles", RFC 7368,
              October 2014.





Wasserman, et al.       Expires September 6, 2015              [Page 28]

Internet-Draft     Homenet IS-IS and Babel Comparison         March 2015


   [SS-ROUTING]
              Boutier, M. and J. Chroboczek, "Source-sensitive routing",
              December 2014, <http://arxiv.org/abs/1403.0445>.

Authors' Addresses

   Margaret Wasserman
   Painless Security
   356 Abbott Street
   North Andover, MA  01845
   USA

   Phone: +1 781 405-7464
   Email: mrw@painless-security.com
   URI:   http://www.painless-security.com


   Christian E. Hopps
   Deutsche Telekom

   Email: chopps@chopps.org


   Juliusz Chroboczek
   University of Paris-Diderot (Paris 7)

   Email: jch@pps.univ-paris-diderot.fr
























Wasserman, et al.       Expires September 6, 2015              [Page 29]