[PATCH iproute2] sfq: add divisor support
From: Eric Dumazet <hidden>
Date: 2011-01-23 10:09:13
Subsystem:
the rest · Maintainer:
Linus Torvalds
In 2.6.39, we can build SFQ queues with a given hash table size,
different than default one (1024 slots)
# tc qdisc add dev eth0 sfq help
Usage: ... sfq [ limit NUMBER ] [ perturb SECS ] [ quantum BYTES ]
[ divisor NUMBER ]
Signed-off-by: Eric Dumazet <redacted>
---
tc/q_sfq.c | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/tc/q_sfq.c b/tc/q_sfq.c
index 71a3c9a..98ec530 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;