RINASim  October 2016
Documentation of framework for OMNeT++
QoSCube.cc
Go to the documentation of this file.
1 // The MIT License (MIT)
2 //
3 // Copyright (c) 2014-2016 Brno University of Technology, PRISTINE project
4 //
5 // Permission is hereby granted, free of charge, to any person obtaining a copy
6 // of this software and associated documentation files (the "Software"), to deal
7 // in the Software without restriction, including without limitation the rights
8 // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 // copies of the Software, and to permit persons to whom the Software is
10 // furnished to do so, subject to the following conditions:
11 //
12 // The above copyright notice and this permission notice shall be included in
13 // all copies or substantial portions of the Software.
14 //
15 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21 // THE SOFTWARE.
22 
23 /*
24  * @file QoSCube.cc
25  * @author Marcel Marek
26  * @date Apr 28, 2014
27  * @brief
28  * @detail
29  */
30 #include "QoSCube.h"
31 
32 const char* STR_DONOTCARE = "do-not-care";
33 const char* STR_YES = "yes";
34 const char* STR_NO = "no";
35 const int VAL_DEFAULT_QOS = 0;
36 const std::string VAL_UNDEF_QOSID = "UNDEF-QoSCube";
37 const std::string VAL_MGMTQOSID = "MGMT-QoSCube";
38 
40  avgBand(VAL_DEFAULT_QOS), avgSDUBand(VAL_DEFAULT_QOS), peakBandDuration(VAL_DEFAULT_QOS), peakSDUBandDuration(VAL_DEFAULT_QOS),
41  burstPeriod(VAL_DEFAULT_QOS), burstDuration(VAL_DEFAULT_QOS), undetectedBitErr(VAL_DEFAULT_QOS), pduDropProbability(VAL_DEFAULT_QOS), maxSDUsize(VAL_DEFAULT_QOS),
42  partDeliv(false), incompleteDeliv(false), forceOrder(false),
43  maxAllowGap(VAL_DEFAULT_QOS), delay(VAL_DEFAULT_QOS), jitter(VAL_DEFAULT_QOS),
44  costTime(VAL_DEFAULT_QOS), costBits(VAL_DEFAULT_QOS), aTime(VAL_DEFAULT_QOS),
45  rxOn(false), windowFCOn(false), rateFCOn(false), efcpPolicies(new EFCPPolicySet()), resiliencyFactor(VAL_DEFAULT_QOS)
46 {
47 }
48 
49 QoSCube::QoSCube(cXMLElementList& attrs) : qoSId(VAL_UNDEF_QOSID),
50  avgBand(VAL_QOSPARDONOTCARE), avgSDUBand(VAL_QOSPARDONOTCARE), peakBandDuration(VAL_QOSPARDONOTCARE), peakSDUBandDuration(VAL_QOSPARDONOTCARE),
51  burstPeriod(VAL_QOSPARDONOTCARE), burstDuration(VAL_QOSPARDONOTCARE), undetectedBitErr(VAL_QOSPARDONOTCARE), pduDropProbability(VAL_QOSPARDONOTCARE), maxSDUsize(VAL_QOSPARDONOTCARE),
52  partDeliv(false), incompleteDeliv(false), forceOrder(false),
53  maxAllowGap(VAL_QOSPARDONOTCARE), delay(VAL_QOSPARDONOTCARE), jitter(VAL_QOSPARDONOTCARE),
54  costTime(VAL_QOSPARDONOTCARE), costBits(VAL_QOSPARDONOTCARE), aTime(VAL_DEFAULT_QOS),
55  rxOn(false), windowFCOn(false), rateFCOn(false), efcpPolicies(new EFCPPolicySet()), resiliencyFactor(VAL_QOSPARDONOTCARE)
56 {
57  for (cXMLElementList::iterator jt = attrs.begin(); jt != attrs.end(); ++jt)
58  {
59  cXMLElement* n = *jt;
60 
61  if (!strcmp(n->getTagName(), ELEM_AVGBW))
62  {
63  avgBand = n->getNodeValue() ? atoi(n->getNodeValue()) : VAL_QOSPARDONOTCARE;
64  if (avgBand < 0)
66  }
67  else if (!strcmp(n->getTagName(), ELEM_AVGSDUBW))
68  {
69  avgSDUBand = n->getNodeValue() ? atoi(n->getNodeValue()) : VAL_QOSPARDONOTCARE;
70  if (avgSDUBand < 0)
72  }
73  else if (!strcmp(n->getTagName(), ELEM_PEAKBWDUR))
74  {
75  peakBandDuration = n->getNodeValue() ? atoi(n->getNodeValue()) : VAL_QOSPARDONOTCARE;
76  if (peakBandDuration < 0)
78  }
79  else if (!strcmp(n->getTagName(), ELEM_PEAKSDUBWDUR))
80  {
81  peakSDUBandDuration = n->getNodeValue() ? atoi(n->getNodeValue()) : VAL_QOSPARDONOTCARE;
82  if (peakSDUBandDuration < 0)
84  }
85  else if (!strcmp(n->getTagName(), ELEM_BURSTPERIOD))
86  {
87  burstPeriod = n->getNodeValue() ? atoi(n->getNodeValue()) : VAL_QOSPARDONOTCARE;
88  if (burstPeriod < 0)
90  }
91  else if (!strcmp(n->getTagName(), ELEM_BURSTDURATION))
92  {
93  burstDuration = n->getNodeValue() ? atoi(n->getNodeValue()) : VAL_QOSPARDONOTCARE;
94  if (burstDuration < 0)
96  }
97  else if (!strcmp(n->getTagName(), ELEM_UNDETECTBITERR))
98  {
99  undetectedBitErr = n->getNodeValue() ? atof(n->getNodeValue()) : VAL_QOSPARDONOTCARE;
100  if (undetectedBitErr < 0 || undetectedBitErr > 1)
102  }
103  else if (!strcmp(n->getTagName(), ELEM_PDUDROPPROBAB))
104  {
105  pduDropProbability = n->getNodeValue() ? atof(n->getNodeValue()) : VAL_QOSPARDONOTCARE;
106  if (pduDropProbability < 0 || pduDropProbability > 1)
108  }
109  else if (!strcmp(n->getTagName(), ELEM_MAXSDUSIZE))
110  {
111  maxSDUsize = n->getNodeValue() ? atoi(n->getNodeValue()) : VAL_QOSPARDONOTCARE;
112  if (maxSDUsize < 0)
114  }
115  else if (!strcmp(n->getTagName(), ELEM_PARTIALDELIVER))
116  {
117  partDeliv = n->getNodeValue() ? atoi(n->getNodeValue()) : VAL_QOSPARDEFBOOL;
118  }
119  else if (!strcmp(n->getTagName(), ELEM_INCOMPLETEDELIVER))
120  {
121  incompleteDeliv = n->getNodeValue() ? atoi(n->getNodeValue()) : VAL_QOSPARDEFBOOL;
122  }
123  else if (!strcmp(n->getTagName(), ELEM_FORCEORDER))
124  {
125  forceOrder = n->getNodeValue() ? atoi(n->getNodeValue()) : VAL_QOSPARDEFBOOL;
126  }
127  else if (!strcmp(n->getTagName(), ELEM_MAXALLOWGAP))
128  {
129  maxAllowGap = n->getNodeValue() ? atoi(n->getNodeValue()) : VAL_QOSPARDONOTCARE;
130  if (maxAllowGap < 0)
132  }
133  else if (!strcmp(n->getTagName(), ELEM_DELAY))
134  {
135  delay = n->getNodeValue() ? atoi(n->getNodeValue()) : VAL_QOSPARDONOTCARE;
136  if (delay < 0)
138  }
139  else if (!strcmp(n->getTagName(), ELEM_JITTER))
140  {
141  jitter = n->getNodeValue() ? atoi(n->getNodeValue()) : VAL_QOSPARDONOTCARE;
142  if (jitter < 0)
144  }
145  else if (!strcmp(n->getTagName(), ELEM_COSTTIME))
146  {
147  costTime = n->getNodeValue() ? atoi(n->getNodeValue()) : VAL_QOSPARDEFBOOL;
148  if (costTime < 0)
150  }
151  else if (!strcmp(n->getTagName(), ELEM_COSTBITS))
152  {
153  costBits = n->getNodeValue() ? atoi(n->getNodeValue()) : VAL_QOSPARDEFBOOL;
154  if (costBits < 0)
156  }
157  else if (!strcmp(n->getTagName(), ELEM_ATIME))
158  {
159  aTime = n->getNodeValue() ? atof(n->getNodeValue()) : VAL_QOSPARDONOTCARE;
160  if (aTime < 0)
162  }
163  else if (!strcmp(n->getTagName(), ELEM_RXON))
164  {
165  rxOn = (atoi(n->getNodeValue()) == 1) ? true : VAL_QOSPARDEFBOOL;
166  }
167  else if (!strcmp(n->getTagName(), ELEM_WINON))
168  {
169  windowFCOn = (atoi(n->getNodeValue()) == 1) ? true : VAL_QOSPARDEFBOOL;
170  }
171  else if (!strcmp(n->getTagName(), ELEM_RATEON))
172  {
173  rateFCOn = (atoi(n->getNodeValue()) == 1) ? true : VAL_QOSPARDEFBOOL;
174  }
175  else if (!strcmp(n->getTagName(), ELEM_EFCPPOL))
176  {
177  efcpPolicies->init(n);
178  }
179  else if(!strcmp(n->getTagName(), ELEM_RESILIENCYFACTOR))
180  {
181  resiliencyFactor = n->getNodeValue() ? atoi(n->getNodeValue()) : VAL_QOSPARDONOTCARE;
182  if (resiliencyFactor < 0)
184  }
185  }
186 }
187 
188 QoSCube::QoSCube(std::string tqosid,
189  int tavgBand, int tavgSDUBand,
190  int tpeakBandDuration, int tpeakSDUBandDuration,
191  int tburstPeriod, int tburstDuration,
192  double tundetectedBitErr, double tpduDropProbab,
193  int tmaxSDUsize,
194  bool tpartDeliv, bool tincompleteDeliv, bool tforceOrder,
195  unsigned int tmaxAllowGap, int tdelay, int tjitter,
196  int tcosttime, int tcostbits,
197  double tatime, bool trxon, bool twinfcon, bool tratefcon) :
198  qoSId(tqosid),
199  avgBand(tavgBand), avgSDUBand(tavgSDUBand),
200  peakBandDuration(tpeakBandDuration), peakSDUBandDuration(tpeakSDUBandDuration),
201  burstPeriod(tburstPeriod), burstDuration(tburstDuration),
202  undetectedBitErr(tundetectedBitErr), pduDropProbability(tpduDropProbab),
203  maxSDUsize(tmaxSDUsize),
204  partDeliv(tpartDeliv), incompleteDeliv(tincompleteDeliv), forceOrder(tforceOrder),
205  maxAllowGap(tmaxAllowGap), delay(tdelay), jitter(tjitter),
206  costTime(tcosttime), costBits(tcostbits),
207  aTime(tatime), rxOn(trxon), windowFCOn(twinfcon), rateFCOn(tratefcon),
208  efcpPolicies(new EFCPPolicySet())
209 {
210 }
211 
213 
215 
217  avgSDUBand = VAL_DEFAULT_QOS; //Average SDU bandwidth (measured in SDUs/sec)
218  peakBandDuration = VAL_DEFAULT_QOS; //Peak bandwidth-duration (measured in bits/sec);
219  peakSDUBandDuration = VAL_DEFAULT_QOS; //Peak SDU bandwidth-duration (measured in SDUs/sec);
220  burstPeriod = VAL_DEFAULT_QOS; //Burst period measured in useconds
221  burstDuration = VAL_DEFAULT_QOS; //Burst duration, measured in useconds fraction of Burst Period
222  undetectedBitErr = VAL_DEFAULT_QOS; //Undetected bit error rate measured as a probability
224  maxSDUsize = VAL_DEFAULT_QOS; //MaxSDUSize measured in bytes
225  partDeliv = false; //Partial Delivery - Can SDUs be delivered in pieces rather than all at once?
226  incompleteDeliv = false; //Incomplete Delivery - Can SDUs with missing pieces be delivered?
227  forceOrder = false; //Must SDUs be delivered in-order bits
228  maxAllowGap = VAL_DEFAULT_QOS; //Max allowable gap in SDUs, (a gap of N SDUs is considered the same as all SDUs delivered, i.e. a gap of N is a "don't care.")
229  delay = VAL_DEFAULT_QOS; //Delay in usecs
230  jitter = VAL_DEFAULT_QOS; //Jitter in usecs
231  costTime = VAL_DEFAULT_QOS; //measured in $/ms
232  costBits = VAL_DEFAULT_QOS; //measured in $/Mb
234 }
235 
237  12000, 10,
238  24000, 20,
239  10000, 10000,
240  0.0, 0.0,
241  1500,
242  false, false, true,
243  0, 0, 0,
244  0, 0,
245  0.0, true, true, false
246  );
247 
248 std::ostream& operator <<(std::ostream& os, const QoSCube& cube) {
249  return os << cube.info();
250 }
251 
252 int QoSCube::getAvgBand() const {
253  return avgBand;
254 }
255 
256 void QoSCube::setAvgBand(int avgBand) {
257  this->avgBand = avgBand;
258 }
259 
261  return avgSDUBand;
262 }
263 
264 void QoSCube::setAvgSduBand(int avgSduBand) {
265  avgSDUBand = avgSduBand;
266 }
267 
269  return burstDuration;
270 }
271 
272 void QoSCube::setBurstDuration(int burstDuration) {
273  this->burstDuration = burstDuration;
274 }
275 
277  return burstPeriod;
278 }
279 
280 void QoSCube::setBurstPeriod(int burstPeriod) {
281  this->burstPeriod = burstPeriod;
282 }
283 
284 int QoSCube::getDelay() const {
285  return delay;
286 }
287 
288 void QoSCube::setDelay(int delay) {
289  this->delay = delay;
290 }
291 
292 bool QoSCube::isForceOrder() const {
293  return forceOrder;
294 }
295 
296 void QoSCube::setForceOrder(bool forceOrder) {
297  this->forceOrder = forceOrder;
298 }
299 
301  return incompleteDeliv;
302 }
303 
304 void QoSCube::setIncompleteDelivery(bool incompleteDeliv) {
305  this->incompleteDeliv = incompleteDeliv;
306 }
307 
308 int QoSCube::getJitter() const {
309  return jitter;
310 }
311 
312 void QoSCube::setJitter(int jitter) {
313  this->jitter = jitter;
314 }
315 
317  return maxAllowGap;
318 }
319 
320 void QoSCube::setMaxAllowGap(int maxAllowGap) {
321  this->maxAllowGap = maxAllowGap;
322 }
323 
325  return maxSDUsize;
326 }
327 
328 void QoSCube::setMaxSduSize(int maxSdUsize) {
329  maxSDUsize = maxSdUsize;
330 }
331 
333  return partDeliv;
334 }
335 
336 void QoSCube::setPartialDelivery(bool partDeliv) {
337  this->partDeliv = partDeliv;
338 }
339 
341  return peakBandDuration;
342 }
343 
344 void QoSCube::setPeakBandDuration(int peakBandDuration) {
345  this->peakBandDuration = peakBandDuration;
346 }
347 
349  return peakSDUBandDuration;
350 }
351 
352 void QoSCube::setPeakSduBandDuration(int peakSduBandDuration) {
353  peakSDUBandDuration = peakSduBandDuration;
354 }
355 
357  return undetectedBitErr;
358 }
359 
360 void QoSCube::setUndetectedBitErr(double undetectedBitErr) {
361  this->undetectedBitErr = undetectedBitErr;
362 }
363 
364 std::string QoSCube::getQosId() const {
365  return qoSId;
366 }
367 
368 double QoSCube::getCostBits() const {
369  return costBits;
370 }
371 
372 void QoSCube::setCostBits(double costBits) {
373  this->costBits = costBits;
374 }
375 
376 double QoSCube::getCostTime() const {
377  return costTime;
378 }
379 
380 void QoSCube::setCostTime(double costTime) {
381  this->costTime = costTime;
382 }
383 
384 double QoSCube::getATime() const {
385  return aTime;
386 }
387 
388 void QoSCube::setATime(double aTime) {
389  this->aTime = aTime;
390 }
391 
392 void QoSCube::setQosId(std::string qoSId) {
393  this->qoSId = qoSId;
394 }
395 
397  return isRxOn() || isWindowFcOn() || isRateFcOn();
398 }
399 
401  return pduDropProbability;
402 }
403 
404 void QoSCube::setPduDropProbability(double pduDropProbability) {
405  this->pduDropProbability = pduDropProbability;
406 }
407 
408 std::string QoSCube::info() const {
409  std::ostringstream os;
410 
411  os << "QoSCube Id> " << this->getQosId();
412 
413  os << "\n average BW = ";
414  os << this->getAvgBand() << " bit/s";
415 
416  os << ", average SDU BW = ";
417  os << this->getAvgSduBand() << " SDU/s";
418 
419  os << "\n peak BW duration = ";
420  os << this->getPeakBandDuration() << " bit/s";
421 
422  os << ", peak SDU BW duration = ";
423  os << this->getPeakSduBandDuration() << " SDU/s";
424 
425  os << "\n burst period = ";
426  os << this->getBurstPeriod() << " usecs";
427 
428  os << ", burst duration = ";
429  os << this->getBurstDuration() << " usecs";
430 
431  os << "\n undetect. bit errors = ";
432  os << this->getUndetectedBitErr() << "%";
433 
434  os << ", PDU dropping probability = ";
435  os << this->getPduDropProbability() << "%";
436 
437  os << "\n max SDU Size = ";
438  os << this->getMaxSduSize() << " B";
439 
440  os << "\n partial delivery = " << (this->isPartialDelivery() ? STR_YES : STR_NO );
441 
442  os << ", incomplete delivery = " << (this->isIncompleteDelivery() ? STR_YES : STR_NO );
443 
444  os << "\n force order = " << (this->isForceOrder() ? STR_YES : STR_NO );
445 
446  os << "\n max allowed gap = ";
447  os << this->getMaxAllowGap() << " SDUs";
448 
449  os << "\n delay = ";
450  os << this->getDelay() << " usecs";
451 
452  os << ", jitter = ";
453  os << this->getJitter() << " usecs";
454 
455  os << "\n cost-time = ";
456  os << this->getCostTime() << " $/ms";
457 
458  os << ", cost-bits = ";
459  os << this->getCostBits() << " $/Mb";
460 
461  os << "\n A-Time = ";
462  os << this->getATime() << "ms";
463 
464  os << "\n resiliency factor = ";
465  if ( this->getResiliencyFactor() < 0 )
466  os << STR_DONOTCARE;
467  else
468  os << this->getResiliencyFactor() << " usecs";
469 
470  return os.str();
471 }
472 
474 {
475  return efcpPolicies;
476 }
477 
479 {
480 return rateFCOn;
481 }
482 
483 bool QoSCube::isRxOn() const
484 {
485 return rxOn;
486 }
487 
489 {
490 return windowFCOn;
491 }
492 
503  ;
504 }
505 
507 {
508  this->efcpPolicies = efcpPolicies;
509 }
510 
511 
512 void QoSCube::setRateFcOn(bool rateFcOn)
513 {
514  rateFCOn = rateFcOn;
515 }
516 
517 void QoSCube::setRxOn(bool rxOn)
518 {
519  this->rxOn = rxOn;
520 }
521 
522 void QoSCube::setWindowFcOn(bool windowFcOn)
523 {
524  windowFCOn = windowFcOn;
525 }
const int VAL_DEFAULT_QOS
Definition: QoSCube.cc:35
static const QoSCube MANAGEMENT
Definition: QoSCube.h:201
void setMaxAllowGap(int maxAllowGap)
Sets Maximum Allowable Gap in SDUs parameter.
Definition: QoSCube.cc:320
bool isDTCPNeeded() const
Returns true if DTCP module is needed in order to support this QoScube.
Definition: QoSCube.cc:396
virtual ~QoSCube()
Destructor assigning default uninitialized values.
Definition: QoSCube.cc:212
const bool VAL_QOSPARDEFBOOL
int avgBand
Attribute holding average bandwidth.
Definition: QoSCube.h:68
const char * ELEM_AVGSDUBW
const char * ELEM_EFCPPOL
int getBurstPeriod() const
Gets Burst Period parameter.
Definition: QoSCube.cc:276
void setPartialDelivery(bool partDeliv)
Sets partial delivery flag.
Definition: QoSCube.cc:336
int getBurstDuration() const
Gets Burst Duration parameter.
Definition: QoSCube.cc:268
void setPeakBandDuration(int peakBandDuration)
Sets Peak Band Duration parameter.
Definition: QoSCube.cc:344
const EFCPPolicySet * getEfcpPolicies() const
Definition: QoSCube.cc:473
int getAvgBand() const
Gets Average Bandwidth parameter.
Definition: QoSCube.cc:252
void setAvgSduBand(int avgSduBand)
Sets Average SDU Bandwidth parameter.
Definition: QoSCube.cc:264
void setMaxSduSize(int maxSdUsize)
Sets Maximum SDU Size parameter.
Definition: QoSCube.cc:328
bool isRateFcOn() const
Definition: QoSCube.cc:478
EFCPPolicySet * efcpPolicies
Vector of bound default policies.
Definition: QoSCube.h:173
double getPduDropProbability() const
Gets PDU Dropping Probability parameter.
Definition: QoSCube.cc:400
QoSCube()
Constructor of QoSCube with undefined values.
Definition: QoSCube.cc:39
int burstDuration
Attribute holding burst durating as usec fraction of burst period.
Definition: QoSCube.h:93
bool windowFCOn
Attribute holding whether Window-based Flow Control is active.
Definition: QoSCube.h:163
int jitter
Attribute holding accepted jitter.
Definition: QoSCube.h:138
int getPeakBandDuration() const
Gets Peak Band Duration parameter.
Definition: QoSCube.cc:340
const char * ELEM_FORCEORDER
void setEfcpPolicies(EFCPPolicySet *efcpPolicies)
Definition: QoSCube.cc:506
int maxAllowGap
Attribute holding maximum allowd gap in SDUs.
Definition: QoSCube.h:128
const char * ELEM_UNDETECTBITERR
int getJitter() const
Gets Jitter parameter.
Definition: QoSCube.cc:308
int maxSDUsize
Attribute holding maximum SDU size.
Definition: QoSCube.h:108
const char * ELEM_COSTBITS
double getCostBits() const
Gets Cost-bits parameter.
Definition: QoSCube.cc:368
int peakBandDuration
Attribute holding peak bandwidth duration.
Definition: QoSCube.h:78
const std::string VAL_MGMTQOSID
Definition: QoSCube.cc:37
bool isDefined()
Definition: QoSCube.cc:493
const char * ELEM_ATIME
void setBurstDuration(int burstDuration)
Sets Burst Duration parameter.
Definition: QoSCube.cc:272
int getMaxSduSize() const
Gets Maximum SDU Size parameter.
Definition: QoSCube.cc:324
double getUndetectedBitErr() const
Gets Undetected Bit Error Rate parameter.
Definition: QoSCube.cc:356
const char * ELEM_RXON
double getATime() const
Gets A-Timer parameter.
Definition: QoSCube.cc:384
void setUndetectedBitErr(double undetectedBitErr)
Sets Undetected Bit Error Rate parameter.
Definition: QoSCube.cc:360
const std::string VAL_UNDEF_QOSID
Definition: QoSCube.cc:36
bool init(cXMLElement *parent)
const char * ELEM_PEAKBWDUR
int peakSDUBandDuration
Attribute holding peak SDU bandwidth duration.
Definition: QoSCube.h:83
void setRxOn(bool rxOn)
Definition: QoSCube.cc:517
void setDelay(int delay)
Sets Delay parameter.
Definition: QoSCube.cc:288
int getResiliencyFactor() const
Gets Resiliency Factor parameter.
Definition: QoSCube.h:443
void setATime(double aTime)
Sets A-Timer parameter.
Definition: QoSCube.cc:388
void setJitter(int jitter)
Sets Jitter parameter.
Definition: QoSCube.cc:312
bool isIncompleteDelivery() const
Gets incomplete delivery flag.
Definition: QoSCube.cc:300
void setRateFcOn(bool rateFcOn)
Definition: QoSCube.cc:512
const char * ELEM_WINON
int resiliencyFactor
Attribute holding resiliency information, see PRISTINE D4.3 for more.
Definition: QoSCube.h:178
const char * ELEM_INCOMPLETEDELIVER
const char * ELEM_JITTER
const char * ELEM_COSTTIME
const int VAL_QOSPARDONOTCARE
int delay
Attribute holding accepted delay.
Definition: QoSCube.h:133
void setCostTime(double costTime)
Sets Cost-time parameter.
Definition: QoSCube.cc:380
const char * STR_YES
Definition: QoSCube.cc:33
std::ostream & operator<<(std::ostream &os, const QoSCube &cube)
Definition: QoSCube.cc:248
void setPduDropProbability(double pduDropProbability)
Sets PDU Dropping Probability parameter.
Definition: QoSCube.cc:404
std::string info() const
Prints QoSCube information as string.
Definition: QoSCube.cc:408
const char * ELEM_MAXALLOWGAP
int burstPeriod
Attribute holding burst period in usecs.
Definition: QoSCube.h:88
void setIncompleteDelivery(bool incompleteDeliv)
Sets incomplete delivery flag.
Definition: QoSCube.cc:304
int costTime
Attribute holding connection's time price.
Definition: QoSCube.h:143
int avgSDUBand
Attribute holding average SDU bandwidth.
Definition: QoSCube.h:73
Class representing QoSCube with all its properties that is primarily used by FA, RMT and RA Specifica...
Definition: QoSCube.h:57
bool isRxOn() const
Definition: QoSCube.cc:483
void setQosId(std::string qoSId)
Sets QoSCube identifier.
Definition: QoSCube.cc:392
double getCostTime() const
Gets Cost-time parameter.
Definition: QoSCube.cc:376
bool isPartialDelivery() const
Gets partial delivery flag.
Definition: QoSCube.cc:332
bool isForceOrder() const
Gets in-order delivery flag.
Definition: QoSCube.cc:292
void setForceOrder(bool forceOrder)
Sets in-order delivery flag.
Definition: QoSCube.cc:296
std::string qoSId
Attribute holding QoSCube identifier. Beaware, value 0 is reserved for Flow QoS demands! ...
Definition: QoSCube.h:63
const char * ELEM_PEAKSDUBWDUR
std::string getQosId() const
Gets QoSCube identifier.
Definition: QoSCube.cc:364
double undetectedBitErr
Attribute holding probability of undetected bit error rate.
Definition: QoSCube.h:98
bool rxOn
Attribute holding whether Retransmission Control is active.
Definition: QoSCube.h:158
const char * ELEM_RESILIENCYFACTOR
const char * ELEM_BURSTDURATION
void setWindowFcOn(bool windowFcOn)
Definition: QoSCube.cc:522
const char * ELEM_AVGBW
const char * ELEM_PARTIALDELIVER
const char * ELEM_DELAY
void setPeakSduBandDuration(int peakSduBandDuration)
Sets Peak SDU Duration parameter.
Definition: QoSCube.cc:352
void setAvgBand(int avgBand)
Sets Average Bandwidth parameter.
Definition: QoSCube.cc:256
bool isWindowFcOn() const
Definition: QoSCube.cc:488
void setCostBits(double costBits)
Sets Cost-bits parameter.
Definition: QoSCube.cc:372
const char * STR_NO
Definition: QoSCube.cc:34
double pduDropProbability
Attribute holding probability of dropping PDUs.
Definition: QoSCube.h:103
void setBurstPeriod(int burstPeriod)
Sets Burst Period parameter.
Definition: QoSCube.cc:280
int getDelay() const
Gets Delay parameter.
Definition: QoSCube.cc:284
const char * ELEM_BURSTPERIOD
int costBits
Attribute holding connection's transmission size price.
Definition: QoSCube.h:148
const char * STR_DONOTCARE
Definition: QoSCube.cc:32
const char * ELEM_MAXSDUSIZE
const char * ELEM_RATEON
bool partDeliv
Attribute holding partial delivery flag.
Definition: QoSCube.h:113
double aTime
Attribute holding A-Timer size in ms.
Definition: QoSCube.h:153
int getPeakSduBandDuration() const
Gets Peak SDU Duration parameter.
Definition: QoSCube.cc:348
bool forceOrder
Attribute holding in-order delivery flag.
Definition: QoSCube.h:123
const char * ELEM_PDUDROPPROBAB
int getAvgSduBand() const
Gets Average SDU Bandwidth parameter.
Definition: QoSCube.cc:260
bool rateFCOn
Attribute holding whether Rate-based Flow Control is active.
Definition: QoSCube.h:168
bool incompleteDeliv
Attribute holding incomplete delivery flag.
Definition: QoSCube.h:118
int getMaxAllowGap() const
Gets Maximum Allowable Gap in SDUs parameter.
Definition: QoSCube.cc:316