|
INET Framework for OMNeT++/OMNEST
|
Ipv6-specific data for NetworkInterface.
More...
#include <Ipv6InterfaceData.h>
|
| | Ipv6InterfaceData () |
| |
| virtual | ~Ipv6InterfaceData () |
| |
| std::string | str () const override |
| |
| std::string | detailedInfo () const |
| |
|
| virtual void | assignAddress (const Ipv6Address &addr, bool tentative, simtime_t expiryTime, simtime_t prefExpiryTime) |
| | 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...
|
| |
| const Ipv6Address & | getGlblAddress () const |
| |
| bool | isTentativeAddress (int i) const |
| | Returns true if the ith address of the interface is tentative. 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) |
| |
| 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 |
| |
| virtual void | _setMaxRtrSolicitationDelay (simtime_t d) |
| |
| virtual void | _setRtrSolicitationInterval (simtime_t d) |
| |
| virtual void | _setMaxRtrSolicitations (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 |
| |
| 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 | setAdvLinkMtu (int d) |
| |
| virtual void | setAdvReachableTime (int d) |
| |
| virtual void | setAdvRetransTimer (int d) |
| |
| virtual void | setAdvCurHopLimit (short d) |
| |
| virtual void | setAdvDefaultLifetime (simtime_t d) |
| |
|
| 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...
|
| |
| | InterfaceProtocolData (int id) |
| |
| NetworkInterface * | getNetworkInterface () const |
| | Returns the NetworkInterface that contains this data object, or nullptr. More...
|
| |
| virtual const Ptr< TagBase > | dupShared () const |
| |
| virtual const Ptr< TagBase > | changeRegion (b offsetDelta, b lengthDelta) const |
| |
| virtual void | parsimPack (cCommBuffer *buffer) const override |
| |
| virtual void | parsimUnpack (cCommBuffer *buffer) override |
| |
| virtual std::ostream & | printToStream (std::ostream &stream, int level, int evFlags) const override |
| | Prints this object to the provided output stream. More...
|
| |
| virtual std::ostream & | printFieldsToStream (std::ostream &stream, int level, int evFlags) const |
| |
| virtual | ~IPrintableObject () |
| |
| virtual std::string | printToString () const |
| |
| virtual std::string | printToString (int level, int evFlags=0) const |
| |
| virtual std::string | getInfoStringRepresentation (int evFlags=0) const |
| |
| virtual std::string | getDetailStringRepresentation (int evFlags=0) const |
| |
| virtual std::string | getDebugStringRepresentation (int evFlags=0) const |
| |
| virtual std::string | getTraceStringRepresentation (int evFlags=0) const |
| |
| virtual std::string | getCompleteStringRepresentation (int evFlags=0) const |
| |
Ipv6-specific data for NetworkInterface.
Most of this comes from section 6.2.1 of RFC 2461 (Ipv6 Neighbor Discovery, Router Configuration Variables).
◆ AddressDataVector
◆ AdvPrefixList
◆ Ipv6AddressVector
◆ anonymous enum
| Enumerator |
|---|
| F_IP_ADDRESS | |
| F_MULTICAST_ADDRESSES | |
| F_MULTICAST_LISTENERS | |
◆ Ipv6InterfaceData()
| inet::Ipv6InterfaceData::Ipv6InterfaceData |
( |
| ) |
|
74 #ifdef INET_WITH_xMIPv6
88 #ifdef INET_WITH_xMIPv6
89 hostConstants.initialBindAckTimeout = MIPv6_INITIAL_BINDACK_TIMEOUT;
91 hostConstants.initialBindAckTimeoutFirst = MIPv6_INITIAL_BINDACK_TIMEOUT_FIRST;
92 hostConstants.maxRRBindingLifeTime = MIPv6_MAX_RR_BINDING_LIFETIME;
93 hostConstants.maxHABindingLifeTime = MIPv6_MAX_HA_BINDING_LIFETIME;
123 #ifdef INET_WITH_xMIPv6
124 rtrVars.advHomeAgentFlag =
false;
136 #endif // if USE_MOBILITY
◆ ~Ipv6InterfaceData()
| inet::Ipv6InterfaceData::~Ipv6InterfaceData |
( |
| ) |
|
|
virtual |
◆ _getDelayFirstProbeTime()
| simtime_t inet::Ipv6InterfaceData::_getDelayFirstProbeTime |
( |
| ) |
const |
|
inline |
◆ _getMaxAnycastDelayTime()
| simtime_t inet::Ipv6InterfaceData::_getMaxAnycastDelayTime |
( |
| ) |
const |
|
inline |
◆ _getMaxFinalRtrAdvertisements()
| uint inet::Ipv6InterfaceData::_getMaxFinalRtrAdvertisements |
( |
| ) |
const |
|
inline |
◆ _getMaxInitialRtrAdvertInterval()
| simtime_t inet::Ipv6InterfaceData::_getMaxInitialRtrAdvertInterval |
( |
| ) |
const |
|
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 Ipv4FlatNetworkConfigurator) Such a design allows both wired and wireless networks to co-exist within a simulation run.
Referenced by inet::Ipv6NeighbourDiscovery::sendPeriodicRa().
◆ _getMaxInitialRtrAdvertisements()
| uint inet::Ipv6InterfaceData::_getMaxInitialRtrAdvertisements |
( |
| ) |
const |
|
inline |
◆ _getMaxMulticastSolicit()
| uint inet::Ipv6InterfaceData::_getMaxMulticastSolicit |
( |
| ) |
const |
|
inline |
◆ _getMaxNeighbourAdvertisement()
| uint inet::Ipv6InterfaceData::_getMaxNeighbourAdvertisement |
( |
| ) |
const |
|
inline |
◆ _getMaxRaDelayTime()
| simtime_t inet::Ipv6InterfaceData::_getMaxRaDelayTime |
( |
| ) |
const |
|
inline |
◆ _getMaxRandomFactor()
| double inet::Ipv6InterfaceData::_getMaxRandomFactor |
( |
| ) |
const |
|
inline |
◆ _getMaxRtrSolicitationDelay()
| simtime_t inet::Ipv6InterfaceData::_getMaxRtrSolicitationDelay |
( |
| ) |
const |
|
inline |
◆ _getMaxRtrSolicitations()
| uint inet::Ipv6InterfaceData::_getMaxRtrSolicitations |
( |
| ) |
const |
|
inline |
◆ _getMaxUnicastSolicit()
| uint inet::Ipv6InterfaceData::_getMaxUnicastSolicit |
( |
| ) |
const |
|
inline |
◆ _getMinDelayBetweenRAs()
| simtime_t inet::Ipv6InterfaceData::_getMinDelayBetweenRAs |
( |
| ) |
const |
|
inline |
◆ _getMinRandomFactor()
| double inet::Ipv6InterfaceData::_getMinRandomFactor |
( |
| ) |
const |
|
inline |
◆ _getReachableTime()
| simtime_t inet::Ipv6InterfaceData::_getReachableTime |
( |
| ) |
const |
|
inline |
◆ _getRetransTimer()
| simtime_t inet::Ipv6InterfaceData::_getRetransTimer |
( |
| ) |
const |
|
inline |
◆ _getRtrSolicitationInterval()
| simtime_t inet::Ipv6InterfaceData::_getRtrSolicitationInterval |
( |
| ) |
const |
|
inline |
◆ _setDelayFirstProbeTime()
| virtual void inet::Ipv6InterfaceData::_setDelayFirstProbeTime |
( |
simtime_t |
d | ) |
|
|
inlinevirtual |
◆ _setMaxAnycastDelayTime()
| virtual void inet::Ipv6InterfaceData::_setMaxAnycastDelayTime |
( |
simtime_t |
d | ) |
|
|
inlinevirtual |
◆ _setMaxFinalRtrAdvertisements()
| virtual void inet::Ipv6InterfaceData::_setMaxFinalRtrAdvertisements |
( |
uint |
d | ) |
|
|
inlinevirtual |
◆ _setMaxInitialRtrAdvertInterval()
| virtual void inet::Ipv6InterfaceData::_setMaxInitialRtrAdvertInterval |
( |
simtime_t |
d | ) |
|
|
inlinevirtual |
◆ _setMaxInitialRtrAdvertisements()
| virtual void inet::Ipv6InterfaceData::_setMaxInitialRtrAdvertisements |
( |
uint |
d | ) |
|
|
inlinevirtual |
◆ _setMaxMulticastSolicit()
| virtual void inet::Ipv6InterfaceData::_setMaxMulticastSolicit |
( |
uint |
d | ) |
|
|
inlinevirtual |
◆ _setMaxNeighbourAdvertisement()
| virtual void inet::Ipv6InterfaceData::_setMaxNeighbourAdvertisement |
( |
uint |
d | ) |
|
|
inlinevirtual |
◆ _setMaxRaDelayTime()
| virtual void inet::Ipv6InterfaceData::_setMaxRaDelayTime |
( |
simtime_t |
d | ) |
|
|
inlinevirtual |
◆ _setMaxRandomFactor()
| virtual void inet::Ipv6InterfaceData::_setMaxRandomFactor |
( |
double |
d | ) |
|
|
inlinevirtual |
◆ _setMaxRtrSolicitationDelay()
| virtual void inet::Ipv6InterfaceData::_setMaxRtrSolicitationDelay |
( |
simtime_t |
d | ) |
|
|
inlinevirtual |
◆ _setMaxRtrSolicitations()
| virtual void inet::Ipv6InterfaceData::_setMaxRtrSolicitations |
( |
uint |
d | ) |
|
|
inlinevirtual |
◆ _setMaxUnicastSolicit()
| virtual void inet::Ipv6InterfaceData::_setMaxUnicastSolicit |
( |
uint |
d | ) |
|
|
inlinevirtual |
◆ _setMinDelayBetweenRAs()
| virtual void inet::Ipv6InterfaceData::_setMinDelayBetweenRAs |
( |
simtime_t |
d | ) |
|
|
inlinevirtual |
◆ _setMinRandomFactor()
| virtual void inet::Ipv6InterfaceData::_setMinRandomFactor |
( |
double |
d | ) |
|
|
inlinevirtual |
◆ _setReachableTime()
| virtual void inet::Ipv6InterfaceData::_setReachableTime |
( |
simtime_t |
d | ) |
|
|
inlinevirtual |
◆ _setRetransTimer()
| virtual void inet::Ipv6InterfaceData::_setRetransTimer |
( |
simtime_t |
d | ) |
|
|
inlinevirtual |
◆ _setRtrSolicitationInterval()
| virtual void inet::Ipv6InterfaceData::_setRtrSolicitationInterval |
( |
simtime_t |
d | ) |
|
|
inlinevirtual |
◆ addAdvPrefix()
| void inet::Ipv6InterfaceData::addAdvPrefix |
( |
const AdvPrefix & |
advPrefix | ) |
|
|
virtual |
Adds the given advertised prefix to the interface.
◆ addMulticastListener()
| void inet::Ipv6InterfaceData::addMulticastListener |
( |
const Ipv6Address & |
multicastAddress | ) |
|
|
virtual |
519 if (!multicastAddress.isMulticast())
520 throw cRuntimeError(
"Ipv6InterfaceData::addMulticastListener(): multicast address expected, received %s.", multicastAddress.str().c_str());
◆ addrLess()
376 if (a.tentative !=
b.tentative)
378 if (a.address.getScope() !=
b.address.getScope())
379 return a.address.getScope() >
b.address.getScope();
381 #ifdef INET_WITH_xMIPv6
384 if (a.address.isGlobal() &&
b.address.isGlobal() && a.addrType !=
b.addrType)
385 return a.addrType == CoA;
388 return (a.expiryTime == SIMTIME_ZERO &&
b.expiryTime != SIMTIME_ZERO) || a.expiryTime >
b.expiryTime;
Referenced by choosePreferredAddress().
◆ assignAddress()
| void inet::Ipv6InterfaceData::assignAddress |
( |
const Ipv6Address & |
addr, |
|
|
bool |
tentative, |
|
|
simtime_t |
expiryTime, |
|
|
simtime_t |
prefExpiryTime |
|
) |
| |
|
virtual |
Assigns the given address to the interface.
242 a.tentative = tentative;
243 a.expiryTime = expiryTime;
244 a.prefExpiryTime = prefExpiryTime;
246 #ifdef INET_WITH_xMIPv6
247 if (addr.isGlobal()) {
Referenced by inet::eigrp::EigrpIpv6Pdm::enableInterface().
◆ changed1()
| void inet::Ipv6InterfaceData::changed1 |
( |
int |
fieldId | ) |
|
|
inlineprotected |
◆ choosePreferredAddress()
| void inet::Ipv6InterfaceData::choosePreferredAddress |
( |
| ) |
|
|
protected |
◆ detailedInfo()
| std::string inet::Ipv6InterfaceData::detailedInfo |
( |
| ) |
const |
◆ findAddress()
| int inet::Ipv6InterfaceData::findAddress |
( |
const Ipv6Address & |
addr | ) |
const |
|
protected |
◆ generateReachableTime() [1/2]
| simtime_t inet::Ipv6InterfaceData::generateReachableTime |
( |
| ) |
|
|
virtual |
◆ generateReachableTime() [2/2]
| simtime_t inet::Ipv6InterfaceData::generateReachableTime |
( |
double |
MIN_RANDOM_FACTOR, |
|
|
double |
MAX_RANDOM_FACTOR, |
|
|
uint |
baseReachableTime |
|
) |
| |
|
virtual |
◆ getAddress()
| const Ipv6Address & inet::Ipv6InterfaceData::getAddress |
( |
int |
i | ) |
const |
◆ getAdvCurHopLimit()
| short inet::Ipv6InterfaceData::getAdvCurHopLimit |
( |
| ) |
const |
|
inline |
◆ getAdvDefaultLifetime()
| simtime_t inet::Ipv6InterfaceData::getAdvDefaultLifetime |
( |
| ) |
const |
|
inline |
◆ getAdvLinkMtu()
| int inet::Ipv6InterfaceData::getAdvLinkMtu |
( |
| ) |
const |
|
inline |
◆ getAdvManagedFlag()
| bool inet::Ipv6InterfaceData::getAdvManagedFlag |
( |
| ) |
const |
|
inline |
◆ getAdvOtherConfigFlag()
| bool inet::Ipv6InterfaceData::getAdvOtherConfigFlag |
( |
| ) |
const |
|
inline |
◆ getAdvPrefix()
◆ getAdvReachableTime()
| int inet::Ipv6InterfaceData::getAdvReachableTime |
( |
| ) |
const |
|
inline |
◆ getAdvRetransTimer()
| int inet::Ipv6InterfaceData::getAdvRetransTimer |
( |
| ) |
const |
|
inline |
◆ getAdvSendAdvertisements()
| bool inet::Ipv6InterfaceData::getAdvSendAdvertisements |
( |
| ) |
const |
|
inline |
◆ getBaseReachableTime()
| uint inet::Ipv6InterfaceData::getBaseReachableTime |
( |
| ) |
const |
|
inline |
◆ getCurHopLimit()
| short inet::Ipv6InterfaceData::getCurHopLimit |
( |
| ) |
const |
|
inline |
◆ getDupAddrDetectTransmits()
| int inet::Ipv6InterfaceData::getDupAddrDetectTransmits |
( |
| ) |
const |
|
inline |
◆ getGlblAddress()
| const Ipv6Address & inet::Ipv6InterfaceData::getGlblAddress |
( |
| ) |
const |
290 if (elem.address.isGlobal())
◆ getHostData() [1/2]
◆ getHostData() [2/2]
◆ getJoinedMulticastGroups()
◆ getLinkLocalAddress()
| const Ipv6Address & inet::Ipv6InterfaceData::getLinkLocalAddress |
( |
| ) |
const |
◆ getLinkMtu()
| uint inet::Ipv6InterfaceData::getLinkMtu |
( |
| ) |
const |
|
inline |
◆ getMaxRtrAdvInterval()
| simtime_t inet::Ipv6InterfaceData::getMaxRtrAdvInterval |
( |
| ) |
const |
|
inline |
◆ getMinRtrAdvInterval()
| simtime_t inet::Ipv6InterfaceData::getMinRtrAdvInterval |
( |
| ) |
const |
|
inline |
◆ getNumAddresses()
| int inet::Ipv6InterfaceData::getNumAddresses |
( |
| ) |
const |
|
inline |
◆ getNumAdvPrefixes()
| int inet::Ipv6InterfaceData::getNumAdvPrefixes |
( |
| ) |
const |
|
inline |
Returns the number of advertised prefixes on the interface.
Referenced by str().
◆ getPreferredAddress()
| const Ipv6Address& inet::Ipv6InterfaceData::getPreferredAddress |
( |
| ) |
const |
|
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::Ipv6NeighbourDiscovery::processNudTimeout().
◆ getReachableTime()
| simtime_t inet::Ipv6InterfaceData::getReachableTime |
( |
| ) |
const |
|
inline |
◆ getReportedMulticastGroups()
| const Ipv6AddressVector& inet::Ipv6InterfaceData::getReportedMulticastGroups |
( |
| ) |
const |
|
inline |
◆ getRetransTimer()
| uint inet::Ipv6InterfaceData::getRetransTimer |
( |
| ) |
const |
|
inline |
◆ getRouterData() [1/2]
◆ getRouterData() [2/2]
◆ hasAddress()
| bool inet::Ipv6InterfaceData::hasAddress |
( |
const Ipv6Address & |
addr | ) |
const |
◆ hasMulticastListener()
| bool inet::Ipv6InterfaceData::hasMulticastListener |
( |
const Ipv6Address & |
multicastAddress | ) |
const |
◆ isMemberOfMulticastGroup()
| bool inet::Ipv6InterfaceData::isMemberOfMulticastGroup |
( |
const Ipv6Address & |
multicastAddress | ) |
const |
456 return contains(multicastGroups, multicastAddress);
◆ isTentativeAddress() [1/2]
| bool inet::Ipv6InterfaceData::isTentativeAddress |
( |
const Ipv6Address & |
addr | ) |
const |
Returns true if the interface has the given address and it is tentative.
◆ isTentativeAddress() [2/2]
| bool inet::Ipv6InterfaceData::isTentativeAddress |
( |
int |
i | ) |
const |
◆ joinMulticastGroup()
| void inet::Ipv6InterfaceData::joinMulticastGroup |
( |
const Ipv6Address & |
multicastAddress | ) |
|
|
virtual |
◆ leaveMulticastGroup()
| void inet::Ipv6InterfaceData::leaveMulticastGroup |
( |
const Ipv6Address & |
multicastAddress | ) |
|
|
virtual |
◆ matchesSolicitedNodeMulticastAddress()
| bool inet::Ipv6InterfaceData::matchesSolicitedNodeMulticastAddress |
( |
const Ipv6Address & |
solNodeAddr | ) |
const |
Returns true if the interface has an address matching the given solicited-node multicast addresses.
323 if (elem.address.formSolicitedNodeMulticastAddress() == solNodeAddr)
Referenced by inet::Ipv6RoutingTable::isLocalAddress().
◆ permanentlyAssign()
| void inet::Ipv6InterfaceData::permanentlyAssign |
( |
const Ipv6Address & |
addr | ) |
|
|
virtual |
Clears the "tentative" flag of an existing interface address.
◆ removeAddress()
| void inet::Ipv6InterfaceData::removeAddress |
( |
const Ipv6Address & |
address | ) |
|
|
virtual |
◆ removeAdvPrefix()
| void inet::Ipv6InterfaceData::removeAdvPrefix |
( |
int |
i | ) |
|
|
virtual |
Remove the ith advertised prefix on the interface.
Prefixes at larger indices will shift down.
◆ removeMulticastListener()
| void inet::Ipv6InterfaceData::removeMulticastListener |
( |
const Ipv6Address & |
multicastAddress | ) |
|
|
virtual |
532 int n = multicastGroups.size();
534 for (i = 0; i < n; i++)
535 if (multicastGroups[i] == multicastAddress)
539 multicastGroups.erase(multicastGroups.begin() + i);
◆ setAdvCurHopLimit()
| virtual void inet::Ipv6InterfaceData::setAdvCurHopLimit |
( |
short |
d | ) |
|
|
inlinevirtual |
◆ setAdvDefaultLifetime()
| virtual void inet::Ipv6InterfaceData::setAdvDefaultLifetime |
( |
simtime_t |
d | ) |
|
|
inlinevirtual |
◆ setAdvLinkMtu()
| virtual void inet::Ipv6InterfaceData::setAdvLinkMtu |
( |
int |
d | ) |
|
|
inlinevirtual |
◆ setAdvManagedFlag()
| virtual void inet::Ipv6InterfaceData::setAdvManagedFlag |
( |
bool |
d | ) |
|
|
inlinevirtual |
◆ setAdvOtherConfigFlag()
| virtual void inet::Ipv6InterfaceData::setAdvOtherConfigFlag |
( |
bool |
d | ) |
|
|
inlinevirtual |
◆ setAdvPrefix()
| void inet::Ipv6InterfaceData::setAdvPrefix |
( |
int |
i, |
|
|
const AdvPrefix & |
advPrefix |
|
) |
| |
|
virtual |
Changes the configuration of the ith advertised prefix on the interface.
The prefix itself should stay the same.
◆ setAdvReachableTime()
| virtual void inet::Ipv6InterfaceData::setAdvReachableTime |
( |
int |
d | ) |
|
|
inlinevirtual |
◆ setAdvRetransTimer()
| virtual void inet::Ipv6InterfaceData::setAdvRetransTimer |
( |
int |
d | ) |
|
|
inlinevirtual |
◆ setAdvSendAdvertisements()
| virtual void inet::Ipv6InterfaceData::setAdvSendAdvertisements |
( |
bool |
d | ) |
|
|
inlinevirtual |
◆ setBaseReachableTime()
| virtual void inet::Ipv6InterfaceData::setBaseReachableTime |
( |
uint |
d | ) |
|
|
inlinevirtual |
◆ setCurHopLimit()
| virtual void inet::Ipv6InterfaceData::setCurHopLimit |
( |
short |
d | ) |
|
|
inlinevirtual |
◆ setDupAddrDetectTransmits()
| virtual void inet::Ipv6InterfaceData::setDupAddrDetectTransmits |
( |
int |
d | ) |
|
|
inlinevirtual |
◆ setLinkMtu()
| virtual void inet::Ipv6InterfaceData::setLinkMtu |
( |
uint |
d | ) |
|
|
inlinevirtual |
◆ setMaxRtrAdvInterval()
| virtual void inet::Ipv6InterfaceData::setMaxRtrAdvInterval |
( |
simtime_t |
d | ) |
|
|
inlinevirtual |
◆ setMinRtrAdvInterval()
| virtual void inet::Ipv6InterfaceData::setMinRtrAdvInterval |
( |
simtime_t |
d | ) |
|
|
inlinevirtual |
◆ setReachableTime()
| virtual void inet::Ipv6InterfaceData::setReachableTime |
( |
simtime_t |
d | ) |
|
|
inlinevirtual |
◆ setRetransTimer()
| virtual void inet::Ipv6InterfaceData::setRetransTimer |
( |
uint |
d | ) |
|
|
inlinevirtual |
◆ str()
| std::string inet::Ipv6InterfaceData::str |
( |
| ) |
const |
|
overridevirtual |
Reimplemented from inet::TagBase.
148 std::ostringstream os;
149 os <<
"Ipv6:{" << endl;
151 os << (i ?
"\t , " :
"\tAddrs:") <<
getAddress(i)
161 <<
" expiryTime: " << (
addresses[i].expiryTime == SIMTIME_ZERO ?
"inf" : SIMTIME_STR(
addresses[i].expiryTime))
162 <<
" prefExpiryTime: " << (
addresses[i].prefExpiryTime == SIMTIME_ZERO ?
"inf" : SIMTIME_STR(
addresses[i].prefExpiryTime))
171 os << (i ?
", " :
"\tAdvPrefixes: ") << a.prefix <<
"/" << a.prefixLength <<
"("
172 << (a.advOnLinkFlag ?
"" :
"off-link ")
173 << (a.advAutonomousFlag ?
"" :
"non-auto ");
175 #ifdef INET_WITH_xMIPv6
176 os <<
"R-Flag = " << (a.advRtrAddr ?
"1 " :
"0 ");
179 if (a.advValidLifetime == SIMTIME_ZERO)
180 os <<
"lifetime:inf";
181 else if (a.advValidLifetime > SIMTIME_ZERO)
182 os <<
"expires:" << a.advValidLifetime;
184 os <<
"lifetime:+" << (-1 * a.advValidLifetime);
200 #ifdef INET_WITH_xMIPv6
Referenced by detailedInfo().
◆ updateMatchingAddressExpiryTimes()
| void inet::Ipv6InterfaceData::updateMatchingAddressExpiryTimes |
( |
const Ipv6Address & |
prefix, |
|
|
int |
length, |
|
|
simtime_t |
expiryTime = SIMTIME_ZERO, |
|
|
simtime_t |
prefExpiryTime = SIMTIME_ZERO |
|
) |
| |
|
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.
264 if (elem.address.matches(prefix, length)) {
265 elem.expiryTime = expiryTime;
266 elem.prefExpiryTime = prefExpiryTime;
◆ addresses
Referenced by choosePreferredAddress(), findAddress(), getAddress(), getGlblAddress(), getLinkLocalAddress(), isTentativeAddress(), matchesSolicitedNodeMulticastAddress(), permanentlyAssign(), removeAddress(), str(), and updateMatchingAddressExpiryTimes().
◆ hostConstants
◆ hostMcastData
◆ hostVars
◆ nodeConstants
◆ nodeVars
◆ preferredAddr
◆ preferredAddrExpiryTime
| simtime_t inet::Ipv6InterfaceData::preferredAddrExpiryTime |
|
protected |
◆ routerConstants
◆ routerMcastData
◆ rtrVars
The documentation for this class was generated from the following files:
HostMulticastData * hostMcastData
Definition: Ipv6InterfaceData.h:123
RouterMulticastData * routerMcastData
Definition: Ipv6InterfaceData.h:124
uint retransTimer
The time between retransmissions of Neighbor Solicitation messages to a neighbor when resolving the a...
Definition: Ipv6InterfaceData.h:316
double _getMinRandomFactor() const
Definition: Ipv6InterfaceData.h:635
#define IPv6_MAX_RANDOM_FACTOR
Definition: Ipv6InterfaceData.h:61
@ F_MULTICAST_ADDRESSES
Definition: Ipv6InterfaceData.h:105
simtime_t maxRADelayTime
Definition: Ipv6InterfaceData.h:169
#define IPv6_RTR_SOLICITATION_INTERVAL
Definition: Ipv6InterfaceData.h:49
#define INET_WITH_xMIPv6
Definition: features.h:221
const AdvPrefix & getAdvPrefix(int i) const
Returns the ith advertised prefix on the interface.
Definition: Ipv6InterfaceData.cc:422
int maxRtrSolicitations
Definition: Ipv6InterfaceData.h:176
static bool addrLess(const AddressData &a, const AddressData &b)
Definition: Ipv6InterfaceData.cc:371
#define RNGCONTEXT
Definition: INETDefs.h:82
static const char * scopeName(Scope s)
Return the string representation of the given scope.
Definition: Ipv6Address.cc:228
#define IPv6_DEFAULT_ADV_RETRANS_TIMER
Definition: Ipv6InterfaceData.h:36
uint getBaseReachableTime() const
Definition: Ipv6InterfaceData.h:658
std::string str()
Definition: Ipv6InterfaceData.cc:22
uint maxFinalRtrAdvertisements
Definition: Ipv6InterfaceData.h:167
uint baseReachableTime
A base value used for computing the random ReachableTime value.
Definition: Ipv6InterfaceData.h:300
simtime_t maxRtrSolicitationDelay
Definition: Ipv6InterfaceData.h:174
int dupAddrDetectTransmits
The number of consecutive Neighbor Solicitation messages sent while performing Duplicate Address Dete...
Definition: Ipv6InterfaceData.h:277
simsignal_t ipv6MulticastGroupLeftSignal
Definition: Simsignals.cc:68
#define IPv6_DEFAULT_DUPADDRDETECTTRANSMITS
Definition: Ipv6InterfaceData.h:29
HostConstants hostConstants
Definition: Ipv6InterfaceData.h:187
HostVariables hostVars
Definition: Ipv6InterfaceData.h:318
AddressDataVector addresses
Definition: Ipv6InterfaceData.h:252
#define IPv6_DELAY_FIRST_PROBE_TIME
Definition: Ipv6InterfaceData.h:59
void changed1(int fieldId)
Definition: Ipv6InterfaceData.h:428
short curHopLimit
The default hop limit to be used when sending (unicast) IP packets.
Definition: Ipv6InterfaceData.h:295
NetworkInterface * ownerp
Definition: NetworkInterface.h:54
#define IPv6_MAX_NEIGHBOUR_ADVERTISEMENT
Definition: Ipv6InterfaceData.h:56
#define IPv6_MIN_RANDOM_FACTOR
Definition: Ipv6InterfaceData.h:60
#define IPv6_REACHABLE_TIME
Definition: Ipv6InterfaceData.h:57
simtime_t delayFirstProbeTime
Definition: Ipv6InterfaceData.h:196
simtime_t maxRtrAdvInterval
The maximum time allowed between sending unsolicited multicast Router Advertisements from the interfa...
Definition: Ipv6InterfaceData.h:338
simtime_t maxAnycastDelayTime
Definition: Ipv6InterfaceData.h:192
std::vector< int > refCounts
Definition: Ipv6InterfaceData.h:110
int advLinkMTU
The value to be placed in MTU options sent by the router.
Definition: Ipv6InterfaceData.h:378
NodeVariables nodeVars
Definition: Ipv6InterfaceData.h:279
#define IPv6_DEFAULT_MAX_RTR_ADV_INT
Definition: Ipv6InterfaceData.h:34
@ F_MULTICAST_LISTENERS
Definition: Ipv6InterfaceData.h:105
virtual simtime_t generateReachableTime()
Arg-less version.
Definition: Ipv6InterfaceData.cc:448
#define IPv6_MAX_FINAL_RTR_ADVERTISEMENTS
Definition: Ipv6InterfaceData.h:43
#define IPv6_MIN_DELAY_BETWEEN_RAS
Definition: Ipv6InterfaceData.h:44
#define IPv6_MAX_UNICAST_SOLICIT
Definition: Ipv6InterfaceData.h:54
simtime_t rtrSolicitationInterval
Definition: Ipv6InterfaceData.h:175
uint maxNeighbourAdvertisement
Definition: Ipv6InterfaceData.h:193
simtime_t reachableTime
The time a neighbor is considered reachable after receiving a reachability confirmation.
Definition: Ipv6InterfaceData.h:309
#define IPv6_MAX_MULTICAST_SOLICIT
Definition: Ipv6InterfaceData.h:53
int advRetransTimer
The value to be placed in the Retrans Timer field in the Router Advertisement messages sent by the ro...
Definition: Ipv6InterfaceData.h:395
simtime_t retransTimer
Definition: Ipv6InterfaceData.h:195
#define IPv6_MAX_ANYCAST_DELAY_TIME
Definition: Ipv6InterfaceData.h:55
AdvPrefixList advPrefixList
Definition: Ipv6InterfaceData.h:420
InterfaceProtocolData(int id)
Definition: NetworkInterface.h:62
static const Ipv6Address UNSPECIFIED_ADDRESS
The unspecified address.
Definition: Ipv6Address.h:54
bool contains(const std::vector< T > &v, const Tk &a)
Definition: stlutils.h:65
const Ipv6AddressVector & getJoinedMulticastGroups() const
Definition: Ipv6InterfaceData.h:529
Ipv6InterfaceData()
Definition: Ipv6InterfaceData.cc:71
bool advSendAdvertisements
A flag indicating whether or not the router sends periodic Router Advertisements and responds to Rout...
Definition: Ipv6InterfaceData.h:330
uint maxUnicastSolicit
Definition: Ipv6InterfaceData.h:191
IInterfaceTable * getInterfaceTable() const
Returns the IInterfaceTable this interface is in, or nullptr.
Definition: NetworkInterface.h:205
#define IPv6_RETRANS_TIMER
Definition: Ipv6InterfaceData.h:58
HostMulticastData * getHostData()
Definition: Ipv6InterfaceData.h:429
bool advManagedFlag
The TRUE/FALSE value to be placed in the "Managed address configuration" flag field in the Router Adv...
Definition: Ipv6InterfaceData.h:353
@ F_IPV6_DATA
Definition: NetworkInterface.h:150
double _getMaxRandomFactor() const
Definition: Ipv6InterfaceData.h:636
#define IPv6_MAX_RTR_SOLICITATIONS
Definition: Ipv6InterfaceData.h:50
int advReachableTime
The value to be placed in the Reachable Time field in the Router Advertisement messages sent by the r...
Definition: Ipv6InterfaceData.h:387
value< int64_t, units::b > b
Definition: Units.h:1241
simtime_t maxInitialRtrAdvertInterval
Definition: Ipv6InterfaceData.h:165
bool hasMulticastListener(const Ipv6Address &multicastAddress) const
Definition: Ipv6InterfaceData.cc:511
#define IPv6_DEFAULT_ADVCURHOPLIMIT
Definition: Ipv6InterfaceData.h:32
#define IPv6_DEFAULT_ADV_REACHABLE_TIME
Definition: Ipv6InterfaceData.h:35
const double k
Definition: Qam1024Modulation.cc:14
std::vector< Ipv6Address > Ipv6AddressVector
Definition: Ipv6InterfaceData.h:102
int getNumAddresses() const
Returns the number of addresses the interface has.
Definition: Ipv6InterfaceData.h:475
simsignal_t ipv6MulticastGroupJoinedSignal
Definition: Simsignals.cc:67
int findAddress(const Ipv6Address &addr) const
Definition: Ipv6InterfaceData.cc:272
virtual void changed(simsignal_t signalID, int fieldId)
Definition: NetworkInterface.cc:50
std::string str() const override
Definition: Ipv6InterfaceData.cc:145
#define IPv6_MAX_INITIAL_RTR_ADVERTISEMENTS
Definition: Ipv6InterfaceData.h:42
#define IPv6_MIN_MTU
Definition: Ipv6InterfaceData.h:31
simtime_t advDefaultLifetime
The value to be placed in the Router Lifetime field of Router Advertisements sent from the interface,...
Definition: Ipv6InterfaceData.h:414
bool advOtherConfigFlag
The TRUE/FALSE value to be placed in the "Other stateful configuration" flag field in the Router Adve...
Definition: Ipv6InterfaceData.h:360
uint maxMulticastSolicit
Definition: Ipv6InterfaceData.h:190
Ipv6AddressVector joinedMulticastGroups
Definition: Ipv6InterfaceData.h:109
NodeConstants nodeConstants
Definition: Ipv6InterfaceData.h:200
double minRandomFactor
Definition: Ipv6InterfaceData.h:197
const Ipv6Address & getAddress(int i) const
Returns ith address of the interface.
Definition: Ipv6InterfaceData.cc:281
Ipv6AddressVector reportedMulticastGroups
multicast groups that have listeners on the link connected to this interface
Definition: Ipv6InterfaceData.h:117
double maxRandomFactor
Definition: Ipv6InterfaceData.h:198
simtime_t preferredAddrExpiryTime
Definition: Ipv6InterfaceData.h:254
void choosePreferredAddress()
Definition: Ipv6InterfaceData.cc:391
#define IPv6_MAX_RTR_SOLICITATION_DELAY
Definition: Ipv6InterfaceData.h:48
std::string str()
Definition: Ipv6InterfaceData.cc:50
simtime_t minDelayBetweenRAs
Definition: Ipv6InterfaceData.h:168
value< double, units::m > m
Definition: Units.h:1233
simtime_t minRtrAdvInterval
The minimum time allowed between sending unsolicited multicast Router Advertisements from the interfa...
Definition: Ipv6InterfaceData.h:346
Ipv6Address preferredAddr
Definition: Ipv6InterfaceData.h:253
simtime_t reachableTime
Definition: Ipv6InterfaceData.h:194
bool isTentativeAddress(int i) const
Returns true if the ith address of the interface is tentative.
Definition: Ipv6InterfaceData.cc:296
uint linkMTU
The MTU of the link.
Definition: Ipv6InterfaceData.h:289
int getNumAdvPrefixes() const
Returns the number of advertised prefixes on the interface.
Definition: Ipv6InterfaceData.h:713
RouterVariables rtrVars
Definition: Ipv6InterfaceData.h:422
RouterMulticastData * getRouterData()
Definition: Ipv6InterfaceData.h:431
#define IPv6_MAX_INITIAL_RTR_ADVERT_INTERVAL
Definition: Ipv6InterfaceData.h:41
RouterConstants routerConstants
Definition: Ipv6InterfaceData.h:171
uint maxInitialRtrAdvertisements
Definition: Ipv6InterfaceData.h:166
#define IPv6_MAX_RA_DELAY_TIME
Definition: Ipv6InterfaceData.h:45
short advCurHopLimit
The default value to be placed in the Cur Hop Limit field in the Router Advertisement messages sent b...
Definition: Ipv6InterfaceData.h:405
simsignal_t interfaceIpv6ConfigChangedSignal
Definition: Simsignals.cc:36
@ F_IP_ADDRESS
Definition: Ipv6InterfaceData.h:105