13#define WIMAX_TLV_EXTENDED_LENGTH_MASK 0x80
15#include "ns3/assert.h"
16#include "ns3/header.h"
17#include "ns3/ipv4-address.h"
19#include "ns3/uinteger.h"
106 void Print(std::ostream& os)
const override;
289 typedef std::vector<Tlv*>::const_iterator
Iterator;
483 typedef std::vector<PortRange>::const_iterator
Iterator;
526 typedef std::vector<uint8_t>::const_iterator
Iterator;
534 void Add(uint8_t protocol);
572 typedef std::vector<Ipv4Addr>::const_iterator
Iterator;
iterator in a Buffer instance
this class implements the classifier descriptor as a tlv vector
ClassificationRuleVectorTlvValue()
ClassificationRuleVectorTlvValue * Copy() const override
Copy.
ClassificationRuleTlvType
ClassificationRuleTlvType enumeration.
uint32_t Deserialize(Buffer::Iterator start, uint64_t valueLength) override
Deserialize from a buffer.
this class implements the convergence sub-layer descriptor as a tlv vector
CsParamVectorTlvValue * Copy() const override
Copy.
@ Packet_Classification_Rule
uint32_t Deserialize(Buffer::Iterator start, uint64_t valueLength) override
Deserialize from a buffer.
Ipv4 addresses are stored in host order in this class.
Ipv4AddressTlvValue class.
Iterator End() const
End iterator.
std::vector< Ipv4Addr >::const_iterator Iterator
IPv4 address vector iterator typedef.
void Serialize(Buffer::Iterator start) const override
Serialize to a buffer.
void Add(Ipv4Address address, Ipv4Mask mask)
Add IPv4 address and mask.
std::vector< Ipv4Addr > * m_ipv4Addr
ipv4 addr
Ipv4AddressTlvValue * Copy() const override
Copy function.
uint32_t GetSerializedSize() const override
Get serialized size in bytes.
Iterator Begin() const
Begin iterator.
~Ipv4AddressTlvValue() override
uint32_t Deserialize(Buffer::Iterator start, uint64_t valueLength) override
Deserialize from a buffer.
a class to represent an Ipv4 address mask
uint32_t GetSerializedSize() const override
Get serialized size in bytes.
uint32_t Deserialize(Buffer::Iterator start, uint64_t valueLength) override
Deserialize from a buffer.
std::vector< PortRange > * m_portRange
port range
std::vector< PortRange >::const_iterator Iterator
PortRange vector iterator typedef.
Iterator End() const
End iterator.
void Serialize(Buffer::Iterator start) const override
Serialize to a buffer.
~PortRangeTlvValue() override
Iterator Begin() const
Begin iterator.
void Add(uint16_t portLow, uint16_t portHigh)
Add a range.
PortRangeTlvValue * Copy() const override
Copy.
~ProtocolTlvValue() override
std::vector< uint8_t > * m_protocol
protocol
void Add(uint8_t protocol)
Add protocol number.
Iterator Begin() const
Begin iterator.
uint32_t GetSerializedSize() const override
Get serialized size in bytes.
ProtocolTlvValue * Copy() const override
Copy.
std::vector< uint8_t >::const_iterator Iterator
Iterator typedef.
Iterator End() const
End iterator.
uint32_t Deserialize(Buffer::Iterator start, uint64_t valueLength) override
Deserialize from a buffer.
void Serialize(Buffer::Iterator start) const override
Serialize to a buffer.
uint32_t Deserialize(Buffer::Iterator start, uint64_t valueLength) override
Deserialize from a buffer.
@ Fixed_length_versus_Variable_length_SDU_Indicator
@ ARQ_RETRY_TIMEOUT_Transmitter_Delay
@ Maximum_Sustained_Traffic_Rate
@ Request_Transmission_Policy
@ ARQ_RETRY_TIMEOUT_Receiver_Delay
@ Minimum_Reserved_Traffic_Rate
@ Minimum_Tolerable_Traffic_Rate
@ Service_Flow_Scheduling_Type
SfVectorTlvValue * Copy() const override
Copy.
This class implements the Type-Len-Value structure channel encodings as described by "IEEE Standard f...
TlvValue * CopyValue() const
Copy TlvValue.
Tlv * Copy() const
Copy TLV.
uint8_t GetType() const
Get type value.
TypeId GetInstanceTypeId() const override
Get the most derived TypeId for this Object.
Tlv & operator=(const Tlv &o)
assignment operator
TlvValue * PeekValue()
Peek value.
static TypeId GetTypeId()
Register this type.
uint64_t GetLength() const
Get length value.
CommonTypes
CommonTypes enumeration.
@ VENDOR_SPECIFIC_INFORMATION
uint8_t GetSizeOfLen() const
Get size of length field.
void Print(std::ostream &os) const override
uint32_t GetSerializedSize() const override
void Serialize(Buffer::Iterator start) const override
uint32_t Deserialize(Buffer::Iterator start) override
The value field of a tlv can take different values (uint8_t, uint16, vector, ...).
virtual uint32_t Deserialize(Buffer::Iterator start, uint64_t valueLen)=0
Deserialize from a buffer.
virtual uint32_t GetSerializedSize() const =0
Get serialized size in bytes.
virtual TlvValue * Copy() const =0
Copy function.
virtual void Serialize(Buffer::Iterator start) const =0
Serialize to a buffer.
void Serialize(Buffer::Iterator start) const override
Serialize to a buffer.
uint8_t GetHigh() const
Get high part.
uint32_t GetSerializedSize() const override
Get serialized size in bytes.
uint8_t GetLow() const
Get low part.
uint8_t GetMask() const
Get the mask.
uint32_t Deserialize(Buffer::Iterator start, uint64_t valueLength) override
Deserialize from a buffer.
TosTlvValue * Copy() const override
Copy.
a unique identifier for an interface.
void Serialize(Buffer::Iterator start) const override
Serialize to a buffer.
U16TlvValue * Copy() const override
Copy.
uint32_t GetSerializedSize() const override
Get serialized size in bytes.
uint32_t Deserialize(Buffer::Iterator start, uint64_t valueLen) override
Deserialize from a buffer.
uint16_t GetValue() const
Get value.
uint32_t GetValue() const
Get value.
uint32_t GetSerializedSize() const override
Get serialized size in bytes.
void Serialize(Buffer::Iterator start) const override
Serialize to a buffer.
U32TlvValue * Copy() const override
Copy.
uint32_t Deserialize(Buffer::Iterator start, uint64_t valueLen) override
Deserialize from a buffer.
uint32_t Deserialize(Buffer::Iterator start, uint64_t valueLen) override
Deserialize from a buffer.
uint8_t GetValue() const
Get value.
uint32_t GetSerializedSize() const override
Get serialized size in bytes.
void Serialize(Buffer::Iterator start) const override
Serialize to a buffer.
U8TlvValue * Copy() const override
Copy.
this class is used to implement a vector of values in one tlv value field
uint32_t GetSerializedSize() const override
Get serialized size in bytes.
~VectorTlvValue() override
std::vector< Tlv * >::const_iterator Iterator
TLV vector iterator typedef.
void Serialize(Buffer::Iterator start) const override
Serialize to a buffer.
VectorTlvValue * Copy() const override=0
Copy.
Iterator End() const
End iterator.
Iterator Begin() const
Begin iterator.
void Add(const Tlv &val)
Add a TLV.
std::vector< Tlv * > * m_tlvList
tlv list
uint32_t Deserialize(Buffer::Iterator start, uint64_t valueLength) override=0
Deserialize from a buffer.
Ptr< T > Create(Ts &&... args)
Create class instances by constructors with varying numbers of arguments and return them by Ptr.
Every class exported by the ns3 library is enclosed in the ns3 namespace.
static unsigned int value(char c)
Ipv4Address Address
address