A Discrete-Event Network Simulator
API
Loading...
Searching...
No Matches
service-flow.h
Go to the documentation of this file.
1/*
2 * Copyright (c) 2007,2008, 2009 INRIA, UDcast
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License version 2 as
6 * published by the Free Software Foundation;
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program; if not, write to the Free Software
15 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
16 *
17 * Author: Jahanzeb Farooq <jahanzeb.farooq@sophia.inria.fr>
18 * Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
19 */
20
21#ifndef SERVICE_FLOW_H
22#define SERVICE_FLOW_H
23
24#include "cs-parameters.h"
25#include "wimax-connection.h"
26#include "wimax-mac-header.h"
27#include "wimax-phy.h"
28
29#include <cstdint>
30
31namespace ns3
32{
33
34class ServiceFlowRecord;
35class WimaxConnection;
36class WimaxMacQueue;
37
38/**
39 * \ingroup wimax
40 * This class implements service flows as described by the IEEE-802.16 standard
41 */
43{
44 public:
45 /// Direction enumeration
47 {
50 };
51
52 /// Type enumeration
53 enum Type
54 {
58 };
59
60 /// section 11.13.11 Service flow scheduling type, page 701
62 {
69 SF_TYPE_ALL = 255
70 };
71
72 /// section 11.13.19.2 CS parameter encoding rules, page 707
74 {
75 ATM = 99,
76 IPV4 = 100,
77 IPV6 = 101,
78 ETHERNET = 102,
79 VLAN = 103,
83 IPV6_OVER_VLAN = 107
84 };
85
86 /// Modulation type enumeration, Table 356 and 362
88 {
96 };
97
98 /**
99 * \brief creates a TLV from this service flow
100 * \return the created tlv
101 */
102 Tlv ToTlv() const;
103 /**
104 * \brief creates a service flow from a TLV
105 * \param tlv the tlv from which the service flow will be created
106 */
107 ServiceFlow(Tlv tlv);
108 /**
109 * \brief check classifier match.
110 * \param srcAddress the source ip address
111 * \param dstAddress the destination ip address
112 * \param srcPort the source port
113 * \param dstPort the destination port
114 * \param proto the layer 4 protocol
115 * \return true if the passed parameters match the classifier of the service flow, false
116 * otherwise
117 */
118 bool CheckClassifierMatch(Ipv4Address srcAddress,
119 Ipv4Address dstAddress,
120 uint16_t srcPort,
121 uint16_t dstPort,
122 uint8_t proto) const;
123 /**
124 * Default constructor.
125 */
126 ServiceFlow();
127 /**
128 * Constructor
129 *
130 * \param direction the direction
131 */
132 ServiceFlow(Direction direction);
133 /**
134 * Constructor
135 *
136 * \param sf service flow
137 */
138 ServiceFlow(const ServiceFlow& sf);
139 /**
140 * Constructor
141 *
142 * \param sfid the SFID
143 * \param direction the direction
144 * \param connection the connection object
145 */
146 ServiceFlow(uint32_t sfid, Direction direction, Ptr<WimaxConnection> connection);
147 /**
148 * Destructor.
149 */
150 ~ServiceFlow();
151 /**
152 * assignment operator
153 * \param o the service flow to assign
154 * \returns the service flow
155 */
157
158 /**
159 * Initialize values.
160 */
161 void InitValues();
162 /**
163 * Set direction
164 * \param direction the direction value
165 */
166 void SetDirection(Direction direction);
167 /**
168 * Get direction
169 * \returns the direction
170 */
171 Direction GetDirection() const;
172 /**
173 * Copy parameters from another service flow
174 * \param sf the service flow
175 */
177
178 /**
179 * Set type of service flow
180 * \param type the type value
181 */
182 void SetType(Type type);
183 /**
184 * Get type of service flow
185 * \returns the type
186 */
187 Type GetType() const;
188 /**
189 * Set connection
190 * \param connection the connection
191 */
192 void SetConnection(Ptr<WimaxConnection> connection);
193 /**
194 * Can return a null connection is this service flow has not
195 * been associated yet to a connection.
196 * \returns pointer to the WimaxConnection
197 */
199
200 /**
201 * Set is enabled flag
202 * \param isEnabled is enabled flag
203 */
204 void SetIsEnabled(bool isEnabled);
205 /**
206 * Get is enabled flag
207 * \returns is enabled
208 */
209 bool GetIsEnabled() const;
210
211 /**
212 * Set service flow record
213 * \param record pointer to the service flow record
214 */
215 void SetRecord(ServiceFlowRecord* record);
216 /**
217 * Get service flow record
218 * \returns pointer to the service flow record
219 */
221
222 // wrapper functions
223 /**
224 * Get pointer to queue
225 * \returns pointer to the wimax mac queue
226 */
228 /**
229 * Get scheduling type
230 * \returns the scheduling type
231 */
233 /**
234 * Check if packets are present
235 * \returns true if there are packets
236 */
237 bool HasPackets() const;
238 /**
239 * Check if packets of particular type are present
240 * \param packetType the packet type to select
241 * \returns true if there are packets of the packet type
242 */
243 bool HasPackets(MacHeaderType::HeaderType packetType) const;
244
245 /**
246 * Shall be called only by BS.
247 */
248 void CleanUpQueue();
249
250 /**
251 * Print QoS parameters.
252 */
253 void PrintQoSParameters() const;
254
255 /**
256 * Get scheduling type string
257 * \returns the name of the scheduling type
258 */
259 char* GetSchedulingTypeStr() const;
260
261 /**
262 * Get SFID
263 * \returns the SFID
264 */
265 uint32_t GetSfid() const;
266 /**
267 * Get CID
268 * \returns the CID
269 */
270 uint16_t GetCid() const;
271 /**
272 * Get service class name
273 * \returns the service class name
274 */
275 std::string GetServiceClassName() const;
276 /**
277 * Get QOS parameter set type
278 * \returns the QOS parameter set type
279 */
280 uint8_t GetQosParamSetType() const;
281 /**
282 * Get traffic priority
283 * \returns the traffic priority
284 */
285 uint8_t GetTrafficPriority() const;
286 /**
287 * Get max sustained traffic rate
288 * \returns the maximum sustained traffic rate
289 */
291 /**
292 * Get max traffic burst
293 * \returns the maximum traffic burst
294 */
296 /**
297 * Get minimum reserved traffic rate
298 * \returns the minimum reserved traffic rate
299 */
301 /**
302 * Get minimum tolerable traffic rate
303 * \returns the minimum tolerable traffic rate
304 */
306 /**
307 * Get service scheduling type
308 * \returns the scheduling type
309 */
311 /**
312 * Get request transmission policy
313 * \returns the request transmission policy
314 */
316 /**
317 * Get tolerated jitter
318 * \returns the tolerated jitter
319 */
321 /**
322 * Get maximum latency
323 * \returns the maximum latency
324 */
326 /**
327 * Get fixed versus variable SDU indicator
328 * \returns the fixed vs variable SDU indicator
329 */
331 /**
332 * Get SDU size
333 * \returns the SDU size
334 */
335 uint8_t GetSduSize() const;
336 /**
337 * Get target SAID
338 * \returns the target SAID
339 */
340 uint16_t GetTargetSAID() const;
341 /**
342 * Get ARQ enable
343 * \returns the ARQ enable
344 */
345 uint8_t GetArqEnable() const;
346 /**
347 * Get ARQ retry timeout transmit
348 * \returns the ARQ retry timeout
349 */
350 uint16_t GetArqWindowSize() const;
351 /**
352 * Get ARQ retry timeout transmit
353 * \returns the ARQ retry timeout transmit
354 */
355 uint16_t GetArqRetryTimeoutTx() const;
356 /**
357 * Get ARQ retry timeout receive
358 * \returns the ARQ retry timeout receive
359 */
360 uint16_t GetArqRetryTimeoutRx() const;
361 /**
362 * Get ARQ block lifetime
363 * \returns the ARQ block lifetime
364 */
365 uint16_t GetArqBlockLifeTime() const;
366 /**
367 * Get ARQ sync loss
368 * \returns the ARQ sync loss value
369 */
370 uint16_t GetArqSyncLoss() const;
371 /**
372 * Get ARQ deliver in order
373 * \returns the ARQ deliver in order
374 */
375 uint8_t GetArqDeliverInOrder() const;
376 /**
377 * Get ARQ purge timeout
378 * \returns the ARQ purge timeout value
379 */
380 uint16_t GetArqPurgeTimeout() const;
381 /**
382 * Get ARQ block size
383 * \returns the ARQ block size
384 */
385 uint16_t GetArqBlockSize() const;
386 /**
387 * Get CS specification
388 * \returns the CS specification
389 */
391 /**
392 * Get convergence sublayer
393 * \returns the convergence sublayer
394 */
396 /**
397 * Get unsolicited grant interval
398 * \returns the unsolicited grant interval
399 */
400 uint16_t GetUnsolicitedGrantInterval() const;
401 /**
402 * Get unsolicited polling interval
403 * \returns the unsolicited polling interval
404 */
405 uint16_t GetUnsolicitedPollingInterval() const;
406 /**
407 * Get is multicast
408 * \returns the is multicast flag
409 */
410 bool GetIsMulticast() const;
411 /**
412 * Get modulation
413 * \returns the modulation
414 */
416
417 /**
418 * Set SFID
419 * \param sfid the SFID
420 */
421 void SetSfid(uint32_t sfid);
422 /**
423 * Set service class name
424 * \param name the service class name
425 */
426 void SetServiceClassName(std::string name);
427 /**
428 * Set QOS parameter set type
429 * \param type the QOS parameter set type
430 */
431 void SetQosParamSetType(uint8_t type);
432 /**
433 * Set traffic priority
434 * \param priority the traffic priority
435 */
436 void SetTrafficPriority(uint8_t priority);
437 /**
438 * Set max sustained traffic rate
439 * \param maxSustainedRate the maximum sustained traffic rate
440 */
441 void SetMaxSustainedTrafficRate(uint32_t maxSustainedRate);
442 /**
443 * Set maximum traffic burst
444 * \param maxTrafficBurst the maximum traffic burst
445 */
446 void SetMaxTrafficBurst(uint32_t maxTrafficBurst);
447 /**
448 * Set minimum reserved traffic rate
449 * \param minResvRate the minimum reserved traffic rate
450 */
451 void SetMinReservedTrafficRate(uint32_t minResvRate);
452 /**
453 * Set minimum tolerable traffic rate
454 * \param minJitter the minimum tolerable traffic rate
455 */
456 void SetMinTolerableTrafficRate(uint32_t minJitter);
457 /**
458 * Set service scheduling type
459 * \param schedType the service scheduling type
460 */
462 /**
463 * Set request transmission policy
464 * \param policy the request transmission policy
465 */
467 /**
468 * Set tolerated jitter
469 * \param jitter the tolerated jitter
470 */
471 void SetToleratedJitter(uint32_t jitter);
472 /**
473 * Set maximum latency
474 * \param MaximumLatency the maximum latency
475 */
476 void SetMaximumLatency(uint32_t MaximumLatency);
477 /**
478 * Set fixed versus variable SDU indicator
479 * \param sduIndicator fixed vs variable SDU indicator
480 */
481 void SetFixedversusVariableSduIndicator(uint8_t sduIndicator);
482 /**
483 * Set SDU size
484 * \param sduSize the SDU size
485 */
486 void SetSduSize(uint8_t sduSize);
487 /**
488 * Set target SAID
489 * \param targetSaid the target SAID value
490 */
491 void SetTargetSAID(uint16_t targetSaid);
492 /**
493 * Set ARQ enable
494 * \param arqEnable the ARQ enable setting
495 */
496 void SetArqEnable(uint8_t arqEnable);
497 /**
498 * Set ARQ retry timeout transmit
499 * \param arqWindowSize the ARQ retry timeout transmit
500 */
501 void SetArqWindowSize(uint16_t arqWindowSize);
502 /**
503 * Set ARQ retry timeout transmit
504 * \param timeout the ARQ retry timeout transmit
505 */
506 void SetArqRetryTimeoutTx(uint16_t timeout);
507 /**
508 * Set ARQ retry timeout receive
509 * \param timeout the timeout
510 */
511 void SetArqRetryTimeoutRx(uint16_t timeout);
512 /**
513 * Set ARQ block lifetime
514 * \param lifeTime the ARQ block life time
515 */
516 void SetArqBlockLifeTime(uint16_t lifeTime);
517 /**
518 * Set ARQ sync loss
519 * \param syncLoss the ARQ sync loss
520 */
521 void SetArqSyncLoss(uint16_t syncLoss);
522 /**
523 * Set ARQ deliver in order
524 * \param inOrder the deliver in order setting
525 */
526 void SetArqDeliverInOrder(uint8_t inOrder);
527 /**
528 * Set ARQ purge timeout
529 * \param timeout the timeout value
530 */
531 void SetArqPurgeTimeout(uint16_t timeout);
532 /**
533 * Set ARQ block size
534 * \param size the size
535 */
536 void SetArqBlockSize(uint16_t size);
537 /**
538 * Set CS specification
539 * \param spec the CS specification
540 */
542 /**
543 * Set convergence sublayer parameters
544 * \param csparam the convergence sublayer parameters
545 */
547
548 /**
549 * Set unsolicited grant interval
550 * \param unsolicitedGrantInterval the unsolicited grant interval
551 */
552 void SetUnsolicitedGrantInterval(uint16_t unsolicitedGrantInterval);
553 /**
554 * Set unsolicited polling interval
555 * \param unsolicitedPollingInterval the unsolicited polling interval
556 */
557 void SetUnsolicitedPollingInterval(uint16_t unsolicitedPollingInterval);
558 /**
559 * Set is multicast
560 * \param isMulticast the is multicast flag
561 */
562 void SetIsMulticast(bool isMulticast);
563 /**
564 * Set modulation
565 * \param modulationType the modulation type
566 */
567 void SetModulation(WimaxPhy::ModulationType modulationType);
568
569 private:
570 uint32_t m_sfid; ///< SFID
571 std::string m_serviceClassName; ///< service class name
572 uint8_t m_qosParamSetType; ///< QOS parameter type
573 uint8_t m_trafficPriority; ///< traffic priority
574 uint32_t m_maxSustainedTrafficRate; ///< maximum sustained traffic rate
575 uint32_t m_maxTrafficBurst; ///< maximum traffic burst
576 uint32_t m_minReservedTrafficRate; ///< minimum reserved traffic rate
577 uint32_t m_minTolerableTrafficRate; ///< minimum tolerable traffic rate
579 uint32_t m_requestTransmissionPolicy; ///< request transmission policy
580 uint32_t m_toleratedJitter; ///< tolerated jitter
581 uint32_t m_maximumLatency; ///< maximum latency
582 uint8_t m_fixedversusVariableSduIndicator; ///< fixed versus variable SDI indicator
583 uint8_t m_sduSize; ///< SDU size
584 uint16_t m_targetSAID; ///< target SAID
585 uint8_t m_arqEnable; ///< ARQ enable
586 uint16_t m_arqWindowSize; ///< ARQ window size
587 uint16_t m_arqRetryTimeoutTx; ///< ARQ retry timeout transmit
588 uint16_t m_arqRetryTimeoutRx; ///< ARQ retry timeout receive
589 uint16_t m_arqBlockLifeTime; ///< ARQ block life time
590 uint16_t m_arqSyncLoss; ///< ARQ sync loss
591 uint8_t m_arqDeliverInOrder; ///< ARQ deliver in order
592 uint16_t m_arqPurgeTimeout; ///< ARQ purge timeout
593 uint16_t m_arqBlockSize; ///< ARQ block size
594 CsSpecification m_csSpecification; ///< CS specification
595 CsParameters m_convergenceSublayerParam; ///< convergence sublayer parameters
596 uint16_t m_unsolicitedGrantInterval; ///< unsolicited grant interval
597 uint16_t m_unsolicitedPollingInterval; ///< unsolicited polling interval
598 Direction m_direction; ///< direction
599 Type m_type; ///< type
601 bool m_isEnabled; ///< is enabled?
602 bool m_isMulticast; ///< is multicast?
604 // will be used by the BS
605 ServiceFlowRecord* m_record; ///< service flow record
606};
607
608} // namespace ns3
609
610#endif /* SERVICE_FLOW_H */
CsParameters class.
Definition: cs-parameters.h:36
Ipv4 addresses are stored in host order in this class.
Definition: ipv4-address.h:42
HeaderType
Header type enumeration.
Smart pointer class similar to boost::intrusive_ptr.
Definition: ptr.h:77
This class implements service flows as described by the IEEE-802.16 standard.
Definition: service-flow.h:43
uint16_t m_targetSAID
target SAID
Definition: service-flow.h:584
uint32_t m_requestTransmissionPolicy
request transmission policy
Definition: service-flow.h:579
uint16_t GetArqSyncLoss() const
Get ARQ sync loss.
void SetTargetSAID(uint16_t targetSaid)
Set target SAID.
void SetRequestTransmissionPolicy(uint32_t policy)
Set request transmission policy.
void SetDirection(Direction direction)
Set direction.
uint16_t m_arqBlockSize
ARQ block size.
Definition: service-flow.h:593
void SetSfid(uint32_t sfid)
Set SFID.
void SetCsSpecification(CsSpecification spec)
Set CS specification.
uint16_t GetTargetSAID() const
Get target SAID.
ServiceFlow & operator=(const ServiceFlow &o)
assignment operator
std::string m_serviceClassName
service class name
Definition: service-flow.h:571
uint32_t GetRequestTransmissionPolicy() const
Get request transmission policy.
uint32_t m_toleratedJitter
tolerated jitter
Definition: service-flow.h:580
ServiceFlow::SchedulingType GetServiceSchedulingType() const
Get service scheduling type.
uint16_t GetArqWindowSize() const
Get ARQ retry timeout transmit.
uint32_t GetMaxSustainedTrafficRate() const
Get max sustained traffic rate.
void SetArqEnable(uint8_t arqEnable)
Set ARQ enable.
void SetArqBlockSize(uint16_t size)
Set ARQ block size.
uint32_t GetMaxTrafficBurst() const
Get max traffic burst.
void SetServiceClassName(std::string name)
Set service class name.
uint32_t GetSfid() const
Get SFID.
uint32_t m_maximumLatency
maximum latency
Definition: service-flow.h:581
uint32_t m_minTolerableTrafficRate
minimum tolerable traffic rate
Definition: service-flow.h:577
uint32_t GetMaximumLatency() const
Get maximum latency.
uint8_t GetFixedversusVariableSduIndicator() const
Get fixed versus variable SDU indicator.
void PrintQoSParameters() const
Print QoS parameters.
uint16_t m_arqBlockLifeTime
ARQ block life time.
Definition: service-flow.h:589
ModulationType
Modulation type enumeration, Table 356 and 362.
Definition: service-flow.h:88
ServiceFlow::SchedulingType GetSchedulingType() const
Get scheduling type.
~ServiceFlow()
Destructor.
uint16_t m_unsolicitedGrantInterval
unsolicited grant interval
Definition: service-flow.h:596
uint16_t GetUnsolicitedPollingInterval() const
Get unsolicited polling interval.
CsParameters m_convergenceSublayerParam
convergence sublayer parameters
Definition: service-flow.h:595
bool m_isEnabled
is enabled?
Definition: service-flow.h:601
std::string GetServiceClassName() const
Get service class name.
uint16_t m_arqRetryTimeoutTx
ARQ retry timeout transmit.
Definition: service-flow.h:587
uint8_t m_trafficPriority
traffic priority
Definition: service-flow.h:573
uint32_t m_minReservedTrafficRate
minimum reserved traffic rate
Definition: service-flow.h:576
Ptr< WimaxConnection > m_connection
connection
Definition: service-flow.h:600
void SetMaxTrafficBurst(uint32_t maxTrafficBurst)
Set maximum traffic burst.
void SetArqSyncLoss(uint16_t syncLoss)
Set ARQ sync loss.
void SetServiceSchedulingType(ServiceFlow::SchedulingType schedType)
Set service scheduling type.
Tlv ToTlv() const
creates a TLV from this service flow
uint8_t GetQosParamSetType() const
Get QOS parameter set type.
uint32_t m_maxSustainedTrafficRate
maximum sustained traffic rate
Definition: service-flow.h:574
void SetMaximumLatency(uint32_t MaximumLatency)
Set maximum latency.
uint8_t m_arqDeliverInOrder
ARQ deliver in order.
Definition: service-flow.h:591
void SetModulation(WimaxPhy::ModulationType modulationType)
Set modulation.
uint16_t GetArqRetryTimeoutRx() const
Get ARQ retry timeout receive.
void InitValues()
Initialize values.
void SetQosParamSetType(uint8_t type)
Set QOS parameter set type.
uint32_t m_maxTrafficBurst
maximum traffic burst
Definition: service-flow.h:575
uint16_t m_unsolicitedPollingInterval
unsolicited polling interval
Definition: service-flow.h:597
uint8_t m_qosParamSetType
QOS parameter type.
Definition: service-flow.h:572
SchedulingType
section 11.13.11 Service flow scheduling type, page 701
Definition: service-flow.h:62
ServiceFlow()
Default constructor.
Definition: service-flow.cc:45
uint16_t m_arqSyncLoss
ARQ sync loss.
Definition: service-flow.h:590
void SetArqWindowSize(uint16_t arqWindowSize)
Set ARQ retry timeout transmit.
void SetConvergenceSublayerParam(CsParameters csparam)
Set convergence sublayer parameters.
void SetSduSize(uint8_t sduSize)
Set SDU size.
void SetRecord(ServiceFlowRecord *record)
Set service flow record.
char * GetSchedulingTypeStr() const
Get scheduling type string.
uint8_t GetTrafficPriority() const
Get traffic priority.
bool m_isMulticast
is multicast?
Definition: service-flow.h:602
uint8_t GetArqEnable() const
Get ARQ enable.
uint32_t GetMinReservedTrafficRate() const
Get minimum reserved traffic rate.
void SetArqPurgeTimeout(uint16_t timeout)
Set ARQ purge timeout.
uint16_t m_arqPurgeTimeout
ARQ purge timeout.
Definition: service-flow.h:592
Type
Type enumeration.
Definition: service-flow.h:54
uint16_t GetCid() const
Get CID.
bool GetIsEnabled() const
Get is enabled flag.
void SetTrafficPriority(uint8_t priority)
Set traffic priority.
ServiceFlowRecord * m_record
service flow record
Definition: service-flow.h:605
bool HasPackets() const
Check if packets are present.
uint8_t GetSduSize() const
Get SDU size.
void SetArqBlockLifeTime(uint16_t lifeTime)
Set ARQ block lifetime.
CsSpecification GetCsSpecification() const
Get CS specification.
void CopyParametersFrom(ServiceFlow sf)
Copy parameters from another service flow.
uint16_t GetArqRetryTimeoutTx() const
Get ARQ retry timeout transmit.
void SetMinTolerableTrafficRate(uint32_t minJitter)
Set minimum tolerable traffic rate.
uint16_t m_arqWindowSize
ARQ window size.
Definition: service-flow.h:586
void SetIsMulticast(bool isMulticast)
Set is multicast.
uint8_t GetArqDeliverInOrder() const
Get ARQ deliver in order.
void SetArqRetryTimeoutTx(uint16_t timeout)
Set ARQ retry timeout transmit.
ServiceFlow::SchedulingType m_schedulingType
scheduling type
Definition: service-flow.h:578
Type GetType() const
Get type of service flow.
uint8_t m_arqEnable
ARQ enable.
Definition: service-flow.h:585
uint8_t m_fixedversusVariableSduIndicator
fixed versus variable SDI indicator
Definition: service-flow.h:582
uint32_t GetMinTolerableTrafficRate() const
Get minimum tolerable traffic rate.
void SetToleratedJitter(uint32_t jitter)
Set tolerated jitter.
WimaxPhy::ModulationType GetModulation() const
Get modulation.
void SetUnsolicitedGrantInterval(uint16_t unsolicitedGrantInterval)
Set unsolicited grant interval.
ServiceFlowRecord * GetRecord() const
Get service flow record.
uint8_t m_sduSize
SDU size.
Definition: service-flow.h:583
void SetArqDeliverInOrder(uint8_t inOrder)
Set ARQ deliver in order.
uint16_t GetArqBlockLifeTime() const
Get ARQ block lifetime.
uint16_t m_arqRetryTimeoutRx
ARQ retry timeout receive.
Definition: service-flow.h:588
uint16_t GetArqBlockSize() const
Get ARQ block size.
void SetArqRetryTimeoutRx(uint16_t timeout)
Set ARQ retry timeout receive.
void SetUnsolicitedPollingInterval(uint16_t unsolicitedPollingInterval)
Set unsolicited polling interval.
void SetMinReservedTrafficRate(uint32_t minResvRate)
Set minimum reserved traffic rate.
void SetType(Type type)
Set type of service flow.
uint16_t GetArqPurgeTimeout() const
Get ARQ purge timeout.
bool GetIsMulticast() const
Get is multicast.
CsSpecification
section 11.13.19.2 CS parameter encoding rules, page 707
Definition: service-flow.h:74
bool CheckClassifierMatch(Ipv4Address srcAddress, Ipv4Address dstAddress, uint16_t srcPort, uint16_t dstPort, uint8_t proto) const
check classifier match.
CsSpecification m_csSpecification
CS specification.
Definition: service-flow.h:594
uint32_t GetToleratedJitter() const
Get tolerated jitter.
Direction
Direction enumeration.
Definition: service-flow.h:47
Ptr< WimaxMacQueue > GetQueue() const
Get pointer to queue.
uint16_t GetUnsolicitedGrantInterval() const
Get unsolicited grant interval.
uint32_t m_sfid
SFID.
Definition: service-flow.h:570
void SetFixedversusVariableSduIndicator(uint8_t sduIndicator)
Set fixed versus variable SDU indicator.
Direction GetDirection() const
Get direction.
Direction m_direction
direction
Definition: service-flow.h:598
CsParameters GetConvergenceSublayerParam() const
Get convergence sublayer.
void SetMaxSustainedTrafficRate(uint32_t maxSustainedRate)
Set max sustained traffic rate.
Ptr< WimaxConnection > GetConnection() const
Can return a null connection is this service flow has not been associated yet to a connection.
void CleanUpQueue()
Shall be called only by BS.
WimaxPhy::ModulationType m_modulationType
modulation type
Definition: service-flow.h:603
void SetConnection(Ptr< WimaxConnection > connection)
Set connection.
void SetIsEnabled(bool isEnabled)
Set is enabled flag.
this class implements a structure to manage some parameters and statistics related to a service flow
This class implements the Type-Len-Value structure channel encodings as described by "IEEE Standard f...
Definition: wimax-tlv.h:87
ModulationType
ModulationType enumeration.
Definition: wimax-phy.h:54
Every class exported by the ns3 library is enclosed in the ns3 namespace.
ns3::Time timeout