|
|
Concrete implementation of IO using XRLs.
XrlIO (EventLoop& eventloop, XrlRouter& xrl_router, const string& feaname,
const string& ribname)
| XrlIO |
~XrlIO ()
| ~XrlIO |
bool startup ()
| startup |
Startup operation.
Returns: true on success, false on failure.
Reimplemented from ServiceBase.
bool shutdown ()
| shutdown |
Shutdown operation.
Returns: true on success, false on failure.
Reimplemented from ServiceBase.
void component_up (string )
| component_up |
Called when internal subsystem comes up.
void component_down (string )
| component_down |
Called when internal subsystem goes down.
void recv (const string& interface,
const string& vif,
A src,
A dst,
uint32_t ip_protocol,
int32_t ip_ttl,
int32_t ip_tos,
bool ip_router_alert,
const vector<uint8_t>& payload)
| recv |
bool send (const string& interface, const string& vif,
A dst, A src,
uint8_t* data, uint32_t len)
| send |
Send Raw frames.
Reimplemented from IO.
bool enable_interface_vif (const string& interface, const string& vif)
| enable_interface_vif |
Enable the interface/vif to receive frames.
Reimplemented from IO.
bool disable_interface_vif (const string& interface, const string& vif)
| disable_interface_vif |
Disable this interface/vif from receiving frames.
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_address_enabled (const string& interface, const string& vif,
const A& 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<A>& 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_link_local_address (const string& interface, const string& vif,
A& address)
| get_link_local_address |
Get a link local address for this interface/vif if available.
Parameters:
interface | the name of the interface |
vif | the name of the vif |
address | (out argument) set if address is found. |
Returns: true if a link local address is available.
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,
A 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.
Reimplemented from IO.
uint32_t get_mtu (const string& interface)
| get_mtu |
Obtain the MTU for an interface.
Parameters:
the | name of the interface. |
Returns: the mtu for the interface.
Reimplemented from IO.
bool join_multicast_group (const string& interface, const string& vif,
A mcast)
| join_multicast_group |
On the interface/vif join this multicast group.
Reimplemented from IO.
bool leave_multicast_group (const string& interface, const string& vif,
A mcast)
| leave_multicast_group |
On the interface/vif leave this multicast group.
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 |
bool add_route (IPNet<A> net,
A nexthop,
uint32_t nexthop_id,
uint32_t metric,
bool equal,
bool discard,
const PolicyTags& policytags)
| add_route |
Add route to RIB.
Parameters:
net | network |
nexthop_id | interface ID towards the nexthop |
metric | to network |
equal | true if this in another route to the same destination. |
discard | true if this is a discard route. |
policytags | policy info to the RIB. |
Reimplemented from IO.
bool replace_route (IPNet<A> net,
A nexthop,
uint32_t nexthop_id,
uint32_t metric,
bool equal,
bool discard,
const PolicyTags& policytags)
| replace_route |
Replace route in RIB.
Parameters:
net | network |
nexthop_id | interface ID towards the nexthop |
metric | to network |
equal | true if this in another route to the same destination. |
discard | true if this is a discard route. |
policytags | policy info to the RIB. |
Reimplemented from IO.
bool delete_route (IPNet<A> net)
| delete_route |
Delete route from RIB.
Reimplemented from IO.