|
|
XrlIO (EventLoop& eventloop, XrlRouter& xrl_router,
const string& feaname, const string& ribname)
| XrlIO |
Construct an XrlIO instance.
Parameters:
eventloop | the event loop for the OLSR process. |
xrl_router | the name of the XRL router instance. |
feaname | the name of the FEA XRL target. |
ribname | the name of the RIB XRL target. |
~XrlIO ()
| ~XrlIO |
int startup ()
| startup |
Startup operation.
Returns: XORP_OK on success, otherwise XORP_ERROR.
Reimplemented from ServiceBase.
int shutdown ()
| shutdown |
Shutdown operation.
Returns: XORP_OK on success, otherwise XORP_ERROR.
Reimplemented from ServiceBase.
void component_up (string name)
| component_up |
Called when internal subsystem comes up.
Parameters:
name | the name of the affected subsystem |
void component_down (string name)
| component_down |
Called when internal subsystem goes down.
Parameters:
name | the name of the affected subsystem |
void receive (const string& sockid,
const string& interface, const string& vif,
const IPv4& src, const uint16_t& sport,
const vector<uint8_t>& payload)
| receive |
Receive UDP datagrams. Specific to XrlIO.
Parameters:
sockid | the id of the socket. |
interface | the interface where received. |
vif | the vif where received. |
src | the source port of the UDP datagram. |
sport | the source address of the UDP datagram. |
payload | the datagram payload. |
bool send (const string& interface, const string& vif,
const IPv4& src, const uint16_t& sport,
const IPv4& dst, const uint16_t& dport,
uint8_t* data, const uint32_t& len)
| send |
Send a UDP datagram on a specific link.
Parameters:
interface | the interface to send from. |
vif | the vif to send from. |
src | the IPv4 address to send from. |
sport | the UDP port to send from. |
dst | the IPv4 address to send to. |
dport | the UDP port to send to. |
data | the datagram payload. |
len | the length of the buffer @param data |
Returns: true if the datagram was queued successfully, otherwise false.
Reimplemented from IO.
bool enable_interface_vif (const string& interface, const string& vif)
| enable_interface_vif |
Enable the interface/vif to receive frames. XXX
Parameters:
interface | the name of the interface to enable. |
vif | the name of the vif to enable. |
Returns: true if the interface/vif was enabled successfully, otherwise false.
bool disable_interface_vif (const string& interface, const string& vif)
| disable_interface_vif |
Disable this interface/vif from receiving frames. XXX
Parameters:
interface | the name of the interface to disable. |
vif | the name of the vif to disable. |
Returns: true if the interface/vif was disabled successfully, otherwise false.
bool enable_address (const string& interface, const string& vif,
const IPv4& address, const uint16_t& port,
const IPv4& all_nodes_address)
| enable_address |
Enable an IPv4 address and port for OLSR datagram reception and transmission.
Parameters:
interface | the interface to enable. |
vif | the vif to enable. |
address | the address to enable. |
port | the port to enable. |
all_nodes_address | the address to transmit to. |
Returns: true if the address was enabled, otherwise false.
Reimplemented from IO.
bool disable_address (const string& interface, const string& vif,
const IPv4& address, const uint16_t& port)
| disable_address |
Disable an IPv4 address and port for OLSR datagram reception.
Parameters:
interface | the interface to disable. |
vif | the vif to disable. |
address | the address to disable. |
port | the port to disable. |
Returns: true if the address was disabled, otherwise false.
Reimplemented from IO.
bool is_interface_enabled (const string& interface)
| is_interface_enabled |
[const]
Test whether an interface is enabled.
Parameters:
interface | the name of the interface to test. |
Returns: true if it exists and is enabled, otherwise false.
Reimplemented from IO.
bool is_vif_enabled (const string& interface, const string& vif)
| is_vif_enabled |
[const]
Test whether an interface/vif is enabled.
Parameters:
interface | the name of the interface to test. |
vif | the name of the vif to test. |
Returns: true if it exists and is enabled, otherwise false.
Reimplemented from IO.
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.
Reimplemented from IO.
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.
Reimplemented from IO.
bool is_vif_loopback (const string& interface, const string& vif)
| is_vif_loopback |
Reimplemented from IO.
bool is_address_enabled (const string& interface, const string& vif,
const IPv4& address)
| is_address_enabled |
[const]
Test whether an interface/vif/address is enabled.
Parameters:
interface | the name of the interface to test. |
vif | the name of the vif to test. |
address | the address to test. |
Returns: true if it exists and is enabled, otherwise false.
Reimplemented from IO.
bool get_addresses (const string& interface, const string& vif,
list<IPv4>& addresses)
| get_addresses |
[const]
Get all addresses associated with this interface/vif.
Parameters:
interface | the name of the interface |
vif | the name of the vif |
addresses | (out argument) list of associated addresses |
Returns: true if there are no errors.
Reimplemented from IO.
bool get_broadcast_address (const string& interface,
const string& vif, IPv4& address)
| get_broadcast_address |
[const]
Get the broadcast address associated with this vif.
Parameters:
interface | the name of the interface |
vif | the name of the vif |
address | (out argument) "all nodes" address |
Returns: true if there are no errors.
Reimplemented from IO.
bool get_broadcast_address (const string& interface,
const string& vif,
const IPv4& address,
IPv4& bcast_address)
| get_broadcast_address |
[const]
Get the broadcast address associated with this IPv4 address.
Parameters:
interface | the name of the interface |
vif | the name of the vif |
address | IPv4 binding address |
bcast_address | (out argument) primary broadcast address |
Returns: true if there are no errors.
Reimplemented from IO.
bool get_interface_id (const string& interface, uint32_t& interface_id)
| get_interface_id |
Get the interface ID.
Parameters:
interface | the name of the interface. |
interface_id | the value if found.. |
Returns: true if the interface ID has been found..
Reimplemented from IO.
uint32_t get_prefix_length (const string& interface, const string& vif,
IPv4 address)
| get_prefix_length |
Obtain the subnet prefix length for an interface/vif/address.
Parameters:
interface | the name of the interface. |
vif | the name of the vif. |
address | the address. |
Returns: the subnet prefix length for the address.
uint32_t get_mtu (const string& interface)
| get_mtu |
Obtain the MTU for an interface.
Parameters:
interface | the name of the interface. |
Returns: the mtu for the interface.
Reimplemented from IO.
void register_rib ()
| register_rib |
void unregister_rib ()
| unregister_rib |
Remove registration from the RIB.
void rib_command_done (const XrlError& error, bool up,
const char *comment)
| rib_command_done |
Callback method to: signal that an XRL command which has been sent to the RIB has returned.
Parameters:
error | the XRL command return code. |
up | indicates if the RIB component has been brought up or down. |
comment | text description of operation being performed. |
bool add_route (IPv4Net net,
IPv4 nexthop,
uint32_t nexthop_id,
uint32_t metric,
const PolicyTags& policytags)
| add_route |
Add route to RIB.
Parameters:
net | network |
nexthop_id | interface ID towards the nexthop |
metric | to network |
policytags | policy info to the RIB. |
Returns: true if the route add was queued successfully, otherwise false.
Reimplemented from IO.
bool replace_route (IPv4Net net,
IPv4 nexthop,
uint32_t nexthop_id,
uint32_t metric,
const PolicyTags& policytags)
| replace_route |
Replace route in RIB.
Parameters:
net | network |
nexthop_id | interface ID towards the nexthop |
metric | to network |
policytags | policy info to the RIB. |
Returns: true if the route replacement was queued successfully, otherwise false.
Reimplemented from IO.
bool delete_route (IPv4Net net)
| delete_route |
Delete route from RIB.
Parameters:
net | the destination to delete route for. |
Returns: true if the route delete was queued successfully, otherwise false.
Reimplemented from IO.