RINASim  October 2016
Documentation of framework for OMNeT++
QoSReq.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 QoSReq.cc
25  * @author Marcel Marek
26  * @date May 1, 2015
27  * @brief
28  * @detail
29  */
30 #include "QoSReq.h"
31 
32 const char* STR_REQDONOTCARE = "do-not-care";
33 const char* STR_REQYES = "yes";
34 const char* STR_REQNO = "no";
35 const int VAL_DEFQOSREQ = -1;
36 
38  avgBand(VAL_DEFQOSREQ), avgSDUBand(VAL_DEFQOSREQ), peakBandDuration(VAL_DEFQOSREQ), peakSDUBandDuration(VAL_DEFQOSREQ),
39  burstPeriod(VAL_DEFQOSREQ), burstDuration(VAL_DEFQOSREQ), undetectedBitErr(VAL_DEFQOSREQ), pduDropProbability(VAL_DEFQOSREQ), maxSDUsize(VAL_DEFQOSREQ),
40  partDeliv(false), incompleteDeliv(false), forceOrder(false),
41  maxAllowGap(VAL_DEFQOSREQ), delay(VAL_DEFQOSREQ), jitter(VAL_DEFQOSREQ),
42  costTime(VAL_DEFQOSREQ), costBits(VAL_DEFQOSREQ)
43 {
44 }
45 
46 QoSReq::QoSReq(int tavgBand, int tavgSDUBand, int tpeakBandDuration,
47  int tpeakSDUBandDuration, int tburstPeriod, int tburstDuration,
48  double tundetectedBitErr, double tpduDropProbab, int tmaxSDUsize,
49  bool tpartDeliv, bool tincompleteDeliv, bool tforceOrder,
50  unsigned int tmaxAllowGap, int tdelay, int tjitter, int tcostTime,
51  int tcostBits) {
52  avgBand = tavgBand;
53  if (avgBand < 0)
55  avgSDUBand = tavgSDUBand;
56  if (avgSDUBand < 0)
58  peakBandDuration = tpeakBandDuration;
59  if (peakBandDuration < 0)
61  peakSDUBandDuration = tpeakSDUBandDuration;
62  if (peakSDUBandDuration < 0)
64  burstPeriod = tburstPeriod;
65  if (burstPeriod < 0)
67  burstDuration = tburstDuration;
68  if (burstDuration < 0)
70  undetectedBitErr = tundetectedBitErr;
71  if (undetectedBitErr < 0 || undetectedBitErr > 1 )
73  pduDropProbability = tpduDropProbab;
74  if (pduDropProbability < 0 || pduDropProbability > 1 )
76  maxSDUsize = tmaxSDUsize;
77  if (maxSDUsize < 0)
79  partDeliv = tpartDeliv;
80  incompleteDeliv = tincompleteDeliv;
81  forceOrder = tforceOrder;
82  maxAllowGap = tmaxAllowGap;
83  if (maxAllowGap < 0)
85  delay = tdelay;
86  if (delay < 0)
88  jitter = tjitter;
89  if (jitter < 0)
91  costTime = tcostTime;
92  if (costTime < 0)
94  costBits = tcostBits;
95  if (costBits < 0)
97 }
98 
99 QoSReq::QoSReq(cXMLElementList& attrs) :
100  avgBand(VAL_DEFQOSREQ), avgSDUBand(VAL_DEFQOSREQ), peakBandDuration(VAL_DEFQOSREQ), peakSDUBandDuration(VAL_DEFQOSREQ),
101  burstPeriod(VAL_DEFQOSREQ), burstDuration(VAL_DEFQOSREQ), undetectedBitErr(VAL_DEFQOSREQ), pduDropProbability(VAL_DEFQOSREQ), maxSDUsize(VAL_DEFQOSREQ),
102  partDeliv(false), incompleteDeliv(false), forceOrder(false),
103  maxAllowGap(VAL_DEFQOSREQ), delay(VAL_DEFQOSREQ), jitter(VAL_DEFQOSREQ),
104  costTime(VAL_DEFQOSREQ), costBits(VAL_DEFQOSREQ)
105 {
106  for (cXMLElementList::iterator jt = attrs.begin(); jt != attrs.end(); ++jt) {
107  cXMLElement* n = *jt;
108 
109  if ( !strcmp(n->getTagName(), ELEM_AVGBW) ) {
110  avgBand = n->getNodeValue() ? atoi(n->getNodeValue()) : VAL_QOSPARDONOTCARE;
111  if (avgBand < 0)
113  }
114  else if (!strcmp(n->getTagName(), ELEM_AVGSDUBW)) {
115  avgSDUBand = n->getNodeValue() ? atoi(n->getNodeValue()) : VAL_QOSPARDONOTCARE;
116  if (avgSDUBand < 0)
118  }
119  else if (!strcmp(n->getTagName(), ELEM_PEAKBWDUR)) {
120  peakBandDuration = n->getNodeValue() ? atoi(n->getNodeValue()) : VAL_QOSPARDONOTCARE;
121  if (peakBandDuration < 0)
123  }
124  else if (!strcmp(n->getTagName(), ELEM_PEAKSDUBWDUR)) {
125  peakSDUBandDuration = n->getNodeValue() ? atoi(n->getNodeValue()) : VAL_QOSPARDONOTCARE;
126  if (peakSDUBandDuration < 0)
128  }
129  else if (!strcmp(n->getTagName(), ELEM_BURSTPERIOD)) {
130  burstPeriod = n->getNodeValue() ? atoi(n->getNodeValue()) : VAL_QOSPARDONOTCARE;
131  if (burstPeriod < 0)
133  }
134  else if (!strcmp(n->getTagName(), ELEM_BURSTDURATION)) {
135  burstDuration = n->getNodeValue() ? atoi(n->getNodeValue()) : VAL_QOSPARDONOTCARE;
136  if (burstDuration < 0)
138  }
139  else if (!strcmp(n->getTagName(), ELEM_UNDETECTBITERR)) {
140  undetectedBitErr = n->getNodeValue() ? atof(n->getNodeValue()) : VAL_QOSPARDONOTCARE;
141  if (undetectedBitErr < 0 || undetectedBitErr > 1 )
143  }
144  else if (!strcmp(n->getTagName(), ELEM_PDUDROPPROBAB)) {
145  pduDropProbability = n->getNodeValue() ? atof(n->getNodeValue()) : VAL_QOSPARDONOTCARE;
146  if (pduDropProbability < 0 || pduDropProbability > 1 )
148  }
149  else if (!strcmp(n->getTagName(), ELEM_MAXSDUSIZE)) {
150  maxSDUsize = n->getNodeValue() ? atoi(n->getNodeValue()) : VAL_QOSPARDONOTCARE;
151  if (maxSDUsize < 0)
153  }
154  else if (!strcmp(n->getTagName(), ELEM_PARTIALDELIVER)) {
155  partDeliv = n->getNodeValue() ? atoi(n->getNodeValue()) : VAL_QOSPARDEFBOOL;
156  }
157  else if (!strcmp(n->getTagName(), ELEM_INCOMPLETEDELIVER)) {
158  incompleteDeliv = n->getNodeValue() ? atoi(n->getNodeValue()) : VAL_QOSPARDEFBOOL;
159  }
160  else if (!strcmp(n->getTagName(), ELEM_FORCEORDER)) {
161  forceOrder = n->getNodeValue() ? atoi(n->getNodeValue()) : VAL_QOSPARDEFBOOL;
162  }
163  else if (!strcmp(n->getTagName(), ELEM_MAXALLOWGAP)) {
164  maxAllowGap = n->getNodeValue() ? atoi(n->getNodeValue()) : VAL_QOSPARDONOTCARE;
165  if (maxAllowGap < 0)
167  }
168  else if (!strcmp(n->getTagName(), ELEM_DELAY)) {
169  delay = n->getNodeValue() ? atoi(n->getNodeValue()) : VAL_QOSPARDONOTCARE;
170  if (delay < 0)
172  }
173  else if (!strcmp(n->getTagName(), ELEM_JITTER)) {
174  jitter = n->getNodeValue() ? atoi(n->getNodeValue()) : VAL_QOSPARDONOTCARE;
175  if (jitter < 0)
177  }
178  else if (!strcmp(n->getTagName(), ELEM_COSTTIME)) {
179  costTime = n->getNodeValue() ? atoi(n->getNodeValue()) : VAL_QOSPARDEFBOOL;
180  if (costTime < 0)
182  }
183  else if (!strcmp(n->getTagName(), ELEM_COSTBITS)) {
184  costBits = n->getNodeValue() ? atoi(n->getNodeValue()) : VAL_QOSPARDEFBOOL;
185  if (costBits < 0)
187  }
188  }
189 }
190 
192  12000, 10,
193  24000, 20,
194  10000, 10000,
195  0.0, 0.0,
196  1500,
197  false, false, true,
198  0, 0, 0,
199  0, 0
200  );
201 
204  avgSDUBand = VAL_DEFQOSREQ; //Average SDU bandwidth (measured in SDUs/sec)
205  peakBandDuration = VAL_DEFQOSREQ; //Peak bandwidth-duration (measured in bits/sec);
206  peakSDUBandDuration = VAL_DEFQOSREQ; //Peak SDU bandwidth-duration (measured in SDUs/sec);
207  burstPeriod = VAL_DEFQOSREQ; //Burst period measured in useconds
208  burstDuration = VAL_DEFQOSREQ; //Burst duration, measured in useconds fraction of Burst Period
209  undetectedBitErr = VAL_DEFQOSREQ; //Undetected bit error rate measured as a probability
210  maxSDUsize = VAL_DEFQOSREQ; //MaxSDUSize measured in bytes
211  partDeliv = false; //Partial Delivery - Can SDUs be delivered in pieces rather than all at once?
212  incompleteDeliv = false; //Incomplete Delivery - Can SDUs with missing pieces be delivered?
213  forceOrder = false; //Must SDUs be delivered in-order bits
214  maxAllowGap = VAL_DEFQOSREQ; //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.")
215  delay = VAL_DEFQOSREQ; //Delay in usecs
216  jitter = VAL_DEFQOSREQ; //Jitter in usecs
217  costTime = VAL_DEFQOSREQ; //measured in $/ms
218  costBits = VAL_DEFQOSREQ; //measured in $/Mb
219 }
220 
221 int QoSReq::getAvgBand() const {
222  return avgBand;
223 }
224 
225 void QoSReq::setAvgBand(int avgBand) {
226  this->avgBand = avgBand;
227 }
228 
230  return avgSDUBand;
231 }
232 
233 void QoSReq::setAvgSduBand(int avgSduBand) {
234  avgSDUBand = avgSduBand;
235 }
236 
238  return burstDuration;
239 }
240 
241 void QoSReq::setBurstDuration(int burstDuration) {
242  this->burstDuration = burstDuration;
243 }
244 
246  return burstPeriod;
247 }
248 
249 void QoSReq::setBurstPeriod(int burstPeriod) {
250  this->burstPeriod = burstPeriod;
251 }
252 
253 int QoSReq::getDelay() const {
254  return delay;
255 }
256 
257 void QoSReq::setDelay(int delay) {
258  this->delay = delay;
259 }
260 
261 bool QoSReq::isForceOrder() const {
262  return forceOrder;
263 }
264 
265 void QoSReq::setForceOrder(bool forceOrder) {
266  this->forceOrder = forceOrder;
267 }
268 
270  return incompleteDeliv;
271 }
272 
273 void QoSReq::setIncompleteDelivery(bool incompleteDeliv) {
274  this->incompleteDeliv = incompleteDeliv;
275 }
276 
277 int QoSReq::getJitter() const {
278  return jitter;
279 }
280 
281 void QoSReq::setJitter(int jitter) {
282  this->jitter = jitter;
283 }
284 
286  return maxAllowGap;
287 }
288 
289 void QoSReq::setMaxAllowGap(int maxAllowGap) {
290  this->maxAllowGap = maxAllowGap;
291 }
292 
294  return maxSDUsize;
295 }
296 
297 void QoSReq::setMaxSduSize(int maxSdUsize) {
298  maxSDUsize = maxSdUsize;
299 }
300 
302  return partDeliv;
303 }
304 
305 void QoSReq::setPartialDelivery(bool partDeliv) {
306  this->partDeliv = partDeliv;
307 }
308 
310  return peakBandDuration;
311 }
312 
313 void QoSReq::setPeakBandDuration(int peakBandDuration) {
314  this->peakBandDuration = peakBandDuration;
315 }
316 
318  return peakSDUBandDuration;
319 }
320 
321 void QoSReq::setPeakSduBandDuration(int peakSduBandDuration) {
322  peakSDUBandDuration = peakSduBandDuration;
323 }
324 
326  return undetectedBitErr;
327 }
328 
329 void QoSReq::setUndetectedBitErr(double undetectedBitErr) {
330  this->undetectedBitErr = undetectedBitErr;
331 }
332 
333 double QoSReq::getCostBits() const {
334  return costBits;
335 }
336 
337 void QoSReq::setCostBits(double costBits) {
338  this->costBits = costBits;
339 }
340 
341 double QoSReq::getCostTime() const {
342  return costTime;
343 }
344 
345 void QoSReq::setCostTime(double costTime) {
346  this->costTime = costTime;
347 }
348 
349 std::ostream& operator <<(std::ostream& os, const QoSReq& qosreq) {
350  return os << qosreq.info();
351 }
352 
353 //XXX: Vesely: BEAWARE! Do-not-care value might be the problem when comparing
354 // other AP with some requirements and this with none!!!
355 bool QoSReq::compare(const QoSReq& other) const {
356  //EV << "!!!!!Mine" << endl << info() << endl << "!!!!Other" << other.info() ;
357  return (other.getAvgBand() <= avgBand && other.getAvgSduBand() <= avgSDUBand
359  && other.getBurstPeriod() <= burstPeriod && other.getBurstDuration() <= burstDuration
361  && other.getMaxSduSize() <= maxSDUsize
363  && other.getMaxAllowGap() <= maxAllowGap && other.getDelay() <= delay && other.getJitter() <= jitter
364  && other.getCostTime() <= costTime && other.getCostBits() <= costBits
365  ) ? true : false;
366 }
367 
368 std::string QoSReq::info() const {
369  std::ostringstream os;
370 
371  os << "QoS Requirements List>";
372 
373  os << "\n average BW = ";
374  if ( this->getAvgBand() < 0)
375  os << STR_DONOTCARE;
376  else
377  os << this->getAvgBand() << " bit/s";
378 
379  os << ", average SDU BW = ";
380  if (this->getAvgSduBand() < 0)
381  os << STR_DONOTCARE;
382  else
383  os << this->getAvgSduBand() << " SDU/s";
384 
385  os << "\n peak BW duration = ";
386  if (this->getPeakBandDuration() < 0)
387  os << STR_DONOTCARE;
388  else
389  os << this->getPeakBandDuration() << " bit/s";
390 
391  os << ", peak SDU BW duration = ";
392  if ( this->getPeakSduBandDuration() < 0)
393  os << STR_DONOTCARE;
394  else
395  os << this->getPeakSduBandDuration() << " SDU/s";
396 
397  os << "\n burst period = ";
398  if ( this->getBurstPeriod() < 0 )
399  os << STR_DONOTCARE;
400  else
401  os << this->getBurstPeriod() << " usecs";
402 
403  os << ", burst duration = ";
404  if ( this->getBurstDuration() < 0 )
405  os << STR_DONOTCARE;
406  else
407  os << this->getBurstDuration() << " usecs";
408 
409  os << "\n undetect. bit errors = ";
410  if ( this->getUndetectedBitErr() < 0 )
411  os << STR_DONOTCARE;
412  else
413  os << this->getUndetectedBitErr() << "%";
414 
415  os << ", PDU dropping probability = ";
416  if ( this->getPduDropProbability() < 0 )
417  os << STR_DONOTCARE;
418  else
419  os << this->getPduDropProbability() << "%";
420 
421  os << "\n max SDU Size = ";
422  if ( this->getMaxSduSize() < 0 )
423  os << STR_DONOTCARE;
424  else
425  os << this->getMaxSduSize() << " B";
426 
427  os << "\n partial delivery = " << (this->isPartialDelivery() ? STR_YES : STR_NO );
428 
429  os << ", incomplete delivery = " << (this->isIncompleteDelivery() ? STR_YES : STR_NO );
430 
431  os << "\n force order = " << (this->isForceOrder() ? STR_YES : STR_NO );
432 
433  os << "\n max allowed gap = ";
434  if ( this->getMaxAllowGap() < 0 )
435  os << STR_DONOTCARE;
436  else
437  os << this->getMaxAllowGap() << " SDUs";
438 
439  os << "\n delay = ";
440  if ( this->getDelay() < 0 )
441  os << STR_DONOTCARE;
442  else
443  os << this->getDelay() << " usecs";
444 
445  os << ", jitter = ";
446  if ( this->getJitter() < 0 )
447  os << STR_DONOTCARE;
448  else
449  os << this->getJitter() << " usecs";
450 
451  os << "\n cost-time = ";
452  if ( this->getCostTime() < 0 )
453  os << STR_DONOTCARE;
454  else
455  os << this->getCostTime() << " $/ms";
456 
457  os << ", cost-bits = ";
458  if ( this->getCostBits() < 0 )
459  os << STR_DONOTCARE;
460  else
461  os << this->getCostBits() << " $/Mb";
462 
463  os << "\n resiliency factor = ";
464  if ( this->getResiliencyFactor() < 0 )
465  os << STR_DONOTCARE;
466  else
467  os << this->getResiliencyFactor() << " usecs";
468 
469  return os.str();
470 }
471 
473  return pduDropProbability;
474 }
475 
476 void QoSReq::setPduDropProbability(double pduDropProbability) {
477  this->pduDropProbability = pduDropProbability;
478 }
479 
double getUndetectedBitErr() const
Gets Undetected Bit Error Rate parameter.
Definition: QoSReq.cc:325
int delay
Attribute holding accepted delay.
Definition: QoSReq.h:116
const bool VAL_QOSPARDEFBOOL
const char * ELEM_AVGSDUBW
void setMaxAllowGap(int maxAllowGap)
Sets Maximum Allowable Gap in SDUs parameter.
Definition: QoSReq.cc:289
void setJitter(int jitter)
Sets Jitter parameter.
Definition: QoSReq.cc:281
const char * STR_REQNO
Definition: QoSReq.cc:34
int maxAllowGap
Attribute holding maximum allowd gap in SDUs.
Definition: QoSReq.h:111
void setUndetectedBitErr(double undetectedBitErr)
Sets Undetected Bit Error Rate parameter.
Definition: QoSReq.cc:329
void setMaxSduSize(int maxSdUsize)
Sets Maximum SDU Size parameter.
Definition: QoSReq.cc:297
const char * ELEM_FORCEORDER
const char * ELEM_UNDETECTBITERR
int maxSDUsize
Attribute holding maximum SDU size.
Definition: QoSReq.h:91
int costBits
Attribute holding connection's transmission size price.
Definition: QoSReq.h:131
int jitter
Attribute holding accepted jitter.
Definition: QoSReq.h:121
void setDelay(int delay)
Sets Delay parameter.
Definition: QoSReq.cc:257
const char * ELEM_COSTBITS
bool isForceOrder() const
Gets in-order delivery flag.
Definition: QoSReq.cc:261
void setIncompleteDelivery(bool incompleteDeliv)
Sets incomplete delivery flag.
Definition: QoSReq.cc:273
QoSReq()
Constructor of QoSReq with undefined values.
Definition: QoSReq.cc:37
void setPeakBandDuration(int peakBandDuration)
Sets Peak Band Duration parameter.
Definition: QoSReq.cc:313
double getPduDropProbability() const
Gets PDU Dropping Probability parameter.
Definition: QoSReq.cc:472
void setAvgBand(int avgBand)
Sets Average Bandwidth parameter.
Definition: QoSReq.cc:225
void setPartialDelivery(bool partDeliv)
Sets partial delivery flag.
Definition: QoSReq.cc:305
double undetectedBitErr
Attribute holding probability of undetected bit error rate.
Definition: QoSReq.h:81
int costTime
Attribute holding connection's time price.
Definition: QoSReq.h:126
int avgSDUBand
Attribute holding average SDU bandwidth.
Definition: QoSReq.h:56
void setBurstDuration(int burstDuration)
Sets Burst Duration parameter.
Definition: QoSReq.cc:241
const char * ELEM_PEAKBWDUR
void setBurstPeriod(int burstPeriod)
Sets Burst Period parameter.
Definition: QoSReq.cc:249
int getMaxSduSize() const
Gets Maximum SDU Size parameter.
Definition: QoSReq.cc:293
int burstDuration
Attribute holding burst durating as usec fraction of burst period.
Definition: QoSReq.h:76
virtual ~QoSReq()
Destructor assigning default uninitialized values.
Definition: QoSReq.cc:202
bool partDeliv
Attribute holding partial delivery flag.
Definition: QoSReq.h:96
int peakSDUBandDuration
Attribute holding peak SDU bandwidth duration.
Definition: QoSReq.h:66
double pduDropProbability
Attribute holding probability of dropping PDUs.
Definition: QoSReq.h:86
void setCostTime(double costTime)
Sets Cost-time parameter.
Definition: QoSReq.cc:345
void setAvgSduBand(int avgSduBand)
Sets Average SDU Bandwidth parameter.
Definition: QoSReq.cc:233
const char * ELEM_INCOMPLETEDELIVER
const char * ELEM_JITTER
const char * ELEM_COSTTIME
const char * STR_REQYES
Definition: QoSReq.cc:33
std::string info() const
Prints QoSReq information as string.
Definition: QoSReq.cc:368
int burstPeriod
Attribute holding burst period in usecs.
Definition: QoSReq.h:71
const int VAL_QOSPARDONOTCARE
int getPeakSduBandDuration() const
Gets Peak SDU Duration parameter.
Definition: QoSReq.cc:317
const char * STR_YES
Definition: QoSCube.cc:33
void setPduDropProbability(double pduDropProbability)
Sets PDU Dropping Probability parameter.
Definition: QoSReq.cc:476
int getMaxAllowGap() const
Gets Maximum Allowable Gap in SDUs parameter.
Definition: QoSReq.cc:285
const char * ELEM_MAXALLOWGAP
int getDelay() const
Gets Delay parameter.
Definition: QoSReq.cc:253
bool isPartialDelivery() const
Gets partial delivery flag.
Definition: QoSReq.cc:301
int getJitter() const
Gets Jitter parameter.
Definition: QoSReq.cc:277
std::ostream & operator<<(std::ostream &os, const QoSReq &qosreq)
Definition: QoSReq.cc:349
const char * ELEM_PEAKSDUBWDUR
bool forceOrder
Attribute holding in-order delivery flag.
Definition: QoSReq.h:106
double getCostTime() const
Gets Cost-time parameter.
Definition: QoSReq.cc:341
const char * ELEM_BURSTDURATION
const char * ELEM_AVGBW
const char * ELEM_PARTIALDELIVER
const char * ELEM_DELAY
Class representing QoSReq with all its properties that is primarily used by FA, RMT and RA Specificat...
Definition: QoSReq.h:44
bool compare(const QoSReq &other) const
Definition: QoSReq.cc:355
int getPeakBandDuration() const
Gets Peak Band Duration parameter.
Definition: QoSReq.cc:309
double getCostBits() const
Gets Cost-bits parameter.
Definition: QoSReq.cc:333
bool incompleteDeliv
Attribute holding incomplete delivery flag.
Definition: QoSReq.h:101
void setForceOrder(bool forceOrder)
Sets in-order delivery flag.
Definition: QoSReq.cc:265
const char * STR_NO
Definition: QoSCube.cc:34
int getAvgBand() const
Gets Average Bandwidth parameter.
Definition: QoSReq.cc:221
const char * STR_REQDONOTCARE
Definition: QoSReq.cc:32
const char * ELEM_BURSTPERIOD
int avgBand
Attribute holding average bandwidth.
Definition: QoSReq.h:51
const char * STR_DONOTCARE
Definition: QoSCube.cc:32
const char * ELEM_MAXSDUSIZE
void setPeakSduBandDuration(int peakSduBandDuration)
Sets Peak SDU Duration parameter.
Definition: QoSReq.cc:321
int getBurstDuration() const
Gets Burst Duration parameter.
Definition: QoSReq.cc:237
const int VAL_DEFQOSREQ
Definition: QoSReq.cc:35
const char * ELEM_PDUDROPPROBAB
int getAvgSduBand() const
Gets Average SDU Bandwidth parameter.
Definition: QoSReq.cc:229
int getResiliencyFactor() const
Gets Resiliency Factor parameter.
Definition: QoSReq.h:374
int peakBandDuration
Attribute holding peak bandwidth duration.
Definition: QoSReq.h:61
int getBurstPeriod() const
Gets Burst Period parameter.
Definition: QoSReq.cc:245
bool isIncompleteDelivery() const
Gets incomplete delivery flag.
Definition: QoSReq.cc:269
static const QoSReq MANAGEMENT
Definition: QoSReq.h:152
void setCostBits(double costBits)
Sets Cost-bits parameter.
Definition: QoSReq.cc:337