Internet DRAFT - draft-clausen-manet-linkbuffer

draft-clausen-manet-linkbuffer




INTERNET-DRAFT                                            Thomas Clausen
IETF MANET Working Group                LIX, Ecole Polytechnique, France
Expiration: 14 April 2005                                   Kenichi Mase
                                               Niigata University, Japan

                                                         15 October 2004
                       Link Buffering for MANETs
                 draft-clausen-manet-linkbuffer-00.txt

Status of this Memo
   This document is a submission to the Mobile Ad Hoc Networking Working
   Group of the Internet Engineering Task Force (IETF). Comments should
   be submitted to the manet@ietf.org mailing list.

   Distribution of this memo is unlimited.

   By submitting this Internet-Draft, I certify that any applicable
   patent or other IPR claims of which I am aware have been disclosed,
   or will be disclosed, and any of which I become aware will be
   disclosed, in accordance with RFC 3668

   This document is an Internet-Draft and is in full conformance with
   all provisions of Section 10 of RFC 2026.

   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.

Abstract

   A number of MANET routing protocols employ the ability to temporarily
   buffer undeliverable IP datagrams until a route to a destination
   becomes available. This is indeed the case for reactive protocols,
   which largely are based on the ability to store an undeliverable IP
   datagram while a route discovery operation is carried out. Current
   specifications of proactive routing-protocols do, however, also
   indiate that they may benefit from such a mechanism: while a local



Clausen, Mase                  Linkbuffer                         [Page 1]

INTERNET-DRAFT                 Linkbuffer                14 October 2004


   link breakage may imply that a selected route to a given destination
   breaks, buffering an undeliverable IP datagram may allow a local
   topology discovery mechanism to select an alternative route.


   This document describes a generic mechanism for buffering IP
   datagrams in MANETs. The mechanism is based on the idea that while a
   local link may make a route to a destination fail, it does not imply
   that an alternative route to that destination is not available.
   Hence, IP datagrams for transmission along that route are buffered to
   allow the routing protocol time to construct an alternative route.
   The IP datagram is discarded only if the routing protocol hasné^Â^ƒt been
   able to provide an alternative route within a determined small delay.

   We note, that this specification does not mandate a required behavior
   for MANET routing protocols. Rather, since the mechanisms currently
   employed in the four existing MANET routing protocol specification
   are similar in what they try to accomplish, it is the goal of this
   specification to generalize and expand on these mechanisms, thereby
   provide a framework for (i) discussing and refining the mechanism in
   isolation and (ii) providing a common element, which may be usefull
   for multiple MANET routing protocols.





























Clausen, Mase                  Linkbuffer                         [Page 2]

INTERNET-DRAFT                 Linkbuffer                14 October 2004


Table of Contents

1. Introduction  . . . . . . . . . . . . . . . . . . . . . . . . . .   4
1.1. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . .   5
1.2. Applicability Section . . . . . . . . . . . . . . . . . . . . .   5
2. Link Buffering Details  . . . . . . . . . . . . . . . . . . . . .   5
2.1. IP Datagram Transmission  . . . . . . . . . . . . . . . . . . .   6
2.1.1. Destination States  . . . . . . . . . . . . . . . . . . . . .   6
2.1.2. State Transitions . . . . . . . . . . . . . . . . . . . . . .   8
2.1.3. State Diagram . . . . . . . . . . . . . . . . . . . . . . . .  11
2.2. Link Buffer . . . . . . . . . . . . . . . . . . . . . . . . . .  12
2.3. Restoration . . . . . . . . . . . . . . . . . . . . . . . . . .  12
2.4. Routing Protocol Interface  . . . . . . . . . . . . . . . . . .  13
3. Authors Addresses   . . . . . . . . . . . . . . . . . . . . . . .  13
4. References  . . . . . . . . . . . . . . . . . . . . . . . . . . .  14
5. Changes . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  14
6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . . .  14
7. Security Considerations . . . . . . . . . . . . . . . . . . . . .  14
8. Copyright Statement . . . . . . . . . . . . . . . . . . . . . . .  15
































Clausen, Mase                  Linkbuffer                         [Page 3]

INTERNET-DRAFT                 Linkbuffer                14 October 2004


1.  Introduction
   Routing protocols in MANETé^Â^ƒs, in general, fall into two distinct cat-
   egories: proactive protocols such as OLSR [1] and TBRPF [2], and
   reactive protocols such as AODV [3] and DSR [4]. These protocols
   serve the task of, on a best effort basis, constructing and maintain-
   ing connected paths between pairs of nodes, with the purpose of being
   able to route IP datagrams between any two nodes in the MANET.

   OLSR, TBRPF, AODV and DSR all specify that, if available, link-layer
   notifications of local link disconnections should be employed in
   order to increase the protocols ability to respond to topology
   changes. However the exact behaviour of the four routing protocols
   differs: the proactive protocols, in general, take link disconnection
   into account by adjusting their internal topology graph according to
   a disappearing link, and then either routing IP datagrams along
   alternative paths or dropping them as undeliverable if alternative
   paths are unavailable. For the reactive protocols, a route repair or
   route discovery cycle is initiated when a link along an active route
   is no longer available for delivering IP datagrams. Until the route
   repair or route discovery is completed, undeliverable IP datagrams
   are buffered for possible later delivery.

   The aim of this specification is to extract from the four MANET rout-
   ing protocols a common mechanism for MANET protocols, both proactive
   and reactive, to employ when local link disconnection is detected on
   the MAC layer, as well as to accommodate for the needs to buffer IP
   datagrams while routes are being discovered. When link disconnection
   is detected, IP datagrams to be transmitted over the now disconnected
   link are stored in a "link buffer", expecting that the entries in the
   routing table, which had the disconnected node as next hop, will be
   updated. Similarly, any IP datagrams in MAC queues, which would now
   be undeliverable, are extracted and buffered for later delivery -- a
   technique known as "restoration". When these entries are updated,
   buffered IP datagrams in the link buffer can be reexamined, and
   transmitted according to the new information. If the entries are not
   updated within a reasonable time-frame, buffered IP datagrams can be
   discarded.

   We note, that this specification does not mandate a required behavior
   for MANET routing protocols. Rather, since the mechanisms currently
   employed in the four existing MANET routing protocol specification
   are similar in what they try to accomplish, it is the goal of this
   specification to generalize and expand on these mechanisms, thereby
   provide a framework for (i) discussing and refining the mechanism in
   isolation and (ii) providing a common element, which may be usefull
   for multiple MANET routing protocols.

   This document specifies a nodes internal behaviour in response to



Clausen, Mase                  Linkbuffer                         [Page 4]

INTERNET-DRAFT                 Linkbuffer                14 October 2004


   local link disconnection and undeliverable packets, and specifies an
   interface to the routing protocols.


1.1.  Terminology

   The keywords "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
   "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
   document are to be interpreted as described in RFC2119 [5].  In this
   specification, the following additional terminology is employed:


     local link disconnect
          when traffic can no longer be exchanged over a link between a
          node and its immediate neighbour. This implies that (i) the
          neighbour may become unavailable as a destination and (ii) the
          neighbour disappears as a potential "next hop" for routes to
          nodes farther away in the network.


1.2.  Applicability Section

   The basic assumption for the mechanism proposed is, that while the
   topology in the network may change quite frequently, nodes disconnect
   permanently from the network relatively rarely. Therefore, even if a
   route to a node disappears due to a local link disconnect, it can be
   assumed the node will remain in the network and an alternative route
   will become available. For reactive protocols, an alternative route
   may become available once route repair or route discovery completes
   successfully. For proactive protocols, an alternative route may
   become available once topological information has been successfully
   diffused to the entire network (or until the routing algorithm has
   found an alternative path through the topology graph). Either class
   of protocols experiences a delay from a link disconnect is detected
   and until an alternative route is established. During that delay, IP
   datagrams, which were to be delivered over the disconnected link, can
   be buffered for later transmission when a path to their respective
   destinations has been reestablished -- or discarded when it has been
   determined that alternative paths can not be found.

   The proposed mechanism supports both the requirements of proactive
   and reactive MANET routing protocols.

2.  Link Buffering Details

   In this section, the details regarding link buffering with respect to
   routing of IP datagrams in MANETs are described.




Clausen, Mase                  Linkbuffer                         [Page 5]

INTERNET-DRAFT                 Linkbuffer                14 October 2004


2.1.  IP Datagram Transmission

   A node behaves differently with respect to IP datagram transmission
   to a given destination depending on if the destination is known and
   available, known but due to a local link disconnection temporarily
   unavailable or if it is not know if a destination is available in the
   network.

   Each node maintains a routing table which allows it to route data,
   destined for the other nodes in the network, and is primarily popu-
   lated by the routing protocol governing a node. Additionally, for the
   purpose of this specification, each entry in the routing table has an
   associated state, R_dest_state, and lifetime R_dest_lifetime. The use
   of these additional fields are specified in the following sections.


2.1.1.  Destination States

   Traditional IP datagram transmission considers, essentially, two
   "states" for any destination: either a route exists (in which case IP
   datagrams can be transmitted) or no route exists (in which case IP
   datagrams are to be dropped). Reactive MANET protocols implicitly
   introduce a third state "route discovery in progress", implying that


     -    packets to the destination should be buffered for potential
          later delivery;

     -    a route discovery should not be initiated to this destination
          since one is already ongoing.


   These two implications SHOULD be separated: the routing protocol is
   responsible for maintaining routes, hence state in the routing proto-
   col pertaining to route maintenance SHOULD, if applicable, be estab-
   lished to prevent multiple concurrent route discoveries for the same
   destination.

   Link buffering pertains to whether IP datagrams should be buffered
   for expected later delivery, or whether they should be dropped. This
   state concerns IP datagram transmissions, and MUST be maintained for
   the mechanism in this specification.

   Thus, three states MUST be maintained in R_dest_state for each desti-
   nation in the network:






Clausen, Mase                  Linkbuffer                         [Page 6]

INTERNET-DRAFT                 Linkbuffer                14 October 2004


     State         | Description                    | Action
     ==============|================================|===============
     No Route      | No routing information is      | Buffer
                   | available for this destination | IP Datagrams
                   |                                |
                   |                                | Notify routing
                   |                                | protocol
                   |                                |
                   |                                |
     Route Valid   | A route entry exists for       | Transmit
                   | this destination, and the      | IP Datagrams
                   | link to the next hop towards   |
                   | this destination is not        |
                   | disconnected                   |
                   |                                |
                   |                                |
     Route invalid | A route entry exists for this  | Buffer
                   | destination, but the next hop  | IP Datagrams
                   | towards the destination has    |
                   | become disconnected            | Notify routing
                   |                                | protocol

   The state "No Route" corresponds to the usual situation where no
   entry in the routing table exists for a given destination. In that
   case, the default behaviour of a reactive protocol is to initiate
   route discovery, whereas the default behaviour of a proactive proto-
   col is to drop IP datagrams.

   This can be accomplished through having the proactive routing proto-
   col respond to the notification by simply clearing the buffered pack-
   ets (through the event "No Destination" described in section
   2.1.2 )

   The state "Route Valid" corresponds to the usual situation where an
   entry in the routing table exists for a given destination. In that
   case, IP datagrams to this destination MUST be forwarded as specified
   in [6].

   I.e. in the case of "No Route" and "Route Valid", the standard
   behaviour of proactive and reactive routing protocols is preserved.

   The state "Route Invalid" corresponds to the situation where a desti-
   nation is believed to be present in the network, although the previ-
   ously selected "next hop" currently is unavailable. IP datagrams to a
   destination in this state are inserted into the "Link Buffer". Fur-
   thermore, the routing protocol governing the node MUST be notified
   such that corrective action can be taken.




Clausen, Mase                  Linkbuffer                         [Page 7]

INTERNET-DRAFT                 Linkbuffer                14 October 2004


2.1.2.  State Transitions

   Five events impact the way a node determines its course of action
   with respect to transmitting an IP datagram:















































Clausen, Mase                  Linkbuffer                         [Page 8]

INTERNET-DRAFT                 Linkbuffer                14 October 2004


      Event                  | Cause
     ========================|======================================
      Route Entry Updated    | This event is caused by the routing
                             | protocol when updating routing infor-
                             | mation for a given destination. This
                             | MUST be done in accordance with the
                             | routing protocol specification.
                             |
                             | As an example, a proactive routing
                             | protocol would cause this event for
                             | a destination when receiving a
                             | control message pertaining to that
                             | destination or constructing a path
                             | to the destination.
                             |
      Route Entry Expired    | This event is caused by absence of
                             | "Route Entry Updated" events for a
                             | given destination. This event MUST
                             | be done in accordance with the
                             | routing protocol specification, and
                             | MUST take into account the time it
                             | takes for the routing protocol to
                             | repair/discover a route (reactive
                             | protocols) or to update routing
                             | table based on periodic advertise-
                             | ments (proactive protocols).
                             |
      Link Disconnected      | This event is caused by the node
                             | being informed of link disconnection
                             | based on link layer notification.
                             |
      Route Lost             | This event is caused by the routing
                             | protocol detecting that a destination
                             | is no longer reachable. This may e.g.
                             | be due to absence of a periodic
                             | advertisement.
                             | This event is symmetric to "Link
                             | Disconnected" described above, except
                             | that it is generated by the routing
                             | protocol.
                             |
      No Destination         | This event is caused by the routing
                             | protocol detecting that a destination
                             | can not be discovered in the network.
                             |

   The complete state changes and actions following these events can be
   summarised in the following table:



Clausen, Mase                  Linkbuffer                         [Page 9]

INTERNET-DRAFT                 Linkbuffer                14 October 2004


      Current  | Event        | Next      | Action
      State    |              | State     |
     ==========|==============|===========|==================
      Route    | Route Entry  | Route     | Forward all
      Invalid  | Updated      | Valid     | packets in
               |              |           | "Link Buffer"
               |              |           | for destination
               |              |           | Update
               |              |           | R_dest_lifetime
                --------------|-----------|------------------
               | Route Entry  | No        | Purge corre-
               | Expired      | Route     | sponding IP data-
               |              |           | grams from "Link
               |              |           | Buffer"
                --------------|-----------|------------------
               | Link         | Route     | Perform
               | Disconnected | Invalid   | "Restoration"
               |              |           | (section 2.3 )
                --------------|-----------|------------------
               | No           | No        | Purge corre-
               | Destination  | Route     | sponding IP data-
               |              |           | grams from "Link
               |              |           | Buffer"
                --------------|-----------|------------------
               | Route        | Route     | None
               | Lost         | Invalid   |
     ----------|--------------|-----------|------------------
      Route    | Route Entry  | Route     | Update
      Valid    | Updated      | Valid     | R_dest_lifetime
                --------------|-----------|------------------
               | Route Entry  | No        | None
               | Expired      | Route     |
                --------------|-----------|------------------
               | Link         | Route     | Perform
               | Disconnected | Invalid   | "Restoration"
               |              |           | (section 2.3 )
                --------------|-----------|------------------
               | No           | Route     | None        (*)
               | Destination  | Invalid   |
                --------------|-----------|------------------
               | Route        | Route     | None
               | Lost         | Invalid   |
     ----------|--------------|-----------|------------------

               (Continued on next page)






Clausen, Mase                  Linkbuffer                        [Page 10]

INTERNET-DRAFT                 Linkbuffer                14 October 2004


               (Continued from previous page)

      Current  | Event        | Next      | Action
      State    |              | State     |
     ==========|==============|===========|==================
      No       | Route Entry  | Route     | Forward all(**)
      Route    | Updated      | Valid     | packets in
               |              |           | "Link Buffer"
               |              |           | for destination.
               |              |           | Update
               |              |           | R_dest_lifetime
                --------------|------------------------------
               | Route Entry  | No        | None        (*)
               | Expired      | Route     |
                --------------|-----------|------------------
               | Link         | No        | None        (*)
               | Disconnected | Route     |
                --------------|-----------|------------------
               | No           | No        | Purge corre-
               | Destination  | Route     | sponding IP data-
               |              |           | grams from "Link
               |              |           | Buffer"     (**)
                --------------|-----------|------------------
               | Route        | No        | None        (*)
               | Lost         | Route     |
               |              |           |
     ----------|--------------|-----------|------------------

   Transitions marked by (*) SHOULD not occur, but are included for com-
   pleteness of the table.

   The action marked by (**) represents the action when a reactive pro-
   tocol has succeed in discovering a route to a previously unknown des-
   tination.



2.1.3.  State Diagram

   A nodes behaviour when transmitting IP datagrams, as described above,
   can be summarised into the following state diagram:










Clausen, Mase                  Linkbuffer                        [Page 11]

INTERNET-DRAFT                 Linkbuffer                14 October 2004


                    -----------
                No |           |
       Destination |        -------
                    ------>|       |---------------------
                           |   No  |                     | Route
               ----------->| Route |<---------           | Entry
        Route | No         |       |          |Route     | Updated
     Lifetime | Destination -------           |Lifetime  |
      Expired |                               |Expired   |
              |                               |          |
          ---------   Route Entry Updated   ---------    |
         |         |---------------------->|         |<--
         |  Route  |                       |  Route  |---  Route
         | Invalid |   Link Disconnected   |  Valid  |   | Entry
         |         |<----------------------|         |<--  Updated
         |         |   No Destination      |         |
      -->|         |   Link Lost           |         |
     |   |         |                       |         |
     |    ---------                         ---------
     |        |
      --------
       Link
       Disconnected


   Notice, that only "valid" transitions are included in this diagram.


2.2.  Link Buffer

   IP datagrams, which cannot be delivered due to the corresponding
   entries in the routing table being in the "Route Invalid" state, MUST
   be stored in the Link Buffer. The IP datagrams MUST be stored until
   the state of the corresponding entry in the routing table changes to
   "No Route".


2.3.  Restoration

   When link disconnection is detected by link layer notification as the
   result of a packet not able to be delivered (e.g. through absence of
   MAC-layer acknowledgement), the packet in the MAC queue, for which
   the transmission failure occurs, SHOULD be restored as an IP datagram
   in the Link Buffer.

   All other packets in the MAC queue with the same next hop MAY be
   restored as IP datagrams in the Link Buffer (full restoration) or may
   simply be cleared (simple restoration).



Clausen, Mase                  Linkbuffer                        [Page 12]

INTERNET-DRAFT                 Linkbuffer                14 October 2004


2.4.  Routing Protocol Interface

   The interface FROM the routing protocol TO the link buffering mecha-
   nism is described through the events in section 2.1.2.
   This involves ensuring the transitions and actions as defined for the
   events:

     -    Route Entry Updated

     -    No Destination

     -    Route Lost

The interface FROM the link buffering mechanism TO the routing protocol
can be described through two simple functions, which the routing proto-
col must provide:



     -    When a link-layer notification detects a link disconnection, a
          function "link_disconnect(neighb)" MUST be invoked in the
          routing protocol. Consequently, such a function MUST be pro-
          vided by the routing protocol.


     -    When a packet is buffered in the Link Buffer, the routing pro-
          tocol MUST be notified through invoking a function
          "pkt_buffered(next_hop,destination)". This includes the situa-
          tion of notifying a reactive routing protocol that route dis-
          covery is needed when attempting to transmit IP datagrams to a
          previously unknown node. Consequently, such a function MUST be
          provided by the routing protocol.


3.  Authors Addresses


   Thomas Heide Clausen,
   Project PCRI
   Pole Commun de Recherche en Informatique du plateau de Saclay,
   CNRS, Ecole Polytechnique, INRIA, Universite Paris Sud,
   Ecole polytechnique,
   Laboratoire dé^Â^ƒinformatique,
   91128 Palaiseau Cedex, France
   Phone: +33 1 69 33 40 73,
   Email: T.Clausen@computer.org





Clausen, Mase                  Linkbuffer                        [Page 13]

INTERNET-DRAFT                 Linkbuffer                14 October 2004


   Kenichi Mase,
   Niigata University,
   Niigata 950-2181,
   Japan,
   Phone: +81 25 262 7446,
   Email: mase@ie.niigata-u.ac.jp

4.  References

1. T. Clausen, P. Jacquet, Optimized Link State Routing Protocol.
     Request for Comments (Experimental) 3626, October 2003

2. R. Ogier, F. Templin, M. Lewis. Topology Dissemination Based on
     Reverse-Path Forwarding. Request for Comments (Experimental) 3684,
     February 2004

3. C. Perkins, E. Belding-Royer, S. Das. Ad hoc On-Demand Distance Vec-
     tor (AODV) Routing, Request for Comments (Experimental) 3561, July
     2003

4. D. Johnson, D. Maltz, Y. Hu, J. Jetcheva. The Dynamic Source Routing
     Protocol for Mobile Ad Hoc Networks, draft-ietf-manet-dsr-09.txt,
     work in progress, november 2001

5. S. Bradner.  Key words for use in RFCs to Indicate Requirement Lev-
     els.  Request for Comments (Best Current Practice) 2119, Internet
     Engineering Task Force, March 1997.

6. F. Baker. Requirements for IP Version 4 Routers  Request for Comments
     (Standards Track) 1812, Internet Engineering Task Force, June 1995.


5.  Changes

   This is the initial version of this specification.

6.  IANA Considerations

   This document does currently not specify IANA considerations.

7.  Security Considerations
   No message exchange is specified through this document. Packets from
   the MAC queue which are restored (extracted from the MAC queue and
   reinserted into the IP queue) will be restored in an unaltered state.
   Hence, any security and authentication information associated with
   restored IP datagrams remains unaltered.





Clausen, Mase                  Linkbuffer                        [Page 14]

INTERNET-DRAFT                 Linkbuffer                14 October 2004


8.  Copyright Statement
   "Copyright (C) The Internet Society (2004). This document is subject
   to the rights, licenses and restrictions contained in BCP 78, and
   except as set forth therein, the authors retain all their rights."

   "This document and the information contained herein are provided on
   an "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRE-
   SENTS OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE
   INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR
   IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF
   THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
   WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE."