|
|
MribTable (int family)
| MribTable |
Constructor for table of a given address family.
Parameters:
family | the address family. |
~MribTable ()
| ~MribTable |
typedef MribTableIterator iterator | iterator |
int family ()
| family |
[const]
Get the address family.
Returns: the address family ((e.g., AF_INET or AF_INET6 for IPv4 and IPv6 respectively).
void clear ()
| clear |
Remove all entries and pending transactions (make the container empty).
void remove_all_entries ()
| remove_all_entries |
list<Mrib *>& removed_mrib_entries ()
| removed_mrib_entries |
Get a reference to the list with removed Mrib entries.
Returns: a reference to the list with removed Mrib entries.
bool is_preserving_removed_mrib_entries ()
| is_preserving_removed_mrib_entries |
[const]
Test if the removed Mrib entries are preserved or deleted.
Returns: true if the removed Mrib entries are preserved, otherwise false.
void set_is_preserving_removed_mrib_entries (bool v)
| set_is_preserving_removed_mrib_entries |
Enable or disable the preserving of the removed Mrib entries.
Parameters:
v | if true, then the removed Mrib entries are preserved otherwise they are deleted. |
Mrib * insert (const Mrib& mrib)
| insert |
Insert a copy of a Mrib entry.
Note: if there is an existing Mrib entry for the same prefix, the old entry is deleted.
Parameters:
mrib | the entry to insert. |
Returns: a pointer to the inserted entry on success, otherwise NULL.
void remove (const IPvXNet& dest_prefix)
| remove |
Remove from the table a Mrib entry for a given destination prefix.
Parameters:
dest_prefix | the destination prefix of the entry to remove. |
void remove (const Mrib& mrib)
| remove |
Remove a Mrib entry from the table.
Parameters:
mrib | a Mrib with information about the entry to remove. |
Mrib * find (const IPvX& address)
| find |
[const]
Find the longest prefix match for an address.
Parameters:
address | the lookup address. |
Returns: a pointer to the longest prefix Mrib match for address if exists, otherwise NULL.
Mrib * find_exact (const IPvXNet& dest_prefix)
| find_exact |
[const]
Find an exact match for a network address prefix.
Parameters:
dest_prefix | the lookup network address prefix. |
Returns: a pointer to the exact Mrib match for dest_prefix if exists, otherwise NULL.
iterator begin ()
| begin |
[const]
Get an iterator for the first element.
Returns: the iterator for the first element.
iterator end ()
| end |
[const]
Get an iterator for the last element.
Returns: the iterator for the last element.
void update_entry_vif_index (const IPvXNet& dest_prefix,
uint32_t vif_index)
| update_entry_vif_index |
Update the vif index of a Mrib entry.
Parameters:
dest_prefix | the destination prefix of the Mrib entry to update. |
vif_index | the new vif index of the Mrib entry. |
void add_pending_insert (uint32_t tid, const Mrib& mrib)
| add_pending_insert |
Add a pending transaction to insert a Mrib entry from the table.
The operation is added to the list of pending transactions, but the entry itself is not added to the table (until MribTable::commit_pending_transactions() is called).
Parameters:
tid | the transaction ID. |
mrib | the Mrib entry that contains the information about the entry to add. |
void add_pending_remove (uint32_t tid, const Mrib& mrib)
| add_pending_remove |
Add a pending transaction to remove a Mrib entry from the table.
the operation is added to the list of pending transaction, but the entry itself is not removed from the table (until MribTable::commit_pending_transactions() is called).
Parameters:
tid | the transaction ID. |
mrib | the Mrib entry that contains the information about the entry to remove. |
void add_pending_remove_all_entries (uint32_t tid)
| add_pending_remove_all_entries |
Add a pending transaction to remove all Mrib entries from the table.
the operation is added to the list of pending transaction, but the entries themselves is not removed from the table (until MribTable::commit_pending_transactions() is called).
Parameters:
tid | the transaction ID. |
void commit_pending_transactions (uint32_t tid)
| commit_pending_transactions |
Commit pending transactions for adding or removing Mrib entries for a given transaction ID.
All pending transactions to add/remove Mrib entries for a given transaction ID are processes (see MribTable::add_pending_insert() and MribTable::add_pending_remove() and MribTable::add_pending_remove_all_entries()).
Parameters:
tid | the transaction ID of the entries to commit. |
void abort_pending_transactions (uint32_t tid)
| abort_pending_transactions |
Abort pending transactions for adding or removing Mrib entries for a given transaction ID.
Parameters:
tid | the transaction ID of the entries to abort. |
void abort_all_pending_transactions ()
| abort_all_pending_transactions |
Abort all pending transactions for adding or remove Mrib entries.
size_t size ()
| size |
[const]
Get the number of Mrib entries in the table.
Returns: the number of Mrib entries in the table.