Netdev List
 help / color / mirror / Atom feed
* [PATCH] tc: add new queue discipline: head drop fifo
@ 2010-01-24 22:31 Hagen Paul Pfeifer
  0 siblings, 0 replies; only message in thread
From: Hagen Paul Pfeifer @ 2010-01-24 22:31 UTC (permalink / raw)
  To: netdev; +Cc: shemminger

This adds the required changes to gain access to
the head drop classfull queuing discipline named
pfifo_head_drop. In difference to pfifo or pfifo_fast
this queuing discipline will drop the first packet
in the case of queue congestion. As a result the queue
contain always the freshest packets.

To replace the current a root queueing discipline
for eth0:
$ tc qdisc replace dev eth0 root pfifo_head_drop

And show statistics:
$ tc -s qdisc show dev eth0

Signed-off-by: Hagen Paul Pfeifer <hagen@jauu.net>
---
 tc/q_fifo.c |    8 +++++++-
 1 files changed, 7 insertions(+), 1 deletions(-)

diff --git a/tc/q_fifo.c b/tc/q_fifo.c
index f561752..6242a98 100644
--- a/tc/q_fifo.c
+++ b/tc/q_fifo.c
@@ -25,7 +25,7 @@
 
 static void explain(void)
 {
-	fprintf(stderr, "Usage: ... [p|b]fifo [ limit NUMBER ]\n");
+	fprintf(stderr, "Usage: ... <[p|b]fifo | pfifo_head_drop> [ limit NUMBER ]\n");
 }
 
 static int fifo_parse_opt(struct qdisc_util *qu, int argc, char **argv, struct nlmsghdr *n)
@@ -89,6 +89,12 @@ struct qdisc_util pfifo_qdisc_util = {
 	.print_qopt = fifo_print_opt,
 };
 
+struct qdisc_util pfifo_head_drop_qdisc_util = {
+	.id = "pfifo_head_drop",
+	.parse_qopt = fifo_parse_opt,
+	.print_qopt = fifo_print_opt,
+};
+
 extern int prio_print_opt(struct qdisc_util *qu, FILE *f, struct rtattr *opt);
 struct qdisc_util pfifo_fast_qdisc_util = {
 	.id = "pfifo_fast",
-- 
1.6.6.196.g1f735.dirty


^ permalink raw reply related	[flat|nested] only message in thread

only message in thread, other threads:[~2010-01-24 22:31 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-01-24 22:31 [PATCH] tc: add new queue discipline: head drop fifo Hagen Paul Pfeifer

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox