class MribTable

Base class for the Multicast Routing Information Base Table. More...

 
LOGO
 Annotated List  Files  Globals  Hierarchy  Index  Top

Public Types

Public Methods


Detailed Description

 MribTable (int family)

MribTable

Constructor for table of a given address family.

Parameters:

familythe address family.
 ~MribTable ()

~MribTable

Destructor

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

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:

vif true, then the removed Mrib entries are preserved otherwise they are deleted.
Mribinsert (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:

mribthe 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_prefixthe destination prefix of the entry to remove.
void  remove (const Mrib& mrib)

remove

Remove a Mrib entry from the table.

Parameters:

mriba Mrib with information about the entry to remove.
Mribfind (const IPvX& address)

find

[const]

Find the longest prefix match for an address.

Parameters:

addressthe lookup address.

Returns: a pointer to the longest prefix Mrib match for address if exists, otherwise NULL.

Mribfind_exact (const IPvXNet& dest_prefix)

find_exact

[const]

Find an exact match for a network address prefix.

Parameters:

dest_prefixthe 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_prefixthe destination prefix of the Mrib entry to update.
vif_indexthe 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:

tidthe transaction ID.
mribthe 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:

tidthe transaction ID.
mribthe 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:

tidthe 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:

tidthe 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:

tidthe 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.


Generated by: pavlin on kobe.xorp.net on Wed Jan 7 19:10:52 2009, using kdoc 2.0a54+XORP.