libnl  1.1.4

For further documentation see http://linux-net.osdl.org/index.php/Netem. More...

Queue Limit

int rtnl_netem_set_limit (struct rtnl_qdisc *qdisc, int limit)
 Set limit of netem qdisc. More...
 
int rtnl_netem_get_limit (struct rtnl_qdisc *qdisc)
 Get limit of netem qdisc. More...
 

Packet Re-ordering

int rtnl_netem_set_gap (struct rtnl_qdisc *qdisc, int gap)
 Set re-ordering gap of netem qdisc. More...
 
int rtnl_netem_get_gap (struct rtnl_qdisc *qdisc)
 Get re-ordering gap of netem qdisc. More...
 
int rtnl_netem_set_reorder_probability (struct rtnl_qdisc *qdisc, int prob)
 Set re-ordering probability of netem qdisc. More...
 
int rtnl_netem_get_reorder_probability (struct rtnl_qdisc *qdisc)
 Get re-ordering probability of netem qdisc. More...
 
int rtnl_netem_set_reorder_correlation (struct rtnl_qdisc *qdisc, int prob)
 Set re-order correlation probability of netem qdisc. More...
 
int rtnl_netem_get_reorder_correlation (struct rtnl_qdisc *qdisc)
 Get re-ordering correlation probability of netem qdisc. More...
 

Packet Loss

int rtnl_netem_set_loss (struct rtnl_qdisc *qdisc, int prob)
 Set packet loss probability of netem qdisc. More...
 
int rtnl_netem_get_loss (struct rtnl_qdisc *qdisc)
 Get packet loss probability of netem qdisc. More...
 
int rtnl_netem_set_loss_correlation (struct rtnl_qdisc *qdisc, int prob)
 Set packet loss correlation probability of netem qdisc. More...
 
int rtnl_netem_get_loss_correlation (struct rtnl_qdisc *qdisc)
 Get packet loss correlation probability of netem qdisc. More...
 

Packet Duplication

int rtnl_netem_set_duplicate (struct rtnl_qdisc *qdisc, int prob)
 Set packet duplication probability of netem qdisc. More...
 
int rtnl_netem_get_duplicate (struct rtnl_qdisc *qdisc)
 Get packet duplication probability of netem qdisc. More...
 
int rtnl_netem_set_duplicate_correlation (struct rtnl_qdisc *qdisc, int prob)
 Set packet duplication correlation probability of netem qdisc. More...
 
int rtnl_netem_get_duplicate_correlation (struct rtnl_qdisc *qdisc)
 Get packet duplication correlation probability of netem qdisc. More...
 

Packet Delay

int rtnl_netem_set_delay (struct rtnl_qdisc *qdisc, int delay)
 Set packet delay of netem qdisc. More...
 
int rtnl_netem_get_delay (struct rtnl_qdisc *qdisc)
 Get packet delay of netem qdisc. More...
 
int rtnl_netem_set_jitter (struct rtnl_qdisc *qdisc, int jitter)
 Set packet delay jitter of netem qdisc. More...
 
int rtnl_netem_get_jitter (struct rtnl_qdisc *qdisc)
 Get packet delay jitter of netem qdisc. More...
 
int rtnl_netem_set_delay_correlation (struct rtnl_qdisc *qdisc, int prob)
 Set packet delay correlation probability of netem qdisc. More...
 
int rtnl_netem_get_delay_correlation (struct rtnl_qdisc *qdisc)
 Get packet delay correlation probability of netem qdisc. More...
 

Detailed Description

Function Documentation

◆ rtnl_netem_set_limit()

int rtnl_netem_set_limit ( struct rtnl_qdisc *  qdisc,
int  limit 
)
Parameters
qdiscNetem qdisc to be modified.
limitNew limit in bytes.
Returns
0 on success or a negative error code.

Definition at line 165 of file netem.c.

166 {
167  struct rtnl_netem *netem;
168 
169  netem = netem_alloc(qdisc);
170  if (!netem)
171  return nl_errno(ENOMEM);
172 
173  netem->qnm_limit = limit;
174  netem->qnm_mask |= SCH_NETEM_ATTR_LIMIT;
175 
176  return 0;
177 }

◆ rtnl_netem_get_limit()

int rtnl_netem_get_limit ( struct rtnl_qdisc *  qdisc)
Parameters
qdiscNetem qdisc.
Returns
Limit in bytes or a negative error code.

Definition at line 184 of file netem.c.

185 {
186  struct rtnl_netem *netem;
187 
188  netem = netem_qdisc(qdisc);
189  if (netem && (netem->qnm_mask & SCH_NETEM_ATTR_LIMIT))
190  return netem->qnm_limit;
191  else
192  return nl_errno(ENOENT);
193 }

◆ rtnl_netem_set_gap()

int rtnl_netem_set_gap ( struct rtnl_qdisc *  qdisc,
int  gap 
)
Parameters
qdiscNetem qdisc to be modified.
gapNew gap in number of packets.
Returns
0 on success or a negative error code.

Definition at line 208 of file netem.c.

209 {
210  struct rtnl_netem *netem;
211 
212  netem = netem_alloc(qdisc);
213  if (!netem)
214  return nl_errno(ENOMEM);
215 
216  netem->qnm_gap = gap;
217  netem->qnm_mask |= SCH_NETEM_ATTR_GAP;
218 
219  return 0;
220 }

◆ rtnl_netem_get_gap()

int rtnl_netem_get_gap ( struct rtnl_qdisc *  qdisc)
Parameters
qdiscNetem qdisc.
Returns
Re-ordering gap in packets or a negative error code.

Definition at line 227 of file netem.c.

228 {
229  struct rtnl_netem *netem;
230 
231  netem = netem_qdisc(qdisc);
232  if (netem && (netem->qnm_mask & SCH_NETEM_ATTR_GAP))
233  return netem->qnm_gap;
234  else
235  return nl_errno(ENOENT);
236 }

◆ rtnl_netem_set_reorder_probability()

int rtnl_netem_set_reorder_probability ( struct rtnl_qdisc *  qdisc,
int  prob 
)
Parameters
qdiscNetem qdisc to be modified.
probNew re-ordering probability.
Returns
0 on success or a negative error code.

Definition at line 244 of file netem.c.

245 {
246  struct rtnl_netem *netem;
247 
248  netem = netem_alloc(qdisc);
249  if (!netem)
250  return nl_errno(ENOMEM);
251 
252  netem->qnm_ro.nmro_probability = prob;
253  netem->qnm_mask |= SCH_NETEM_ATTR_RO_PROB;
254 
255  return 0;
256 }

◆ rtnl_netem_get_reorder_probability()

int rtnl_netem_get_reorder_probability ( struct rtnl_qdisc *  qdisc)
Parameters
qdiscNetem qdisc.
Returns
Re-ordering probability or a negative error code.

Definition at line 263 of file netem.c.

264 {
265  struct rtnl_netem *netem;
266 
267  netem = netem_qdisc(qdisc);
268  if (netem && (netem->qnm_mask & SCH_NETEM_ATTR_RO_PROB))
269  return netem->qnm_ro.nmro_probability;
270  else
271  return nl_errno(ENOENT);
272 }

◆ rtnl_netem_set_reorder_correlation()

int rtnl_netem_set_reorder_correlation ( struct rtnl_qdisc *  qdisc,
int  prob 
)
Parameters
qdiscNetem qdisc to be modified.
probNew re-ordering correlation probability.
Returns
0 on success or a negative error code.

Definition at line 280 of file netem.c.

281 {
282  struct rtnl_netem *netem;
283 
284  netem = netem_alloc(qdisc);
285  if (!netem)
286  return nl_errno(ENOMEM);
287 
288  netem->qnm_ro.nmro_correlation = prob;
289  netem->qnm_mask |= SCH_NETEM_ATTR_RO_CORR;
290 
291  return 0;
292 }

◆ rtnl_netem_get_reorder_correlation()

int rtnl_netem_get_reorder_correlation ( struct rtnl_qdisc *  qdisc)
Parameters
qdiscNetem qdisc.
Returns
Re-ordering correlation probability or a negative error code.

Definition at line 299 of file netem.c.

300 {
301  struct rtnl_netem *netem;
302 
303  netem = netem_qdisc(qdisc);
304  if (netem && (netem->qnm_mask & SCH_NETEM_ATTR_RO_CORR))
305  return netem->qnm_ro.nmro_correlation;
306  else
307  return nl_errno(ENOENT);
308 }

◆ rtnl_netem_set_loss()

int rtnl_netem_set_loss ( struct rtnl_qdisc *  qdisc,
int  prob 
)
Parameters
qdiscNetem qdisc to be modified.
probNew packet loss probability.
Returns
0 on success or a negative error code.

Definition at line 323 of file netem.c.

324 {
325  struct rtnl_netem *netem;
326 
327  netem = netem_alloc(qdisc);
328  if (!netem)
329  return nl_errno(ENOMEM);
330 
331  netem->qnm_loss = prob;
332  netem->qnm_mask |= SCH_NETEM_ATTR_LOSS;
333 
334  return 0;
335 }

◆ rtnl_netem_get_loss()

int rtnl_netem_get_loss ( struct rtnl_qdisc *  qdisc)
Parameters
qdiscNetem qdisc.
Returns
Packet loss probability or a negative error code.

Definition at line 342 of file netem.c.

343 {
344  struct rtnl_netem *netem;
345 
346  netem = netem_qdisc(qdisc);
347  if (netem && (netem->qnm_mask & SCH_NETEM_ATTR_LOSS))
348  return netem->qnm_loss;
349  else
350  return nl_errno(ENOENT);
351 }

◆ rtnl_netem_set_loss_correlation()

int rtnl_netem_set_loss_correlation ( struct rtnl_qdisc *  qdisc,
int  prob 
)
Parameters
qdiscNetem qdisc to be modified.
probNew packet loss correlation.
Returns
0 on success or a negative error code.

Definition at line 359 of file netem.c.

360 {
361  struct rtnl_netem *netem;
362 
363  netem = netem_alloc(qdisc);
364  if (!netem)
365  return nl_errno(ENOMEM);
366 
367  netem->qnm_corr.nmc_loss = prob;
368  netem->qnm_mask |= SCH_NETEM_ATTR_LOSS_CORR;
369 
370  return 0;
371 }

◆ rtnl_netem_get_loss_correlation()

int rtnl_netem_get_loss_correlation ( struct rtnl_qdisc *  qdisc)
Parameters
qdiscNetem qdisc.
Returns
Packet loss correlation probability or a negative error code.

Definition at line 378 of file netem.c.

379 {
380  struct rtnl_netem *netem;
381 
382  netem = netem_qdisc(qdisc);
383  if (netem && (netem->qnm_mask & SCH_NETEM_ATTR_LOSS_CORR))
384  return netem->qnm_corr.nmc_loss;
385  else
386  return nl_errno(ENOENT);
387 }

◆ rtnl_netem_set_duplicate()

int rtnl_netem_set_duplicate ( struct rtnl_qdisc *  qdisc,
int  prob 
)
Parameters
qdiscNetem qdisc to be modified.
probNew packet duplication probability.
Returns
0 on success or a negative error code.

Definition at line 402 of file netem.c.

403 {
404  struct rtnl_netem *netem;
405 
406  netem = netem_alloc(qdisc);
407  if (!netem)
408  return nl_errno(ENOMEM);
409 
410  netem->qnm_duplicate = prob;
411  netem->qnm_mask |= SCH_NETEM_ATTR_DUPLICATE;
412 
413  return 0;
414 }

◆ rtnl_netem_get_duplicate()

int rtnl_netem_get_duplicate ( struct rtnl_qdisc *  qdisc)
Parameters
qdiscNetem qdisc.
Returns
Packet duplication probability or a negative error code.

Definition at line 421 of file netem.c.

422 {
423  struct rtnl_netem *netem;
424 
425  netem = netem_qdisc(qdisc);
426  if (netem && (netem->qnm_mask & SCH_NETEM_ATTR_DUPLICATE))
427  return netem->qnm_duplicate;
428  else
429  return nl_errno(ENOENT);
430 }

◆ rtnl_netem_set_duplicate_correlation()

int rtnl_netem_set_duplicate_correlation ( struct rtnl_qdisc *  qdisc,
int  prob 
)
Parameters
qdiscNetem qdisc to be modified.
probNew packet duplication correlation probability.
Returns
0 on sucess or a negative error code.

Definition at line 438 of file netem.c.

439 {
440  struct rtnl_netem *netem;
441 
442  netem = netem_alloc(qdisc);
443  if (!netem)
444  return nl_errno(ENOMEM);
445 
446  netem->qnm_corr.nmc_duplicate = prob;
447  netem->qnm_mask |= SCH_NETEM_ATTR_DUP_CORR;
448 
449  return 0;
450 }

◆ rtnl_netem_get_duplicate_correlation()

int rtnl_netem_get_duplicate_correlation ( struct rtnl_qdisc *  qdisc)
Parameters
qdiscNetem qdisc.
Returns
Packet duplication correlation probability or a negative error code.

Definition at line 457 of file netem.c.

458 {
459  struct rtnl_netem *netem;
460 
461  netem = netem_qdisc(qdisc);
462  if (netem && (netem->qnm_mask & SCH_NETEM_ATTR_DUP_CORR))
463  return netem->qnm_corr.nmc_duplicate;
464  else
465  return nl_errno(ENOENT);
466 }

◆ rtnl_netem_set_delay()

int rtnl_netem_set_delay ( struct rtnl_qdisc *  qdisc,
int  delay 
)
Parameters
qdiscNetem qdisc to be modified.
delayNew packet delay in micro seconds.
Returns
0 on success or a negative error code.

Definition at line 481 of file netem.c.

482 {
483  struct rtnl_netem *netem;
484 
485  netem = netem_alloc(qdisc);
486  if (!netem)
487  return nl_errno(ENOMEM);
488 
489  netem->qnm_latency = nl_us2ticks(delay);
490  netem->qnm_mask |= SCH_NETEM_ATTR_LATENCY;
491 
492  return 0;
493 }
uint32_t nl_us2ticks(uint32_t us)
Convert micro seconds to ticks.
Definition: utils.c:439

◆ rtnl_netem_get_delay()

int rtnl_netem_get_delay ( struct rtnl_qdisc *  qdisc)
Parameters
qdiscNetem qdisc.
Returns
Packet delay in micro seconds or a negative error code.

Definition at line 500 of file netem.c.

501 {
502  struct rtnl_netem *netem;
503 
504  netem = netem_qdisc(qdisc);
505  if (netem && (netem->qnm_mask & SCH_NETEM_ATTR_LATENCY))
506  return nl_ticks2us(netem->qnm_latency);
507  else
508  return nl_errno(ENOENT);
509 }
uint32_t nl_ticks2us(uint32_t ticks)
Convert ticks to micro seconds.
Definition: utils.c:450

◆ rtnl_netem_set_jitter()

int rtnl_netem_set_jitter ( struct rtnl_qdisc *  qdisc,
int  jitter 
)
Parameters
qdiscNetem qdisc to be modified.
jitterNew packet delay jitter in micro seconds.
Returns
0 on success or a negative error code.

Definition at line 517 of file netem.c.

518 {
519  struct rtnl_netem *netem;
520 
521  netem = netem_alloc(qdisc);
522  if (!netem)
523  return nl_errno(ENOMEM);
524 
525  netem->qnm_jitter = nl_us2ticks(jitter);
526  netem->qnm_mask |= SCH_NETEM_ATTR_JITTER;
527 
528  return 0;
529 }
uint32_t nl_us2ticks(uint32_t us)
Convert micro seconds to ticks.
Definition: utils.c:439

◆ rtnl_netem_get_jitter()

int rtnl_netem_get_jitter ( struct rtnl_qdisc *  qdisc)
Parameters
qdiscNetem qdisc.
Returns
Packet delay jitter in micro seconds or a negative error code.

Definition at line 536 of file netem.c.

537 {
538  struct rtnl_netem *netem;
539 
540  netem = netem_qdisc(qdisc);
541  if (netem && (netem->qnm_mask & SCH_NETEM_ATTR_JITTER))
542  return nl_ticks2us(netem->qnm_jitter);
543  else
544  return nl_errno(ENOENT);
545 }
uint32_t nl_ticks2us(uint32_t ticks)
Convert ticks to micro seconds.
Definition: utils.c:450

◆ rtnl_netem_set_delay_correlation()

int rtnl_netem_set_delay_correlation ( struct rtnl_qdisc *  qdisc,
int  prob 
)
Parameters
qdiscNetem qdisc to be modified.
probNew packet delay correlation probability.

Definition at line 552 of file netem.c.

553 {
554  struct rtnl_netem *netem;
555 
556  netem = netem_alloc(qdisc);
557  if (!netem)
558  return nl_errno(ENOMEM);
559 
560  netem->qnm_corr.nmc_delay = prob;
561  netem->qnm_mask |= SCH_NETEM_ATTR_DELAY_CORR;
562 
563  return 0;
564 }

◆ rtnl_netem_get_delay_correlation()

int rtnl_netem_get_delay_correlation ( struct rtnl_qdisc *  qdisc)
Parameters
qdiscNetem qdisc.
Returns
Packet delay correlation probability or a negative error code.

Definition at line 571 of file netem.c.

572 {
573  struct rtnl_netem *netem;
574 
575  netem = netem_qdisc(qdisc);
576  if (netem && (netem->qnm_mask & SCH_NETEM_ATTR_DELAY_CORR))
577  return netem->qnm_corr.nmc_delay;
578  else
579  return nl_errno(ENOENT);
580 }