INET Framework for OMNeT++/OMNEST
|
IPv6-specific data for InterfaceEntry. More...
#include <IPv6InterfaceData.h>
Classes | |
struct | AddressData |
struct | AdvPrefix |
For routers: advertised prefix configuration. More... | |
struct | HomeNetworkInfo |
Zarrar 03.09.07: Home Network Information maintains home network information like the MN's home address (HoA) and the HA's address and its prefix. More... | |
struct | HostConstants |
struct | HostMulticastData |
struct | HostVariables |
struct | NodeConstants |
struct | NodeVariables |
struct | RouterConstants |
struct | RouterMulticastData |
struct | RouterVariables |
Public Types | |
enum | { F_IP_ADDRESS, F_MULTICAST_ADDRESSES, F_MULTICAST_LISTENERS } |
enum | AddressType { HoA, CoA } |
The enum AddressType defined below and the new member of the struct AddressData {AddressType addrType} is relevant for MN(s) only as the address(es) configured on the MN interface needs to be tagged as either HoA or CoA, based upon the status of the H-Flag recieved in the RA. More... | |
typedef std::vector< IPv6Address > | IPv6AddressVector |
Public Member Functions | |
bool | isDADInProgress () |
void | setDADInProgress (bool val) |
IPv6InterfaceData () | |
virtual | ~IPv6InterfaceData () |
std::string | info () const override |
std::string | detailedInfo () const override |
Addresses | |
virtual void | assignAddress (const IPv6Address &addr, bool tentative, simtime_t expiryTime, simtime_t prefExpiryTime, bool hFlag=false) |
Assigns the given address to the interface. More... | |
virtual void | updateMatchingAddressExpiryTimes (const IPv6Address &prefix, int length, simtime_t expiryTime=SIMTIME_ZERO, simtime_t prefExpiryTime=SIMTIME_ZERO) |
Update expiry times of addresses. More... | |
int | getNumAddresses () const |
Returns the number of addresses the interface has. More... | |
const IPv6Address & | getAddress (int i) const |
Returns ith address of the interface. More... | |
bool | isTentativeAddress (int i) const |
Returns true if the ith address of the interface is tentative. More... | |
AddressType | getAddressType (int i) const |
Returns the address type (HoA, CoA) of the ith address of the interface. More... | |
AddressType | getAddressType (const IPv6Address &addr) const |
Returns the address type (HoA, CoA) of the provided address of the interface. More... | |
bool | hasAddress (const IPv6Address &addr) const |
Returns true if the given address is one of the addresses assigned, regardless whether it is tentative or not. More... | |
bool | matchesSolicitedNodeMulticastAddress (const IPv6Address &solNodeAddr) const |
Returns true if the interface has an address matching the given solicited-node multicast addresses. More... | |
bool | isTentativeAddress (const IPv6Address &addr) const |
Returns true if the interface has the given address and it is tentative. More... | |
virtual void | permanentlyAssign (const IPv6Address &addr) |
Clears the "tentative" flag of an existing interface address. More... | |
const IPv6AddressVector & | getJoinedMulticastGroups () const |
const IPv6AddressVector & | getReportedMulticastGroups () const |
bool | isMemberOfMulticastGroup (const IPv6Address &multicastAddress) const |
virtual void | joinMulticastGroup (const IPv6Address &multicastAddress) |
virtual void | leaveMulticastGroup (const IPv6Address &multicastAddress) |
bool | hasMulticastListener (const IPv6Address &multicastAddress) const |
virtual void | addMulticastListener (const IPv6Address &multicastAddress) |
virtual void | removeMulticastListener (const IPv6Address &multicastAddress) |
void | tentativelyAssign (int i) |
Sets the "tentative" flag of of the ith address of the interface. More... | |
const IPv6Address & | getPreferredAddress () const |
Chooses a preferred address for the interface and returns it. More... | |
const IPv6Address & | getLinkLocalAddress () const |
Returns the first valid link-local address of the interface, or UNSPECIFIED_ADDRESS if there's none. More... | |
virtual void | removeAddress (const IPv6Address &address) |
Removes the address. More... | |
simtime_t | _getMaxInitialRtrAdvertInterval () const |
Getters/Setters for all variables and constants defined in RFC 2461/2462 can be found here. More... | |
uint | _getMaxInitialRtrAdvertisements () const |
uint | _getMaxFinalRtrAdvertisements () const |
simtime_t | _getMinDelayBetweenRAs () const |
simtime_t | _getMaxRADelayTime () const |
virtual void | _setMaxInitialRtrAdvertInterval (simtime_t d) |
virtual void | _setMaxInitialRtrAdvertisements (uint d) |
virtual void | _setMaxFinalRtrAdvertisements (uint d) |
virtual void | _setMinDelayBetweenRAs (simtime_t d) |
virtual void | _setMaxRADelayTime (simtime_t d) |
simtime_t | _getMaxRtrSolicitationDelay () const |
simtime_t | _getRtrSolicitationInterval () const |
uint | _getMaxRtrSolicitations () const |
simtime_t | _getInitialBindAckTimeout () const |
simtime_t | _getMaxBindAckTimeout () const |
simtime_t | _getInitialBindAckTimeoutFirst () const |
uint | _getMaxRRBindingLifeTime () const |
uint | _getMaxHABindingLifeTime () const |
uint | _getMaxTokenLifeTime () const |
virtual void | _setMaxRtrSolicitationDelay (simtime_t d) |
virtual void | _setRtrSolicitationInterval (simtime_t d) |
virtual void | _setMaxRtrSolicitations (uint d) |
virtual void | _setInitialBindAckTimeout (simtime_t d) |
virtual void | _setMaxBindAckTimeout (simtime_t d) |
virtual void | _setInitialBindAckTimeoutFirst (simtime_t d) |
virtual void | _setMaxRRBindingLifeTime (uint d) |
virtual void | _setMaxHABindingLifeTime (uint d) |
virtual void | _setMaxTokenLifeTime (uint d) |
uint | _getMaxMulticastSolicit () const |
uint | _getMaxUnicastSolicit () const |
simtime_t | _getMaxAnycastDelayTime () const |
uint | _getMaxNeighbourAdvertisement () const |
simtime_t | _getReachableTime () const |
simtime_t | _getRetransTimer () const |
simtime_t | _getDelayFirstProbeTime () const |
double | _getMinRandomFactor () const |
double | _getMaxRandomFactor () const |
virtual void | _setMaxMulticastSolicit (uint d) |
virtual void | _setMaxUnicastSolicit (uint d) |
virtual void | _setMaxAnycastDelayTime (simtime_t d) |
virtual void | _setMaxNeighbourAdvertisement (uint d) |
virtual void | _setReachableTime (simtime_t d) |
virtual void | _setRetransTimer (simtime_t d) |
virtual void | _setDelayFirstProbeTime (simtime_t d) |
virtual void | _setMinRandomFactor (double d) |
virtual void | _setMaxRandomFactor (double d) |
int | getDupAddrDetectTransmits () const |
virtual void | setDupAddrDetectTransmits (int d) |
uint | getLinkMTU () const |
short | getCurHopLimit () const |
uint | getBaseReachableTime () const |
simtime_t | getReachableTime () const |
uint | getRetransTimer () const |
virtual void | setLinkMTU (uint d) |
virtual void | setCurHopLimit (short d) |
virtual void | setBaseReachableTime (uint d) |
virtual void | setReachableTime (simtime_t d) |
virtual void | setRetransTimer (uint d) |
bool | getAdvSendAdvertisements () const |
simtime_t | getMaxRtrAdvInterval () const |
simtime_t | getMinRtrAdvInterval () const |
bool | getAdvManagedFlag () const |
bool | getAdvOtherConfigFlag () const |
bool | getAdvHomeAgentFlag () const |
int | getAdvLinkMTU () const |
int | getAdvReachableTime () const |
int | getAdvRetransTimer () const |
short | getAdvCurHopLimit () const |
simtime_t | getAdvDefaultLifetime () const |
virtual void | setAdvSendAdvertisements (bool d) |
virtual void | setMaxRtrAdvInterval (simtime_t d) |
virtual void | setMinRtrAdvInterval (simtime_t d) |
virtual void | setAdvManagedFlag (bool d) |
virtual void | setAdvOtherConfigFlag (bool d) |
virtual void | setAdvHomeAgentFlag (bool d) |
virtual void | setAdvLinkMTU (int d) |
virtual void | setAdvReachableTime (int d) |
virtual void | setAdvRetransTimer (int d) |
virtual void | setAdvCurHopLimit (short d) |
virtual void | setAdvDefaultLifetime (simtime_t d) |
Public Member Functions inherited from inet::InterfaceProtocolData | |
InterfaceProtocolData () | |
InterfaceEntry * | getInterfaceEntry () const |
Returns the InterfaceEntry that contains this data object, or nullptr. More... | |
Public Attributes | |
RouterConstants | routerConstants |
HostConstants | hostConstants |
NodeConstants | nodeConstants |
Protected Types | |
typedef std::vector< AddressData > | AddressDataVector |
typedef std::vector< AdvPrefix > | AdvPrefixList |
Protected Member Functions | |
int | findAddress (const IPv6Address &addr) const |
void | choosePreferredAddress () |
void | changed1 (int fieldId) |
HostMulticastData * | getHostData () |
const HostMulticastData * | getHostData () const |
RouterMulticastData * | getRouterData () |
const RouterMulticastData * | getRouterData () const |
Protected Member Functions inherited from inet::InterfaceProtocolData | |
virtual void | changed (simsignal_t signalID, int fieldId) |
Static Protected Member Functions | |
static bool | addrLess (const AddressData &a, const AddressData &b) |
Protected Attributes | |
HostMulticastData * | hostMcastData = nullptr |
RouterMulticastData * | routerMcastData = nullptr |
HomeNetworkInfo | homeInfo |
bool | dadInProgress = false |
AddressDataVector | addresses |
IPv6Address | preferredAddr |
simtime_t | preferredAddrExpiryTime |
NodeVariables | nodeVars |
HostVariables | hostVars |
RouterVariables | rtrVars |
Protected Attributes inherited from inet::InterfaceProtocolData | |
InterfaceEntry * | ownerp = nullptr |
Friends | |
std::ostream & | operator<< (std::ostream &os, const HomeNetworkInfo &homeNetInfo) |
Router advertised prefixes | |
IPv6RoutingTable * | rt6 = nullptr |
virtual void | addAdvPrefix (const AdvPrefix &advPrefix) |
Adds the given advertised prefix to the interface. More... | |
int | getNumAdvPrefixes () const |
Returns the number of advertised prefixes on the interface. More... | |
const AdvPrefix & | getAdvPrefix (int i) const |
Returns the ith advertised prefix on the interface. More... | |
virtual void | setAdvPrefix (int i, const AdvPrefix &advPrefix) |
Changes the configuration of the ith advertised prefix on the interface. More... | |
virtual void | removeAdvPrefix (int i) |
Remove the ith advertised prefix on the interface. More... | |
virtual simtime_t | generateReachableTime (double MIN_RANDOM_FACTOR, double MAX_RANDOM_FACTOR, uint baseReachableTime) |
This method randomly generates a reachableTime given the MIN_RANDOM_FACTOR MAX_RANDOM_FACTOR and baseReachableTime. More... | |
virtual simtime_t | generateReachableTime () |
Arg-less version. More... | |
const IPv6Address & | getGlobalAddress (AddressType type=HoA) const |
Returns the first valid global address of the interface, or UNSPECIFIED_ADDRESS if there's none. More... | |
const IPv6Address | autoConfRouterGlobalScopeAddress (int i) |
This function autoconfigures a global scope address for the router only, if and only the prefix is provided via some exernal method, For instance FlatNetworkConfigurator6 assigning prefixes to routers interfaces during initialization. More... | |
void | autoConfRouterGlobalScopeAddress (AdvPrefix &p) |
void | deduceAdvPrefix () |
void | updateHomeNetworkInfo (const IPv6Address &hoa, const IPv6Address &ha, const IPv6Address &prefix, const int prefixLength) |
03.09.07 This updates the struct HomeNetwork Info with the MN's Home Address(HoA), the global scope address of the MNs Home Agent (HA) and the home network prefix. More... | |
const IPv6Address & | getHomeAgentAddress () const |
const IPv6Address & | getMNHomeAddress () const |
const IPv6Address & | getMNPrefix () const |
IPv6Address | removeAddress (IPv6InterfaceData::AddressType type) |
Removes a CoA address from the interface if one exists. More... | |
IPv6-specific data for InterfaceEntry.
Most of this comes from section 6.2.1 of RFC 2461 (IPv6 Neighbor Discovery, Router Configuration Variables).
|
protected |
|
protected |
typedef std::vector<IPv6Address> inet::IPv6InterfaceData::IPv6AddressVector |
anonymous enum |
Enumerator | |
---|---|
F_IP_ADDRESS | |
F_MULTICAST_ADDRESSES | |
F_MULTICAST_LISTENERS |
The enum AddressType defined below and the new member of the struct AddressData {AddressType addrType} is relevant for MN(s) only as the address(es) configured on the MN interface needs to be tagged as either HoA or CoA, based upon the status of the H-Flag recieved in the RA.
This is
Enumerator | |
---|---|
HoA | |
CoA |
inet::IPv6InterfaceData::IPv6InterfaceData | ( | ) |
|
virtual |
|
inline |
Referenced by inet::IPv6NeighbourDiscovery::initiateNeighbourUnreachabilityDetection().
|
inline |
Referenced by inet::xMIPv6::createBUTimer(), inet::xMIPv6::createTestInitTimer(), and inet::xMIPv6::resetBUIfEntry().
|
inline |
Referenced by inet::xMIPv6::createBUTimer().
|
inline |
|
inline |
Referenced by inet::xMIPv6::sendPeriodicBU(), and inet::xMIPv6::sendTestInit().
|
inline |
|
inline |
Referenced by inet::xMIPv6::createBUTimer().
|
inline |
Getters/Setters for all variables and constants defined in RFC 2461/2462 can be found here.
Operations responsible for protocol constants are marked with a "_" prefix. Constants in this class are stored as instance variables. Default values for certain variables are defined at the top of this file, while certain variables have to be generated. Protocol constants are subject to change as specified in RFC2461:section 10 depending on different link layer operation. Getters and setters have been implemented for protocol constants so that a wireless interface may be set to a different set of constant values. (ie. changed by the FlatNetworkConfigurator) Such a design allows both wired and wireless networks to co-exist within a simulation run.
Referenced by inet::IPv6NeighbourDiscovery::sendPeriodicRA().
|
inline |
Referenced by inet::IPv6NeighbourDiscovery::sendPeriodicRA().
|
inline |
Referenced by inet::IPv6NeighbourDiscovery::processARTimeout().
|
inline |
|
inline |
Referenced by inet::IPv6NeighbourDiscovery::processRSPacket().
|
inline |
Referenced by generateReachableTime(), and IPv6InterfaceData().
|
inline |
Referenced by inet::xMIPv6::createBUTimer().
|
inline |
Referenced by inet::IPv6NeighbourDiscovery::makeTentativeAddressPermanent(), and inet::IPv6NeighbourDiscovery::processRDTimeout().
|
inline |
Referenced by inet::IPv6NeighbourDiscovery::processRDTimeout().
|
inline |
Referenced by inet::BindingUpdateList::isCareOfTokenAvailable(), inet::BindingUpdateList::isHomeTokenAvailable(), inet::xMIPv6::processCoTMessage(), inet::xMIPv6::processHoTMessage(), inet::BindingUpdateList::recentlySentCOTI(), and inet::BindingUpdateList::recentlySentHOTI().
|
inline |
|
inline |
|
inline |
Referenced by generateReachableTime(), and IPv6InterfaceData().
|
inline |
Referenced by inet::IPv6NeighbourDiscovery::processNAForIncompleteNCEState(), and inet::IPv6NeighbourDiscovery::processNAForOtherNCEStates().
|
inline |
Referenced by inet::IPv6NeighbourDiscovery::initiateAddressResolution(), and inet::IPv6NeighbourDiscovery::processARTimeout().
|
inline |
Referenced by inet::IPv6NeighbourDiscovery::initiateRouterDiscovery(), and inet::IPv6NeighbourDiscovery::processRDTimeout().
|
inlinevirtual |
|
inlinevirtual |
|
inlinevirtual |
|
inlinevirtual |
|
inlinevirtual |
|
inlinevirtual |
|
inlinevirtual |
|
inlinevirtual |
|
inlinevirtual |
|
inlinevirtual |
|
inlinevirtual |
|
inlinevirtual |
|
inlinevirtual |
|
inlinevirtual |
|
inlinevirtual |
|
inlinevirtual |
|
inlinevirtual |
|
inlinevirtual |
|
inlinevirtual |
|
inlinevirtual |
|
inlinevirtual |
|
inlinevirtual |
|
inlinevirtual |
|
virtual |
Adds the given advertised prefix to the interface.
Referenced by inet::FlatNetworkConfigurator6::configureAdvPrefixes(), and inet::IPv6RoutingTable::configureInterfaceFromXML().
|
virtual |
|
staticprotected |
Referenced by choosePreferredAddress().
|
virtual |
Assigns the given address to the interface.
WITH_xMIPv6: Also takes into account the status of the H-Flag in the recieved RA. Called from IPv6NeighbourDiscovery::processRAPrefixInfoForAddrAutoConf( IPv6NDPrefixInformation& prefixInfo, InterfaceEntry* ie, bool hFlag). Relevant only when MIPv6 is supported. (Zarrar Yousaf 20.07.07)
Referenced by inet::UDP::addMulticastAddressToInterface(), inet::IPv6NeighbourDiscovery::assignLinkLocalAddress(), inet::IPv6RoutingTable::assignRequiredNodeAddresses(), inet::FlatNetworkConfigurator6::configureAdvPrefixes(), inet::IPv6RoutingTable::configureInterfaceFromXML(), deduceAdvPrefix(), detailedInfo(), inet::IPv6NeighbourDiscovery::makeTentativeAddressPermanent(), inet::IPv6NeighbourDiscovery::processRAPrefixInfo(), inet::IPv6NeighbourDiscovery::processRAPrefixInfoForAddrAutoConf(), and updateHomeNetworkInfo().
const IPv6Address inet::IPv6InterfaceData::autoConfRouterGlobalScopeAddress | ( | int | i | ) |
This function autoconfigures a global scope address for the router only, if and only the prefix is provided via some exernal method, For instance FlatNetworkConfigurator6 assigning prefixes to routers interfaces during initialization.
Referenced by deduceAdvPrefix(), and inet::IPv6NeighbourDiscovery::makeTentativeAddressPermanent().
void inet::IPv6InterfaceData::autoConfRouterGlobalScopeAddress | ( | AdvPrefix & | p | ) |
|
inlineprotected |
Referenced by addMulticastListener(), assignAddress(), joinMulticastGroup(), leaveMulticastGroup(), removeAddress(), and removeMulticastListener().
|
protected |
Referenced by assignAddress(), permanentlyAssign(), removeAddress(), tentativelyAssign(), and updateMatchingAddressExpiryTimes().
void inet::IPv6InterfaceData::deduceAdvPrefix | ( | ) |
|
override |
|
protected |
Referenced by getAddressType(), hasAddress(), isTentativeAddress(), permanentlyAssign(), and removeAddress().
|
virtual |
This method randomly generates a reachableTime given the MIN_RANDOM_FACTOR MAX_RANDOM_FACTOR and baseReachableTime.
Refer to RFC 2461: Section 6.3.2
Referenced by inet::IPv6NeighbourDiscovery::processRAForRouterUpdates().
|
virtual |
Arg-less version.
Referenced by IPv6InterfaceData().
const IPv6Address & inet::IPv6InterfaceData::getAddress | ( | int | i | ) | const |
Returns ith address of the interface.
Referenced by inet::PingApp::getAllAddresses(), info(), inet::IPv6NeighbourDiscovery::makeTentativeAddressPermanent(), inet::sctp::SCTPAssociation::processInitArrived(), inet::IPv6NeighbourDiscovery::processRAPrefixInfo(), inet::IPv6NeighbourDiscovery::processRAPrefixInfoForAddrAutoConf(), and inet::sctp::SCTPAssociation::sendInit().
IPv6InterfaceData::AddressType inet::IPv6InterfaceData::getAddressType | ( | int | i | ) | const |
Returns the address type (HoA, CoA) of the ith address of the interface.
4.9.07 - CB
Referenced by getAddressType(), and inet::IPv6NeighbourDiscovery::processRAPrefixInfoForAddrAutoConf().
IPv6InterfaceData::AddressType inet::IPv6InterfaceData::getAddressType | ( | const IPv6Address & | addr | ) | const |
Returns the address type (HoA, CoA) of the provided address of the interface.
27.9.07 - CB
|
inline |
Referenced by inet::IPv6NeighbourDiscovery::createAndSendRAPacket().
|
inline |
Referenced by inet::IPv6NeighbourDiscovery::createAndSendRAPacket().
|
inline |
Referenced by inet::IPv6NeighbourDiscovery::createAndSendRAPacket().
|
inline |
Referenced by inet::IPv6NeighbourDiscovery::createAndSendRAPacket().
|
inline |
Referenced by inet::IPv6NeighbourDiscovery::createAndSendRAPacket().
|
inline |
Referenced by inet::IPv6NeighbourDiscovery::createAndSendRAPacket().
const IPv6InterfaceData::AdvPrefix & inet::IPv6InterfaceData::getAdvPrefix | ( | int | i | ) | const |
Returns the ith advertised prefix on the interface.
Referenced by inet::FlatNetworkConfigurator6::addOwnAdvPrefixRoutes(), inet::FlatNetworkConfigurator6::addStaticRoutes(), inet::IPv6NeighbourDiscovery::createAndSendRAPacket(), info(), inet::IPv6RoutingTable::initialize(), inet::InterfaceTable::isNeighborAddress(), and inet::IPv6RoutingTable::isOnLinkAddress().
|
inline |
Referenced by inet::IPv6NeighbourDiscovery::createAndSendRAPacket().
|
inline |
Referenced by inet::IPv6NeighbourDiscovery::createAndSendRAPacket().
|
inline |
Referenced by inet::IPv6NeighbourDiscovery::createAndSendRAPacket(), inet::IPv6NeighbourDiscovery::createAndSendRSPacket(), inet::IPv6NeighbourDiscovery::initialize(), inet::IPv6NeighbourDiscovery::makeTentativeAddressPermanent(), inet::IPv6NeighbourDiscovery::processRAPacket(), and inet::IPv6NeighbourDiscovery::processRSPacket().
|
inline |
Referenced by generateReachableTime(), and IPv6InterfaceData().
|
inline |
|
inline |
Referenced by inet::IPv6NeighbourDiscovery::assignLinkLocalAddress(), and inet::IPv6NeighbourDiscovery::processDADTimeout().
const IPv6Address & inet::IPv6InterfaceData::getGlobalAddress | ( | AddressType | type = HoA | ) | const |
Returns the first valid global address of the interface, or UNSPECIFIED_ADDRESS if there's none.
Referenced by inet::xMIPv6::createAndSendBRRMessage(), inet::xMIPv6::createAndSendBUMessage(), inet::IPv6NeighbourDiscovery::processRAPacket(), inet::IPv6NeighbourDiscovery::processRAPrefixInfoForAddrAutoConf(), inet::IPv6::resolveMACAddressAndSendPacket(), inet::xMIPv6::sendTestInit(), inet::xMIPv6::triggerRouteOptimization(), updateHomeNetworkInfo(), and inet::xMIPv6::validateCoTMessage().
|
inline |
Referenced by inet::xMIPv6::cancelEntries(), inet::xMIPv6::createAndSendBUMessage(), inet::xMIPv6::createBUTimer(), inet::xMIPv6::createDeregisterBUTimer(), inet::IPv6Tunneling::decapsulateDatagram(), inet::xMIPv6::handleBULExpiry(), inet::xMIPv6::initiateMIPv6Protocol(), inet::xMIPv6::processBAMessage(), inet::xMIPv6::returningHome(), and inet::xMIPv6::validateBAck().
|
inlineprotected |
Referenced by joinMulticastGroup(), and leaveMulticastGroup().
|
inlineprotected |
Referenced by getHostData().
|
inline |
Referenced by isMemberOfMulticastGroup().
const IPv6Address & inet::IPv6InterfaceData::getLinkLocalAddress | ( | ) | const |
Returns the first valid link-local address of the interface, or UNSPECIFIED_ADDRESS if there's none.
Referenced by inet::FlatNetworkConfigurator6::addStaticRoutes(), inet::IPv6NeighbourDiscovery::assignLinkLocalAddress(), autoConfRouterGlobalScopeAddress(), inet::FlatNetworkConfigurator6::configureAdvPrefixes(), inet::IPv6NeighbourDiscovery::createAndSendRAPacket(), inet::IPv6NeighbourDiscovery::createAndSendRSPacket(), inet::IPv6AddressType::getLinkLocalAddress(), inet::IPv6NeighbourDiscovery::processRAPrefixInfo(), and inet::IPv6NeighbourDiscovery::processRAPrefixInfoForAddrAutoConf().
|
inline |
|
inline |
Referenced by inet::IPv6NeighbourDiscovery::createRATimer(), and inet::IPv6NeighbourDiscovery::sendPeriodicRA().
|
inline |
Referenced by inet::IPv6NeighbourDiscovery::createRATimer(), and inet::IPv6NeighbourDiscovery::sendPeriodicRA().
|
inline |
Referenced by inet::IPv6Tunneling::decapsulateDatagram(), inet::IPv6RoutingTable::getHomeAddress(), inet::xMIPv6::handleTokenExpiry(), inet::xMIPv6::initiateMIPv6Protocol(), inet::IPv6RoutingTable::isHomeAddress(), inet::xMIPv6::processBAMessage(), inet::IPv6::resolveMACAddressAndSendPacket(), and inet::xMIPv6::returningHome().
|
inline |
|
inline |
Returns the number of addresses the interface has.
Referenced by inet::PingApp::getAllAddresses(), info(), inet::IPv6NeighbourDiscovery::makeTentativeAddressPermanent(), inet::IPv6NeighbourDiscovery::processRAPrefixInfo(), inet::IPv6NeighbourDiscovery::processRAPrefixInfoForAddrAutoConf(), inet::sctp::SCTPAssociation::sendInit(), and inet::InterfaceTable::updateLinkDisplayString().
|
inline |
Returns the number of advertised prefixes on the interface.
Referenced by inet::FlatNetworkConfigurator6::addOwnAdvPrefixRoutes(), inet::FlatNetworkConfigurator6::addStaticRoutes(), inet::FlatNetworkConfigurator6::configureAdvPrefixes(), inet::IPv6NeighbourDiscovery::createAndSendRAPacket(), deduceAdvPrefix(), info(), inet::IPv6RoutingTable::initialize(), inet::InterfaceTable::isNeighborAddress(), inet::IPv6RoutingTable::isOnLinkAddress(), and inet::IPv6NeighbourDiscovery::makeTentativeAddressPermanent().
|
inline |
Chooses a preferred address for the interface and returns it.
This is the address that should be used as source address for outgoing datagrams, if one is not explicitly specified.
Selection is based on scope (globally routable addresses are preferred), then on lifetime (the one that expires last is chosen). See private choosePreferredAddress() function.
FIXME turn into preferredGLOBALAddress()!
Referenced by inet::xMIPv6::createAndSendBUMessage(), inet::IPv6NeighbourDiscovery::createAndSendRSPacket(), inet::IPv6::fragmentAndSend(), inet::L3AddressResolver::getInterfaceIPv6Address(), inet::L3AddressResolver::getIPv6AddressFrom(), inet::GPSR::getSelfAddress(), inet::IPv6NeighbourDiscovery::initiateAddressResolution(), inet::IPv6NeighbourDiscovery::sendSolicitedNA(), inet::IPv6NeighbourDiscovery::sendUnsolicitedNA(), and inet::InterfaceTable::updateLinkDisplayString().
|
inline |
Referenced by inet::IPv6NeighbourDiscovery::processRAForRouterUpdates().
|
inline |
|
inline |
Referenced by inet::IPv6NeighbourDiscovery::initiateDAD(), and inet::IPv6NeighbourDiscovery::processDADTimeout().
|
inlineprotected |
Referenced by addMulticastListener(), hasMulticastListener(), and removeMulticastListener().
|
inlineprotected |
Referenced by getRouterData().
bool inet::IPv6InterfaceData::hasAddress | ( | const IPv6Address & | addr | ) | const |
Returns true if the given address is one of the addresses assigned, regardless whether it is tentative or not.
Referenced by inet::L3AddressResolver::findHostWithAddress(), inet::InterfaceTable::findInterfaceByAddress(), inet::IPv6RoutingTable::getInterfaceByAddress(), inet::IPv6NeighbourDiscovery::initiateAddressResolution(), inet::IPv6RoutingTable::isLocalAddress(), and inet::IPv6NeighbourDiscovery::processNSPacket().
bool inet::IPv6InterfaceData::hasMulticastListener | ( | const IPv6Address & | multicastAddress | ) | const |
Referenced by addMulticastListener().
|
override |
|
inline |
Referenced by inet::IPv6NeighbourDiscovery::processRAPacket().
bool inet::IPv6InterfaceData::isMemberOfMulticastGroup | ( | const IPv6Address & | multicastAddress | ) | const |
bool inet::IPv6InterfaceData::isTentativeAddress | ( | int | i | ) | const |
Returns true if the ith address of the interface is tentative.
Referenced by inet::IPv6NeighbourDiscovery::assignLinkLocalAddress(), inet::IPv6NeighbourDiscovery::createAndSendRSPacket(), inet::IPv6::endService(), inet::IPv6::fragmentAndSend(), info(), inet::IPv6NeighbourDiscovery::processNAPacket(), inet::IPv6NeighbourDiscovery::processNSPacket(), and inet::IPv6NeighbourDiscovery::processRAPrefixInfoForAddrAutoConf().
bool inet::IPv6InterfaceData::isTentativeAddress | ( | const IPv6Address & | addr | ) | const |
Returns true if the interface has the given address and it is tentative.
|
virtual |
Referenced by inet::IPv6RoutingTable::configureInterfaceForIPv6().
|
virtual |
bool inet::IPv6InterfaceData::matchesSolicitedNodeMulticastAddress | ( | const IPv6Address & | solNodeAddr | ) | const |
Returns true if the interface has an address matching the given solicited-node multicast addresses.
Referenced by inet::IPv6RoutingTable::isLocalAddress().
|
virtual |
Clears the "tentative" flag of an existing interface address.
Referenced by inet::IPv6NeighbourDiscovery::makeTentativeAddressPermanent().
|
virtual |
Removes the address.
Called when the valid lifetime expires.
Referenced by inet::IPv6NeighbourDiscovery::makeTentativeAddressPermanent(), and inet::IPv6NeighbourDiscovery::processRAPrefixInfoForAddrAutoConf().
IPv6Address inet::IPv6InterfaceData::removeAddress | ( | IPv6InterfaceData::AddressType | type | ) |
Removes a CoA address from the interface if one exists.
This method traverses the address list and searches for a specific address.
The element is removed and returned.
|
virtual |
Remove the ith advertised prefix on the interface.
Prefixes at larger indices will shift down.
|
virtual |
|
inlinevirtual |
|
inlinevirtual |
|
inlinevirtual |
|
inlinevirtual |
|
inlinevirtual |
|
inlinevirtual |
|
virtual |
Changes the configuration of the ith advertised prefix on the interface.
The prefix itself should stay the same.
|
inlinevirtual |
|
inlinevirtual |
|
inlinevirtual |
Referenced by inet::IPv6RoutingTable::configureInterfaceForIPv6(), and inet::IPv6RoutingTable::configureInterfaceFromXML().
|
inlinevirtual |
Referenced by inet::IPv6NeighbourDiscovery::processRAForRouterUpdates().
|
inlinevirtual |
Referenced by inet::IPv6NeighbourDiscovery::processRAForRouterUpdates().
|
inline |
|
inlinevirtual |
|
inlinevirtual |
|
inlinevirtual |
Referenced by inet::IPv6NeighbourDiscovery::createRATimer().
|
inlinevirtual |
Referenced by inet::IPv6NeighbourDiscovery::createRATimer().
|
inlinevirtual |
Referenced by inet::IPv6NeighbourDiscovery::processRAForRouterUpdates().
|
inlinevirtual |
Referenced by inet::IPv6NeighbourDiscovery::processRAForRouterUpdates().
void inet::IPv6InterfaceData::tentativelyAssign | ( | int | i | ) |
Sets the "tentative" flag of of the ith address of the interface.
28.09.07 - CB
Referenced by inet::IPv6NeighbourDiscovery::processRAPrefixInfoForAddrAutoConf().
void inet::IPv6InterfaceData::updateHomeNetworkInfo | ( | const IPv6Address & | hoa, |
const IPv6Address & | ha, | ||
const IPv6Address & | prefix, | ||
const int | prefixLength | ||
) |
03.09.07 This updates the struct HomeNetwork Info with the MN's Home Address(HoA), the global scope address of the MNs Home Agent (HA) and the home network prefix.
Referenced by inet::IPv6NeighbourDiscovery::processRAPacket().
|
virtual |
Update expiry times of addresses.
Expiry times possibly come from prefixes (with on-link flag set to either zero or one) in Router Advertisements. Zero expiry time means infinity.
|
friend |
|
protected |
Referenced by assignAddress(), choosePreferredAddress(), findAddress(), getAddress(), getAddressType(), getGlobalAddress(), getLinkLocalAddress(), info(), isTentativeAddress(), matchesSolicitedNodeMulticastAddress(), permanentlyAssign(), removeAddress(), tentativelyAssign(), and updateMatchingAddressExpiryTimes().
|
protected |
|
protected |
Referenced by updateHomeNetworkInfo().
HostConstants inet::IPv6InterfaceData::hostConstants |
Referenced by IPv6InterfaceData().
|
protected |
Referenced by info(), and ~IPv6InterfaceData().
|
protected |
Referenced by info(), and IPv6InterfaceData().
NodeConstants inet::IPv6InterfaceData::nodeConstants |
Referenced by IPv6InterfaceData().
|
protected |
Referenced by info(), and IPv6InterfaceData().
|
protected |
Referenced by choosePreferredAddress().
|
protected |
Referenced by choosePreferredAddress().
RouterConstants inet::IPv6InterfaceData::routerConstants |
Referenced by IPv6InterfaceData().
|
protected |
Referenced by info(), and ~IPv6InterfaceData().
|
protected |
|
protected |