13#include "ns3/buffer.h"
15#include "ns3/nstime.h"
182 friend std::ostream&
operator<<(std::ostream& os,
const Duid& duid);
217 void HtoN(
uint32_t source, std::vector<uint8_t>::iterator dest);
cairo_uint64_t x
_cairo_uint_96by64_32x64_divrem:
a polymophic address class
iterator in a Buffer instance
Class providing a hash for DUIDs.
size_t operator()(const Duid &x) const noexcept
Returns the hash of a DUID.
Implements the unique identifier for DHCPv6.
uint32_t Deserialize(Buffer::Iterator start, uint32_t len)
Deserialize the DUID.
uint8_t GetLength() const
Get the length of the DUID.
void InitializeLL(Ptr< Node > node)
Initialize the DUID-LL for a client or server.
Type m_duidType
DUID type.
bool operator==(const Duid &other) const
Comparison operator.
void Serialize(Buffer::Iterator start) const
Serialize the DUID.
void HtoN(uint32_t source, std::vector< uint8_t >::iterator dest)
Utility function to convert a 32-bit number to an array with its bytes in network order.
friend std::strong_ordering operator<=>(const Duid &a, const Duid &b)
Spaceship comparison operator.
bool IsInvalid() const
Check if the DUID is invalid.
void InitializeEN(uint32_t enNumber, const std::vector< uint8_t > &identifier)
Initialize the DUID-EN for a client or server.
void InitializeUUID(const std::vector< uint8_t > &uuid)
Initialize the DUID-EN for a client or server.
void Initialize(Type duidType, Ptr< Node > node, uint32_t enIdentifierLength)
Initialize a DUID.
std::vector< uint8_t > GetIdentifier() const
Return the identifier of the node.
uint32_t GetSerializedSize() const
Get the DUID serialized size.
Type GetDuidType() const
Get the DUID type.
friend std::ostream & operator<<(std::ostream &os, const Duid &duid)
Stream output operator.
std::vector< uint8_t > m_blob
DUID data, content depending on the DUID type.
void InitializeLLT(Ptr< Node > node)
Initialize the DUID-LLT for a client or server.
Address FindSuitableNetDeviceAddress(Ptr< Node > node)
Find a suitable NetDevice address to create a DUID-LL or DUID-LLT.
Smart pointer class similar to boost::intrusive_ptr.
Every class exported by the ns3 library is enclosed in the ns3 namespace.