#include <IPv4InterfaceData.h>
Public Types | |
| typedef std::vector< IPAddress > | IPAddressVector |
Public Member Functions | |
| IPv4InterfaceData () | |
| virtual | ~IPv4InterfaceData () |
| virtual std::string | info () const |
| virtual std::string | detailedInfo () const |
Getters | |
| IPAddress | getIPAddress () const |
| IPAddress | getNetmask () const |
| int | getMetric () const |
| const IPAddressVector & | getMulticastGroups () const |
| bool | isMemberOfMulticastGroup (const IPAddress &multicastAddress) const |
Setters | |
| virtual void | setIPAddress (IPAddress a) |
| virtual void | setNetmask (IPAddress m) |
| virtual void | setMetric (int m) |
| virtual void | setMulticastGroups (const IPAddressVector &v) |
Protected Member Functions | |
| void | changed1 () |
Protected Attributes | |
| IPAddress | inetAddr |
| IP address of interface. | |
| IPAddress | netmask |
| netmask | |
| int | metric |
| link "cost"; see e.g. MS KB article Q299540 | |
| IPAddressVector | multicastGroups |
| multicast groups | |
Private Member Functions | |
| IPv4InterfaceData (const IPv4InterfaceData &obj) | |
| IPv4InterfaceData & | operator= (const IPv4InterfaceData &obj) |
IPv4-specific data in an InterfaceEntry. Stores interface IP address, netmask, metric, etc.
Definition at line 39 of file IPv4InterfaceData.h.
| typedef std::vector<IPAddress> IPv4InterfaceData::IPAddressVector |
Definition at line 42 of file IPv4InterfaceData.h.
| IPv4InterfaceData::IPv4InterfaceData | ( | const IPv4InterfaceData & | obj | ) | [private] |
| IPv4InterfaceData::IPv4InterfaceData | ( | ) |
Definition at line 33 of file IPv4InterfaceData.cc.
| virtual IPv4InterfaceData::~IPv4InterfaceData | ( | ) | [inline, virtual] |
Definition at line 60 of file IPv4InterfaceData.h.
{}
| void IPv4InterfaceData::changed1 | ( | ) | [inline, protected] |
Definition at line 51 of file IPv4InterfaceData.h.
| std::string IPv4InterfaceData::detailedInfo | ( | ) | const [virtual] |
Definition at line 58 of file IPv4InterfaceData.cc.
{
std::stringstream out;
out << "inet addr:" << getIPAddress() << "\tMask: " << getNetmask() << "\n";
out << "Metric: " << getMetric() << "\n";
out << "Groups:";
for (unsigned int j=0; j<getMulticastGroups().size(); j++)
if (!getMulticastGroups()[j].isUnspecified())
out << " " << getMulticastGroups()[j];
out << "\n";
return out.str();
}
| IPAddress IPv4InterfaceData::getIPAddress | ( | ) | const [inline] |
Definition at line 66 of file IPv4InterfaceData.h.
Referenced by NetworkConfigurator::addPointToPointPeerRoutes(), RoutingTable::configureRouterId(), detailedInfo(), RSVP::evalNextHopInterface(), RoutingTable::gatherAddresses(), IPAddressResolver::getAddressFrom(), RoutingTable::getInterfaceByAddress(), IPAddressResolver::getIPv4AddressFrom(), info(), TED::initialize(), LinkStateRouting::initialize(), RoutingTable::isLocalAddress(), SCTPAssociation::processInitArrived(), LDP::rebuildFecList(), IP::routeMulticastPacket(), IP::routePacket(), ARP::sendARPRequest(), SCTPAssociation::sendInit(), OSPF::Interface::SetIfIndex(), RSVP::setupHello(), and RoutingTable::updateNetmaskRoutes().
{return inetAddr;}
| int IPv4InterfaceData::getMetric | ( | ) | const [inline] |
Definition at line 68 of file IPv4InterfaceData.h.
Referenced by detailedInfo(), TED::initialize(), and RoutingTable::updateNetmaskRoutes().
{return metric;}
| const IPAddressVector& IPv4InterfaceData::getMulticastGroups | ( | ) | const [inline] |
Definition at line 69 of file IPv4InterfaceData.h.
Referenced by detailedInfo(), info(), isMemberOfMulticastGroup(), and RoutingTableParser::parseMulticastGroups().
{return multicastGroups;}
| IPAddress IPv4InterfaceData::getNetmask | ( | ) | const [inline] |
Definition at line 67 of file IPv4InterfaceData.h.
Referenced by detailedInfo(), info(), OSPF::Interface::SetIfIndex(), and RoutingTable::updateNetmaskRoutes().
{return netmask;}
| std::string IPv4InterfaceData::info | ( | ) | const [virtual] |
Definition at line 43 of file IPv4InterfaceData.cc.
{
std::stringstream out;
out << "IP:{inet_addr:" << getIPAddress() << "/" << getNetmask().getNetmaskLength();
if (!getMulticastGroups().empty())
{
out << " mcastgrps:";
for (unsigned int j=0; j<getMulticastGroups().size(); j++)
if (!getMulticastGroups()[j].isUnspecified())
out << (j>0?",":"") << getMulticastGroups()[j];
}
out << "}";
return out.str();
}
| bool IPv4InterfaceData::isMemberOfMulticastGroup | ( | const IPAddress & | multicastAddress | ) | const |
Definition at line 73 of file IPv4InterfaceData.cc.
Referenced by RoutingTable::isLocalMulticastAddress().
{
int n = getMulticastGroups().size();
for (int i=0; i<n; i++)
if (multicastAddress.equals(getMulticastGroups()[i]))
return true;
return false;
}
| IPv4InterfaceData& IPv4InterfaceData::operator= | ( | const IPv4InterfaceData & | obj | ) | [private] |
| virtual void IPv4InterfaceData::setIPAddress | ( | IPAddress | a | ) | [inline, virtual] |
Definition at line 75 of file IPv4InterfaceData.h.
Referenced by NetworkConfigurator::assignAddresses(), FlatNetworkConfigurator::assignAddresses(), RoutingTable::configureLoopbackForIPv4(), RoutingTable::configureRouterId(), and RoutingTableParser::parseInterfaces().
| virtual void IPv4InterfaceData::setMetric | ( | int | m | ) | [inline, virtual] |
Definition at line 77 of file IPv4InterfaceData.h.
Referenced by RoutingTable::configureInterfaceForIPv4(), RoutingTable::configureLoopbackForIPv4(), and RoutingTableParser::parseInterfaces().
| virtual void IPv4InterfaceData::setMulticastGroups | ( | const IPAddressVector & | v | ) | [inline, virtual] |
Definition at line 78 of file IPv4InterfaceData.h.
Referenced by RoutingTableParser::parseMulticastGroups().
{multicastGroups = v; changed1();}
| virtual void IPv4InterfaceData::setNetmask | ( | IPAddress | m | ) | [inline, virtual] |
Definition at line 76 of file IPv4InterfaceData.h.
Referenced by NetworkConfigurator::assignAddresses(), FlatNetworkConfigurator::assignAddresses(), RoutingTable::configureLoopbackForIPv4(), RoutingTable::configureRouterId(), and RoutingTableParser::parseInterfaces().
IPAddress IPv4InterfaceData::inetAddr [protected] |
IP address of interface.
Definition at line 45 of file IPv4InterfaceData.h.
int IPv4InterfaceData::metric [protected] |
link "cost"; see e.g. MS KB article Q299540
Definition at line 47 of file IPv4InterfaceData.h.
Referenced by IPv4InterfaceData().
IPAddressVector IPv4InterfaceData::multicastGroups [protected] |
multicast groups
Definition at line 48 of file IPv4InterfaceData.h.
IPAddress IPv4InterfaceData::netmask [protected] |
1.7.1