|
|
PimMribTable (PimNode& pim_node)
| PimMribTable |
Constructor.
Parameters:
pim_node | the PimNode this table belongs to. |
~PimMribTable ()
| ~PimMribTable |
[virtual]
PimNode& pim_node ()
| pim_node |
[const]
Get the PimNode this table belongs to.
Returns: the PimNode this table belongs to.
See also: PimTable.
int family ()
| family |
Get the address family.
Returns: the address family (AF_INET or AF_INET6 for IPv4 and IPv6 respectively).
Reimplemented from MribTable.
PimMrt& pim_mrt ()
| pim_mrt |
Get the corresponding PIM Multicast Routing Table.
Returns: the corresponding PIM Multicast Routing Table.
See also: PimMrt.
void clear ()
| clear |
Clear the table by removing all entries.
Reimplemented from MribTable.
Mrib * find (const IPvX& address)
| find |
[const]
Search the table and find the corresponding Mrib entry for a given destination address.
Parameters:
address | the destination address to search for. |
Returns: the Mrib entry for the destination address.
See also: Mrib.
Reimplemented from MribTable.
void add_pending_insert (uint32_t tid, const Mrib& mrib,
const string& next_hop_vif_name)
| add_pending_insert |
Add a MRIB entry to the MRIB table.
Note that if the MRIB entry is for one of my own addresses, then we check the next-hop interface. If it points toward the loopback interface (e.g., in case of KAME IPv6 stack), then we overwrite it with the network interface this address belongs to.
Parameters:
tid | the transaction ID. |
mrib | the MRIB entry to add. |
next_hop_vif_name | the next-hop vif name. It is used for later resolving of Mrib::_next_hop_vif_index if the vif name is not known yet. |
See also: Mrib.
Reimplemented from MribTable.
void add_pending_remove (uint32_t tid, const Mrib& mrib)
| add_pending_remove |
Remove a MRIB entry from the MRIB table.
Parameters:
tid | the transaction ID. |
mrib | the MRIB entry to remove. |
Reimplemented from MribTable.
void add_pending_remove_all_entries (uint32_t tid)
| add_pending_remove_all_entries |
Remove all MRIB entries from the MRIB table.
Parameters:
tid | the transaction ID. |
Reimplemented from MribTable.
void commit_pending_transactions (uint32_t tid)
| commit_pending_transactions |
Commit all pending MRIB entries to the MRIB table.
Parameters:
tid | the transaction ID for the pending MRIB entries to commit. |
Reimplemented from MribTable.
void apply_mrib_changes ()
| apply_mrib_changes |
Apply all changes to the table.
Note that this may trigger various changes to the PIM protocol state machines.
list<IPvXNet>& modified_prefix_list ()
| modified_prefix_list |
Get the list of modified prefixes since the last commit.
Returns: the list of modified prefixes since the last commit.
void resolve_prefixes_by_vif_name (const string& next_hop_vif_name,
uint16_t next_hop_vif_index)
| resolve_prefixes_by_vif_name |
Resolve all destination prefixes whose next-hop vif name was not resolved earlier (e.g., the vif was unknown).
Parameters:
next_hop_vif_name | the name of the resolved vif. |
next_hop_vif_index | the index of the resolved vif. |