IO is performed by the associated class IO.
Olsr (EventLoop& eventloop, IO* io)
| Olsr |
inline bool running ()
| running |
Returns: true if this routing process is running.
ProcessStatus status (string& reason)
| status |
Determine routing process status.
Parameters:
reason | a text description of the current process status. |
Returns: status of the routing process.
void shutdown ()
| shutdown |
Shut down this routing process.
void receive (const string& interface, const string& vif,
IPv4 dst, uint16_t dport, IPv4 src, uint16_t sport,
uint8_t* data, uint32_t len)
| receive |
Callback method to: receive a datagram.
All packets for OLSR are received through this interface. All good packets are sent to the face manager which verifies that the packet is expected, and is wholly responsible for further processing.
bool transmit (const string& interface, const string& vif,
const IPv4& dst, const uint16_t& dport,
const IPv4& src, const uint16_t& sport,
uint8_t* data, const uint32_t& len)
| transmit |
inline void register_vif_status (IO::VifStatusCb cb)
| register_vif_status |
Register vif status callback with the FEA.
Parameters:
cb | the callback to register. |
inline void register_address_status (IO::AddressStatusCb cb)
| register_address_status |
Register address status callback with the FEA.
Parameters:
cb | the callback to register. |
inline EventLoop& get_eventloop ()
| get_eventloop |
inline FaceManager& face_manager ()
| face_manager |
inline Neighborhood& neighborhood ()
| neighborhood |
inline TopologyManager& topology_manager ()
| topology_manager |
inline ExternalRoutes& external_routes ()
| external_routes |
inline RouteManager& route_manager ()
| route_manager |
inline bool set_main_addr (const IPv4& addr)
| set_main_addr |
Set the main address for the node.
Parameters:
addr | the main address to set. |
Returns: true if the main address was set successfully.
inline IPv4 get_main_addr ()
| get_main_addr |
Returns: the main address.
inline bool set_mpr_coverage (const uint32_t mpr_coverage)
| set_mpr_coverage |
Set the MPR_COVERAGE for the node.
Parameters:
mpr_coverage | the new value of MPR_COVERAGE. |
Returns: true if MPR_COVERAGE was set successfully.
inline uint32_t get_mpr_coverage ()
| get_mpr_coverage |
Returns: the value of the MPR_COVERAGE variable.
inline bool set_tc_redundancy (const uint32_t tc_redundancy)
| set_tc_redundancy |
Set the TC_REDUNDANCY for the node.
Parameters:
tc_redundancy | the new value of TC_REDUNDANCY. |
Returns: true if TC_REDUNDANCY was set successfully.
inline uint32_t get_tc_redundancy ()
| get_tc_redundancy |
Returns: the value of the TC_REDUNDANCY variable.
inline bool set_hello_interval (const TimeVal& interval)
| set_hello_interval |
Set the HELLO_INTERVAL.
Parameters:
interval | the new value of HELLO_INTERVAL. |
Returns: true if HELLO_INTERVAL was set successfully.
inline TimeVal get_hello_interval ()
| get_hello_interval |
Returns: the value of the HELLO_INTERVAL variable.
inline bool set_mid_interval (const TimeVal& interval)
| set_mid_interval |
Set the MID_INTERVAL.
Parameters:
interval | the new value of MID_INTERVAL. |
Returns: true if MID_INTERVAL was set successfully.
inline TimeVal get_mid_interval ()
| get_mid_interval |
Returns: the value of the MID_INTERVAL variable.
inline bool set_refresh_interval (const TimeVal& interval)
| set_refresh_interval |
Set the REFRESH_INTERVAL.
Parameters:
interval | the new refresh interval. |
Returns: true if the refresh interval was set successfully.
inline TimeVal get_refresh_interval ()
| get_refresh_interval |
Returns: the value of the REFRESH_INTERVAL protocol variable.
inline bool set_tc_interval (TimeVal interval)
| set_tc_interval |
Set the TC interval for the node.
Parameters:
interval | the new TC interval. |
Returns: true if the TC interval was set successfully.
inline TimeVal get_tc_interval ()
| get_tc_interval |
Returns: the value of the TC_INTERVAL protocol variable.
inline bool set_willingness (const OlsrTypes::WillType willingness)
| set_willingness |
Set the WILLINGNESS.
Parameters:
willingness | the new willingness-to-forward. |
Returns: true if the willingness was set successfully.
inline OlsrTypes::WillType get_willingness ()
| get_willingness |
Returns: the WILLINGNESS protocol variable.
inline bool set_hna_interval (const TimeVal& interval)
| set_hna_interval |
Set the HNA interval.
Parameters:
interval | the new HNA interval. |
Returns: true if the HNA interval was set successfully.
inline TimeVal get_hna_interval ()
| get_hna_interval |
Returns: the value of the HNA_INTERVAL protocol variable.
inline bool set_dup_hold_time (const TimeVal& interval)
| set_dup_hold_time |
Set the DUP_HOLD_TIME.
Parameters:
interval | the new duplicate message hold time |
Returns: true if the DUP_HOLD_TIME was set successfully.
inline TimeVal get_dup_hold_time ()
| get_dup_hold_time |
Returns: the value of the DUP_HOLD_TIME protocol variable.
bool bind_address (const string& interface,
const string& vif,
const IPv4& local_addr,
const uint32_t& local_port,
const IPv4& all_nodes_addr,
const uint32_t& all_nodes_port)
| bind_address |
Bind OLSR to an interface.
Parameters:
interface | the name of the interface to listen on. |
vif | the name of the vif to listen on. |
local_addr | the address to listen on. |
local_port | the address on the interface to listen on. |
all_nodes_addr | the address to transmit to. |
all_nodes_port | the port to transmit to. |
Returns: true if the address was bound successfully.
bool unbind_address (const string& interface, const string& vif)
| unbind_address |
Unbind OLSR from an interface.
OLSR may only be bound to a single address on an interface, therefore there is no 'address' argument to this method.
Parameters:
interface | the name of the interface to unbind. |
vif | the name of the vif to unbind. |
Returns: true if the interface was unbound successfully.
bool enable_address (const string& interface, const string& vif,
const IPv4& address, const uint16_t& port,
const IPv4& all_nodes_address)
| enable_address |
Enable I/O for OLSR on a given address.
Proxy for class IO.
Parameters:
interface | the name of the interface to listen on. |
vif | the name of the vif to listen on. |
address | the name of the address to listen on. |
port | the name of the port to listen on. |
all_nodes_address | the name of the address to transmit to. |
Returns: true if the address was enabled successfully.
bool disable_address (const string& interface, const string& vif,
const IPv4& address, const uint16_t& port)
| disable_address |
Disable I/O for OLSR on a given address.
Proxy for class IO.
Parameters:
interface | the name of the interface to listen on. |
vif | the name of the vif to listen on. |
address | the name of the address to listen on. |
port | the name of the port to listen on. |
Returns: true if the address was enabled successfully.
bool set_interface_enabled (const string& interface, const string& vif,
const bool enabled)
| set_interface_enabled |
Enable or disable an interface for OLSR.
Parameters:
interface | the name of the interface to enable/disable. |
vif | the name of the vif to enable/disable. |
enabled | the new enable state of the interface. |
Returns: true if the interface state was set to @param enabled successfully.
bool get_interface_enabled (const string& interface, const string& vif,
bool& enabled)
| get_interface_enabled |
Determine if an interface is enabled for OLSR.
Parameters:
interface | the name of the interface to examine. |
vif | the name of the vif to examine. |
enabled | output variable will be set to the enable state of the interface. |
Returns: true if the enable state was retrieved successfully.
bool get_interface_stats (const string& interface, const string& vif,
FaceCounters& stats)
| get_interface_stats |
Get an interface's statistics.
Parameters:
interface | the name of the interface to examine. |
vif | the name of the vif to examine. |
stats | output variable will be set to the interface stats. |
Returns: true if the stats werre retrieved successfully.
inline bool set_interface_cost (const string& interface,
const string& vif, int cost)
| set_interface_cost |
Set the cost on an interface.
Parameters:
interface | the name of the interface to set cost for. |
vif | the name of the vif to set cost for. |
cost | the new cost of the interface. |
Returns: true if the interface cost was set successfully.
uint32_t get_mtu (const string& interface)
| get_mtu |
Get the MTU of an interface.
Parameters:
interface | the name of the interface to get MTU for. |
Returns: the MTU of the interface.
bool get_broadcast_address (const string& interface, const string& vif,
const IPv4& address, IPv4& bcast_address)
| get_broadcast_address |
Get the primary IPv4 broadcast address configured for this interface/vif/address.
Parameters:
interface | the interface to get broadcast address for. |
vif | the vif to get broadcast address for. |
address | the IPv4 interface address. |
bcast_address | (out argument) the IPv4 broadcast address. |
Returns: true if the broadcast address was obtained successfully.
bool is_vif_broadcast_capable (const string& interface,
const string& vif)
| is_vif_broadcast_capable |
Test whether this interface/vif is broadcast capable.
Parameters:
interface | the interface to test. |
vif | the vif to test. |
Returns: true if it is broadcast capable, otherwise false.
bool is_vif_multicast_capable (const string& interface,
const string& vif)
| is_vif_multicast_capable |
Test whether this interface/vif is multicast capable.
Parameters:
interface | the interface to test. |
vif | the vif to test. |
Returns: true if it is multicast capable, otherwise false.
bool add_route (IPv4Net net, IPv4 nexthop, uint32_t nexthop_id,
uint32_t metric, const PolicyTags& policytags)
| add_route |
Add route.
Parameters:
net | network |
nexthop_id | interface ID towards the nexthop |
metric | to network |
policytags | policy info to the RIB. |
bool replace_route (IPv4Net net, IPv4 nexthop, uint32_t nexthop_id,
uint32_t metric, const PolicyTags& policytags)
| replace_route |
Replace route.
Parameters:
net | network |
nexthop_id | interface ID towards the nexthop |
metric | to network |
policytags | policy info to the RIB. |
bool delete_route (IPv4Net net)
| delete_route |
Delete route.
Parameters:
net | network |
void configure_filter (const uint32_t& filter, const string& conf)
| configure_filter |
Configure a policy filter
Parameters:
filter | Id of filter to configure. |
conf | Configuration of filter. |
void reset_filter (const uint32_t& filter)
| reset_filter |
Reset a policy filter.
Parameters:
filter | Id of filter to reset. |
void push_routes ()
| push_routes |
Push routes through policy filters for re-filtering.
bool originate_external_route (const IPv4Net& net,
const IPv4& nexthop,
const uint32_t& metric,
const PolicyTags& policytags)
| originate_external_route |
Originate an external route in HNA.
Parameters:
net | network prefix to originate. |
nexthop | the next hop. Ignored by HNA. |
metric | external metric for this route. |
policytags | the policy tags associated with this route. |
Returns: true if the route was originated successfully.
bool withdraw_external_route (const IPv4Net& net)
| withdraw_external_route |
Withdraw an external route from HNA.
Parameters:
net | network prefix to withdraw. |
Returns: true if the route was withdrawn successfully.
PolicyFilters& get_policy_filters ()
| get_policy_filters |
Returns: a reference to the policy filters
Trace& trace ()
| trace |
Returns: a reference to the tracing variables
bool clear_database ()
| clear_database |
Clear protocol databases.
A full routing recomputation should be triggered by this operation. This specifically clears links, MID, TC, learned HNA entries, and the duplicate message set only.