A Discrete-Event Network Simulator
API
icmpv6-l4-protocol.h
Go to the documentation of this file.
1 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
2 /*
3  * Copyright (c) 2007-2009 Strasbourg University
4  *
5  * This program is free software; you can redistribute it and/or modify
6  * it under the terms of the GNU General Public License version 2 as
7  * published by the Free Software Foundation;
8  *
9  * This program is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12  * GNU General Public License for more details.
13  *
14  * You should have received a copy of the GNU General Public License
15  * along with this program; if not, write to the Free Software
16  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17  *
18  * Author: Sebastien Vincent <vincent@clarinet.u-strasbg.fr>
19  * David Gross <gdavid.devel@gmail.com>
20  * Mehdi Benamor <benamor.mehdi@ensi.rnu.tn>
21  */
22 
23 #ifndef ICMPV6_L4_PROTOCOL_H
24 #define ICMPV6_L4_PROTOCOL_H
25 
26 #include <list>
27 
28 #include "ns3/ipv6-address.h"
29 #include "ns3/random-variable-stream.h"
30 
31 #include "icmpv6-header.h"
32 #include "ip-l4-protocol.h"
33 #include "ndisc-cache.h"
34 
35 namespace ns3 {
36 
37 class NetDevice;
38 class Node;
39 class Packet;
40 class TraceContext;
41 
53 {
54 public:
59  static TypeId GetTypeId ();
60  virtual TypeId GetInstanceTypeId (void) const;
61 
65  static const uint8_t PROT_NUMBER;
66 
71  uint8_t GetMaxMulticastSolicit () const;
72 
77  uint8_t GetMaxUnicastSolicit () const;
78 
83  Time GetReachableTime () const;
84 
89  Time GetRetransmissionTime () const;
90 
95  Time GetDelayFirstProbe () const;
96 
101  static uint16_t GetStaticProtocolNumber ();
102 
106  Icmpv6L4Protocol ();
107 
111  virtual ~Icmpv6L4Protocol ();
112 
117  void SetNode (Ptr<Node> node);
118 
123  Ptr<Node> GetNode ();
124 
130  void NotifyNewAggregate ();
131 
136  virtual int GetProtocolNumber () const;
137 
142  virtual int GetVersion () const;
143 
151  void SendMessage (Ptr<Packet> packet, Ipv6Address src, Ipv6Address dst, uint8_t ttl);
152 
160  void DelayedSendMessage (Ptr<Packet> packet, Ipv6Address src, Ipv6Address dst, uint8_t ttl);
161 
170  void SendMessage (Ptr<Packet> packet, Ipv6Address dst, Icmpv6Header& icmpv6Hdr, uint8_t ttl);
171 
181  void DoDAD (Ipv6Address target, Ptr<Ipv6Interface> interface);
182 
190  void SendNA (Ipv6Address src, Ipv6Address dst, Address* hardwareAddress, uint8_t flags);
191 
200  void SendEchoReply (Ipv6Address src, Ipv6Address dst, uint16_t id, uint16_t seq, Ptr<Packet> data);
201 
209  virtual void SendNS (Ipv6Address src, Ipv6Address dst, Ipv6Address target, Address hardwareAddress);
210 
217  void SendErrorDestinationUnreachable (Ptr<Packet> malformedPacket, Ipv6Address dst, uint8_t code);
218 
225  void SendErrorTooBig (Ptr<Packet> malformedPacket, Ipv6Address dst, uint32_t mtu);
226 
233  void SendErrorTimeExceeded (Ptr<Packet> malformedPacket, Ipv6Address dst, uint8_t code);
234 
242  void SendErrorParameterError (Ptr<Packet> malformedPacket, Ipv6Address dst, uint8_t code, uint32_t ptr);
243 
253  void SendRedirection (Ptr<Packet> redirectedPacket, Ipv6Address src, Ipv6Address dst, Ipv6Address redirTarget, Ipv6Address redirDestination, Address redirHardwareTarget);
254 
264 
273  NdiscCache::Ipv6PayloadHeaderPair ForgeNA (Ipv6Address src, Ipv6Address dst, Address* hardwareAddress, uint8_t flags);
274 
283 
294 
303  Ipv4Header const &header,
304  Ptr<Ipv4Interface> interface);
305 
314  Ipv6Header const &header,
315  Ptr<Ipv6Interface> interface);
316 
322  void FunctionDadTimeout (Ipv6Interface* interface, Ipv6Address addr);
323 
335  bool Lookup (Ipv6Address dst, Ptr<NetDevice> device, Ptr<NdiscCache> cache, Address* hardwareDestination);
336 
349  bool Lookup (Ptr<Packet> p, const Ipv6Header & ipHeader, Ipv6Address dst, Ptr<NetDevice> device, Ptr<NdiscCache> cache, Address* hardwareDestination);
350 
357  void SendRS (Ipv6Address src, Ipv6Address dst, Address hardwareAddress);
358 
365  virtual Ptr<NdiscCache> CreateCache (Ptr<NetDevice> device, Ptr<Ipv6Interface> interface);
366 
371  bool IsAlwaysDad () const;
372 
381  int64_t AssignStreams (int64_t stream);
382 
383 protected:
387  virtual void DoDispose ();
388 
389  typedef std::list<Ptr<NdiscCache> > CacheList;
390 
399  void Forward (Ipv6Address source, Icmpv6Header icmp,
400  uint32_t info, Ipv6Header ipHeader,
401  const uint8_t payload[8]);
402 
410  void HandleNS (Ptr<Packet> p, Ipv6Address const &src, Ipv6Address const &dst, Ptr<Ipv6Interface> interface);
411 
419  void HandleRS (Ptr<Packet> p, Ipv6Address const &src, Ipv6Address const &dst, Ptr<Ipv6Interface> interface);
420 
428  void HandleRA (Ptr<Packet> p, Ipv6Address const &src, Ipv6Address const &dst, Ptr<Ipv6Interface> interface);
429 
437  void HandleEchoRequest (Ptr<Packet> p, Ipv6Address const &src, Ipv6Address const &dst, Ptr<Ipv6Interface> interface);
438 
446  void HandleNA (Ptr<Packet> p, Ipv6Address const &src, Ipv6Address const &dst, Ptr<Ipv6Interface> interface);
447 
455  void HandleRedirection (Ptr<Packet> p, Ipv6Address const &src, Ipv6Address const &dst, Ptr<Ipv6Interface> interface);
456 
464  void HandleDestinationUnreachable (Ptr<Packet> p, Ipv6Address const &src, Ipv6Address const &dst, Ptr<Ipv6Interface> interface);
465 
473  void HandleTimeExceeded (Ptr<Packet> p, Ipv6Address const &src, Ipv6Address const &dst, Ptr<Ipv6Interface> interface);
474 
482  void HandlePacketTooBig (Ptr<Packet> p, Ipv6Address const &src, Ipv6Address const &dst, Ptr<Ipv6Interface> interface);
483 
491  void HandleParameterError (Ptr<Packet> p, Ipv6Address const &src, Ipv6Address const &dst, Ptr<Ipv6Interface> interface);
492 
500  void ReceiveLLA (Icmpv6OptionLinkLayerAddress lla, Ipv6Address const &src, Ipv6Address const &dst, Ptr<Ipv6Interface> interface);
501 
508 
509  // From IpL4Protocol
512  // From IpL4Protocol
513  virtual IpL4Protocol::DownTargetCallback GetDownTarget (void) const;
515 
520 
525 
526 private:
531 
536 
541 
546 
551 
556 
561 
563 
564 };
565 
566 } /* namespace ns3 */
567 
568 #endif /* ICMPV6_L4_PROTOCOL_H */
569 
ns3::Icmpv6L4Protocol::CacheList
std::list< Ptr< NdiscCache > > CacheList
container of NdiscCaches
Definition: icmpv6-l4-protocol.h:389
ns3::Ipv6Interface
The IPv6 representation of a network interface.
Definition: ipv6-interface.h:52
ns3::TypeId
a unique identifier for an interface.
Definition: type-id.h:59
ns3::Ipv4Header
Packet header for IPv4.
Definition: ipv4-header.h:34
ns3::Icmpv6L4Protocol::m_delayFirstProbe
Time m_delayFirstProbe
Neighbor Discovery node constants: delay for the first probe.
Definition: icmpv6-l4-protocol.h:550
ns3::Icmpv6L4Protocol::ReceiveLLA
void ReceiveLLA(Icmpv6OptionLinkLayerAddress lla, Ipv6Address const &src, Ipv6Address const &dst, Ptr< Ipv6Interface > interface)
Link layer address option processing.
Definition: icmpv6-l4-protocol.cc:384
ns3::Icmpv6L4Protocol::GetStaticProtocolNumber
static uint16_t GetStaticProtocolNumber()
Get ICMPv6 protocol number.
Definition: icmpv6-l4-protocol.cc:173
ns3::Icmpv6L4Protocol::AssignStreams
int64_t AssignStreams(int64_t stream)
Assign a fixed random variable stream number to the random variables used by this model.
Definition: icmpv6-l4-protocol.cc:134
ns3::Icmpv6L4Protocol::GetReachableTime
Time GetReachableTime() const
Neighbor Discovery node constants: reachable time.
Definition: icmpv6-l4-protocol.cc:1543
ns3::Callback< void, Ptr< Packet >, Ipv4Address, Ipv4Address, uint8_t, Ptr< Ipv4Route > >
ns3::Icmpv6L4Protocol::GetDelayFirstProbe
Time GetDelayFirstProbe() const
Neighbor Discovery node constants : delay for the first probe.
Definition: icmpv6-l4-protocol.cc:1555
ns3
Every class exported by the ns3 library is enclosed in the ns3 namespace.
ns3::Icmpv6L4Protocol::DelayedSendMessage
void DelayedSendMessage(Ptr< Packet > packet, Ipv6Address src, Ipv6Address dst, uint8_t ttl)
Helper function used during delayed solicitation.
Definition: icmpv6-l4-protocol.cc:966
ns3::Icmpv6L4Protocol::GetMaxMulticastSolicit
uint8_t GetMaxMulticastSolicit() const
Neighbor Discovery node constants: max multicast solicitations.
Definition: icmpv6-l4-protocol.cc:1531
ns3::Icmpv6L4Protocol::SendNS
virtual void SendNS(Ipv6Address src, Ipv6Address dst, Ipv6Address target, Address hardwareAddress)
Send a Neighbor Solicitation.
Definition: icmpv6-l4-protocol.cc:1047
ns3::Icmpv6L4Protocol::GetDownTarget6
virtual IpL4Protocol::DownTargetCallback6 GetDownTarget6(void) const
This method allows a caller to get the current down target callback set for this L4 protocol (IPv6 ca...
Definition: icmpv6-l4-protocol.cc:1524
ns3::Icmpv6L4Protocol::GetVersion
virtual int GetVersion() const
Get the version of the protocol.
Definition: icmpv6-l4-protocol.cc:185
ns3::Icmpv6L4Protocol::SendNA
void SendNA(Ipv6Address src, Ipv6Address dst, Address *hardwareAddress, uint8_t flags)
Send a Neighbor Adverstisement.
Definition: icmpv6-l4-protocol.cc:1003
ns3::Ipv6Address
Describes an IPv6 address.
Definition: ipv6-address.h:50
ns3::Icmpv6L4Protocol::ForgeNA
NdiscCache::Ipv6PayloadHeaderPair ForgeNA(Ipv6Address src, Ipv6Address dst, Address *hardwareAddress, uint8_t flags)
Forge a Neighbor Advertisement.
Definition: icmpv6-l4-protocol.cc:1252
ns3::Icmpv6L4Protocol::GetDownTarget
virtual IpL4Protocol::DownTargetCallback GetDownTarget(void) const
This method allows a caller to get the current down target callback set for this L4 protocol (IPv4 ca...
Definition: icmpv6-l4-protocol.cc:1517
ndisc-cache.h
ns3::Icmpv6L4Protocol::ForgeEchoRequest
NdiscCache::Ipv6PayloadHeaderPair ForgeEchoRequest(Ipv6Address src, Ipv6Address dst, uint16_t id, uint16_t seq, Ptr< Packet > data)
Forge an Echo Request.
Definition: icmpv6-l4-protocol.cc:644
ns3::Icmpv6L4Protocol::CreateCache
virtual Ptr< NdiscCache > CreateCache(Ptr< NetDevice > device, Ptr< Ipv6Interface > interface)
Create a neighbor cache.
Definition: icmpv6-l4-protocol.cc:1332
ns3::Icmpv6L4Protocol::HandleRS
void HandleRS(Ptr< Packet > p, Ipv6Address const &src, Ipv6Address const &dst, Ptr< Ipv6Interface > interface)
Receive Router Solicitation method.
Definition: icmpv6-l4-protocol.cc:449
ns3::Icmpv6L4Protocol::GetTypeId
static TypeId GetTypeId()
Get the type ID.
Definition: icmpv6-l4-protocol.cc:63
ns3::Ipv6Header
Packet header for IPv6.
Definition: ipv6-header.h:36
ns3::Icmpv6L4Protocol::HandlePacketTooBig
void HandlePacketTooBig(Ptr< Packet > p, Ipv6Address const &src, Ipv6Address const &dst, Ptr< Ipv6Interface > interface)
Receive Packet Too Big method.
Definition: icmpv6-l4-protocol.cc:914
ns3::Icmpv6L4Protocol::GetInstanceTypeId
virtual TypeId GetInstanceTypeId(void) const
Get the most derived TypeId for this Object.
Definition: icmpv6-l4-protocol.cc:101
ns3::Icmpv6L4Protocol::m_solicitationJitter
Ptr< RandomVariableStream > m_solicitationJitter
Random jitter before sending solicitations.
Definition: icmpv6-l4-protocol.h:560
ns3::Icmpv6L4Protocol::HandleNS
void HandleNS(Ptr< Packet > p, Ipv6Address const &src, Ipv6Address const &dst, Ptr< Ipv6Interface > interface)
Receive Neighbor Solicitation method.
Definition: icmpv6-l4-protocol.cc:488
ns3::Icmpv6L4Protocol::FunctionDadTimeout
void FunctionDadTimeout(Ipv6Interface *interface, Ipv6Address addr)
Function called when DAD timeout.
Definition: icmpv6-l4-protocol.cc:1450
ns3::Icmpv6L4Protocol::HandleNA
void HandleNA(Ptr< Packet > p, Ipv6Address const &src, Ipv6Address const &dst, Ptr< Ipv6Interface > interface)
Receive Neighbor Advertisement method.
Definition: icmpv6-l4-protocol.cc:666
ns3::Icmpv6L4Protocol::Forward
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).
Definition: icmpv6-l4-protocol.cc:286
ns3::Icmpv6L4Protocol::DoDAD
void DoDAD(Ipv6Address target, Ptr< Ipv6Interface > interface)
Do the Duplication Address Detection (DAD).
Definition: icmpv6-l4-protocol.cc:197
ns3::Icmpv6L4Protocol::FindCache
Ptr< NdiscCache > FindCache(Ptr< NetDevice > device)
Get the cache corresponding to the device.
Definition: icmpv6-l4-protocol.cc:1315
ns3::Icmpv6L4Protocol::m_downTarget
IpL4Protocol::DownTargetCallback6 m_downTarget
callback to Ipv6::Send
Definition: icmpv6-l4-protocol.h:562
ns3::Icmpv6L4Protocol::Lookup
bool Lookup(Ipv6Address dst, Ptr< NetDevice > device, Ptr< NdiscCache > cache, Address *hardwareDestination)
Lookup in the ND cache for the IPv6 address.
Definition: icmpv6-l4-protocol.cc:1344
ns3::Ptr< Node >
ns3::Icmpv6L4Protocol::m_node
Ptr< Node > m_node
The node.
Definition: icmpv6-l4-protocol.h:555
ns3::Address
a polymophic address class
Definition: address.h:91
ns3::IpL4Protocol::RxStatus
RxStatus
Rx status codes.
Definition: ip-l4-protocol.h:56
data
uint8_t data[writeSize]
Definition: socket-bound-tcp-static-routing.cc:53
ns3::Icmpv6L4Protocol::GetNode
Ptr< Node > GetNode()
Get the node.
Definition: icmpv6-l4-protocol.cc:167
ns3::Icmpv6L4Protocol::m_cacheList
CacheList m_cacheList
A list of cache by device.
Definition: icmpv6-l4-protocol.h:524
ns3::Icmpv6L4Protocol::Receive
virtual enum IpL4Protocol::RxStatus Receive(Ptr< Packet > p, Ipv4Header const &header, Ptr< Ipv4Interface > interface)
Receive method.
Definition: icmpv6-l4-protocol.cc:219
ns3::Icmpv6L4Protocol::HandleEchoRequest
void HandleEchoRequest(Ptr< Packet > p, Ipv6Address const &src, Ipv6Address const &dst, Ptr< Ipv6Interface > interface)
Receive Echo Request method.
Definition: icmpv6-l4-protocol.cc:309
ns3::Icmpv6L4Protocol::SetDownTarget6
virtual void SetDownTarget6(IpL4Protocol::DownTargetCallback6 cb)
This method allows a caller to set the current down target callback set for this L4 protocol (IPv6 ca...
Definition: icmpv6-l4-protocol.cc:1510
ns3::Time
Simulation virtual time values and global simulation resolution.
Definition: nstime.h:104
icmpv6-header.h
ns3::Icmpv6L4Protocol::m_retransmissionTime
Time m_retransmissionTime
Neighbor Discovery node constants: retransmission timer.
Definition: icmpv6-l4-protocol.h:545
ns3::Icmpv6L4Protocol::PROT_NUMBER
static const uint8_t PROT_NUMBER
ICMPv6 protocol number (58).
Definition: icmpv6-l4-protocol.h:65
ns3::IpL4Protocol
L4 Protocol abstract base class.
Definition: ip-l4-protocol.h:51
ns3::Icmpv6L4Protocol::NotifyNewAggregate
void NotifyNewAggregate()
This method is called by AggregateObject and completes the aggregation by setting the node in the ICM...
Definition: icmpv6-l4-protocol.cc:141
ns3::Icmpv6L4Protocol::SendRedirection
void SendRedirection(Ptr< Packet > redirectedPacket, Ipv6Address src, Ipv6Address dst, Ipv6Address redirTarget, Ipv6Address redirDestination, Address redirHardwareTarget)
Send an ICMPv6 Redirection.
Definition: icmpv6-l4-protocol.cc:1201
ns3::Icmpv6L4Protocol::SendRS
void SendRS(Ipv6Address src, Ipv6Address dst, Address hardwareAddress)
Send a Router Solicitation.
Definition: icmpv6-l4-protocol.cc:1077
ns3::Icmpv6L4Protocol::Icmpv6L4Protocol
Icmpv6L4Protocol()
Constructor.
Definition: icmpv6-l4-protocol.cc:107
ns3::Icmpv6L4Protocol::GetMaxUnicastSolicit
uint8_t GetMaxUnicastSolicit() const
Neighbor Discovery node constants: max unicast solicitations.
Definition: icmpv6-l4-protocol.cc:1537
ns3::Icmpv6L4Protocol::SendErrorTimeExceeded
void SendErrorTimeExceeded(Ptr< Packet > malformedPacket, Ipv6Address dst, uint8_t code)
Send an error Time Exceeded.
Definition: icmpv6-l4-protocol.cc:1154
ns3::Icmpv6L4Protocol::m_maxMulticastSolicit
uint8_t m_maxMulticastSolicit
Neighbor Discovery node constants: max multicast solicitations.
Definition: icmpv6-l4-protocol.h:530
ns3::NdiscCache::Ipv6PayloadHeaderPair
std::pair< Ptr< Packet >, Ipv6Header > Ipv6PayloadHeaderPair
Pair of a packet and an Ipv4 header.
Definition: ndisc-cache.h:149
ns3::Icmpv6L4Protocol::GetRetransmissionTime
Time GetRetransmissionTime() const
Neighbor Discovery node constants: retransmission timer.
Definition: icmpv6-l4-protocol.cc:1549
ns3::Icmpv6L4Protocol::SetNode
void SetNode(Ptr< Node > node)
Set the node.
Definition: icmpv6-l4-protocol.cc:161
ns3::Icmpv6L4Protocol::HandleRedirection
void HandleRedirection(Ptr< Packet > p, Ipv6Address const &src, Ipv6Address const &dst, Ptr< Ipv6Interface > interface)
Receive Redirection method.
Definition: icmpv6-l4-protocol.cc:805
ns3::Icmpv6L4Protocol::HandleTimeExceeded
void HandleTimeExceeded(Ptr< Packet > p, Ipv6Address const &src, Ipv6Address const &dst, Ptr< Ipv6Interface > interface)
Receive Time Exceeded method.
Definition: icmpv6-l4-protocol.cc:895
ns3::Icmpv6L4Protocol::SendEchoReply
void SendEchoReply(Ipv6Address src, Ipv6Address dst, uint16_t id, uint16_t seq, Ptr< Packet > data)
Send a Echo Reply.
Definition: icmpv6-l4-protocol.cc:1033
ns3::Icmpv6L4Protocol::SendMessage
void SendMessage(Ptr< Packet > packet, Ipv6Address src, Ipv6Address dst, uint8_t ttl)
Send a packet via ICMPv6, note that packet already contains ICMPv6 header.
Definition: icmpv6-l4-protocol.cc:954
ns3::Icmpv6L4Protocol::HandleDestinationUnreachable
void HandleDestinationUnreachable(Ptr< Packet > p, Ipv6Address const &src, Ipv6Address const &dst, Ptr< Ipv6Interface > interface)
Receive Destination Unreachable method.
Definition: icmpv6-l4-protocol.cc:877
ns3::Icmpv6L4Protocol::~Icmpv6L4Protocol
virtual ~Icmpv6L4Protocol()
Destructor.
Definition: icmpv6-l4-protocol.cc:113
ns3::Icmpv6L4Protocol::HandleParameterError
void HandleParameterError(Ptr< Packet > p, Ipv6Address const &src, Ipv6Address const &dst, Ptr< Ipv6Interface > interface)
Receive Parameter Error method.
Definition: icmpv6-l4-protocol.cc:936
ns3::Icmpv6L4Protocol::SendErrorTooBig
void SendErrorTooBig(Ptr< Packet > malformedPacket, Ipv6Address dst, uint32_t mtu)
Send an error Too Big.
Definition: icmpv6-l4-protocol.cc:1130
ns3::Icmpv6L4Protocol::HandleRA
void HandleRA(Ptr< Packet > p, Ipv6Address const &src, Ipv6Address const &dst, Ptr< Ipv6Interface > interface)
Receive Router Advertisement method.
Definition: icmpv6-l4-protocol.cc:325
ns3::Icmpv6Header
ICMPv6 header.
Definition: icmpv6-header.h:39
ns3::Icmpv6L4Protocol::m_reachableTime
Time m_reachableTime
Neighbor Discovery node constants: reachable time.
Definition: icmpv6-l4-protocol.h:540
ip-l4-protocol.h
ns3::Icmpv6L4Protocol::SetDownTarget
virtual void SetDownTarget(IpL4Protocol::DownTargetCallback cb)
This method allows a caller to set the current down target callback set for this L4 protocol (IPv4 ca...
Definition: icmpv6-l4-protocol.cc:1504
ns3::Icmpv6L4Protocol::ForgeRS
NdiscCache::Ipv6PayloadHeaderPair ForgeRS(Ipv6Address src, Ipv6Address dst, Address hardwareAddress)
Forge a Router Solicitation.
Definition: icmpv6-l4-protocol.cc:615
ns3::Icmpv6L4Protocol::SendErrorDestinationUnreachable
void SendErrorDestinationUnreachable(Ptr< Packet > malformedPacket, Ipv6Address dst, uint8_t code)
Send an error Destination Unreachable.
Definition: icmpv6-l4-protocol.cc:1107
ns3::Icmpv6L4Protocol
An implementation of the ICMPv6 protocol.
Definition: icmpv6-l4-protocol.h:53
ns3::Icmpv6L4Protocol::ForgeNS
NdiscCache::Ipv6PayloadHeaderPair ForgeNS(Ipv6Address src, Ipv6Address dst, Ipv6Address target, Address hardwareAddress)
Forge a Neighbor Solicitation.
Definition: icmpv6-l4-protocol.cc:1292
ns3::Icmpv6L4Protocol::SendErrorParameterError
void SendErrorParameterError(Ptr< Packet > malformedPacket, Ipv6Address dst, uint8_t code, uint32_t ptr)
Send an error Parameter Error.
Definition: icmpv6-l4-protocol.cc:1177
ns3::Icmpv6L4Protocol::DoDispose
virtual void DoDispose()
Dispose this object.
Definition: icmpv6-l4-protocol.cc:118
ns3::Icmpv6L4Protocol::GetProtocolNumber
virtual int GetProtocolNumber() const
Get the protocol number.
Definition: icmpv6-l4-protocol.cc:179
ns3::Icmpv6L4Protocol::m_maxUnicastSolicit
uint8_t m_maxUnicastSolicit
Neighbor Discovery node constants: max unicast solicitations.
Definition: icmpv6-l4-protocol.h:535
ns3::Icmpv6L4Protocol::m_alwaysDad
bool m_alwaysDad
Always do DAD ?
Definition: icmpv6-l4-protocol.h:519
ns3::Icmpv6L4Protocol::IsAlwaysDad
bool IsAlwaysDad() const
Is the node must do DAD.
Definition: icmpv6-l4-protocol.cc:191