• Home
  • Raw
  • Download

Lines Matching refs:netem

54 	struct rtnl_netem *netem = data;  in netem_msg_parser()  local
62 netem->qnm_latency = opts->latency; in netem_msg_parser()
63 netem->qnm_limit = opts->limit; in netem_msg_parser()
64 netem->qnm_loss = opts->loss; in netem_msg_parser()
65 netem->qnm_gap = opts->gap; in netem_msg_parser()
66 netem->qnm_duplicate = opts->duplicate; in netem_msg_parser()
67 netem->qnm_jitter = opts->jitter; in netem_msg_parser()
69 netem->qnm_mask = (SCH_NETEM_ATTR_LATENCY | SCH_NETEM_ATTR_LIMIT | in netem_msg_parser()
82 free(netem); in netem_msg_parser()
90 netem->qnm_corr.nmc_delay = cor.delay_corr; in netem_msg_parser()
91 netem->qnm_corr.nmc_loss = cor.loss_corr; in netem_msg_parser()
92 netem->qnm_corr.nmc_duplicate = cor.dup_corr; in netem_msg_parser()
94 netem->qnm_mask |= (SCH_NETEM_ATTR_DELAY_CORR | in netem_msg_parser()
103 netem->qnm_ro.nmro_probability = ro.probability; in netem_msg_parser()
104 netem->qnm_ro.nmro_correlation = ro.correlation; in netem_msg_parser()
106 netem->qnm_mask |= (SCH_NETEM_ATTR_RO_PROB | in netem_msg_parser()
114 netem->qnm_crpt.nmcr_probability = corrupt.probability; in netem_msg_parser()
115 netem->qnm_crpt.nmcr_correlation = corrupt.correlation; in netem_msg_parser()
117 netem->qnm_mask |= (SCH_NETEM_ATTR_CORRUPT_PROB | in netem_msg_parser()
122 netem->qnm_dist.dist_data = NULL; in netem_msg_parser()
123 netem->qnm_dist.dist_size = 0; in netem_msg_parser()
131 struct rtnl_netem *netem = data; in netem_free_data() local
133 if (!netem) in netem_free_data()
136 free(netem->qnm_dist.dist_data); in netem_free_data()
142 struct rtnl_netem *netem = data; in netem_dump_line() local
144 if (netem) in netem_dump_line()
145 nl_dump(p, "limit %d", netem->qnm_limit); in netem_dump_line()
156 struct rtnl_netem *netem = data; in netem_msg_fill_raw() local
161 if (!netem) in netem_msg_fill_raw()
171 if ( netem->qnm_ro.nmro_probability != 0 ) { in netem_msg_fill_raw()
172 if (netem->qnm_latency == 0) { in netem_msg_fill_raw()
175 if (netem->qnm_gap == 0) netem->qnm_gap = 1; in netem_msg_fill_raw()
177 else if ( netem->qnm_gap ) { in netem_msg_fill_raw()
181 if ( netem->qnm_corr.nmc_delay != 0 ) { in netem_msg_fill_raw()
182 if ( netem->qnm_latency == 0 || netem->qnm_jitter == 0) { in netem_msg_fill_raw()
188 if ( netem->qnm_corr.nmc_loss != 0 ) { in netem_msg_fill_raw()
189 if ( netem->qnm_loss == 0 ) { in netem_msg_fill_raw()
195 if ( netem->qnm_corr.nmc_duplicate != 0 ) { in netem_msg_fill_raw()
196 if ( netem->qnm_duplicate == 0 ) { in netem_msg_fill_raw()
202 if ( netem->qnm_ro.nmro_probability != 0 ) set_reorder = 1; in netem_msg_fill_raw()
203 else if ( netem->qnm_ro.nmro_correlation != 0 ) { in netem_msg_fill_raw()
207 if ( netem->qnm_crpt.nmcr_probability != 0 ) set_corrupt = 1; in netem_msg_fill_raw()
208 else if ( netem->qnm_crpt.nmcr_correlation != 0 ) { in netem_msg_fill_raw()
212 if ( netem->qnm_dist.dist_data && netem->qnm_dist.dist_size ) { in netem_msg_fill_raw()
213 if (netem->qnm_latency == 0 || netem->qnm_jitter == 0) { in netem_msg_fill_raw()
218 int new_msg_len = msg->nm_size + netem->qnm_dist.dist_size * in netem_msg_fill_raw()
219 sizeof(netem->qnm_dist.dist_data[0]); in netem_msg_fill_raw()
229 opts.latency = netem->qnm_latency; in netem_msg_fill_raw()
230 opts.limit = netem->qnm_limit ? netem->qnm_limit : 1000; in netem_msg_fill_raw()
231 opts.loss = netem->qnm_loss; in netem_msg_fill_raw()
232 opts.gap = netem->qnm_gap; in netem_msg_fill_raw()
233 opts.duplicate = netem->qnm_duplicate; in netem_msg_fill_raw()
234 opts.jitter = netem->qnm_jitter; in netem_msg_fill_raw()
239 cor.delay_corr = netem->qnm_corr.nmc_delay; in netem_msg_fill_raw()
240 cor.loss_corr = netem->qnm_corr.nmc_loss; in netem_msg_fill_raw()
241 cor.dup_corr = netem->qnm_corr.nmc_duplicate; in netem_msg_fill_raw()
247 reorder.probability = netem->qnm_ro.nmro_probability; in netem_msg_fill_raw()
248 reorder.correlation = netem->qnm_ro.nmro_correlation; in netem_msg_fill_raw()
254 corrupt.probability = netem->qnm_crpt.nmcr_probability; in netem_msg_fill_raw()
255 corrupt.correlation = netem->qnm_crpt.nmcr_correlation; in netem_msg_fill_raw()
262 netem->qnm_dist.dist_size * sizeof(netem->qnm_dist.dist_data[0]), in netem_msg_fill_raw()
263 netem->qnm_dist.dist_data); in netem_msg_fill_raw()
298 struct rtnl_netem *netem; in rtnl_netem_set_limit() local
300 if (!(netem = rtnl_tc_data(TC_CAST(qdisc)))) in rtnl_netem_set_limit()
303 netem->qnm_limit = limit; in rtnl_netem_set_limit()
304 netem->qnm_mask |= SCH_NETEM_ATTR_LIMIT; in rtnl_netem_set_limit()
314 struct rtnl_netem *netem; in rtnl_netem_get_limit() local
316 if (!(netem = rtnl_tc_data(TC_CAST(qdisc)))) in rtnl_netem_get_limit()
319 if (netem->qnm_mask & SCH_NETEM_ATTR_LIMIT) in rtnl_netem_get_limit()
320 return netem->qnm_limit; in rtnl_netem_get_limit()
340 struct rtnl_netem *netem; in rtnl_netem_set_gap() local
342 if (!(netem = rtnl_tc_data(TC_CAST(qdisc)))) in rtnl_netem_set_gap()
345 netem->qnm_gap = gap; in rtnl_netem_set_gap()
346 netem->qnm_mask |= SCH_NETEM_ATTR_GAP; in rtnl_netem_set_gap()
356 struct rtnl_netem *netem; in rtnl_netem_get_gap() local
358 if (!(netem = rtnl_tc_data(TC_CAST(qdisc)))) in rtnl_netem_get_gap()
361 if (netem->qnm_mask & SCH_NETEM_ATTR_GAP) in rtnl_netem_get_gap()
362 return netem->qnm_gap; in rtnl_netem_get_gap()
375 struct rtnl_netem *netem; in rtnl_netem_set_reorder_probability() local
377 if (!(netem = rtnl_tc_data(TC_CAST(qdisc)))) in rtnl_netem_set_reorder_probability()
380 netem->qnm_ro.nmro_probability = prob; in rtnl_netem_set_reorder_probability()
381 netem->qnm_mask |= SCH_NETEM_ATTR_RO_PROB; in rtnl_netem_set_reorder_probability()
391 struct rtnl_netem *netem; in rtnl_netem_get_reorder_probability() local
393 if (!(netem = rtnl_tc_data(TC_CAST(qdisc)))) in rtnl_netem_get_reorder_probability()
396 if (netem->qnm_mask & SCH_NETEM_ATTR_RO_PROB) in rtnl_netem_get_reorder_probability()
397 return netem->qnm_ro.nmro_probability; in rtnl_netem_get_reorder_probability()
410 struct rtnl_netem *netem; in rtnl_netem_set_reorder_correlation() local
412 if (!(netem = rtnl_tc_data(TC_CAST(qdisc)))) in rtnl_netem_set_reorder_correlation()
415 netem->qnm_ro.nmro_correlation = prob; in rtnl_netem_set_reorder_correlation()
416 netem->qnm_mask |= SCH_NETEM_ATTR_RO_CORR; in rtnl_netem_set_reorder_correlation()
426 struct rtnl_netem *netem; in rtnl_netem_get_reorder_correlation() local
428 if (!(netem = rtnl_tc_data(TC_CAST(qdisc)))) in rtnl_netem_get_reorder_correlation()
431 if (netem->qnm_mask & SCH_NETEM_ATTR_RO_CORR) in rtnl_netem_get_reorder_correlation()
432 return netem->qnm_ro.nmro_correlation; in rtnl_netem_get_reorder_correlation()
452 struct rtnl_netem *netem; in rtnl_netem_set_corruption_probability() local
454 if (!(netem = rtnl_tc_data(TC_CAST(qdisc)))) in rtnl_netem_set_corruption_probability()
457 netem->qnm_crpt.nmcr_probability = prob; in rtnl_netem_set_corruption_probability()
458 netem->qnm_mask |= SCH_NETEM_ATTR_CORRUPT_PROB; in rtnl_netem_set_corruption_probability()
468 struct rtnl_netem *netem; in rtnl_netem_get_corruption_probability() local
470 if (!(netem = rtnl_tc_data(TC_CAST(qdisc)))) in rtnl_netem_get_corruption_probability()
473 if (netem->qnm_mask & SCH_NETEM_ATTR_CORRUPT_PROB) in rtnl_netem_get_corruption_probability()
474 return netem->qnm_crpt.nmcr_probability; in rtnl_netem_get_corruption_probability()
487 struct rtnl_netem *netem; in rtnl_netem_set_corruption_correlation() local
489 if (!(netem = rtnl_tc_data(TC_CAST(qdisc)))) in rtnl_netem_set_corruption_correlation()
492 netem->qnm_crpt.nmcr_correlation = prob; in rtnl_netem_set_corruption_correlation()
493 netem->qnm_mask |= SCH_NETEM_ATTR_CORRUPT_CORR; in rtnl_netem_set_corruption_correlation()
503 struct rtnl_netem *netem; in rtnl_netem_get_corruption_correlation() local
505 if (!(netem = rtnl_tc_data(TC_CAST(qdisc)))) in rtnl_netem_get_corruption_correlation()
508 if (netem->qnm_mask & SCH_NETEM_ATTR_CORRUPT_CORR) in rtnl_netem_get_corruption_correlation()
509 return netem->qnm_crpt.nmcr_correlation; in rtnl_netem_get_corruption_correlation()
529 struct rtnl_netem *netem; in rtnl_netem_set_loss() local
531 if (!(netem = rtnl_tc_data(TC_CAST(qdisc)))) in rtnl_netem_set_loss()
534 netem->qnm_loss = prob; in rtnl_netem_set_loss()
535 netem->qnm_mask |= SCH_NETEM_ATTR_LOSS; in rtnl_netem_set_loss()
545 struct rtnl_netem *netem; in rtnl_netem_get_loss() local
547 if (!(netem = rtnl_tc_data(TC_CAST(qdisc)))) in rtnl_netem_get_loss()
550 if (netem->qnm_mask & SCH_NETEM_ATTR_LOSS) in rtnl_netem_get_loss()
551 return netem->qnm_loss; in rtnl_netem_get_loss()
564 struct rtnl_netem *netem; in rtnl_netem_set_loss_correlation() local
566 if (!(netem = rtnl_tc_data(TC_CAST(qdisc)))) in rtnl_netem_set_loss_correlation()
569 netem->qnm_corr.nmc_loss = prob; in rtnl_netem_set_loss_correlation()
570 netem->qnm_mask |= SCH_NETEM_ATTR_LOSS_CORR; in rtnl_netem_set_loss_correlation()
580 struct rtnl_netem *netem; in rtnl_netem_get_loss_correlation() local
582 if (!(netem = rtnl_tc_data(TC_CAST(qdisc)))) in rtnl_netem_get_loss_correlation()
585 if (netem->qnm_mask & SCH_NETEM_ATTR_LOSS_CORR) in rtnl_netem_get_loss_correlation()
586 return netem->qnm_corr.nmc_loss; in rtnl_netem_get_loss_correlation()
606 struct rtnl_netem *netem; in rtnl_netem_set_duplicate() local
608 if (!(netem = rtnl_tc_data(TC_CAST(qdisc)))) in rtnl_netem_set_duplicate()
611 netem->qnm_duplicate = prob; in rtnl_netem_set_duplicate()
612 netem->qnm_mask |= SCH_NETEM_ATTR_DUPLICATE; in rtnl_netem_set_duplicate()
622 struct rtnl_netem *netem; in rtnl_netem_get_duplicate() local
624 if (!(netem = rtnl_tc_data(TC_CAST(qdisc)))) in rtnl_netem_get_duplicate()
627 if (netem->qnm_mask & SCH_NETEM_ATTR_DUPLICATE) in rtnl_netem_get_duplicate()
628 return netem->qnm_duplicate; in rtnl_netem_get_duplicate()
641 struct rtnl_netem *netem; in rtnl_netem_set_duplicate_correlation() local
643 if (!(netem = rtnl_tc_data(TC_CAST(qdisc)))) in rtnl_netem_set_duplicate_correlation()
646 netem->qnm_corr.nmc_duplicate = prob; in rtnl_netem_set_duplicate_correlation()
647 netem->qnm_mask |= SCH_NETEM_ATTR_DUP_CORR; in rtnl_netem_set_duplicate_correlation()
657 struct rtnl_netem *netem; in rtnl_netem_get_duplicate_correlation() local
659 if (!(netem = rtnl_tc_data(TC_CAST(qdisc)))) in rtnl_netem_get_duplicate_correlation()
662 if (netem->qnm_mask & SCH_NETEM_ATTR_DUP_CORR) in rtnl_netem_get_duplicate_correlation()
663 return netem->qnm_corr.nmc_duplicate; in rtnl_netem_get_duplicate_correlation()
683 struct rtnl_netem *netem; in rtnl_netem_set_delay() local
685 if (!(netem = rtnl_tc_data(TC_CAST(qdisc)))) in rtnl_netem_set_delay()
688 netem->qnm_latency = nl_us2ticks(delay); in rtnl_netem_set_delay()
689 netem->qnm_mask |= SCH_NETEM_ATTR_LATENCY; in rtnl_netem_set_delay()
699 struct rtnl_netem *netem; in rtnl_netem_get_delay() local
701 if (!(netem = rtnl_tc_data(TC_CAST(qdisc)))) in rtnl_netem_get_delay()
704 if (netem->qnm_mask & SCH_NETEM_ATTR_LATENCY) in rtnl_netem_get_delay()
705 return nl_ticks2us(netem->qnm_latency); in rtnl_netem_get_delay()
718 struct rtnl_netem *netem; in rtnl_netem_set_jitter() local
720 if (!(netem = rtnl_tc_data(TC_CAST(qdisc)))) in rtnl_netem_set_jitter()
723 netem->qnm_jitter = nl_us2ticks(jitter); in rtnl_netem_set_jitter()
724 netem->qnm_mask |= SCH_NETEM_ATTR_JITTER; in rtnl_netem_set_jitter()
734 struct rtnl_netem *netem; in rtnl_netem_get_jitter() local
736 if (!(netem = rtnl_tc_data(TC_CAST(qdisc)))) in rtnl_netem_get_jitter()
739 if (netem->qnm_mask & SCH_NETEM_ATTR_JITTER) in rtnl_netem_get_jitter()
740 return nl_ticks2us(netem->qnm_jitter); in rtnl_netem_get_jitter()
752 struct rtnl_netem *netem; in rtnl_netem_set_delay_correlation() local
754 if (!(netem = rtnl_tc_data(TC_CAST(qdisc)))) in rtnl_netem_set_delay_correlation()
757 netem->qnm_corr.nmc_delay = prob; in rtnl_netem_set_delay_correlation()
758 netem->qnm_mask |= SCH_NETEM_ATTR_DELAY_CORR; in rtnl_netem_set_delay_correlation()
768 struct rtnl_netem *netem; in rtnl_netem_get_delay_correlation() local
770 if (!(netem = rtnl_tc_data(TC_CAST(qdisc)))) in rtnl_netem_get_delay_correlation()
773 if (netem->qnm_mask & SCH_NETEM_ATTR_DELAY_CORR) in rtnl_netem_get_delay_correlation()
774 return netem->qnm_corr.nmc_delay; in rtnl_netem_get_delay_correlation()
786 struct rtnl_netem *netem; in rtnl_netem_get_delay_distribution_size() local
788 if (!(netem = rtnl_tc_data(TC_CAST(qdisc)))) in rtnl_netem_get_delay_distribution_size()
791 if (netem->qnm_mask & SCH_NETEM_ATTR_DIST) in rtnl_netem_get_delay_distribution_size()
792 return netem->qnm_dist.dist_size; in rtnl_netem_get_delay_distribution_size()
805 struct rtnl_netem *netem; in rtnl_netem_get_delay_distribution() local
807 if (!(netem = rtnl_tc_data(TC_CAST(qdisc)))) in rtnl_netem_get_delay_distribution()
810 if (netem->qnm_mask & SCH_NETEM_ATTR_DIST) { in rtnl_netem_get_delay_distribution()
811 *dist_ptr = netem->qnm_dist.dist_data; in rtnl_netem_get_delay_distribution()
824 struct rtnl_netem *netem; in rtnl_netem_set_delay_distribution() local
826 if (!(netem = rtnl_tc_data(TC_CAST(qdisc)))) in rtnl_netem_set_delay_distribution()
854 netem->qnm_dist.dist_data = (int16_t *) calloc (MAXDIST, sizeof(int16_t)); in rtnl_netem_set_delay_distribution()
873 netem->qnm_dist.dist_data[n++] = x; in rtnl_netem_set_delay_distribution()
879 netem->qnm_dist.dist_size = n; in rtnl_netem_set_delay_distribution()
880 netem->qnm_mask |= SCH_NETEM_ATTR_DIST; in rtnl_netem_set_delay_distribution()