urv.olsr.core
Class RoutingTableComputationController

java.lang.Object
  extended by urv.olsr.core.RoutingTableComputationController

public class RoutingTableComputationController
extends java.lang.Object

Each node maintains a routing table which allows it to route data, destined for the other nodes in the network. The routing table is based on the information contained in the local link information base and the topology set. Therefore, if any of these sets are changed, the routing table is recalculated to update the route information about each destination in the network. The route entries are recorded in the routing table in the following format: 1. R_dest_addr R_next_addr R_dist R_iface_addr 2. R_dest_addr R_next_addr R_dist R_iface_addr 3. ,, ,, ,, ,, Each entry in the table consists of R_dest_addr, R_next_addr, R_dist, and R_iface_addr. Such entry specifies that the node identified by R_dest_addr is estimated to be R_dist hops away from the local node, that the symmetric neighbor node with interface address R_next_addr is the next hop node in the route to R_dest_addr, and that this symmetric neighbor node is reachable through the local interface with the address R_iface_addr. Entries are recorded in the routing table for each destination in the network for which a route is known. All the destinations, for which a route is broken or only partially known, are not recorded in the table. More precisely, the routing table is updated when a change is detected in either: - the link set, - the neighbor set, - the 2-hop neighbor set, - the topology set, - the Multiple Interface Association Information Base, More precisely, the routing table is recalculated in case of neighbor appearance or loss, when a 2-hop tuple is created or removed, when a topology tuple is created or removed or when multiple interface association information changes. The update of this routing information does not generate or trigger any messages to be transmitted, neither in the network, nor in the 1-hop neighborhood. To construct the routing table of node X, a shortest path algorithm is run on the directed graph containing the arcs X -> Y where Y is any symmetric neighbor of X (with Neighbor Type equal to SYM), the arcs Y -> Z where Y is a neighbor node with willingness different of WILL_NEVER and there exists an entry in the 2-hop Neighbor set with Y as N_neighbor_main_addr and Z as N_2hop_addr, and the arcs U -> V, where there exists an entry in the topology set with V as T_dest_addr and U as T_last_addr.

Author:
Marcel Arrufat Arias

Constructor Summary
RoutingTableComputationController(NeighborTable neighborTable, RoutingTable routingTable, TopologyInformationBaseTable topologyTable, NeighborsOfNeighborsSet neighborsOfNeighborsSet, OLSRNode localNode)
           
 
Method Summary
 void computeNewRoutingTable()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

RoutingTableComputationController

public RoutingTableComputationController(NeighborTable neighborTable,
                                         RoutingTable routingTable,
                                         TopologyInformationBaseTable topologyTable,
                                         NeighborsOfNeighborsSet neighborsOfNeighborsSet,
                                         OLSRNode localNode)
Method Detail

computeNewRoutingTable

public void computeNewRoutingTable()