23 #include "ns3/simulator.h" 35 .SetGroupName (
"Internet")
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");
Simulation virtual time values and global simulation resolution.
#define NS_LOG_FUNCTION(parameters)
If log level LOG_FUNCTION is enabled, this macro will output all input parameters separated by "...
uint32_t GetPmtu(Ipv6Address dst)
Gets the known Path MTU for the specific destination.
#define NS_OBJECT_ENSURE_REGISTERED(type)
Register an Object subclass with the TypeId system.
#define NS_LOG_COMPONENT_DEFINE(name)
Define a Log component with a specific name.
Time GetPmtuValidityTime() const
Gets the Path MTU validity time.
bool SetPmtuValidityTime(Time validity)
Sets the Path MTU validity time (minimum is 5 minutes)
Ipv6PmtuCache()
Constructor.
Ptr< const AttributeChecker > MakeTimeChecker(const Time min, const Time max)
Helper to make a Time checker with bounded range.
static EventId Schedule(Time const &delay, MEM mem_ptr, OBJ obj)
Schedule an event to expire after delay.
AttributeValue implementation for Time.
std::map< Ipv6Address, uint32_t > m_pathMtu
Path MTU table.
virtual void DoDispose()
Dispose object.
Every class exported by the ns3 library is enclosed in the ns3 namespace.
std::map< Ipv6Address, EventId > m_pathMtuTimer
Path MTU Expiration table.
Ptr< const AttributeAccessor > MakeTimeAccessor(T1 a1)
Create an AttributeAccessor for a class data member, or a lone class get functor or set method...
NS_LOG_LOGIC("Net device "<< nd<< " is not bridged")
static TypeId GetTypeId()
Get the type ID.
~Ipv6PmtuCache()
Destructor.
Describes an IPv6 address.
An identifier for simulation events.
Time Seconds(double value)
Construct a Time in the indicated unit.
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.
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)
Set the parent TypeId.