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

iterator in a Buffer instance More...

#include <buffer.h>

Public Member Functions

uint16_t CalculateIpChecksum (uint16_t size)
 Calculate the checksum. More...
 
uint16_t CalculateIpChecksum (uint16_t size, uint32_t initialChecksum)
 Calculate the checksum. More...
 
uint32_t GetDistanceFrom (Iterator const &o) const
 
uint32_t GetSize (void) const
 
bool IsEnd (void) const
 
bool IsStart (void) const
 
void Next (void)
 
void Next (uint32_t delta)
 
void Prev (void)
 
void Prev (uint32_t delta)
 
void Read (uint8_t *buffer, uint32_t size)
 
uint16_t ReadLsbtohU16 (void)
 
uint32_t ReadLsbtohU32 (void)
 
uint64_t ReadLsbtohU64 (void)
 
uint16_t ReadNtohU16 (void)
 
uint32_t ReadNtohU32 (void)
 
uint64_t ReadNtohU64 (void)
 
uint16_t ReadU16 (void)
 
uint32_t ReadU32 (void)
 
uint64_t ReadU64 (void)
 
uint8_t ReadU8 (void)
 
void Write (uint8_t const *buffer, uint32_t size)
 
void Write (Iterator start, Iterator end)
 
void WriteHtolsbU16 (uint16_t data)
 
void WriteHtolsbU32 (uint32_t data)
 
void WriteHtolsbU64 (uint64_t data)
 
void WriteHtonU16 (uint16_t data)
 
void WriteHtonU32 (uint32_t data)
 
void WriteHtonU64 (uint64_t data)
 
void WriteU16 (uint16_t data)
 
void WriteU32 (uint32_t data)
 
void WriteU64 (uint64_t data)
 
void WriteU8 (uint8_t data)
 
void WriteU8 (uint8_t data, uint32_t len)
 

Private Member Functions

 Iterator (Buffer const *buffer)
 
 Iterator (Buffer const *buffer, bool)
 
bool Check (uint32_t i) const
 
bool CheckNoZero (uint32_t start, uint32_t end) const
 
void Construct (const Buffer *buffer)
 
std::string GetReadErrorMessage (void) const
 
std::string GetWriteErrorMessage (void) const
 
uint16_t SlowReadNtohU16 (void)
 
uint32_t SlowReadNtohU32 (void)
 

Private Attributes

uint32_t m_current
 
uint8_t * m_data
 
uint32_t m_dataEnd
 
uint32_t m_dataStart
 
uint32_t m_zeroEnd
 
uint32_t m_zeroStart
 

Friends

class Buffer
 

Detailed Description

iterator in a Buffer instance

Definition at line 98 of file buffer.h.

Member Function Documentation

uint16_t ns3::Buffer::Iterator::CalculateIpChecksum ( uint16_t  size,
uint32_t  initialChecksum 
)

Calculate the checksum.

Parameters
sizesize of the buffer.
initialChecksuminitial value
Returns
checksum

Definition at line 1165 of file buffer.cc.

References NS_LOG_FUNCTION.

uint32_t ns3::Buffer::Iterator::GetDistanceFrom ( Iterator const &  o) const
Parameters
othe second iterator
Returns
number of bytes included between the two iterators

This method works only if the two iterators point to the same underlying buffer. Debug builds ensure this with an assert.

Definition at line 807 of file buffer.cc.

References NS_ASSERT, and NS_LOG_FUNCTION.

Referenced by ns3::AmsduSubframeHeader::Deserialize(), ns3::flame::FlameHeader::Deserialize(), ns3::CtrlBAckRequestHeader::Deserialize(), ns3::MgtAssocRequestHeader::Deserialize(), ns3::WifiInformationElementVector::Deserialize(), ns3::dot11s::MeshHeader::Deserialize(), ns3::aodv::TypeHeader::Deserialize(), ns3::dsdv::DsdvHeader::Deserialize(), ns3::dot11s::PeerLinkFrameStart::Deserialize(), ns3::ManagementMessageType::Deserialize(), ns3::UanHeaderRcData::Deserialize(), ns3::UanHeaderCommon::Deserialize(), ns3::MgtAssocResponseHeader::Deserialize(), ns3::WifiMacHeader::Deserialize(), ns3::CtrlBAckResponseHeader::Deserialize(), ns3::GenericMacHeader::Deserialize(), ns3::aodv::RreqHeader::Deserialize(), ns3::MgtProbeRequestHeader::Deserialize(), ns3::Icmpv4DestinationUnreachable::Deserialize(), ns3::WifiInformationElement::Deserialize(), ns3::MgtProbeResponseHeader::Deserialize(), ns3::Icmpv4TimeExceeded::Deserialize(), ns3::UanHeaderRcRts::Deserialize(), ns3::PbbTlvBlock::Deserialize(), ns3::BandwidthRequestHeader::Deserialize(), ns3::RngRsp::Deserialize(), ns3::aodv::RrepHeader::Deserialize(), ns3::Ucd::Deserialize(), ns3::UanHeaderRcCtsGlobal::Deserialize(), ns3::GrantManagementSubheader::Deserialize(), ns3::Dcd::Deserialize(), ns3::WifiActionHeader::Deserialize(), ns3::aodv::RrepAckHeader::Deserialize(), ns3::MgtAddBaRequestHeader::Deserialize(), ns3::FragmentationSubheader::Deserialize(), ns3::aodv::RerrHeader::Deserialize(), ns3::UanHeaderRcCts::Deserialize(), ns3::MgtAddBaResponseHeader::Deserialize(), ns3::PbbAddressTlvBlock::Deserialize(), ns3::DlMap::Deserialize(), ns3::UlMap::Deserialize(), ns3::UanHeaderRcAck::Deserialize(), ns3::MgtDelBaHeader::Deserialize(), ns3::DsaAck::Deserialize(), ns3::RngReq::Deserialize(), ns3::PbbPacket::Deserialize(), ns3::PbbMessage::Deserialize(), ns3::dot11s::IePeeringProtocol::DeserializeInformationField(), ns3::dot11s::IeLinkMetricReport::DeserializeInformationField(), ns3::dot11s::IePerr::DeserializeInformationField(), ns3::dot11s::IeMeshId::DeserializeInformationField(), ns3::dot11s::IeRann::DeserializeInformationField(), ns3::dot11s::IePrep::DeserializeInformationField(), ns3::dot11s::IePeerManagement::DeserializeInformationField(), ns3::dot11s::IeBeaconTiming::DeserializeInformationField(), ns3::dot11s::IeConfiguration::DeserializeInformationField(), ns3::dot11s::IePreq::DeserializeInformationField(), ns3::MeshInformationElementVector::DeserializeSingleIe(), ns3::WifiInformationElementVector::DeserializeSingleIe(), ns3::PbbTlvBlock::Serialize(), ns3::PbbAddressTlvBlock::Serialize(), and ns3::PbbMessage::Serialize().

bool ns3::Buffer::Iterator::IsEnd ( void  ) const
Returns
true if this iterator points to the end of the byte array. false otherwise.

Definition at line 823 of file buffer.cc.

References NS_LOG_FUNCTION.

Referenced by ns3::PbbPacket::Deserialize().

bool ns3::Buffer::Iterator::IsStart ( void  ) const
Returns
true if this iterator points to the start of the byte array. false otherwise.

Definition at line 829 of file buffer.cc.

References NS_LOG_FUNCTION.

void ns3::Buffer::Iterator::Next ( void  )
inline

go forward by one byte

Definition at line 666 of file buffer.h.

References NS_ASSERT.

Referenced by ns3::flame::FlameHeader::Deserialize(), ns3::LlcSnapHeader::Deserialize(), ns3::Icmpv4Header::Deserialize(), ns3::ArpHeader::Deserialize(), ns3::WifiInformationElementVector::Deserialize(), ns3::dot11s::PeerLinkFrameStart::Deserialize(), ns3::Icmpv4DestinationUnreachable::Deserialize(), ns3::dsr::DsrOptionHeader::Deserialize(), ns3::Ipv6OptionHeader::Deserialize(), ns3::UdpHeader::Deserialize(), ns3::Icmpv4TimeExceeded::Deserialize(), ns3::TcpHeader::Deserialize(), ns3::dsr::DsrOptionRerrHeader::Deserialize(), ns3::PbbTlv::Deserialize(), ns3::WifiInformationElement::DeserializeIfPresent(), ns3::dot11s::IePerr::DeserializeInformationField(), ns3::PbbMessage::DeserializeMessage(), ns3::MeshInformationElementVector::DeserializeSingleIe(), ns3::WifiInformationElementVector::DeserializeSingleIe(), BufferTest::DoRun(), ns3::Icmpv4Header::Serialize(), ns3::Icmpv4DestinationUnreachable::Serialize(), ns3::UdpHeader::Serialize(), ns3::WifiInformationElement::Serialize(), ns3::Icmpv4TimeExceeded::Serialize(), ns3::TcpHeader::Serialize(), ns3::PbbTlvBlock::Serialize(), ns3::Icmpv6Header::Serialize(), ns3::Ipv4Header::Serialize(), ns3::PbbAddressTlvBlock::Serialize(), ns3::Icmpv6NS::Serialize(), ns3::Icmpv6NA::Serialize(), ns3::PbbPacket::Serialize(), ns3::Icmpv6RA::Serialize(), ns3::Icmpv6RS::Serialize(), ns3::Icmpv6Redirection::Serialize(), ns3::PbbMessage::Serialize(), ns3::Icmpv6Echo::Serialize(), ns3::Icmpv6DestinationUnreachable::Serialize(), ns3::Icmpv6TooBig::Serialize(), ns3::Icmpv6TimeExceeded::Serialize(), ns3::Icmpv6ParameterError::Serialize(), ns3::PbbAddressBlock::Serialize(), and ns3::PbbTlv::Serialize().

void ns3::Buffer::Iterator::Next ( uint32_t  delta)
inline
Parameters
deltanumber of bytes to go forward

Definition at line 678 of file buffer.h.

References NS_ASSERT.

void ns3::Buffer::Iterator::Prev ( uint32_t  delta)
inline
Parameters
deltanumber of bytes to go backward

Definition at line 684 of file buffer.h.

References NS_ASSERT.

uint32_t ns3::Buffer::Iterator::ReadLsbtohU32 ( void  )
uint64_t ns3::Buffer::Iterator::ReadLsbtohU64 ( void  )
Returns
the eight bytes read in the buffer.

Read data and advance the Iterator by the number of bytes read. The data is read in network format and return in host format.

Definition at line 1118 of file buffer.cc.

References NS_LOG_FUNCTION.

Referenced by ns3::MgtProbeResponseHeader::Deserialize(), and BufferTest::DoRun().

uint16_t ns3::Buffer::Iterator::ReadNtohU16 ( void  )
inline
Returns
the two bytes read in the buffer.

Read data and advance the Iterator by the number of bytes read. The data is read in network format and return in host format.

Definition at line 767 of file buffer.h.

Referenced by MyHeader::Deserialize(), ns3::EpcX2Header::Deserialize(), ns3::AmsduSubframeHeader::Deserialize(), ns3::GtpuHeader::Deserialize(), ns3::flame::FlameHeader::Deserialize(), ns3::LlcSnapHeader::Deserialize(), ns3::ArpHeader::Deserialize(), ns3::PppHeader::Deserialize(), ns3::Icmpv4Echo::Deserialize(), ns3::EpcX2HandoverRequestHeader::Deserialize(), ns3::olsr::PacketHeader::Deserialize(), ns3::EthernetHeader::Deserialize(), ns3::Icmpv4DestinationUnreachable::Deserialize(), ns3::UdpHeader::Deserialize(), ns3::EpcX2HandoverRequestAckHeader::Deserialize(), ns3::TcpHeader::Deserialize(), ns3::PbbTlvBlock::Deserialize(), ns3::Ipv6Header::Deserialize(), ns3::EpcX2HandoverPreparationFailureHeader::Deserialize(), ns3::Icmpv6Header::Deserialize(), ns3::olsr::MessageHeader::Deserialize(), ns3::EpcX2SnStatusTransferHeader::Deserialize(), ns3::Ipv4Header::Deserialize(), ns3::EpcX2UeContextReleaseHeader::Deserialize(), ns3::EpcX2LoadInformationHeader::Deserialize(), ns3::EpcX2ResourceStatusUpdateHeader::Deserialize(), ns3::Ipv6OptionJumbogramHeader::Deserialize(), ns3::PbbAddressTlvBlock::Deserialize(), ns3::dsr::DsrOptionRreqHeader::Deserialize(), ns3::Ipv6OptionRouterAlertHeader::Deserialize(), ns3::Ipv6ExtensionFragmentHeader::Deserialize(), ns3::PbbPacket::Deserialize(), ns3::Icmpv6RA::Deserialize(), ns3::PbbMessage::Deserialize(), ns3::Icmpv6Echo::Deserialize(), ns3::Icmpv6OptionMtu::Deserialize(), ns3::PbbTlv::Deserialize(), and BufferTest::DoRun().

uint64_t ns3::Buffer::Iterator::ReadNtohU64 ( void  )
Returns
the eight bytes read in the buffer.

Read data and advance the Iterator by the number of bytes read. The data is read in network format and return in host format.

Definition at line 1068 of file buffer.cc.

References NS_LOG_FUNCTION.

Referenced by ns3::SeqTsHeader::Deserialize(), ns3::EpcX2HandoverRequestHeader::Deserialize(), and ns3::EpcX2SnStatusTransferHeader::Deserialize().

uint64_t ns3::Buffer::Iterator::ReadU64 ( void  )
Returns
the eight bytes read in the buffer.

Read data and advance the Iterator by the number of bytes read. The data is read in the format written by writeU64.

Definition at line 1014 of file buffer.cc.

References NS_LOG_FUNCTION.

Referenced by ns3::RadiotapHeader::Deserialize(), and ns3::EthernetHeader::Deserialize().

uint8_t ns3::Buffer::Iterator::ReadU8 ( void  )
inline
Returns
the byte read in the buffer.

Read data and advance the Iterator by the number of bytes read.

Definition at line 819 of file buffer.h.

References NS_ASSERT_MSG.

Referenced by BenchHeader< N >::Deserialize(), ns3::EpcX2Header::Deserialize(), ns3::GtpuHeader::Deserialize(), ns3::flame::FlameHeader::Deserialize(), ns3::Icmpv4Header::Deserialize(), ns3::ArpHeader::Deserialize(), ns3::dot11s::MeshHeader::Deserialize(), ns3::aodv::TypeHeader::Deserialize(), ns3::LtePdcpHeader::Deserialize(), ns3::dot11s::PeerLinkFrameStart::Deserialize(), ns3::ManagementMessageType::Deserialize(), ns3::UanHeaderRcData::Deserialize(), anonymous_namespace{packet-metadata-test.cc}::HistoryHeader< N >::Deserialize(), ns3::RadiotapHeader::Deserialize(), ns3::UanHeaderCommon::Deserialize(), ns3::Tlv::Deserialize(), ns3::LteRlcHeader::Deserialize(), ns3::EpcX2HandoverRequestHeader::Deserialize(), ns3::OfdmDownlinkFramePrefix::Deserialize(), ns3::Ipv6ExtensionHeader::Deserialize(), ns3::GenericMacHeader::Deserialize(), anonymous_namespace{packet-test-suite.cc}::ATestHeader< N >::Deserialize(), ns3::aodv::RreqHeader::Deserialize(), ns3::Icmpv4DestinationUnreachable::Deserialize(), ns3::dsr::DsrOptionHeader::Deserialize(), ns3::Ipv6OptionHeader::Deserialize(), ns3::LteRlcAmHeader::Deserialize(), ns3::Icmpv4TimeExceeded::Deserialize(), ns3::UanHeaderRcRts::Deserialize(), anonymous_namespace{packet-test-suite.cc}::ATestTrailer< N >::Deserialize(), ns3::dsr::DsrFsHeader::Deserialize(), ns3::BandwidthRequestHeader::Deserialize(), ns3::Ipv6Header::Deserialize(), anonymous_namespace{packet-metadata-test.cc}::HistoryTrailer< N >::Deserialize(), ns3::dsr::DsrOptionPad1Header::Deserialize(), ns3::RngRsp::Deserialize(), ns3::aodv::RrepHeader::Deserialize(), ns3::Icmpv6Header::Deserialize(), ns3::Ipv6OptionPad1Header::Deserialize(), ns3::olsr::MessageHeader::Deserialize(), ns3::Ucd::Deserialize(), ns3::Ipv4Header::Deserialize(), ns3::GrantManagementSubheader::Deserialize(), ns3::Dcd::Deserialize(), ns3::dsr::DsrOptionPadnHeader::Deserialize(), ns3::WifiActionHeader::Deserialize(), ns3::Ipv6OptionPadnHeader::Deserialize(), ns3::aodv::RrepAckHeader::Deserialize(), ns3::Ipv6ExtensionHopByHopHeader::Deserialize(), ns3::MgtAddBaRequestHeader::Deserialize(), ns3::FragmentationSubheader::Deserialize(), ns3::EpcX2LoadInformationHeader::Deserialize(), ns3::aodv::RerrHeader::Deserialize(), ns3::UanHeaderRcCts::Deserialize(), ns3::EpcX2ResourceStatusUpdateHeader::Deserialize(), ns3::dsr::DsrRoutingHeader::Deserialize(), ns3::MgtAddBaResponseHeader::Deserialize(), ns3::Ipv6ExtensionDestinationHeader::Deserialize(), ns3::Ipv6OptionJumbogramHeader::Deserialize(), ns3::DlMap::Deserialize(), ns3::UlMap::Deserialize(), ns3::UanHeaderRcAck::Deserialize(), ns3::dsr::DsrOptionRreqHeader::Deserialize(), ns3::DsaRsp::Deserialize(), ns3::Ipv6OptionRouterAlertHeader::Deserialize(), ns3::Icmpv6NS::Deserialize(), ns3::Ipv6ExtensionFragmentHeader::Deserialize(), ns3::DsaAck::Deserialize(), ns3::RngReq::Deserialize(), ns3::Ipv6ExtensionRoutingHeader::Deserialize(), ns3::Icmpv6NA::Deserialize(), ns3::dsr::DsrOptionRrepHeader::Deserialize(), ns3::Ipv6ExtensionLooseRoutingHeader::Deserialize(), ns3::PbbPacket::Deserialize(), ns3::dsr::DsrOptionSRHeader::Deserialize(), ns3::Icmpv6RA::Deserialize(), ns3::Icmpv6RS::Deserialize(), ns3::dsr::DsrOptionRerrHeader::Deserialize(), ns3::Icmpv6Redirection::Deserialize(), ns3::PbbMessage::Deserialize(), ns3::dsr::DsrOptionRerrUnreachHeader::Deserialize(), ns3::Icmpv6Echo::Deserialize(), ns3::Icmpv6DestinationUnreachable::Deserialize(), ns3::dsr::DsrOptionRerrUnsupportHeader::Deserialize(), ns3::Icmpv6TooBig::Deserialize(), ns3::dsr::DsrOptionAckReqHeader::Deserialize(), ns3::Icmpv6TimeExceeded::Deserialize(), ns3::Icmpv6ParameterError::Deserialize(), ns3::dsr::DsrOptionAckHeader::Deserialize(), ns3::PbbAddressBlock::Deserialize(), ns3::Icmpv6OptionMtu::Deserialize(), ns3::Icmpv6OptionPrefixInformation::Deserialize(), ns3::PbbTlv::Deserialize(), ns3::Icmpv6OptionLinkLayerAddress::Deserialize(), ns3::Icmpv6OptionRedirected::Deserialize(), ns3::WifiInformationElement::DeserializeIfPresent(), ns3::dot11s::IePeeringProtocol::DeserializeInformationField(), ns3::dot11s::IePerr::DeserializeInformationField(), ns3::dot11s::IeRann::DeserializeInformationField(), ns3::dot11s::IePrep::DeserializeInformationField(), ns3::dot11s::IePeerManagement::DeserializeInformationField(), ns3::dot11s::IeBeaconTiming::DeserializeInformationField(), ns3::dot11s::IeConfiguration::DeserializeInformationField(), ns3::dot11s::IePreq::DeserializeInformationField(), ns3::PbbMessage::DeserializeMessage(), ns3::MeshInformationElementVector::DeserializeSingleIe(), and ns3::WifiInformationElementVector::DeserializeSingleIe().

void ns3::Buffer::Iterator::Write ( uint8_t const *  buffer,
uint32_t  size 
)
Parameters
buffera byte buffer to copy in the internal buffer.
sizenumber of bytes to copy.

Write the data in buffer and avance the iterator position by size bytes.

Definition at line 978 of file buffer.cc.

References NS_ASSERT_MSG, and NS_LOG_FUNCTION.

Referenced by ns3::Buffer::AddAtEnd(), ns3::Icmpv6Header::CalculatePseudoHeaderChecksum(), ns3::Ipv6ExtensionHeader::Deserialize(), ns3::dsr::DsrOptionHeader::Deserialize(), ns3::Ipv6OptionHeader::Deserialize(), ns3::dsr::DsrFsHeader::Deserialize(), ns3::OptionField::Deserialize(), ns3::dsr::DsrOptionField::Deserialize(), ns3::Buffer::Deserialize(), ns3::dsr::DsrOptionRerrHeader::Deserialize(), ns3::PbbTlv::Deserialize(), BufferTest::DoRun(), ns3::Packet::Packet(), ns3::Asn1Header::Serialize(), ns3::LlcSnapHeader::Serialize(), ns3::Icmpv4Echo::Serialize(), ns3::Ipv6ExtensionHeader::Serialize(), ns3::dsr::DsrOptionHeader::Serialize(), ns3::Ipv6OptionHeader::Serialize(), ns3::Icmpv4DestinationUnreachable::Serialize(), ns3::Icmpv4TimeExceeded::Serialize(), ns3::dsr::DsrFsHeader::Serialize(), ns3::OptionField::Serialize(), ns3::dsr::DsrOptionField::Serialize(), ns3::dsr::DsrOptionRreqHeader::Serialize(), ns3::Icmpv6NS::Serialize(), ns3::Icmpv6NA::Serialize(), ns3::dsr::DsrOptionRrepHeader::Serialize(), ns3::Ipv6ExtensionLooseRoutingHeader::Serialize(), ns3::dsr::DsrOptionSRHeader::Serialize(), ns3::dsr::DsrOptionRerrHeader::Serialize(), ns3::Icmpv6Redirection::Serialize(), ns3::Icmpv6DestinationUnreachable::Serialize(), ns3::Icmpv6TooBig::Serialize(), ns3::Icmpv6TimeExceeded::Serialize(), ns3::Icmpv6ParameterError::Serialize(), ns3::PbbAddressBlock::Serialize(), ns3::Icmpv6OptionPrefixInformation::Serialize(), ns3::PbbTlv::Serialize(), ns3::Icmpv6OptionLinkLayerAddress::Serialize(), ns3::Icmpv6OptionRedirected::Serialize(), ns3::Ssid::SerializeInformationField(), ns3::ExtendedSupportedRatesIE::SerializeInformationField(), ns3::SupportedRates::SerializeInformationField(), and ns3::PbbTlv::SetValue().

void ns3::Buffer::Iterator::Write ( Iterator  start,
Iterator  end 
)
Parameters
startthe start of the data to copy
endthe end of the data to copy

Write the data delimited by start and end in internal buffer and avance the iterator position by the number of bytes copied. The input interators must not point to the same Buffer as we do to avoid overlapping copies. This is enforced in debug builds by asserts.

Definition at line 860 of file buffer.cc.

References NS_ASSERT, NS_ASSERT_MSG, and NS_LOG_FUNCTION.

void ns3::Buffer::Iterator::WriteHtolsbU32 ( uint32_t  data)
Parameters
datadata to write in buffer

Write the data in buffer and avance the iterator position by four bytes. The data is written in least significant byte order and the input data is expected to be in host order.

Definition at line 942 of file buffer.cc.

References NS_LOG_FUNCTION.

Referenced by ns3::dot11s::MeshHeader::Serialize(), ns3::dot11s::IeLinkMetricReport::SerializeInformationField(), ns3::dot11s::IePerr::SerializeInformationField(), ns3::dot11s::IeRann::SerializeInformationField(), ns3::dot11s::IePrep::SerializeInformationField(), ns3::dot11s::IeConfiguration::SerializeInformationField(), and ns3::dot11s::IePreq::SerializeInformationField().

void ns3::Buffer::Iterator::WriteHtolsbU64 ( uint64_t  data)
Parameters
datadata to write in buffer

Write the data in buffer and avance the iterator position by eight bytes. The data is written in least significant byte order and the input data is expected to be in host order.

Definition at line 951 of file buffer.cc.

References NS_LOG_FUNCTION.

Referenced by BufferTest::DoRun(), and ns3::MgtProbeResponseHeader::Serialize().

void ns3::Buffer::Iterator::WriteHtonU16 ( uint16_t  data)
inline
Parameters
datadata to write in buffer

Write the data in buffer and avance the iterator position by two bytes. The data is written in least significant byte order and the input data is expected to be in host order.

Definition at line 726 of file buffer.h.

References NS_ASSERT_MSG.

Referenced by BufferTest::DoRun(), MyHeader::Serialize(), ns3::EpcX2Header::Serialize(), ns3::AmsduSubframeHeader::Serialize(), ns3::GtpuHeader::Serialize(), ns3::flame::FlameHeader::Serialize(), ns3::LlcSnapHeader::Serialize(), ns3::Icmpv4Header::Serialize(), ns3::ArpHeader::Serialize(), ns3::PppHeader::Serialize(), ns3::Icmpv4Echo::Serialize(), ns3::EpcX2HandoverRequestHeader::Serialize(), ns3::olsr::PacketHeader::Serialize(), ns3::EthernetHeader::Serialize(), ns3::Icmpv4DestinationUnreachable::Serialize(), ns3::UdpHeader::Serialize(), ns3::EpcX2HandoverRequestAckHeader::Serialize(), ns3::TcpHeader::Serialize(), ns3::PbbTlvBlock::Serialize(), ns3::Ipv6Header::Serialize(), ns3::EpcX2HandoverPreparationFailureHeader::Serialize(), ns3::olsr::MessageHeader::Serialize(), ns3::EpcX2SnStatusTransferHeader::Serialize(), ns3::Ipv4Header::Serialize(), ns3::EpcX2UeContextReleaseHeader::Serialize(), ns3::EpcX2LoadInformationHeader::Serialize(), ns3::EpcX2ResourceStatusUpdateHeader::Serialize(), ns3::PbbAddressTlvBlock::Serialize(), ns3::dsr::DsrOptionRreqHeader::Serialize(), ns3::Ipv6OptionRouterAlertHeader::Serialize(), ns3::Ipv6ExtensionFragmentHeader::Serialize(), ns3::PbbPacket::Serialize(), ns3::Icmpv6RA::Serialize(), ns3::PbbMessage::Serialize(), ns3::Icmpv6Echo::Serialize(), ns3::Icmpv6DestinationUnreachable::Serialize(), ns3::Icmpv6TooBig::Serialize(), ns3::Icmpv6TimeExceeded::Serialize(), ns3::Icmpv6ParameterError::Serialize(), ns3::Icmpv6OptionMtu::Serialize(), and ns3::PbbTlv::Serialize().

void ns3::Buffer::Iterator::WriteHtonU64 ( uint64_t  data)
Parameters
datadata to write in buffer

Write the data in buffer and avance the iterator position by eight bytes. The data is written in network order and the input data is expected to be in host order.

Definition at line 965 of file buffer.cc.

References NS_LOG_FUNCTION.

Referenced by BufferTest::DoRun(), ns3::SeqTsHeader::Serialize(), ns3::EpcX2HandoverRequestHeader::Serialize(), and ns3::EpcX2SnStatusTransferHeader::Serialize().

void ns3::Buffer::Iterator::WriteU16 ( uint16_t  data)
Parameters
datadata to write in buffer

Write the data in buffer and avance the iterator position by two bytes. The format of the data written in the byte buffer is non-portable. We only ensure that readU16 will return exactly what we wrote with writeU16 if the program is run on the same machine.

Definition at line 895 of file buffer.cc.

References NS_LOG_FUNCTION.

Referenced by ns3::Icmpv6Header::CalculatePseudoHeaderChecksum(), BufferTest::DoRun(), ns3::WimaxMacToMacHeader::Serialize(), ns3::Icmpv4Header::Serialize(), ns3::RadiotapHeader::Serialize(), OptionWithoutAlignmentHeader::Serialize(), ns3::UanHeaderRcData::Serialize(), ns3::aodv::RreqHeader::Serialize(), ns3::Icmpv4DestinationUnreachable::Serialize(), ns3::UdpHeader::Serialize(), OptionWithAlignmentHeader::Serialize(), ns3::UanHeaderRcRts::Serialize(), ns3::dsr::DsrFsHeader::Serialize(), ns3::RngRsp::Serialize(), ns3::Icmpv6Header::Serialize(), ns3::aodv::RrepHeader::Serialize(), ns3::Ipv4Header::Serialize(), ns3::UanHeaderRcCtsGlobal::Serialize(), ns3::GrantManagementSubheader::Serialize(), ns3::DsaReq::Serialize(), ns3::dsr::DsrRoutingHeader::Serialize(), ns3::DsaRsp::Serialize(), ns3::Icmpv6NS::Serialize(), ns3::DsaAck::Serialize(), ns3::Icmpv6NA::Serialize(), ns3::Icmpv6RA::Serialize(), ns3::Icmpv6RS::Serialize(), ns3::Icmpv6Redirection::Serialize(), ns3::Icmpv6Echo::Serialize(), ns3::Icmpv6DestinationUnreachable::Serialize(), ns3::dsr::DsrOptionRerrUnsupportHeader::Serialize(), ns3::Icmpv6TooBig::Serialize(), ns3::dsr::DsrOptionAckReqHeader::Serialize(), ns3::Icmpv6TimeExceeded::Serialize(), ns3::Icmpv6ParameterError::Serialize(), ns3::dsr::DsrOptionAckHeader::Serialize(), and ns3::Icmpv6OptionRedirected::Serialize().

void ns3::Buffer::Iterator::WriteU32 ( uint32_t  data)
void ns3::Buffer::Iterator::WriteU64 ( uint64_t  data)
Parameters
datadata to write in buffer

Write the data in buffer and avance the iterator position by eight bytes. The format of the data written in the byte buffer is non-portable. We only ensure that readU64 will return exactly what we wrote with writeU64 if the program is run on the same machine.

Definition at line 915 of file buffer.cc.

References NS_LOG_FUNCTION.

Referenced by BufferTest::DoRun(), ns3::RadiotapHeader::Serialize(), and ns3::EthernetHeader::Serialize().

void ns3::Buffer::Iterator::WriteU8 ( uint8_t  data)
inline
Parameters
datadata to write in buffer

Write the data in buffer and avance the iterator position by one byte.

Definition at line 690 of file buffer.h.

References NS_ASSERT_MSG.

Referenced by ns3::Icmpv6Header::CalculatePseudoHeaderChecksum(), BufferTest::DoRun(), BenchHeader< N >::Serialize(), ns3::EpcX2Header::Serialize(), ns3::WimaxMacToMacHeader::Serialize(), ns3::GtpuHeader::Serialize(), ns3::flame::FlameHeader::Serialize(), ns3::Icmpv4Header::Serialize(), ns3::ArpHeader::Serialize(), ns3::dot11s::MeshHeader::Serialize(), ns3::aodv::TypeHeader::Serialize(), ns3::LtePdcpHeader::Serialize(), ns3::RadiotapHeader::Serialize(), ns3::ManagementMessageType::Serialize(), OptionWithoutAlignmentHeader::Serialize(), ns3::UanHeaderRcData::Serialize(), anonymous_namespace{packet-metadata-test.cc}::HistoryHeader< N >::Serialize(), ns3::UanHeaderCommon::Serialize(), ns3::Tlv::Serialize(), ns3::LteRlcHeader::Serialize(), ns3::EpcX2HandoverRequestHeader::Serialize(), ns3::OfdmDownlinkFramePrefix::Serialize(), ns3::Ipv6ExtensionHeader::Serialize(), anonymous_namespace{packet-test-suite.cc}::ATestHeader< N >::Serialize(), ns3::GenericMacHeader::Serialize(), ns3::dsr::DsrOptionHeader::Serialize(), ns3::Ipv6OptionHeader::Serialize(), ns3::aodv::RreqHeader::Serialize(), OptionWithAlignmentHeader::Serialize(), ns3::WifiInformationElement::Serialize(), ns3::LteRlcAmHeader::Serialize(), ns3::UanHeaderRcRts::Serialize(), anonymous_namespace{packet-test-suite.cc}::ATestTrailer< N >::Serialize(), ns3::dsr::DsrFsHeader::Serialize(), ns3::Ipv6Header::Serialize(), ns3::BandwidthRequestHeader::Serialize(), ns3::dsr::DsrOptionPad1Header::Serialize(), anonymous_namespace{packet-metadata-test.cc}::HistoryTrailer< N >::Serialize(), ns3::RngRsp::Serialize(), ns3::Icmpv6Header::Serialize(), ns3::Ipv6OptionPad1Header::Serialize(), ns3::aodv::RrepHeader::Serialize(), ns3::olsr::MessageHeader::Serialize(), ns3::Ipv4Header::Serialize(), ns3::Ucd::Serialize(), ns3::GrantManagementSubheader::Serialize(), ns3::dsr::DsrOptionPadnHeader::Serialize(), ns3::Dcd::Serialize(), ns3::WifiActionHeader::Serialize(), ns3::Ipv6OptionPadnHeader::Serialize(), ns3::Ipv6ExtensionHopByHopHeader::Serialize(), ns3::aodv::RrepAckHeader::Serialize(), ns3::MgtAddBaRequestHeader::Serialize(), ns3::FragmentationSubheader::Serialize(), ns3::EpcX2LoadInformationHeader::Serialize(), ns3::aodv::RerrHeader::Serialize(), ns3::UanHeaderRcCts::Serialize(), ns3::dsr::DsrRoutingHeader::Serialize(), ns3::EpcX2ResourceStatusUpdateHeader::Serialize(), ns3::Ipv6ExtensionDestinationHeader::Serialize(), ns3::MgtAddBaResponseHeader::Serialize(), ns3::Ipv6OptionJumbogramHeader::Serialize(), ns3::DlMap::Serialize(), ns3::UlMap::Serialize(), ns3::UanHeaderRcAck::Serialize(), ns3::dsr::DsrOptionRreqHeader::Serialize(), ns3::DsaRsp::Serialize(), ns3::Ipv6OptionRouterAlertHeader::Serialize(), ns3::Icmpv6NS::Serialize(), ns3::Ipv6ExtensionFragmentHeader::Serialize(), ns3::DsaAck::Serialize(), ns3::RngReq::Serialize(), ns3::Ipv6ExtensionRoutingHeader::Serialize(), ns3::Icmpv6NA::Serialize(), ns3::dsr::DsrOptionRrepHeader::Serialize(), ns3::Ipv6ExtensionLooseRoutingHeader::Serialize(), ns3::PbbPacket::Serialize(), ns3::dsr::DsrOptionSRHeader::Serialize(), ns3::Icmpv6RA::Serialize(), ns3::Icmpv6RS::Serialize(), ns3::dsr::DsrOptionRerrHeader::Serialize(), ns3::Icmpv6Redirection::Serialize(), ns3::PbbMessage::Serialize(), ns3::dsr::DsrOptionRerrUnreachHeader::Serialize(), ns3::Icmpv6Echo::Serialize(), ns3::Icmpv6DestinationUnreachable::Serialize(), ns3::dsr::DsrOptionRerrUnsupportHeader::Serialize(), ns3::Icmpv6TooBig::Serialize(), ns3::dsr::DsrOptionAckReqHeader::Serialize(), ns3::Icmpv6TimeExceeded::Serialize(), ns3::Icmpv6ParameterError::Serialize(), ns3::dsr::DsrOptionAckHeader::Serialize(), ns3::PbbAddressBlock::Serialize(), ns3::Icmpv6OptionMtu::Serialize(), ns3::Icmpv6OptionPrefixInformation::Serialize(), ns3::PbbTlv::Serialize(), ns3::Icmpv6OptionLinkLayerAddress::Serialize(), ns3::Icmpv6OptionRedirected::Serialize(), ns3::dot11s::IePeeringProtocol::SerializeInformationField(), ns3::dot11s::IeMeshId::SerializeInformationField(), ns3::dot11s::IePerr::SerializeInformationField(), ns3::dot11s::IeRann::SerializeInformationField(), ns3::dot11s::IePrep::SerializeInformationField(), ns3::dot11s::IePeerManagement::SerializeInformationField(), ns3::dot11s::IeBeaconTiming::SerializeInformationField(), ns3::dot11s::IeConfiguration::SerializeInformationField(), and ns3::dot11s::IePreq::SerializeInformationField().

void ns3::Buffer::Iterator::WriteU8 ( uint8_t  data,
uint32_t  len 
)
inline
Parameters
datadata to write in buffer
lennumber of times data must be written in buffer

Write the data in buffer len times and avance the iterator position by len byte.

Definition at line 708 of file buffer.h.

References NS_ASSERT_MSG.


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