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.
 
int rtnl_netem_get_limit (struct rtnl_qdisc *qdisc)
 Get limit of netem qdisc.
 

Packet Re-ordering

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

Packet Loss

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

Packet Duplication

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

Packet Delay

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

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

References nl_us2ticks().

◆ 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

References nl_ticks2us().

◆ 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}

References nl_us2ticks().

◆ 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}

References nl_ticks2us().

◆ 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}