A Discrete-Event Network Simulator
API
wimax-tlv.h
Go to the documentation of this file.
1 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
2 /*
3  * Copyright (c) 2009 INRIA, UDcast
4  *
5  * This program is free software; you can redistribute it and/or modify
6  * it under the terms of the GNU General Public License version 2 as
7  * published by the Free Software Foundation;
8  *
9  * This program is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12  * GNU General Public License for more details.
13  *
14  * You should have received a copy of the GNU General Public License
15  * along with this program; if not, write to the Free Software
16  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17  *
18  * Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
19  *
20  */
21 
22 #ifndef WIMAX_TLV_H
23 #define WIMAX_TLV_H
24 
25 #define WIMAX_TLV_EXTENDED_LENGTH_MASK 0x80
26 
27 #include "ns3/ipv4-address.h"
28 #include <cstdlib>
29 #include "ns3/log.h"
30 #include "ns3/assert.h"
31 #include "ns3/uinteger.h"
32 #include "ns3/header.h"
33 #include <vector>
34 
35 namespace ns3 {
36 
43 class TlvValue
44 {
45 public:
46  virtual ~TlvValue ()
47  {
48  }
53  virtual uint32_t GetSerializedSize (void) const = 0;
58  virtual void Serialize (Buffer::Iterator start) const = 0;
65  virtual uint32_t Deserialize (Buffer::Iterator start, uint64_t valueLen ) = 0;
70  virtual TlvValue * Copy (void) const = 0;
71 private:
72 };
73 
74 
75 // =============================================================================
83 class Tlv : public Header
84 {
85 public:
88  {
89  HMAC_TUPLE = 149,
96  };
104  Tlv (uint8_t type, uint64_t length, const TlvValue & value);
105  Tlv (void);
106  ~Tlv (void);
111  static TypeId GetTypeId (void);
112  virtual TypeId GetInstanceTypeId (void) const;
113  virtual void Print (std::ostream &os) const;
114  virtual uint32_t GetSerializedSize (void) const;
115  virtual void Serialize (Buffer::Iterator start) const;
116  virtual uint32_t Deserialize (Buffer::Iterator start);
121  uint8_t GetSizeOfLen (void) const;
126  uint8_t GetType (void) const;
131  uint64_t GetLength (void) const;
136  TlvValue* PeekValue (void);
141  Tlv * Copy (void) const;
146  TlvValue * CopyValue (void) const;
152  Tlv &operator = (Tlv const& o);
157  Tlv (const Tlv & tlv);
158 
159 private:
160  uint8_t m_type;
161  uint64_t m_length;
163 };
164 
165 // ==============================================================================
170 class U8TlvValue : public TlvValue
171 {
172 public:
178  U8TlvValue (uint8_t value);
179  U8TlvValue ();
180  ~U8TlvValue (void);
181  virtual uint32_t GetSerializedSize (void) const;
182  virtual void Serialize (Buffer::Iterator start) const;
183  virtual uint32_t Deserialize (Buffer::Iterator start,uint64_t valueLen);
194  uint8_t GetValue (void) const;
199  U8TlvValue * Copy (void) const;
200 private:
201  uint8_t m_value;
202 };
203 
204 // ==============================================================================
209 class U16TlvValue : public TlvValue
210 {
211 public:
217  U16TlvValue (uint16_t value);
218  U16TlvValue ();
219  ~U16TlvValue (void);
220  virtual uint32_t GetSerializedSize (void) const;
221  virtual void Serialize (Buffer::Iterator start) const;
222  virtual uint32_t Deserialize (Buffer::Iterator start,uint64_t valueLen);
233  uint16_t GetValue (void) const;
238  virtual U16TlvValue * Copy (void) const;
239 private:
240  uint16_t m_value;
241 };
242 
243 // ==============================================================================
248 class U32TlvValue : public TlvValue
249 {
250 public:
256  U32TlvValue (uint32_t value);
257  U32TlvValue ();
258  ~U32TlvValue (void);
259 
260  virtual uint32_t GetSerializedSize (void) const;
261  virtual void Serialize (Buffer::Iterator start) const;
262  virtual uint32_t Deserialize (Buffer::Iterator start, uint64_t valueLen);
273  uint32_t GetValue (void) const;
278  virtual U32TlvValue * Copy (void) const;
279 private:
280  uint32_t m_value;
281 };
282 
283 // ==============================================================================
284 
289 class VectorTlvValue : public TlvValue
290 {
291 public:
293  typedef std::vector<Tlv*>::const_iterator Iterator;
294  VectorTlvValue (void);
295  ~VectorTlvValue (void);
296  virtual uint32_t GetSerializedSize (void) const;
297  virtual void Serialize (Buffer::Iterator start) const;
298  virtual uint32_t Deserialize (Buffer::Iterator start, uint64_t valueLength) = 0;
303  Iterator Begin () const;
308  Iterator End () const;
313  void Add (const Tlv & val);
318  virtual VectorTlvValue * Copy (void) const = 0;
319 private:
320  std::vector<Tlv*> * m_tlvList;
321 };
322 
323 // ==============================================================================
329 {
330 
331 public:
333  enum Type
334  {
335  SFID = 1,
336  CID = 2,
350  SDU_Size = 16,
361  reserved2 = 27,
363  IPV4_CS_Parameters = 100
364  };
365  SfVectorTlvValue ();
366  virtual uint32_t Deserialize (Buffer::Iterator start, uint64_t valueLength);
367  virtual SfVectorTlvValue * Copy (void) const;
368 
369 };
370 // ==============================================================================
371 
377 {
378 public:
380  enum Type
381  {
384  };
386  virtual uint32_t Deserialize (Buffer::Iterator start, uint64_t valueLength);
387  virtual CsParamVectorTlvValue * Copy (void) const;
388 private:
389 };
390 
391 // ==============================================================================
392 
398 {
399 public:
402  {
403  Priority = 1,
404  ToS = 2,
405  Protocol = 3,
406  IP_src = 4,
407  IP_dst = 5,
408  Port_src = 6,
409  Port_dst = 7,
410  Index = 14,
411  };
413  virtual uint32_t Deserialize (Buffer::Iterator start, uint64_t valueLength);
414  virtual ClassificationRuleVectorTlvValue * Copy (void) const;
415 private:
416 };
417 
418 // ==============================================================================
423 class TosTlvValue : public TlvValue
424 {
425 public:
426  TosTlvValue ();
434  TosTlvValue (uint8_t low, uint8_t high, uint8_t mask);
435  ~TosTlvValue ();
436  virtual uint32_t GetSerializedSize (void) const;
437  virtual void Serialize (Buffer::Iterator start) const;
438  virtual uint32_t Deserialize (Buffer::Iterator start, uint64_t valueLength);
443  uint8_t GetLow (void) const;
448  uint8_t GetHigh (void) const;
453  uint8_t GetMask (void) const;
458  virtual TosTlvValue * Copy () const;
459 private:
460  uint8_t m_low;
461  uint8_t m_high;
462  uint8_t m_mask;
463 };
464 
465 // ==============================================================================
471 {
472 public:
474  struct PortRange
475  {
476  uint16_t PortLow;
477  uint16_t PortHigh;
478  };
480  typedef std::vector<struct PortRange>::const_iterator Iterator;
483  virtual uint32_t GetSerializedSize (void) const;
484  virtual void Serialize (Buffer::Iterator start) const;
485  virtual uint32_t Deserialize (Buffer::Iterator start, uint64_t valueLength);
491  void Add (uint16_t portLow, uint16_t portHigh);
496  Iterator Begin () const;
501  Iterator End () const;
506  virtual PortRangeTlvValue * Copy (void) const;
507 private:
508  std::vector<struct PortRange> * m_portRange;
509 };
510 
511 // ==============================================================================
517 {
518 public:
519  ProtocolTlvValue ();
522  typedef std::vector<uint8_t>::const_iterator Iterator;
523  virtual uint32_t GetSerializedSize (void) const;
524  virtual void Serialize (Buffer::Iterator start) const;
525  virtual uint32_t Deserialize (Buffer::Iterator start, uint64_t valueLength);
530  void Add (uint8_t protocol);
535  Iterator Begin () const;
540  Iterator End () const;
545  virtual ProtocolTlvValue * Copy (void) const;
546 private:
547  std::vector<uint8_t> * m_protocol;
548 };
549 
550 // ==============================================================================
551 
557 {
558 public:
560  struct ipv4Addr
561  {
564  };
566  typedef std::vector<struct ipv4Addr>::const_iterator Iterator;
569  virtual uint32_t GetSerializedSize (void) const;
570  virtual void Serialize (Buffer::Iterator start) const;
571  virtual uint32_t Deserialize (Buffer::Iterator start, uint64_t valueLength);
577  void Add (Ipv4Address address, Ipv4Mask Mask);
582  Iterator Begin () const;
587  Iterator End () const;
588  virtual Ipv4AddressTlvValue * Copy () const;
589 private:
590  std::vector<struct ipv4Addr> * m_ipv4Addr;
591 };
592 
593 }
594 
595 #endif /* WIMAX_TLV_H */
ns3::SfVectorTlvValue::Maximum_Latency
@ Maximum_Latency
Definition: wimax-tlv.h:348
ns3::TypeId
a unique identifier for an interface.
Definition: type-id.h:59
ns3::TosTlvValue
TosTlvValue class.
Definition: wimax-tlv.h:424
ns3::SfVectorTlvValue::ARQ_RETRY_TIMEOUT_Transmitter_Delay
@ ARQ_RETRY_TIMEOUT_Transmitter_Delay
Definition: wimax-tlv.h:354
ns3::Tlv::CopyValue
TlvValue * CopyValue(void) const
Copy TlvValue.
Definition: wimax-tlv.cc:76
ns3::Ipv4AddressTlvValue::GetSerializedSize
virtual uint32_t GetSerializedSize(void) const
Get serialized size in bytes.
Definition: wimax-tlv.cc:1038
ns3::ClassificationRuleVectorTlvValue::ClassificationRuleTlvType
ClassificationRuleTlvType
ClassificationRuleTlvType enumeration.
Definition: wimax-tlv.h:402
ns3::U32TlvValue::Deserialize
virtual uint32_t Deserialize(Buffer::Iterator start, uint64_t valueLen)
Deserialize from a buffer.
Definition: wimax-tlv.cc:623
ns3::U32TlvValue::~U32TlvValue
~U32TlvValue(void)
Definition: wimax-tlv.cc:609
ns3::Tlv::Serialize
virtual void Serialize(Buffer::Iterator start) const
Definition: wimax-tlv.cc:127
ns3::U8TlvValue::GetValue
uint8_t GetValue(void) const
Get value.
Definition: wimax-tlv.cc:537
ns3::Tlv::~Tlv
~Tlv(void)
Definition: wimax-tlv.cc:66
ns3::Tlv::CommonTypes
CommonTypes
CommonTypes enumeration.
Definition: wimax-tlv.h:88
ns3::Tlv::Tlv
Tlv(void)
Definition: wimax-tlv.cc:59
ns3::Tlv::UPLINK_SERVICE_FLOW
@ UPLINK_SERVICE_FLOW
Definition: wimax-tlv.h:93
ns3::U32TlvValue::Serialize
virtual void Serialize(Buffer::Iterator start) const
Serialize to a buffer.
Definition: wimax-tlv.cc:618
ns3::VectorTlvValue::m_tlvList
std::vector< Tlv * > * m_tlvList
tlv list
Definition: wimax-tlv.h:320
ns3::U16TlvValue::~U16TlvValue
~U16TlvValue(void)
Definition: wimax-tlv.cc:559
ns3::ClassificationRuleVectorTlvValue::ToS
@ ToS
Definition: wimax-tlv.h:404
ns3
Every class exported by the ns3 library is enclosed in the ns3 namespace.
ns3::VectorTlvValue
this class is used to implement a vector of values in one tlv value field
Definition: wimax-tlv.h:290
ns3::U32TlvValue::GetSerializedSize
virtual uint32_t GetSerializedSize(void) const
Get serialized size in bytes.
Definition: wimax-tlv.cc:613
ns3::Ipv4AddressTlvValue::~Ipv4AddressTlvValue
~Ipv4AddressTlvValue()
Definition: wimax-tlv.cc:1027
ns3::SfVectorTlvValue::ARQ_BLOCK_LIFETIME
@ ARQ_BLOCK_LIFETIME
Definition: wimax-tlv.h:356
ns3::ClassificationRuleVectorTlvValue::IP_src
@ IP_src
Definition: wimax-tlv.h:406
ns3::SfVectorTlvValue::SFID
@ SFID
Definition: wimax-tlv.h:335
ns3::U8TlvValue::~U8TlvValue
~U8TlvValue(void)
Definition: wimax-tlv.cc:510
ns3::VectorTlvValue::GetSerializedSize
virtual uint32_t GetSerializedSize(void) const
Get serialized size in bytes.
Definition: wimax-tlv.cc:251
ns3::U8TlvValue::Copy
U8TlvValue * Copy(void) const
Copy.
Definition: wimax-tlv.cc:543
ns3::SfVectorTlvValue::ARQ_DELIVER_IN_ORDER
@ ARQ_DELIVER_IN_ORDER
Definition: wimax-tlv.h:358
ns3::PortRangeTlvValue::m_portRange
std::vector< struct PortRange > * m_portRange
port range
Definition: wimax-tlv.h:508
ns3::VectorTlvValue::Copy
virtual VectorTlvValue * Copy(void) const =0
Copy.
ns3::SfVectorTlvValue::ARQ_Enable
@ ARQ_Enable
Definition: wimax-tlv.h:352
ns3::ProtocolTlvValue::Copy
virtual ProtocolTlvValue * Copy(void) const
Copy.
Definition: wimax-tlv.cc:1010
ns3::Tlv::m_type
uint8_t m_type
type
Definition: wimax-tlv.h:160
ns3::TlvValue::~TlvValue
virtual ~TlvValue()
Definition: wimax-tlv.h:46
ns3::ProtocolTlvValue::GetSerializedSize
virtual uint32_t GetSerializedSize(void) const
Get serialized size in bytes.
Definition: wimax-tlv.cc:965
ns3::TosTlvValue::GetSerializedSize
virtual uint32_t GetSerializedSize(void) const
Get serialized size in bytes.
Definition: wimax-tlv.cc:838
ns3::Ipv4Address
Ipv4 addresses are stored in host order in this class.
Definition: ipv4-address.h:41
ns3::SfVectorTlvValue::Target_SAID
@ Target_SAID
Definition: wimax-tlv.h:351
ns3::TosTlvValue::~TosTlvValue
~TosTlvValue()
Definition: wimax-tlv.cc:833
ns3::VectorTlvValue::Iterator
std::vector< Tlv * >::const_iterator Iterator
TLV vector iterator typedef.
Definition: wimax-tlv.h:293
ns3::U16TlvValue::GetSerializedSize
virtual uint32_t GetSerializedSize(void) const
Get serialized size in bytes.
Definition: wimax-tlv.cc:564
ns3::U8TlvValue::U8TlvValue
U8TlvValue()
Definition: wimax-tlv.cc:505
ns3::SfVectorTlvValue::SDU_Size
@ SDU_Size
Definition: wimax-tlv.h:350
ns3::U32TlvValue::U32TlvValue
U32TlvValue()
Definition: wimax-tlv.cc:604
ns3::SfVectorTlvValue::ARQ_PURGE_TIMEOUT
@ ARQ_PURGE_TIMEOUT
Definition: wimax-tlv.h:359
ns3::SfVectorTlvValue::Service_Class_Name
@ Service_Class_Name
Definition: wimax-tlv.h:337
ns3::U8TlvValue::GetSerializedSize
virtual uint32_t GetSerializedSize(void) const
Get serialized size in bytes.
Definition: wimax-tlv.cc:514
ns3::Tlv::HMAC_TUPLE
@ HMAC_TUPLE
Definition: wimax-tlv.h:89
ns3::SfVectorTlvValue::reserved1
@ reserved1
Definition: wimax-tlv.h:338
ns3::Tlv::GetType
uint8_t GetType(void) const
Get type value.
Definition: wimax-tlv.cc:214
ns3::Ipv4AddressTlvValue::ipv4Addr::Mask
Ipv4Mask Mask
mask
Definition: wimax-tlv.h:563
ns3::SfVectorTlvValue::Service_Flow_Scheduling_Type
@ Service_Flow_Scheduling_Type
Definition: wimax-tlv.h:345
ns3::TosTlvValue::m_low
uint8_t m_low
low
Definition: wimax-tlv.h:460
ns3::CsParamVectorTlvValue::Deserialize
virtual uint32_t Deserialize(Buffer::Iterator start, uint64_t valueLength)
Deserialize from a buffer.
Definition: wimax-tlv.cc:648
ns3::Tlv::GetSerializedSize
virtual uint32_t GetSerializedSize(void) const
Definition: wimax-tlv.cc:103
ns3::ClassificationRuleVectorTlvValue::Port_src
@ Port_src
Definition: wimax-tlv.h:408
ns3::ProtocolTlvValue::ProtocolTlvValue
ProtocolTlvValue()
Definition: wimax-tlv.cc:950
ns3::TosTlvValue::Copy
virtual TosTlvValue * Copy() const
Copy.
Definition: wimax-tlv.cc:874
ns3::VectorTlvValue::Begin
Iterator Begin() const
Begin iterator.
Definition: wimax-tlv.cc:272
visualizer.core.start
def start()
Definition: core.py:1855
ns3::SfVectorTlvValue::CS_Specification
@ CS_Specification
Definition: wimax-tlv.h:362
ns3::TlvValue::Serialize
virtual void Serialize(Buffer::Iterator start) const =0
Serialize to a buffer.
ns3::U32TlvValue::GetValue
uint32_t GetValue(void) const
Get value.
Definition: wimax-tlv.cc:635
ns3::U16TlvValue::Serialize
virtual void Serialize(Buffer::Iterator start) const
Serialize to a buffer.
Definition: wimax-tlv.cc:569
ns3::Ipv4AddressTlvValue::End
Iterator End() const
End iterator.
Definition: wimax-tlv.cc:1083
ns3::U32TlvValue
U32TlvValue class.
Definition: wimax-tlv.h:249
ns3::PortRangeTlvValue::PortRangeTlvValue
PortRangeTlvValue()
Definition: wimax-tlv.cc:880
ns3::CsParamVectorTlvValue
this class implements the convergence sub-layer descriptor as a tlv vector
Definition: wimax-tlv.h:377
ns3::Tlv::Print
virtual void Print(std::ostream &os) const
Definition: wimax-tlv.cc:47
ns3::TlvValue::Copy
virtual TlvValue * Copy(void) const =0
Copy function.
ns3::ProtocolTlvValue::Add
void Add(uint8_t protocol)
Add protocol number.
Definition: wimax-tlv.cc:992
ns3::TosTlvValue::GetHigh
uint8_t GetHigh(void) const
Get high part.
Definition: wimax-tlv.cc:863
ns3::TlvValue
The value field of a tlv can take different values (uint8_t, uint16, vector, ...).
Definition: wimax-tlv.h:44
ns3::SfVectorTlvValue::Traffic_Priority
@ Traffic_Priority
Definition: wimax-tlv.h:340
ns3::ClassificationRuleVectorTlvValue
this class implements the classifier descriptor as a tlv vector
Definition: wimax-tlv.h:398
ns3::Ipv4AddressTlvValue::Ipv4AddressTlvValue
Ipv4AddressTlvValue()
Definition: wimax-tlv.cc:1022
ns3::Ipv4AddressTlvValue::ipv4Addr::Address
Ipv4Address Address
address
Definition: wimax-tlv.h:562
ns3::CsParamVectorTlvValue::Classifier_DSC_Action
@ Classifier_DSC_Action
Definition: wimax-tlv.h:382
ns3::SfVectorTlvValue::ARQ_RETRY_TIMEOUT_Receiver_Delay
@ ARQ_RETRY_TIMEOUT_Receiver_Delay
Definition: wimax-tlv.h:355
ns3::Ipv4AddressTlvValue::Iterator
std::vector< struct ipv4Addr >::const_iterator Iterator
IPv4 address vector iterator typedef.
Definition: wimax-tlv.h:566
ns3::SfVectorTlvValue::Minimum_Reserved_Traffic_Rate
@ Minimum_Reserved_Traffic_Rate
Definition: wimax-tlv.h:343
ns3::U16TlvValue::Deserialize
virtual uint32_t Deserialize(Buffer::Iterator start, uint64_t valueLen)
Deserialize from a buffer.
Definition: wimax-tlv.cc:574
ns3::ClassificationRuleVectorTlvValue::Copy
virtual ClassificationRuleVectorTlvValue * Copy(void) const
Copy.
Definition: wimax-tlv.cc:719
ns3::Ipv4AddressTlvValue::m_ipv4Addr
std::vector< struct ipv4Addr > * m_ipv4Addr
ipv4 addr
Definition: wimax-tlv.h:590
ns3::U16TlvValue::GetValue
uint16_t GetValue(void) const
Get value.
Definition: wimax-tlv.cc:587
ns3::VectorTlvValue::VectorTlvValue
VectorTlvValue(void)
Definition: wimax-tlv.cc:235
ns3::PortRangeTlvValue::~PortRangeTlvValue
~PortRangeTlvValue()
Definition: wimax-tlv.cc:884
ns3::Tlv::DOWNLINK_SERVICE_FLOW
@ DOWNLINK_SERVICE_FLOW
Definition: wimax-tlv.h:92
ns3::TosTlvValue::Deserialize
virtual uint32_t Deserialize(Buffer::Iterator start, uint64_t valueLength)
Deserialize from a buffer.
Definition: wimax-tlv.cc:850
ns3::Ipv4AddressTlvValue::Begin
Iterator Begin() const
Begin iterator.
Definition: wimax-tlv.cc:1077
ns3::Ipv4AddressTlvValue::Deserialize
virtual uint32_t Deserialize(Buffer::Iterator start, uint64_t valueLength)
Deserialize from a buffer.
Definition: wimax-tlv.cc:1054
ns3::ProtocolTlvValue::~ProtocolTlvValue
~ProtocolTlvValue()
Definition: wimax-tlv.cc:954
ns3::TosTlvValue::GetMask
uint8_t GetMask(void) const
Get the mask.
Definition: wimax-tlv.cc:868
ns3::SfVectorTlvValue::Tolerated_Jitter
@ Tolerated_Jitter
Definition: wimax-tlv.h:347
ns3::SfVectorTlvValue::ARQ_SYNC_LOSS
@ ARQ_SYNC_LOSS
Definition: wimax-tlv.h:357
ns3::PortRangeTlvValue::Deserialize
virtual uint32_t Deserialize(Buffer::Iterator start, uint64_t valueLength)
Deserialize from a buffer.
Definition: wimax-tlv.cc:905
ns3::CsParamVectorTlvValue::CsParamVectorTlvValue
CsParamVectorTlvValue()
Definition: wimax-tlv.cc:696
ns3::VectorTlvValue::Add
void Add(const Tlv &val)
Add a TLV.
Definition: wimax-tlv.cc:284
first.address
address
Definition: first.py:44
ns3::SfVectorTlvValue::Copy
virtual SfVectorTlvValue * Copy(void) const
Copy.
Definition: wimax-tlv.cc:296
ns3::ClassificationRuleVectorTlvValue::Protocol
@ Protocol
Definition: wimax-tlv.h:405
ns3::PortRangeTlvValue::PortRange
PortRange structure.
Definition: wimax-tlv.h:475
ns3::U32TlvValue::Copy
virtual U32TlvValue * Copy(void) const
Copy.
Definition: wimax-tlv.cc:641
ns3::U32TlvValue::m_value
uint32_t m_value
value
Definition: wimax-tlv.h:280
ns3::Header
Protocol header serialization and deserialization.
Definition: header.h:43
ns3::ProtocolTlvValue::Serialize
virtual void Serialize(Buffer::Iterator start) const
Serialize to a buffer.
Definition: wimax-tlv.cc:971
ns3::SfVectorTlvValue::SfVectorTlvValue
SfVectorTlvValue()
Definition: wimax-tlv.cc:290
ns3::SfVectorTlvValue::CID
@ CID
Definition: wimax-tlv.h:336
ns3::U8TlvValue
U8TlvValue class.
Definition: wimax-tlv.h:171
ns3::Tlv::GetTypeId
static TypeId GetTypeId(void)
Register this type.
Definition: wimax-tlv.cc:32
ns3::U8TlvValue::Serialize
virtual void Serialize(Buffer::Iterator start) const
Serialize to a buffer.
Definition: wimax-tlv.cc:519
ns3::Tlv::m_length
uint64_t m_length
length
Definition: wimax-tlv.h:161
ns3::Tlv
This class implements the Type-Len-Value structure channel encodings as described by "IEEE Standard f...
Definition: wimax-tlv.h:84
ns3::Tlv::GetLength
uint64_t GetLength(void) const
Get length value.
Definition: wimax-tlv.cc:219
ns3::SfVectorTlvValue::Type
Type
Type enumeration.
Definition: wimax-tlv.h:334
ns3::Header::Deserialize
virtual uint32_t Deserialize(Buffer::Iterator start)=0
Deserialize the object from a buffer iterator.
ns3::ClassificationRuleVectorTlvValue::Port_dst
@ Port_dst
Definition: wimax-tlv.h:409
ns3::SfVectorTlvValue::Maximum_Traffic_Burst
@ Maximum_Traffic_Burst
Definition: wimax-tlv.h:342
ns3::VectorTlvValue::Deserialize
virtual uint32_t Deserialize(Buffer::Iterator start, uint64_t valueLength)=0
Deserialize from a buffer.
ns3::ProtocolTlvValue::End
Iterator End() const
End iterator.
Definition: wimax-tlv.cc:1004
ns3::SfVectorTlvValue
SfVectorTlvValue class.
Definition: wimax-tlv.h:329
ns3::SfVectorTlvValue::Minimum_Tolerable_Traffic_Rate
@ Minimum_Tolerable_Traffic_Rate
Definition: wimax-tlv.h:344
ns3::TosTlvValue::Serialize
virtual void Serialize(Buffer::Iterator start) const
Serialize to a buffer.
Definition: wimax-tlv.cc:843
ns3::ClassificationRuleVectorTlvValue::Deserialize
virtual uint32_t Deserialize(Buffer::Iterator start, uint64_t valueLength)
Deserialize from a buffer.
Definition: wimax-tlv.cc:730
ns3::Tlv::m_value
TlvValue * m_value
value
Definition: wimax-tlv.h:162
ns3::Ipv4AddressTlvValue
Ipv4AddressTlvValue class.
Definition: wimax-tlv.h:557
ns3::Tlv::GetSizeOfLen
uint8_t GetSizeOfLen(void) const
Get size of length field.
Definition: wimax-tlv.cc:109
ns3::Buffer::Iterator
iterator in a Buffer instance
Definition: buffer.h:99
ns3::U16TlvValue::Copy
virtual U16TlvValue * Copy(void) const
Copy.
Definition: wimax-tlv.cc:593
ns3::PortRangeTlvValue::End
Iterator End() const
End iterator.
Definition: wimax-tlv.cc:932
ns3::U16TlvValue
U16TlvValue class.
Definition: wimax-tlv.h:210
ns3::SfVectorTlvValue::QoS_Parameter_Set_Type
@ QoS_Parameter_Set_Type
Definition: wimax-tlv.h:339
ns3::Tlv::CURRENT_TRANSMIT_POWER
@ CURRENT_TRANSMIT_POWER
Definition: wimax-tlv.h:91
ns3::ClassificationRuleVectorTlvValue::ClassificationRuleVectorTlvValue
ClassificationRuleVectorTlvValue()
Definition: wimax-tlv.cc:713
ns3::PortRangeTlvValue::Add
void Add(uint16_t portLow, uint16_t portHigh)
Add a range.
Definition: wimax-tlv.cc:918
ns3::PortRangeTlvValue::Begin
Iterator Begin() const
Begin iterator.
Definition: wimax-tlv.cc:926
ns3::VectorTlvValue::Serialize
virtual void Serialize(Buffer::Iterator start) const
Serialize to a buffer.
Definition: wimax-tlv.cc:262
ns3::ProtocolTlvValue::Iterator
std::vector< uint8_t >::const_iterator Iterator
Iterator typedef.
Definition: wimax-tlv.h:522
ns3::U16TlvValue::m_value
uint16_t m_value
value
Definition: wimax-tlv.h:240
ns3::SfVectorTlvValue::Maximum_Sustained_Traffic_Rate
@ Maximum_Sustained_Traffic_Rate
Definition: wimax-tlv.h:341
ns3::ClassificationRuleVectorTlvValue::IP_dst
@ IP_dst
Definition: wimax-tlv.h:407
ns3::PortRangeTlvValue
PortRangeTlvValue class.
Definition: wimax-tlv.h:471
ns3::Ipv4AddressTlvValue::Add
void Add(Ipv4Address address, Ipv4Mask Mask)
Add IPv4 address and mask.
Definition: wimax-tlv.cc:1068
ns3::TosTlvValue::TosTlvValue
TosTlvValue()
Definition: wimax-tlv.cc:821
ns3::PortRangeTlvValue::Serialize
virtual void Serialize(Buffer::Iterator start) const
Serialize to a buffer.
Definition: wimax-tlv.cc:896
ns3::SfVectorTlvValue::Fixed_length_versus_Variable_length_SDU_Indicator
@ Fixed_length_versus_Variable_length_SDU_Indicator
Definition: wimax-tlv.h:349
ns3::TosTlvValue::m_high
uint8_t m_high
high
Definition: wimax-tlv.h:461
ns3::ClassificationRuleVectorTlvValue::Priority
@ Priority
Definition: wimax-tlv.h:403
ns3::TlvValue::GetSerializedSize
virtual uint32_t GetSerializedSize(void) const =0
Get serialized size in bytes.
ns3::TosTlvValue::m_mask
uint8_t m_mask
mask
Definition: wimax-tlv.h:462
ns3::Ipv4AddressTlvValue::Copy
virtual Ipv4AddressTlvValue * Copy() const
Copy function.
Definition: wimax-tlv.cc:1089
ns3::Tlv::PeekValue
TlvValue * PeekValue(void)
Peek value.
Definition: wimax-tlv.cc:224
ns3::PortRangeTlvValue::Copy
virtual PortRangeTlvValue * Copy(void) const
Copy.
Definition: wimax-tlv.cc:938
ns3::Tlv::MAC_VERSION_ENCODING
@ MAC_VERSION_ENCODING
Definition: wimax-tlv.h:90
ns3::TlvValue::Deserialize
virtual uint32_t Deserialize(Buffer::Iterator start, uint64_t valueLen)=0
Deserialize from a buffer.
ns3::Ipv4Mask
a class to represent an Ipv4 address mask
Definition: ipv4-address.h:256
ns3::ProtocolTlvValue
ProtocolTlvValue class.
Definition: wimax-tlv.h:517
ns3::PortRangeTlvValue::PortRange::PortHigh
uint16_t PortHigh
high
Definition: wimax-tlv.h:477
ns3::Ipv4AddressTlvValue::ipv4Addr
ipv4Addr structure
Definition: wimax-tlv.h:561
ns3::PortRangeTlvValue::GetSerializedSize
virtual uint32_t GetSerializedSize(void) const
Get serialized size in bytes.
Definition: wimax-tlv.cc:891
ns3::TosTlvValue::GetLow
uint8_t GetLow(void) const
Get low part.
Definition: wimax-tlv.cc:858
ns3::Tlv::GetInstanceTypeId
virtual TypeId GetInstanceTypeId(void) const
Get the most derived TypeId for this Object.
Definition: wimax-tlv.cc:42
ns3::ProtocolTlvValue::Deserialize
virtual uint32_t Deserialize(Buffer::Iterator start, uint64_t valueLength)
Deserialize from a buffer.
Definition: wimax-tlv.cc:980
ns3::Tlv::operator=
Tlv & operator=(Tlv const &o)
assignment operator
Definition: wimax-tlv.cc:89
ns3::CsParamVectorTlvValue::Packet_Classification_Rule
@ Packet_Classification_Rule
Definition: wimax-tlv.h:383
ns3::Tlv::Copy
Tlv * Copy(void) const
Copy TLV.
Definition: wimax-tlv.cc:230
ns3::PortRangeTlvValue::Iterator
std::vector< struct PortRange >::const_iterator Iterator
PortRange vector iterator typedef.
Definition: wimax-tlv.h:480
ns3::PortRangeTlvValue::PortRange::PortLow
uint16_t PortLow
low
Definition: wimax-tlv.h:476
ns3::SfVectorTlvValue::ARQ_WINDOW_SIZE
@ ARQ_WINDOW_SIZE
Definition: wimax-tlv.h:353
ns3::SfVectorTlvValue::IPV4_CS_Parameters
@ IPV4_CS_Parameters
Definition: wimax-tlv.h:363
ns3::U16TlvValue::U16TlvValue
U16TlvValue()
Definition: wimax-tlv.cc:554
ns3::U8TlvValue::Deserialize
virtual uint32_t Deserialize(Buffer::Iterator start, uint64_t valueLen)
Deserialize from a buffer.
Definition: wimax-tlv.cc:524
ns3::SfVectorTlvValue::Deserialize
virtual uint32_t Deserialize(Buffer::Iterator start, uint64_t valueLength)
Deserialize from a buffer.
Definition: wimax-tlv.cc:307
ns3::SfVectorTlvValue::ARQ_BLOCK_SIZE
@ ARQ_BLOCK_SIZE
Definition: wimax-tlv.h:360
ns3::VectorTlvValue::End
Iterator End() const
End iterator.
Definition: wimax-tlv.cc:278
ns3::U8TlvValue::m_value
uint8_t m_value
value
Definition: wimax-tlv.h:201
ns3::SfVectorTlvValue::reserved2
@ reserved2
Definition: wimax-tlv.h:361
ns3::Tlv::VENDOR_SPECIFIC_INFORMATION
@ VENDOR_SPECIFIC_INFORMATION
Definition: wimax-tlv.h:95
ns3::CsParamVectorTlvValue::Type
Type
Type enumeration.
Definition: wimax-tlv.h:381
ns3::VectorTlvValue::~VectorTlvValue
~VectorTlvValue(void)
Definition: wimax-tlv.cc:240
ns3::Tlv::VENDOR_ID_EMCODING
@ VENDOR_ID_EMCODING
Definition: wimax-tlv.h:94
ns3::SfVectorTlvValue::Request_Transmission_Policy
@ Request_Transmission_Policy
Definition: wimax-tlv.h:346
ns3::ProtocolTlvValue::m_protocol
std::vector< uint8_t > * m_protocol
protocol
Definition: wimax-tlv.h:547
ns3::Ipv4AddressTlvValue::Serialize
virtual void Serialize(Buffer::Iterator start) const
Serialize to a buffer.
Definition: wimax-tlv.cc:1044
ns3::ProtocolTlvValue::Begin
Iterator Begin() const
Begin iterator.
Definition: wimax-tlv.cc:998
ns3::ClassificationRuleVectorTlvValue::Index
@ Index
Definition: wimax-tlv.h:410
ns3::CsParamVectorTlvValue::Copy
virtual CsParamVectorTlvValue * Copy(void) const
Copy.
Definition: wimax-tlv.cc:702