## Deliverable D4.3: Experimental tools

This page provides short description of tools developed in the course of the EULER project, plus links to source codes and documentation, as well as tools used or improved within the project.

### 1 Simulation tools

#### 1.1 DRMSim, *a network simulator for the investigation of routing schemes*

Description | The objective of DRMSim is to provide a routing model simulator to the scientific networking community. DRMSim does not aim at performing accurate simulations at the forwarding level. Instead it focuses on the underlying routing layer itself, by exposing a clear and dedicated Application Programming Interface (API) to its users. In other words, it is devoted to the construction of routing tables and so to the evaluation of the behavior and performances of various distributed routing schemes (performance metrics are: stretch, size of routing tables, number of messages, adaptivity to topological modifications, etc.). Simulations are modeled according to the discrete-event paradigm. |

Licence | open-source (GPLv3) |

Webpage | http://drmsim.gforge.inria.fr |

Release | Release 1.1 available at http://drmsim.gforge.inria.fr (05/01/2012) |

Scenario | Any non-valued, oriented/non-oriented simple graph (no multi-edges allowed) network, with topology dynamic (addition/removal of nodes/links). Topology size is only limited by the routing scheme memory requirement. |

Projects that can take benefits of this tool

#### 1.2 CMR, *ad-hoc network simulator for the investigation of dynamic compact multicast routing schemes*

Description | The objective of CMR tool is to execute and evaluate dynamic compact multicast routing schemes. It is an ad-hoc Java simulator that currently implements four schemes only, namely the Shortest Path, Steiner Tree, AMR and PPC algorithms. It Simulations are modeled according to the discrete-event paradigm. |

Licence | simulator not ready to be public |

Webpage | simulator not ready to be public |

Release | simulator not ready to be public |

Scenario | Any scenario where nodes can join and leave multicast session. Topology up to 35000 nodes. A sessions can have up to 4000 members. |

#### 1.3 FIGHT, *Future Internet Graph Hyperbolic Tool*

Description | The FIGHT-software is a generic platform for hyperbolic routing. We built on the one hand a routing-algorithm-interface, that allows calculations for the routing-table information, and on the other hand a forwarder-interface, that allows forwarding-strategies on the basis of the routing-table information. Now, we made a few implementations of these interfaces: for example a random forwarder, and an oracle-forwarder, which automagically takes the good decisions and always forwards to the neighbour that is actually on the shortest path to the destination. Any protocol can be added as desired. The system allows to attach coordinates to nodes, whatever coordinates may be. So this is also an interface that allows the most diverse implementations of actual coordinates, eg. vector-coordinates in a multidimensional hyperbolic space. An algorithm called "the assigner" then assigns coordinates to nodes. On the basis of these coordinates, several strategies to build routing-tables and forwarding algorithms are possible. Thirdly, the system allows to inspect the state of the network, and allow monitoring the performance, whatever that means (e.g. the stretch). We implemented a few coordinate-assignment-strategies and routing-protocols, which we tested under different circumstances (e.g. failing links or nodes). The tool allows to experiment with alternatives in order to derive interesting conclusions about these protocols. |

Licence | Contact Pieter for more information |

Webpage | Contact Pieter for more information |

Release | Contact Pieter for more information |

Scenario | Test hyperbolic routing-protocols, and associated convergence, stability, reliability, etc... |

### 2 Emulation tools

#### 2.1 Click Modular Router, *w software architecture for building extendible and congurable routers and switches*

Description | Click is a new software architecture for building extendible and configurable routers. A Click router is assembled from packet processing modules called elements. Individual elements implement simple router functions like packet classification, queueing, scheduling, and interfacing with network devices. A router configuration is a directed graph with elements at the vertices; packets flow along the edges of the graph. Several features make individual elements more powerful and complex configurations easier to write, including pull connections, which model packet flow driven by transmitting hardware devices, and flow-based router context, which helps an element locate other interesting elements. |

Licence | open-source (MIT/BSD-like => This license is an MIT license, plus a clause (taken from the W3C license) requiring prior written permission to use Click author names in publicity. More info at http://www.read.cs.ucla.edu/click/license) |

Webpage | http://www.read.cs.ucla.edu/click/ |

Release | Release 2.0.1 (Sept 2011) |

Scenario | Emulation of any forwarding and/or custom-built routing scheme |

Projects that can take benefits of this tool

#### 2.2 Quagga, *a routing software suite*

Description | Quagga is an already developed free software routing suite, providing implementations of OSPFv2, OSPFv3, RIP v1 and v2, RIPng and BGP-4 for Unix platforms. It is developed in C code and the tools provided by the suite will be used for the real development of the protocols and algorithms (such as compact multicast) defined within the framework of the EULER project. Moreover, the resulting implementations will be able to be tested in real scenarios.. |

Licence | open-source (GPL) |

Webpage | http://www.quagga.net/ |

Release | Release 0.99.20 (29/09/2011) |

Scenario | Emulation of any IPv4/IPv6 routing system |

Projects that can take benefits of this tool

### 3 Measurement tools

#### 3.1 TraceTree

Description | Tracetree performs fast ego-centered measurements of the IP topology around a monitor (similar to a routing tree from this node) with low and balanced network load. The tracetree tool discovers a tree by sending probes towards all destinations in parallel in a backward manner and avoids redundancy by stopping probing towards some destinations when paths collapse: given a set of destinations, it first discovers the last link on the path to each of them, then the previous link on each of these paths, and so on; when two (or more) paths reach the same node then it stops probing towards all corresponding destinations except one. |

Licence | open-source (GPLv3) |

Webpage | http://www-rp.lip6.fr/~latapy/Radar |

Release | 1.0 |

Scenario | Measurement of ego-centered views from an IPv4 monitor. Monitoring of a network around a node, study of routing trees, test of models. |

Projects that can take benefits of this tool

#### 3.2 Radar

Description | Radar is a shell script that runs tracetree periodically from a given monitor. The measurement frequency must be high enough to capture interesting dynamics, but low enough to keep the network load reasonable. |

Licence | open-source (GPLv3) |

Webpage | http://www-rp.lip6.fr/~latapy/Radar |

Release | 1.0 |

Scenario | Measurement of the dynamics of internet (IPv4) topology around a node. Ego-centered event detection, study of the dynamics of routing trees, test of dynamical models. |

Projects that can take benefits of this tool

#### 3.3 (distributed) UDP-ping

Description | UDP-ping sends a UDP probe to a given target (IP address) which induces an ICMP message back from this target. In principle, the source address of this answer is the interface used to send it, and so UDP-ping may be used to find a new interface of the target (and for anti-aliasing purpose). In its distributed version, UDP-ping is used to measure the degree of a given router: many monitors distributed in the internet send a probe to a given target and get answers from different interfaces of this target. With many well distributed monitors, one may obtain this way all interfaces of the target (and thus its degree). |

Licence | open-source (GPLv3) |

Webpage | http://www-rp.lip6.fr/~latapy/ |

Release | 1.0 |

Scenario | Network monitoring tool. Listing of interfaces of a target. Estimation of degree distribution. Anti-aliasing. |

Projects that can take benefits of this tool

### 4 Models and properties tools

#### 4.1 Grph, *a portable graph library tailored to network simulation and graph analysis*

Description | Grph is a Java library for graph algorithms experimentation and network simulation. It enables to conduct experiments on large graph instances (e.g., millions of nodes). A large collection of algorithms have already been implemented (see list), including; several graph generators (GNP, GNM, GLP, Inet, BRITE, Chordal, etc.); distances computations; traversal methods (BFS, DFS, set of nodes at given distance, etc.); structural tests (connectivity, chordality, etc.); topological property computation (betweenness, clustering coefficient, etc.). In addition, a number of tools for statistics as well as for the computation of distributions, linear regressions, power-law exponents, etc. are also provided. |

Licence | Free for non-commercial usage http://www-sop.inria.fr/members/Luc.Hogie/grph/license.txt |

Webpage | http://www-sop.inria.fr/mascotte/software/grph/ |

Release | Last release available at http://www-sop.inria.fr/mascotte/software/grph/ (03/01/2012) |

Scenario | Each time graphs are involved, for instance for studying the evolution of graph properties with the evolution of the graph topology. |

Projects that can take benefits of this tool

### 5 External tools used by project partners

#### 5.1 Sage *open-source mathematical software system*

Description | Sage consists of a collection of mathematical software and a core library bundling the functionality of these components into a unified interface. Sage can be used to study elementary and advanced, pure and applied mathematics. This includes a huge range of mathematics, including basic algebra, calculus, elementary to very advanced number theory, cryptography, numerical computation, commutative algebra, group theory, combinatorics, graph theory, exact linear algebra and much more. It combines various software packages and seamlessly integrates their functionality into a common experience. The objective of Sage is to create a viable free open source alternative to Magma, Maple, Mathematica and Matlab. It is well-suited for education and research. |

Licence | open-source (GPL) |

Webpage | http://www.sagemath.org |

Release | Last release available at http://www.sagemath.org |

Scenario | Any scenario involving numerical calculus and/or graph algorithms |

Projects that can take benefits of this tool