draft-ietf-manet-olsrv2-multipath-00.txt   draft-ietf-manet-olsrv2-multipath-01.txt 
Network Working Group J. Yi Network Working Group J. Yi
Internet-Draft LIX, Ecole Polytechnique Internet-Draft LIX, Ecole Polytechnique
Intended status: Experimental B. Parrein Intended status: Experimental B. Parrein
Expires: February 16, 2015 University of Nantes Expires: March 19, 2015 University of Nantes
August 15, 2014 September 15, 2014
Multi-path Extension for the Optimized Link State Routing Protocol Multi-path Extension for the Optimized Link State Routing Protocol
version 2 (OLSRv2) version 2 (OLSRv2)
draft-ietf-manet-olsrv2-multipath-00 draft-ietf-manet-olsrv2-multipath-01
Abstract Abstract
This document specifies a multi-path extension to the Optimized Link This document specifies a multi-path extension to the Optimized Link
State Routing Protocol version 2 (OLSRv2) to discover multiple State Routing Protocol version 2 (OLSRv2) to discover multiple
disjoint paths, so as to improve reliability of the OLSRv2 protocol. disjoint paths, so as to improve reliability of the OLSRv2 protocol.
The interoperability with OLSRv2 is retained. The interoperability with OLSRv2 is retained.
Status of this Memo Status of this Memo
skipping to change at page 1, line 35 skipping to change at page 1, line 35
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet- working documents as Internet-Drafts. The list of current Internet-
Drafts is at http://datatracker.ietf.org/drafts/current/. Drafts is at http://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress." material or to cite them other than as "work in progress."
This Internet-Draft will expire on February 16, 2015. This Internet-Draft will expire on March 19, 2015.
Copyright Notice Copyright Notice
Copyright (c) 2014 IETF Trust and the persons identified as the Copyright (c) 2014 IETF Trust and the persons identified as the
document authors. All rights reserved. document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents Provisions Relating to IETF Documents
(http://trustee.ietf.org/license-info) in effect on the date of (http://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents publication of this document. Please review these documents
skipping to change at page 2, line 19 skipping to change at page 2, line 19
1.1. Motivation and Experiments to Be Conducted . . . . . . . . 3 1.1. Motivation and Experiments to Be Conducted . . . . . . . . 3
2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 5 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 5
3. Applicability Statement . . . . . . . . . . . . . . . . . . . 5 3. Applicability Statement . . . . . . . . . . . . . . . . . . . 5
4. Protocol Overview and Functioning . . . . . . . . . . . . . . 6 4. Protocol Overview and Functioning . . . . . . . . . . . . . . 6
5. Parameters and Constants . . . . . . . . . . . . . . . . . . . 6 5. Parameters and Constants . . . . . . . . . . . . . . . . . . . 6
5.1. Router Parameters . . . . . . . . . . . . . . . . . . . . 6 5.1. Router Parameters . . . . . . . . . . . . . . . . . . . . 6
6. Packets and Messages . . . . . . . . . . . . . . . . . . . . . 7 6. Packets and Messages . . . . . . . . . . . . . . . . . . . . . 7
6.1. HELLO and TC messages . . . . . . . . . . . . . . . . . . 7 6.1. HELLO and TC messages . . . . . . . . . . . . . . . . . . 7
6.1.1. MP_OLSRv2 TLV . . . . . . . . . . . . . . . . . . . . 7 6.1.1. MP_OLSRv2 TLV . . . . . . . . . . . . . . . . . . . . 7
6.2. Datagram . . . . . . . . . . . . . . . . . . . . . . . . . 7 6.2. Datagram . . . . . . . . . . . . . . . . . . . . . . . . . 7
6.2.1. Source Routing Header in IPv4 . . . . . . . . . . . . 7 6.2.1. Source Routing Header in IPv4 . . . . . . . . . . . . 8
6.2.2. Source Routing Header in IPv6 . . . . . . . . . . . . 8 6.2.2. Source Routing Header in IPv6 . . . . . . . . . . . . 8
7. Information Bases . . . . . . . . . . . . . . . . . . . . . . 8 7. Information Bases . . . . . . . . . . . . . . . . . . . . . . 8
7.1. MP-OLSRv2 Router Set . . . . . . . . . . . . . . . . . . . 8 7.1. MP-OLSRv2 Router Set . . . . . . . . . . . . . . . . . . . 8
7.2. Multi-path Routing Set . . . . . . . . . . . . . . . . . . 8 7.2. Multi-path Routing Set . . . . . . . . . . . . . . . . . . 8
8. Protocol Details . . . . . . . . . . . . . . . . . . . . . . . 9 8. Protocol Details . . . . . . . . . . . . . . . . . . . . . . . 9
8.1. HELLO and TC Message Generation . . . . . . . . . . . . . 9 8.1. HELLO and TC Message Generation . . . . . . . . . . . . . 9
8.2. HELLO and TC Message Processing . . . . . . . . . . . . . 9 8.2. HELLO and TC Message Processing . . . . . . . . . . . . . 9
8.3. Datagram Processing at the MP-OLSRv2 Originator . . . . . 10 8.3. Datagram Processing at the MP-OLSRv2 Originator . . . . . 10
8.4. Multi-path Dijkstra Algorithm . . . . . . . . . . . . . . 10 8.4. Multi-path Dijkstra Algorithm . . . . . . . . . . . . . . 10
8.5. Datagram Forwarding . . . . . . . . . . . . . . . . . . . 11 8.5. Datagram Forwarding . . . . . . . . . . . . . . . . . . . 11
9. Configuration Parameters . . . . . . . . . . . . . . . . . . . 12 9. Configuration Parameters . . . . . . . . . . . . . . . . . . . 12
10. Implementation Status . . . . . . . . . . . . . . . . . . . . 12 10. Implementation Status . . . . . . . . . . . . . . . . . . . . 13
10.1. Multi-path extension based on nOLSRv2 . . . . . . . . . . 13 10.1. Multi-path extension based on nOLSRv2 . . . . . . . . . . 13
10.2. Multi-path extension based on olsrd . . . . . . . . . . . 13 10.2. Multi-path extension based on olsrd . . . . . . . . . . . 13
10.3. Multi-path extension based on umOLSR . . . . . . . . . . . 13 10.3. Multi-path extension based on umOLSR . . . . . . . . . . . 14
11. Security Considerations . . . . . . . . . . . . . . . . . . . 14 11. Security Considerations . . . . . . . . . . . . . . . . . . . 14
12. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 14 12. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 14
12.1. HELLO Message-Type-Specific TLV Type Registries . . . . . 14 12.1. HELLO Message-Type-Specific TLV Type Registries . . . . . 15
12.2. TC Message-Type-Specific TLV Type Registries . . . . . . . 14 12.2. TC Message-Type-Specific TLV Type Registries . . . . . . . 15
13. References . . . . . . . . . . . . . . . . . . . . . . . . . . 15 13. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 15
13.1. Normative References . . . . . . . . . . . . . . . . . . . 15 14. References . . . . . . . . . . . . . . . . . . . . . . . . . . 15
13.2. Informative References . . . . . . . . . . . . . . . . . . 15 14.1. Normative References . . . . . . . . . . . . . . . . . . . 15
Appendix A. An example of Multi-path Dijkstra Algorithm . . . . . 16 14.2. Informative References . . . . . . . . . . . . . . . . . . 16
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 17 Appendix A. An example of Multi-path Dijkstra Algorithm . . . . . 17
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 18
1. Introduction 1. Introduction
The Optimized Link State Routing Protocol version 2 (OLSRv2) The Optimized Link State Routing Protocol version 2 (OLSRv2)
[RFC7181] is a proactive link state protocol designed for use in [RFC7181] is a proactive link state protocol designed for use in
mobile ad hoc networks (MANETs). It generates routing messages mobile ad hoc networks (MANETs). It generates routing messages
periodically to create and maintain a Routing Set, which contains periodically to create and maintain a Routing Set, which contains
routing information to all the possible destinations in the routing routing information to all the possible destinations in the routing
domain. For each destination, there exists an unique Routing Tuple, domain. For each destination, there exists an unique Routing Tuple,
which indicates the next hop to reach the destination. which indicates the next hop to reach the destination.
skipping to change at page 6, line 33 skipping to change at page 6, line 33
algorithm can generate multiple disjoint paths from a source to a algorithm can generate multiple disjoint paths from a source to a
destination , and such information is kept in Multi-path Routing Set. destination , and such information is kept in Multi-path Routing Set.
The algorithm is invoked on demand, i.e., only when there is data The algorithm is invoked on demand, i.e., only when there is data
traffic to be sent from the source to the destination, and there is traffic to be sent from the source to the destination, and there is
no available routing tuples in the Multi-path Routing Set. no available routing tuples in the Multi-path Routing Set.
The datagram is forwarded based on source routing. When there is a The datagram is forwarded based on source routing. When there is a
datagram to be sent to a destination, the source router acquires a datagram to be sent to a destination, the source router acquires a
path from the Multi-path Routing Set (in Round-Robin fashion here) . path from the Multi-path Routing Set (in Round-Robin fashion here) .
The path information is stored in the datagram header as source The path information is stored in the datagram header as source
routing header. The intermediate routers listed in the source routing header.
routing header (SRH) read the SRH and forward the datagram to the
next hop indicated in the SRH. All the intermediate routers are listed in the source routing header
(SRH), unless there are routers that do not support MP-OLSRv2 in the
paths, or the paths are too long to be fully stored in the SRH -- in
which case, loose source routing is used. The intermediate routers
listed in the SRH read the SRH and forward the datagram to the next
hop indicated in the SRH.
5. Parameters and Constants 5. Parameters and Constants
In addition to the parameters and constants defined in [RFC7181], In addition to the parameters and constants defined in [RFC7181],
this specification uses the parameters and constants described in this specification uses the parameters and constants described in
this section. this section.
5.1. Router Parameters 5.1. Router Parameters
NUMBER_OF_PATHS The number of paths desired by the router. NUMBER_OF_PATHS The number of paths desired by the router.
MAX_SRC_HOPS The maximum number of hops allowed to put in the MAX_SRC_HOPS The maximum number of hops allowed to put in the
source routing header. source routing header.
fp Incremental function of multi-path Dijkstra algorithm. It is fp Incremental function of multi-path Dijkstra algorithm. It is
used to increase costs of links belonging to the previously used to increase costs of links belonging to the previously
computed path. computed path.
fe Incremental function of multi-path Dijkstra algorithm. It is fe Incremental function of multi-path Dijkstra algorithm. It is
skipping to change at page 11, line 36 skipping to change at page 11, line 42
o MR_valid_time := current time + MR_HOLD_TIME o MR_valid_time := current time + MR_HOLD_TIME
o Each Path Tuple in the MP_path_set corresponds to a path obtained o Each Path Tuple in the MP_path_set corresponds to a path obtained
in multi-path Dijkstra algorithm, with PT_cost := cost of the path in multi-path Dijkstra algorithm, with PT_cost := cost of the path
to the destination d. to the destination d.
8.5. Datagram Forwarding 8.5. Datagram Forwarding
On receiving a datagram with source routing header, the Destination On receiving a datagram with source routing header, the Destination
Address field of the IP header is first compared to the addresses of Address field of the IP header is first compared to the addresses of
the local interfaces. If no matching address is found, the datagram the local interfaces. If a matching local address if found, the
is forwarded according OLSRv2 routing process. If a matching local datagram is processed as follows:
address if found, the datagram is processed as follows:
1. Obtain the next source address Address[i] in the source route 1. Obtain the next source address Address[i] in the source route
header. How to obtain the next source address depends on the IP header. How to obtain the next source address depends on the IP
version used. In IPv4, the position of the next source address version used. In IPv4, the position of the next source address
is indicated by the "pointer" field of the source routing header is indicated by the "pointer" field of the source routing header
[RFC0791]. In IPv6, the position is indicated by "Segments Left" [RFC0791]. In IPv6, the position is indicated by "Segments Left"
field of the source routing header. If no next source address is field of the source routing header. If no next source address is
found, the forwarding process is finished. found, the forwarding process is finished.
2. Swap Address[i] and destination address in the IP header. 2. Swap Address[i] and destination address in the IP header.
skipping to change at page 12, line 4 skipping to change at page 12, line 9
version used. In IPv4, the position of the next source address version used. In IPv4, the position of the next source address
is indicated by the "pointer" field of the source routing header is indicated by the "pointer" field of the source routing header
[RFC0791]. In IPv6, the position is indicated by "Segments Left" [RFC0791]. In IPv6, the position is indicated by "Segments Left"
field of the source routing header. If no next source address is field of the source routing header. If no next source address is
found, the forwarding process is finished. found, the forwarding process is finished.
2. Swap Address[i] and destination address in the IP header. 2. Swap Address[i] and destination address in the IP header.
3. Forward the datagram to the destination address according to the 3. Forward the datagram to the destination address according to the
OLSRv2 Routing Tuple information through R_local_iface_addr where OLSRv2 Routing Tuple information through R_local_iface_addr where
* R_dest_addr = destination address in the IP header * R_dest_addr = destination address in the IP header
If no matching address is found:
o If the Destination Address of the IP header belongs to one of the
router's 1-hop symmetric neighbors, the datagram is forwarded to
the neighbor router.
o Or else, the datagram is forwarded according OLSRv2 routing
process.
9. Configuration Parameters 9. Configuration Parameters
This section gives default values and guideline for setting This section gives default values and guideline for setting
parameters defined in Section 5. Network administrator may wish to parameters defined in Section 5. Network administrator may wish to
change certain, or all the parameters for different network change certain, or all the parameters for different network
scenarios. As an experimental track protocol, the users of this scenarios. As an experimental track protocol, the users of this
protocol are also encouraged to explore different parameter setting protocol are also encouraged to explore different parameter setting
in various network environments, and provide feedback. in various network environments, and provide feedback.
o NUMBER_OF_PATHS = 3. This parameter defines the number of o NUMBER_OF_PATHS = 3. This parameter defines the number of
skipping to change at page 14, line 14 skipping to change at page 14, line 28
under GNU GPL license. under GNU GPL license.
The implementation is just for network simulation for NS2 network The implementation is just for network simulation for NS2 network
simulator. All the specification is implemented in this simulator. All the specification is implemented in this
implementation. implementation.
Implementation experience and test data can be found at [WCNC08]. Implementation experience and test data can be found at [WCNC08].
11. Security Considerations 11. Security Considerations
This document does currently not specify any security As an extension of [RFC7181], the security considerations and
considerations.... security architecture illustrated in [RFC7181] are applicable to this
MP-OLSRv2 specification.
The implementations without security mechanisms are vulnerable to
threats discussed in [I-D.clausen-manet-olsrv2-sec-threats]. As
[RFC7181], a conformant implementation of MP-OLSRv2 MUST, at minimum,
implement the security mechanisms specified in [RFC7183] to provide
integrity and replay protection of routing control messages.
Compared to OLSRv2, the use of source routing header in this
specification introduces vulnerabilities related to source routing
attacks. Those attacks include bypassing filtering devices,
bandwidth exhaustion of certain routers, etc. To make sure that the
influence is limited to the OLSRv2/MP-OLSRv2 routing domain, the
source routing header MUST be used only in the current routing
domain.
12. IANA Considerations 12. IANA Considerations
This specification defines two Message TLV Types, which must be This specification defines two Message TLV Types, which must be
allocated from the Message TLV Types repository of [RFC5444]. allocated from the Message TLV Types repository of [RFC5444].
12.1. HELLO Message-Type-Specific TLV Type Registries 12.1. HELLO Message-Type-Specific TLV Type Registries
IANA is requested to create a registry for Message-Type-Specific IANA is requested to create a registry for Message-Type-Specific
Message TLV for HELLO messages, in accordance with Section 6.2.1 of Message TLV for HELLO messages, in accordance with Section 6.2.1 of
skipping to change at page 15, line 14 skipping to change at page 15, line 37
+---------+-------------+-------------------+ +---------+-------------+-------------------+
| Type | Description | Allocation Policy | | Type | Description | Allocation Policy |
+---------+-------------+-------------------+ +---------+-------------+-------------------+
| 128 | MP_OLSRv2 | | | 128 | MP_OLSRv2 | |
| 129-223 | Unassigned | Expert Review | | 129-223 | Unassigned | Expert Review |
+---------+-------------+-------------------+ +---------+-------------+-------------------+
Table 2: TC Message-Type-specific Message TLV Types Table 2: TC Message-Type-specific Message TLV Types
13. References 13. Acknowledgments
13.1. Normative References The authors would like to thank Sylvain David, Asmaa Adnane, Eddy
Cizeron, Salima Hamma, Pascal Lesage and Xavier Lecourtier for their
efforts in developing, implementing and testing the specifications.
The authors also appreciate valuable comments and discussions from
Thomas Clausen, Ulrich Herberg, Geoff Ladwig and Henning Rogge.
14. References
14.1. Normative References
[RFC0791] Postel, J., "Internet Protocol", STD 5, RFC 791, [RFC0791] Postel, J., "Internet Protocol", STD 5, RFC 791,
September 1981. September 1981.
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, March 1997. Requirement Levels", BCP 14, RFC 2119, March 1997.
[RFC5444] Clausen, T., Dearlove, C., Dean, J., and C. Adjih, [RFC5444] Clausen, T., Dearlove, C., Dean, J., and C. Adjih,
"Generalized Mobile Ad Hoc Network (MANET) Packet/Message "Generalized Mobile Ad Hoc Network (MANET) Packet/Message
Format", RFC 5444, February 2009. Format", RFC 5444, February 2009.
skipping to change at page 15, line 41 skipping to change at page 16, line 25
[RFC6554] Hui, J., Vasseur, JP., Culler, D., and V. Manral, "An IPv6 [RFC6554] Hui, J., Vasseur, JP., Culler, D., and V. Manral, "An IPv6
Routing Header for Source Routes with the Routing Protocol Routing Header for Source Routes with the Routing Protocol
for Low-Power and Lossy Networks (RPL)", RFC 6554, for Low-Power and Lossy Networks (RPL)", RFC 6554,
March 2012. March 2012.
[RFC7181] Clausen, T., Dearlove, C., Jacquet, P., and U. Herberg, [RFC7181] Clausen, T., Dearlove, C., Jacquet, P., and U. Herberg,
"The Optimized Link State Routing Protocol Version 2", "The Optimized Link State Routing Protocol Version 2",
RFC 7181, April 2014. RFC 7181, April 2014.
13.2. Informative References [RFC7183] Herberg, U., Dearlove, C., and T. Clausen, "Integrity
Protection for the Neighborhood Discovery Protocol (NHDP)
and Optimized Link State Routing Protocol Version 2
(OLSRv2)", RFC 7183, April 2014.
14.2. Informative References
[ADHOC11] Yi, J., Adnane, A-H., David, S., and B. Parrein, [ADHOC11] Yi, J., Adnane, A-H., David, S., and B. Parrein,
"Multipath optimized link state routing for mobile ad hoc "Multipath optimized link state routing for mobile ad hoc
networks", In Elsevier Ad Hoc Journal, vol.9, n. 1, 28-47, networks", In Elsevier Ad Hoc Journal, vol.9, n. 1, 28-47,
January, 2011. January, 2011.
[I-D.clausen-manet-olsrv2-sec-threats]
Clausen, T., Herberg, U., and J. Yi, "Security Threats for
the Optimized Link State Routing Protocol version 2
(OLSRv2)", draft-clausen-manet-olsrv2-sec-threats-01 (work
in progress), August 2014.
[I-D.ietf-manet-olsrv2-dat-metric] [I-D.ietf-manet-olsrv2-dat-metric]
Rogge, H. and E. Baccelli, "Packet Sequence Number based Rogge, H. and E. Baccelli, "Packet Sequence Number based
directional airtime metric for OLSRv2", directional airtime metric for OLSRv2",
draft-ietf-manet-olsrv2-dat-metric-02 (work in progress), draft-ietf-manet-olsrv2-dat-metric-02 (work in progress),
August 2014. August 2014.
[I-D.ietf-manet-olsrv2-multitopology] [I-D.ietf-manet-olsrv2-multitopology]
Dearlove, C. and T. Clausen, "Multi-Topology Extension for Dearlove, C. and T. Clausen, "Multi-Topology Extension for
the Optimized Link State Routing Protocol version 2 the Optimized Link State Routing Protocol version 2
(OLSRv2)", draft-ietf-manet-olsrv2-multitopology-04 (work (OLSRv2)", draft-ietf-manet-olsrv2-multitopology-04 (work
 End of changes. 17 change blocks. 
26 lines changed or deleted 74 lines changed or added

This html diff was produced by rfcdiff 1.41. The latest version is available from http://tools.ietf.org/tools/rfcdiff/