23 #include "ns3/simulator.h"
36 .AddAttribute (
"CacheExpiryTime",
37 "Validity time for a Path MTU entry. Default is 10 minutes, minimum is 5 minutes.",
57 iter->second.Cancel ();
98 if (validity > Seconds (60 * 5))
104 NS_LOG_LOGIC (
"rejecting a PMTU validity timer lesser than 5 minutes");
keep track of time values and allow control of global simulation resolution
#define NS_LOG_FUNCTION(parameters)
uint32_t GetPmtu(Ipv6Address dst)
Gets the known Path MTU for the specific destination.
NS_LOG_COMPONENT_DEFINE("Ipv6PmtuCache")
NS_OBJECT_ENSURE_REGISTERED(NullMessageSimulatorImpl)
static EventId Schedule(Time const &time, MEM mem_ptr, OBJ obj)
Schedule an event to expire at the relative time "time" is reached.
bool SetPmtuValidityTime(Time validity)
Sets the Path MTU validity time (minimum is 5 minutes)
Ipv6PmtuCache()
Constructor.
hold objects of type ns3::Time
std::map< Ipv6Address, uint32_t > m_pathMtu
Path MTU table.
#define NS_LOG_LOGIC(msg)
virtual void DoDispose()
Dispose object.
std::map< Ipv6Address, EventId > m_pathMtuTimer
Path MTU Expiration table.
Time GetPmtuValidityTime() const
Gets the Path MTU validity time.
static TypeId GetTypeId()
Get the type ID.
~Ipv6PmtuCache()
Destructor.
Describes an IPv6 address.
an identifier for simulation events.
std::map< Ipv6Address, EventId >::iterator pathMtuTimerIter
Container of the IPv6 PMTU data (Ipv6 destination address and expiration event).
Time m_validityTime
Path MTU entry validity time.
void SetPmtu(Ipv6Address dst, uint32_t pmtu)
Sets the Path MTU for the specific destination.
Ptr< const AttributeChecker > MakeTimeChecker(const Time min, const Time max)
Helper to make a Time checker with bounded range.
void ClearPmtu(Ipv6Address dst)
Clears the Path MTU for the specific destination.
a base class which provides memory management and object aggregation
a unique identifier for an interface.
TypeId SetParent(TypeId tid)