A Discrete-Event Network Simulator
API
dsr-option-header.h
Go to the documentation of this file.
1 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
2 /*
3  * Copyright (c) 2011 Yufei Cheng
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: Yufei Cheng <yfcheng@ittc.ku.edu>
19  *
20  * James P.G. Sterbenz <jpgs@ittc.ku.edu>, director
21  * ResiliNets Research Group http://wiki.ittc.ku.edu/resilinets
22  * Information and Telecommunication Technology Center (ITTC)
23  * and Department of Electrical Engineering and Computer Science
24  * The University of Kansas Lawrence, KS USA.
25  *
26  * Work supported in part by NSF FIND (Future Internet Design) Program
27  * under grant CNS-0626918 (Postmodern Internet Architecture),
28  * NSF grant CNS-1050226 (Multilayer Network Resilience Analysis and Experimentation on GENI),
29  * US Department of Defense (DoD), and ITTC at The University of Kansas.
30  */
31 
32 #ifndef DSR_OPTION_HEADER_H
33 #define DSR_OPTION_HEADER_H
34 
35 #include <ostream>
36 #include <algorithm>
37 
38 #include "ns3/header.h"
39 #include "ns3/ipv4-address.h"
40 #include "ns3/simulator.h"
41 
42 namespace ns3 {
43 
44 class Time;
45 namespace dsr {
50 class DsrOptionHeader : public Header
51 {
52 public:
57  struct Alignment
58  {
59  uint8_t factor;
60  uint8_t offset;
61  };
66  static TypeId GetTypeId ();
71  virtual TypeId GetInstanceTypeId () const;
75  DsrOptionHeader ();
79  virtual ~DsrOptionHeader ();
84  void SetType (uint8_t type);
89  uint8_t GetType () const;
94  void SetLength (uint8_t length);
99  uint8_t GetLength () const;
105  virtual void Print (std::ostream &os) const;
110  virtual uint32_t GetSerializedSize () const;
115  virtual void Serialize (Buffer::Iterator start) const;
121  virtual uint32_t Deserialize (Buffer::Iterator start);
129  virtual Alignment GetAlignment () const;
130 
131 private:
135  uint8_t m_type;
139  uint8_t m_length;
144 };
145 
151 {
152 public:
157  static TypeId GetTypeId ();
162  virtual TypeId GetInstanceTypeId () const;
170  virtual ~DsrOptionPad1Header ();
176  virtual void Print (std::ostream &os) const;
181  virtual uint32_t GetSerializedSize () const;
186  virtual void Serialize (Buffer::Iterator start) const;
192  virtual uint32_t Deserialize (Buffer::Iterator start);
193 };
194 
200 {
201 public:
206  static TypeId GetTypeId ();
211  virtual TypeId GetInstanceTypeId () const;
216  DsrOptionPadnHeader (uint32_t pad = 2);
220  virtual ~DsrOptionPadnHeader ();
226  virtual void Print (std::ostream &os) const;
231  virtual uint32_t GetSerializedSize () const;
236  virtual void Serialize (Buffer::Iterator start) const;
242  virtual uint32_t Deserialize (Buffer::Iterator start);
243 };
244 
273 {
274 public:
279  static TypeId GetTypeId ();
284  virtual TypeId GetInstanceTypeId () const;
292  virtual ~DsrOptionRreqHeader ();
297  void SetNumberAddress (uint8_t n);
307  void SetTarget (Ipv4Address target);
312  void SetNodesAddress (std::vector<Ipv4Address> ipv4Address);
317  std::vector<Ipv4Address> GetNodesAddresses () const;
322  uint32_t GetNodesNumber () const;
327  void AddNodeAddress (Ipv4Address ipv4);
333  void SetNodeAddress (uint8_t index, Ipv4Address addr);
339  Ipv4Address GetNodeAddress (uint8_t index) const;
344  void SetId (uint16_t identification);
349  uint16_t GetId () const;
355  virtual void Print (std::ostream &os) const;
360  virtual uint32_t GetSerializedSize () const;
365  virtual void Serialize (Buffer::Iterator start) const;
371  virtual uint32_t Deserialize (Buffer::Iterator start);
376  virtual Alignment GetAlignment () const;
377 
378 private:
383  /*
384  * Ipv4 address of target node
385  */
387  /*
388  * Ipv4 address to write when desearizing the packet
389  */
394  typedef std::vector<Ipv4Address> VectorIpv4Address_t;
398  VectorIpv4Address_t m_ipv4Address;
399 };
400 
426 // The Route Reply header modified for ns-3 implementation
449 {
450 public:
455  static TypeId GetTypeId ();
460  virtual TypeId GetInstanceTypeId () const;
468  virtual ~DsrOptionRrepHeader ();
473  void SetNumberAddress (uint8_t n);
478  void SetNodesAddress (std::vector<Ipv4Address> ipv4Address);
483  std::vector<Ipv4Address> GetNodesAddress () const;
484  /*
485  * \brief Get the target node Ip address
486  * \return the target address
487  */
488  Ipv4Address GetTargetAddress (std::vector<Ipv4Address> ipv4Address) const;
494  void SetNodeAddress (uint8_t index, Ipv4Address addr);
500  Ipv4Address GetNodeAddress (uint8_t index) const;
506  virtual void Print (std::ostream &os) const;
511  virtual uint32_t GetSerializedSize () const;
516  virtual void Serialize (Buffer::Iterator start) const;
522  virtual uint32_t Deserialize (Buffer::Iterator start);
527  virtual Alignment GetAlignment () const;
528 
529 private:
530  /*
531  * The Ip address to write to when deserialize the packet
532  */
537  typedef std::vector<Ipv4Address> VectorIpv4Address_t;
541  VectorIpv4Address_t m_ipv4Address;
542 };
543 
570 {
571 public:
576  static TypeId GetTypeId ();
581  virtual TypeId GetInstanceTypeId () const;
589  virtual ~DsrOptionSRHeader ();
590  /*
591  * \brief Set the number of segments left to send
592  * \param segmentsLeft The segments left
593  */
594  void SetSegmentsLeft (uint8_t segmentsLeft);
595  /*
596  * \brief Get the number of segments left to send
597  * \return The segments left
598  */
599  uint8_t GetSegmentsLeft () const;
604  void SetNumberAddress (uint8_t n);
609  void SetNodesAddress (std::vector<Ipv4Address> ipv4Address);
614  std::vector<Ipv4Address> GetNodesAddress () const;
615  /*
616  * \brief Get the node list size which is the number of ip address of the route
617  * \return the node list size
618  */
619  uint8_t GetNodeListSize () const;
625  void SetNodeAddress (uint8_t index, Ipv4Address addr);
631  Ipv4Address GetNodeAddress (uint8_t index) const;
632  /*
633  * \brief Set the salvage value for a packet
634  * \param salvage The salvage value of the packet
635  */
636  void SetSalvage (uint8_t salvage);
637  /*
638  * \brief Get the salvage value for a packet
639  * \return The salvage value of the packet
640  */
641  uint8_t GetSalvage () const;
647  virtual void Print (std::ostream &os) const;
652  virtual uint32_t GetSerializedSize () const;
657  virtual void Serialize (Buffer::Iterator start) const;
663  virtual uint32_t Deserialize (Buffer::Iterator start);
668  virtual Alignment GetAlignment () const;
669 
675  typedef void (* TracedCallback) (const DsrOptionSRHeader & header);
676 
677 private:
685  uint8_t m_segmentsLeft;
689  uint8_t m_salvage;
693  typedef std::vector<Ipv4Address> VectorIpv4Address_t;
697  VectorIpv4Address_t m_ipv4Address;
698 };
699 
725 enum ErrorType
727 {
728  NODE_UNREACHABLE = 1, // !< NODE_UNREACHABLE
729  FLOW_STATE_NOT_SUPPORTED = 2, // !< FLOW_STATE_NOT_SUPPORTED
730  OPTION_NOT_SUPPORTED = 3, // !< OPTION_NOT_SUPPORTED
731 };
732 
734 {
735 public:
740  static TypeId GetTypeId ();
745  virtual TypeId GetInstanceTypeId () const;
753  virtual ~DsrOptionRerrHeader ();
758  void SetErrorType (uint8_t errorType);
763  uint8_t GetErrorType () const;
768  virtual void SetErrorSrc (Ipv4Address errorSrcAddress);
773  virtual Ipv4Address GetErrorSrc () const;
777  virtual void SetSalvage (uint8_t salvage);
782  virtual uint8_t GetSalvage () const;
787  virtual void SetErrorDst (Ipv4Address errorDstAddress);
792  virtual Ipv4Address GetErrorDst () const;
798  virtual void Print (std::ostream &os) const;
803  virtual uint32_t GetSerializedSize () const;
808  virtual void Serialize (Buffer::Iterator start) const;
814  virtual uint32_t Deserialize (Buffer::Iterator start);
819  virtual Alignment GetAlignment () const;
820 
821 private:
825  uint8_t m_errorType;
829  uint8_t m_salvage;
833  uint16_t m_errorLength;
846 };
847 
867 /*
868  * \brief The type-specific info field
869  * \verbatim
870  | 0 | 1 | 2 | 3 |
871  0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7
872  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
873  | Unreachable Node Address |
874  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
875  \endverbatim
876  */
877 
879 {
880 public:
885  static TypeId GetTypeId ();
890  virtual TypeId GetInstanceTypeId () const;
898  virtual ~DsrOptionRerrUnreachHeader ();
903  virtual void SetErrorSrc (Ipv4Address errorSrcAddress);
908  virtual Ipv4Address GetErrorSrc () const;
912  virtual void SetSalvage (uint8_t salvage);
917  virtual uint8_t GetSalvage () const;
922  virtual void SetErrorDst (Ipv4Address errorDstAddress);
927  virtual Ipv4Address GetErrorDst () const;
932  void SetUnreachNode (Ipv4Address unreachNode);
937  Ipv4Address GetUnreachNode () const;
942  void SetOriginalDst (Ipv4Address originalDst);
947  Ipv4Address GetOriginalDst () const;
953  virtual void Print (std::ostream &os) const;
958  virtual uint32_t GetSerializedSize () const;
963  virtual void Serialize (Buffer::Iterator start) const;
969  virtual uint32_t Deserialize (Buffer::Iterator start);
974  virtual Alignment GetAlignment () const;
975 
976 private:
980  uint8_t m_errorType;
984  uint8_t m_salvage;
1001 };
1002 
1022 /*
1023  * \brief The type-specific info field
1024  * \unsupported option
1025  * \verbatim
1026  | 0 |
1027  0 1 2 3 4 5 6 7
1028  +-+-+-+-+-+-+-+-+
1029  |Unsupported Opt|
1030  +-+-+-+-+-+-+-+-+
1031  \endverbatim
1032  */
1033 
1035 {
1036 public:
1041  static TypeId GetTypeId ();
1046  virtual TypeId GetInstanceTypeId () const;
1054  virtual ~DsrOptionRerrUnsupportHeader ();
1059  virtual void SetErrorSrc (Ipv4Address errorSrcAddress);
1064  virtual Ipv4Address GetErrorSrc () const;
1069  virtual void SetSalvage (uint8_t salvage);
1074  virtual uint8_t GetSalvage () const;
1079  virtual void SetErrorDst (Ipv4Address errorDstAddress);
1084  virtual Ipv4Address GetErrorDst () const;
1089  void SetUnsupported (uint16_t optionType);
1094  uint16_t GetUnsupported () const;
1100  virtual void Print (std::ostream &os) const;
1105  virtual uint32_t GetSerializedSize () const;
1110  virtual void Serialize (Buffer::Iterator start) const;
1116  virtual uint32_t Deserialize (Buffer::Iterator start);
1121  virtual Alignment GetAlignment () const;
1122 
1123 private:
1127  uint8_t m_errorType;
1131  uint8_t m_salvage;
1143  uint16_t m_unsupport;
1144 };
1145 
1164 {
1165 public:
1170  static TypeId GetTypeId ();
1175  virtual TypeId GetInstanceTypeId () const;
1183  virtual ~DsrOptionAckReqHeader ();
1188  void SetAckId (uint16_t identification);
1193  uint16_t GetAckId () const;
1199  virtual void Print (std::ostream &os) const;
1204  virtual uint32_t GetSerializedSize () const;
1209  virtual void Serialize (Buffer::Iterator start) const;
1215  virtual uint32_t Deserialize (Buffer::Iterator start);
1220  virtual Alignment GetAlignment () const;
1221 
1222 private:
1227 };
1228 
1251 {
1252 public:
1257  static TypeId GetTypeId ();
1262  virtual TypeId GetInstanceTypeId () const;
1266  DsrOptionAckHeader ();
1270  virtual ~DsrOptionAckHeader ();
1275  void SetAckId (uint16_t identification);
1280  uint16_t GetAckId () const;
1285  void SetRealSrc (Ipv4Address realSrcAddress);
1290  Ipv4Address GetRealSrc () const;
1295  void SetRealDst (Ipv4Address realDstAddress);
1300  Ipv4Address GetRealDst () const;
1306  virtual void Print (std::ostream &os) const;
1311  virtual uint32_t GetSerializedSize () const;
1316  virtual void Serialize (Buffer::Iterator start) const;
1322  virtual uint32_t Deserialize (Buffer::Iterator start);
1327  virtual Alignment GetAlignment () const;
1328 
1329 private:
1342 };
1343 
1344 static inline std::ostream & operator<< (std::ostream& os, const DsrOptionSRHeader & sr)
1345 {
1346  sr.Print (os);
1347  return os;
1348 }
1349 
1350 } // namespace dsr
1351 } // namespace ns3
1352 
1353 #endif /* DSR_OPTION_HEADER_H */
Protocol header serialization and deserialization.
Definition: header.h:42
virtual void Print(std::ostream &os) const
Print some informations about the packet.
uint8_t m_errorType
The error type or route error option.
void AddNodeAddress(Ipv4Address ipv4)
Add one node address.
uint16_t GetAckId() const
Set the Ack id number.
virtual void SetErrorSrc(Ipv4Address errorSrcAddress)
Set the route error source address.
virtual void Print(std::ostream &os) const
Print some informations about the packet.
virtual void Print(std::ostream &os) const
Print some informations about the packet.
virtual Ipv4Address GetErrorDst() const
Get the error destination ip address.
uint16_t m_unsupport
The unsupported option.
void SetAckId(uint16_t identification)
Set the Ack request id number.
virtual void Serialize(Buffer::Iterator start) const
Serialize the packet.
virtual void Serialize(Buffer::Iterator start) const
Serialize the packet.
Ipv4Address GetNodeAddress(uint8_t index) const
Get a Node IPv4 Address.
DsrOptionPadnHeader(uint32_t pad=2)
Constructor.
virtual void Serialize(Buffer::Iterator start) const
Serialize the packet.
Ipv4Address GetTarget()
Get the target ipv4 address.
Ipv4Address GetNodeAddress(uint8_t index) const
Get a Node IPv4 Address.
virtual Ipv4Address GetErrorSrc() const
Get the route error source address.
virtual void Serialize(Buffer::Iterator start) const
Serialize the packet.
static TypeId GetTypeId()
Get the type identificator.
uint16_t GetId() const
Set the request id number.
std::vector< Ipv4Address > VectorIpv4Address_t
A vector of IPv4 Address.
virtual void Serialize(Buffer::Iterator start) const
Serialize the packet.
virtual uint32_t Deserialize(Buffer::Iterator start)
Deserialize the packet.
automatically resized byte buffer
Definition: buffer.h:92
def start()
Definition: core.py:1482
Forward calls to a chain of Callback.
Introspection did not find any typical Config paths.
std::vector< Ipv4Address > GetNodesAddresses() const
Get the vector of ipv4 address.
Ipv4Address m_unreachNode
The unreachable node address.
virtual void SetErrorDst(Ipv4Address errorDstAddress)
Set the error destination ip address.
Ipv4Address m_errorDstAddress
The error destination address.
virtual void SetErrorSrc(Ipv4Address errorSrcAddress)
Set the route error source address.
virtual uint32_t Deserialize(Buffer::Iterator start)
Deserialize the packet.
virtual TypeId GetInstanceTypeId() const
Get the instance type ID.
virtual void Serialize(Buffer::Iterator start) const
Serialize the packet.
void SetSegmentsLeft(uint8_t segmentsLeft)
virtual uint32_t GetSerializedSize() const
Get the serialized size of the packet.
virtual ~DsrOptionAckReqHeader()
Destructor.
virtual void Print(std::ostream &os) const
Print some informations about the packet.
void(* Time)(Time oldValue, Time newValue)
TracedValue callback signature for Time.
Definition: nstime.h:719
std::vector< Ipv4Address > GetNodesAddress() const
Get the vector of ipv4 address.
virtual uint32_t GetSerializedSize() const
Get the serialized size of the packet.
void SetUnsupported(uint16_t optionType)
Set the unsupported option type value.
Source Route (SR) Message Format.
virtual void Serialize(Buffer::Iterator start) const
Serialize the packet.
virtual void Print(std::ostream &os) const
Print some informations about the packet.
virtual Alignment GetAlignment() const
Get the Alignment requirement of this option header.
virtual ~DsrOptionPadnHeader()
Destructor.
virtual Alignment GetAlignment() const
Get the Alignment requirement of this option header.
uint8_t GetLength() const
Get the option length.
Acknowledgement Request (ACK_RREQ) Message Format.
represents the alignment requirements of an option header
void SetNodeAddress(uint8_t index, Ipv4Address addr)
Set a Node IPv4 Address.
virtual void Print(std::ostream &os) const
Print some informations about the packet.
Ipv4Address GetUnreachNode() const
Get the unreachable node ip address.
iterator in a Buffer instance
Definition: buffer.h:98
virtual void Print(std::ostream &os) const
Print some informations about the packet.
virtual TypeId GetInstanceTypeId() const
Get the instance type ID.
static TypeId GetTypeId()
Get the type identificator.
virtual Alignment GetAlignment() const
Get the Alignment requirement of this option header.
ErrorType
Route Error (RERR) Message Format.
virtual uint32_t Deserialize(Buffer::Iterator start)
Deserialize the packet.
virtual void SetSalvage(uint8_t salvage)
Set the salvage value of the packet.
uint16_t m_identification
identification field
virtual void Serialize(Buffer::Iterator start) const
Serialize the packet.
std::vector< Ipv4Address > GetNodesAddress() const
Get the vector of ipv4 address.
Ipv4Address m_errorDstAddress
The error destination address.
Route Reply (RREP) Message Format.
uint16_t m_identification
Identifier of the packet.
Ipv4Address m_errorSrcAddress
The error source address.
static TypeId GetTypeId()
Get the type identificator.
virtual uint32_t Deserialize(Buffer::Iterator start)
Deserialize the packet.
static TypeId GetTypeId()
Get the type identificator.
VectorIpv4Address_t m_ipv4Address
The vector of Nodes' IPv4 Address.
virtual uint32_t GetSerializedSize() const
Get the serialized size of the packet.
virtual void SetErrorSrc(Ipv4Address errorSrcAddress)
Set the route error source address.
virtual void SetErrorDst(Ipv4Address errorDstAddress)
Set the error destination ip address.
virtual void SetErrorDst(Ipv4Address errorDstAddress)
Set the error destination ip address.
uint16_t GetAckId() const
Set the Ack request id number.
uint8_t m_salvage
The salavage field.
Buffer m_data
The anonymous data of this option.
virtual ~DsrOptionRerrUnsupportHeader()
Destructor.
std::vector< Ipv4Address > VectorIpv4Address_t
A vector of IPv4 Address.
virtual uint32_t GetSerializedSize() const
Get the serialized size of the packet.
virtual ~DsrOptionSRHeader()
Destructor.
uint32_t GetNodesNumber() const
Get the number of nodes.
virtual uint32_t Deserialize(Buffer::Iterator start)
Deserialize the packet.
uint8_t m_salvage
The salavage field.
virtual void Print(std::ostream &os) const
Print some informations about the packet.
Ipv4Address GetOriginalDst() const
Get the unreachable node ip address.
uint16_t GetUnsupported() const
Get the unsupported option type value.
static TypeId GetTypeId()
Get the type identificator.
void SetErrorType(uint8_t errorType)
Set the route error type.
void SetNodesAddress(std::vector< Ipv4Address > ipv4Address)
Set the vector of ipv4 address.
Ipv4Address GetNodeAddress(uint8_t index) const
Get a Node IPv4 Address.
uint8_t GetErrorType() const
Get the route error type.
virtual Alignment GetAlignment() const
Get the Alignment requirement of this option header.
virtual Alignment GetAlignment() const
Get the Alignment requirement of this option header.
virtual TypeId GetInstanceTypeId() const
Get the instance type ID.
virtual void Print(std::ostream &os) const
Print some informations about the packet.
Ipv4Address GetRealSrc() const
Get Error source ip address.
virtual uint32_t GetSerializedSize() const
Get the serialized size of the packet.
virtual ~DsrOptionHeader()
Destructor.
Acknowledgement (ACK) Message Format.
void SetTarget(Ipv4Address target)
Set the target ipv4 address.
void SetRealDst(Ipv4Address realDstAddress)
Set Error source ip address.
static TypeId GetTypeId()
Get the type identificator.
virtual uint32_t GetSerializedSize() const
Get the serialized size of the packet.
void SetNodeAddress(uint8_t index, Ipv4Address addr)
Set a Node IPv4 Address.
virtual uint32_t GetSerializedSize() const
Get the serialized size of the packet.
virtual Alignment GetAlignment() const
Get the Alignment requirement of this option header.
Route Error (RERR) Unsupported option Message Format.
virtual Alignment GetAlignment() const
Get the Alignment requirement of this option header.
Every class exported by the ns3 library is enclosed in the ns3 namespace.
Ipv4Address m_realSrcAddress
ack source address
virtual uint32_t GetSerializedSize() const
Get the serialized size of the packet.
virtual Ipv4Address GetErrorSrc() const
Get the route error source address.
uint8_t m_type
The type of the option.
virtual uint32_t Deserialize(Buffer::Iterator start)
Deserialize the packet.
virtual void SetSalvage(uint8_t salvage)
Set the salvage value of the packet.
Ipv4Address m_address
The ip address header deserilize to.
VectorIpv4Address_t m_ipv4Address
The vector of Nodes' IPv4 Address.
virtual TypeId GetInstanceTypeId() const
Get the instance type ID.
Route Request (RREQ) Message Format.
void SetId(uint16_t identification)
Set the request id number.
virtual TypeId GetInstanceTypeId() const
Get the instance type ID.
uint8_t m_length
The option length.
void SetNodesAddress(std::vector< Ipv4Address > ipv4Address)
Set the vector of ipv4 address.
virtual Ipv4Address GetErrorDst() const
Get the error destination ip address.
virtual TypeId GetInstanceTypeId() const
Get the instance type ID.
uint16_t m_identification
The identification field.
virtual uint8_t GetSalvage() const
Get the salvage value of the packet.
Ipv4Address GetRealDst() const
Get Error source ip address.
static TypeId GetTypeId()
Get the type identificator.
virtual void Serialize(Buffer::Iterator start) const
Serialize the packet.
virtual uint32_t GetSerializedSize() const
Get the serialized size of the packet.
void SetUnreachNode(Ipv4Address unreachNode)
Set the unreachable node ip address.
virtual TypeId GetInstanceTypeId() const
Get the instance type ID.
uint8_t m_salvage
The salavage field.
virtual ~DsrOptionAckHeader()
Destructor.
Ipv4Address m_originalDst
The original destination address.
virtual uint32_t Deserialize(Buffer::Iterator start)
Deserialize the packet.
virtual Ipv4Address GetErrorDst() const
Get the error destination ip address.
virtual ~DsrOptionRerrUnreachHeader()
Destructor.
void SetNodesAddress(std::vector< Ipv4Address > ipv4Address)
Set the vector of ipv4 address.
Ipv4 addresses are stored in host order in this class.
Definition: ipv4-address.h:40
static TypeId GetTypeId()
Get the type identificator.
virtual TypeId GetInstanceTypeId() const
Get the instance type ID.
static TypeId GetTypeId()
Get the type identificator.
virtual uint8_t GetSalvage() const
Get the salvage value of the packet.
uint8_t m_errorType
The error type or route error option.
virtual uint32_t Deserialize(Buffer::Iterator start)
Deserialize the packet.
Introspection did not find any typical Config paths.
virtual void Serialize(Buffer::Iterator start) const
Serialize the packet.
Route Error (RERR) Unreachable node address option Message Format.
void SetNumberAddress(uint8_t n)
Set the number of ipv4 address.
virtual uint32_t Deserialize(Buffer::Iterator start)
Deserialize the packet.
void SetRealSrc(Ipv4Address realSrcAddress)
Set Error source ip address.
void SetType(uint8_t type)
Set the type of the option.
virtual void Serialize(Buffer::Iterator start) const
Serialize the packet.
Introspection did not find any typical Config paths.
virtual ~DsrOptionRerrHeader()
Destructor.
virtual uint32_t Deserialize(Buffer::Iterator start)
Deserialize the packet.
uint8_t m_errorType
The error type or route error option.
void SetNumberAddress(uint8_t n)
Set the number of ipv4 address.
virtual void Print(std::ostream &os) const
Print some informations about the packet.
Ipv4Address m_realDstAddress
ack destination address
void SetNumberAddress(uint8_t n)
Set the number of ipv4 address.
virtual TypeId GetInstanceTypeId() const
Get the instance type ID.
Ipv4Address GetTargetAddress(std::vector< Ipv4Address > ipv4Address) const
virtual uint32_t GetSerializedSize() const
Get the serialized size of the packet.
VectorIpv4Address_t m_ipv4Address
The vector of Nodes' IPv4 Address.
virtual ~DsrOptionRreqHeader()
Destructor.
virtual uint32_t GetSerializedSize() const
Get the serialized size of the packet.
virtual Alignment GetAlignment() const
Get the Alignment requirement of this option header.
Ipv4Address m_errorDstAddress
The error destination address.
virtual Alignment GetAlignment() const
Get the Alignment requirement of this option header.
virtual ~DsrOptionRrepHeader()
Destructor.
static std::ostream & operator<<(std::ostream &os, const DsrRoutingHeader &dsr)
virtual Ipv4Address GetErrorSrc() const
Get the route error source address.
uint8_t m_segmentsLeft
Number of left segments.
virtual TypeId GetInstanceTypeId() const
Get the instance type ID.
virtual ~DsrOptionPad1Header()
Destructor.
virtual void Print(std::ostream &os) const
Print some informations about the packet.
void SetAckId(uint16_t identification)
Set the Ack id number.
void SetLength(uint8_t length)
Set the option length.
Ipv4Address m_errorSrcAddress
The error source address.
virtual uint8_t GetSalvage() const
Get the salvage value of the packet.
Buffer m_errorData
The anonymous data of this option.
void SetNodeAddress(uint8_t index, Ipv4Address addr)
Set a Node IPv4 Address.
virtual uint32_t Deserialize(Buffer::Iterator start)
Deserialize the packet.
uint8_t GetType() const
Get the type of the option.
a unique identifier for an interface.
Definition: type-id.h:58
uint16_t m_errorLength
The specific error message length.
void SetSalvage(uint8_t salvage)
Ipv4Address m_errorSrcAddress
The error source address.
Introspection did not find any typical Config paths.
void SetOriginalDst(Ipv4Address originalDst)
Set the unreachable node ip address.
virtual TypeId GetInstanceTypeId() const
Get the instance type ID.
std::vector< Ipv4Address > VectorIpv4Address_t
type def A vector of IPv4 Address.
static TypeId GetTypeId()
Get the type identificator.
virtual void SetSalvage(uint8_t salvage)
Set the salvage value of the packet.
static TypeId GetTypeId()
Get the type identificator.
uint8_t m_salvage
Number of savlage times for a packet.