IETF MANET Working Group                                    T. Ramrekha
Internet-Draft                                             E. Panaousis
Intended status: Experimental                                 G. Millar
Expires: August 2010                                         C. Politis
                                                     WMN Research Group
                                             Kingston University London
                                                           FEB 24, 2010


  ChaMeLeon (CML): A hybrid and adaptive routing protocol for Emergency
                              Situations.
                      draft-ramrekha-manet-cml-00.txt


Status of this Memo

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

   This document may contain material from IETF Documents or IETF
   Contributions published or made publicly available before November
   10, 2008. The person(s) controlling the copyright in some of this
   material may not have granted the IETF Trust the right to allow
   modifications of such material outside the IETF Standards Process.
   Without obtaining an adequate license from the person(s) controlling
   the copyright in such materials, this document may not be modified
   outside the IETF Standards Process, and derivative works of it may
   not be created outside the IETF Standards Process, except to format
   it for publication as an RFC or to translate it into languages other
   than English.

   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




Ramrekha et al.        Expires August 24, 2010                [Page 1]


 Internet-Draft             ChaMeLeon (CML)               February 2010


   This Internet-Draft will expire on August 24, 2010.

Copyright Notice

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

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

Abstract

   This document describes the ChaMeLeon (CML) routing protocol
   designed for Mobile Ad hoc NETworks (MANETs) supporting emergency
   communications. CML is a hybrid and adaptive routing protocol
   operating within a defined disaster area denoted as the Critical
   Area (CA). The main concept behind CML is the adaptability of its
   routing mechanisms towards changes in the physical and logical state
   of a MANET. For autonomous emergency communications, there is a
   likelihood that the network size will vary whenever more rescuers
   join or leave the network. In addition, battery exhaustion of
   lightweight mobile communication devices used by rescuers could
   stipulate another reason for changes in the network size. Hence,
   this version of CML adapts its routing behavior according to changes
   in the network size within a pre-defined CA. For small networks, CML
   routes data proactively using the Optimized Link State Routing
   (OLSR) protocol whereas for larger networks it utilizes the reactive
   Ad hoc On-Demand Distance Vector (AODV) Routing protocol so that
   overall routing performance is improved. These transitions occur via
   the CML oscillation phase. This document focuses on the description
   of the processes involved in the CML Adaptive module, CML
   Oscillation phase and transition between phases.

Table of Contents


   1. Introduction ................................................ 3
   2. Conventions used in this document............................ 4
      2.1. CML Terminology......................................... 4
   3. Applicability ............................................... 7
   4. Protocol Overview ........................................... 8
      4.1. Adaptive Module......................................... 8
         4.1.1. Monitor function................................... 8


Ramrekha et al.        Expires August 24, 2010                [Page 2]


 Internet-Draft             ChaMeLeon (CML)               February 2010


         4.1.2. Adapt function..................................... 9
      4.2. O-phase ............................................... 10
   5. Protocol Operation ......................................... 11
      5.1. P-phase ............................................... 12
      5.2. R-phase ............................................... 12
      5.3. O-phase ............................................... 12
         5.3.1. The Oscillation Problem........................... 12
         5.3.2. Operation ........................................ 12
   6. CML Packet and Message Formats.............................. 15
      6.1. Packet Format ......................................... 15
      6.2. Change Phase (CP) Message.............................. 16
      6.3. Hop Count Request (HCReq) Message...................... 16
      6.4. Hop Count Request (HCRep) Message...................... 16
   7. CML tables ................................................. 17
      7.1. CML Change Phase table................................. 17
   8. CML Timers ................................................. 17
      8.1. Oscillation timer...................................... 17
   9. Constants .................................................. 17
      9.1. Network Threshold Values............................... 17
      9.2. Oscillation Interval (Osc_Interval).................... 18
      9.3. Parameter Values....................................... 18
   10. Message Emission and Jitter................................ 19
   11. IPv6 Considerations........................................ 19
   12. Security Considerations.................................... 19
   13. IANA Considerations........................................ 20
   14. Conclusions ............................................... 20
   15. References ................................................ 21
      15.1. Normative References.................................. 21
      15.2. Informative References................................ 21
   16. Acknowledgments ........................................... 22

1. Introduction

   This protocol is an adaptive and hybrid routing protocol for MANETs
   designed to be used by rescuers within the realm of extreme
   emergency communications. It consists of 3 phases of operation
   namely Proactive, Oscillation and Reactive. The Proactive (p-) and
   Reactive (r-) phases operate in the same way as the core functions
   of [3] and [5] respectively and are discrete from each other. The
   Oscillation phase (o-phase), therefore, acts as an intermediate
   between p- and r-phases and decides on whether a shift from p-phase
   to r-phase is appropriate based on criteria defined in section 4.2.
   The main purpose of the o-phase is to avoid the oscillation problem
   as described in section 5.3. In addition, ChaMeLeon (CML) introduces
   an Adaptive module which runs in parallel to and is accessible by
   all phases of operation. The module is designed to monitor relevant
   MANET characteristics, detect a certain quantitative threshold


Ramrekha et al.        Expires August 24, 2010                [Page 3]


 Internet-Draft             ChaMeLeon (CML)               February 2010


   exhibited by specific monitored characteristics and in such an
   event, transfer the control to the o-phase.

   This version of CML monitors the number of nodes in MANETs within a
   defined Critical Area (CA) where extreme emergency rescue operations
   take place. In such a situation, rescuers tend to join or leave the
   network according to the severity of the situation. CML aims to
   adapt its routing mechanism to the size of such MANETs, thus
   enhancing overall efficiency and effectiveness (both terms defined
   in [4]) as compared to [3] and [5]. CML uses [5], [3], [8], [10]
   and, optionally, [1]. CML makes no assumptions about the underlying
   link layer.

2. Conventions used in this document

   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 RFC-2119 [1].

2.1. CML Terminology

   This section defines terminology associated with CML that is not
   already defined in or that differs from the meaning of the
   terminology in [8], [5] and [3].

   o    Node - A MANET router that implements the CML protocol as
      specified in this document.

   o    CML interface - A network device that participates in a MANET
      that runs CML. A node may have several CML interfaces. Each
      interface SHOULD be assigned a unique IP address. Each interface
      SHOULD have a unique IP address.

   o    Non CML interface - A network device that does not participate
      in a MANET that runs CML. A node MAY have several non CML
      interfaces.

   o    Single CML interface node - A node in a MANET that has only
      one CML interface.

   o    Multiple CML interface node - A node in a MANET that has more
      than one CML interface.







Ramrekha et al.        Expires August 24, 2010                [Page 4]


 Internet-Draft             ChaMeLeon (CML)               February 2010


   o    Link - A pair of CML interfaces, from two different nodes,
      within the same radio range that can communicate directly with
      each other. A node has a link to another node when at least one
      of its interfaces has a link to one of the interfaces of the
      other node.

   o    Symmetric link - A verified bi-directional link between two
      CML interfaces.

   o    Asymmetric link - A verified link between two CML interfaces
      in one direction only.

   o    Main address - The main address of a node, to be used in CML
      packet as the "originator address" for all control messages
      generated by the node. It MUST be the address of one of the CML
      node interfaces.

   o    Neighbor node - A node X is a neighbor node of node Y if node
      Y can hear node X.

   o    MANET Context - A set of characteristics describing the MANET
      and its environment as defined in [4]. This includes node
      mobility levels, small and large node groups as well as
      technological and environmental constraints such as limited
      battery life of devices and bandwidth limitations of wireless
      links.

   o    Source - A node that initiates data communication in the
      network or a node which generates control packets.

   o    Sink - A node that is the intended recipient of data sent by
      source nodes.

   o    Router - A node that implements the CML protocol. All
      collaborating nodes are potential routers. Router nodes are
      intermediate nodes located on routes between source and
      destination nodes. They are responsible for forwarding packets
      according to the CML routing algorithm.

   o    Source address - An address that is unique (within the MANET)
      to each individual source node. A node MUST select an originator
      address; it MAY choose one of its interface addresses as its
      originator address.

   o    Destination address - An address that is unique (within the
      MANET) to each individual sink node.



Ramrekha et al.        Expires August 24, 2010                [Page 5]


 Internet-Draft             ChaMeLeon (CML)               February 2010


   o    Stable phases - The set of CML routing phases that operates
      efficiently for a given MANET context. In this CML version, r-
      phase and p-phase are the only stable phases.

   o    R-phase - A routing phase where the protocol adopts routing
      mechanisms from [3].

   o    P-phase - A routing phase where the protocol adopts routing
      mechanisms from [5].

   o    CML Oscillation phase - A routing phase where the protocol
      continues to operate in the current stable phase. It also checks
      whether the network size or hop threshold has been genuinely
      exceeded or whether node oscillation has taken place. It also
      alerts neighbors whenever it decides that the network has to
      shift phases. This phase is initiated by the CML Adaptive module.

   o    Phase-shift - A shift from r-phase routing to p-phase routing
      via the o-phase.

   o    Oscillation - An event where at least one node regularly joins
      and leaves a MANET so that the CML Network Size Threshold is each
      time exceeded by such activity.

   o    CML Adaptive module - A module which encompasses the Monitor
      and Adapt functions. This module runs in parallel to and is
      accessible by all phases. It is used to determine the number of
      nodes in the network and checks whether this number has breached
      Network Size Limits. It also changes the node phase to o-phase if
      the threshold is exceeded.

   o    CML Network Size Threshold (NST) - A threshold for the number
      of nodes in the network. Below the NST point, p-phase routing is
      more efficient and effective (both terms defined in [4]) than the
      r-phase routing. Beyond the NST point, r-phase routing
      outperforms p-phase. The NST varies according to the context of
      the MANET such as transmission range of the devices and node
      density (for a given critical area). NST is exceeded in the r-
      phase when the number of nodes is less than NST. In the p-phase,
      this occurs when the number of nodes is greater than NST.

   o    CML Network Size Limit (NSL) - The NSL is a couple of values
      which deviate by an equal amount greater/less than the NST. The
      Upper value of NST is denoted by (U-NST) and the Lower value by
      (L-NST). The deviation value from Network Size Threshold is
      selected based on node oscillation properties.



Ramrekha et al.        Expires August 24, 2010                [Page 6]


 Internet-Draft             ChaMeLeon (CML)               February 2010


   o    CML Change Phase (CP) packet - A control packet unique to CML
      that is sent during the o-phase to alert other nodes in the
      network that a phase-shift has occurred locally. In p-phase mode,
      CML CP packets are only forwarded by MPR nodes whereas in r-phase
      mode, the CP packets are flooded by all nodes in an RREQ flooding
      fashion.

   o    CML Change Phase (CP) Table - The CP Table is used to make
      sure that the originator sequence number and originator IP
      information of processed CML control packets are available for a
      given timeout period. This will help in ensuring loop free
      communication.

   o    Network Hop Threshold (NHT) - A hop count value which
      indicates that the NST has been reached. The relationship between
      NHT and NST is defined in section 9.1.

   o    CML Hop Count Request (HCReq) Packet - A CML control packet
      sent to probe whether the Network Hop Threshold (NHT) has been
      exceeded.

   o    CML Hop Count Reply (HCRep) Packet - A CML control packet sent
      as a unicast reply to a HCReq packet. When it is received by the
      originator node, it indicates that the Network Hop Threshold
      (NHT) has not been exceeded.

3. Applicability

   This protocol has been designed with Ad hoc Communications in
   extreme emergency scenarios in mind, where rescuers are equipped
   with lightweight communication devices. The autonomous nature of
   MANETs is very suitable for extreme emergency communications within
   the CA because communication infrastructures in such disaster sites
   are usually incapacitated. Also, in such a context, the number of
   MANET nodes varies depending on the severity of the rescue
   operations. CML has the ability to adapt its routing behavior to
   changes in MANET size. Hence, it is a more suitable routing
   alternative than pure routing approaches for small, large as well as
   variable sized MANETs operating in a defined CA. A MANET including
   but not limited to such unique contextual considerations is defined
   as an emergency MANET (eMANET) in [6]. Future versions of CML will
   include functions in the Adaptive module to adapt to some of the
   other eMANET contexts such as mobility and those described in [4].
   In this document, it is assumed that nodes are uniformly distributed
   in the CA so that rescuers can cover the maximum CA.

   In addition, CML MAY also be used for general purpose MANETs.


Ramrekha et al.        Expires August 24, 2010                [Page 7]


 Internet-Draft             ChaMeLeon (CML)               February 2010


4. Protocol Overview

   This protocol is designed to work as a hybrid and adaptive routing
   protocol for eMANETs. The normal mode of operation is under one of
   the stable phases. The default stable operating phase is the p-
   phase. This section describes the various processes and structures
   introduced by CML. Thus, it focuses on the interaction between the
   Adaptive Module and the o-phase as well as the operation of the o-
   phase. The routing behaviors of the r-phase and p-phase have been
   described in [3] and [5] respectively.

4.1. Adaptive Module

4.1.1. Monitor function

   When a control message is received at a CML interface, the node MUST
   call the monitor function of the Adaptive module after regular
   control message processing by the stable phase, as described in [3]
   and [5]. The current mode of operation is indicated by passing a
   phase specific flag to the function, i.e. a "Pphase" flag for p-
   phase operation and "Rphase" flag for R-phase operation. The monitor
   function, when called, MUST check the number of nodes in the
   network. This is accomplished differently depending on the current
   stable phase of operation.

   In the p-phase, this task consists of calculating the number of
   reachable hosts from the routing table that is defined in [5]. This
   calculation is done by counting the number of rows in the routing
   table. Each row includes fields of; possible destination nodes, the
   next hop to reach the destination as specified in the possible
   destination field and its distance from the current source node.
   These field values are computed using periodical Topology Control
   (TC) and HELLO message broadcasts by each node in the network. If
   the number of nodes is found to exceed the NST, the monitor function
   must call the Adapt function with the phase flag set as "Pphase" and
   the context flag set as "Nsize" (for Network Size). The last
   argument passed is the call flag and denotes the source of the call.
   In this case the call flag is set as "Monitor".

   In the r-phase, the number of nodes in the network is estimated
   using the maximum value of the hop count from a source node to a
   destination. As defined in [3], a source finds a route to a
   destination 'on-demand' by flooding a Route Request (RReq) packet
   throughout the network using an expanding ring approach until a RRep
   is received from the destination. The monitor function in the source
   node must use this RRep message to obtain the value of Hop Count
   (HC) towards the destination node. It then compares this with the


Ramrekha et al.        Expires August 24, 2010                [Page 8]


 Internet-Draft             ChaMeLeon (CML)               February 2010


   NHT, which is calculated according to the relationship defined in
   section 9.1. The monitor function MUST act as follows:

   1. If HC in RRep is greater or equal to NHT, it decides that the NST
      is not exceeded.

   2.   If HC in RRep is less than the NHT, the data packets are
      transmitted through the established route. After data
      transmission, the CML Hop Count Request (HCReq) packet described
      in section 6.3. will be generated and flooded in the network to
      probe for the network HC (as opposed to destination HC). The HC
      is said to be less than the NHT, if after 4*NET_TRAVERSAL_TIME,
      no HCRep has been received. If the HC is less than the NHT, the
      monitor function decides that the r-phase NST (calculated using
      the relationship in section 9.1. ), has been exceeded and calls
      the Adapt function with the phase flag set as "Rphase", the
      context flag set as "Nsize" and the call flag set as "Monitor".

   If a node receives HCReq, it must first make sure that the sequence
   number of the packet is greater than that stored in the Change Phase
   (CP) table for the same originator address. Then, it checks if the
   TTL = 0. If the latter is true, it MUST store HCReq originator IP
   and packet sequence number information in the CP table and send back
   an HCRep to the originator, as described in section 6.4. Otherwise,
   it decreases the TTL value and floods back the HCReq packet in the
   network. It then generates and floods its own HCReq to probe for the
   HC with TTL value set to NHT. The value of the originator address of
   the original HCReq packet (triggering the probing locally) is stored
   in the CP table along with the sequence number. The message type
   field is set equal to the value of message type "HCReq" as which is
   equal to '9' as mentioned in section 13. If for that particular
   HCReq, an HCRep is received, the node must send an additional HCRep
   to that HCReq originator address.

   If a node receives a CML CP Packet described in section 6.2. , it
   MUST flood the packet in the network after decreasing its TTL count.
   Then, the node MUST call the adapt function from its Adaptive module
   with the current phase flag, the context flag set as "Nsize" and the
   call flag set as "CML_CM".

4.1.2. Adapt function

   The Adapt function, when called by the monitor function makes sure
   one of the following is valid:

   1. The phase flag is set to "Pphase", the context flag is set to
      "Nsize" and the call flag set as "Monitor".


Ramrekha et al.        Expires August 24, 2010                [Page 9]


 Internet-Draft             ChaMeLeon (CML)               February 2010


   2. The phase flag is set to "Rphase", the context flag is set to
      "Nsize" and the call flag set as "Monitor".

   3. The phase flag is set as either "Pphase" or "Rphase", the context
      flag is set as "Nsize" and the call flag is set as "CML_CM".

   If any one of the above cases is true, the Adapt function changes
   operation to o-phase by maintaining the current values of the phase
   flag, context flag and call flag which will be accessed by o-phase
   processes.

   In any other situation, the Adapt function terminates and the
   appropriate stable phase operation is resumed.

4.2. O-phase

   In the o-phase, the o-phase validity time, "Osc_Interval" of the
   oscillation timer described in section 8.1. , is first checked. If
   the timer is still valid, the call for o-phase is ignored and the
   stable phase of routing denoted by the phase flag is resumed. If the
   timer has expired, the o-phase checks the flag values:

   1.   If the phase flag is set to "Pphase", the context flag is set
      to "Nsize" and the call flag set as "Monitor":

      The routing mechanism of p-phase will continue to operate. At the
      same time, the node will check the number of nodes in the network
      as described in section 4. for 2*TC_Intervals (TC_Interval is
      described in [5]). If the number of nodes is then found to be
      greater than NST at least once, the o-phase switches to r-phase
      and resets the oscillation timer. It also generates and floods a
      CML CP Packet. The CP packet includes its address as originator
      address and its incremented sequence number. The CP field value
      of the CML packet is set as "Rphase".

      Otherwise, the node returns to operating in the p-phase.

   2.   If the phase flag is set to "Rphase", the context flag is set
      to "Nsize" and the call flag is set as "Monitor":









Ramrekha et al.        Expires August 24, 2010               [Page 10]


 Internet-Draft             ChaMeLeon (CML)               February 2010


      The routing mechanism of r-phase will continue to operate. At the
      same time, the node will check the HC of the network using two
      more HCReq packets, as described in section 6.3. , waiting for
      4*NET_TRAVERSAL_TIME (NET_TRAVERSAL_TIME is explained in [3])
      each time. If in at least one occurrence, no HCRep is obtained
      for the HCReq with TTL=NHT, it is implied that the network size
      is smaller than the NST. In this case, the o-phase switches to p-
      phase and resets the oscillation timer. It also generates and
      floods a CML CP packet. The CP packet includes its address as
      originator address and its incremented sequence number. The value
      of the CP field in the packet is set to "Rphase".

      Otherwise, stable r-phase routing is resumed.

   3.   If the phase flag is set as either "Pphase" or "Rphase", the
      context flag is set as "Nsize" and the call flag is set as
      "CML_CP":

      The node MUST check the value of the sequence number in the
      packet and compare it to any stored sequence number having the
      same originator address in the CP table. If no match is found n
      the CP table, a new entry is created with the aforementioned
      values obtained from the CP packet before further processing.
      Otherwise, if a match is found and the packet sequence number is
      less than the sequence number stored in the table, the message is
      silently discarded and the node returns to the stable phase
      specified by the phase flag.

   For non-discarded packets, the node MUST check the CP field value in
   the CP packets and compare it with the phase flag:

   1.   If they are equal, the CP packet is silently discarded and the
      node returns to the phase specified by the phase flag.

   2.   If they are not equal, the o-phase changes the operation phase
      to the value specified in the CP field of the CP message and
      resets the oscillation timer.

   In both cases, the CP packets are flooded back in the network.

5. Protocol Operation

   This section describes the behavior CML MUST follow in the p-phase,
   r-phase and o-phase.





Ramrekha et al.        Expires August 24, 2010               [Page 11]


 Internet-Draft             ChaMeLeon (CML)               February 2010


5.1. P-phase

   In the p-phase, the node receives packets with all message types but
   only processes packets with message types 1-4 and routes data
   packets as described in [5]. It also processes packets with message
   types 9-11 as described in this document. In addition, it calls the
   Adaptive module each time a TC routing packet is received.

   In this phase, NST is equal to U-NST to cater for group oscillation
   which is described in section 5.3.1.

5.2. R-phase

   In the r-phase, the node receives packets with all message types but
   processes only packets with message types 5-8 and routes data
   packets as specified in [3]. It also processes packets with message
   types 9-11 as described in this document. In addition, it calls the
   Adaptive module each time it receives a RRep routing packet as a
   source node.

   In this phase, NST is equal to L-NST to cater for group oscillation.

5.3. O-phase

   In this subsection we describe the oscillation problem and the
   operation of the o-phase as a mechanism to counteract oscillation
   effects in eMANETs that use CML. The o-phase can only be initiated
   by the Adaptive module as described in section 4.1. The basic
   operations of the current stable phase still apply in the o-phase.
   However, there are added processes to check for oscillation
   instances.

5.3.1. The Oscillation Problem

   Oscillation occurs when nodes join and leave the network repeatedly
   so that the total number of nodes fluctuates exceeding and returning
   below the NST on a sequential basis. This causes performance
   degradation in CML due to frequent phase shifts. The level of
   oscillation is characterized by the number of nodes that oscillates
   and the frequency of oscillation.

5.3.2. Operation

   The solution to the oscillation problem is twofold. Appropriate NSL
   values (acting as NST) can restrain the effects of group
   oscillations whereas the right "Osc_Interval" value for the
   oscillation timer limits the impact of frequent oscillations.


Ramrekha et al.        Expires August 24, 2010               [Page 12]


 Internet-Draft             ChaMeLeon (CML)               February 2010


   In addition, during the o-phase, a node checks more instances of the
   'number of nodes' count or the network HC (depending on the current
   stable phase of operation) as described in section 4. In this way,
   it can confirm whether the NST or NHT has actually been exceeded.
   Otherwise, it determines that an oscillation has occurred and the
   stable phase of operation is resumed. If the NST is actually
   exceeded, the o-phase resets the oscillation timer and generates CP
   packets. These CP packets are flooded into the network to alert
   neighboring nodes of such a phase shift. The o-phase then shifts to
   the relevant stable phase of operation.

   Furthermore, the o-phase is also responsible for phase shifting if a
   valid CP packet is received from a neighboring node. In such a case,
   it floods back the CP packet in the network. Figure 1 illustrates
   the different modules and phases of the CML protocol along with the
   interactions among them.
































Ramrekha et al.        Expires August 24, 2010               [Page 13]


 Internet-Draft             ChaMeLeon (CML)               February 2010


+--------------------------------------------------------------------+
|+-----------------+   +.....................+   +-----------------+ |
||    P-phase      |   |   Adaptive Module   |   |    R-phase      | |
||                 |1a |                     |1b |                 | |
|| Receive routing |-->|------>Monitor<------|<--| Receive routing | |
|| pkts            |   |   (Phase Flag)      |   | pkts            | |
||                 |   |-Checks if NST or NHT|   |                 | |
|| Receive data    |   | is exceeded         |   | Receive data    | |
|| pkts            |2a | (If yes call Adapt) |2b | pkts            | |
||                 |<--|-(If no return       |-->|                 | |
||                 |   | (2(a) or (b))       |   |                 | |
|| Contact Adaptive|   |                     |   | Contact Adaptive| |
|| Module          |   |      Adapt          |   | Module          | |
||                 |   |(Phase flag,context, |   |                 | |
||                 |   | call)               |   |                 | |
||                 |   |-Initialize O-phase  |   |                 | |
||                 |   | (3)                 |   |                 | |
|+-----------------+   +.....................+   +-----------------+ |
|       .                  |           .                 .           |
|       |5a                |3          |4                |5b         |
|       |                  v           |                 |           |
|+-----------------------------------------------------------------+ |
||                            O-phase                              | |
|| Continue current stable phase of operation                      | |
||                                                                 | |
|| Check Oscillation Timer (If valid go back to stable phase       | |
|| (4)->(2(a)or 2(b))                                              | |
|| Check (context, phase flag and call) values                     | |
||  . If  (Nsize, p-phase, monitor), check node count confirmation | |
||  . If  (Nsize, r-phase, monitor), check hop count confirmation  | |
||  . If  (Nsize, *, CML_CP), check CP packet validity             | |
|| (If they fail, go back to stable phase (4)->(2(a)or 2(b)))      | |
|| Switch to r-phase or p-phase if checks are successful           | |
|| (5(a)or 5(b))                                                   | |
||                                                                 | |
|| Send CP packets to alert neighbors of phase change.             | |
||                                                                 | |
|| Reset Oscillation Timer.                                        | |
|+-----------------------------------------------------------------+ |
+--------------------------------------------------------------------+

                      Figure 1 CML Protocol Overview.







Ramrekha et al.        Expires August 24, 2010               [Page 14]


 Internet-Draft             ChaMeLeon (CML)               February 2010


6.  CML Packet and Message Formats

6.1. Packet Format

   The basic layout of a CML packet is as follows (IP and UDP headers
   are omitted):

       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
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |         Packet Length         |    Packet Sequence Number     |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |  Message Type |     Vtime     |         Message Size          |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                      Originator Address                       |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |  Time To Live |   Hop Count   |    Message Sequence Number    |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                                                               |
      :                            MESSAGE                            :
      |                                                               |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |  Message Type |     Vtime     |         Message Size          |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                      Originator Address                       |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |  Time To Live |   Hop Count   |    Message Sequence Number    |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                                                               |
      :                            MESSAGE                            :
      |                                                               |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      :                                                               :
               (etc.)

   o Packet Length - The length of the CML packet in bytes.

   o Packet Sequence Number - The Packet Sequence Number MUST be
      incremented by one each time a new CML packet is transmitted.

   o Message Type - This field indicates the type of message found in
      the "MESSAGE" section. This could be a CML message or messages
      from [5] or [3].

   The rest of the packet fields are defined in [5].





Ramrekha et al.        Expires August 24, 2010               [Page 15]


 Internet-Draft             ChaMeLeon (CML)               February 2010


6.2. Change Phase (CP) Message

   The Change Phase message format is shown below:

       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

      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                   Reserved                                |CP |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   o    Change Phase (CP) - The CP field represents the phase to which
      the originator node has shifted to and subsequently requests
      neighbor nodes to shift to.

      01-"Rphase"

      10-"Pphase"

   o    Reserved - This field is filled with 0 and ignored at
      reception.

6.3. Hop Count Request (HCReq) Message

   The HCReq message has an empty message body. It can be identified as
   a CML packet with:

   o    Message Type - The value of message type is set to 9.

   o    TTL - The TTL value is set to NHT.

6.4. Hop Count Request (HCRep) Message

   The message format for the HCRep message is:

    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
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                     Destination IP address                    |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                  Destination Sequence Number                  |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+


   o    Destination IP address - Originator IP address in
      corresponding HCReq packet.



Ramrekha et al.        Expires August 24, 2010               [Page 16]


 Internet-Draft             ChaMeLeon (CML)               February 2010


   o    Destination Sequence Number - Originator Sequence Number of
      corresponding HCReq packet.

7. CML tables

7.1. CML Change Phase table

   The CML CP Table fields are listed below:

   o    Originator IP Address - The IP address of the node which
      generated the packet.

   o    Originator Sequence Number - The Sequence number of the
      message that was sent by the node which generated the packet.
      This is incremented monolithically for each message generated by
      a node.

   o    Message Type - The message type value of the message through
      which the table row was populated.

8. CML Timers

8.1. Oscillation timer

   The Oscillation timer is used in the o-phase to prevent phase shifts
   within the time period of "Osc_Interval". This timer prevents phase
   shift due to frequent oscillations.

9. Constants

9.1. Network Threshold Values

   The Network threshold values for CML are described below:

   o    NST - The theoretical Network size threshold "Nt" of a network
      depends on the number of nodes N in the network, the critical
      area A of the network and the radio coverage area of each node.
      NST marks the point after which a reactive routing approach will
      be more effective and efficient compared to a reactive routing
      approach. Below the NST point, proactive routing approaches
      outperform reactive routing approaches.

   o    U-NST - The Upper limit network size threshold "Nu" is given
      by:

      Nu = Nt + Nosc



Ramrekha et al.        Expires August 24, 2010               [Page 17]


 Internet-Draft             ChaMeLeon (CML)               February 2010


      where "Nosc" is the number of nodes in the network which are
      expected to oscillate.

      When operating in the p-phase the actual value of NST is equal to
      "Nu".

   o    L-NST - The Lower limit network size threshold "Nl" is given
      by:

      Nl = Nt - Nosc

      When operating in the r-phase the actual value of NST is equal to
      "Nl".

   o    NHT - The network hop threshold value "Nht" is directly
      proportional to the square root value of the NST:

      Nht = Function (sqrt (Nt))

The optimal values for "Nt", "Nosc", "Nu", "Nl" and "Nht" as well as an
accurate relationship between NST and NHT can be derived through
experimentation and mathematical modeling for a given critical area,
'A' and node coverage radius 'R'.

9.2. Oscillation Interval (Osc_Interval)

   The Osc_Interval is a time period for which no phase shift is
   allowed. While the U-NST and L-NST values cater for group
   oscillations, the Osc_Interval prevents unnecessary phase shift
   overheads due to regular oscillations. Thus, the Osc_Interval SHOULD
   be set according to the time period of node oscillations. The
   optimal value for Osc_Interval can be derived through
   experimentation and mathematical modeling for a given critical area,
   'A' and node coverage radius 'R'.

9.3. Parameter Values

   Parameter values used by the CML protocol and also defined in [3]
   and [5] are:

   Parameter Name           Value
   ----------------------   -----
   NET_DIAMETER             35
   NET_TRAVERSAL_TIME       2 * NODE_TRAVERSAL_TIME * NET_DIAMETER
   NODE_TRAVERSAL_TIME      40 milliseconds
   PATH_DISCOVERY_TIME      2 * NET_TRAVERSAL_TIME


Ramrekha et al.        Expires August 24, 2010               [Page 18]


 Internet-Draft             ChaMeLeon (CML)               February 2010


   HELLO_INTERVAL           2 seconds
   TC_INTERVAL              5 seconds

10. Message Emission and Jitter

   Synchronization of control messages SHOULD be avoided as mentioned
   in [2].

11. IPv6 Considerations

   All the operations and parameters described in this document can be
   used for both IP version 4 and IP version 6. For IPv6 networks, the
   IPv4 addresses in CML packets and messages need to be replaced by
   IPv6 addresses. The packet and message sizes will also increase
   accordingly.

12. Security Considerations

   CML does not specify any special security countermeasures. Although,
   different secure versions of AODV and OLSR have been proposed in the
   literature [11], CML introduces new vulnerabilities. Firstly, any
   malicious node can generate a change phase packet to call the o-
   phase of CML and the routing behaviors will accordingly change. In
   this way, CML will not operate in the proper routing mode and the
   MANET's performance will not be optimal considering the real number
   of nodes in the network. Apart from that, legitimate nodes will
   flood the network with the CML CP packet generating traffic overhead
   within the MANET. Furthermore, a set of malicious nodes that
   coordinate their actions against the CML may periodically come into
   and depart from the network. In this way, CML recognizes that the
   number of nodes in the MANET has changed and oscillates from the
   proactive phase to the reactive or vice-versa. The continuous
   oscillation of CML can result in draining the battery level of the
   emergency devices rapidly. Another version of the above attack is
   launched when malicious nodes change the "hop value" in the CML
   HCReq Packet. In this case, legitimate nodes believe that the size
   of the network has changed and CML oscillates unreasonably. On the
   other hand, if a phase shift should take place (due to a real change
   of the number of nodes) but malicious nodes succeed to drop some or
   all of the Change Phase packets the performance of MANET will not be
   optimized. Therefore, security intelligent approaches have to be
   integrated into CML to avoid the aforementioned attacks and to
   provide eMANET nodes with basic security requirements such as
   confidentiality, authentication, integrity and availability.




Ramrekha et al.        Expires August 24, 2010               [Page 19]


 Internet-Draft             ChaMeLeon (CML)               February 2010


13. IANA Considerations

   The IANA consideration section is required as recommended by [7] and
   [9]. The following values for the corresponding message types would
   be required:



      Message Type             Value
     --------------------      -----

      HELLO_MESSAGE             = 1

      TC_MESSAGE                = 2

      MID_MESSAGE               = 3

      HNA_MESSAGE               = 4

      ROUTE REQUEST (RREQ)      = 5

      ROUTE REPLY   (RREP)      = 6

      ROUTE ERROR   (RERR)      = 7

      ROUTE-REPLY ACK (RREP-ACK)= 8

      HOP COUNT REQUEST (HCREQ) = 9

      HOP COUNT REPLY   (HCREP) = 10

      CHANGE PHASE (CP)         = 11

14. Conclusions

   This I-D introduced the CML routing protocol. In extreme emergency
   situations, rescuers tend to join and/or leave the network
   frequently, thus changing network size. CML is a hybrid protocol
   which combines the functionalities of OLSR and AODV protocols in an
   adaptive manner. The motivation behind CML is the enhancement of the
   overall routing performance for varying size networks. The main
   features of CML include the Adaptive Module, which monitors and
   adapts to the changing network state, and the o-phase which


Ramrekha et al.        Expires August 24, 2010               [Page 20]


 Internet-Draft             ChaMeLeon (CML)               February 2010


   considers the case of node oscillation. Future CML versions will
   augment the Adaptive module and make CML adaptive to additional
   MANET contexts.

   Furthermore, more security aspects of CML will be discussed towards
   the provision of security against adversaries that try to launch
   different types of network layer attacks.

15. References

15.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., Dearlove, C., and B. Adamson, "Jitter
         considerations in MANETs", RFC 5148, February 2008.

   [3]  Perkins, C., Belding-Royer, E., and Das S., "Ad hoc On-Demand
         Distance Vector (AODV) Routing", RFC 3561, July 2003.

   [4]  Macker, J. and S. Corson, "Mobile Ad hoc Networking (MANET):
         Routing Protocol Performance Issues and Evaluation
         Considerations", RFC 2501, January 1999.

   [5]  Clausen, T. and P. Jacquet, "The Optimized Link State Routing
         Protocol", RFC 3626, October 2003.

15.2. Informative References

   [6]  PEACE team, "First draft of the emergency framework" PEACE,
         ICT-SEC-2007.1.7, Deliverable 2.2 (Public), June 2009.

   [7]  Narten, T. and H. Alvestrand, "Guidelines for Writing an IANA
         Considerations Section in RFCs", RFC 5226, BCP 26, May 2008.

   [8]  Clausen, T., Dean, J., Dearlove, C., and Adjih, C.
         "Generalized MANET Packet/Message Format", RFC 5444, February
         2009.

   [9]  Chakeres, I., "IANA Allocations for MANET Protocols", RFC
         5498, March 2009.

   [10] Clausen, T. and C. Dearlove, "Representing multi-value time in
         MANETs", RFC 5497, March 2009.




Ramrekha et al.        Expires August 24, 2010               [Page 21]


 Internet-Draft             ChaMeLeon (CML)               February 2010


   [11] Anjum, F. and Mouchtaris, P. "Security for Wireless Ad Hoc
         Networks", ISBN: 978-0-471-75688-0, John Wiley & Sons, March
         2007.

16. Acknowledgments

   The authors wish to acknowledge the support of the ICT European 7th
   Framework Program and all the partners in PEACE (IP-based Emergency
   Applications and services for next generation networks) project with
   contract number 225654.

   This document was prepared using 2-Word-v2.0.template.dot.

Authors' Addresses

   The following researchers who have contributed to this I-D are
   members of the Wireless Multimedia and Networking (WMN) Research
   Group at Kingston University London:

   Tipu Arvind Ramrekha
   Researcher, WMN Research Group
   Kingston University London
   UK KT1 2EE

   Phone: (+44) 02084177025
   Email: a.ramrekha@kingston.ac.uk

   Emmanouil A. Panaousis
   Researcher, WMN Research Group
   Kingston University London
   UK KT1 2EE

   Phone: (+44) 02084177025
   Email: e.panaousis@kingston.ac.uk














Ramrekha et al.        Expires August 24, 2010               [Page 22]


 Internet-Draft             ChaMeLeon (CML)               February 2010


   Grant P. Millar
   Researcher, WMN Research Group
   Kingston University London
   UK KT1 2EE

   Phone: (+44) 02084177025
   Email: g.millar@kingston.ac.uk

   Christos Politis
   Head of WMN Research Group
   Kingston University London
   UK KT1 2EE

   Phone: (+44) 02084172653
   Email: c.politis@kingston.ac.uk

































Ramrekha et al.        Expires August 24, 2010               [Page 23]