class Neighbor

true if tracing is enabled for export policy filters. More...

 
LOGO
 Annotated List  Files  Globals  Hierarchy  Index  Top

Public Methods

Protected Methods


Detailed Description

 Neighbor (EventLoop& ev, Neighborhood* parent, const OlsrTypes::NeighborID nid, const IPv4& main_addr, const OlsrTypes::LogicalLinkID linkid)

Neighbor

inline OlsrTypes::NeighborID  id ()

id

[const]

inline const IPv4  main_addr ()

main_addr

[const]

OlsrTypes::NeighborType  neighbor_type ()

neighbor_type

[const]

inline uint8_t  willingness ()

willingness

[const]

Get the willingness-to-forward for this neighbor.

Returns: the neighbor's willingness.

void  set_willingness (OlsrTypes::WillType value)

set_willingness

Set the willingness-to-forward for this neighbor.

This may trigger a recount of the node's MPR status; a node with willingness WILL_NEVER may never be an MPR.

Parameters:

valuethe new value for this neighbor's willingness property.
bool  is_mpr_selector ()

is_mpr_selector

[const]

Return the MPR selector state of this neighbor.

Returns: true if this neighbor has previously chosen this node as an MPR in a HELLO message, and the tuple is still valid.

void  set_is_mpr_selector (bool value, const TimeVal& expiry_time)

set_is_mpr_selector

Set the MPR selector state of this neighbor.

Parameters:

valuetrue if this neighbor selects this OLSR node as an MPR.
expiry_timeThe expiry time for MPR selector status. Ignored if value is false.
inline bool  is_mpr ()

is_mpr

[const]

Return the previously stored result of MPR selection. This is computed by the deferred MPR selection task in Neighborhood.

Returns: true if this neighbor has been selected as an MPR.

inline void  set_is_mpr (bool value)

set_is_mpr

inline bool  is_persistent_cand_mpr ()

is_persistent_cand_mpr

[const]

Returns: true if this neighbor is a persistent MPR candidate.

bool  is_cand_mpr ()

is_cand_mpr

Return the MPR candidacy of this neighbor. MPR candidacy is computed whenever Neighbor's link state changes.

TODO: NOTE WELL: If a neighbor is not reachable due to no good ETX links, it MUST NOT be considered as an MPR candidate. Currently the code does not take account of this.

Returns: true if this neighbor is a candidate MPR, that is, there is at least one link to a strict two-hop neighbor, and willingness is not WILL_NEVER.

inline bool  is_sym ()

is_sym

[const]

inline void  set_is_sym (bool value)

set_is_sym

inline const set<OlsrTypes::LogicalLinkID>&  links ()

links

[const]

inline const set<OlsrTypes::TwoHopLinkID>&  twohop_links ()

twohop_links

[const]

void  update_link (const OlsrTypes::LogicalLinkID linkid)

update_link

Associate a link tuple with a Neighbor or update an existing one. N_status is updated.

Parameters:

linkidthe ID of the link to associate with this Neighbor.
bool  delete_link (const OlsrTypes::LogicalLinkID linkid)

delete_link

Disassociate a link tuple from a Neighbor. N_status is updated.

Parameters:

linkidthe ID of the link to disassociate from this Neighbor.

Returns: true if there are no links to this Neighbor and it should now be deleted.

void  add_twohop_link (const OlsrTypes::TwoHopLinkID tlid)

add_twohop_link

Associate a two-hop link with a Neighbor. MPR candidacy and degree are updated.

Parameters:

tlidthe ID of the two-hop link to associate with this Neighbor.
bool  delete_twohop_link (const OlsrTypes::TwoHopLinkID tlid)

delete_twohop_link

Disassociate a two-hop link from a Neighbor. MPR candidacy and degree are updated.

Parameters:

tlidthe ID of the two-hop link to disassociate from this Neighbor.

Returns: true if this Neighbor has no more two-hop links.

size_t  delete_all_twohop_links ()

delete_all_twohop_links

Disassociate all two-hop links from a Neighbor. MPR candidacy and degree are updated.

Returns: the number of links which have been deleted.

void  event_mpr_selector_expired ()

event_mpr_selector_expired

Callback method to: process expiry of an MPR selector tuple.

inline uint32_t  degree ()

degree

[const]

Return the degree of this neighbor.

Returns: The number of symmetric neighbors of this neighbor, excluding this node, and other one-hop neighbors.

inline uint32_t  reachability ()

reachability

[const]

Return the previously computed reachability of this neighbor.

Returns: The number of strict, uncovered, two-hop neighbors to which this neighbor has a link.

inline void  set_reachability (uint32_t value)

set_reachability

Store the reachability of this neighbor.

Typically called during MPR selection, as reachability can only be computed during MPR selection.

Parameters:

valueThe number of strict, uncovered, two-hop neighbors to which this neighbor has a link.
inline bool  is_advertised ()

is_advertised

[const]

Return if this neighbor is advertised in TC messages.

Returns: true if this neighbor is advertised in TC messages.

inline void  set_is_advertised (bool value)

set_is_advertised

Store the "is in advertised neighbor set" status.

Parameters:

valuetrue if this neighbor is advertised in TC.
void  recount_degree ()

recount_degree

[protected]

Re-count the degree of this strict one-hop Neighbor.

Section 8.3.1 defines the degree of a one-hop neighbor as the number of symmetric neighbors of the neighbor, excluding any members of the one-hop neighborhood, and excluding this node.

Triggered by a two-hop link state change. TODO: Distribute the computation by pushing the responsibility for signalling the change of state to TwoHopNeighbor, rather than doing it here.

bool  update_cand_mpr (bool was_cand_mpr)

update_cand_mpr

[protected]

Update the MPR candidacy of this neighbor.

Triggered by a one-hop or two-hop link state change. The Neighborhood is notified of the change.

Parameters:

was_cand_mprtrue if the node was an MPR candidate before any other criteria changed.

Returns: true if the node is now an MPR candidate.


Generated by: bms on anglepoise.lon.incunabulum.net on Wed Jul 23 10:06:13 2008, using kdoc 2.0a54+XORP.