![]() |
Multicast Routing Modelling In OMNeT++
|
Class represents one entry of PimInterfaceTable. More...
#include <PimInterfaceTable.h>
Public Member Functions | |
virtual std::string | info () const |
void | setInterfaceID (int iftID) |
void | setInterfacePtr (InterfaceEntry *intPtr) |
void | setMode (PIMmode mode) |
int | getInterfaceID () const |
InterfaceEntry * | getInterfacePtr () const |
PIMmode | getMode () const |
std::vector< IPAddress > | getIntMulticastAddresses () const |
void | setIntMulticastAddresses (std::vector< IPAddress > intMulticastAddresses) |
void | addIntMulticastAddress (IPAddress addr) |
void | removeIntMulticastAddress (IPAddress addr) |
bool | isLocalIntMulticastAddress (IPAddress addr) |
std::vector< IPAddress > | deleteLocalIPs (std::vector< IPAddress > multicastAddr) |
Protected Attributes | |
int | intID |
InterfaceEntry * | intPtr |
PIMmode | mode |
std::vector< IPAddress > | intMulticastAddresses |
Class represents one entry of PimInterfaceTable.
One entry contains interfaces ID, pointer to the interface, PIM mode and multicast addresses assigned to the interface.
Definition at line 31 of file PimInterfaceTable.h.
std::string PimInterface::info | ( | ) | const [virtual] |
Actually not in use
Definition at line 50 of file PimInterfaceTable.cc.
void PimInterface::setInterfaceID | ( | int | iftID | ) | [inline] |
Set identifier of interface.
Definition at line 45 of file PimInterfaceTable.h.
void PimInterface::setInterfacePtr | ( | InterfaceEntry * | intPtr | ) | [inline] |
Set pointer to interface.
Definition at line 46 of file PimInterfaceTable.h.
void PimInterface::setMode | ( | PIMmode | mode | ) | [inline] |
Set PIM mode configured on the interface.
Definition at line 47 of file PimInterfaceTable.h.
int PimInterface::getInterfaceID | ( | ) | const [inline] |
Get identifier of interface.
Definition at line 50 of file PimInterfaceTable.h.
InterfaceEntry* PimInterface::getInterfacePtr | ( | ) | const [inline] |
Get pointer to interface.
Definition at line 51 of file PimInterfaceTable.h.
PIMmode PimInterface::getMode | ( | ) | const [inline] |
Get PIM mode configured on the interface.
Definition at line 52 of file PimInterfaceTable.h.
std::vector<IPAddress> PimInterface::getIntMulticastAddresses | ( | ) | const [inline] |
Get list of multicast addresses assigned to the interface.
Definition at line 53 of file PimInterfaceTable.h.
void PimInterface::setIntMulticastAddresses | ( | std::vector< IPAddress > | intMulticastAddresses | ) | [inline] |
Set multicast addresses to the interface.
Definition at line 56 of file PimInterfaceTable.h.
void PimInterface::addIntMulticastAddress | ( | IPAddress | addr | ) | [inline] |
Add multicast address to the interface.
Definition at line 57 of file PimInterfaceTable.h.
void PimInterface::removeIntMulticastAddress | ( | IPAddress | addr | ) |
REMOVE INTERFACE MULTICAST ADDRESS
The method removes given address from vector of multicast addresses.
addr | IP address which should be deleted. |
Definition at line 64 of file PimInterfaceTable.cc.
{ for(unsigned int i = 0; i < intMulticastAddresses.size(); i++) { if (intMulticastAddresses[i] == addr) { intMulticastAddresses.erase(intMulticastAddresses.begin() + i); return; } } }
bool PimInterface::isLocalIntMulticastAddress | ( | IPAddress | addr | ) |
IS LOCAL INETRFACE MULTICAST ADDRESS
The method finds out if IP address is assigned to interface as local multicast address.
addr | Multicast IP address which we are looking for. |
Definition at line 116 of file PimInterfaceTable.cc.
{ for(unsigned int i = 0; i < intMulticastAddresses.size(); i++) { if (intMulticastAddresses[i] == addr) return true; } return false; }
std::vector< IPAddress > PimInterface::deleteLocalIPs | ( | std::vector< IPAddress > | multicastAddr | ) |
DELETE LOCAL IPs
The method removes all link local (224.0.0.0 to 224.0.0.255) multicast addresses from the list.
multicastAddr | List of address which has to be checked. |
Definition at line 86 of file PimInterfaceTable.cc.
{ EV << "PimInterface::deleteLocalIPs" << endl; for(int j = 0; j < (multicastAddr.size()); j++) EV << multicastAddr[j] << ", "; EV << endl; std::vector<IPAddress> newMulticastAddresses; for(unsigned int i = 0; i < multicastAddr.size(); i++) { EV << multicastAddr[i] << endl; if (!multicastAddr[i].isLinkLocalMulticast()) { EV << "isLinkLocalMulticast" << endl; newMulticastAddresses.push_back(multicastAddr[i]); } } EV << "Velikost vysledku: " << newMulticastAddresses.size() << endl; return newMulticastAddresses; }
int PimInterface::intID [protected] |
Identification of interface.
Definition at line 34 of file PimInterfaceTable.h.
InterfaceEntry* PimInterface::intPtr [protected] |
Pointer to interface table entry.
Definition at line 35 of file PimInterfaceTable.h.
PIMmode PimInterface::mode [protected] |
Type of mode.
Definition at line 36 of file PimInterfaceTable.h.
std::vector<IPAddress> PimInterface::intMulticastAddresses [protected] |
Multicast addresses assigned to interface.
Definition at line 37 of file PimInterfaceTable.h.