A Discrete-Event Network Simulator
API
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
ns3::Icmpv6L4Protocol Class Reference

An implementation of the ICMPv6 protocol. More...

#include <icmpv6-l4-protocol.h>

+ Inheritance diagram for ns3::Icmpv6L4Protocol:
+ Collaboration diagram for ns3::Icmpv6L4Protocol:

Public Member Functions

 Icmpv6L4Protocol ()
 Constructor.
virtual ~Icmpv6L4Protocol ()
 Destructor.
Ptr< NdiscCacheCreateCache (Ptr< NetDevice > device, Ptr< Ipv6Interface > interface)
 Create a neighbor cache.
void DoDAD (Ipv6Address target, Ptr< Ipv6Interface > interface)
 Do the Duplication Address Detection (DAD). It consists in sending a NS with our IPv6 as target. If we received a NA with matched target address, we could not use the address, else the address pass from TENTATIVE to PERMANENT.
Ptr< PacketForgeEchoRequest (Ipv6Address src, Ipv6Address dst, uint16_t id, uint16_t seq, Ptr< Packet > data)
 Forge an Echo Request.
Ptr< PacketForgeNA (Ipv6Address src, Ipv6Address dst, Address *hardwareAddress, uint8_t flags)
 Forge a Neighbor Advertisement.
Ptr< PacketForgeNS (Ipv6Address src, Ipv6Address dst, Ipv6Address target, Address hardwareAddress)
 Forge a Neighbor Solicitation.
Ptr< PacketForgeRS (Ipv6Address src, Ipv6Address dst, Address hardwareAddress)
 Forge a Router Solicitation.
virtual int GetProtocolNumber () const
 Get the protocol number.
virtual int GetVersion () const
 Get the version of the protocol.
bool IsAlwaysDad () const
 Is the node must do DAD.
bool Lookup (Ipv6Address dst, Ptr< NetDevice > device, Ptr< NdiscCache > cache, Address *hardwareDestination)
 Lookup in the ND cache for the IPv6 address.
bool Lookup (Ptr< Packet > p, Ipv6Address dst, Ptr< NetDevice > device, Ptr< NdiscCache > cache, Address *hardwareDestination)
 Lookup in the ND cache for the IPv6 address (similar as ARP protocol).
void NotifyNewAggregate ()
 This method is called by AddAgregate and completes the aggregation by setting the node in the ICMPv6 stack and adding ICMPv6 factory to IPv6 stack connected to the node.
virtual enum IpL4Protocol::RxStatus Receive (Ptr< Packet > p, Ipv4Header const &header, Ptr< Ipv4Interface > interface)
 Receive method.
virtual enum IpL4Protocol::RxStatus Receive (Ptr< Packet > p, Ipv6Address &src, Ipv6Address &dst, Ptr< Ipv6Interface > interface)
 Receive method.
void SendEchoReply (Ipv6Address src, Ipv6Address dst, uint16_t id, uint16_t seq, Ptr< Packet > data)
 Send a Echo Reply.
void SendErrorDestinationUnreachable (Ptr< Packet > malformedPacket, Ipv6Address dst, uint8_t code)
 Send an error Destination Unreachable.
void SendErrorParameterError (Ptr< Packet > malformedPacket, Ipv6Address dst, uint8_t code, uint32_t ptr)
 Send an error Parameter Error.
void SendErrorTimeExceeded (Ptr< Packet > malformedPacket, Ipv6Address dst, uint8_t code)
 Send an error Time Exceeded.
void SendErrorTooBig (Ptr< Packet > malformedPacket, Ipv6Address dst, uint32_t mtu)
 Send an error Too Big.
void SendMessage (Ptr< Packet > packet, Ipv6Address src, Ipv6Address dst, uint8_t ttl)
 Send a packet via ICMPv6, note that packet already contains ICMPv6 header.
void SendMessage (Ptr< Packet > packet, Ipv6Address dst, Icmpv6Header &icmpv6Hdr, uint8_t ttl)
 Send a packet via ICMPv6.
void SendNA (Ipv6Address src, Ipv6Address dst, Address *hardwareAddress, uint8_t flags)
 Send a Neighbor Adverstisement.
void SendNS (Ipv6Address src, Ipv6Address dst, Ipv6Address target, Address hardwareAddress)
 Send a Neighbor Solicitation.
void SendRedirection (Ptr< Packet > redirectedPacket, Ipv6Address dst, Ipv6Address redirTarget, Ipv6Address redirDestination, Address redirHardwareTarget)
 Send an ICMPv6 Redirection.
void SendRS (Ipv6Address src, Ipv6Address dst, Address hardwareAddress)
 Send a Router Solicitation.
void SetNode (Ptr< Node > node)
 Set the node.
- Public Member Functions inherited from ns3::IpL4Protocol
virtual ~IpL4Protocol ()
virtual DownTargetCallback GetDownTarget (void) const =0
virtual DownTargetCallback6 GetDownTarget6 (void) const =0
virtual void ReceiveIcmp (Ipv4Address icmpSource, uint8_t icmpTtl, uint8_t icmpType, uint8_t icmpCode, uint32_t icmpInfo, Ipv4Address payloadSource, Ipv4Address payloadDestination, const uint8_t payload[8])
virtual void ReceiveIcmp (Ipv6Address icmpSource, uint8_t icmpTtl, uint8_t icmpType, uint8_t icmpCode, uint32_t icmpInfo, Ipv6Address payloadSource, Ipv6Address payloadDestination, const uint8_t payload[8])
virtual void SetDownTarget (DownTargetCallback cb)=0
virtual void SetDownTarget6 (DownTargetCallback6 cb)=0
- Public Member Functions inherited from ns3::Object
 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 Start (void)
- Public Member Functions inherited from ns3::SimpleRefCount< Object, ObjectBase, ObjectDeleter >
 SimpleRefCount ()
 SimpleRefCount (const SimpleRefCount &o)
uint32_t GetReferenceCount (void) const
SimpleRefCountoperator= (const SimpleRefCount &o)
void Ref (void) const
void Unref (void) const
- Public Member Functions inherited from ns3::ObjectBase
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 void FunctionDadTimeout (Ptr< Icmpv6L4Protocol > icmpv6, Ipv6Interface *interface, Ipv6Address addr)
 Function called when DAD timeout.
static uint16_t GetStaticProtocolNumber ()
 Get ICMPv6 protocol number.
static TypeId GetTypeId ()
 Interface ID.

Static Public Attributes

static const uint8_t DELAY_FIRST_PROBE_TIME = 5
 Neighbor Discovery node constants : delay for the first probe.
static const uint8_t MAX_ANYCAST_DELAY_TIME = 1
 Neighbor Discovery node constants : max anycast delay.
static const uint8_t MAX_FINAL_RTR_ADVERTISEMENTS = 3
 Neighbor Discovery router constants : max final RA transmission.
static const uint8_t MAX_INITIAL_RTR_ADVERT_INTERVAL = 16
 Neighbor Discovery router constants : max initial RA initial interval.
static const uint8_t MAX_INITIAL_RTR_ADVERTISEMENTS = 3
 Neighbor Discovery router constants : max initial RA transmission.
static const uint8_t MAX_MULTICAST_SOLICIT = 3
 Neighbor Discovery node constants : max multicast solicitations.
static const uint8_t MAX_NEIGHBOR_ADVERTISEMENT = 3
 Neighbor Discovery node constants : max NA transmission.
static const uint32_t MAX_RA_DELAY_TIME = 500
 Neighbor Discovery router constants : max delay between RA.
static const double MAX_RANDOM_FACTOR = 1.5
 Neighbor Discovery node constants : max random factor.
static const uint8_t MAX_RTR_SOLICITATION_DELAY = 1
 Neighbor Discovery host constants : max RS delay.
static const uint8_t MAX_RTR_SOLICITATIONS = 3
 Neighbor Discovery host constants : max RS transmission.
static const uint8_t MAX_UNICAST_SOLICIT = 3
 Neighbor Discovery node constants : max unicast solicitations.
static const uint8_t MIN_DELAY_BETWEEN_RAS = 3
 Neighbor Discovery router constants : min delay between RA.
static const double MIN_RANDOM_FACTOR = 0.5
 Neighbor Discovery node constants : min random factor.
static const uint8_t PROT_NUMBER = 58
 ICMPv6 protocol number (58).
static const uint32_t REACHABLE_TIME = 30000
 Neighbor Discovery node constants : reachable time.
static const uint32_t RETRANS_TIMER = 1000
 Neighbor Discovery node constants : retransmission timer.
static const uint8_t RTR_SOLICITATION_INTERVAL = 4
 Neighbor Discovery host constants : RS interval.

Protected Member Functions

virtual void DoDispose ()
 Dispose this object.

Private Types

typedef std::list< Ptr
< NdiscCache > > 
CacheList

Private Member Functions

Ptr< NdiscCacheFindCache (Ptr< NetDevice > device)
 Get the cache corresponding to the device.
void Forward (Ipv6Address source, Icmpv6Header icmp, uint32_t info, Ipv6Header ipHeader, const uint8_t payload[8])
 Notify an ICMPv6 reception to upper layers (if requested).
virtual
IpL4Protocol::DownTargetCallback 
GetDownTarget (void) const
virtual
IpL4Protocol::DownTargetCallback6 
GetDownTarget6 (void) const
void HandleDestinationUnreachable (Ptr< Packet > p, Ipv6Address const &src, Ipv6Address const &dst, Ptr< Ipv6Interface > interface)
 Receive Destination Unreachable method.
void HandleEchoRequest (Ptr< Packet > p, Ipv6Address const &src, Ipv6Address const &dst, Ptr< Ipv6Interface > interface)
 Receive Echo Request method.
void HandleNA (Ptr< Packet > p, Ipv6Address const &src, Ipv6Address const &dst, Ptr< Ipv6Interface > interface)
 Receive Neighbor Advertisement method.
void HandleNS (Ptr< Packet > p, Ipv6Address const &src, Ipv6Address const &dst, Ptr< Ipv6Interface > interface)
 Receive Neighbor Solicitation method.
void HandlePacketTooBig (Ptr< Packet > p, Ipv6Address const &src, Ipv6Address const &dst, Ptr< Ipv6Interface > interface)
 Receive Packet Too Big method.
void HandleParameterError (Ptr< Packet > p, Ipv6Address const &src, Ipv6Address const &dst, Ptr< Ipv6Interface > interface)
 Receive Parameter Error method.
void HandleRA (Ptr< Packet > p, Ipv6Address const &src, Ipv6Address const &dst, Ptr< Ipv6Interface > interface)
 Receive Router Advertisement method.
void HandleRedirection (Ptr< Packet > p, Ipv6Address const &src, Ipv6Address const &dst, Ptr< Ipv6Interface > interface)
 Receive Redirection method.
void HandleRS (Ptr< Packet > p, Ipv6Address const &src, Ipv6Address const &dst, Ptr< Ipv6Interface > interface)
 Receive Router Solicitation method.
void HandleTimeExceeded (Ptr< Packet > p, Ipv6Address const &src, Ipv6Address const &dst, Ptr< Ipv6Interface > interface)
 Receive Time Exceeded method.
void ReceiveLLA (Icmpv6OptionLinkLayerAddress lla, Ipv6Address const &src, Ipv6Address const &dst, Ptr< Ipv6Interface > interface)
 Link layer address option processing.
virtual void SetDownTarget (IpL4Protocol::DownTargetCallback cb)
virtual void SetDownTarget6 (IpL4Protocol::DownTargetCallback6 cb)

Private Attributes

bool m_alwaysDad
 Always do DAD ?
CacheList m_cacheList
 A list of cache by device.
IpL4Protocol::DownTargetCallback6 m_downTarget
Ptr< Nodem_node
 The node.

Additional Inherited Members

- Public Types inherited from ns3::IpL4Protocol
typedef Callback< void, Ptr
< Packet >, Ipv4Address,
Ipv4Address, uint8_t, Ptr
< Ipv4Route > > 
DownTargetCallback
typedef Callback< void, Ptr
< Packet >, Ipv6Address,
Ipv6Address, uint8_t, Ptr
< Ipv6Route > > 
DownTargetCallback6
enum  RxStatus { RX_OK, RX_CSUM_FAILED, RX_ENDPOINT_CLOSED, RX_ENDPOINT_UNREACH }

Detailed Description

An implementation of the ICMPv6 protocol.

Definition at line 44 of file icmpv6-l4-protocol.h.

Member Typedef Documentation

Definition at line 405 of file icmpv6-l4-protocol.h.

Constructor & Destructor Documentation

ns3::Icmpv6L4Protocol::Icmpv6L4Protocol ( )

Constructor.

Definition at line 79 of file icmpv6-l4-protocol.cc.

References NS_LOG_FUNCTION_NOARGS.

ns3::Icmpv6L4Protocol::~Icmpv6L4Protocol ( )
virtual

Destructor.

Definition at line 85 of file icmpv6-l4-protocol.cc.

References NS_LOG_FUNCTION_NOARGS.

Member Function Documentation

Ptr< NdiscCache > ns3::Icmpv6L4Protocol::CreateCache ( Ptr< NetDevice device,
Ptr< Ipv6Interface interface 
)

Create a neighbor cache.

Parameters
devicethet NetDevice
interfacethe IPv6 interface
Returns
a smart pointer of NdCache or 0 if problem

Definition at line 1210 of file icmpv6-l4-protocol.cc.

References ns3::NetDevice::AddLinkChangeCallback(), ns3::NdiscCache::Flush(), m_cacheList, ns3::MakeCallback(), and ns3::NdiscCache::SetDevice().

+ Here is the call graph for this function:

void ns3::Icmpv6L4Protocol::DoDAD ( Ipv6Address  target,
Ptr< Ipv6Interface interface 
)

Do the Duplication Address Detection (DAD). It consists in sending a NS with our IPv6 as target. If we received a NA with matched target address, we could not use the address, else the address pass from TENTATIVE to PERMANENT.

Parameters
targettarget address
interfaceinterface

Definition at line 157 of file icmpv6-l4-protocol.cc.

References ForgeNS(), ns3::NetDevice::GetAddress(), ns3::Ipv6Interface::GetDevice(), ns3::Object::GetObject(), ns3::Packet::GetUid(), m_alwaysDad, m_node, ns3::Ipv6Address::MakeSolicitedAddress(), NS_ASSERT, NS_LOG_FUNCTION, ns3::Ipv6Interface::Send(), and ns3::Ipv6Interface::SetNsDadUid().

Referenced by ns3::Ipv6Interface::AddAddress().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ns3::Icmpv6L4Protocol::DoDispose ( void  )
protectedvirtual

Dispose this object.

Reimplemented from ns3::Object.

Definition at line 90 of file icmpv6-l4-protocol.cc.

References ns3::Object::Dispose(), m_cacheList, m_downTarget, m_node, NS_LOG_FUNCTION_NOARGS, and ns3::Callback< R, T1, T2, T3, T4, T5, T6, T7, T8, T9 >::Nullify().

+ Here is the call graph for this function:

Ptr< NdiscCache > ns3::Icmpv6L4Protocol::FindCache ( Ptr< NetDevice device)
private

Get the cache corresponding to the device.

Parameters
devicethe device

Definition at line 1193 of file icmpv6-l4-protocol.cc.

References m_cacheList, NS_ASSERT, and NS_LOG_FUNCTION.

Referenced by HandleNA(), HandleNS(), HandleRedirection(), HandleRS(), Lookup(), and ReceiveLLA().

+ Here is the caller graph for this function:

Ptr< Packet > ns3::Icmpv6L4Protocol::ForgeEchoRequest ( Ipv6Address  src,
Ipv6Address  dst,
uint16_t  id,
uint16_t  seq,
Ptr< Packet data 
)

Forge an Echo Request.

Parameters
srcsource address
dstdestination address
idID of the packet
seqsequence number
datathe data
Returns
Echo Request packet (without IPv6 header)

Definition at line 555 of file icmpv6-l4-protocol.cc.

References ns3::Packet::AddHeader(), ns3::Packet::Copy(), NS_LOG_FUNCTION, ns3::Icmpv6Echo::SetId(), and ns3::Icmpv6Echo::SetSeq().

+ Here is the call graph for this function:

Ptr< Packet > ns3::Icmpv6L4Protocol::ForgeNA ( Ipv6Address  src,
Ipv6Address  dst,
Address hardwareAddress,
uint8_t  flags 
)

Forge a Neighbor Advertisement.

Parameters
srcsource IPv6 address
dstdestination IPv6 address
hardwareAddressour mac address
flagsflags (bitfield => R (4), S (2), O (1))
Returns
NA packet (with IPv6 header)

Definition at line 1120 of file icmpv6-l4-protocol.cc.

References ns3::Packet::AddHeader(), ns3::Icmpv6Header::CalculatePseudoHeaderChecksum(), ns3::Ipv6Address::GetAny(), ns3::Icmpv6NA::GetSerializedSize(), ns3::Packet::GetSize(), NS_LOG_FUNCTION, NS_LOG_LOGIC, PROT_NUMBER, ns3::Icmpv6NA::SetFlagO(), ns3::Icmpv6NA::SetFlagR(), ns3::Icmpv6NA::SetFlagS(), and ns3::Icmpv6NA::SetIpv6Target().

Referenced by HandleNS().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

Ptr< Packet > ns3::Icmpv6L4Protocol::ForgeNS ( Ipv6Address  src,
Ipv6Address  dst,
Ipv6Address  target,
Address  hardwareAddress 
)

Forge a Neighbor Solicitation.

Parameters
srcsource IPv6 address
dstdestination IPv6 address
targettarget IPv6 address
hardwareAddressour mac address
Returns
NS packet (with IPv6 header)

Definition at line 1162 of file icmpv6-l4-protocol.cc.

References ns3::Packet::AddHeader(), ns3::Icmpv6Header::CalculatePseudoHeaderChecksum(), ns3::Ipv6Address::GetAllNodesMulticast(), ns3::Ipv6Address::GetAny(), ns3::Icmpv6NS::GetSerializedSize(), ns3::Packet::GetSize(), NS_LOG_FUNCTION, NS_LOG_LOGIC, and PROT_NUMBER.

Referenced by DoDAD().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

Ptr< Packet > ns3::Icmpv6L4Protocol::ForgeRS ( Ipv6Address  src,
Ipv6Address  dst,
Address  hardwareAddress 
)

Forge a Router Solicitation.

Parameters
srcsource IPv6 address
dstdestination IPv6 address
hardwareAddressour mac address
Returns
RS packet (with IPv6 header)

Definition at line 530 of file icmpv6-l4-protocol.cc.

References ns3::Packet::AddHeader(), ns3::Icmpv6Header::CalculatePseudoHeaderChecksum(), ns3::Icmpv6RS::GetSerializedSize(), ns3::Packet::GetSize(), NS_LOG_FUNCTION, NS_LOG_LOGIC, and PROT_NUMBER.

+ Here is the call graph for this function:

void ns3::Icmpv6L4Protocol::Forward ( Ipv6Address  source,
Icmpv6Header  icmp,
uint32_t  info,
Ipv6Header  ipHeader,
const uint8_t  payload[8] 
)
private

Notify an ICMPv6 reception to upper layers (if requested).

Parameters
sourcethe ICMP source
icmpthe ICMP header
infoinformation about the ICMP
ipHeaderthe IP header carried by the ICMP
payloadthe data carried by the ICMP

Definition at line 246 of file icmpv6-l4-protocol.cc.

References ns3::Icmpv6Header::GetCode(), ns3::Ipv6Header::GetDestinationAddress(), ns3::Ipv6Header::GetHopLimit(), ns3::Ipv6Header::GetNextHeader(), ns3::Object::GetObject(), ns3::Ipv6Header::GetSourceAddress(), ns3::Icmpv6Header::GetType(), m_node, and ns3::IpL4Protocol::ReceiveIcmp().

Referenced by HandleDestinationUnreachable(), HandlePacketTooBig(), HandleParameterError(), and HandleTimeExceeded().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

IpL4Protocol::DownTargetCallback ns3::Icmpv6L4Protocol::GetDownTarget ( void  ) const
privatevirtual

Definition at line 1359 of file icmpv6-l4-protocol.cc.

IpL4Protocol::DownTargetCallback6 ns3::Icmpv6L4Protocol::GetDownTarget6 ( void  ) const
privatevirtual

Definition at line 1365 of file icmpv6-l4-protocol.cc.

References m_downTarget.

int ns3::Icmpv6L4Protocol::GetProtocolNumber ( void  ) const
virtual

Get the protocol number.

Returns
protocol number

Implements ns3::IpL4Protocol.

Definition at line 140 of file icmpv6-l4-protocol.cc.

References NS_LOG_FUNCTION_NOARGS, and PROT_NUMBER.

uint16_t ns3::Icmpv6L4Protocol::GetStaticProtocolNumber ( void  )
static

Get ICMPv6 protocol number.

Returns
protocol number

Definition at line 134 of file icmpv6-l4-protocol.cc.

References NS_LOG_FUNCTION_NOARGS, and PROT_NUMBER.

Referenced by ns3::Ipv6RawSocketImpl::ForwardUp(), ns3::Ipv6L3Protocol::GetIcmpv6(), and ns3::Ipv6RawSocketImpl::SendTo().

+ Here is the caller graph for this function:

TypeId ns3::Icmpv6L4Protocol::GetTypeId ( void  )
static

Interface ID.

This method returns the TypeId associated to ns3::Icmpv6L4Protocol.

Attributes defined for this type:

  • DAD: Always do DAD check.
    • Set with class: BooleanValue
    • Underlying type: bool
    • Initial value: true
    • Flags: construct write read

Attributes defined in parent class ns3::IpL4Protocol:

  • ProtocolNumber: The Ip protocol number.

No TraceSources defined for this type.

Reimplemented from ns3::IpL4Protocol.

Definition at line 66 of file icmpv6-l4-protocol.cc.

References m_alwaysDad, and ns3::TypeId::SetParent().

+ Here is the call graph for this function:

int ns3::Icmpv6L4Protocol::GetVersion ( ) const
virtual

Get the version of the protocol.

Returns
version

Definition at line 146 of file icmpv6-l4-protocol.cc.

References NS_LOG_FUNCTION_NOARGS.

void ns3::Icmpv6L4Protocol::HandleDestinationUnreachable ( Ptr< Packet p,
Ipv6Address const &  src,
Ipv6Address const &  dst,
Ptr< Ipv6Interface interface 
)
private

Receive Destination Unreachable method.

Parameters
pthe packet
srcsource address
dstdestination address
interfacethe interface from which the packet is coming

Definition at line 778 of file icmpv6-l4-protocol.cc.

References ns3::Packet::Copy(), ns3::Packet::CopyData(), Forward(), ns3::Icmpv6Header::GetCode(), ns3::Icmpv6DestinationUnreachable::GetPacket(), ns3::Ipv6Header::GetSerializedSize(), ns3::Packet::GetSerializedSize(), NS_LOG_FUNCTION, and ns3::Packet::RemoveHeader().

Referenced by Receive().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ns3::Icmpv6L4Protocol::HandleEchoRequest ( Ptr< Packet p,
Ipv6Address const &  src,
Ipv6Address const &  dst,
Ptr< Ipv6Interface interface 
)
private

Receive Echo Request method.

Parameters
pthe packet
srcsource address
dstdestination address
interfacethe interface from which the packet is coming

Definition at line 264 of file icmpv6-l4-protocol.cc.

References ns3::Packet::CopyData(), ns3::Ipv6InterfaceAddress::GetAddress(), ns3::Icmpv6Echo::GetId(), ns3::Ipv6Interface::GetLinkLocalAddress(), ns3::Icmpv6Echo::GetSeq(), ns3::Packet::GetSize(), ns3::Ipv6Address::IsMulticast(), NS_LOG_FUNCTION, ns3::Packet::RemoveHeader(), and SendEchoReply().

Referenced by Receive().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ns3::Icmpv6L4Protocol::HandleNA ( Ptr< Packet p,
Ipv6Address const &  src,
Ipv6Address const &  dst,
Ptr< Ipv6Interface interface 
)
private

Receive Neighbor Advertisement method.

Parameters
pthe packet
srcsource address
dstdestination address
interfacethe interface from which the packet is coming

Definition at line 570 of file icmpv6-l4-protocol.cc.

References ns3::NdiscCache::Entry::ClearWaitingPacket(), ns3::Packet::CopyData(), FindCache(), ns3::Ipv6InterfaceAddress::GetAddress(), ns3::Icmpv6OptionLinkLayerAddress::GetAddress(), ns3::Ipv6Interface::GetDevice(), ns3::Icmpv6NA::GetFlagO(), ns3::Icmpv6NA::GetFlagR(), ns3::Icmpv6NA::GetFlagS(), ns3::NdiscCache::GetInterface(), ns3::Icmpv6NA::GetIpv6Target(), ns3::NdiscCache::Entry::GetMacAddress(), ns3::Ipv6InterfaceAddress::GetState(), ns3::Icmpv6Header::ICMPV6_OPT_LINK_LAYER_TARGET, ns3::aodv::INVALID, ns3::NdiscCache::Entry::IsIncomplete(), ns3::NdiscCache::Entry::IsProbe(), ns3::NdiscCache::Entry::IsReachable(), list, ns3::NdiscCache::Lookup(), ns3::NdiscCache::Entry::MarkReachable(), ns3::NdiscCache::Entry::MarkStale(), NS_LOG_FUNCTION, ns3::Packet::RemoveHeader(), ns3::Ipv6Interface::Send(), ns3::NdiscCache::Entry::SetMacAddress(), ns3::NdiscCache::Entry::SetRouter(), ns3::Ipv6Interface::SetState(), ns3::NdiscCache::Entry::StartReachableTimer(), ns3::NdiscCache::Entry::StopDelayTimer(), ns3::NdiscCache::Entry::StopProbeTimer(), ns3::NdiscCache::Entry::StopReachableTimer(), ns3::NdiscCache::Entry::StopRetransmitTimer(), ns3::Ipv6InterfaceAddress::TENTATIVE, and ns3::Ipv6InterfaceAddress::TENTATIVE_OPTIMISTIC.

Referenced by Receive().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ns3::Icmpv6L4Protocol::HandlePacketTooBig ( Ptr< Packet p,
Ipv6Address const &  src,
Ipv6Address const &  dst,
Ptr< Ipv6Interface interface 
)
private

Receive Packet Too Big method.

Parameters
pthe packet
srcsource address
dstdestination address
interfacethe interface from which the packet is coming

Definition at line 813 of file icmpv6-l4-protocol.cc.

References ns3::Packet::Copy(), ns3::Packet::CopyData(), Forward(), ns3::Icmpv6TooBig::GetMtu(), ns3::Icmpv6TooBig::GetPacket(), NS_LOG_FUNCTION, and ns3::Packet::RemoveHeader().

Referenced by Receive().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ns3::Icmpv6L4Protocol::HandleParameterError ( Ptr< Packet p,
Ipv6Address const &  src,
Ipv6Address const &  dst,
Ptr< Ipv6Interface interface 
)
private

Receive Parameter Error method.

Parameters
pthe packet
srcsource address
dstdestination address
interfacethe interface from which the packet is coming

Definition at line 829 of file icmpv6-l4-protocol.cc.

References ns3::Packet::Copy(), ns3::Packet::CopyData(), Forward(), ns3::Icmpv6Header::GetCode(), ns3::Icmpv6ParameterError::GetPacket(), NS_LOG_FUNCTION, and ns3::Packet::RemoveHeader().

Referenced by Receive().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ns3::Icmpv6L4Protocol::HandleRA ( Ptr< Packet p,
Ipv6Address const &  src,
Ipv6Address const &  dst,
Ptr< Ipv6Interface interface 
)
private

Receive Router Advertisement method.

Parameters
pthe packet
srcsource address
dstdestination address
interfacethe interface from which the packet is coming

Definition at line 280 of file icmpv6-l4-protocol.cc.

References ns3::Packet::Copy(), ns3::Packet::CopyData(), ns3::Ipv6Interface::GetDevice(), ns3::Object::GetObject(), ns3::Icmpv6Header::ICMPV6_OPT_LINK_LAYER_SOURCE, ns3::Icmpv6Header::ICMPV6_OPT_MTU, ns3::Icmpv6Header::ICMPV6_OPT_PREFIX, m_node, NS_LOG_FUNCTION, ReceiveLLA(), and ns3::Packet::RemoveHeader().

Referenced by Receive().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ns3::Icmpv6L4Protocol::HandleRedirection ( Ptr< Packet p,
Ipv6Address const &  src,
Ipv6Address const &  dst,
Ptr< Ipv6Interface interface 
)
private
void ns3::Icmpv6L4Protocol::HandleRS ( Ptr< Packet p,
Ipv6Address const &  src,
Ipv6Address const &  dst,
Ptr< Ipv6Interface interface 
)
private

Receive Router Solicitation method.

Parameters
pthe packet
srcsource address
dstdestination address
interfacethe interface from which the packet is coming

Definition at line 398 of file icmpv6-l4-protocol.cc.

References ns3::NdiscCache::Add(), ns3::Packet::CopyData(), FindCache(), ns3::Icmpv6OptionLinkLayerAddress::GetAddress(), ns3::Ipv6Address::GetAny(), ns3::Ipv6Interface::GetDevice(), ns3::NdiscCache::Entry::GetMacAddress(), ns3::Object::GetObject(), ns3::Icmpv6Header::ICMPV6_OPT_LINK_LAYER_SOURCE, ns3::NdiscCache::Lookup(), m_node, ns3::NdiscCache::Entry::MarkStale(), NS_LOG_FUNCTION, NS_LOG_LOGIC, ns3::Packet::RemoveHeader(), and ns3::NdiscCache::Entry::SetRouter().

Referenced by Receive().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ns3::Icmpv6L4Protocol::HandleTimeExceeded ( Ptr< Packet p,
Ipv6Address const &  src,
Ipv6Address const &  dst,
Ptr< Ipv6Interface interface 
)
private

Receive Time Exceeded method.

Parameters
pthe packet
srcsource address
dstdestination address
interfacethe interface from which the packet is coming

Definition at line 797 of file icmpv6-l4-protocol.cc.

References ns3::Packet::Copy(), ns3::Packet::CopyData(), Forward(), ns3::Icmpv6Header::GetCode(), ns3::Icmpv6TimeExceeded::GetPacket(), NS_LOG_FUNCTION, and ns3::Packet::RemoveHeader().

Referenced by Receive().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

bool ns3::Icmpv6L4Protocol::IsAlwaysDad ( ) const

Is the node must do DAD.

Returns
true if node has to do DAD.

Definition at line 152 of file icmpv6-l4-protocol.cc.

References m_alwaysDad.

bool ns3::Icmpv6L4Protocol::Lookup ( Ipv6Address  dst,
Ptr< NetDevice device,
Ptr< NdiscCache cache,
Address hardwareDestination 
)

Lookup in the ND cache for the IPv6 address.

Parameters
dstdestination address
devicedevice
cachethe neighbor cache
hardwareDestinationhardware address
Note
Unlike other Lookup method, it does not send NS request!

Definition at line 1220 of file icmpv6-l4-protocol.cc.

References FindCache(), ns3::NdiscCache::Lookup(), and NS_LOG_FUNCTION.

+ Here is the call graph for this function:

void ns3::Icmpv6L4Protocol::NotifyNewAggregate ( void  )
virtual

This method is called by AddAgregate and completes the aggregation by setting the node in the ICMPv6 stack and adding ICMPv6 factory to IPv6 stack connected to the node.

Reimplemented from ns3::Object.

Definition at line 106 of file icmpv6-l4-protocol.cc.

References ns3::Callback< R, T1, T2, T3, T4, T5, T6, T7, T8, T9 >::IsNull(), m_downTarget, m_node, ns3::MakeCallback(), NS_LOG_FUNCTION_NOARGS, ns3::Ipv6L3Protocol::Send(), SetDownTarget6(), and SetNode().

+ Here is the call graph for this function:

enum IpL4Protocol::RxStatus ns3::Icmpv6L4Protocol::Receive ( Ptr< Packet p,
Ipv4Header const &  header,
Ptr< Ipv4Interface interface 
)
virtual

Receive method.

Parameters
pthe packet
headerthe IPv4 header
interfacethe interface from which the packet is coming

Implements ns3::IpL4Protocol.

Definition at line 179 of file icmpv6-l4-protocol.cc.

References NS_LOG_FUNCTION, and ns3::IpL4Protocol::RX_ENDPOINT_UNREACH.

void ns3::Icmpv6L4Protocol::ReceiveLLA ( Icmpv6OptionLinkLayerAddress  lla,
Ipv6Address const &  src,
Ipv6Address const &  dst,
Ptr< Ipv6Interface interface 
)
private

Link layer address option processing.

Parameters
llaLLA option
srcsource address
dstdestination address
interfacethe interface from which the packet is coming

Definition at line 333 of file icmpv6-l4-protocol.cc.

References ns3::NdiscCache::Add(), FindCache(), ns3::Icmpv6OptionLinkLayerAddress::GetAddress(), ns3::Ipv6Interface::GetDevice(), ns3::NdiscCache::GetInterface(), list, ns3::NdiscCache::Lookup(), NS_LOG_FUNCTION, ns3::Ipv6Interface::Send(), and ns3::NdiscCache::Entry::SetRouter().

Referenced by HandleRA().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ns3::Icmpv6L4Protocol::SendEchoReply ( Ipv6Address  src,
Ipv6Address  dst,
uint16_t  id,
uint16_t  seq,
Ptr< Packet data 
)

Send a Echo Reply.

Parameters
srcsource IPv6 address
dstdestination IPv6 address
idid of the packet
seqsequence number
dataauxiliary data

Definition at line 918 of file icmpv6-l4-protocol.cc.

References ns3::Packet::AddHeader(), ns3::Icmpv6Header::CalculatePseudoHeaderChecksum(), ns3::Packet::Copy(), ns3::Icmpv6Echo::GetSerializedSize(), ns3::Packet::GetSize(), NS_LOG_FUNCTION, PROT_NUMBER, SendMessage(), ns3::Icmpv6Echo::SetId(), and ns3::Icmpv6Echo::SetSeq().

Referenced by HandleEchoRequest().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ns3::Icmpv6L4Protocol::SendErrorDestinationUnreachable ( Ptr< Packet malformedPacket,
Ipv6Address  dst,
uint8_t  code 
)

Send an error Destination Unreachable.

Parameters
malformedPacketthe malformed packet
dstdestination IPv6 address
codecode of the error

Definition at line 974 of file icmpv6-l4-protocol.cc.

References ns3::Packet::CreateFragment(), ns3::Packet::GetSize(), NS_LOG_FUNCTION, NS_LOG_LOGIC, SendMessage(), ns3::Icmpv6Header::SetCode(), and ns3::Icmpv6DestinationUnreachable::SetPacket().

+ Here is the call graph for this function:

void ns3::Icmpv6L4Protocol::SendErrorParameterError ( Ptr< Packet malformedPacket,
Ipv6Address  dst,
uint8_t  code,
uint32_t  ptr 
)

Send an error Parameter Error.

Parameters
malformedPacketthe malformed packet
dstdestination IPv6 address
codecode of the error
ptrbyte of p where the error is located

Definition at line 1047 of file icmpv6-l4-protocol.cc.

References ns3::Packet::CreateFragment(), ns3::Packet::GetSize(), NS_LOG_FUNCTION, NS_LOG_LOGIC, SendMessage(), ns3::Icmpv6Header::SetCode(), ns3::Icmpv6ParameterError::SetPacket(), and ns3::Icmpv6ParameterError::SetPtr().

+ Here is the call graph for this function:

void ns3::Icmpv6L4Protocol::SendErrorTimeExceeded ( Ptr< Packet malformedPacket,
Ipv6Address  dst,
uint8_t  code 
)

Send an error Time Exceeded.

Parameters
malformedPacketthe malformed packet
dstdestination IPv6 address
codecode of the error

Definition at line 1023 of file icmpv6-l4-protocol.cc.

References ns3::Packet::CreateFragment(), ns3::Packet::GetSize(), NS_LOG_FUNCTION, NS_LOG_LOGIC, SendMessage(), ns3::Icmpv6Header::SetCode(), and ns3::Icmpv6TimeExceeded::SetPacket().

+ Here is the call graph for this function:

void ns3::Icmpv6L4Protocol::SendErrorTooBig ( Ptr< Packet malformedPacket,
Ipv6Address  dst,
uint32_t  mtu 
)

Send an error Too Big.

Parameters
malformedPacketthe malformed packet
dstdestination IPv6 address
mtuthe mtu

Definition at line 998 of file icmpv6-l4-protocol.cc.

References ns3::Packet::CreateFragment(), ns3::Packet::GetSize(), NS_LOG_FUNCTION, NS_LOG_LOGIC, SendMessage(), ns3::Icmpv6Header::SetCode(), ns3::Icmpv6TooBig::SetMtu(), and ns3::Icmpv6TooBig::SetPacket().

+ Here is the call graph for this function:

void ns3::Icmpv6L4Protocol::SendMessage ( Ptr< Packet packet,
Ipv6Address  src,
Ipv6Address  dst,
uint8_t  ttl 
)

Send a packet via ICMPv6, note that packet already contains ICMPv6 header.

Parameters
packetthe packet to send which contains ICMPv6 header
srcsource address
dstdestination address
ttlnext hop limit

Definition at line 845 of file icmpv6-l4-protocol.cc.

References ns3::Packet::AddPacketTag(), ns3::Object::GetObject(), m_downTarget, m_node, NS_ASSERT, NS_LOG_FUNCTION, and PROT_NUMBER.

Referenced by SendEchoReply(), SendErrorDestinationUnreachable(), SendErrorParameterError(), SendErrorTimeExceeded(), SendErrorTooBig(), SendNA(), SendNS(), SendRedirection(), and SendRS().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ns3::Icmpv6L4Protocol::SendMessage ( Ptr< Packet packet,
Ipv6Address  dst,
Icmpv6Header icmpv6Hdr,
uint8_t  ttl 
)

Send a packet via ICMPv6.

Parameters
packetthe packet to send
dstdestination address
icmpv6HdrICMPv6 header (needed to calculate checksum after source address is determined by routing stuff
ttlnext hop limit

Definition at line 857 of file icmpv6-l4-protocol.cc.

References ns3::Packet::AddHeader(), ns3::Packet::AddPacketTag(), ns3::Icmpv6Header::CalculatePseudoHeaderChecksum(), ns3::Object::GetObject(), ns3::Icmpv6Header::GetSerializedSize(), ns3::Packet::GetSize(), m_downTarget, m_node, NS_ASSERT, NS_LOG_FUNCTION, NS_LOG_LOGIC, NS_LOG_WARN, PROT_NUMBER, and ns3::SocketIpTtlTag::SetTtl().

+ Here is the call graph for this function:

void ns3::Icmpv6L4Protocol::SendNA ( Ipv6Address  src,
Ipv6Address  dst,
Address hardwareAddress,
uint8_t  flags 
)

Send a Neighbor Adverstisement.

Parameters
srcsource IPv6 address
dstdestination IPv6 address
hardwareAddressour MAC address
flagsto set (4 = flag R, 2 = flag S, 3 = flag O)

Definition at line 888 of file icmpv6-l4-protocol.cc.

References ns3::Packet::AddHeader(), ns3::Ipv6Address::GetAny(), ns3::Packet::GetSize(), NS_LOG_FUNCTION, NS_LOG_LOGIC, PROT_NUMBER, and SendMessage().

+ Here is the call graph for this function:

void ns3::Icmpv6L4Protocol::SendNS ( Ipv6Address  src,
Ipv6Address  dst,
Ipv6Address  target,
Address  hardwareAddress 
)

Send a Neighbor Solicitation.

Parameters
srcsource IPv6 address
dstdestination IPv6 address
targettarget IPv6 address
hardwareAddressour mac address

Definition at line 932 of file icmpv6-l4-protocol.cc.

References ns3::Packet::AddHeader(), ns3::Ipv6Address::GetAllNodesMulticast(), ns3::Ipv6Address::GetAny(), ns3::Packet::GetSize(), NS_LOG_FUNCTION, NS_LOG_LOGIC, PROT_NUMBER, and SendMessage().

Referenced by Lookup().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ns3::Icmpv6L4Protocol::SendRedirection ( Ptr< Packet redirectedPacket,
Ipv6Address  dst,
Ipv6Address  redirTarget,
Ipv6Address  redirDestination,
Address  redirHardwareTarget 
)

Send an ICMPv6 Redirection.

Parameters
redirectedPacketthe redirected packet
dstdestination IPv6 address
redirTargetIPv6 target address for Icmpv6Redirection
redirDestinationIPv6 destination address for Icmpv6Redirection
redirHardwareTargetL2 target address for Icmpv6OptionRdirected

Definition at line 1072 of file icmpv6-l4-protocol.cc.

References ns3::Packet::AddAtEnd(), ns3::Packet::AddHeader(), ns3::Packet::CreateFragment(), ns3::Address::GetLength(), ns3::Icmpv6OptionLinkLayerAddress::GetSerializedSize(), ns3::Packet::GetSize(), NS_LOG_FUNCTION, NS_LOG_LOGIC, SendMessage(), ns3::Icmpv6OptionLinkLayerAddress::SetAddress(), ns3::Icmpv6Redirection::SetDestination(), ns3::Icmpv6OptionRedirected::SetPacket(), and ns3::Icmpv6Redirection::SetTarget().

+ Here is the call graph for this function:

void ns3::Icmpv6L4Protocol::SendRS ( Ipv6Address  src,
Ipv6Address  dst,
Address  hardwareAddress 
)

Send a Router Solicitation.

Parameters
srclink-local source address
dstdestination address (usealy ff02::2 i.e all-routers)
hardwareAddresslink-layer address (SHOULD be included if src is not ::

Definition at line 954 of file icmpv6-l4-protocol.cc.

References ns3::Packet::AddHeader(), ns3::Ipv6Address::GetAny(), ns3::Packet::GetSize(), NS_LOG_FUNCTION, NS_LOG_LOGIC, PROT_NUMBER, and SendMessage().

Referenced by FunctionDadTimeout().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ns3::Icmpv6L4Protocol::SetDownTarget ( IpL4Protocol::DownTargetCallback  cb)
privatevirtual

Definition at line 1348 of file icmpv6-l4-protocol.cc.

void ns3::Icmpv6L4Protocol::SetDownTarget6 ( IpL4Protocol::DownTargetCallback6  cb)
privatevirtual

Definition at line 1353 of file icmpv6-l4-protocol.cc.

References m_downTarget.

Referenced by NotifyNewAggregate().

+ Here is the caller graph for this function:

void ns3::Icmpv6L4Protocol::SetNode ( Ptr< Node node)

Set the node.

Parameters
nodethe node to set

Definition at line 128 of file icmpv6-l4-protocol.cc.

References m_node, and NS_LOG_FUNCTION.

Referenced by NotifyNewAggregate().

+ Here is the caller graph for this function:

Member Data Documentation

const uint8_t ns3::Icmpv6L4Protocol::DELAY_FIRST_PROBE_TIME = 5
static

Neighbor Discovery node constants : delay for the first probe.

Definition at line 130 of file icmpv6-l4-protocol.h.

Referenced by ns3::NdiscCache::Entry::StartDelayTimer().

bool ns3::Icmpv6L4Protocol::m_alwaysDad
private

Always do DAD ?

Definition at line 420 of file icmpv6-l4-protocol.h.

Referenced by DoDAD(), GetTypeId(), and IsAlwaysDad().

CacheList ns3::Icmpv6L4Protocol::m_cacheList
private

A list of cache by device.

Definition at line 415 of file icmpv6-l4-protocol.h.

Referenced by CreateCache(), DoDispose(), and FindCache().

IpL4Protocol::DownTargetCallback6 ns3::Icmpv6L4Protocol::m_downTarget
private
Ptr<Node> ns3::Icmpv6L4Protocol::m_node
private
const uint8_t ns3::Icmpv6L4Protocol::MAX_ANYCAST_DELAY_TIME = 1
static

Neighbor Discovery node constants : max anycast delay.

Definition at line 110 of file icmpv6-l4-protocol.h.

const uint8_t ns3::Icmpv6L4Protocol::MAX_FINAL_RTR_ADVERTISEMENTS = 3
static

Neighbor Discovery router constants : max final RA transmission.

Definition at line 70 of file icmpv6-l4-protocol.h.

const uint8_t ns3::Icmpv6L4Protocol::MAX_INITIAL_RTR_ADVERT_INTERVAL = 16
static

Neighbor Discovery router constants : max initial RA initial interval.

Definition at line 60 of file icmpv6-l4-protocol.h.

const uint8_t ns3::Icmpv6L4Protocol::MAX_INITIAL_RTR_ADVERTISEMENTS = 3
static

Neighbor Discovery router constants : max initial RA transmission.

Definition at line 65 of file icmpv6-l4-protocol.h.

const uint8_t ns3::Icmpv6L4Protocol::MAX_MULTICAST_SOLICIT = 3
static

Neighbor Discovery node constants : max multicast solicitations.

Definition at line 100 of file icmpv6-l4-protocol.h.

const uint8_t ns3::Icmpv6L4Protocol::MAX_NEIGHBOR_ADVERTISEMENT = 3
static

Neighbor Discovery node constants : max NA transmission.

Definition at line 115 of file icmpv6-l4-protocol.h.

const uint32_t ns3::Icmpv6L4Protocol::MAX_RA_DELAY_TIME = 500
static

Neighbor Discovery router constants : max delay between RA.

Definition at line 80 of file icmpv6-l4-protocol.h.

const double ns3::Icmpv6L4Protocol::MAX_RANDOM_FACTOR = 1.5
static

Neighbor Discovery node constants : max random factor.

Definition at line 140 of file icmpv6-l4-protocol.h.

const uint8_t ns3::Icmpv6L4Protocol::MAX_RTR_SOLICITATION_DELAY = 1
static

Neighbor Discovery host constants : max RS delay.

Definition at line 85 of file icmpv6-l4-protocol.h.

const uint8_t ns3::Icmpv6L4Protocol::MAX_RTR_SOLICITATIONS = 3
static

Neighbor Discovery host constants : max RS transmission.

Definition at line 95 of file icmpv6-l4-protocol.h.

const uint8_t ns3::Icmpv6L4Protocol::MAX_UNICAST_SOLICIT = 3
static

Neighbor Discovery node constants : max unicast solicitations.

Definition at line 105 of file icmpv6-l4-protocol.h.

const uint8_t ns3::Icmpv6L4Protocol::MIN_DELAY_BETWEEN_RAS = 3
static

Neighbor Discovery router constants : min delay between RA.

Definition at line 75 of file icmpv6-l4-protocol.h.

const double ns3::Icmpv6L4Protocol::MIN_RANDOM_FACTOR = 0.5
static

Neighbor Discovery node constants : min random factor.

Definition at line 135 of file icmpv6-l4-protocol.h.

const uint8_t ns3::Icmpv6L4Protocol::PROT_NUMBER = 58
static
const uint32_t ns3::Icmpv6L4Protocol::REACHABLE_TIME = 30000
static

Neighbor Discovery node constants : reachable time.

Definition at line 120 of file icmpv6-l4-protocol.h.

Referenced by ns3::NdiscCache::Entry::StartReachableTimer().

const uint32_t ns3::Icmpv6L4Protocol::RETRANS_TIMER = 1000
static

Neighbor Discovery node constants : retransmission timer.

Definition at line 125 of file icmpv6-l4-protocol.h.

Referenced by ns3::NdiscCache::Entry::StartProbeTimer(), and ns3::NdiscCache::Entry::StartRetransmitTimer().

const uint8_t ns3::Icmpv6L4Protocol::RTR_SOLICITATION_INTERVAL = 4
static

Neighbor Discovery host constants : RS interval.

Definition at line 90 of file icmpv6-l4-protocol.h.


The documentation for this class was generated from the following files: