class MribTable

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

Definition#include <mrib_table.hh>
List of all Methods
Annotated List
Files
Globals
Hierarchy
Index

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

void  clear ()

clear

Remove all entries (make the container empty).

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  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  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()).

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 possum.icir.org on Thu Nov 6 23:46:55 2003, using kdoc 2.0a54+XORP.