urv.olsr.core
Class RoutingTableComputationController
java.lang.Object
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
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
RoutingTableComputationController
public RoutingTableComputationController(NeighborTable neighborTable,
RoutingTable routingTable,
TopologyInformationBaseTable topologyTable,
NeighborsOfNeighborsSet neighborsOfNeighborsSet,
OLSRNode localNode)
computeNewRoutingTable
public void computeNewRoutingTable()