]> git.proxmox.com Git - mirror_iproute2.git/commitdiff
tc: add new queue discipline: head drop fifo
authorHagen Paul Pfeifer <hagen@jauu.net>
Sun, 24 Jan 2010 12:31:05 +0000 (12:31 +0000)
committerStephen Hemminger <stephen.hemminger@vyatta.com>
Thu, 4 Mar 2010 00:15:44 +0000 (16:15 -0800)
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

index f561752d4d61a924cc2c5279eb32e36b8570af68..6242a98b76259b54f1d7891aa0bbaf8441e6caca 100644 (file)
@@ -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",