25 #define WIMAX_TLV_EXTENDED_LENGTH_MASK 0x80
27 #include "ns3/ipv4-address.h"
30 #include "ns3/assert.h"
31 #include "ns3/uinteger.h"
32 #include "ns3/header.h"
48 virtual uint32_t GetSerializedSize (
void)
const = 0;
50 virtual uint32_t Deserialize (
Buffer::Iterator start, uint64_t valueLen ) = 0;
51 virtual TlvValue * Copy (
void)
const = 0;
70 MAC_VERSION_ENCODING = 148,
71 CURRENT_TRANSMIT_POWER = 147,
72 DOWNLINK_SERVICE_FLOW = 146,
73 UPLINK_SERVICE_FLOW = 145,
74 VENDOR_ID_EMCODING = 144,
75 VENDOR_SPECIFIC_INFORMATION = 143
77 Tlv (uint8_t type, uint64_t length,
const TlvValue & value);
81 virtual void Print (std::ostream &os)
const;
85 uint8_t GetSizeOfLen (
void)
const;
86 uint8_t GetType (
void)
const;
87 uint64_t GetLength (
void)
const;
89 Tlv * Copy (
void)
const;
91 Tlv &operator = (
Tlv const& o);
110 virtual uint32_t GetSerializedSize (
void)
const;
114 uint8_t GetValue (
void)
const;
130 virtual uint32_t GetSerializedSize (
void)
const;
134 uint16_t GetValue (
void)
const;
151 virtual uint32_t GetSerializedSize (
void)
const;
155 uint32_t GetValue (
void)
const;
170 typedef std::vector<Tlv*>::const_iterator Iterator;
173 virtual uint32_t GetSerializedSize (
void)
const;
175 virtual uint32_t Deserialize (
Buffer::Iterator start, uint64_t valueLength) = 0;
176 Iterator Begin ()
const;
177 Iterator End ()
const;
178 void Add (
const Tlv & val);
181 std::vector<Tlv*> * m_tlvList;
196 Service_Class_Name = 3,
198 QoS_Parameter_Set_Type = 5,
199 Traffic_Priority = 6,
200 Maximum_Sustained_Traffic_Rate = 7,
201 Maximum_Traffic_Burst = 8,
202 Minimum_Reserved_Traffic_Rate = 9,
203 Minimum_Tolerable_Traffic_Rate = 10,
204 Service_Flow_Scheduling_Type = 11,
205 Request_Transmission_Policy = 12,
206 Tolerated_Jitter = 13,
207 Maximum_Latency = 14,
208 Fixed_length_versus_Variable_length_SDU_Indicator = 15,
212 ARQ_WINDOW_SIZE = 19,
213 ARQ_RETRY_TIMEOUT_Transmitter_Delay = 20,
214 ARQ_RETRY_TIMEOUT_Receiver_Delay = 21,
215 ARQ_BLOCK_LIFETIME = 22,
217 ARQ_DELIVER_IN_ORDER = 24,
218 ARQ_PURGE_TIMEOUT = 25,
221 CS_Specification = 28,
222 IPV4_CS_Parameters = 100
225 virtual uint32_t Deserialize (
Buffer::Iterator start, uint64_t valueLength);
240 Classifier_DSC_Action = 1,
241 Packet_Classification_Rule = 3,
244 virtual uint32_t Deserialize (
Buffer::Iterator start, uint64_t valueLength);
258 enum ClassificationRuleTlvType
270 virtual uint32_t Deserialize (
Buffer::Iterator start, uint64_t valueLength);
285 virtual uint32_t GetSerializedSize (
void)
const;
287 virtual uint32_t Deserialize (
Buffer::Iterator start, uint64_t valueLength);
288 uint8_t GetLow (
void)
const;
289 uint8_t GetHigh (
void)
const;
290 uint8_t GetMask (
void)
const;
310 typedef std::vector<struct PortRange>::const_iterator Iterator;
313 virtual uint32_t GetSerializedSize (
void)
const;
315 virtual uint32_t Deserialize (
Buffer::Iterator start, uint64_t valueLength);
316 void Add (uint16_t portLow, uint16_t portHigh);
317 Iterator Begin ()
const;
318 Iterator End ()
const;
321 std::vector<struct PortRange> * m_portRange;
333 typedef std::vector<uint8_t>::const_iterator Iterator;
334 virtual uint32_t GetSerializedSize (
void)
const;
336 virtual uint32_t Deserialize (
Buffer::Iterator start, uint64_t valueLength);
337 void Add (uint8_t protiocol);
338 Iterator Begin ()
const;
339 Iterator End ()
const;
342 std::vector<uint8_t> * m_protocol;
358 typedef std::vector<struct ipv4Addr>::const_iterator Iterator;
361 virtual uint32_t GetSerializedSize (
void)
const;
363 virtual uint32_t Deserialize (
Buffer::Iterator start, uint64_t valueLength);
365 Iterator Begin ()
const;
366 Iterator End ()
const;
369 std::vector<struct ipv4Addr> * m_ipv4Addr;
a class to represent an Ipv4 address mask
virtual uint32_t Deserialize(Buffer::Iterator start)
this class implements the convergence sub-layer descriptor as a tlv vector
This class implements the Type-Len-Value structure channel encodings as described by "IEEE Standard f...
iterator in a Buffer instance
a polymophic address class
The value field of a tlv can take different values (uint8_t, uint16, vector...). This class is a virt...
virtual void Serialize(Buffer::Iterator start) const
virtual TypeId GetInstanceTypeId(void) const
virtual uint32_t GetSerializedSize(void) const
this class implements the classifier descriptor as a tlv vector
this class is used to implement a vector of values in one tlv value field
Ipv4 addresses are stored in host order in this class.
virtual void Print(std::ostream &os) const
a unique identifier for an interface.