A Discrete-Event Network Simulator
API
service-flow.h
Go to the documentation of this file.
1 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
2 /*
3  * Copyright (c) 2007,2008, 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  * Author: Jahanzeb Farooq <jahanzeb.farooq@sophia.inria.fr>
19  * Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
20  */
21 
22 #ifndef SERVICE_FLOW_H
23 #define SERVICE_FLOW_H
24 
25 #include <stdint.h>
26 #include "wimax-phy.h"
27 #include "wimax-connection.h"
28 #include "cs-parameters.h"
29 
30 namespace ns3 {
31 
32 class ServiceFlowRecord;
33 class WimaxConnection;
34 
40 {
41 public:
43  enum Direction
44  {
47  };
48 
50  enum Type
51  {
55  };
56 
59  {
66  SF_TYPE_ALL = 255
67  };
70  {
71  ATM = 99,
72  IPV4 = 100,
73  IPV6 = 101,
74  ETHERNET = 102,
75  VLAN = 103,
79  IPV6_OVER_VLAN = 107
80  };
83  {
91  };
92 
97  Tlv ToTlv (void) const;
102  ServiceFlow (Tlv tlv);
111  bool CheckClassifierMatch (Ipv4Address srcAddress,
112  Ipv4Address dstAddress,
113  uint16_t srcPort,
114  uint16_t dstPort,
115  uint8_t proto) const;
117  ServiceFlow ();
123  ServiceFlow (enum Direction direction);
129  ServiceFlow (const ServiceFlow & sf);
137  ServiceFlow (uint32_t sfid,
138  enum Direction direction,
139  Ptr<WimaxConnection> connection);
140  ~ServiceFlow (void);
146  ServiceFlow & operator = (ServiceFlow const& o);
147 
149  void InitValues (void);
154  void SetDirection (enum Direction direction);
159  enum Direction GetDirection (void) const;
165 
170  void SetType (enum Type type);
175  enum Type GetType (void) const;
180  void SetConnection (Ptr<WimaxConnection> connection);
186  Ptr<WimaxConnection> GetConnection (void) const;
187 
192  void SetIsEnabled (bool isEnabled);
197  bool GetIsEnabled (void) const;
198 
203  void SetRecord (ServiceFlowRecord *record);
208  ServiceFlowRecord* GetRecord (void) const;
209 
210  // wrapper functions
215  Ptr<WimaxMacQueue> GetQueue (void) const;
225  bool HasPackets (void) const;
231  bool HasPackets (MacHeaderType::HeaderType packetType) const;
232 
234  void CleanUpQueue (void);
235 
237  void PrintQoSParameters (void) const;
238 
243  char* GetSchedulingTypeStr (void) const;
244 
249  uint32_t GetSfid (void) const;
254  uint16_t GetCid (void) const;
259  std::string GetServiceClassName () const;
264  uint8_t GetQosParamSetType (void) const;
269  uint8_t GetTrafficPriority (void) const;
274  uint32_t GetMaxSustainedTrafficRate (void) const;
279  uint32_t GetMaxTrafficBurst (void) const;
284  uint32_t GetMinReservedTrafficRate (void) const;
289  uint32_t GetMinTolerableTrafficRate (void) const;
299  uint32_t GetRequestTransmissionPolicy (void) const;
304  uint32_t GetToleratedJitter (void) const;
309  uint32_t GetMaximumLatency (void) const;
314  uint8_t GetFixedversusVariableSduIndicator (void) const;
319  uint8_t GetSduSize (void) const;
324  uint16_t GetTargetSAID (void) const;
329  uint8_t GetArqEnable (void) const;
334  uint16_t GetArqWindowSize (void) const;
339  uint16_t GetArqRetryTimeoutTx (void) const;
344  uint16_t GetArqRetryTimeoutRx (void) const;
349  uint16_t GetArqBlockLifeTime (void) const;
354  uint16_t GetArqSyncLoss (void) const;
359  uint8_t GetArqDeliverInOrder (void) const;
364  uint16_t GetArqPurgeTimeout (void) const;
369  uint16_t GetArqBlockSize (void) const;
374  enum CsSpecification GetCsSpecification (void) const;
384  uint16_t GetUnsolicitedGrantInterval (void) const;
389  uint16_t GetUnsolicitedPollingInterval (void) const;
394  bool GetIsMulticast (void) const;
399  enum WimaxPhy::ModulationType GetModulation (void) const;
400 
405  void SetSfid (uint32_t sfid);
409  void SetServiceClassName (std::string name);
414  void SetQosParamSetType (uint8_t type);
419  void SetTrafficPriority (uint8_t priority);
424  void SetMaxSustainedTrafficRate (uint32_t maxSustainedRate);
429  void SetMaxTrafficBurst (uint32_t maxTrafficBurst);
434  void SetMinReservedTrafficRate (uint32_t minResvRate);
439  void SetMinTolerableTrafficRate (uint32_t minJitter);
449  void SetRequestTransmissionPolicy (uint32_t policy);
454  void SetToleratedJitter (uint32_t jitter);
459  void SetMaximumLatency (uint32_t MaximumLatency);
464  void SetFixedversusVariableSduIndicator (uint8_t sduIndicator);
469  void SetSduSize (uint8_t sduSize);
474  void SetTargetSAID (uint16_t targetSaid);
479  void SetArqEnable (uint8_t arqEnable);
484  void SetArqWindowSize (uint16_t arqWindowSize);
489  void SetArqRetryTimeoutTx (uint16_t timeout);
494  void SetArqRetryTimeoutRx (uint16_t timeout);
499  void SetArqBlockLifeTime (uint16_t lifeTime);
504  void SetArqSyncLoss (uint16_t syncLoss);
509  void SetArqDeliverInOrder (uint8_t inOrder);
514  void SetArqPurgeTimeout (uint16_t timeout);
519  void SetArqBlockSize (uint16_t size);
524  void SetCsSpecification (enum CsSpecification spec);
530 
535  void SetUnsolicitedGrantInterval (uint16_t unsolicitedGrantInterval);
540  void SetUnsolicitedPollingInterval (uint16_t unsolicitedPollingInterval);
545  void SetIsMulticast (bool isMulticast);
550  void SetModulation (enum WimaxPhy::ModulationType modulationType);
551 
552 
553 
554 private:
555  uint32_t m_sfid;
556  std::string m_serviceClassName;
560  uint32_t m_maxTrafficBurst;
565  uint32_t m_toleratedJitter;
566  uint32_t m_maximumLatency;
568  uint8_t m_sduSize;
569  uint16_t m_targetSAID;
570  uint8_t m_arqEnable;
571  uint16_t m_arqWindowSize;
575  uint16_t m_arqSyncLoss;
577  uint16_t m_arqPurgeTimeout;
578  uint16_t m_arqBlockSize;
586  bool m_isEnabled;
589  // will be used by the BS
591 };
592 
593 } // namespace ns3
594 
595 #endif /* SERVICE_FLOW_H */
ns3::ServiceFlow::GetQueue
Ptr< WimaxMacQueue > GetQueue(void) const
Get pointer to queue.
Definition: service-flow.cc:252
ns3::ServiceFlow::MODULATION_TYPE_QPSK_12
@ MODULATION_TYPE_QPSK_12
Definition: service-flow.h:85
ns3::ServiceFlow::SetArqBlockSize
void SetArqBlockSize(uint16_t size)
Set ARQ block size.
Definition: service-flow.cc:600
ns3::ServiceFlow::ATM
@ ATM
Definition: service-flow.h:71
ns3::ServiceFlow::GetModulation
enum WimaxPhy::ModulationType GetModulation(void) const
Get modulation.
Definition: service-flow.cc:476
ns3::ServiceFlow::GetUnsolicitedGrantInterval
uint16_t GetUnsolicitedGrantInterval(void) const
Get unsolicited grant interval.
Definition: service-flow.cc:460
ns3::ServiceFlow::SetUnsolicitedGrantInterval
void SetUnsolicitedGrantInterval(uint16_t unsolicitedGrantInterval)
Set unsolicied grant interval.
Definition: service-flow.cc:615
ns3::ServiceFlow::GetMinReservedTrafficRate
uint32_t GetMinReservedTrafficRate(void) const
Get minimum reserved traffic rate.
Definition: service-flow.cc:359
ns3::ServiceFlow::m_arqBlockLifeTime
uint16_t m_arqBlockLifeTime
ARQ block life time.
Definition: service-flow.h:574
ns3::ServiceFlow::MODULATION_TYPE_QAM64_34
@ MODULATION_TYPE_QAM64_34
Definition: service-flow.h:90
ns3::ServiceFlow::m_qosParamSetType
uint8_t m_qosParamSetType
QOS parameter type.
Definition: service-flow.h:557
ns3::ServiceFlow::SF_DIRECTION_UP
@ SF_DIRECTION_UP
Definition: service-flow.h:46
ns3::ServiceFlow::SF_TYPE_PROVISIONED
@ SF_TYPE_PROVISIONED
Definition: service-flow.h:52
ns3::ServiceFlow::m_arqRetryTimeoutTx
uint16_t m_arqRetryTimeoutTx
ARQ retry timeout transmit.
Definition: service-flow.h:572
ns3
Every class exported by the ns3 library is enclosed in the ns3 namespace.
ns3::ServiceFlow::Direction
Direction
Direction enumeration.
Definition: service-flow.h:44
ns3::ServiceFlow::m_arqWindowSize
uint16_t m_arqWindowSize
ARQ window size.
Definition: service-flow.h:571
ns3::ServiceFlow::m_maximumLatency
uint32_t m_maximumLatency
maximum latency
Definition: service-flow.h:566
ns3::ServiceFlow::GetToleratedJitter
uint32_t GetToleratedJitter(void) const
Get tolerated jitter.
Definition: service-flow.cc:379
ns3::ServiceFlow::GetMaxTrafficBurst
uint32_t GetMaxTrafficBurst(void) const
Get max traffic burst.
Definition: service-flow.cc:354
ns3::ServiceFlow::SetDirection
void SetDirection(enum Direction direction)
Set direction.
Definition: service-flow.cc:191
ns3::ServiceFlow::GetArqWindowSize
uint16_t GetArqWindowSize(void) const
Get ARQ retry timeout transmit.
Definition: service-flow.cc:409
ns3::ServiceFlow::GetCid
uint16_t GetCid(void) const
Get CID.
Definition: service-flow.cc:325
ns3::ServiceFlow::GetConvergenceSublayerParam
CsParameters GetConvergenceSublayerParam(void) const
Get convergence sublayer.
Definition: service-flow.cc:455
ns3::ServiceFlow::GetArqDeliverInOrder
uint8_t GetArqDeliverInOrder(void) const
Get ARQ deliver in order.
Definition: service-flow.cc:435
ns3::ServiceFlow::SetArqBlockLifeTime
void SetArqBlockLifeTime(uint16_t lifeTime)
Set ARQ block lifetime.
Definition: service-flow.cc:580
ns3::ServiceFlow::GetArqBlockLifeTime
uint16_t GetArqBlockLifeTime(void) const
Get ARQ block lifetime.
Definition: service-flow.cc:425
ns3::ServiceFlow::m_unsolicitedPollingInterval
uint16_t m_unsolicitedPollingInterval
unsolicited polling interval
Definition: service-flow.h:582
ns3::ServiceFlow::SetServiceSchedulingType
void SetServiceSchedulingType(enum ServiceFlow::SchedulingType schedType)
Set service scheduling type.
Definition: service-flow.cc:525
ns3::ServiceFlow::SF_TYPE_ACTIVE
@ SF_TYPE_ACTIVE
Definition: service-flow.h:54
ns3::ServiceFlow::IPV4
@ IPV4
Definition: service-flow.h:72
ns3::ServiceFlow::m_fixedversusVariableSduIndicator
uint8_t m_fixedversusVariableSduIndicator
fixed versus variable SDI indicator
Definition: service-flow.h:567
ns3::Ipv4Address
Ipv4 addresses are stored in host order in this class.
Definition: ipv4-address.h:41
ns3::ServiceFlow::SF_TYPE_UGS
@ SF_TYPE_UGS
Definition: service-flow.h:65
ns3::ServiceFlow::SetMaxSustainedTrafficRate
void SetMaxSustainedTrafficRate(uint32_t maxSustainedRate)
Set max sustained traffic rate.
Definition: service-flow.cc:505
ns3::ServiceFlow::ModulationType
ModulationType
Modulation type enumeration, Table 356 and 362.
Definition: service-flow.h:83
ns3::ServiceFlow::SetServiceClassName
void SetServiceClassName(std::string name)
Set service class name.
Definition: service-flow.cc:490
ns3::ServiceFlow::m_maxSustainedTrafficRate
uint32_t m_maxSustainedTrafficRate
maximum sustained traffic rate
Definition: service-flow.h:559
ns3::ServiceFlow::GetSchedulingTypeStr
char * GetSchedulingTypeStr(void) const
Get scheduling type string.
Definition: service-flow.cc:781
ns3::ServiceFlow::m_sduSize
uint8_t m_sduSize
SDU size.
Definition: service-flow.h:568
ns3::ServiceFlow::GetServiceClassName
std::string GetServiceClassName() const
Get service class name.
Definition: service-flow.cc:334
ns3::ServiceFlowRecord
this class implements a structure to manage some parameters and statistics related to a service flow
Definition: service-flow-record.h:37
ns3::ServiceFlow::SetMaximumLatency
void SetMaximumLatency(uint32_t MaximumLatency)
Set maximum latency.
Definition: service-flow.cc:540
ns3::ServiceFlow::m_toleratedJitter
uint32_t m_toleratedJitter
tolerated jitter
Definition: service-flow.h:565
ns3::ServiceFlow::SetType
void SetType(enum Type type)
Set type of service flow.
Definition: service-flow.cc:203
ns3::ServiceFlow::GetIsEnabled
bool GetIsEnabled(void) const
Get is enabled flag.
Definition: service-flow.cc:234
ns3::ServiceFlow::VLAN
@ VLAN
Definition: service-flow.h:75
ns3::ServiceFlow::SF_TYPE_NONE
@ SF_TYPE_NONE
Definition: service-flow.h:60
ns3::CsParameters
CsParameters class.
Definition: cs-parameters.h:36
ns3::ServiceFlow::GetSchedulingType
enum ServiceFlow::SchedulingType GetSchedulingType(void) const
Get scheduling type.
Definition: service-flow.cc:262
ns3::ServiceFlow::m_sfid
uint32_t m_sfid
SFID.
Definition: service-flow.h:555
ns3::ServiceFlow::GetUnsolicitedPollingInterval
uint16_t GetUnsolicitedPollingInterval(void) const
Get unsolicited polling interval.
Definition: service-flow.cc:465
ns3::ServiceFlow::IPV6
@ IPV6
Definition: service-flow.h:73
ns3::ServiceFlow::m_maxTrafficBurst
uint32_t m_maxTrafficBurst
maximum traffic burst
Definition: service-flow.h:560
ns3::ServiceFlow::GetRecord
ServiceFlowRecord * GetRecord(void) const
Get service flow record.
Definition: service-flow.cc:246
ns3::ServiceFlow::GetMaxSustainedTrafficRate
uint32_t GetMaxSustainedTrafficRate(void) const
Get max sustained traffic rate.
Definition: service-flow.cc:349
ns3::ServiceFlow::operator=
ServiceFlow & operator=(ServiceFlow const &o)
assignment operator
Definition: service-flow.cc:737
ns3::ServiceFlow::m_isMulticast
bool m_isMulticast
is multicast?
Definition: service-flow.h:587
ns3::ServiceFlow::GetSduSize
uint8_t GetSduSize(void) const
Get SDU size.
Definition: service-flow.cc:394
ns3::Ptr
Smart pointer class similar to boost::intrusive_ptr.
Definition: ptr.h:74
ns3::ServiceFlow::SetConvergenceSublayerParam
void SetConvergenceSublayerParam(CsParameters csparam)
Set convergence sublayer parameters.
Definition: service-flow.cc:610
ns3::ServiceFlow::m_arqRetryTimeoutRx
uint16_t m_arqRetryTimeoutRx
ARQ retry timeout receive.
Definition: service-flow.h:573
ns3::ServiceFlow::SF_TYPE_NRTPS
@ SF_TYPE_NRTPS
Definition: service-flow.h:63
ns3::ServiceFlow::SF_DIRECTION_DOWN
@ SF_DIRECTION_DOWN
Definition: service-flow.h:45
ns3::WimaxPhy::ModulationType
ModulationType
ModulationType enumeration.
Definition: wimax-phy.h:50
ns3::ServiceFlow::SF_TYPE_UNDEF
@ SF_TYPE_UNDEF
Definition: service-flow.h:61
ns3::ServiceFlow::~ServiceFlow
~ServiceFlow(void)
Definition: service-flow.cc:180
ns3::MacHeaderType::HeaderType
HeaderType
Header type enumeration.
Definition: wimax-mac-header.h:41
ns3::ServiceFlow::m_direction
Direction m_direction
direction
Definition: service-flow.h:583
ns3::ServiceFlow::SetUnsolicitedPollingInterval
void SetUnsolicitedPollingInterval(uint16_t unsolicitedPollingInterval)
Set unsolicited polling interval.
Definition: service-flow.cc:620
ns3::ServiceFlow::SetRecord
void SetRecord(ServiceFlowRecord *record)
Set service flow record.
Definition: service-flow.cc:240
ns3::ServiceFlow::m_arqPurgeTimeout
uint16_t m_arqPurgeTimeout
ARQ purge timeout.
Definition: service-flow.h:577
ns3::ServiceFlow::SetConnection
void SetConnection(Ptr< WimaxConnection > connection)
Set connection.
Definition: service-flow.cc:215
ns3::ServiceFlow::SetArqEnable
void SetArqEnable(uint8_t arqEnable)
Set ARQ enable.
Definition: service-flow.cc:560
ns3::ServiceFlow::CheckClassifierMatch
bool CheckClassifierMatch(Ipv4Address srcAddress, Ipv4Address dstAddress, uint16_t srcPort, uint16_t dstPort, uint8_t proto) const
Definition: service-flow.cc:837
ns3::ServiceFlow::IPV4_OVER_VLAN
@ IPV4_OVER_VLAN
Definition: service-flow.h:78
wimax-phy.h
ns3::ServiceFlow::GetMaximumLatency
uint32_t GetMaximumLatency(void) const
Get maximum latency.
Definition: service-flow.cc:384
ns3::ServiceFlow::CopyParametersFrom
void CopyParametersFrom(ServiceFlow sf)
Copy parameters from another service flow.
Definition: service-flow.cc:672
ns3::ServiceFlow::SetIsMulticast
void SetIsMulticast(bool isMulticast)
Set is multicast.
Definition: service-flow.cc:625
wimax-connection.h
ns3::ServiceFlow::ToTlv
Tlv ToTlv(void) const
creates a TLV from this service flow
Definition: service-flow.cc:804
ns3::ServiceFlow::ServiceFlow
ServiceFlow()
default constructor
Definition: service-flow.cc:43
ns3::ServiceFlow::MODULATION_TYPE_QAM64_23
@ MODULATION_TYPE_QAM64_23
Definition: service-flow.h:89
ns3::ServiceFlow::CsSpecification
CsSpecification
section 11.13.19.2 CS parameter encoding rules, page 707
Definition: service-flow.h:70
ns3::ServiceFlow::GetArqEnable
uint8_t GetArqEnable(void) const
Get ARQ enable.
Definition: service-flow.cc:404
ns3::ServiceFlow::m_arqSyncLoss
uint16_t m_arqSyncLoss
ARQ sync loss.
Definition: service-flow.h:575
ns3::ServiceFlow::m_arqBlockSize
uint16_t m_arqBlockSize
ARQ block size.
Definition: service-flow.h:578
ns3::ServiceFlow::SetArqPurgeTimeout
void SetArqPurgeTimeout(uint16_t timeout)
Set ARQ purge timeout.
Definition: service-flow.cc:595
ns3::ServiceFlow::m_serviceClassName
std::string m_serviceClassName
service class name
Definition: service-flow.h:556
ns3::ServiceFlow::MODULATION_TYPE_QPSK_34
@ MODULATION_TYPE_QPSK_34
Definition: service-flow.h:86
ns3::ServiceFlow::SF_TYPE_BE
@ SF_TYPE_BE
Definition: service-flow.h:62
ns3::ServiceFlow::GetType
enum Type GetType(void) const
Get type of service flow.
Definition: service-flow.cc:209
ns3::Tlv
This class implements the Type-Len-Value structure channel encodings as described by "IEEE Standard f...
Definition: wimax-tlv.h:84
ns3::ServiceFlow::GetFixedversusVariableSduIndicator
uint8_t GetFixedversusVariableSduIndicator(void) const
Get fixed versus varaiable SDU indicator.
Definition: service-flow.cc:389
ns3::ServiceFlow::SetSduSize
void SetSduSize(uint8_t sduSize)
Set SDU size.
Definition: service-flow.cc:550
ns3::ServiceFlow::InitValues
void InitValues(void)
Initial values.
Definition: service-flow.cc:636
ns3::ServiceFlow::GetArqBlockSize
uint16_t GetArqBlockSize(void) const
Get ARQ block size.
Definition: service-flow.cc:445
ns3::ServiceFlow::MODULATION_TYPE_QAM16_12
@ MODULATION_TYPE_QAM16_12
Definition: service-flow.h:87
ns3::ServiceFlow::m_type
Type m_type
type
Definition: service-flow.h:584
ns3::ServiceFlow::m_record
ServiceFlowRecord * m_record
service flow record
Definition: service-flow.h:590
ns3::ServiceFlow::SetMinReservedTrafficRate
void SetMinReservedTrafficRate(uint32_t minResvRate)
Set minimum reserved traffic rate.
Definition: service-flow.cc:515
ns3::ServiceFlow::IPV6_OVER_ETHERNET
@ IPV6_OVER_ETHERNET
Definition: service-flow.h:77
ns3::ServiceFlow::IPV6_OVER_VLAN
@ IPV6_OVER_VLAN
Definition: service-flow.h:79
ns3::ServiceFlow::GetDirection
enum Direction GetDirection(void) const
Get direction.
Definition: service-flow.cc:197
ns3::ServiceFlow::GetArqRetryTimeoutTx
uint16_t GetArqRetryTimeoutTx(void) const
Get ARQ retry timeout transmit.
Definition: service-flow.cc:414
ns3::ServiceFlow::SetArqSyncLoss
void SetArqSyncLoss(uint16_t syncLoss)
Set ARQ sync loss.
Definition: service-flow.cc:585
ns3::ServiceFlow::PrintQoSParameters
void PrintQoSParameters(void) const
Print QOS parameters.
Definition: service-flow.cc:313
ns3::ServiceFlow::m_modulationType
enum WimaxPhy::ModulationType m_modulationType
modulation type
Definition: service-flow.h:588
ns3::ServiceFlow::MODULATION_TYPE_BPSK_12
@ MODULATION_TYPE_BPSK_12
Definition: service-flow.h:84
ns3::ServiceFlow::SetSfid
void SetSfid(uint32_t sfid)
Set SFID.
Definition: service-flow.cc:485
timeout
ns3::Time timeout
Definition: openflow-switch.cc:52
ns3::ServiceFlow::GetConnection
Ptr< WimaxConnection > GetConnection(void) const
Can return a null connection is this service flow has not been associated yet to a connection.
Definition: service-flow.cc:222
ns3::ServiceFlow::CleanUpQueue
void CleanUpQueue(void)
shall be called only by BS
Definition: service-flow.cc:288
ns3::ServiceFlow::m_requestTransmissionPolicy
uint32_t m_requestTransmissionPolicy
request transmission policy
Definition: service-flow.h:564
ns3::ServiceFlow::SetMinTolerableTrafficRate
void SetMinTolerableTrafficRate(uint32_t minJitter)
Set minimum tolerable traffic rate.
Definition: service-flow.cc:520
ns3::ServiceFlow::m_schedulingType
enum ServiceFlow::SchedulingType m_schedulingType
scheduling type
Definition: service-flow.h:563
ns3::ServiceFlow::HasPackets
bool HasPackets(void) const
Check if packets are present.
Definition: service-flow.cc:268
ns3::ServiceFlow::SetArqDeliverInOrder
void SetArqDeliverInOrder(uint8_t inOrder)
Set ARQ deliver in order.
Definition: service-flow.cc:590
ns3::ServiceFlow::SF_TYPE_ADMITTED
@ SF_TYPE_ADMITTED
Definition: service-flow.h:53
ns3::ServiceFlow::m_trafficPriority
uint8_t m_trafficPriority
traffic priority
Definition: service-flow.h:558
ns3::ServiceFlow::SetTrafficPriority
void SetTrafficPriority(uint8_t priority)
Set traffic priority.
Definition: service-flow.cc:500
ns3::ServiceFlow::SetCsSpecification
void SetCsSpecification(enum CsSpecification spec)
Set CS specification.
Definition: service-flow.cc:605
ns3::ServiceFlow::GetQosParamSetType
uint8_t GetQosParamSetType(void) const
Get QOS parameter set type.
Definition: service-flow.cc:339
cs-parameters.h
ns3::ServiceFlow::GetArqSyncLoss
uint16_t GetArqSyncLoss(void) const
Get ARQ sync loss.
Definition: service-flow.cc:430
ns3::ServiceFlow::GetTrafficPriority
uint8_t GetTrafficPriority(void) const
Get traffic priority.
Definition: service-flow.cc:344
ns3::ServiceFlow::GetCsSpecification
enum CsSpecification GetCsSpecification(void) const
Get CS specification.
Definition: service-flow.cc:450
ns3::ServiceFlow::GetTargetSAID
uint16_t GetTargetSAID(void) const
Get target SAID.
Definition: service-flow.cc:399
ns3::ServiceFlow::SetIsEnabled
void SetIsEnabled(bool isEnabled)
Set is enabled flag.
Definition: service-flow.cc:228
ns3::ServiceFlow::SF_TYPE_RTPS
@ SF_TYPE_RTPS
Definition: service-flow.h:64
ns3::ServiceFlow::SchedulingType
SchedulingType
section 11.13.11 Service flow scheduling type, page 701
Definition: service-flow.h:59
ns3::ServiceFlow::m_unsolicitedGrantInterval
uint16_t m_unsolicitedGrantInterval
unsolicited grant interval
Definition: service-flow.h:581
ns3::ServiceFlow::MODULATION_TYPE_QAM16_34
@ MODULATION_TYPE_QAM16_34
Definition: service-flow.h:88
ns3::ServiceFlow::GetIsMulticast
bool GetIsMulticast(void) const
Get is multicast.
Definition: service-flow.cc:471
ns3::ServiceFlow::SetModulation
void SetModulation(enum WimaxPhy::ModulationType modulationType)
Set modulation.
Definition: service-flow.cc:630
ns3::ServiceFlow::m_csSpecification
enum CsSpecification m_csSpecification
CS specification.
Definition: service-flow.h:579
ns3::ServiceFlow::SetToleratedJitter
void SetToleratedJitter(uint32_t jitter)
Set tolerated jitter.
Definition: service-flow.cc:535
ns3::ServiceFlow
This class implements service flows as described by the IEEE-802.16 standard.
Definition: service-flow.h:40
ns3::ServiceFlow::Type
Type
Type enumeration.
Definition: service-flow.h:51
ns3::ServiceFlow::SetArqWindowSize
void SetArqWindowSize(uint16_t arqWindowSize)
Set ARQ retry timeout transmit.
Definition: service-flow.cc:565
ns3::ServiceFlow::SetArqRetryTimeoutTx
void SetArqRetryTimeoutTx(uint16_t timeout)
Set ARQ retry timeout transmit.
Definition: service-flow.cc:570
ns3::ServiceFlow::m_convergenceSublayerParam
CsParameters m_convergenceSublayerParam
convergence sublayer parameters
Definition: service-flow.h:580
ns3::ServiceFlow::SetQosParamSetType
void SetQosParamSetType(uint8_t type)
Set QOS parameter set type.
Definition: service-flow.cc:495
ns3::ServiceFlow::SF_TYPE_ALL
@ SF_TYPE_ALL
Definition: service-flow.h:66
ns3::ServiceFlow::GetArqRetryTimeoutRx
uint16_t GetArqRetryTimeoutRx(void) const
Get ARQ retry timeout receive.
Definition: service-flow.cc:419
ns3::ServiceFlow::GetMinTolerableTrafficRate
uint32_t GetMinTolerableTrafficRate(void) const
Get minimum tolerable traffic rate.
Definition: service-flow.cc:364
ns3::ServiceFlow::SetTargetSAID
void SetTargetSAID(uint16_t targetSaid)
Set target SAID.
Definition: service-flow.cc:555
ns3::ServiceFlow::SetFixedversusVariableSduIndicator
void SetFixedversusVariableSduIndicator(uint8_t sduIndicator)
Set fixed versus variable SDU indicator.
Definition: service-flow.cc:545
ns3::ServiceFlow::m_isEnabled
bool m_isEnabled
is enabled?
Definition: service-flow.h:586
ns3::ServiceFlow::m_targetSAID
uint16_t m_targetSAID
traget SAID
Definition: service-flow.h:569
ns3::ServiceFlow::SetRequestTransmissionPolicy
void SetRequestTransmissionPolicy(uint32_t policy)
Set request transmission policy.
Definition: service-flow.cc:530
ns3::ServiceFlow::GetSfid
uint32_t GetSfid(void) const
Get SFID.
Definition: service-flow.cc:320
ns3::ServiceFlow::m_connection
Ptr< WimaxConnection > m_connection
connection
Definition: service-flow.h:585
ns3::ServiceFlow::m_arqEnable
uint8_t m_arqEnable
ARQ enable.
Definition: service-flow.h:570
ns3::ServiceFlow::SetMaxTrafficBurst
void SetMaxTrafficBurst(uint32_t maxTrafficBurst)
Set maximum traffic burst.
Definition: service-flow.cc:510
ns3::ServiceFlow::GetServiceSchedulingType
enum ServiceFlow::SchedulingType GetServiceSchedulingType(void) const
Get service scheduling type.
Definition: service-flow.cc:369
ns3::ServiceFlow::SetArqRetryTimeoutRx
void SetArqRetryTimeoutRx(uint16_t timeout)
Set ARQ retry timeout receive.
Definition: service-flow.cc:575
ns3::ServiceFlow::GetRequestTransmissionPolicy
uint32_t GetRequestTransmissionPolicy(void) const
Get request transmission policy.
Definition: service-flow.cc:374
ns3::ServiceFlow::m_minTolerableTrafficRate
uint32_t m_minTolerableTrafficRate
minimum tolerable traffic rate
Definition: service-flow.h:562
ns3::ServiceFlow::ETHERNET
@ ETHERNET
Definition: service-flow.h:74
ns3::ServiceFlow::GetArqPurgeTimeout
uint16_t GetArqPurgeTimeout(void) const
Get ARQ purge timeout.
Definition: service-flow.cc:440
ns3::ServiceFlow::m_minReservedTrafficRate
uint32_t m_minReservedTrafficRate
minimum reserved traffic rate
Definition: service-flow.h:561
ns3::ServiceFlow::IPV4_OVER_ETHERNET
@ IPV4_OVER_ETHERNET
Definition: service-flow.h:76
ns3::ServiceFlow::m_arqDeliverInOrder
uint8_t m_arqDeliverInOrder
ARQ deliver in order.
Definition: service-flow.h:576