This class implements the Path MTU cache, as defined by RFC 1981. More...
#include <ipv6-pmtu-cache.h>
Public Member Functions | |
Ipv6PmtuCache () | |
Constructor. | |
~Ipv6PmtuCache () | |
Destructor. | |
virtual void | DoDispose () |
Dispose object. | |
uint32_t | GetPmtu (Ipv6Address dst) |
Gets the known Path MTU for the specific destination. | |
Time | GetPmtuValidityTime () const |
Gets the Path MTU validity time. | |
void | SetPmtu (Ipv6Address dst, uint32_t pmtu) |
Sets the Path MTU for the specific destination. | |
bool | SetPmtuValidityTime (Time validity) |
Sets the Path MTU validity time (minimum is 5 minutes) | |
![]() | |
Object () | |
virtual | ~Object () |
void | AggregateObject (Ptr< Object > other) |
void | Dispose (void) |
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) |
![]() | |
SimpleRefCount () | |
SimpleRefCount (const SimpleRefCount &o) | |
uint32_t | GetReferenceCount (void) const |
SimpleRefCount & | operator= (const SimpleRefCount &o) |
void | Ref (void) const |
void | Unref (void) const |
![]() | |
virtual | ~ObjectBase () |
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. |
Private Types | |
typedef std::map< Ipv6Address, EventId >::iterator | pathMtuTimerIter |
Private Member Functions | |
void | ClearPmtu (Ipv6Address dst) |
Clears the Path MTU for the specific destination. |
Private Attributes | |
std::map< Ipv6Address, uint32_t > | m_pathMtu |
Path MTU table. | |
std::map< Ipv6Address, EventId > | m_pathMtuTimer |
Path MTU Expiration table. | |
Time | m_validityTime |
Path MTU entry validity time. |
Additional Inherited Members | |
![]() | |
Object (const Object &o) | |
virtual void | DoInitialize (void) |
virtual void | NotifyNewAggregate (void) |
This class implements the Path MTU cache, as defined by RFC 1981.
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.
Doxygen introspection did not find any typical Config paths.
No TraceSources are defined for this type.
Definition at line 46 of file ipv6-pmtu-cache.h.
|
private |
Definition at line 111 of file ipv6-pmtu-cache.h.
ns3::Ipv6PmtuCache::Ipv6PmtuCache | ( | ) |
Constructor.
Definition at line 44 of file ipv6-pmtu-cache.cc.
ns3::Ipv6PmtuCache::~Ipv6PmtuCache | ( | ) |
Destructor.
Definition at line 48 of file ipv6-pmtu-cache.cc.
|
private |
Clears the Path MTU for the specific destination.
dst | the destination |
Definition at line 107 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 52 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 62 of file ipv6-pmtu-cache.cc.
References m_pathMtu, and NS_LOG_FUNCTION.
Referenced by ns3::Ipv6L3Protocol::SendRealOut().
Time ns3::Ipv6PmtuCache::GetPmtuValidityTime | ( | ) | const |
Gets the Path MTU validity time.
Definition at line 87 of file ipv6-pmtu-cache.cc.
References m_validityTime, and NS_LOG_FUNCTION.
|
static |
Get the type ID.
Reimplemented from ns3::Object.
Definition at line 31 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 73 of file ipv6-pmtu-cache.cc.
References ClearPmtu(), m_pathMtu, m_pathMtuTimer, m_validityTime, NS_LOG_FUNCTION, and ns3::Simulator::Schedule().
Referenced by ns3::Ipv6L3Protocol::SetPmtu().
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 93 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 115 of file ipv6-pmtu-cache.h.
Referenced by ClearPmtu(), DoDispose(), and SetPmtu().
|
private |
Path MTU entry validity time.
Definition at line 120 of file ipv6-pmtu-cache.h.
Referenced by GetPmtuValidityTime(), GetTypeId(), SetPmtu(), and SetPmtuValidityTime().