#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] |