This class implements the Path MTU cache, as defined by RFC 1981. More...
#include <ipv6-pmtu-cache.h>
Public Member Functions | |
Ipv6PmtuCache () | |
Constructor. More... | |
~Ipv6PmtuCache () | |
Destructor. More... | |
virtual void | DoDispose () |
Dispose object. More... | |
uint32_t | GetPmtu (Ipv6Address dst) |
Gets the known Path MTU for the specific destination. More... | |
Time | GetPmtuValidityTime () const |
Gets the Path MTU validity time. More... | |
void | SetPmtu (Ipv6Address dst, uint32_t pmtu) |
Sets the Path MTU for the specific destination. More... | |
bool | SetPmtuValidityTime (Time validity) |
Sets the Path MTU validity time (minimum is 5 minutes) More... | |
Public Member Functions inherited from ns3::Object | |
Object () | |
virtual | ~Object () |
void | AggregateObject (Ptr< Object > other) |
void | Dispose (void) |
Run the DoDispose methods of this object and all the objects aggregated to it. More... | |
AggregateIterator | GetAggregateIterator (void) const |
virtual TypeId | GetInstanceTypeId (void) const |
template<typename T > | |
Ptr< T > | GetObject (void) const |
template<typename T > | |
Ptr< T > | GetObject (TypeId tid) const |
void | Initialize (void) |
This method calls the virtual DoInitialize method on all the objects aggregated to this object. More... | |
Public Member Functions inherited from ns3::SimpleRefCount< Object, ObjectBase, ObjectDeleter > | |
SimpleRefCount () | |
Constructor. More... | |
SimpleRefCount (const SimpleRefCount &o) | |
Copy constructor. More... | |
uint32_t | GetReferenceCount (void) const |
Get the reference count of the object. More... | |
SimpleRefCount & | operator= (const SimpleRefCount &o) |
Assignment. More... | |
void | Ref (void) const |
Increment the reference count. More... | |
void | Unref (void) const |
Decrement the reference count. More... | |
Public Member Functions inherited from ns3::ObjectBase | |
virtual | ~ObjectBase () |
Virtual destructor. More... | |
void | GetAttribute (std::string name, AttributeValue &value) const |
bool | GetAttributeFailSafe (std::string name, AttributeValue &attribute) const |
void | SetAttribute (std::string name, const AttributeValue &value) |
bool | SetAttributeFailSafe (std::string name, const AttributeValue &value) |
bool | TraceConnect (std::string name, std::string context, const CallbackBase &cb) |
bool | TraceConnectWithoutContext (std::string name, const CallbackBase &cb) |
bool | TraceDisconnect (std::string name, std::string context, const CallbackBase &cb) |
bool | TraceDisconnectWithoutContext (std::string name, const CallbackBase &cb) |
Static Public Member Functions | |
static TypeId | GetTypeId () |
Get the type ID. More... | |
Static Public Member Functions inherited from ns3::Object | |
static TypeId | GetTypeId (void) |
Register this type. More... | |
Static Public Member Functions inherited from ns3::SimpleRefCount< Object, ObjectBase, ObjectDeleter > | |
static void | Cleanup (void) |
Noop. More... | |
Static Public Member Functions inherited from ns3::ObjectBase | |
static TypeId | GetTypeId (void) |
Get the type ID. More... | |
Private Types | |
typedef std::map< Ipv6Address, EventId >::iterator | pathMtuTimerIter |
Container of the IPv6 PMTU data (Ipv6 destination address and expiration event). More... | |
Private Member Functions | |
void | ClearPmtu (Ipv6Address dst) |
Clears the Path MTU for the specific destination. More... | |
Private Attributes | |
std::map< Ipv6Address, uint32_t > | m_pathMtu |
Path MTU table. More... | |
std::map< Ipv6Address, EventId > | m_pathMtuTimer |
Path MTU Expiration table. More... | |
Time | m_validityTime |
Path MTU entry validity time. More... | |
Additional Inherited Members | |
Protected Member Functions inherited from ns3::Object | |
Object (const Object &o) | |
virtual void | DoInitialize (void) |
This method is called only once by Object::Initialize. More... | |
virtual void | NotifyNewAggregate (void) |
This method is invoked whenever two sets of objects are aggregated together. More... | |
Protected Member Functions inherited from ns3::ObjectBase | |
void | ConstructSelf (const AttributeConstructionList &attributes) |
virtual void | NotifyConstructionCompleted (void) |
This method is invoked once all member attributes have been initialized. More... | |
This class implements the Path MTU cache, as defined by RFC 1981.
Doxygen introspection did not find any typical Config paths.
The Path MTU is stored according to the destination address, and it is cleared upon expiration (default validity time is 10 minutes).
The "infinite lifetime" PMTU entry type is not implemented, since it is useful only in an very limited number of cases. See the RFC for further details.
No TraceSources are defined for this type.
Definition at line 46 of file ipv6-pmtu-cache.h.
|
private |
Container of the IPv6 PMTU data (Ipv6 destination address and expiration event).
Definition at line 114 of file ipv6-pmtu-cache.h.
ns3::Ipv6PmtuCache::Ipv6PmtuCache | ( | ) |
Constructor.
Definition at line 45 of file ipv6-pmtu-cache.cc.
ns3::Ipv6PmtuCache::~Ipv6PmtuCache | ( | ) |
Destructor.
Definition at line 49 of file ipv6-pmtu-cache.cc.
|
private |
Clears the Path MTU for the specific destination.
dst | the destination |
Definition at line 108 of file ipv6-pmtu-cache.cc.
References m_pathMtu, m_pathMtuTimer, and NS_LOG_FUNCTION.
Referenced by SetPmtu().
|
virtual |
Dispose object.
Reimplemented from ns3::Object.
Definition at line 53 of file ipv6-pmtu-cache.cc.
References m_pathMtu, and m_pathMtuTimer.
uint32_t ns3::Ipv6PmtuCache::GetPmtu | ( | Ipv6Address | dst | ) |
Gets the known Path MTU for the specific destination.
dst | the destination |
Definition at line 63 of file ipv6-pmtu-cache.cc.
References m_pathMtu, and NS_LOG_FUNCTION.
Time ns3::Ipv6PmtuCache::GetPmtuValidityTime | ( | ) | const |
Gets the Path MTU validity time.
Definition at line 88 of file ipv6-pmtu-cache.cc.
References m_validityTime, and NS_LOG_FUNCTION.
|
static |
Get the type ID.
Definition at line 32 of file ipv6-pmtu-cache.cc.
References m_validityTime, ns3::MakeTimeChecker(), and ns3::TypeId::SetParent().
void ns3::Ipv6PmtuCache::SetPmtu | ( | Ipv6Address | dst, |
uint32_t | pmtu | ||
) |
Sets the Path MTU for the specific destination.
dst | the destination |
pmtu | the Path MTU |
Definition at line 74 of file ipv6-pmtu-cache.cc.
References ClearPmtu(), m_pathMtu, m_pathMtuTimer, m_validityTime, NS_LOG_FUNCTION, and ns3::Simulator::Schedule().
bool ns3::Ipv6PmtuCache::SetPmtuValidityTime | ( | Time | validity | ) |
Sets the Path MTU validity time (minimum is 5 minutes)
validity | the Path MTU validity time |
Definition at line 94 of file ipv6-pmtu-cache.cc.
References m_validityTime, NS_LOG_FUNCTION, and NS_LOG_LOGIC.
|
private |
Path MTU table.
Definition at line 109 of file ipv6-pmtu-cache.h.
Referenced by ClearPmtu(), DoDispose(), GetPmtu(), and SetPmtu().
|
private |
Path MTU Expiration table.
Definition at line 119 of file ipv6-pmtu-cache.h.
Referenced by ClearPmtu(), DoDispose(), and SetPmtu().
|
private |
Path MTU entry validity time.
Definition at line 124 of file ipv6-pmtu-cache.h.
Referenced by GetPmtuValidityTime(), GetTypeId(), SetPmtu(), and SetPmtuValidityTime().