Source Route (SR) Message Format. More...
#include "dsr-option-header.h"
Public Types | |
typedef void(* | TracedCallback) (const DsrOptionSRHeader &header) |
TracedCallback signature for DsrOptionSrHeader. More... | |
Public Member Functions | |
DsrOptionSRHeader () | |
Constructor. More... | |
~DsrOptionSRHeader () override | |
Destructor. More... | |
uint32_t | Deserialize (Buffer::Iterator start) override |
Deserialize the packet. More... | |
Alignment | GetAlignment () const override |
Get the Alignment requirement of this option header. More... | |
TypeId | GetInstanceTypeId () const override |
Get the instance type ID. More... | |
Ipv4Address | GetNodeAddress (uint8_t index) const |
Get a Node IPv4 Address. More... | |
uint8_t | GetNodeListSize () const |
Get the node list size which is the number of ip address of the route. More... | |
std::vector< Ipv4Address > | GetNodesAddress () const |
Get the vector of ipv4 address. More... | |
uint8_t | GetSalvage () const |
Get the salvage value for a packet. More... | |
uint8_t | GetSegmentsLeft () const |
Get the number of segments left to send. More... | |
uint32_t | GetSerializedSize () const override |
Get the serialized size of the packet. More... | |
void | Print (std::ostream &os) const override |
Print some information about the packet. More... | |
void | Serialize (Buffer::Iterator start) const override |
Serialize the packet. More... | |
void | SetNodeAddress (uint8_t index, Ipv4Address addr) |
Set a Node IPv4 Address. More... | |
void | SetNodesAddress (std::vector< Ipv4Address > ipv4Address) |
Set the vector of ipv4 address. More... | |
void | SetNumberAddress (uint8_t n) |
Set the number of ipv4 address. More... | |
void | SetSalvage (uint8_t salvage) |
Set the salvage value for a packet. More... | |
void | SetSegmentsLeft (uint8_t segmentsLeft) |
Set the number of segments left to send. More... | |
Public Member Functions inherited from ns3::dsr::DsrOptionHeader | |
DsrOptionHeader () | |
Constructor. More... | |
~DsrOptionHeader () override | |
Destructor. More... | |
uint8_t | GetLength () const |
Get the option length. More... | |
uint8_t | GetType () const |
Get the type of the option. More... | |
void | SetLength (uint8_t length) |
Set the option length. More... | |
void | SetType (uint8_t type) |
Set the type of the option. More... | |
Public Member Functions inherited from ns3::Header | |
~Header () override | |
virtual uint32_t | Deserialize (Buffer::Iterator start)=0 |
Deserialize the object from a buffer iterator. More... | |
virtual uint32_t | Deserialize (Buffer::Iterator start, Buffer::Iterator end) |
Deserialize the object from a buffer iterator. More... | |
Public Member Functions inherited from ns3::Chunk | |
virtual uint32_t | Deserialize (Buffer::Iterator start, Buffer::Iterator end) |
Deserialize the object from a buffer iterator. More... | |
Public Member Functions inherited from ns3::ObjectBase | |
virtual | ~ObjectBase () |
Virtual destructor. More... | |
void | GetAttribute (std::string name, AttributeValue &value) const |
Get the value of an attribute, raising fatal errors if unsuccessful. More... | |
bool | GetAttributeFailSafe (std::string name, AttributeValue &value) const |
Get the value of an attribute without raising errors. More... | |
void | SetAttribute (std::string name, const AttributeValue &value) |
Set a single attribute, raising fatal errors if unsuccessful. More... | |
bool | SetAttributeFailSafe (std::string name, const AttributeValue &value) |
Set a single attribute without raising errors. More... | |
bool | TraceConnect (std::string name, std::string context, const CallbackBase &cb) |
Connect a TraceSource to a Callback with a context. More... | |
bool | TraceConnectWithoutContext (std::string name, const CallbackBase &cb) |
Connect a TraceSource to a Callback without a context. More... | |
bool | TraceDisconnect (std::string name, std::string context, const CallbackBase &cb) |
Disconnect from a TraceSource a Callback previously connected with a context. More... | |
bool | TraceDisconnectWithoutContext (std::string name, const CallbackBase &cb) |
Disconnect from a TraceSource a Callback previously connected without a context. More... | |
Static Public Member Functions | |
static TypeId | GetTypeId () |
Get the type identificator. More... | |
Static Public Member Functions inherited from ns3::dsr::DsrOptionHeader | |
static TypeId | GetTypeId () |
Get the type identificator. More... | |
Static Public Member Functions inherited from ns3::Header | |
static TypeId | GetTypeId () |
Get the type ID. More... | |
Static Public Member Functions inherited from ns3::Chunk | |
static TypeId | GetTypeId () |
Get the type ID. More... | |
Static Public Member Functions inherited from ns3::ObjectBase | |
static TypeId | GetTypeId () |
Get the type ID. More... | |
Private Types | |
typedef std::vector< Ipv4Address > | VectorIpv4Address_t |
A vector of IPv4 Address. More... | |
Private Attributes | |
Ipv4Address | m_address |
The ip address header deserilize to. More... | |
VectorIpv4Address_t | m_ipv4Address |
The vector of Nodes' IPv4 Address. More... | |
uint8_t | m_salvage |
Number of savlage times for a packet. More... | |
uint8_t | m_segmentsLeft |
Number of left segments. More... | |
Additional Inherited Members | |
Protected Member Functions inherited from ns3::ObjectBase | |
void | ConstructSelf (const AttributeConstructionList &attributes) |
Complete construction of ObjectBase; invoked by derived classes. More... | |
virtual void | NotifyConstructionCompleted () |
Notifier called once the ObjectBase is fully constructed. More... | |
Related Functions inherited from ns3::ObjectBase | |
static TypeId | GetObjectIid () |
Ensure the TypeId for ObjectBase gets fully configured to anchor the inheritance tree properly. More... | |
Source Route (SR) Message Format.
Header of Dsr Option Source Route.
| 0 | 1 | 2 | 3 | 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Option Type | Opt Data Len |F|L|Reservd|Salvage| Segs Left | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Address[1] | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Address[2] | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ... | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Address[n] | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Definition at line 567 of file dsr-option-header.h.
typedef void(* ns3::dsr::DsrOptionSRHeader::TracedCallback) (const DsrOptionSRHeader &header) |
TracedCallback signature for DsrOptionSrHeader.
[in] | header | The DsrOptionsSRHeader |
Definition at line 672 of file dsr-option-header.h.
|
private |
A vector of IPv4 Address.
Definition at line 690 of file dsr-option-header.h.
ns3::dsr::DsrOptionSRHeader::DsrOptionSRHeader | ( | ) |
Constructor.
Definition at line 584 of file dsr-option-header.cc.
References m_ipv4Address, ns3::dsr::DsrOptionHeader::SetLength(), and ns3::dsr::DsrOptionHeader::SetType().
|
override |
Destructor.
Definition at line 592 of file dsr-option-header.cc.
|
overridevirtual |
Deserialize the packet.
start | Buffer iterator |
Reimplemented from ns3::dsr::DsrOptionHeader.
Definition at line 696 of file dsr-option-header.cc.
References ns3::Ipv4Address::Deserialize(), GetSerializedSize(), m_address, m_ipv4Address, m_salvage, m_segmentsLeft, ns3::Buffer::Iterator::Read(), ns3::Buffer::Iterator::ReadU8(), ns3::dsr::DsrOptionHeader::SetLength(), SetNodeAddress(), ns3::dsr::DsrOptionHeader::SetType(), and two-ray-to-three-gpp-ch-calibration::start.
|
overridevirtual |
Get the Alignment requirement of this option header.
Reimplemented from ns3::dsr::DsrOptionHeader.
Definition at line 717 of file dsr-option-header.cc.
|
overridevirtual |
Get the instance type ID.
Reimplemented from ns3::dsr::DsrOptionHeader.
Definition at line 579 of file dsr-option-header.cc.
References GetTypeId().
Ipv4Address ns3::dsr::DsrOptionSRHeader::GetNodeAddress | ( | uint8_t | index | ) | const |
index | the index of the IPv4 Address |
Definition at line 647 of file dsr-option-header.cc.
References m_ipv4Address.
Referenced by DsrSRHeaderTest::DoRun(), ns3::dsr::DsrOptionRerr::DoSendError(), and ns3::dsr::DsrOptionSR::Process().
uint8_t ns3::dsr::DsrOptionSRHeader::GetNodeListSize | ( | ) | const |
Get the node list size which is the number of ip address of the route.
Definition at line 653 of file dsr-option-header.cc.
References m_ipv4Address.
std::vector< Ipv4Address > ns3::dsr::DsrOptionSRHeader::GetNodesAddress | ( | ) | const |
Get the vector of ipv4 address.
Definition at line 635 of file dsr-option-header.cc.
References m_ipv4Address.
Referenced by ns3::dsr::DsrRouting::CancelPacketTimerNextHop(), ns3::dsr::DsrOptionRerr::DoSendError(), ns3::dsr::DsrOptionSR::Process(), and ns3::dsr::DsrRouting::SendPacketFromBuffer().
uint8_t ns3::dsr::DsrOptionSRHeader::GetSalvage | ( | ) | const |
Get the salvage value for a packet.
Definition at line 615 of file dsr-option-header.cc.
References m_salvage.
Referenced by ns3::dsr::DsrRouting::CancelPacketTimerNextHop(), DsrSRHeaderTest::DoRun(), ns3::dsr::DsrOptionRerr::DoSendError(), ns3::dsr::DsrOptionSR::Process(), and ns3::dsr::DsrRouting::SalvagePacket().
uint8_t ns3::dsr::DsrOptionSRHeader::GetSegmentsLeft | ( | ) | const |
Get the number of segments left to send.
Definition at line 603 of file dsr-option-header.cc.
References m_segmentsLeft.
Referenced by DsrSRHeaderTest::DoRun(), ns3::dsr::DsrOptionRerr::DoSendError(), ns3::dsr::DsrRouting::ForwardPacket(), and ns3::dsr::DsrOptionSR::Process().
|
overridevirtual |
Get the serialized size of the packet.
Reimplemented from ns3::dsr::DsrOptionHeader.
Definition at line 672 of file dsr-option-header.cc.
References m_ipv4Address.
Referenced by Deserialize(), ns3::dsr::DsrOptionRerr::DoSendError(), and ns3::dsr::DsrOptionSR::Process().
|
static |
Get the type identificator.
Definition at line 569 of file dsr-option-header.cc.
References ns3::TypeId::AddConstructor().
Referenced by GetInstanceTypeId().
|
overridevirtual |
Print some information about the packet.
os | output stream |
Reimplemented from ns3::dsr::DsrOptionHeader.
Definition at line 659 of file dsr-option-header.cc.
References ns3::dsr::DsrOptionHeader::GetLength(), ns3::dsr::DsrOptionHeader::GetType(), and m_ipv4Address.
Referenced by ns3::dsr::operator<<().
|
overridevirtual |
Serialize the packet.
start | Buffer iterator |
Reimplemented from ns3::dsr::DsrOptionHeader.
Definition at line 678 of file dsr-option-header.cc.
References ns3::dsr::DsrOptionHeader::GetLength(), ns3::dsr::DsrOptionHeader::GetType(), m_ipv4Address, m_salvage, m_segmentsLeft, two-ray-to-three-gpp-ch-calibration::start, ns3::Buffer::Iterator::Write(), and ns3::Buffer::Iterator::WriteU8().
void ns3::dsr::DsrOptionSRHeader::SetNodeAddress | ( | uint8_t | index, |
Ipv4Address | addr | ||
) |
Definition at line 641 of file dsr-option-header.cc.
References m_ipv4Address.
Referenced by Deserialize().
void ns3::dsr::DsrOptionSRHeader::SetNodesAddress | ( | std::vector< Ipv4Address > | ipv4Address | ) |
Set the vector of ipv4 address.
ipv4Address | the vector of ipv4 address |
Definition at line 628 of file dsr-option-header.cc.
References m_ipv4Address, and ns3::dsr::DsrOptionHeader::SetLength().
Referenced by ns3::dsr::DsrRouting::CheckSendBuffer(), DsrSRHeaderTest::DoRun(), ns3::dsr::DsrOptionRerr::DoSendError(), ns3::dsr::DsrRouting::PacketNewRoute(), ns3::dsr::DsrOptionRreq::Process(), ns3::dsr::DsrOptionRrep::Process(), ns3::dsr::DsrOptionSR::Process(), ns3::dsr::DsrRouting::RouteRequestTimerExpire(), ns3::dsr::DsrRouting::SalvagePacket(), ns3::dsr::DsrRouting::Send(), ns3::dsr::DsrRouting::SendErrorRequest(), and ns3::dsr::DsrRouting::SendUnreachError().
void ns3::dsr::DsrOptionSRHeader::SetNumberAddress | ( | uint8_t | n | ) |
Set the number of ipv4 address.
n | the number of ipv4' address |
Definition at line 621 of file dsr-option-header.cc.
References m_ipv4Address.
Referenced by ns3::dsr::DsrRouting::AddAckReqHeader(), ns3::dsr::DsrRouting::CancelPacketTimerNextHop(), DsrSRHeaderTest::DoRun(), ns3::dsr::DsrOptionRerr::DoSendError(), ns3::dsr::DsrOptionSR::Process(), and ns3::dsr::DsrRouting::SalvagePacket().
void ns3::dsr::DsrOptionSRHeader::SetSalvage | ( | uint8_t | salvage | ) |
Set the salvage value for a packet.
salvage | The salvage value of the packet |
Definition at line 609 of file dsr-option-header.cc.
References m_salvage.
Referenced by ns3::dsr::DsrRouting::CheckSendBuffer(), DsrSRHeaderTest::DoRun(), ns3::dsr::DsrOptionRerr::DoSendError(), ns3::dsr::DsrRouting::PacketNewRoute(), ns3::dsr::DsrOptionRreq::Process(), ns3::dsr::DsrOptionRrep::Process(), ns3::dsr::DsrOptionSR::Process(), ns3::dsr::DsrRouting::RouteRequestTimerExpire(), ns3::dsr::DsrRouting::SalvagePacket(), ns3::dsr::DsrRouting::Send(), and ns3::dsr::DsrRouting::SendErrorRequest().
void ns3::dsr::DsrOptionSRHeader::SetSegmentsLeft | ( | uint8_t | segmentsLeft | ) |
Set the number of segments left to send.
segmentsLeft | The segments left |
Definition at line 597 of file dsr-option-header.cc.
References m_segmentsLeft.
Referenced by ns3::dsr::DsrRouting::CheckSendBuffer(), DsrSRHeaderTest::DoRun(), ns3::dsr::DsrOptionRerr::DoSendError(), ns3::dsr::DsrRouting::PacketNewRoute(), ns3::dsr::DsrOptionRreq::Process(), ns3::dsr::DsrOptionRrep::Process(), ns3::dsr::DsrOptionSR::Process(), ns3::dsr::DsrRouting::RouteRequestTimerExpire(), ns3::dsr::DsrRouting::SalvagePacket(), ns3::dsr::DsrRouting::Send(), ns3::dsr::DsrRouting::SendErrorRequest(), and ns3::dsr::DsrRouting::SendUnreachError().
|
private |
The ip address header deserilize to.
Definition at line 678 of file dsr-option-header.h.
Referenced by Deserialize().
|
private |
The vector of Nodes' IPv4 Address.
Definition at line 694 of file dsr-option-header.h.
Referenced by DsrOptionSRHeader(), Deserialize(), GetNodeAddress(), GetNodeListSize(), GetNodesAddress(), GetSerializedSize(), Print(), Serialize(), SetNodeAddress(), SetNodesAddress(), and SetNumberAddress().
|
private |
Number of savlage times for a packet.
Definition at line 686 of file dsr-option-header.h.
Referenced by Deserialize(), GetSalvage(), Serialize(), and SetSalvage().
|
private |
Number of left segments.
Definition at line 682 of file dsr-option-header.h.
Referenced by Deserialize(), GetSegmentsLeft(), Serialize(), and SetSegmentsLeft().