From: Eric Dumazet Date: Sun, 23 Jan 2011 00:09:06 +0000 (+0000) Subject: sfq: add divisor support X-Git-Tag: v2.6.39~13^2~19 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f3f28c2126343fea70a697fc61392c433e0dc9e1;p=thirdparty%2Fiproute2.git sfq: add divisor support In 2.6.39, we can build SFQ queues with a given hash table size, --- diff --git a/tc/q_sfq.c b/tc/q_sfq.c index 71a3c9ac1..98ec530d1 100644 --- a/tc/q_sfq.c +++ b/tc/q_sfq.c @@ -26,6 +26,7 @@ static void explain(void) { fprintf(stderr, "Usage: ... sfq [ limit NUMBER ] [ perturb SECS ] [ quantum BYTES ]\n"); + fprintf(stderr, " [ divisor NUMBER ]\n"); } static int sfq_parse_opt(struct qdisc_util *qu, int argc, char **argv, struct nlmsghdr *n) @@ -61,6 +62,13 @@ static int sfq_parse_opt(struct qdisc_util *qu, int argc, char **argv, struct nl return -1; } ok++; + } else if (strcmp(*argv, "divisor") == 0) { + NEXT_ARG(); + if (get_u32(&opt.divisor, *argv, 0)) { + fprintf(stderr, "Illegal \"divisor\"\n"); + return -1; + } + ok++; } else if (strcmp(*argv, "help") == 0) { explain(); return -1; @@ -93,6 +101,7 @@ static int sfq_print_opt(struct qdisc_util *qu, FILE *f, struct rtattr *opt) if (show_details) { fprintf(f, "flows %u/%u ", qopt->flows, qopt->divisor); } + fprintf(f, "divisor %u ", qopt->divisor); if (qopt->perturb_period) fprintf(f, "perturb %dsec ", qopt->perturb_period); return 0;