static void get_correlation(struct Qdisc *sch, const struct nlattr *attr) { struct netem_sched_data *q = qdisc_priv(sch); const struct tc_netem_corr *c = nla_data(attr); init_crandom(&q->delay_cor, c->delay_corr); init_crandom(&q->loss_cor, c->loss_corr); init_crandom(&q->dup_cor, c->dup_corr); }
static int get_correlation(struct Qdisc *sch, const struct rtattr *attr) { struct netem_sched_data *q = qdisc_priv(sch); const struct tc_netem_corr *c = RTA_DATA(attr); if (RTA_PAYLOAD(attr) != sizeof(*c)) return -EINVAL; init_crandom(&q->delay_cor, c->delay_corr); init_crandom(&q->loss_cor, c->loss_corr); init_crandom(&q->dup_cor, c->dup_corr); return 0; }
static void get_corrupt(struct Qdisc *sch, const struct nlattr *attr) { struct netem_sched_data *q = qdisc_priv(sch); const struct tc_netem_corrupt *r = nla_data(attr); q->corrupt = r->probability; init_crandom(&q->corrupt_cor, r->correlation); }
static int get_corrupt(struct Qdisc *sch, const struct rtattr *attr) { struct netem_sched_data *q = qdisc_priv(sch); const struct tc_netem_corrupt *r = RTA_DATA(attr); if (RTA_PAYLOAD(attr) != sizeof(*r)) return -EINVAL; q->corrupt = r->probability; init_crandom(&q->corrupt_cor, r->correlation); return 0; }
/* initialize the PRNG */ int init_rng() { #ifdef RANDOM_DEVICE if (!(rand_file=fopen(RANDOM_DEVICE,"r"))) { log_error("Could not open %s.",RANDOM_DEVICE); return 0; } #endif #ifdef R_RANDOM init_crandom(); #endif return 1; }