Wifi Workshop in Tent 3: OLSR
From What The Wiki?!
Contents |
The Optimized Link State Routing Protocol
Introduction to the Optimized Link State routing protocol
The sheets are available at http://www.oom-killer.org/olsr
Thomas Lopatic gives an introduction to mesh routing and the OLSR protocol in specific in this workshop.
The olsr.org OLSR daemon is an implementation of the Optimized Link State Routing protocol. OLSR is a routing protocol for mobile ad-hoc networks. The protocol is pro-active, table driven and utilizes a technique called multipoint relaying for message flooding.
Currently the implementation compiles on
GNU/Linux Windows OS X FreeBSD NetBSD systems.
Olsrd is ment to be a well structured and well coded implementation that should be easy to maintain, expand and port to other platforms. The implementation is RFC3626 compliant with respect to both core and auxiliary functioning. Olsrd supports use of loadable plugins. These can be used to to handle and generate custom packettypes to be carried by OLSRs MPR flooding scheme or for any other desired functioning.
Pressrelease from olsr.org:
Open Source: olsr.org olsrd Version 0.4.8 Immediately Available
Oslo, Berlin, 2004-12-07. The olsr.org community announces the immediate availability of version 0.4.8 of their open source solution for mobile ad-hoc networking in IEEE 802.11 WLAN environments. The software is available from the olsr.org website at www.olsr.org under a BSD-style license.
The new release supports routing based on the quality of the links between the participating mobile nodes by implementing a variant of the ETX (Expected Transmission Count) link quality metric. Based on the packet loss of a link between two mobile nodes ETX predicts the number of attempts required for successful transmission of a packet via this link. Good links, i.e. links with a lower number of expected retransmissions, are then preferred for routing. In contrast to the quality-agnostic mobile routing solutions prevalent today this extension allows for significantly more stable and more efficient mobile ad-hoc networks.
Version 0.4.8 also covers additional operating systems and supports Linux, Windows, FreeBSD and Mac OS X. In the embedded Linux field, olsrd now works on WRT54G(S) access points by Linksys running the OpenWRT Linux distribution as well as on the Meshcube by 4G Systeme.
"I do firmly believe that 0.4.8 is a milestone in the evolution of freely available routing software for community networks," says Elektra, who designed the ETX extension to olsrd in cooperation with Berlin-based technology-meets-art laboratory c-base (www.c-base.org) and the Berlin section of the freifunk.net free network community (www.freifunk.net).
olsr.org olsrd is based on the Optimized Link State Routing (OLSR) routing protocol. OLSR is an Internet standard for mobile ad-hoc networks, which enables mobile devices that support IEEE 802.11 WLAN networking to easily unite and form a network that covers large geographic areas. The protocol therefore plays a substantial role in community networking. It is specified by RFC 3626.
Ad-hoc networks
In a mobile ad hoc network (MANET) the nodes can move about arbitrarily. The network must be self-adapting to the connectivity and propagation conditions, and also to the traffic and user mobility pattern. Each node in a manet will logically consists of a router that may have multiple hosts and that also may have multiple wireless communications devices or interfaces to other nodes. In principle, the network can be a standalone network. However, this offers only a limited functionality. A usable network must be globally connected through one or more fixed networks. The alternatives range from using only fixed routable addresses in the ad hoc network to several tunnel based schemes including Virtual Private Network (VPN), Mobile IP and Network Address Translation (NAT) supported by catalogue systems.
The IETF working group on mobile ad hoc networks (manet) developes routing protocols optimized for different conditions. Routing protocols can be divided into reactive and proactive protocols. Reactive protocols, such as AODV and DSR, start route determination only on demand. This means that route information may not be available when a route request is received, and thus there can be significant delay before a route to the wanted destination is determined. Also, there will be some control traffic when doing route discovery. Proactive protocols, such as OLSR and DSDV attempt to establish all routes within the network. This means that when a route is needed, the route is already known and can be immediately used.
OLSR
OLSR is a pro-actvive routing protocol for MANETs. The OLSR RFC(3626) states:
The Optimized Link State Routing Protocol (OLSR) is developed for mobile ad hoc networks. It operates as a table driven, proactive protocol, i.e., exchanges topology information with other nodes of the network regularly. Each node selects a set of its neighbor nodes as "multipoint relays" (MPR). In OLSR, only nodes, selected as such MPRs, are responsible for forwarding control traffic, intended for diffusion into the entire network. MPRs provide an efficient mechanism for flooding control traffic by reducing the number of transmissions required.
Nodes, selected as MPRs, also have a special responsibility when declaring link state information in the network. Indeed, the only requirement for OLSR to provide shortest path routes to all destinations is that MPR nodes declare link-state information for their MPR selectors. Additional available link-state information may be utilized, e.g., for redundancy.
Nodes which have been selected as multipoint relays by some neighbor node(s) announce this information periodically in their control messages. Thereby a node announces to the network, that it has reachability to the nodes which have selected it as an MPR. In route calculation, the MPRs are used to form the route from a given node to any destination in the network. Furthermore, the protocol uses the MPRs to facilitate efficient flooding of control messages in the network.
A node selects MPRs from among its one hop neighbors with "symmetric", i.e., bi-directional, linkages. Therefore, selecting the route through MPRs automatically avoids the problems associated with data packet transfer over uni-directional links (such as the problem of not getting link-layer acknowledgments for data packets at each hop, for link-layers employing this technique for unicast traffic).
OLSR is developed to work independently from other protocols. Likewise, OLSR makes no assumptions about the underlying link-layer.
OLSR inherits the concept of forwarding and relaying from HIPERLAN (a MAC layer protocol) which is standardized by ETSI [3]. The protocol is developed in the IPANEMA project (part of the Euclid program) and in the PRIMA project (part of the RNRT program).
OLSR daemon
Implementation background
Olsrd started out as part of the master thesis project for Andreas Tønnesen supervised by Ph.D student Andreas Hafslund, Professor Øyvind Kure and Associate Professor Knut Øvsthus at UniK - University Graduate Center.
The master thesis is now finished(it is available for download from the documentation section) but the olsrd project moves on. Andreas now concentrates on the main olsrd code while others work on various ports and plugins. If you are interested in joining the project as a developer, please send a mail to the olsr-dev mailinglist.
Release goals
The aim for the 0.4 branch is a bugfree and modular designed version that allows for dynamically loading of code(plugins).
Multiple platforms should also be supported by 0.5. This includes windows and FreeBSD.
Technical
The code is written i C in a Gnu/Linux (why not just "linux") enviroment. I use emacs , gnu-make, gcc and gdb for development.
olsrd is known to compile against both glibc and UcLibc. It is known to run on x86, ARM, MIPS and PPC platforms.
Specification compliance
As of version 0.3.5, olsrd is considered RFC core-compliant and from 0.4.0 all auxiliary functions except link-layer notifications are covered.
But incompliances and bugs are discovered from time to time - check the ToDo section.
hopefully useful links to this theme
First, the complete presentation of Thomas Lopatic (thx 4 ur support, Thomas. Greetings to Berlin!):
Contact to the development crew
edited by olly
Berlin-olsr-experiment project page
Categories: Published | Top | Wifi | 30 August 2008 | August 2008
