next up previous contents
Next: Parsing and processing of Up: Implementation Previous: Objects   Contents


Routing interface

The role of the routing interface is to fetch the routing information from the switch routing tables. However, we are going to simulate the switch, so we need a means of responding to the routing queries in a sensible way.

The simplest solution was to use a file describing the topology of the network, as several DCAN projects do. An example of a topology file is shown in figure [*]. It describes the network shown in figure [*].

Figure: A simple network
\resizebox{\linewidth}{!}{\includegraphics{figures/example-network.eps}}

Figure: Example of a topology file
\begin{figure}\begin{small}
\verbatimtabinput{text_files/topology_file}
\end{small}\end{figure}

When the RSVP agent is run, it reads the topology file. If the hosts described in this file are described by their names, DNS3.1 lookups are done to find the addresses. The facility provided by Route is a method called unicastRequest, indicating through which port of the managed switch RSVP messages must be sent in order to reach a given IP address. A unique hash table is used to store this information.

I designed two classes in order to manipulate IPv4 addresses as well as IPv6 addresses in the whole program with the same methods. Those methods are gathered in the mynet package. IP addresses are represented by byte arrays which can be 4-byte long (IPv4) or 16-byte long (IPv6). In order to manipulate addresses in this format easily, a set of methods have been written in InetAddressManipulate. Then, tools to manage the hash table have been developed in InetAddressHashCode. Unfortunately, some of those functions depend on JDK3.2's functions, and the JDK does not support IPv6 yet. That is why the control architecture will not support IPv6 yet.

Multicasting is not supported either. The multicastRequest function, returning the list of ports corresponding to a multicast address, has not been implemented.

Moreover, this simulated routing system is static: a real routing system may change the route because of a broken link or because of ICMP3.3 messages. In our simulation, we assume that the routes do not change. Changing routes would have an impact on the whole agent, because reservations must be adapted if a route changes. This ability to adapt reservations to route changes is called local repair.


next up previous contents
Next: Parsing and processing of Up: Implementation Previous: Objects   Contents
Hugo Haas
hugo@larve.net
July 1998 - Please note that this HTML version is broken; I advise you to read the PostScript version.