TECHNICAL UNIVERSITY OF KOŠICE FACULTY OF ELECTRICAL ENGINEERING AND INFORMATICS Progressive solution of communication services in the environment of embedded devices Ivan KLIMEK BACHELOR’S THESIS 2008 TECHNICAL UNIVERSITY OF KOŠICE FACULTY OF ELECTRICAL ENGINEERING AND INFORMATICS Department of Computers and Informatics Progressive solution of communication services in the environment of embedded devices BACHELOR’S THESIS Ivan Klimek Supervisor: Ing. Frantisek Jakab, PhD. Consultant: Ing. Frantisek Jakab, PhD. Košice 2008 Metadata Sheet Author: Ivan Klimek Thesis title: Progressive solution of communication services in the environment of embedded devices Language: English Type of Thesis: Bachelor’s Thesis Number of Pages: 50 Degree: Bachelor University: Technical University of Košice Faculty: Faculty of Electrical Engineering and Informatics (FEI) Department: Department of Computers and Informatics (DCI) Study Specialization: Informatics Study Programme: Informatics Town: Košice Supervisor: Ing. František Jakab, PhD. Consultant: Ing. František Jakab, PhD. Date of Submission: 30. 5. 2008 Date of Defence: 18. 6. 2008 Keywords: MANET, OLSR, OLSR-NG, MANIAC Challenge, Live and Let Live strategy, Cooperation strategies, Energy efficiency, Spectrum usage, SDR, Android, UMA Category Conspectus: (In Slovak only) Výpočtová technika; Počítačové siete Thesis Citation: Ivan Klimek: Progressive solution of communication services in the environment of embedded devices. Bachelor's Thesis. Košice: Technical University of Košice, Faculty of Electrical Engineering and Informatics. 2008. 50 pages Title SK: Progresívne riešenie komunikačných služieb v prostredí vnorených systémov Keywords SK: MANET, OLSR, OLSR-NG, MANIAC Challenge, Live and Let Live strategy, Kooperačné stratégie, Spotreba energie, Spotreba spektra, SDR, Android, UMA Abstract in English Mobile Ad hoc Networks (MANETs) provide the flexibility to create networks on-demand and without any dedicated infrastructure, networks consisting only of end clients. This thesis maps the current possibilities of the technology and features that need to be added. The routing overhead / signalization reduction strategy The Live and Let Live is presented in detail. Further the large scale deployment of MANETs and the means of accomplishing this goal are studied. The first prototype of a MANET enabled mobile router and the port of the OLSR-NG routing protocol for the Android mobile platform are presented. The feasibility of commercial MANET usage is shown on the example of the combination of MANETs with technology of Unlicensed Mobile Access (UMA). Abstract in Slovak Mobilné Ad hoc siete (MANETy) pozostávajú iba z koncových klientov a poskytujú flexibilitu vytvárať siete podľa aktuálnych potrieb bez akejkoľvek dedikovanej infraštruktúry. Táto práca sa zaoberá zmapovaním možností súčasných technológií a ich možnými rozšíreniami. Detailne je prezentovaná stratégia redukcie réžie smerovacieho protokolu a signalizácie The Live and Let Live. Ďalej sa zaoberá nasadením sieti tohto typu vo väčšom meradle a skúma možnosti dosiahnutia tohto cieľa. V rámci tejto práce je prezentovaný aj prvý prototyp mobilného smerovača s MANET podporou a port smerovacieho protokolu OLSR-NG na mobilnú platformu Android. Reálnosť komerčného využitia je prezentovaná príkladom kombinácie technológií MANET a Unlicensed Mobile Access (UMA). Declaration I hereby declare that this thesis is my own work and effort. Where other sources of information have been used, they have been acknowledged. Košice, 30. 5. 2008 .......................................... signature Acknowledgement Firstly I would like to thank Ing. František Jakab, PhD. for his constant support and valuable advices. I am very happy that I was able to be part of the Computer Networks Laboratory and by this way I would like to thank all the members of this organization. One of the most important things in everyone’s life is family, mine provided me everything they could and I am and I always will be thankful for that. I would also like to thank all my friends and colleagues that helped me during the few last years on the university. A special thanks goes to my girlfriend Inka, for all the beautiful days we had and only will have. Thank you. Preface The first radio telecommunication methods were all according to current terminology point-to-point links, just later in the process of their evolution it came to some kind of centralization. One ends of multiple point-to-point links were connected together via a multiplexor; that was the beginning of the network infrastructure we nowadays know. The main reason why this happened, were technical limitations of that time. The network infrastructure evolved, and it became an inseparable part of networking. Such an approach however has its negatives, the speed and capacity of the network is limited by the network infrastructure. In case of an infrastructure outage are the end clients literally cut off. The network infrastructure has to be managed by some authority and of course someone has to pay it. With the advancements in wireless networking, their growing integration into everyday life in devices like notebooks, personal digital assistants, mobile phones etc. completely new possibilities arise. Now we are able to create networks with practically unlimited size, without any dedicated infrastructure, without any authority in control, without speed or capacity limitations a network build completely upon end user devices and limited only by their performance. All this is done without high requirements on hardware, so that any device with the support of the implemented wireless technology could participate in this network. Networks of this type are called MANETs (Mobile Ad hoc Networks). This thesis aims to map the necessary features that need to be added to the current MANET implementations so that they could be reliably used in everyday life. This means adding cooperation mechanisms, an effective power saving and spectrum usage strategy and QoS assurance. To present the feasibility of this vision, example MANET implementations will be provided. Table of Contents Introduction................................................................................................................... 14 1 The problem expression .......................................................................................... 16 2 Ad hoc routing protocols......................................................................................... 17 2.1 Ad hoc routing protocol classes.......................................................................... 17 2.2 The MANET IETF working group..................................................................... 21 2.3 Routing protocol selection .................................................................................. 22 2.4 OLSR-NG ........................................................................................................... 22 2.4.1 MESH vs. MANET...................................................................................... 24 2.4.2 OLSR internals............................................................................................. 24 3 Cooperation Strategies ............................................................................................ 27 3.1 Uncooperative nodes........................................................................................... 27 3.2 Pro-active approach ............................................................................................ 28 4 Energy efficiency and spectrum usage................................................................... 30 4.1 Signalization reduction ....................................................................................... 31 4.1.1 The Live and Let Live strategy.................................................................... 31 4.2 Software Defined Radio (SDR) .......................................................................... 36 5 QoS Assurance ......................................................................................................... 37 6 MANET implementations in embedded/mobile devices ...................................... 38 6.1 Mobile router ...................................................................................................... 38 6.2 Open Handset Alliance (OHA) Android platform.............................................. 40 6.2.1 Android hacking........................................................................................... 41 6.2.2 Android OLSR-NG port testing................................................................... 44 7 A MANET based service......................................................................................... 45 8 Conclusion ................................................................................................................ 47 Bibliography .................................................................................................................. 48 Appendices..................................................................................................................... 50 List of Figures Fig. 1 Dijkstra complexity......................................................................................... 23 Fig. 2 Flooding a packet in a wireless multihop network ......................................... 25 Fig. 3 Typical neighbor discovery session................................................................ 26 Fig. 4 Full Mesh topology......................................................................................... 30 Fig. 5 An example MANET topology....................................................................... 32 Fig. 6 OLSR updates as they are normally propagated to all nodes in range.. ......... 33 Fig. 7 OLSR updates unicast to chosen locations.. ................................................... 33 Fig. 8 Real life example for The Live and Let Live strategy.. .................................. 34 Fig. 9 Topology screen from the actual MANIAC Challenge 2007 ......................... 34 Fig. 10 Mobile Router prototype................................................................................. 39 Fig. 11 Android system architecture ........................................................................... 41 Fig. 12 OLSR-NG daemon running inside the Android emulator .............................. 43 Fig. 13 OLSR-NG android testing topology ............................................................... 44 Fig. 14 How UMA technology works......................................................................... 46 List of Symbols and Abbreviations ADB Android Debugging Bridge AODV Ad-hoc On-demand Distance Vector API Application Programming Interface ARM Advanced RISC Machine ARP Address Resolution Protocol B.A.T.M.A.N. Better Approach To Mobile Ad hoc Networking dBm Decibel to milliwat DoS Denial of Service DSL Digital subscriber line DVB-T Digital Video Broadcasting – Terrestrial eth Ethernet ETX Expected transmissions Flash-OFDM Fast Low-latency Access with Seamless Handoff Orthogonal Frequency Division Multiplexing GAN Generic Access Network GCC GNU C Compiler GHz Giga Herz GPS Global Positioning System GSM Global System for Mobile communications IETF Internet Engineering Task Force IP Internet Protocol ipkg Itsy Package Management System IS-IS Intermediate system to intermediate system ISP Internet Service Provider L1 OSI Layer 1 L2 OSI Layer 2 L3 OSI Layer 3 MANET Mobile Ad hoc Network MANIAC Mobile Ad hoc Networks Interoperability and Cooperation MB Mega Byte MHz Mega Herz MIMO Multiple-input and Multiple-output MIPS Microprocessor without Interlocked Pipeline Stages MPR Multipoint relay OHA Open Handset Alliance OLSR Optimized Link State Routing OLSRd OLSR daemon OLSR-NG Optimized Link State Routing - Next Generation OSI Open Systems Interconnection P2P Peer to Peer PC Personal Computer PCMCIA Personal Computer Memory Card International Association PDA Personal Digital Assistant POSIX Portable Operating System Interface PPC PowerPC QoS Quality of Service RF Radio Frequency RFC Request for comments RISC Reduced instruction set computer SDK Software Development Kit SDR Software Defined Radio SOHO Small office Home office SPF Shortest Path First SSID Service Set Identifier TC Topology Control ToS Type of Service UMA Unlicensed Mobile Access UMPC Ultra-Mobile PC UMTS Universal Mobile Telecommunications System USA United States of America VoIP Voice over IP WAN Wide Area Network Wi-Fi Wireless Fidelity WiMAX Worldwide Interoperability for Microwave Access WWAN Wireless Wide Area Network List of Terms QoS is a resource reservation control mechanisms. The ability to provide different priority to different applications, users, or data flows, or to guarantee a certain level of performance to a data flow. VoIP is a technology that enables transferring real-time voice communication over an IP Data Network. DoS attack is an attempt to make a computer resource unavailable to its intended users. MIMO is the use of multiple antennas at both the transmitter and receiver to improve communication performance. FEI DCI Introduction Mobile networks operators are often confronted with the problem of insufficient base station network capacity. This happens mainly by large sudden concentration of transferred data on a sector, for example at New Year’s Eve everyone wants to call their families, etc. There are other possibilities to solve this problem. Except of multiplying base station capacities, so called femtocells can be used. That are smaller base stations that can improve both coverage and capacity of the network, they connect to the provider's network using some other means of connection e.g. DSL or cable. This thesis is based on the known fact that the penetration of mobile phones is higher than 100 percent1, there is a rising trend of Wi-Fi integration into mobile phones2 and there are usually more means of internet connection in the same area3. A very important factor is the success and popularity of networks with shared resources like P2P networks. The presented solution uses MANETs for the creation of a network amongst the participating nodes, in which some nodes will be willing to share their internet connection to other nodes in the network, creating something similar to femtocells from themselves. Considering the growing number of broadband flat-rate connections, sharing own internet connectivity should not burden the sharing node. There are several MANET implementations this days, the first part of this thesis is dedicated to finding the optimal routing protocol for our case. A MANET has an advantage comparing with typical Wi-Fi networks, the data can go thru multiple hops on their way, and this means that the range of such a network is not limited to the direct topological neighbors of the gateway. If such a network has to reliably work in real life, the cooperation of all nodes has to be assured. Cooperation strategies are explained in the second part of this thesis. Because of the character of the proposed technology, it is clear that most of the nodes will be mobile devices and will run on batteries, which is why it is necessary to minimize the power requirements. The third part of this work looks at the problem from the battery life point of view and mentions the question of spectrum usage. The fourth part deals with methods of QoS assurance so that it would 1 more phones than people like infrared or Bluetooth few years before 3 multiple operator networks, DSL, cable etc … 2 14 FEI DCI be possible to support VoIP or similar QoS demanding services in a dynamic multi-hop environment like MANETs. The semi-final part shows the implementation of MANETs into real-life embedded/mobile systems. The thesis ends with an example of a service built upon the presented technology. 15 FEI DCI 1 The problem expression The goal of this thesis is to map the current MANET technological possibilities and the features that need to be added to allow the widespread use of this technology. To present the feasibility of this aim, example MANET implementations in embedded/mobile devices will be provided. To achieve this goal, it is necessary to: - Analyze the problematics of Mobile Ad-hoc Networks (MANETs) - Try to find the most suited MANET routing protocol for large scale networks - Map the possibilities of extending the features of current MANET implementations - Provide example MANET implementations in embedded/mobile devices 16 FEI DCI 2 Ad hoc routing protocols Mobile Ad hoc Networks (MANETs) are collections of mobile nodes, dynamically forming a temporary network without pre-existing network infrastructure or centralized administration. Mobile nodes can be arbitrarily located and are free to move randomly at any given time. Node mobility can vary from almost stationary nodes to constantly moving nodes. That means that network topology and interconnections between nodes can change rapidly and unpredictably. There are no dedicated routers in the topology, each node in a MANET acts as a router and is responsible for discovering and maintaining routes to other nodes. MANETs are autonomous networks so that a suitable routing protocol(s) is/are required to automatically adjust to, possibly very frequent, environment changes. The primary goal of the MANET routing protocol is correct and efficient route establishment to facilitate communication within the network between arbitrary nodes [1]. 2.1 Ad hoc routing protocol classes There are several classes of Ad hoc routing protocols, the next section will briefly describe each and name few examples of routing protocols belonging to that class. [2] 1) Pro-active Routing (Table-driven) Protocols of this type maintain fresh lists of destinations and their routes by periodically distributing routing tables throughout the network. The main disadvantages of such algorithms are: 1. Respective amount of data needed for maintenance. 2. Slow reaction to restructuring and failures. Examples of proactive algorithms are: - Ad hoc Wireless Distribution Service (AWDS) - Layer 2 wireless mesh routing protocol 17 FEI - DCI Highly Dynamic Destination-Sequenced Distance Vector routing protocol (DSDV) - Babel, a protocol inspired by DSDV with faster convergence and ETX link quality estimation - Mobile Mesh Routing Protocol (MMRP) - Topology Dissemination based on Reverse-Path Forwarding routing protocol (TBRPF) - RFC 3684 - Optimized Link State Routing Protocol (OLSR) - RFC 3626 2) Reactive Routing (On-demand) This type of protocols finds a route on demand by flooding the network with Route Request packets. The main disadvantages of such algorithms are: 1. High latency time in route discovery. 2. Excessive flooding can lead to network clogging. Examples of reactive algorithms are: - Dynamic Source Routing (DSR) - RFC 4728 - Ad hoc On-demand Distance Vector (AODV) - RFC 3561 - Multirate Ad hoc On-demand Distance Vector Routing Protocol (MR-AODV) - Admission Control enabled On demand Routing (ACOR) 3) Flow Oriented Routing This type of protocols finds a route on demand by following present flows. One option is to unicast consecutively when forwarding data while promoting a new link. The main disadvantages of such algorithms are: 1. Takes long time when exploring new routes without a prior knowledge. 2. May refer to entitative existing traffic to compensate for missing knowledge on routes. 18 FEI DCI Examples of flow oriented algorithms are: - Multipath On-demand Routing Protocol (MOR) - SrcRR - DSR and ETX based, optimized for performance, SrcRR: A HighThroughput Routing Protocol for 802.11 Mesh Networks 4) Adaptive Routing (Situation-Aware) This type of protocols combines the advantages of proactive and reactive routing. The routing is initially established with some proactively prospected routes and then serves the demand from additionally activated nodes through reactive flooding. Some metrics must support the choice of reaction. The main disadvantages of such algorithms are: 1. Advantage depends on amount of nodes activated. 2. Reaction to traffic demand depends on gradient of traffic volume. Example of adaptive algorithms: - Temporally-Ordered Routing Algorithm routing protocol (TORA) 5) Hybrid (Pro-Active/Reactive) This type of protocols also combines the advantages of proactive and reactive routing. The routing is initially established with some proactively prospected routes and then serves the demand from additionally activated nodes through reactive flooding. The choice for one or the other method requires predetermination for typical cases. The main disadvantages of such algorithms are: 1. Advantage depends on amount of nodes activated. 2. Reaction to traffic demand depends on gradient of traffic volume. Examples of hybrid algorithms are: - ARPAM - specialized for aeronautical MANETs 19 FEI - DCI Hybrid Routing Protocol for Large Scale Mobile Ad hoc Networks with Mobile Backbones (HRPLS) 6) Hierarchical Routing Protocols With this type of protocols the choice of proactive and of reactive routing depends on the hierarchic level on which a node resides. The routing is initially established with some proactively prospected routes and then serves the demand from additionally activated nodes through reactive flooding on the lower levels. The choice for one or the other method requires proper attributation for respective levels. The main disadvantages of such algorithms are: 1. Advantage depends on depth of nesting and addressing scheme. 2. Reaction to traffic demand depends on meshing parameters. Examples of hierarchical routing algorithms are: - Hierarchical State Routing (HSR) - Scalable Routing Strategies for Ad hoc Wireless Networks Augmented Tree-based Routing (ATR) 7) Geographical Routing Protocols This type of protocols acknowledges the influence of physical distances and distribution of nodes to areas as significant to network performance. The main disadvantages of such algorithms are: 1. Efficiency depends on balancing the geographic distribution versus occurrence of traffic. 2. Any dependence of performance with traffic load thwarting the negligence of distance may occur in overload. Examples of hierarchical routing algorithms are: - Adaptive Location Aided Routing Protocol – Mines (ALARM) - Blind Geographic Routing (BGR) 20 FEI DCI 8) Power Aware Routing Protocols Energy required to transmit a signal is approximately proportional to dα, where d is the distance and α ≥ 2 is the attenuation factor or path loss exponent, which depends on the transmission medium. When α = 2 (which is the optimal case), transmitting a signal half the distance requires one fourth of the energy and if there is a node in the middle willing to spend another fourth of its energy for the second half, data would be transmitted for half of the energy compared to a direct transmission - a fact that follows directly from the inverse square law of physics. The main disadvantages of such algorithms are: 1. This method induces a delay for each transmission. 2. No relevance for energy network powered transmission operated via sufficient repeater infrastructure. Examples of hierarchical routing algorithms are: - Infra-Structure Aodv for Infrastructured Ad hoc networks (ISAIAH) - Dynamic Source Routing Power-Aware (DSRPA) Other minor classes are for example: Multicast Routing, Geographical Multicast Protocols (Geocasting) etc. 2.2 The MANET IETF working group A specialized Internet Engineering Task Force working group was created to focus on the problematics of MANET routing. The purpose of this working group is [3]: „to standardize IP routing protocol functionality suitable for wireless routing application within both static and dynamic topologies. The fundamental design issues are that the wireless link interfaces have some unique routing interface characteristics and that node topologies within a wireless routing region may experience increased dynamics, due to motion or other factors.“ 21 FEI DCI As shown in the previous section, wide variety of protocols was proposed, but only few of them were accepted as experimental Request For Comments (RFC), namely Ad hoc On-Demand Distance Vector (AODV), Optimized Link State Routing (OLSR), Topology Dissemination Based on Reverse-Path Forwarding (TBRPF) and the Dynamic Source Routing Protocol (DSR). 2.3 Routing protocol selection The priorities when selecting the best routing protocol for the case of this thesis has been its potential to grow (several thousands of users); it has to be an already implemented routing protocol with real-life tests. It has to be open-source and extremely resource saving so that it could be run on a broad range of devices. There are not many MANETs currently in real-life use. From the protocols accepted as experimental RFCs, most of the networks use some implementation of the OLSR. The currently most advanced OLSR implementation seems to be the freifunk OLSR-NG (Optimized Link State Routing Protocol - Next Generation) [4][5]. 2.4 OLSR-NG A very important factor when selecting OLSR-NG was that it is completely implemented in pure C with very few dependencies [6]. This fact makes it possible to run olsrd (OLSR-NG daemon) practically on all architectures currently used in the PC/embedded sector: - x86 – regulars PCs (Linux/BSD/MacOS/Windows) - PPC – older MAC hardware, some set-top-boxes - MIPS – often used in embedded systems as routers (Cisco/Linksys routers ...) - ARM - embedded systems, the majority of mobile phones/PDAs The key idea behind OLSR-NG as stated on the project wiki page [7] is to “Build the most scalable and usable routing daemon routing wireless and fixed line segments. The routing daemon shall scale up to 10000 (10K) nodes and 20000 (20K) routes 22 FEI DCI running on low-cost hardware (200 MHz RISC CPUs / 32MB of memory). One of the main goals is to make OLSR more scalable in practice. “ Figure 1 shows the different complexity graphs for the SPF calculation under the assumption that every node has 10 edges. The red line represents the complexity of the original OLSR implementation. The green line is the complexity of OLSR-NG. The blue line is the complexity of the theoretical best algorithm. This optimisation will allow the networks to grow by a factor of ~ 1000 4. Fig. 1: Complexity for n=1000 nodes of different data structures in the Dijkstra shortest path (SPF) algorithm.5 Another benefit of the code optimization in OLSR-NG is reduced CPU usage. For example in a network with 400 nodes, the CPU usage on a 200 Mhz RISC Linksys WRT54GL was reduced from above 60 percent to less than 1 percent. 4 5 on the level of calculating the SPF algorithm n - number of nodes, e - number of links, e ~= k*n 23 FEI DCI Nowadays, several community networks with hundreds of users use OLSR-NG in everyday life function, the best example could be the freifunk network [8], which is one of the largest user-driven community networks in the world. 2.4.1 MESH vs. MANET The basic difference between a mesh network and a Mobile Ad hoc Network is that a MANET supports the mobility of nodes. [9] Most current MANET implementations are in fact MESH networks because the nodes are generally static SOHO router (freifunk). This situation is not caused by the constraints of the routing protocol but by the lack of mobile end devices with MANET support. We will look deeper into the questions of mobility further. 2.4.2 OLSR internals The Optimized Link State Routing Protocol (OLSR) is developed for Mobile Ad hoc Networks. The protocol is documented in the Request For Comment (RFC) 3626. OLSR is a table-driven, pro-active routing protocol and uses the concept of Multipoint Relaying for controlling traffic flooding. OLSR functionality can be divided into three main modules: multipoint relaying, neighbor sensing and link-state flooding. 2.4.2.1 Multipoint Relaying OLSR uses flooding of packets to spread topology information thru the network. The simplest form of flooding means that all nodes retransmit received packets. In difference to wired networks, on a MANET due to its wireless nature it is not possible to use techniques like not forwarding packets thru the interface the packets arrived on, for reducing duplicate retransmissions. The number of retransmissions using such "traditional" flooding is n - 1 where n is the number of nodes in the network. It is clear that some kind of optimization would be needed to reduce the flooding overhead. Multipoint relaying helps to reduce the number of duplicate retransmissions while forwarding a broadcast packet by restricting the set of nodes retransmitting a packet from all nodes, to a subset of all nodes. The size of this subset depends on the topology of the network. This is achieved by selecting neighbors as Multipoint relays (MPRs). Every node calculates its own set of MPRs as a subset of its symmetric neighbor nodes chosen so that all 2 hop neighbors can be reached through a MPR. In 24 FEI DCI other words this means that for every node n that can be reached from the local node by at minimum two symmetric hops, there must exist a MPR m so that n has a symmetric link to m and m is a symmetric neighbor of the local node. This way all two hop nodes can be reached through a MPR. Fig. 2: Flooding a packet in a wireless multihop network. The black nodes are MPRs. Arrows show the way the information is passed, not the actual transmissions. [6] 2.4.2.2 Neighbor sensing As any other routing protocol, OLSR needs some means of detecting neighbors and the state of communication links to them. Every node on a regular basis sends a special type of messages called HELLO messages. A simplified model of neighbor discovery could look like: - A sends an empty HELLO message - B receives this message and registers A as an asymmetric neighbor due to the fact that it cannot find its own address in the HELLO message - B then sends a HELLO declaring A as an asymmetric neighbor - When A receives this message it finds its own address in it and therefore sets B as a symmetric neighbor 25 FEI DCI - This time A includes B in the HELLO it sends, and B registers A as a symmetric neighbor upon reception of the HELLO message Fig. 3: Typical neighbor discovery session [6] This is not the only function of HELLO messages; they are generated and transmitted to all one-hop neighbors to achieve link-sensing, neighbor-sensing, two-hop neighbor-sensing and MPR selector sensing. In a HELLO message nodes transmit information about all known links and neighbors, types of neighbors for example declaring what MPRs the node has selected. To optimize byte usage, registered links and neighbors are grouped by the link and neighbor type. A very important fact is that the HELLO messages are generated on a per interface basis. 2.4.2.3 Link-state flooding Link state routing protocols are based on the idea of nodes flooding the network with information about their local links. Protocols like IS-IS [26] use mostly links to subnets, since they are based on aggregation of networks. OLSR uses host based flat routing, that means the router sends information about its links to neighbor and that all routers are peers without any hierarchical structure. This is done using Topology Control (TC) messages. TC messages are flooded using the MPR optimization. This happens at a regular interval, but TC messages are also generated immediately when a change in the network is detected. 26 FEI DCI 3 Cooperation Strategies There are cases when technology is not used exactly like how it was supposed to. In a MANET, there might be nodes unwilling to participate on common interest, which is reliable network with end-to-end connectivity for all elements. What is the motivation for such actions? This technology is supposed to be used on mobile devices, mobile devices run on batteries. Every transmission needs energy from the battery. For a MANET to work every node has to forward data destined/sourced for/by other nodes in the network. There may be attackers trying to conserve their battery life by dropping traffic not interesting for them. Such nodes are called bad guys and there are several possibilities how such attacks on OLSR can function. We will look at some of them and try to propose an easy but reliable way how to fight them. 3.1 Uncooperative nodes The most trivial form of an attack on the idea of common interest in MANETs would be simply not forwarding data uninteresting for the local node. This could be done very easily using for example an iptables command like this: iptables -A INPUT –p tcp l -d ! localhost -j DROP which would drop all tcp packets received destined not for the localhost, where localhost can be a specified IP address of a local interface. The attacker could drop all for him uninteresting data, but keep the routing functional. Other network nodes would send their data thru this node, without knowing that their data never reach their destination. A solution would be to monitor the neighbor if he is really forwarding the packets as he should. If not, ignore that rogue node. In a typical environment, the inbound/outbound interfaces of a neighbor are both in range of the local node. So if the neighbor can hear the local node’s data and receive them, then the local node can hear the neighbor’s outbound data too and watch its own data being forwarded. A simple example of how this could be done using the tshark packet capturing tool: 27 FEI DCI tshark -i eth0 -f 'ip.src == LOCAL_IP and ip.dst == REMOTE_IP and --mac-source = NEIGHBOR_MAC ' where LOCAL_IP is the senders IP address and the REMOTE_IP is the destination IP, NEIGHBOR_MAC is the checked neighbors MAC address. This is enough information for identifying forwarded data, because the L3 parameters do not change during the forwarding process, just the L2 addresses change. Then just a simple check for the right number of packets needs to be done. Of course in a real application instead of using a standalone tool, it would be more appropriate to embed packet capturing with the libpcap library, and do some special checks for size, checksum of packets etc... A very devastating attack would be for an attacker to not only be uncooperative, but fake the MPR selection process and become the MPR of the local segment, then send all nodes fake info stating that he is the only gateway for all routes. All nodes in that segment, would be literally cut off – an OLSR DoS attack. The attacker could for example this way get access to the full uplink capacity for the whole segment. An attack like this was realized on the MANIAC Challenge 2007 by the team that using this approach won the „Performance award“. The listening its own traffic method mentioned above, would be able to detect such attacker too. 3.2 Pro-active approach A clever attacker would always try to be on the edge of the topology, a dead end so that no one even wants to send his traffic thru that node. This could be done by several ways, first of all not broadcasting its own SSID, and then not even accepting connection attempts. Such a node would just simply exploit the network without actively participating in it. To detect such nodes it is required that all nodes check the nodes that they are up to provide uplink if they are willing to provide that network coverage/service further. To prevent these rogue nodes from exploiting the network, each node (node A) checks its neighbor whose data it is going to forward (node B) by simulating another node (node C). That node then tries to connect to node whose data the local node is forwarding /A is simulating node C that wants to connect to node B/. Because node A is the only possibility for node B to send its data to the network, node A has to be able to hear node C fake data. This can be done by generating fake traffic (node C traffic) with different source MAC and IP address than the original interface. 28 FEI DCI To make this check mechanism even more realistic and harder to detect, the interface can be temporarily configured with different L1 parameters as for example signal strength. iwconfig eth0 txpower N Sets the transmit power of the card on the interface eth0 to N dBm. This is done by an ioctl call to the card's driver with the appropriate parameters. This would effectively avoid possible recognition that node A and node C are the same nodes. If node B fails in any stage of this check, node A simply does not forward node's B traffic because there is a reason to believe node B is a rogue node. 29 FEI DCI 4 Energy efficiency and spectrum usage Wireless transmissions are always energy demanding, but in a MESH/MANET there is incomparable more signalization required than in a classical Wi-Fi connection to some gateway due to the multi-hop environment. In a classical Wi-Fi network, the access-point is the only point in the network with a high energy drain because it has to do the signalization to all the clients: a typical one-to-many scenario. The nodes in a MESH/MANET are practically access-points, as they usually have more than one connection at the same time - a many-to-many scenario. In a typical MESH/MANET the devices tend to create connections to as much other devices as possible, by other words if there would be n nodes in a single room, every node would try to make a link with each other device creating by that way together n*(n-1) links, a topology like that is called a full mesh topology. Fig. 4: Full Mesh topology In such topology, the overhead of network signalization required just for routing updates would be extensible. That means not only shorter battery life of the devices, but slower network speeds and problems with interferences due to the shared spectrum. Current MESH/MANET implementations are mostly controlled environments, so that situations like that mentioned above should not happen. But if the MANET support would be integrated into every Wi-Fi enabled handset, such situation could and possibly would happen too much often. That’s why it is upmost important to address the question of signalization. [11] 30 FEI 4.1 DCI Signalization reduction There are multiple possibilities how to solve the signalization problem, for example: - make changes to the routing protocol so it would use for example only maximally the n best links, or by other means reduce the number of links depending on the actual situation - reduce the topology that the routing protocol sees, so that it will communicate only with the pre-selected hosts, of course situation dependent For the prototype of such a signalization reduction algorithm, the second option was chosen. The reason was that the prototype was build for the MANIAC Challenge6 [12], which provided an API that made the development process a lot shorter. For the future, it would be the best to implement the strategy into the used routing protocol. OLSR-NG, for example, has a plug-in interface so that additions to the protocol can be implemented more easily. 4.1.1 The Live and Let Live strategy The Live and Let Live strategy was the strategy that our team from the Computer Networks Laboratory developed for the MANIAC Challenge, and which won the „Strategy award“. Its primary aim is to solve the signaling problem by minimizing the topology that the routing protocol on the local node sees, keep the network fully operational but create something that could be called a minimal possible topology tree, without the need of communication between the nodes when creating this tree. The general idea is that no node in any network really wants to forward the data of other nodes at its own expenses. If every element would treat others this way, the network would not work. On the other hand, every node needs to communicate. That is why it became part of the network. As MANETs are decentralized, in order to keep the network working, some nodes have to forward foreign data too. The Live and Let Live strategy reduces the number of communication links between the nodes while keeping them all connected and being able to communicate with each other. The first step is to find the best next-hop for forwarding the local node's data (e.g. best next hop to the 6 Mobile Ad hoc Interoperability and Cooperation (MANIAC) Challenge 2007, Washington D.C., 25th and 26th of November, 2007 31 FEI DCI gateway). Then the direct connectivity to all other one-hop neighbors is temporarily terminated. After the changes in topology propagate, the local node checks if its onehop neighbors are reachable thru the only enabled node, the best next hop. If not, one of the original neighbors is randomly chosen and enabled. The check for accessibility of other nodes is performed again. If they have any other way to access the network except of the local node, the local node will be able to hear of them thru one of the enabled nodes in their routing updates. This algorithm continues until all of the original nodes are accessible again. In each iteration the nodes that become reachable as a result of the actions during that iteration are deleted from the list of nodes that need to be checked. Algorithm is rerun whenever a topology change is detected. Topology changes are propagated extremely fast thanks to the OLSR MPR concept. This calculation is only applicable to battery powered mobile devices. Other nodes with no power saving concern act as "center of topology", ideally a next-hop node for several mobile devices. Such approach creates a topology in which every battery powered device minimizes its number of connections and traffic load, but also acts as an entry point for all other nodes that have no other means of connecting to the network, keeping the network operational. Fig. 5: An example MANET topology. Node 1 has chosen the next hop (FRIEND) for delivering the traffic to its destination (Node 2). Two other nodes that are in the range are blocked as there is an alternate route to the network for their traffic. All nodes keep connectivity to each other. To minimize the number of connections, the combination of ARP filtering and unicasting of the originally multicasted OLSR update messages is used, so that the nodes are visible only to the nodes they want to be visible to and want to create links 32 FEI DCI with them. By using this approach a logical topology inside the physical topology is created. Despite the fact that the nodes have mutual Layer 1 connectivity (e.g. they are in range of each other wireless adapter) they won’t know of each other as of a direct neighbor unless the minimal active neighbor topology calculation doesn’t indicate otherwise. Fig. 6: OLSR updates as they are normally propagated to all nodes in range. Fig. 7: OLSR updates unicast to chosen locations. Excluded nodes do not recognize NODE 1 as a neighbor node, even though it is in their range. The Figure 8 shows an example of real implementation of the strategy - limitation of the unnecessary traffic and keeping all nodes connected. PC 1 and PC 2 represent devices with no battery concerns, while NODEs 1 – 3 are mobile battery driven devices. NODE 2 does not need to establish the connection to NODE 1 as it can connect to the 33 FEI DCI network via PC 1, which is not limited by battery. On the other hand, NODE 3 is fully dependant on NODE 2 and that is why NODE 2 provides the connection. Fig. 8: Real life example - The Live and Let Live strategy Fig. 9: A topology screen from the actual MANIAC Challenge 2007, the two nodes that are not a part of the full mesh are two nodes running The Live and Let live strategy, minimizing the number of their links and reducing the signalization without the sacrifice of network connectivity. 34 FEI DCI One of the main ideas behind Live and Let Live is that in most of end-user networks only the connection to the internet is required, only very few users connect to other users inside the ISP’s network. To reduce the networking overhead/signalization only the best link(s) to the nearest gateway is actively used, and if no other possibility, traffic for other nodes is forwarded. OLSR as a proactive protocol when comparing to reactive protocols as for example AODV, should perform better in dense traffic patterns (100% = traffic pattern is when there are n · (n-1) traffic flows, where n is the number of nodes). Sparse traffic patterns favor reactive protocols, because most of the information gained by the proactive routing protocol is never used. The general exception is that the routes to the default gateway should be maintained proactively [25]. The benefit of OLSR in larger networks is clear, but with the use of The Live and Let Live strategy OLSR is effective in every situation because the routing information are limited only on the default gateway and nodes without any other mean of connection. The effect of The Live and Let Live strategy is to minimize the signalization required as much as possible but still keep the network operational, as shown in Figure 9, it really works. The actual traffic/signalization reduction is dependant on the topology. In a full mesh with n nodes every node has n-1 links, if The Live and Let Live strategy would be used every node running on battery would have only 1+m links, where the 1 is for uplink7 and m is the number of nodes that do not have any other mean of connection to the network except of the local node. The overall number of links would be reduced. Every additional link means more routing protocol overhead e.g. spectrum usage. The topology created would concentrate most of the traffic on nodes without battery concerns. That are mostly fixed SOHO Wi-Fi routers, or laptops etc, keeping the handsets (mobile phones, PDAs) free of relaying other nodes traffic until there really is no other way how to provide connection. The Live and Let Live strategy source code from the MANIAC Challenge 2007 is included in the appendix. 7 can be more than 1, for example to enable load-balancing 35 FEI 4.2 DCI Software Defined Radio (SDR) Software Defined Radio is a way how a layer of abstraction can be made around the OSI Layer 1, so that the upper layer technology is free of the L1 limitations. With SDR it is possible to use one chip theoretically for any frequency, for any technology. For example Intel already presented a chip integrating Wi-Fi a/b/g, WiMAX and DVBT, see [13] . A software-defined radio is one that has the capability to tune to any frequency band and receive any modulation across a large frequency spectrum. A SDR is able to perform multiple tasks at the same time. In other words, it can receive and transmit a new form of radio protocol just by running new software. This technology is leading towards the development of ‘Cognitive Radio’; estimations are that this should happen before 2015-2020. Such device would be able to monitor the utilization of the RF in real-time and select the way how to communicate with the neighbor for the best performance automatically. [14] The problem with MANETs is that there can be situations, in which a great number of nodes are in close proximity of each other. With usual technologies that can cause a lot of interference and practically a certain amount of nodes on a set space can completely deny the service for the whole sector. With the help of SDR, it would be possible to use any free spectrum frequency (2.4, 5, 10 GHz or other in other countries). Change the frequency used in real-time and by that avoid critical levels of interferences. This would enable a much higher concentration of nodes. For the use in MANETs in sooner future than the mentioned 2015-2020, it does not need to be a ‘Cognitive Radio’, the combination of the most used frequency bands into one chip and a fast way how to monitor and change the currently used frequency would be a big leap forward too. Some speculations are that this could be done with the help of MIMO. The next years MANIAC Challenge 2008 will be focused on application of technologies like SDR and MIMO. The Computer Networks Laboratory team will of course participate again. 36 FEI DCI 5 QoS Assurance Except of the support of ToS preference routing or a lot of other technologies, the QoS in a multi-hop environment will be always a demanding problem. MANETs are a quite special case, the absence of any infrastructure and the mobility of the nodes create an unpredictable situation. Any node can move anytime, or even get offline. The absolute mobility and instability of the network has to be reduced / compensated by some way, preferably by some mean of prediction of the movement of the nodes. Because it is impossible to predict sudden events as for example when somebody shutdowns his mobile phone, focus will be given only on predicting the movement of nodes. The motivation is that when speaking about QoS it is usually better to have one stable connection for a longer time then a faster connection for only few seconds. For example the stable connection could be represented by a node that is moving in the approximately same direction as the local node moves, and the faster but only few seconds’ available connection could be a node moving closer to the local node but in the opposite direction. Such a prediction could be made using information collected from the network over certain period of time, and using some mathematical prediction model to see what node will be available for approximately what time. The data can be collected using different methods; the easiest would be to use the iwspy tool. Iwspy is able to monitor multiple nodes in parallel, and collect the quality of the link, signal strength and noise level parameters for every specified node. 37 FEI 6 DCI MANET implementations in embedded/mobile devices Most of the current MESH/MANETs are using modified Linksys WRT series SOHO Wi-Fi routers, or very similar devices. These devices usually are not mobile, so the benefits of the technology are not fully used. An ideal MANET scenario that would benefit from all the features that the technology provides could look like the following: - MANET enabled home WAN/WWAN Wi-Fi router, this router can be mobile – battery driven, so the end user can take his own hot-spot / femtocell with him and use his data plan wherever he is (car, office ...) - Mobile phones/PDAs/UMPCs/notebooks – the Wi-Fi / MANET enabled end clients, can move freely, use MANET for internet connection, multi-hop to the gateway provided by one of the mobile routers - Because the primary function of the mobile routers is to route data, they are preferred as next-hops and MPRs so that the traffic does not burden so much the end clients. If it is not possible to use directly a router as a next-hop only then use an end client instead. 6.1 Mobile router Almost all of the MASH/MANET routers nowadays use some kind of embedded Linux distribution [15][16]. One of the most popular is OpenWrt [17], which implements a modular packaging system – ipkg. This enables to install new software on the router anytime. The packages can contain any system software so that it is possible to change completely the behavior / function of the router by simply installing one package [18]. 38 FEI DCI The software architecture of the mobile router: OLSR-NG OPENWRT LINUX KERNEL The freifunk firmware is based on the OpenWrt distribution. Because it is a complete firmware it is burned onto the device replacing whatever there was installed before. The other possibility is to install only the OLSR-NG as a package into an existing OpenWrt system. Fig. 10: The internals of the Linksys WRT54G3G with added batteries and a Flash-OFDM PCMCIA WWAN datacard 39 FEI DCI The Linksys WRT54G3G was ideal for a prototype of the mobile router, except the hardware battery hack done by Michael Watterson the PCMCIA slot provided a possibility to use a PCMCIA modem as the network uplink. This uplink can be then provided to other MANET nodes using OLSR-NG. The prototype was first created to present the possibilities of the Flash-OFDM technology [18]; just later its possible use in MANETs was realized. 6.2 Open Handset Alliance (OHA) Android platform A short characterization of the Android platform from its official site [19]: „The Open Handset Alliance, a group of more than 30 technology and mobile companies, is developing Android: the first complete, open, and free mobile platform. “ Android as the first open source Linux mobile platform is a great opportunity for Mobile Ad hoc Networks because most of their current implementations are Linux based. The problem with Android is that it officially supports only applications written in Java [20]. Hence the porting of OLSR-NG to the Android platform required some hacking. To the authors' knowledge, this is currently the only port of a MANET routing daemon for the Android platform. The first devices based on the Android platform should become available in Q3 2008. Due to the massive community / industry support it is highly possible that it will become a de-facto industry standard and compete with Symbian and Windows Mobile. [20] 40 FEI DCI Fig. 11: Android system architecture [19] 6.2.1 Android hacking Because there are no real Android based devices available yet, the only possibility for testing an Android port was to use the official Software Development Kit. The SDK contains a QEMU [21] virtual machine simulating an ARM based device. The first few lines from the console output of the emulator with kernel debugging enabled: Uncompressing Linux................................................................................. done, booting the kernel. Linux version 2.6.23-gcc3bc3b4 (arve@arvelnx.corp.google.com) (gcc version 4.2.1) #3 Tue Oct 30 16:28:18 PDT 2007 CPU: ARM926EJ-S [41069265] revision 5 (ARMv5TEJ), cr=00003137 Machine: Goldfish 41 FEI DCI This output clearly identifies us the kernel version, the GCC version and the ARM core used in the emulator. To avoid any problems the same GCC version will be used for compiling the OLSR-NG routing daemon, and other software if needed. The next problem is that although Android is an Operating System based on Linux kernel, the system libraries, system initialization and programmer interface are distinctly different from a standard Linux operating system [22]. This makes it a bit more complicated to write/port native application to Android. Maybe one of the greatest features of OLSR-NG is that it is written in pure C with only a few dependencies. So even on such exotic system as Android due to POSIX it should be possible to cross-compile the olsrd using the right version of GCC and static linkage. Example of cross-compiling for an ARM target using static linkage: arm-none-linux-gnueabi-gcc -static hello.c -o hello For the cross-compilation of OLSR-NG there were some changes in the makefiles required. Makefiles are included in the appendix. The cross-compiled OLSR-NG daemon olsrd can be uploaded into the emulator using the included adb tool. adb push olsrd /data/olsrd 42 FEI DCI Fig. 12: A printscreen showing OLSR-NG daemon running inside the Android emulator Using this approach it is possible to port most of the basic applications to the Android platform. For example the MANIAC API, iptables and iwspy that are needed for integrating the cooperation and QoS assurance strategies. 43 FEI DCI 6.2.2 Android OLSR-NG port testing To ensure that the OLSR-NG Android port is really working some tests needed to be done. The simplest possible test was to use two android emulators connected together via the host on which they were running. ANDROID 1 HOST eth0 ANDROID eth1 2 Both Androids were running olsrd on their eth0 interfaces, and the host ran olsrd on both eth0 and eth1. The test was successful, and showed that the Android OLSR-NG port will work in any other topology too. Fig. 13: A printscreen showing the testing topology running 44 FEI 7 DCI A MANET based service The technology is only one problem when speaking about MANETs, the other and maybe the even harder is how to make MANETs attractive for the private sector. Currently the technology is used only in specialized environments like army or community networks. For a widespread use it would need to adapt to the current trends like femtocells, seamless VoIP/GSM transition etc. With the arrival of the Android platform for mobile devices, it is possible to combine these new trends with MANETs. For example the Unlicensed Mobile Access (UMA) technology basically provides the possibility to seamlessly roam between the GSM network and a Wi-Fi VoIP service, and use the same telephone number. [23] Advantages of UMA: For carriers: - Instead of erecting base stations, UMA allows carries to add coverage using low cost 802.11 access points. This is very interesting for SOHO use, and generally for use inside buildings. - In addition, UMA relieves congestion from the GSM or UMTS spectrum by removing common types of calls, because they are routed to the operator using the relatively low cost Internet For subscribers: - Users can fix problems with coverage black spot by themselves - The end price that the user pays can be cheaper because of the use of 802.11 and Internet as uplink - UMA is currently the only commercial technology available that combines GSM and 802.11 into a service that uses a single number, a single handset, single set of services and a single phone directory for all calls. [24] 45 FEI DCI Fig. 14: How UMA technology works [23] If every UMA enabled handset would integrate MANET support, the coverage of such a network would grow directly proportional to the number of handset in the area. That would enable the service to grow as fast as no other service in history. 46 FEI DCI 8 Conclusion This thesis was aimed to map the current MANET technological possibilities and the features that need to be added to enable its widespread use „in the wild“. The OLSR-NG routing protocol was briefly characterized, as it was chosen based on objective criteria, as the best MANET routing protocol for building large scale networks. The experimental area of cooperation strategies was mentioned, and some attack vectors and counter measurements were presented. The Live and Let Live strategy, which by unique ways provides minimization of routing overhead/signalization, and shapes the topology in a way that the battery driven nodes are used as next-hops only if no other mean of connection exists, was presented in a deeper manner. Technologies like SDR and MIMO were briefly mentioned, as they gain more attention and are becoming more and more attractive for MANETs. A movement prediction based QoS assurance model was proposed. To demonstrate the feasibility of the large scale MANET implementation, the first ever mobile MANET enabled WAN/WWAN router and again the first ever MANET routing protocol daemon port on the Android platform were presented. The combination of Mobile Ad hoc Networks and Unlicensed Mobile Access (UMA) as a MANET based service for Telco / ISP operators was proposed. This thesis clearly showed that the large scale usage of Mobile Ad hoc Networks is possible, and that this technology can be used commercially. The author of this thesis would like to continue on his work on MANETs, participate again on the next Maniac Challenge and help to push this technology from its current experimental / enthusiast’s status to an everyday life capable technology. 47 FEI DCI Bibliography [1] CORSON, S. - MACKER, J. 1999. Mobile Ad hoc Networking (MANET): Routing Protocol Performance Issues and Evaluation Considerations RFC 2501 [2] Wikipedia. 2008. List of Ad hoc routing protocols [online] May 2008 http://en.wikipedia.org/wiki/List_of_Ad hoc_routing_protocols [3] Internet Engineering Task Force. 2008. Mobile Ad hoc Networks (MANET) WORKGROUP http://www.ietf.org/html.charters/manet-charter.html [4] Wikipedia. 2008. Optimized Link State Routing protocol [online] May 2008 http://en.wikipedia.org/wiki/OLSR [5] OLSR-NG Developer team. 2008. olsr next generation development @ funkfeuer [online] May 2008 http://olsr.funkfeuer.at/ [6] TONNESEN, A. 2004. Implementing and extending the Optimized Link State Routing protocol. Master’s Thesis. 2004. University of Oslo [7] OLSR-NG Developer team. 2008. olsr next generation wiki [online] May 2008 http://wiki.funkfeuer.at//index.php/Olsrd-ng [8] Freifunk. 2008. Google Summer of Code 2008 - Application [online] May 2008 http://wiki.freifunk.net/Google_Summer_of_Code_2008_-_Application [9] Wikipedia. 2008. Mobile ad-hoc network [online] May 2008 http://en.wikipedia.org/wiki/MANET [10] KLIMEK, I. - SIDIMÁK, V. 2008. MANIAC: Mobile Ad-Hoc Networks Interoperability and Cooperation: THE LIVE AND LET LIVE STRATEGY. Paper for the 8th Scientific Conference of Young Researchers at FEI TU of Kosice, 28 May 2008 [online] May 2008 http://www.cnl.tuke.sk/ivan-klimek [11] REED, D. P. 2002. How wireless networks scale: the illusion of spectrum scarcity [online] May 2008 http://www.jacksons.net/tac/Spectrum%20capacity%20myth%20FCC%20TAC.p df [12] DASILVA, L. - MACKENZIE, A. 2007. The Mobile Ad-hoc Networking Interoperability And Cooperation (MANIAC) Challenge [online] May 2008 http://www.maniacchallenge.org/dasilva_NeTS_PI_Meeting07.pdf 48 FEI DCI [13] FLAHERTY, N. 2007. Intel targets WiMAX with software radio device. Electronics Weekly. [online] May 2008 http://www.electronicsweekly.com/Articles/2007/12/11/42781/intel-targetswimax-with-software-radio-device.htm [14] PULLINGER, S. 2007. SOFTWARE DEFINED RADIO. A briefing paper for the European Parliament's Subcommittee on Security and Defence [online] May 2008 http://www.europarl.europa.eu/activities/committees/studies/download.do?file=19 479 [15] Freifunk. 2008. Freifunk Firmware homepage. [online] May 2008 http://ff-firmware.sourceforge.net/ [16] FreeNetworks. 2008. FreeNetworks homepage [online] May 2008 http://www.freenetworks.org/ [17] OpenWrt. 2008. OpenWrt homepage [online] May 2008 http://openwrt.org/ [18] KLIMEK, I. 2007. Progressive solution of communication services in the environment of wireless networks based on the Flarion technology [online] May 2008 http://www.cnl.tuke.sk/ivan-klimek [19] Google. 2008. Android - An Open Handset Alliance Project homepage [online] May 2008 http://code.google.com/android/ [20] Wikipedia. 2008. Android (mobile device platform) [online] May 2008 http://en.wikipedia.org/wiki/Android_(mobile_phone_platform) [21] BELLARD, F. 2008. QEMU homepage [online] May 2008 http://fabrice.bellard.free.fr/qemu/ [22] LESLIE, B. 2007. What is Android? [online] May 2008 http://benno.id.au/blog/2007/11/26/what-is-android [23] UMA Today. 2005. UMA Overview [online] May 2008 http://www.umatechnology.org/overview/ [24] Wikipedia. 2008. Generic Access Network [online] May 2008 http://en.wikipedia.org/wiki/Generic_Access_Network [25] PERKINS, C. E. 2008. Better Plumbing for Reduced Flooding. GENI Wireless Workshop. [online] May 2008 http://www.winlab.rutgers.edu/WMPG/Documents/Perkins.pdf [26] Internet Engineering Task Force. 2008. IETF ISIS workgroup [online] May 2008 http://www.ietf.org/html.charters/isis-charter.html 49 FEI DCI Appendices Appendix A CD medium - Bachelor’s Thesis in its electronic form, The Live and Let Live source code, OLSR-NG Android platform port Makefiles, OLSR-NG Android platform port 50