From: Corey Hickey <bugfood-ml@fatooh.org>
To: netdev@vger.kernel.org
Subject: [PATCH] [iproute2] SFQ: Support changing depth and divisor.
Date: Sun, 29 Jul 2007 17:21:17 -0700 [thread overview]
Message-ID: <1185754878222-git-send-email-bugfood-ml@fatooh.org> (raw)
In-Reply-To: <11857548771998-git-send-email-bugfood-ml@fatooh.org>
This can safely be applied either before or after the kernel
patches because the tc_sfq_qopt struct is unchanged:
- old kernels will ignore the parameters from new iproute2
- new kernels will use the same default parameters
---
include/linux/pkt_sched.h | 9 ---------
tc/q_sfq.c | 21 ++++++++++++++++++++-
2 files changed, 20 insertions(+), 10 deletions(-)
diff --git a/include/linux/pkt_sched.h b/include/linux/pkt_sched.h
index d10f353..37946d4 100644
--- a/include/linux/pkt_sched.h
+++ b/include/linux/pkt_sched.h
@@ -139,15 +139,6 @@ struct tc_sfq_qopt
unsigned flows; /* Maximal number of flows */
};
-/*
- * NOTE: limit, divisor and flows are hardwired to code at the moment.
- *
- * limit=flows=128, divisor=1024;
- *
- * The only reason for this is efficiency, it is possible
- * to change these parameters in compile time.
- */
-
/* RED section */
enum
diff --git a/tc/q_sfq.c b/tc/q_sfq.c
index 05385cf..7754db7 100644
--- a/tc/q_sfq.c
+++ b/tc/q_sfq.c
@@ -25,7 +25,7 @@
static void explain(void)
{
- fprintf(stderr, "Usage: ... sfq [ limit NUMBER ] [ perturb SECS ] [ quantum BYTES ]\n");
+ fprintf(stderr, "Usage: ... sfq [ limit NUMBER ] [ depth FLOWS ] [ divisor HASHBITS ] [ perturb SECS ] [ quantum BYTES ]\n");
}
#define usage() return(-1)
@@ -63,6 +63,25 @@ static int sfq_parse_opt(struct qdisc_util *qu, int argc, char **argv, struct nl
return -1;
}
ok++;
+ } else if (strcmp(*argv, "depth") == 0) {
+ NEXT_ARG();
+ if (get_unsigned(&opt.flows, *argv, 0)) {
+ fprintf(stderr, "Illegal \"depth\"\n");
+ return -1;
+ }
+ ok++;
+ } else if (strcmp(*argv, "divisor") == 0) {
+ NEXT_ARG();
+ if (get_unsigned(&opt.divisor, *argv, 0)) {
+ fprintf(stderr, "Illegal \"divisor\"\n");
+ return -1;
+ }
+ if (opt.divisor >= 15) {
+ fprintf(stderr, "Illegal \"divisor\", must be < 15\n");
+ return -1;
+ }
+ opt.divisor = 1<<opt.divisor;
+ ok++;
} else if (strcmp(*argv, "help") == 0) {
explain();
return -1;
--
1.5.2.4
next prev parent reply other threads:[~2007-07-30 0:21 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-07-30 0:21 SFQ: backport some features from ESFQ (try 2) Corey Hickey
2007-07-30 0:21 ` [PATCH 1/7] Preparatory refactoring part 1 Corey Hickey
2007-07-30 13:51 ` Patrick McHardy
2007-07-31 1:26 ` Corey Hickey
2007-07-31 10:46 ` Patrick McHardy
2007-07-30 0:21 ` [PATCH 2/7] Preparatory refactoring part 2 Corey Hickey
2007-07-30 13:59 ` Patrick McHardy
2007-07-31 7:43 ` Corey Hickey
2007-07-30 0:21 ` [PATCH 3/7] Move two functions Corey Hickey
2007-07-30 0:21 ` [PATCH 4/7] Add "depth" Corey Hickey
2007-07-30 0:21 ` [PATCH 5/7] Add divisor Corey Hickey
2007-07-30 0:21 ` [PATCH 6/7] Make qdisc changeable Corey Hickey
2007-07-30 14:11 ` Patrick McHardy
2007-07-31 7:43 ` Corey Hickey
2007-08-06 2:47 ` Corey Hickey
2007-08-06 12:06 ` Patrick McHardy
2007-07-30 0:21 ` [PATCH 7/7] Remove comments about hardcoded values Corey Hickey
2007-07-30 0:21 ` Corey Hickey [this message]
-- strict thread matches above, loose matches on Subject: below --
2007-07-29 7:08 [PATCH 0/7] SFQ: backport some features from ESFQ Corey Hickey
2007-07-29 7:08 ` [PATCH 1/7] Preparatory refactoring part 1 Corey Hickey
2007-07-29 7:08 ` [PATCH 2/7] Preparatory refactoring part 2 Corey Hickey
2007-07-29 7:08 ` [PATCH 3/7] Move two functions Corey Hickey
2007-07-29 7:08 ` [PATCH 4/7] Add "depth" Corey Hickey
2007-07-29 7:08 ` [PATCH 5/7] Add divisor Corey Hickey
2007-07-29 7:08 ` [PATCH 6/7] Make qdisc changeable Corey Hickey
2007-07-29 7:08 ` [PATCH 7/7] Remove comments about hardcoded values Corey Hickey
2007-07-29 7:08 ` [PATCH] [iproute2] SFQ: Support changing depth and divisor Corey Hickey
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1185754878222-git-send-email-bugfood-ml@fatooh.org \
--to=bugfood-ml@fatooh.org \
--cc=netdev@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).