##
urv.olsr.core

Class MprComputationController

java.lang.Object
**urv.olsr.core.MprComputationController**

public class **MprComputationController**

- extends java.lang.Object

Computes a new set of MPR with the information stored in the
neighbor table.
The MPR set MUST be calculated by a node in such a way that it,
through the neighbors in the MPR-set, can reach all symmetric strict
2-hop neighbors. (Notice that a node, a, which is a direct neighbor
of another node, b, is not also a strict 2-hop neighbor of node b).
This means that the union of the symmetric 1-hop neighborhoods of the
MPR nodes contains the symmetric strict 2-hop neighborhood. MPR set
recalculation should occur when changes are detected in the symmetric
neighborhood or in the symmetric strict 2-hop neighborhood.
MPRs are computed per interface, the union of the MPR sets of each
interface make up the MPR set for the node.
While it is not essential that the MPR set is minimal, it is
essential that all strict 2-hop neighbors can be reached through the
selected MPR nodes. A node SHOULD select an MPR set such that any
strict 2-hop neighbor is covered by at least one MPR node. Keeping
the MPR set small ensures that the overhead of the protocol is kept
at a minimum.
The MPR set can coincide with the entire symmetric neighbor set.
This could be the case at network initialization (and will correspond
to classic link-state routing).

**Author:**
- Marcel Arrufat Arias

**Methods inherited from class java.lang.Object** |

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait` |

###
MprComputationController

public **MprComputationController**(NeighborTable neighborTable,
NeighborsOfNeighborsSet neighborsOfNeighborsSet,
MprSet mprSet,
OLSRNode localNode)

###
computeNewMprSet

public boolean **computeNewMprSet**()

- Compute a new MPR set

###
getMprSet

public MprSet **getMprSet**()

- Returns the reference to the last computed MPRSet

**Returns:**