Internet DRAFT - draft-goyal-roll-dv

draft-goyal-roll-dv






Internet Engineering Task Force                                 M. Goyal
Internet-Draft                         University of Wisconsin Milwaukee
Intended status: Informational                             July 27, 2009
Expires: January 28, 2010


A Distance Vector Protocol for Routing Over Low Power and Lossy Networks
                         draft-goyal-roll-dv-01

Status of this Memo

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

   Internet-Drafts are working documents of the Internet Engineering
   Task Force (IETF), its areas, and its working groups.  Note that
   other groups may also distribute working documents as Internet-
   Drafts.

   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."

   The list of current Internet-Drafts can be accessed at
   http://www.ietf.org/ietf/1id-abstracts.txt.

   The list of Internet-Draft Shadow Directories can be accessed at
   http://www.ietf.org/shadow.html.

   This Internet-Draft will expire on January 28, 2010.

Copyright Notice

   Copyright (c) 2009 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 in effect on the date of
   publication of this document (http://trustee.ietf.org/license-info).
   Please review these documents carefully, as they describe your rights
   and restrictions with respect to this document.

Abstract

   This draft describes a distance vector protocol for routing over low
   power and lossy networks (LLN).




Goyal                   Expires January 28, 2010                [Page 1]

Internet-Draft           draft-goyal-roll-dv-01                July 2009


Table of Contents

   1.  Introduction . . . . . . . . . . . . . . . . . . . . . . . . .  3
   2.  Terminology  . . . . . . . . . . . . . . . . . . . . . . . . .  3
   3.  LLN Host Operation . . . . . . . . . . . . . . . . . . . . . .  4
   4.  LLN Router Operation . . . . . . . . . . . . . . . . . . . . .  5
   5.  Route Discovery and Maintenance  . . . . . . . . . . . . . . .  6
   6.  Routing Loop Detection and Correction  . . . . . . . . . . . .  9
   7.  IANA Considerations  . . . . . . . . . . . . . . . . . . . . . 11
   8.  Security Considerations  . . . . . . . . . . . . . . . . . . . 11
   9.  Informative References . . . . . . . . . . . . . . . . . . . . 11
   Author's Address . . . . . . . . . . . . . . . . . . . . . . . . . 12







































Goyal                   Expires January 28, 2010                [Page 2]

Internet-Draft           draft-goyal-roll-dv-01                July 2009


1.  Introduction

   This draft describes a distance vector protocol for routing over low
   power and lossy networks (LLN) to meet the requirements of different
   LLN applications [I-D.ietf-roll-building-routing-reqs]
   [I-D.ietf-roll-home-routing-reqs] [I-D.ietf-roll-indus-routing-reqs]
   [RFC5548].  This protocol supports optimal routing for both
   multipoint-to-point and point-to-point traffic flows while requiring
   the LLN routers to maintain minimal routing state.

   This protocol presents an alternative to RPL [I-D.dt-roll-rpl].  RPL
   is based on organizing LLN routers along directed acyclic graphs
   (DAGs) with LLN Border Routers (LBR) as roots.  In other words, RPL
   allows LLN routers to advertize routing costs for LBRs only.  Under
   RPL, point-to-point routing between two arbitrary LLN nodes takes
   place along one or more DAGs that connect the two nodes together.
   RPL does not yet specify a mechanism to achieve more optimal point-
   to-point routes "across" a DAG.  In contrast, this protocol supports
   on-demand discovery of optimal routes for any destination and
   continuous maintenance of established routes.  Thus, this protocol
   allows optimal (or good quality) routes to be established for any
   destination based on one or more routing metrics defined in
   [I-D.ietf-roll-routing-metrics].  Such routes can be used by any
   traffic flow irrespective of whether it is point-to-point, point-to-
   multipoint or multipoint-to-point in nature.

   This protocol categorizes LLN nodes as routers and hosts.  An LLN
   host has very simple operation, needs minimal configuration and does
   not participate in routing of packets.  An LLN router participates in
   the routing operation and needs to maintain state about only those
   destinations that the router itself, or the nearby routers, need to
   reach.


2.  Terminology

   This draft follows the ROLL terminology as detailed in
   [I-D.ietf-roll-terminology].  The following additional terms are used
   in this document:

   LLN Host: An LLN node that only sources or sinks packets.  Also
   referred to as host in this document.

   LLN Router: An LLN node that is willing to forward packets between
   arbitrary source-destination pairs.  Also referred to as router in
   this document.

   LLN Node: An LLN host or router.  Also referred to as node in this



Goyal                   Expires January 28, 2010                [Page 3]

Internet-Draft           draft-goyal-roll-dv-01                July 2009


   document.

   Routing Domain: The LLN is divided into routing domains to limit the
   scope of route discovery and maintenance.  By default, the routes to
   a destination are searched only within the routing domain.  Thus, the
   routing domain boundaries should be determined such that most source-
   destination pairs lie in the same domain.  The domain information
   needs to be configured in LLN routers only.  The LLN hosts are
   assumed to belong to the same domain as their neighbor LLN routers.
   Thus, an LLN host may belong to multiple domains.

   In-domain Destination: A destination in the same domain as the LLN
   router.

   Universal Destination: A destination for which the route discovery
   and maintenance operations do not observe domain boundaries.


3.  LLN Host Operation

   An LLN host can only originate or sink a packet.  It can not forward
   the packets originated by another LLN node.  If an LLN host needs to
   send a packet to an LLN node within its radio range, it can do so
   without involving an LLN router.  Otherwise, the LLN host needs to
   send the packet to an LLN router that forwards the packet further
   towards its final destination.

   An LLN host maintains a Neighbor Table of other LLN nodes in its
   radio range.  The neighbor table is maintained by overhearing packets
   originated by the LLN nodes in the radio range.  The entries in the
   neighbor table expire after a pre-configured time interval unless
   refreshed.  The entry for an LLN router also includes the routing
   domain to which the LLN router belongs.  When an LLN host needs to
   send a packet to a destination not in the neighbor table, it forwards
   the packet to an LLN router in the neighbor table.  If the LLN host
   knows about the routing domain of the destination, it forwards the
   packet to an LLN router belonging to the same domain.  The LLN host
   may learn the routing domain of a remote destination from a packet
   received from that destination.

   An LLN host may periodically originate Host Advertisements (HA) via
   1-hop broadcast.  An HA serves two purposes:

   o  First, an HA lets the neighbor LLN routers know of the host's
      existence so that the routers may send to the host any packets
      addressed to it.  An LLN router may perform a handshake (packet
      exchange) with the LLN host to test for bidirectional
      communication.  The LLN host may set a flag in its HA to mark



Goyal                   Expires January 28, 2010                [Page 4]

Internet-Draft           draft-goyal-roll-dv-01                July 2009


      itself as a universal destination.

   o  Secondly, an HA may contain a Route Discovery List in which the
      LLN host can specify the destinations to which it needs to send
      packets to.


4.  LLN Router Operation

   An LLN router maintains the following conceptual data structures:

   o  Neighbor Table: List of LLN nodes in the radio range.  The
      neighbor table is maintained by overhearing packets, including HAs
      and RAs, originated by the LLN nodes in the radio range.  The
      entries in the neighbor table expire after a pre-configured time
      interval unless refreshed.  For each LLN router in the neighbor
      table, the LLN router maintains link-level routing cost to reach
      the neighbor router.

   o  Route Discovery Table: List of remote destinations to which the
      router needs to discover routes to.  When the router receives an
      HA or an RA listing a destination to which a route is desired, the
      router enters the destination in this table and initiates the
      route discovery.  The route discovery table contains in-domain or
      universal destinations only.  If an entry is created in the route
      discovery table in response to a received RA, the entry remembers
      the router that originated this RA.  Repeated listing of the
      destination in the route discovery list of this router's RA acts
      to refresh the entry's existence in the route discovery table.
      Otherwise, the entry expires after a certain time.

   o  Route Maintenance Table: This table consists of destinations to
      which the router, or the nearby routers, currently send, or need
      to send, packets to.  The characteristics of the route maintenance
      table are as follows:

      *  Each entry in this table consists of the costs to reach the
         destination via each router in the neighbor table that has
         advertised reachability to this destination unless the
         destination is also listed in the neighbor table, in which case
         the costs to this destination advertised by neighbor routers
         are ignored (in other words, a router never forwards a packet
         to a neighbor router if the packet's destination is listed in
         the neighbor table).

      *  In addition to the cost, each entry also keeps track of the
         "routing interest" of each router in the neighbor table in
         reaching the destination.  The routing interest is a metric



Goyal                   Expires January 28, 2010                [Page 5]

Internet-Draft           draft-goyal-roll-dv-01                July 2009


         between 0 and 1 indicating a router's interest in maintaining
         routing state for a destination.  A router advertises this
         metric for a destination in the route maintenance list of its
         RA (described later in this section) along with the cost to
         reach that destination.  A router advertises the routing
         interest value 1 for a destination if that destination exists
         in its route discovery table.  If a router currently routes
         packets towards a destination, it advertises routing interest
         value 1 for this destination.  Otherwise, the routing interest
         of a router towards a destination is the product of a pre-
         configured constant (less than 1) and the maximum routing
         interest any neighbor router has for this destination.  A
         router maintains an entry in its route maintenance table as
         long as its routing interest in that destination is more than a
         pre-configured threshold.

      *  All destinations in the route discovery table exist in the
         route maintenance table as well.

      *  The route maintenance table consists of in-domain or universal
         destinations only.

   o  Routing Table: The next hop routers for each destination to which
      the router needs to send packets to.

   The Router Advertisement (RA) generated by the router includes the
   following information:

   o  a Route Discovery List consisting of a subset of entries in the
      route discovery table; and

   o  a Route Maintenance List advertising the router's best cost, as
      well as the routing interest, to reach a subset of entries in the
      route maintenance table.

   Each entry in the route discovery and maintenance tables includes an
   "advertised" flag that indicates if this entry was recently included
   in the route discovery or route maintenance list of the router's RA.
   The "advertised" flags are periodically reset using a yet-unspecified
   mechanism.  The entries with "advertised" flag false receive
   preference for inclusion in the route discovery/maintenance list when
   the router generates its new RA.


5.  Route Discovery and Maintenance

   When an LLN router receives a route discovery list in an HA/RA, it
   checks, using the information in its neighbor and route maintenance



Goyal                   Expires January 28, 2010                [Page 6]

Internet-Draft           draft-goyal-roll-dv-01                July 2009


   tables, whether it can reach the destinations listed in there.

   If the received packet is an HA and the router can not yet reach some
   of the destinations in the route discovery list, the router does the
   following:

   o  It creates entries for all such unreachable destinations in its
      route discovery and maintenance tables as long as they are in-
      domain or universal; and

   o  It resets the Trickle [trickle] timer that governs its RA
      generation to the minimum value.

   If the received packet is an RA and the route discovery list in the
   RA is not empty, the router does the following:

   o  It resets the trickle timer that governs its RA generation to the
      minimum value;

   o  If any destination in the route discovery list of the RA is
      present in the router's neighbor table but not in the route
      maintenance table, an entry is created for this destination in the
      route maintenance table as well;

   o  It resets the "advertised" flag of all entries in its route
      maintenance table corresponding to reachable destinations listed
      in the route discovery list of the received RA so that these
      destinations can soon be included in the route maintenance list of
      the RAs the router generates;

   o  It creates entries in its route discovery and maintenance tables
      (with "advertised" flag false) for all unreachable destinations
      listed in the route discovery list of the RA unless such entries
      already exist and as long as these destinations are in-domain or
      universal.  These entries include the identity of the router whose
      RA triggered their creation.

   o  An existing route discovery table entry is refreshed, i.e. allowed
      to exist for a certain additional time duration, if it was created
      in response to an RA from this router and the current RA includes
      in its route discovery list the destination corresponding to this
      entry.

   Thus, when an LLN host needs to send packets to a destination, it
   includes the destination in the route discovery list of its HA.  On
   receiving this HA, the LLN routers in the neighborhood, if they don't
   already know of a route to this destination, soon include the
   destination in the route discovery list of their RAs.  Thus, the LLN



Goyal                   Expires January 28, 2010                [Page 7]

Internet-Draft           draft-goyal-roll-dv-01                July 2009


   routers in the domain quickly come to know of the need to find a
   route to this destination.  If a router can reach this destination,
   it advertises its cost to reach the destination in the route
   maintenance list of its RA.  As mentioned before, a router advertises
   a routing interest 1 in a destination as long as the destination is
   in its route discovery table.

   When a router receives an RA that advertises in its route maintenance
   list reachability to a destination for which the router has an entry
   in its route discovery table, the router does the following:

   o  It updates the corresponding entry in its route maintenance table
      with new cost and routing interest information received in the RA;

   o  It creates an entry in the routing table for this destination or
      updates the existing routing table entry based on new information;

   o  If the router created the route discovery table entry in response
      to an HA by a neighbor host or in response to its own need to
      reach that destination, the router may delete the entry from the
      route discovery table or it may choose to retain the entry for
      some more time to allow additional neighbor routers to advertise
      routes to this destination.

   o  It resets the trickle timer that governs its RA generation to the
      minimum value.

   Thus, as router X, that had created an entry in its route discovery
   table in response to an HA from a neighbor host, receives
   reachability advertisements from neighbor routers for this
   destination, it deletes the entry from its route discovery table and
   hence stops including this destination in the route discovery list of
   its RAs.  This leads to removal of this destination from the route
   discovery table of neighbor routers that had created the route
   discovery table entry in response to an RA from router X. Ultimately,
   this destination is removed from the route discovery tables of all
   routers in the domain.

   Once a router has removed a destination from its route discovery
   table, further existence of this destination in the router's route
   maintenance table depends on the router's routing interest in this
   destination.  Periodically, the router checks for each entry in its
   route maintenance table whether it is currently routing packets to
   that destination.  If yes, the router associates routing interest 1
   with that destination.  Otherwise, if the destination previously had
   a routing interest 1 associated with it, the route maintenance table
   entry is placed in the "observation" mode for a certain time during
   which the router collects the routing interest of the neighbor



Goyal                   Expires January 28, 2010                [Page 8]

Internet-Draft           draft-goyal-roll-dv-01                July 2009


   routers in this destination.  When the entry comes out of the
   "observation" mode and if the router still thinks that it does not
   send any packets to this destination, it calculates its routing
   interest in this destination as the product of a local pre-configured
   constant (less than 1) and the best routing interest it could find
   among its neighbor routers in this destination.  If the calculated
   routing interest is less than a pre-configured value, the router
   deletes the entry from its route maintenance table.  Otherwise, the
   router stores the calculated routing interest value in the route
   maintenance table entry for use in its future RAs.

   Thus, during the route discovery phase for a destination, all routers
   in the routing domain (or all routers in the LLN if the destination
   is universal) may maintain state about the destination.  However,
   afterwards, only routers in the vicinity of the existing routes to
   this destination maintain state about the destination.  The
   definition of "vicinity" depends on how a router degrades its routing
   interest in a destination if it is not itself sending packets to this
   destination and what threshold value is used to decide whether the
   router's routing interest in the destination is too little.


6.  Routing Loop Detection and Correction

   When a router forwards a packet, it puts its current cost to reach
   the packet's destination in the packet header.  When a router
   receives a packet, it compares the cost listed in the packet's header
   with its own cost to reach the packet's destination.  If the cost
   listed in the received packet's header is less than the router's own
   cost to reach the packet's destination, the router assumes the
   existence of a routing loop and does the following:

   o  It reduces the trickle timer governing the generation of its RAs
      to its minimum value;

   o  It originates a special "path accumulation" packet with same
      destination as the packet that led to the loop detection.

   When a router receives the "path accumulation" packet going towards
   destination X, it does the following:

   o  The router checks the accumulated path and if it does not find
      itself listed in there, the router adds its address to the
      accumulated path in the packet and forwards the packet further
      towards its destination;

   o  Otherwise, the router identifies all the routers involved in the
      loop and discards the "path accumulation" packet.  In order to



Goyal                   Expires January 28, 2010                [Page 9]

Internet-Draft           draft-goyal-roll-dv-01                July 2009


      correct the routing loop, the router enters the "loop correction"
      state and performs the following actions:

      *  It modifies the route maintenance table entry for destination X
         and lists infinity as each neighbor router's cost to reach
         destination X. Note that the cost of all neighbor routers to
         reach destination X is set to infinity irrespective of whether
         they are identified to be in loop or not.  This is done because
         the currently advertized cost of all neighbor routers may be
         tainted by the costs advertized by the routers in the loop.

      *  It immediately generate an RA listing an infinite cost to reach
         destination X. This RA also includes the list of nodes
         identified to be in the loop.  While the router is in the "loop
         correction" state, it periodically generates additional such
         RAs irrespective of the trickle timer settings.

   The sojourn in the "loop correction" state lasts for a certain pre-
   configured time interval.  While in the "loop correction" state, the
   router can not add any new next hops for destination X. Thus, while a
   router is in the "loop correction" state, it simply buffers or drops
   packets going to destination X. A router in the "loop correction"
   state updates the neighbor routers cost to reach X based on the
   received RAs.  But, as mentioned before, it can not choose a new next
   hop and it continues to advertise its own cost to reach X as
   infinity.

   When a router B receives an RA from router A that identifies B to be
   involved in a routing loop for destination X, router B notes the IDs
   of routers involved in the loop and enters the "loop correction"
   state taking the actions identified above.

   Thus, all routers involved in the loop enter the "loop correction"
   state and advertise infinite cost to destination X. The neighbor
   routers of these routers will generate new RAs advertising new costs
   for destination X that exclude previously in-loop routers from
   consideration.  Assuming that:

   o  a path, excluding in-loop routers, does exist from the router to
      destination X and

   o  the "loop correction" state lasts long enough to allow the router
      to receive new advertisements from all its neighbor routers based
      on such a path,

   the router would select one such out-of-loop neighbor router as a
   next hop for destination X when it comes out of the "loop correction"
   state.  Immediately, the router generates a new RA listing its new



Goyal                   Expires January 28, 2010               [Page 10]

Internet-Draft           draft-goyal-roll-dv-01                July 2009


   cost to destination X.

   Thus, all previously in-loop routers, when they come out of the "loop
   correction" state, advertise any paths they may have to destination X
   that do not include previously in-loop routers.  These advertisements
   would allow these routers to determine new optimal, and loop-free,
   paths to destination X.


7.  IANA Considerations

   TBD


8.  Security Considerations

   TBD


9.  Informative References

   [I-D.dt-roll-rpl]
              Winter, T. and R. Team, "RPL: Routing Protocol for Low
              Power and Lossy Networks", draft-dt-roll-rpl-01 (work in
              progress), July 2009.

   [I-D.ietf-roll-building-routing-reqs]
              Martocci, J., Riou, N., Mil, P., and W. Vermeylen,
              "Building Automation Routing Requirements in Low Power and
              Lossy Networks", draft-ietf-roll-building-routing-reqs-05
              (work in progress), February 2009.

   [I-D.ietf-roll-home-routing-reqs]
              Porcu, G., "Home Automation Routing Requirements in Low
              Power and Lossy Networks",
              draft-ietf-roll-home-routing-reqs-06 (work in progress),
              November 2008.

   [I-D.ietf-roll-indus-routing-reqs]
              Networks, D., Thubert, P., Dwars, S., and T. Phinney,
              "Industrial Routing Requirements in Low Power and Lossy
              Networks", draft-ietf-roll-indus-routing-reqs-06 (work in
              progress), June 2009.

   [I-D.ietf-roll-protocols-survey]
              Tavakoli, A., Dawson-Haggerty, S., and P. Levis, "Overview
              of Existing Routing Protocols for Low Power and Lossy
              Networks", draft-ietf-roll-protocols-survey-07 (work in



Goyal                   Expires January 28, 2010               [Page 11]

Internet-Draft           draft-goyal-roll-dv-01                July 2009


              progress), April 2009.

   [I-D.ietf-roll-routing-metrics]
              Vasseur, J. and D. Networks, "Routing Metrics used for
              Path Calculation in Low Power and Lossy Networks",
              draft-ietf-roll-routing-metrics-00 (work in progress),
              April 2009.

   [I-D.ietf-roll-terminology]
              Vasseur, J., "Terminology in Low power And Lossy
              Networks", draft-ietf-roll-terminology-01 (work in
              progress), May 2009.

   [RFC5548]  Dohler, M., Watteyne, T., Winter, T., and D. Barthel,
              "Routing Requirements for Urban Low-Power and Lossy
              Networks", RFC 5548, May 2009.

   [trickle]  Levis, P., Brewer, E., Culler, D., Gay, D., Madden, S.,
              Patel, N., Polastre, J., Shenker, S., Szewezyk, R., and A.
              Woo, "The emergence of a networking primitive in wireless
              sensor networks", Communications of the ACM , July 2008.


Author's Address

   Mukul Goyal
   University of Wisconsin Milwaukee
   3200 N Cramer Street
   Milwaukee, Wisconsin  53201
   USA

   Phone: +1 414 229 5001
   Email: mukul@uwm.edu


















Goyal                   Expires January 28, 2010               [Page 12]