An implementation of the ICMPv6 protocol. More...
#include <icmpv6-l4-protocol.h>
Public Member Functions | |
Icmpv6L4Protocol () | |
Constructor. | |
virtual | ~Icmpv6L4Protocol () |
Destructor. | |
Ptr< NdiscCache > | CreateCache (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< Packet > | ForgeEchoRequest (Ipv6Address src, Ipv6Address dst, uint16_t id, uint16_t seq, Ptr< Packet > data) |
Forge an Echo Request. | |
Ptr< Packet > | ForgeNA (Ipv6Address src, Ipv6Address dst, Address *hardwareAddress, uint8_t flags) |
Forge a Neighbor Advertisement. | |
Ptr< Packet > | ForgeNS (Ipv6Address src, Ipv6Address dst, Ipv6Address target, Address hardwareAddress) |
Forge a Neighbor Solicitation. | |
Ptr< Packet > | ForgeRS (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. | |
![]() | |
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 |
![]() | |
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) |
![]() | |
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 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< NdiscCache > | FindCache (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< Node > | m_node |
The node. |
Additional Inherited Members | |
![]() | |
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 } |
An implementation of the ICMPv6 protocol.
Definition at line 44 of file icmpv6-l4-protocol.h.
|
private |
Definition at line 405 of file icmpv6-l4-protocol.h.
ns3::Icmpv6L4Protocol::Icmpv6L4Protocol | ( | ) |
Constructor.
Definition at line 79 of file icmpv6-l4-protocol.cc.
References NS_LOG_FUNCTION_NOARGS.
|
virtual |
Ptr< NdiscCache > ns3::Icmpv6L4Protocol::CreateCache | ( | Ptr< NetDevice > | device, |
Ptr< Ipv6Interface > | interface | ||
) |
Create a neighbor cache.
device | thet NetDevice |
interface | the IPv6 interface |
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().
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.
target | target address |
interface | interface |
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().
|
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().
|
private |
Get the cache corresponding to the device.
device | the 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().
Ptr< Packet > ns3::Icmpv6L4Protocol::ForgeEchoRequest | ( | Ipv6Address | src, |
Ipv6Address | dst, | ||
uint16_t | id, | ||
uint16_t | seq, | ||
Ptr< Packet > | data | ||
) |
Forge an Echo Request.
src | source address |
dst | destination address |
id | ID of the packet |
seq | sequence number |
data | the data |
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().
Ptr< Packet > ns3::Icmpv6L4Protocol::ForgeNA | ( | Ipv6Address | src, |
Ipv6Address | dst, | ||
Address * | hardwareAddress, | ||
uint8_t | flags | ||
) |
Forge a Neighbor Advertisement.
src | source IPv6 address |
dst | destination IPv6 address |
hardwareAddress | our mac address |
flags | flags (bitfield => R (4), S (2), O (1)) |
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().
Ptr< Packet > ns3::Icmpv6L4Protocol::ForgeNS | ( | Ipv6Address | src, |
Ipv6Address | dst, | ||
Ipv6Address | target, | ||
Address | hardwareAddress | ||
) |
Forge a Neighbor Solicitation.
src | source IPv6 address |
dst | destination IPv6 address |
target | target IPv6 address |
hardwareAddress | our mac address |
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().
Ptr< Packet > ns3::Icmpv6L4Protocol::ForgeRS | ( | Ipv6Address | src, |
Ipv6Address | dst, | ||
Address | hardwareAddress | ||
) |
Forge a Router Solicitation.
src | source IPv6 address |
dst | destination IPv6 address |
hardwareAddress | our mac address |
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.
|
private |
Notify an ICMPv6 reception to upper layers (if requested).
source | the ICMP source |
icmp | the ICMP header |
info | information about the ICMP |
ipHeader | the IP header carried by the ICMP |
payload | the 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().
|
static |
Function called when DAD timeout.
icmpv6 | Icmpv6L4Protocol instance |
interface | the interface |
addr | the IPv6 address |
Definition at line 1304 of file icmpv6-l4-protocol.cc.
References ns3::Ipv6InterfaceAddress::GetAddress(), ns3::NetDevice::GetAddress(), ns3::Ipv6Interface::GetAddress(), ns3::Ipv6Address::GetAllRoutersMulticast(), ns3::Ipv6Interface::GetDevice(), ns3::Ipv6::GetInterfaceForDevice(), ns3::Ipv6Interface::GetNAddresses(), ns3::Ipv6InterfaceAddress::GetState(), ns3::aodv::INVALID, ns3::Ipv6::IsForwarding(), ns3::Ipv6Address::IsLinkLocal(), NS_LOG_FUNCTION_NOARGS, NS_LOG_LOGIC, ns3::PeekPointer(), ns3::Ipv6InterfaceAddress::PREFERRED, ns3::Simulator::Schedule(), ns3::Seconds(), SendRS(), and ns3::Ipv6Interface::SetState().
Referenced by ns3::Ipv6Interface::AddAddress().
|
privatevirtual |
Definition at line 1359 of file icmpv6-l4-protocol.cc.
|
privatevirtual |
Definition at line 1365 of file icmpv6-l4-protocol.cc.
References m_downTarget.
|
virtual |
Get the protocol number.
Implements ns3::IpL4Protocol.
Definition at line 140 of file icmpv6-l4-protocol.cc.
References NS_LOG_FUNCTION_NOARGS, and PROT_NUMBER.
|
static |
Get ICMPv6 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().
|
static |
Interface ID.
This method returns the TypeId associated to ns3::Icmpv6L4Protocol.
Attributes defined for this type:
Attributes defined in parent class ns3::IpL4Protocol:
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().
|
virtual |
Get the version of the protocol.
Definition at line 146 of file icmpv6-l4-protocol.cc.
References NS_LOG_FUNCTION_NOARGS.
|
private |
Receive Destination Unreachable method.
p | the packet |
src | source address |
dst | destination address |
interface | the 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().
|
private |
Receive Echo Request method.
p | the packet |
src | source address |
dst | destination address |
interface | the 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().
|
private |
Receive Neighbor Advertisement method.
p | the packet |
src | source address |
dst | destination address |
interface | the 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().
|
private |
Receive Neighbor Solicitation method.
p | the packet |
src | source address |
dst | destination address |
interface | the interface from which the packet is coming |
Definition at line 437 of file icmpv6-l4-protocol.cc.
References ns3::NdiscCache::Add(), ns3::Packet::CopyData(), FindCache(), ForgeNA(), ns3::Ipv6InterfaceAddress::GetAddress(), ns3::NetDevice::GetAddress(), ns3::Ipv6Interface::GetAddress(), ns3::Icmpv6OptionLinkLayerAddress::GetAddress(), ns3::Ipv6Address::GetAllNodesMulticast(), ns3::Ipv6Address::GetAny(), ns3::Ipv6Interface::GetDevice(), ns3::Icmpv6NS::GetIpv6Target(), ns3::Ipv6Interface::GetLinkLocalAddress(), ns3::NdiscCache::Entry::GetMacAddress(), ns3::Ipv6Interface::GetNAddresses(), ns3::Ipv6InterfaceAddress::GetNsDadUid(), ns3::Object::GetObject(), ns3::Packet::GetUid(), ns3::Icmpv6Header::ICMPV6_OPT_LINK_LAYER_SOURCE, ns3::Ipv6Address::IsAny(), ns3::Ipv6Address::IsLinkLocal(), ns3::NdiscCache::Lookup(), m_node, ns3::NdiscCache::Entry::MarkStale(), NS_LOG_FUNCTION, NS_LOG_LOGIC, ns3::Packet::RemoveHeader(), ns3::Ipv6Interface::Send(), and ns3::NdiscCache::Entry::SetRouter().
Referenced by Receive().
|
private |
Receive Packet Too Big method.
p | the packet |
src | source address |
dst | destination address |
interface | the 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().
|
private |
Receive Parameter Error method.
p | the packet |
src | source address |
dst | destination address |
interface | the 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().
|
private |
Receive Router Advertisement method.
p | the packet |
src | source address |
dst | destination address |
interface | the 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().
|
private |
Receive Redirection method.
p | the packet |
src | source address |
dst | destination address |
interface | the interface from which the packet is coming |
Definition at line 706 of file icmpv6-l4-protocol.cc.
References ns3::NdiscCache::Add(), ns3::Packet::Copy(), ns3::Packet::CopyData(), FindCache(), ns3::Icmpv6OptionLinkLayerAddress::GetAddress(), ns3::Icmpv6Redirection::GetDestination(), ns3::Ipv6Interface::GetDevice(), ns3::Ipv6::GetInterfaceForAddress(), ns3::Object::GetObject(), ns3::Ipv6::GetRoutingProtocol(), ns3::Icmpv6Redirection::GetTarget(), ns3::Icmpv6Header::ICMPV6_OPT_LINK_LAYER_TARGET, ns3::Ipv6Address::IsEqual(), ns3::NdiscCache::Lookup(), m_node, ns3::Ipv6RoutingProtocol::NotifyAddRoute(), NS_LOG_FUNCTION, ns3::Packet::RemoveHeader(), and ns3::NdiscCache::Entry::SetRouter().
Referenced by Receive().
|
private |
Receive Router Solicitation method.
p | the packet |
src | source address |
dst | destination address |
interface | the 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().
|
private |
Receive Time Exceeded method.
p | the packet |
src | source address |
dst | destination address |
interface | the 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().
bool ns3::Icmpv6L4Protocol::IsAlwaysDad | ( | ) | const |
Is the node must 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.
dst | destination address |
device | device |
cache | the neighbor cache |
hardwareDestination | hardware address |
Definition at line 1220 of file icmpv6-l4-protocol.cc.
References FindCache(), ns3::NdiscCache::Lookup(), and NS_LOG_FUNCTION.
bool ns3::Icmpv6L4Protocol::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).
It also send NS request to target and store the waiting packet.
p | the packet |
dst | destination address |
device | device |
cache | the neighbor cache |
hardwareDestination | hardware address |
Definition at line 1233 of file icmpv6-l4-protocol.cc.
References ns3::NdiscCache::Add(), ns3::NdiscCache::Entry::AddWaitingPacket(), FindCache(), ns3::Ipv6InterfaceAddress::GetAddress(), ns3::NetDevice::GetAddress(), ns3::Ipv6Interface::GetAddressMatchingDestination(), ns3::NdiscCache::GetDevice(), ns3::NdiscCache::GetInterface(), ns3::Ipv6Interface::GetLinkLocalAddress(), ns3::NdiscCache::Entry::GetMacAddress(), ns3::Ipv6Interface::GetNAddresses(), ns3::NdiscCache::Entry::IsDelay(), ns3::Ipv6Address::IsLinkLocal(), ns3::NdiscCache::Entry::IsReachable(), ns3::NdiscCache::Entry::IsStale(), ns3::NdiscCache::Lookup(), ns3::Ipv6Address::MakeSolicitedAddress(), ns3::NdiscCache::Entry::MarkDelay(), ns3::NdiscCache::Entry::MarkIncomplete(), NS_LOG_FUNCTION, ns3::NdiscCache::Remove(), SendNS(), ns3::NdiscCache::Entry::SetRouter(), ns3::NdiscCache::Entry::StartDelayTimer(), and ns3::NdiscCache::Entry::StartRetransmitTimer().
|
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().
|
virtual |
Receive method.
p | the packet |
header | the IPv4 header |
interface | the 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.
|
virtual |
Receive method.
p | the packet |
src | source address |
dst | destination address |
interface | the interface from which the packet is coming |
Implements ns3::IpL4Protocol.
Definition at line 185 of file icmpv6-l4-protocol.cc.
References ns3::Packet::Copy(), ns3::Packet::CopyData(), ns3::Ipv6Interface::GetDevice(), ns3::Ipv6::GetInterfaceForDevice(), ns3::Object::GetObject(), HandleDestinationUnreachable(), HandleEchoRequest(), HandleNA(), HandleNS(), HandlePacketTooBig(), HandleParameterError(), HandleRA(), HandleRedirection(), HandleRS(), HandleTimeExceeded(), ns3::Icmpv6Header::ICMPV6_ECHO_REPLY, ns3::Icmpv6Header::ICMPV6_ECHO_REQUEST, ns3::Icmpv6Header::ICMPV6_ERROR_DESTINATION_UNREACHABLE, ns3::Icmpv6Header::ICMPV6_ERROR_PACKET_TOO_BIG, ns3::Icmpv6Header::ICMPV6_ERROR_PARAMETER_ERROR, ns3::Icmpv6Header::ICMPV6_ERROR_TIME_EXCEEDED, ns3::Icmpv6Header::ICMPV6_ND_NEIGHBOR_ADVERTISEMENT, ns3::Icmpv6Header::ICMPV6_ND_NEIGHBOR_SOLICITATION, ns3::Icmpv6Header::ICMPV6_ND_REDIRECTION, ns3::Icmpv6Header::ICMPV6_ND_ROUTER_ADVERTISEMENT, ns3::Icmpv6Header::ICMPV6_ND_ROUTER_SOLICITATION, ns3::Ipv6::IsForwarding(), m_node, NS_LOG_FUNCTION, NS_LOG_LOGIC, and ns3::IpL4Protocol::RX_OK.
|
private |
Link layer address option processing.
lla | LLA option |
src | source address |
dst | destination address |
interface | the 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().
void ns3::Icmpv6L4Protocol::SendEchoReply | ( | Ipv6Address | src, |
Ipv6Address | dst, | ||
uint16_t | id, | ||
uint16_t | seq, | ||
Ptr< Packet > | data | ||
) |
Send a Echo Reply.
src | source IPv6 address |
dst | destination IPv6 address |
id | id of the packet |
seq | sequence number |
data | auxiliary 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().
void ns3::Icmpv6L4Protocol::SendErrorDestinationUnreachable | ( | Ptr< Packet > | malformedPacket, |
Ipv6Address | dst, | ||
uint8_t | code | ||
) |
Send an error Destination Unreachable.
malformedPacket | the malformed packet |
dst | destination IPv6 address |
code | code 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().
void ns3::Icmpv6L4Protocol::SendErrorParameterError | ( | Ptr< Packet > | malformedPacket, |
Ipv6Address | dst, | ||
uint8_t | code, | ||
uint32_t | ptr | ||
) |
Send an error Parameter Error.
malformedPacket | the malformed packet |
dst | destination IPv6 address |
code | code of the error |
ptr | byte 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().
void ns3::Icmpv6L4Protocol::SendErrorTimeExceeded | ( | Ptr< Packet > | malformedPacket, |
Ipv6Address | dst, | ||
uint8_t | code | ||
) |
Send an error Time Exceeded.
malformedPacket | the malformed packet |
dst | destination IPv6 address |
code | code 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().
void ns3::Icmpv6L4Protocol::SendErrorTooBig | ( | Ptr< Packet > | malformedPacket, |
Ipv6Address | dst, | ||
uint32_t | mtu | ||
) |
Send an error Too Big.
malformedPacket | the malformed packet |
dst | destination IPv6 address |
mtu | the 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().
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.
packet | the packet to send which contains ICMPv6 header |
src | source address |
dst | destination address |
ttl | next 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().
void ns3::Icmpv6L4Protocol::SendMessage | ( | Ptr< Packet > | packet, |
Ipv6Address | dst, | ||
Icmpv6Header & | icmpv6Hdr, | ||
uint8_t | ttl | ||
) |
Send a packet via ICMPv6.
packet | the packet to send |
dst | destination address |
icmpv6Hdr | ICMPv6 header (needed to calculate checksum after source address is determined by routing stuff |
ttl | next 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().
void ns3::Icmpv6L4Protocol::SendNA | ( | Ipv6Address | src, |
Ipv6Address | dst, | ||
Address * | hardwareAddress, | ||
uint8_t | flags | ||
) |
Send a Neighbor Adverstisement.
src | source IPv6 address |
dst | destination IPv6 address |
hardwareAddress | our MAC address |
flags | to 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().
void ns3::Icmpv6L4Protocol::SendNS | ( | Ipv6Address | src, |
Ipv6Address | dst, | ||
Ipv6Address | target, | ||
Address | hardwareAddress | ||
) |
Send a Neighbor Solicitation.
src | source IPv6 address |
dst | destination IPv6 address |
target | target IPv6 address |
hardwareAddress | our 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().
void ns3::Icmpv6L4Protocol::SendRedirection | ( | Ptr< Packet > | redirectedPacket, |
Ipv6Address | dst, | ||
Ipv6Address | redirTarget, | ||
Ipv6Address | redirDestination, | ||
Address | redirHardwareTarget | ||
) |
Send an ICMPv6 Redirection.
redirectedPacket | the redirected packet |
dst | destination IPv6 address |
redirTarget | IPv6 target address for Icmpv6Redirection |
redirDestination | IPv6 destination address for Icmpv6Redirection |
redirHardwareTarget | L2 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().
void ns3::Icmpv6L4Protocol::SendRS | ( | Ipv6Address | src, |
Ipv6Address | dst, | ||
Address | hardwareAddress | ||
) |
Send a Router Solicitation.
src | link-local source address |
dst | destination address (usealy ff02::2 i.e all-routers) |
hardwareAddress | link-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().
|
privatevirtual |
Definition at line 1348 of file icmpv6-l4-protocol.cc.
|
privatevirtual |
Definition at line 1353 of file icmpv6-l4-protocol.cc.
References m_downTarget.
Referenced by NotifyNewAggregate().
Set the node.
node | the node to set |
Definition at line 128 of file icmpv6-l4-protocol.cc.
References m_node, and NS_LOG_FUNCTION.
Referenced by NotifyNewAggregate().
|
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().
|
private |
Always do DAD ?
Definition at line 420 of file icmpv6-l4-protocol.h.
Referenced by DoDAD(), GetTypeId(), and IsAlwaysDad().
|
private |
A list of cache by device.
Definition at line 415 of file icmpv6-l4-protocol.h.
Referenced by CreateCache(), DoDispose(), and FindCache().
|
private |
Definition at line 546 of file icmpv6-l4-protocol.h.
Referenced by DoDispose(), GetDownTarget6(), NotifyNewAggregate(), SendMessage(), and SetDownTarget6().
The node.
Definition at line 410 of file icmpv6-l4-protocol.h.
Referenced by DoDAD(), DoDispose(), Forward(), HandleNS(), HandleRA(), HandleRedirection(), HandleRS(), NotifyNewAggregate(), Receive(), SendMessage(), and SetNode().
|
static |
Neighbor Discovery node constants : max anycast delay.
Definition at line 110 of file icmpv6-l4-protocol.h.
|
static |
Neighbor Discovery router constants : max final RA transmission.
Definition at line 70 of file icmpv6-l4-protocol.h.
|
static |
Neighbor Discovery router constants : max initial RA initial interval.
Definition at line 60 of file icmpv6-l4-protocol.h.
|
static |
Neighbor Discovery router constants : max initial RA transmission.
Definition at line 65 of file icmpv6-l4-protocol.h.
|
static |
Neighbor Discovery node constants : max multicast solicitations.
Definition at line 100 of file icmpv6-l4-protocol.h.
|
static |
Neighbor Discovery node constants : max NA transmission.
Definition at line 115 of file icmpv6-l4-protocol.h.
|
static |
Neighbor Discovery router constants : max delay between RA.
Definition at line 80 of file icmpv6-l4-protocol.h.
|
static |
Neighbor Discovery node constants : max random factor.
Definition at line 140 of file icmpv6-l4-protocol.h.
|
static |
Neighbor Discovery host constants : max RS delay.
Definition at line 85 of file icmpv6-l4-protocol.h.
|
static |
Neighbor Discovery host constants : max RS transmission.
Definition at line 95 of file icmpv6-l4-protocol.h.
|
static |
Neighbor Discovery node constants : max unicast solicitations.
Definition at line 105 of file icmpv6-l4-protocol.h.
|
static |
Neighbor Discovery router constants : min delay between RA.
Definition at line 75 of file icmpv6-l4-protocol.h.
|
static |
Neighbor Discovery node constants : min random factor.
Definition at line 135 of file icmpv6-l4-protocol.h.
|
static |
ICMPv6 protocol number (58).
Definition at line 55 of file icmpv6-l4-protocol.h.
Referenced by ForgeNA(), ForgeNS(), ForgeRS(), GetProtocolNumber(), GetStaticProtocolNumber(), ns3::Ipv6L3Protocol::IpForward(), SendEchoReply(), SendMessage(), SendNA(), SendNS(), and SendRS().
|
static |
Neighbor Discovery node constants : reachable time.
Definition at line 120 of file icmpv6-l4-protocol.h.
Referenced by ns3::NdiscCache::Entry::StartReachableTimer().
|
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().
|
static |
Neighbor Discovery host constants : RS interval.
Definition at line 90 of file icmpv6-l4-protocol.h.