Internet DRAFT - draft-weniger-autoconf-pdad-olsr

draft-weniger-autoconf-pdad-olsr






Network Working Group                                         K. Weniger
Internet-Draft                                                 Panasonic
Expires: December 25, 2006                                       K. Mase
                                                      Niigata University
                                                           June 23, 2006


        PDAD-OLSR: Passive Duplicate Address Detection for OLSR
                  draft-weniger-autoconf-pdad-olsr-01

Status of this Memo

   By submitting this Internet-Draft, each author represents that any
   applicable patent or other IPR claims of which he or she is aware
   have been or will be disclosed, and any of which he or she becomes
   aware will be disclosed, in accordance with Section 6 of 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 December 25, 2006.

Copyright Notice

   Copyright (C) The Internet Society (2006).

Abstract

   This draft proposes PDAD-OLSR, a solution for configured address
   uniqueness maintenance in MANETs running the OLSR protocol.  It
   utilizes the Passive Duplicate Address Detection (PDAD) concept,
   which enables nodes to passively detect duplicate addresses in the
   network (e.g., occurring after network merging) by analyzing received
   routing protocol messages.  Due to its passive nature, PDAD-OLSR is
   very efficient in terms of bandwidth consumption.  Moreover, it can



Weniger & Mase          Expires December 25, 2006               [Page 1]

Internet-Draft                    PDAD                         June 2006


   prevent the contamination of routing tables with wrong routing
   information resulting from address conflicts.


Table of Contents

   1.  Terminology  . . . . . . . . . . . . . . . . . . . . . . . . .  3
   2.  Introduction and Motivation  . . . . . . . . . . . . . . . . .  4
   3.  Overview of the Passve DAD Concept . . . . . . . . . . . . . .  6
   4.  PDAD Algorithms for OLSR . . . . . . . . . . . . . . . . . . .  8
     4.1.  Data Structures and Parameters . . . . . . . . . . . . . .  8
     4.2.  PDAD-Source Address (SA) . . . . . . . . . . . . . . . . .  9
     4.3.  PDAD-Sequence Numbers (SN) . . . . . . . . . . . . . . . . 10
     4.4.  PDAD-Sequence Number Difference (SND)  . . . . . . . . . . 10
     4.5.  PDAD-Sequence Numbers Equal (SNE)  . . . . . . . . . . . . 10
     4.6.  PDAD-SNs Always Increment (SNI)  . . . . . . . . . . . . . 11
     4.7.  PDAD-Neighborhood History (NH) . . . . . . . . . . . . . . 11
     4.8.  PDAD-Link States (LS)  . . . . . . . . . . . . . . . . . . 12
     4.9.  PDAD-extended Neighborhood History (eNH) . . . . . . . . . 12
     4.10. Summary  . . . . . . . . . . . . . . . . . . . . . . . . . 13
     4.11. Detecting Sequence Number Wrap-arounds . . . . . . . . . . 14
     4.12. Support for Multi-Subnet MANET Architecture  . . . . . . . 14
   5.  Conflict Resolution and Related Issues . . . . . . . . . . . . 16
     5.1.  Conflict Resolution  . . . . . . . . . . . . . . . . . . . 16
       5.1.1.  Option A . . . . . . . . . . . . . . . . . . . . . . . 16
       5.1.2.  Option B . . . . . . . . . . . . . . . . . . . . . . . 16
     5.2.  Preventing Routing Table Contamination . . . . . . . . . . 16
     5.3.  Handling Address Changes . . . . . . . . . . . . . . . . . 17
   6.  Message Formats  . . . . . . . . . . . . . . . . . . . . . . . 18
     6.1.  Conflict Resolution Message  . . . . . . . . . . . . . . . 18
     6.2.  Changes to TC and HELLO Message  . . . . . . . . . . . . . 18
   7.  Security Considerations  . . . . . . . . . . . . . . . . . . . 19
   8.  References . . . . . . . . . . . . . . . . . . . . . . . . . . 20
     8.1.  Normative References . . . . . . . . . . . . . . . . . . . 20
     8.2.  Informative References . . . . . . . . . . . . . . . . . . 20
   Appendix A.  Illustration of PDAD Algorithms . . . . . . . . . . . 22
     A.1.  Notation . . . . . . . . . . . . . . . . . . . . . . . . . 22
     A.2.  PDAD-SA  . . . . . . . . . . . . . . . . . . . . . . . . . 22
     A.3.  PDAD-SN  . . . . . . . . . . . . . . . . . . . . . . . . . 22
     A.4.  PDAD-SND . . . . . . . . . . . . . . . . . . . . . . . . . 23
     A.5.  PDAD-SNE . . . . . . . . . . . . . . . . . . . . . . . . . 23
     A.6.  PDAD-SNI . . . . . . . . . . . . . . . . . . . . . . . . . 24
     A.7.  PDAD-NH  . . . . . . . . . . . . . . . . . . . . . . . . . 25
     A.8.  PDAD-LS  . . . . . . . . . . . . . . . . . . . . . . . . . 25
     A.9.  PDAD-eNH . . . . . . . . . . . . . . . . . . . . . . . . . 26
     A.10. Effects of Address Conflicts on MPR Selection  . . . . . . 26
   Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 28
   Intellectual Property and Copyright Statements . . . . . . . . . . 29



Weniger & Mase          Expires December 25, 2006               [Page 2]

Internet-Draft                    PDAD                         June 2006


1.  Terminology

   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
   "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
   document are to be interpreted as described in [1].

   The terminology of OLSR [2] is used.

   Conflicting address: An address that is not unique in the network,
   i.e., two MANET network interfaces in the same MANET are configured
   with the same address.

   Conflicting nodes: Two or more nodes configured with the same
   (conflicting) address.





































Weniger & Mase          Expires December 25, 2006               [Page 3]

Internet-Draft                    PDAD                         June 2006


2.  Introduction and Motivation

   Address autoconfiguration is a fundamental issue in MANETs, since
   routing protocols assume that the involved network interfaces are
   configured with unique IP addresses and manual assignment is often
   not applicable.  Solutions for traditional IP networks such as DHCP
   [5], DHCPv6 [6], zeroconf [7] or IPv6 Stateless Address
   Autoconfiguration [8] cannot be applied to MANETs due to their
   special properties such as the dynamic multi-hop nature.  See [3] and
   [18] for an overview of problems and approaches for MANET address
   autoconfiguation.

   Duplicate Address Detection (DAD) is an essential part of address
   autoconfiguration, especially for stateless protocols.  In MANETs,
   addresses may become duplicate when they are already assigned to
   nodes, e.g., after optimistic address assignment or after two or more
   independently configured MANETs merge to one network.  This problem
   is also referred to as configured address uniqueness maintenance
   problem.  Not re-using addresses in different (unconnected) MANETs by
   constructing MANET-local IP addresses based on pre-configured
   globally unique IDs such as IEEE MAC addresses may seem to solve this
   problem without a DAD mechanism, however, for the following reasons
   we think that this is not a general solution:

   o  Addresses based on pre-configured globally unique IDs are usually
      not 100\% globally unique, e.g., a IEEE MAC address (or the IP
      address itself) configured at a specific network interface may be
      changed by the user, devices with duplicate MAC addresses exist on
      the market (non-registered or erroneous manufacturing), and some
      devices may not have globally unique IDs (e.g., sensors)

   o  Addresses based on pre-configured globally unique IDs may have
      negative implications on privacy [4]

   o  Since this approach requires long addresses to allow the
      addressing of all existing devices, it is only possible with IPv6,
      not with IPv4

   o  Long addresses result in a significant increase of signaling
      traffic, e.g., of the routing protocol.  Dynamically assigning
      locally unique addresses and re-using them in different
      (unconnected) MANETs is more efficient, since such addresses may
      be shorter or can easily be compressed to shorter addresses in
      routing protocol packets. [17] first proposed the compression of
      addresses in routing protocol messages.  OLSRv2 [14] and DYMO [15]
      support a special form of address compression.

   In case (large) parts of the address are generated from random



Weniger & Mase          Expires December 25, 2006               [Page 4]

Internet-Draft                    PDAD                         June 2006


   numbers (e.g., as proposed in [10]), issue 1 and 2 may not be a
   problem anymore, but issue 3 and 4 remain.  Because of these issues
   and because different nodes in a network can use different methods
   for address generation, we think that a DAD solution for the
   configured address uniqueness maintenance problem is needed.
   However, the solution should be very bandwidth-efficient to justify
   its use in cases where the probability of a conflict is very low.

   This draft proposes a very bandwidth-efficient solution for
   configured address uniqueness maintenance in a network running the
   OLSR protocol [2].  The solution is suitable for any kind of
   addresses exchanged in routing protocol messages, be it MANET-local
   or globally routable addresses of IPv4 or IPv6.  It supports both
   MANET single- and multi-subnet architecture (see Section 4.12) and is
   in line with the proposed framework for autoconfiguration [13].  The
   generation and assignment of addresses is out of scope of this draft.
   Multiple network interfaces and OLSRv2 are not considered in this
   version of the draft.

































Weniger & Mase          Expires December 25, 2006               [Page 5]

Internet-Draft                    PDAD                         June 2006


3.  Overview of the Passve DAD Concept

   The PDAD concept for MANETs was first proposed in [19] and later
   refined, analyzed, and integrated in a complete address
   autoconfiguration solution [17].  The initial solution was modular to
   support multiple routing protocols, namely OLSR, AODV, and FSR.
   Later, multiple drafts proposed the use of PDAD in the IETF
   specifically for OLSR [12] [11] [16].

   PDAD defines a set of rather simple algorithms that allows nodes to
   detect address conflicts in the network based on routing protocol
   anomalies.  A specific combination of algorithms is supposed to to
   detect all conflicts in the network running a specific routing
   protocol.  The basic idea of PDAD is to exploit the fact that some
   protocol events occur in case of a duplicate address, but (almost)
   never in case of a unique address.

   PDAD-enabled nodes derive information about the state of the routing
   protocol daemon running on another node's network interface and
   configured with a specific address (e.g., address A) from incoming
   routing protocol messages.  If the receiver's address equals A, the
   information related to address A in the incoming message is compared
   to information associated with the state of the receiver's routing
   protocol daemon in order to detect a possible conflict of address A.
   If the receiver's address does not equal A, it compares the
   information from the message to information associated to the state
   derived from another recently received routing protocol message
   containing information about address (address A), i.e., PDAD allows
   the detection of conflicts by intermediate nodes that have unique
   addresses.

   Since the state of a routing protocol daemon is changing over time, a
   node receiving a routing protocol message must have information about
   the time this routing protocol message has been sent.  Without
   synchronized clocks and additional information in the messages, this
   time can only be estimated.  Here, it is assumed that the time
   interval during which a specific routing protocol message is
   completely disseminated in the network can be estimated to be less
   than a time span T_D. In this case, routing protocol messages
   received by a node can never be older than T_D. Note that "complete
   dissemination" of a message does not mean that the message reaches
   all nodes, it just means that it is not forwarded anymore in the
   network.  T_D can be quite large (e.g., in the order of minutes) and
   can be different for different routing protocol messages depending on
   the maximum number of times a message is fowarded, e.g., for HELLO
   and TC messages.  The stated assumption usually holds quit well in
   reality, since routing protocols use a duplicate cache, nodes do not
   store to-be-forwarded routing information for unlimited time and



Weniger & Mase          Expires December 25, 2006               [Page 6]

Internet-Draft                    PDAD                         June 2006


   queuing and media access delays are usually somehow bounded.  In
   fact, all well-known ad hoc routing protocols implicitly assume a
   certain maximum dissemination time T_D, since otherwise they would
   not be able to distinguish fresh from stale routing information after
   sequence number wrap-arounds.  In case the estimate for the time span
   T_D is wrong, PDAD may generate false alarms and nodes with unique
   address may be forced to change their address.












































Weniger & Mase          Expires December 25, 2006               [Page 7]

Internet-Draft                    PDAD                         June 2006


4.  PDAD Algorithms for OLSR

   In the following, PDAD algorithms for OLSR [2] are presented.  The
   algorithms were first proposed in [17] and specify what a node has to
   do to detect duplicate addresses based on incoming routing protocol
   messages.  The algorithms utilize different parameters in TC and
   HELLO messages such as link states (i.e., neighbor interface
   addresses), link codes, (message) sequence numbers, and addresses in
   OLSR routing protocol messages as well as addresses in the IP header.
   For better undestanding, the algorithms are illustrated in examplary
   scenarios in Appendix A.  A node must implement all of the algorithms
   to be able to detect all conflicts in the network in all possible
   scenarios.  PDAD-OLSR considers that the MPR selection may be
   affected by duplicate addresses in the network, which may result in a
   limited dissemination of routing protocol messages in the network
   (see Appendix A.10).

4.1.  Data Structures and Parameters

   In addition to the OLSR data structures (or information
   repositories), each node conceptually maintains two tables for PDAD:
   a Last Received Protocol Messages (LRM) table and a Neighbor History
   (NH) table.

   The Last Received Protocol Messages (LRM) table contains information
   about the last TC and HELLO protocol message received from a specific
   originator address.  It has the following structure:

   o  Originator Address

   o  Message Type

   o  Message Sequence Number

   o  Neighbor Interface Addresses (with corresponding Link Codes if
      HELLO message)

   o  Receive Time

   The Neighbor History (NH) table contains the history of neighboring
   node addresses and is build from received HELLO messages.  Entries
   older than T_D can be deleted.  The entries have the following
   structure:

   o  Neighbor Interface Address

   o  Last time the receiver has selected this Neighbor Interface
      Address as MPR



Weniger & Mase          Expires December 25, 2006               [Page 8]

Internet-Draft                    PDAD                         June 2006


   o  Last time the receiver has been selected as MPR by this Neighbor
      Interface Address

   o  Receive Time of HELLO message

   The following protocol parameters are used:

   +-----------+-------------------------------------------+-----------+
   | Parameter | Meaning                                   | Default   |
   | name      |                                           | value     |
   +-----------+-------------------------------------------+-----------+
   | SN_MAX    | Maximum message sequence number value     | 65535     |
   |           |                                           |           |
   | T_D (TC)  | Maximum dissemination time of TC messages | 30s       |
   |           | in the network                            |           |
   |           |                                           |           |
   | T_D       | Maximum dissemination time of HELLO       | 2s        |
   | (HELLO)   | messages in the network                   |           |
   |           |                                           |           |
   | SN_RATE   | Maximum rate of message sequence number   | 5/s       |
   |           | incrementation per node                   |           |
   +-----------+-------------------------------------------+-----------+

4.2.  PDAD-Source Address (SA)

   If a node receives a TC or HELLO message, it compares the source
   address in the IP header to its own address.  If they equal, a
   conflict of this address is detected.  If the message is a HELLO
   messages, the originator address can be used instead of the source
   address in the IP header.

   The rationale behind this algorithm is that the IP source address is
   always the address of the last forwarder.  This is true for OLSR,
   since it uses application-layer forwarding of TC messages.  Note that
   an originator address in a TC message which is equal to the
   receiver's address is not an indication for an address conflict,
   since a node can receive TC messages originated by itself and
   forwarded by neighboring nodes.

   Care must be taken when implementing PDAD-SA, since broadcast
   messages must not be duplicated within the sending node and
   internally delivered to the IP stack as received message.  This would
   generate false alarms.

   The algorithm works completely passive and can detect conflicts
   between neighboring nodes only.





Weniger & Mase          Expires December 25, 2006               [Page 9]

Internet-Draft                    PDAD                         June 2006


4.3.  PDAD-Sequence Numbers (SN)

   If a node receives a TC or HELLO message, it compares the originator
   address with its own address.  If they equal and the sequence number
   in the message is higher than the receiver's sequence number, a
   conflict of the originator address is detected.  However, false
   alarms can occur in case of sequence number wrap-arounds.  Hence, a
   conflict must not be assumed if a wrap-around may be the reason for
   the sequence number inconsistency.  A mechanism to detect a possible
   sequence number wrap-around is described in section Section 4.11.

   The rationale behind this algorithm are that a node receiving its own
   TC messages forwarded by other nodes cannot have a sequence number
   large than the node's internal sequence number counter.  It is
   assumed that no wrap-around has occurred, that sequence numbers are
   incremented with a certain maximum rate and that each node only
   increments its own internal sequence number counter.

   The algorithm works completely passive and can detect conflicts
   between nodes that are any number of hops away from each other.

4.4.  PDAD-Sequence Number Difference (SND)

   If a node receives a TC or HELLO message, it compares the sequence
   number in the message with the sequence number in the previously
   received message from the same originator address and with the same
   message type.  If the sequence number difference is higher than a
   threshold SNDTHRES, a conflict of the originator address is detected.
   SNDTHRES can be computed as follows: SNDTHRES=(|
   T_R1-T_R2|+T_D)*SN_RATE with T_R1 and T_R2 the receive time of
   message 1 and 2, respectively.  Note that the computation of the
   sequence number difference must consider wrap-arounds, e.g., by
   calculating the difference with min(|SN1-SN2|,SN_MAX-|SN1-SN2|).

   The rationale behind this algorithm is that there is a relation
   between the time between a node has originated two TC messages and
   the sequence number in those TC messages.  Therefore, it is assumed
   that sequence numbers are incremented with a certain maximum rate and
   that each node only increments its own internal sequence number
   counter.

   The algorithm works completely passive and can detect conflicts
   between nodes that are any number of hops away from each other.

4.5.  PDAD-Sequence Numbers Equal (SNE)

   If an intermediate node receives a TC or HELLO message, it searches
   its LRM table for a message with the same message type value and the



Weniger & Mase          Expires December 25, 2006              [Page 10]

Internet-Draft                    PDAD                         June 2006


   same tuple <sequence number, originator address>.  If a matching
   entry is found, the node compares the neighbor interface addresses in
   both messages.  A conflict is detected if they differ.  Only messages
   that have arrived within the preceding time span SN_MAX/SN_RATE-T_D
   should be considered due to possible sequence number wrap-arounds.

   The rationale behind this algorithm is that the tuple <sequence
   number, originator address> uniquely identifies a messages originated
   by a specific node.

   The algorithm works completely passive and can detect conflicts
   between nodes that are any number of hops away from each other.

4.6.  PDAD-SNs Always Increment (SNI)

   If a node receives a HELLO message, it compares the sequence number
   in the message with the sequence number in the previous HELLO message
   from the same originator address.  If the sequence number in the new
   message is lower, a conflict of the originator address is detected.
   Again, this is only true if a sequence number wrap-around cannot be
   the reason for the inconsistency.  A mechanism to detect a possible
   sequence number wrap-arounds is described in section Section 4.11.

   The rationale is that HELLO messages sent by a specific node are
   received in the order they are sent (i.e., with increasing sequence
   numbers), since they are not forwarded and hence cannot "overtake"
   each other.

   The algorithm works completely passive and can only detect conflicts
   between nodes that are at most two hops away from each other.

4.7.  PDAD-Neighborhood History (NH)

   If a node receives a TC message, it checks whether its own address is
   part of the neighbor interface addresses in the TC message.  If this
   is the case and the link code indicates a bi-directional link, the
   node searches the originator address in its NH table.  If it cannot
   find the address in the table with a receive time higher than the
   current time minus T_D, a conflict of the node's address is detected.
   Otherwise, the node additionally checks whether the NH table
   indicates that the node has selected the found address as MPR within
   the last T_D. If this is not the case, a conflict is detected.

   The rationale behind this algorithm is that a TC message only
   contains neighbors that have selected the originator address as MPRs
   and that this requires a bi-directional link.  If all addresses in
   the network are unique, a node having an address equal to one of the
   neighbor interface addresses in a received TC message must have been



Weniger & Mase          Expires December 25, 2006              [Page 11]

Internet-Draft                    PDAD                         June 2006


   a neighbor of the originator address.

   The algorithm works completely passive and can detect conflicts
   between nodes that are any number of hops away from each other.

4.8.  PDAD-Link States (LS)

   If a node receives a TC message with its own address as originator
   address, it searches in its NH table for each of the neighbor
   interface addresses.  If at least one address is not found with a
   receive time higher than the current time minus T_D, a conflict of
   the originator address is detected.  If all addresses have been
   found, but the NH table indicates that the node's address has not
   been selected as MPR by the found address within the last T_D, a
   conflict is detected.

   The rationale is that if the message has been originated by the
   receiver, it must only contain addresses of recent neighbor
   interfaces.

   The algorithm works completely passive and can detect conflicts
   between nodes that are any number of hops away from each other.

4.9.  PDAD-extended Neighborhood History (eNH)

   If a node receives a TC message, it checks for each neighbor
   interface address in the message if it is a neighbor.  This can be
   done by checking the OLSR neighborhood or local link information base
   or the LRM table.  For each found neighbor address, the node searches
   in the LRM table for previously received HELLO message from this
   address.  For each found HELLO message (not older than T_D), it
   checks whether the originator address of the TC message is contained
   in the set of neighbor interface addresses of the found HELLO
   message.  If this is not the case, this is a hint for a conflict of
   the originator address of the HELLO message.  If this is the case,
   the node additionally checks the link codes of the respective
   neighbor interface addresses in the HELLO message.  If they indicate
   that the originator address of the TC message has not been selected
   as MPR within the last T_D by the originator address of the HELLO
   message, this is another hint for a conflict of the originator
   address of the HELLO message.  However, the receiver cannot be sure
   whether a conflict exists or not, since it is not aware of the
   complete neighbor history of the respective neighbor.  Hence, the
   receiver forwards the TC message even if it is not selected as MPR
   and would normally not forward this TC message.  The originator of
   the HELLO message is then able to detect the conflict by applying the
   PDAD-NH algorithm on the TC message.  Note that the forwarded TC
   message must be marked as "PDAD eNH hint message" (e.g., by a flag)



Weniger & Mase          Expires December 25, 2006              [Page 12]

Internet-Draft                    PDAD                         June 2006


   and that PDAD-eNH may not be applied to such TC messages.  Otherwise
   PDAD-eNH on other nodes may suspect a conflict of the address of the
   hint TC message sender.  How the marking is exactly done is TBD.

   This algorithm is basically the PDAD-NH algorithm executed on behalf
   of a neighboring node.  Minimal additional signaling is needed, which
   means that this algorithm is not completely passive.  A possible
   optimization to reduce the additional signaling would be to store the
   neighborhood history of neighbors in each node as learned from
   received HELLO messages.  However, this would require extra amount of
   memory.

   The algorithm works semi-passive and can detect conflicts between
   nodes that are any number of hops away from each other.

4.10.  Summary

   This section summarizes the properties of the PDAD algorithms.

   +---------+-----------+--------------------+------------+-----------+
   | Algorit | Relevant  | Potentially        | Maximum    | Completel |
   | hm      | parameter | conflicting nodes  | distance   | y passive |
   |         | s in      |                    | between    |           |
   |         | message   |                    | conflictin |           |
   |         |           |                    | g nodes    |           |
   +---------+-----------+--------------------+------------+-----------+
   | PDAD-SA | sequence  | originator/forward | 1 hop      | yes       |
   |         | number,   | er and receiver    |            |           |
   |         | IP source |                    |            |           |
   |         | address   |                    |            |           |
   |         |           |                    |            |           |
   | PDAD-SN | sequence  | originator and     | n hops     | yes       |
   |         | number,   | receiver           |            |           |
   |         | originato |                    |            |           |
   |         | r address |                    |            |           |
   |         |           |                    |            |           |
   | PDAD-SN | sequence  | both originators   | n hops     | yes       |
   | D       | number,   |                    |            |           |
   |         | originato |                    |            |           |
   |         | r address |                    |            |           |
   |         |           |                    |            |           |
   | PDAD-SN | sequence  | both originators   | n hops     | yes       |
   | E       | number,   |                    |            |           |
   |         | originato |                    |            |           |
   |         | r address |                    |            |           |
   |         |           |                    |            |           |





Weniger & Mase          Expires December 25, 2006              [Page 13]

Internet-Draft                    PDAD                         June 2006


   | PDAD-SN | sequence  | both originators   | 2 hops     | yes       |
   | I       | number,   |                    |            |           |
   |         | originato |                    |            |           |
   |         | r address |                    |            |           |
   |         |           |                    |            |           |
   | PDAD-LS | neighbor  | originator and     | n hops     | yes       |
   |         | addresses | receiver           |            |           |
   |         | ,         |                    |            |           |
   |         | originato |                    |            |           |
   |         | r address |                    |            |           |
   |         |           |                    |            |           |
   | PDAD-NH | neighbor  | neighbor of        | n hops     | yes       |
   |         | addresses | originator and     |            |           |
   |         | ,         | receiver           |            |           |
   |         | originato |                    |            |           |
   |         | r address |                    |            |           |
   |         |           |                    |            |           |
   | PDAD-eN | neighbor  | neighbor of        | n hops     | no        |
   | H       | addresses | originator and     |            |           |
   |         | ,         | neighbor           |            |           |
   |         | originato |                    |            |           |
   |         | r address |                    |            |           |
   +---------+-----------+--------------------+------------+-----------+

4.11.  Detecting Sequence Number Wrap-arounds

   Wrap-arounds occur when the sequence number value reaches SN_MAX and,
   after another incrementation, starts again from 0.  Wrap-around
   events are rare if SN_MAX is high and the sequence numbers are
   initialized to a low value.  If only unique addresses exist in the
   network and a message dissemination time of T_D as well as a maximum
   sequence number increase rate of SN_RATE is assumed, the maximum
   difference of the sequence number value from receiver and sender
   point of view is SN_THRES=SN_RATE*T_D. Consequently, a wrap-around
   can only be the reason for a sequence number inconsistency, if the
   lower sequence number value s1 is smaller than SN_THRES and the
   higher sequence number value s2 is bigger than SN_MAX-SN_THRES+s1.

4.12.  Support for Multi-Subnet MANET Architecture

   The descriptions in this document assumes a single-subnet MANET
   architecture, but a multi-subnet MANET architecture as proposed in
   [9] is supported as well.  According to the multi-subnet
   architecture, all MANET routers are assumed to configure their MANET
   router's OLSR interfaces (which is a loopback interface) with a
   unique subnet prefix.  Assuming that the interface is configured with
   an address from this prefix, the mechanisms in this document can be
   used to ensure the uniqueness of the subnet prefix in the network by



Weniger & Mase          Expires December 25, 2006              [Page 14]

Internet-Draft                    PDAD                         June 2006


   additionally masking the host part of the address.  In case all OLSR
   interfaces use the same host part, the masking is not necessary.

















































Weniger & Mase          Expires December 25, 2006              [Page 15]

Internet-Draft                    PDAD                         June 2006


5.  Conflict Resolution and Related Issues

5.1.  Conflict Resolution

   If an algorithm detects a conflict of the receivers's address, the
   node changes its IP address in order to resolve the conflict.  If a
   conflict is detected by an intermediate node, the conflicting nodes
   must somehow be informed about the conflict so that they are able to
   change their address.  This document described two options for
   conflict notification.

5.1.1.  Option A

   This option requires sending a dedicated message via unicast to the
   duplicate address.  The format for this message is specified in
   Section 6.  The destination address is set to the conflicting
   address.  The very conflicting node that caused the inconsistent
   routing information in the message triggering the conflict detection
   should change its address.  To achieve that, the message should be
   sent towards the source address in the IP header of the received
   routing protocol message that triggered the conflict detection.  This
   node then uses its routing table as usual to forward the message to
   the correct conflicting node.  Controlling the next hop towards the
   conflicting address can be done by using IPv4 loose source routing,
   IPv6 routing header, or IPv4/IPv6 tunneling.  How this is exactly
   done is TBD.

5.1.2.  Option B

   This option informs all nodes in the network about a detected address
   conflict by adding conflicting addresses to TC and HELLO messages or
   marking duplicate addresses as such.  It was first proposed in [11].
   How the marking is exactly done is TBD.

5.2.  Preventing Routing Table Contamination

   To prevent the contamination of the routing table with false routing
   information emerging from an address conflict, information about
   duplicate addresses MUST NOT be used for calculating routes.  If
   option A is used, a TC message that was used to detect the conflict
   must be ignored for routing table calculation or must not be
   forwarded, so that the routing tables in other nodes are not
   contaminated.  If option B is used, TC messages are forwarded, but
   addresses marked as duplicate in the message MUST be ignored for
   routing table calculation.






Weniger & Mase          Expires December 25, 2006              [Page 16]

Internet-Draft                    PDAD                         June 2006


5.3.  Handling Address Changes

   Care must be taken when a node changes its IP address, because the
   bidirectional link states and the MPR selection states of the OLSR
   protocol daemon are based on the context of the old address.  Hence,
   a node has to set all its link states to asymmetric and remove all
   addresses from its MPR selector set.  Without these modifications,
   PDAD-NH would immediately detect a conflict of the new address even
   if it is unique.










































Weniger & Mase          Expires December 25, 2006              [Page 17]

Internet-Draft                    PDAD                         June 2006


6.  Message Formats

6.1.  Conflict Resolution Message

   The message is encapsulated in an OLSR packet header.  The message
   only contains the conflicting address.  The message is send to the
   conflicting address over the last forwarder of the very routing
   protocol message that triggered the conflict detection.  This can be
   done by IP tunneling, IPv6 routing header or IPv4 loose source
   option.  Message type is TBD.

          0                   1                   2                   3
          0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
         +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
         |                     Conflicting Address                       |
         +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

6.2.  Changes to TC and HELLO Message

   How duplicate addresses are added and marked in TC and HELLO messages
   is TBD.






























Weniger & Mase          Expires December 25, 2006              [Page 18]

Internet-Draft                    PDAD                         June 2006


7.  Security Considerations

   TBD
















































Weniger & Mase          Expires December 25, 2006              [Page 19]

Internet-Draft                    PDAD                         June 2006


8.  References

8.1.  Normative References

   [1]  Bradner, S., "Key words for use in RFCs to Indicate Requirement
        Levels", BCP 14, RFC 2119, March 1997.

   [2]  Clausen, T. and P. Jacquet, "Optimized Link State Routing
        Protocol (OLSR)", RFC 3626, October 2003.

   [3]  Singh, S., "Address autoconfiguration for MANETs: definition and
        problem statement", draft-singh-autoconf-adp-03 (work in
        progress), March 2006.

8.2.  Informative References

   [4]   Narten, T. and R. Draves, "Privacy Extensions for Stateless
         Address Autoconfiguration in IPv6", RFC 3041, January 2001.

   [5]   Droms, R., "Dynamic Host Configuration Protocol", RFC 2131,
         March 1997.

   [6]   Droms, R., Bound, J., Volz, B., Lemon, T., Perkins, C., and M.
         Carney, "Dynamic Host Configuration Protocol for IPv6
         (DHCPv6)", RFC 3315, July 2003.

   [7]   Cheshire, S., Aboba, B., and E. Guttman, "Dynamic Configuration
         of IPv4 Link-Local Addresses", RFC 3927, March 2005.

   [8]   Thomson, S. and T. Narten, "IPv6 Stateless Address
         Autoconfiguration", RFC 2462, December 1998.

   [9]   Thaler, D., "Multi-Subnet MANETs",
         draft-thaler-autoconf-multisubnet-manets-00 (work in progress),
         February 2006.

   [10]  Jelger, C., "MANET Local IPv6 Addresses",
         draft-jelger-autoconf-mla-00 (work in progress), April 2006.

   [11]  Mase, K. and C. Adjih, "No Overhead Autoconfiguration OLSR",
         draft-mase-manet-autoconf-noaolsr-01 (work in progress),
         April 2006.

   [12]  Baccelli, E., "OLSR Passive Duplicate Address Detection",
         draft-clausen-olsr-passive-dad-00 (work in progress),
         July 2005.

   [13]  Mase, K., "A common framework for autoconfiguration of stand-



Weniger & Mase          Expires December 25, 2006              [Page 20]

Internet-Draft                    PDAD                         June 2006


         alone ad hoc networks", draft-mase-autoconf-framework-01 (work
         in progress), February 2006.

   [14]  Clausen, T., "The Optimized Link-State Routing Protocol version
         2", draft-clausen-manet-olsrv2-01 (work in progress),
         September 2005.

   [15]  Perkins, C. and I. Chakeres, "Dynamic MANET On-demand (DYMO)
         Routing", draft-ietf-manet-dymo-04 (work in progress),
         March 2006.

   [16]  Weniger, K., "PDAD-OLSR: Passive Duplicate Address Detection
         for OLSR", draft-weniger-autoconf-pdad-olsr-00 (work in
         progress), February 2006.

   [17]  Weniger, K., "PACMAN: Passive Autoconfiguration for Mobile Ad
         hoc Networks", IEEE Journal of Selected Areas of Communications
         (JSAC), Vol. 23 No. 3, March 2005.

   [18]  Weniger, K., "Address Autoconfiguration in Mobile Ad Hoc
         Networks: Current Approaches and Future Directions", IEEE
         Network Magazine , July 2004.

   [19]  Weniger, K., "Passive Duplicate Address Detection in Mobile Ad
         hoc Networks", IEEE Wireless Communications and Networking
         Conference (WCNC), New Orleans, USA, March 2003.

























Weniger & Mase          Expires December 25, 2006              [Page 21]

Internet-Draft                    PDAD                         June 2006


Appendix A.  Illustration of PDAD Algorithms

A.1.  Notation

   Node "A" and its OLSR protocol daemon states are depicted with
   "A(address,sequence number,{neighbor interface address 1, neighbor
   interface address 2,...})".  Non-relevant values as well as broadcast
   and multicast addresses are represented by "*".  Neighboring nodes
   are connected with dashes (e.g., "A()----B()"), nodes that are not
   necessarily neighbors with dashes and points (e.g., "A()-...-B()").
   The notation for addresses in the IP header is "[src->dst]".  TC
   messages are depicted with "TC(originator address, message sequence
   number, {neighbor interface address 1, neighbor interface address
   1,...})" (HELLO messages accordingly with "HE(..)"). "#(X)" denotes
   that the node has detected a conflict of address X.

A.2.  PDAD-SA

   An example scenario is given in Figure 1.  Node A is configured with
   address 1 and sends a TC (or HELLO) message.  Node B is a neighbor of
   node A and is configured with the same address 1.  Upon receiving the
   message and comparing the IP source address with its own address, it
   detects a conflict of its own address.


    ----------       ----------
   |A(1,*,{*})|-----|B(1,*,{*})|
    ----------       ----------
   [1->*]
   TC(1,*,{*}) ->
                    #(1)



   Figure 1: Example of PDAD-SA

A.3.  PDAD-SN

   An example scenario is given in Figure 2.  Node A with address 1
   sends a TC message.  Node B is located somewhere in the network and
   is configured with the same address 1.  Upon receiving the TC
   message, node B compares originator address and sequence number with
   its own address and sequence number counter.  Since the addresses are
   equal and the sequence number in the message is higher than its own
   counter, it detects the conflict of its own address (it is assumed
   that node B has checked that a wrap-around cannot be the reason for
   the sequence number inconsistency).




Weniger & Mase          Expires December 25, 2006              [Page 22]

Internet-Draft                    PDAD                         June 2006


    -----------       -----------
   |A(1,90,{*})|-...-|B(1,40,{*})|
    -----------       -----------
   [1->*]
   TC(1,90,{}) ->
                     #(1)



   Figure 2: Example of PDAD-SN

A.4.  PDAD-SND

   An example scenario is given in Figure 3.  Node A with address 1
   sends a TC message.  Its message sequence number counter value is 5.
   Node C is configured with the same address 1, but its message
   sequence number counter value is 2000.  After receiving the TC
   message sent by node A, node B stores the information contained in
   the message.  When the TC message sent by node C is received by node
   B, it compares the sequence number with the sequence number of the
   last TC message received from the same originator address.  Assuming
   a threshold SDNTHRES lower than 1995, it detects a conflict of
   address 1.


    ----------       ----------       -------------
   |A(1,5,{*})|-...-|B(*,*,{*})|-...-|C(1,2000,{*})|
    ----------       ----------       -------------
   [1->*]
   TC(1,5,{}) ->
                                     [1->*]
                                  <- TC(1,2000,{})
                    #(1)


   Figure 3: Example of PDAD-SND

A.5.  PDAD-SNE

   An example scenario is given in Figure 4.  Node A with address 1
   sends a TC message.  Its message sequence number counter value is 5
   and the neighbor interface addresses are 3 and 4.  Node C is
   configured with the same address 1 and has the same message sequence
   number counter value, but the neighbor interface addresses are 6 and
   7.  After receiving the TC message sent by node A, node B stores the
   information in the message.  When the TC message sent by node C is
   received by node B, it compares the sequence number with the sequence
   number of the last TC message received from the same originator



Weniger & Mase          Expires December 25, 2006              [Page 23]

Internet-Draft                    PDAD                         June 2006


   address.  Since they are equal, it compares the neighbor interface
   addresses.  Node B detects a conflict of address 1, because at least
   one neighbor interface address is different.


    ------------       ----------       ------------
   |A(1,5,{3,4})|-...-|B(*,*,{*})|-...-|C(1,5,{6,7})|
    ------------       ----------       ------------
   [1->*]
   TC(1,5,{3,4}) ->
                                     [1->*]
                                  <- TC(1,5,{6,7})
                    #(1)


   Figure 4: Example of PDAD-SNE

A.6.  PDAD-SNI

   An example scenario is given in Figure 5.  Node A with address 1 has
   a message sequence number counter value of 5.  Node B is a neighbor
   of node A and node C is a neighbor of node B. Node C is also
   configured with address 1.  Its message sequence number counter value
   is 4.  After receiving the HELLO message sent by node A, node B
   stores the information contained in the message.  After the HELLO
   message sent by node C is received by node B, node B compares the
   sequence number with the sequence number in the last HELLO message
   received from the same originator address.  Since the second HELLO
   message has a lower sequence number, node B detects a conflict of
   address 1 (it is assumed that node B has checked that a wrap-around
   cannot be the reason for the sequence number inconsistency).


    ----------       ----------       ----------
   |A(1,5,{*})|-----|B(*,*,{*})|-----|C(1,4,{*})|
    ----------       ----------       ----------
   [1->*]
   HE(1,5,{}) ->
                                     [1->*]
                                  <- HE(1,4,{})
                    #(1)


   Figure 5: Example of PDAD-SNI







Weniger & Mase          Expires December 25, 2006              [Page 24]

Internet-Draft                    PDAD                         June 2006


A.7.  PDAD-NH

   An example scenario is given in Figure 6.  Node A has address 1 and a
   Neighbor History (NH) cache containing the addresses 4 and 5.  Node B
   is located somewhere in the network and is configured with address 2.
   A Node C is a neighbor of node B and is also configured with address
   1.  Node B sends a TC message.  Upon receiving the message, node A
   notices that its own address is part of the neighbor interface
   addresses of the TC message.  Hence, it checks whether the originator
   address 2 has recently been a symmetric neighbor by consulting its NH
   table.  Since the check is negative, a conflict of address 1 is
   detected.


    ----------       ------------       ----------
   |A(1,*,{*})|-...-|B(2,*,{1,*})|-----|C(1,*,{*})|
   |(NH={4,5})|     |            |     |          |
    ----------       ------------       ----------
                      [2->*]
                   <- TC(2,*,{1,*})
   #(1)


   Figure 6: Example of PDAD-NH

A.8.  PDAD-LS

   An example scenario is given in Figure 7.  Node A has address 1 and a
   Neighbor History (NH) cache containing the addresses 4 and 5.  Node B
   is located somewhere in the network, is also configured with address
   1, and sends a TC message.  Upon receiving the message, node A
   notices that its own address is equal to the originator address.
   Hence, it checks whether at least one of the neighbor interface
   addresses has not recently been a neighbor by consulting its NH
   table.  Since this is the case, a conflict of address 1 is detected.


    ----------       ------------
   |A(1,*,{*})|-...-|B(1,*,{2,3})|
   |(NH={4,5})|     |            |
    ----------       ------------
                    [1->*]
                 <- TC(1,*,{2,3})
   #(1)


   Figure 7: Example of PDAD-LS




Weniger & Mase          Expires December 25, 2006              [Page 25]

Internet-Draft                    PDAD                         June 2006


A.9.  PDAD-eNH

   An example scenario is given in Figure 8.  Node A has address 1 and a
   Neighbor History (NH) cache containing the addresses 2 and 5.  Node B
   is a neighbor of node A and is configured with address 2.  Node C is
   located somethere in the network and has the address 3.  Node D is
   neighbor of node C and is also configured with address 1.  After node
   A has sent a HELLO message, Node C sends a TC message.  Upon
   receiving the messages, node B notices that a neighbor interface
   address in the TC message is equal to the address of one of its
   neighbors (1).  It then checks the neighbor interface addresses of
   this neighbor (1) as learned from the last HELLO message from this
   address and notices that the originator address of the TC message (3)
   is not part of this set (2).  Hence, it concludes that an address
   conflict may exist.  It marks and forwards the TC message even if it
   is not elected as MPR node for this TC message.  Node A receives the
   TC message and detects the conflict after applying the PDAD-NH
   algorithm (since address 3 is not part of node A's NH table).


    ----------       ------------       ------------       ----------
   |A(1,*,{2})|-----|B(2,*,{1,*})|-...-|C(3,*,{1,*})|-----|D(1,*,{*})|
   |(NH={2,5})|     |            |     |            |     |          |
    ----------       ------------       ------------       ----------
   [1->*]
   HE(1,*,{2}) ->
                                       [3->*]
                                    <- TC(3,*,{1,*}) ->
                    [2->*]
                 <- TC'(3,*,{1,*})
   #(1)


   Figure 8: Example of PDAD-eNH

A.10.  Effects of Address Conflicts on MPR Selection

   Address conflicts within 4 hops distance may influence MPR selection
   and may lead to limited dissemination of TC messages.  For example,
   in the scenario shown in Figure 9, node C would not forward TC
   messages received by node D and vice versa, since both nodes assume
   that they don't have 2-hop-neighbors (only a 1-hop-neighbor with
   address 2).  The network is virtually partitioned with respect to TC
   message dissemination.  This may be a problem for PDAD algorithms
   based on TC messages, for instance, PDAD-NH or PDAD-SN cannot detect
   the conflict of address 1 in the example scenario.  However, all
   conflicts within 4 hops can be detected with the combination of
   algorithms proposed in this draft.  After resolving these conflicts,



Weniger & Mase          Expires December 25, 2006              [Page 26]

Internet-Draft                    PDAD                         June 2006


   TC messages are again disseminated correctly and conflicts with more
   than 4 hops between the conflicting nodes can be detected and
   resolved.  In the example scenario, the conflict of address 2 between
   node B and node E can be detected by PDAD-eNH.  After this conflict
   has been resolved, the conflict of address 1 between node A and F can
   be detected, e.g., by PDAD-SN or PDAD-NH.  See [17] for more details
   about this problem.


    ----       ----       ----       ----       ----       ----
   |A(1)|-...-|B(2)|-----|C(3)|-----|D(4)|-----|E(2)|-...-|F(1)|
    ----       ----       ----       ----       ----       ----


   Figure 9: Example of MPR selection influenced by address conflict




































Weniger & Mase          Expires December 25, 2006              [Page 27]

Internet-Draft                    PDAD                         June 2006


Authors' Addresses

   Kilian A. Weniger
   Panasonic R&D Center Germany
   Monzastr. 4c
   Langen  63225
   Germany

   Phone: +49 6103 766 137
   Email: kilian.weniger@eu.panasonic.com


   Kenichi Mase
   Niigata University
   Ikarashi
   Niigata-shi  950-2181
   Japan

   Phone: +81 25 262 7446
   Email: mase@ie.niigata-u.ac.jp































Weniger & Mase          Expires December 25, 2006              [Page 28]

Internet-Draft                    PDAD                         June 2006


Intellectual Property Statement

   The IETF takes no position regarding the validity or scope of any
   Intellectual Property Rights or other rights that might be claimed to
   pertain to the implementation or use of the technology described in
   this document or the extent to which any license under such rights
   might or might not be available; nor does it represent that it has
   made any independent effort to identify any such rights.  Information
   on the procedures with respect to rights in RFC documents can be
   found in BCP 78 and BCP 79.

   Copies of IPR disclosures made to the IETF Secretariat and any
   assurances of licenses to be made available, or the result of an
   attempt made to obtain a general license or permission for the use of
   such proprietary rights by implementers or users of this
   specification can be obtained from the IETF on-line IPR repository at
   http://www.ietf.org/ipr.

   The IETF invites any interested party to bring to its attention any
   copyrights, patents or patent applications, or other proprietary
   rights that may cover technology that may be required to implement
   this standard.  Please address the information to the IETF at
   ietf-ipr@ietf.org.


Disclaimer of Validity

   This document and the information contained herein are provided on an
   "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS
   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.


Copyright Statement

   Copyright (C) The Internet Society (2006).  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.


Acknowledgment

   Funding for the RFC Editor function is currently provided by the
   Internet Society.




Weniger & Mase          Expires December 25, 2006              [Page 29]