class Mrt

Template class for Multicast Routing Table. More...

Definition#include <mrt.hh>
Template formMrt<class E>
List of all Methods
Annotated List
Files
Globals
Hierarchy
Index

Public Types

Public Methods


Detailed Description

 Mrt ()

Mrt

Default constructor

 ~Mrt ()

~Mrt

[virtual]

Destructor

typedef map<MreSgKey, E*> SgMap

SgMap

typedef map<MreGsKey, E*> GsMap

GsMap

typedef SgMap::iterator sg_iterator

sg_iterator

typedef GsMap::iterator gs_iterator

gs_iterator

typedef SgMap::const_iterator const_sg_iterator

const_sg_iterator

typedef GsMap::const_iterator const_gs_iterator

const_gs_iterator

void  clear ()

clear

Remove all multicast routing entries from the table.

Note that the entries themselves are also deleted.

E * insert (E *mre)

insert

Insert a multicast routing entry that was already created.

Note that we insert a pointer to the mre, hence mre should not be deleted without removing it first from the table.

Parameters:
mrethe multicast routing entry to insert.

Returns: the multicast routing entry that was inserted on success, otherwise NULL.

int  remove (E *mre)

remove

Remove a multicast routing entry from the table.

Note that the entry itself is not deleted.

Parameters:
mrethe multicast routing entry to delete from the table.

Returns: XORP_OK if the entry was in the table and was successfully removed, otherwise XORP_ERROR.

E * find (const IPvX& source_addr, const IPvX& group_addr)

find

[const]

Find a multicast routing entry from the table.

Parameters:
source_addrthe source address to search for.
group_addrthe group address to search for.

Returns: the multicast routing entry for source source_addr and group group_addr if found, otherwise NULL.

E * find_source (const IPvX& source_addr)

find_source

[const]

Find the first multicast routing entry for a source address.

Parameters:
source_addrthe source address to search for.

Returns: the first multicast routing entry for source source_addr if found, otherwise NULL.

E * find_group (const IPvX& group_addr)

find_group

[const]

Find the first multicast routing entry for a group address.

Parameters:
group_addrthe group address to search for.

Returns: the first multicast routing entry for group group_addr if found, otherwise NULL.

E * find_source_by_prefix (const IPvXNet& prefix_s)

find_source_by_prefix

[const]

Find the first multicast routing entry for a source address prefix.

Parameters:
prefix_sthe source address prefix to search for.

Returns: the first multicast routing entry for source address prefix prefix_s if found, otherwise NULL.

E * find_group_by_prefix (const IPvXNet& prefix_g)

find_group_by_prefix

[const]

Find the first multicast routing entry for a group address prefix.

Parameters:
prefix_gthe group address prefix to search for.

Returns: the first multicast routing entry for group address prefix prefix_g if found, otherwise NULL.

size_t  size ()

size

[const]

Get the number of multicast routing entries in the table.

Returns: the number of multicast routing entries.

const_sg_iterator  sg_begin ()

sg_begin

[const]

Get an iterator for the first element in the source-group table.

Returns: the iterator for the first element in the source-group table.

const_gs_iterator  gs_begin ()

gs_begin

[const]

Get an iterator for the first element in the group-source table.

Returns: the iterator for the first element in the group-source table.

const_sg_iterator  sg_end ()

sg_end

[const]

Get an iterator for the last element in the source-group table.

Returns: the iterator for the last element in the source-group table.

const_gs_iterator  gs_end ()

gs_end

[const]

Get an iterator for the last element in the group-source table.

Returns: the iterator for the last element in the group-source table.

const_sg_iterator  source_by_prefix_begin (const IPvXNet& prefix_s)

source_by_prefix_begin

[const]

Find the source iterator for the first multicast routing entry for a source address prefix.

Parameters:
prefix_sthe source address prefix to search for.

Returns: the iterator for first entry with source address that matches prefix_s. If no matching entry is found, the return value is source_by_prefix_end().

const_sg_iterator  source_by_prefix_end (const IPvXNet& prefix_s)

source_by_prefix_end

[const]

Find the source iterator for the one-after-the-last multicast routing entry for a source address prefix.

Parameters:
prefix_sthe source address prefix to search for.

Returns: the iterator for one-after-the-last entry with source address that matches prefix_s. If no such entry exists, the return value is sg_end().

const_gs_iterator  group_by_prefix_begin (const IPvXNet& prefix_g)

group_by_prefix_begin

[const]

Find the group iterator for the first multicast routing entry for a group address prefix.

Parameters:
prefix_gthe group address prefix to search for.

Returns: the iterator for first entry with group address that matches prefix_g. If no matching entry is found, the return value is group_by_prefix_end().

const_gs_iterator  group_by_prefix_end (const IPvXNet& prefix_g)

group_by_prefix_end

[const]

Find the group iterator for the one-after-the-last multicast routing entry for a group address prefix.

Parameters:
prefix_gthe group address prefix to search for.

Returns: the iterator for one-after-the-last entry with group address that matches prefix_g. If no such entry exists, the return value is gs_end().

const_sg_iterator  source_by_addr_begin (const IPvX& source_addr)

source_by_addr_begin

[const]

Find the source iterator for the first multicast routing entry for a source address.

Parameters:
source_addrthe source address to search for.

Returns: the iterator for first entry with source address that matches source_addr. If no matching entry is found, the return value is source_by_addr_end().

const_sg_iterator  source_by_addr_end (const IPvX& source_addr)

source_by_addr_end

[const]

Find the source iterator for the one-after-the-last multicast routing entry for a source address.

Parameters:
source_addrthe source address to search for.

Returns: the iterator for one-after-the-last entry with source address that matches source_addr. If no such entry exists, the return value is sg_end().

const_gs_iterator  group_by_addr_begin (const IPvX& group_addr)

group_by_addr_begin

[const]

Find the group iterator for the first multicast routing entry for a group address.

Parameters:
group_addrthe group address to search for.

Returns: the iterator for first entry with group address that matches group_addr. If no matching entry is found, the return value is group_by_addr_end().

const_gs_iterator  group_by_addr_end (const IPvX& group_addr)

group_by_addr_end

[const]

Find the group iterator for the one-after-the-last multicast routing entry for a group address.

Parameters:
group_addrthe group address prefix to search for.

Returns: the iterator for one-after-the-last entry with group address that matches group_addr. If no such entry exists, the return value is gs_end().

const_gs_iterator  group_source_by_addr_begin ( const IPvX& source_addr, const IPvX& group_addr)

group_source_by_addr_begin

[const]

Find the group iterator for the multicast routing entry for a source and a group address.

Parameters:
source_addrthe source address to search for.
group_addrthe group address to search for.

Returns: the iterator for entry with source and group address that matches source_addr and group_addr. If no matching entry is found, the return value is the next entry.

const_sg_iterator  source_group_by_addr_begin ( const IPvX& source_addr, const IPvX& group_addr)

source_group_by_addr_begin

[const]

Find the source iterator for the multicast routing entry for a source and a group address.

Parameters:
source_addrthe source address to search for.
group_addrthe group address to search for.

Returns: the iterator for entry with source and group address that matches source_addr and group_addr. If no matching entry is found, the return value is the next entry.


Generated by: pavlin on possum.icir.org on Mon Mar 10 19:34:51 2003, using kdoc 2.0a54+XORP.