SOURCES: esfq-iproute2.patch - up to kernel 2.6.20

cactus cactus at pld-linux.org
Thu May 17 20:51:03 CEST 2007


Author: cactus                       Date: Thu May 17 18:51:03 2007 GMT
Module: SOURCES                       Tag: HEAD
---- Log message:
- up to kernel 2.6.20

---- Files affected:
SOURCES:
   esfq-iproute2.patch (1.2 -> 1.3) 

---- Diffs:

================================================================
Index: SOURCES/esfq-iproute2.patch
diff -u SOURCES/esfq-iproute2.patch:1.2 SOURCES/esfq-iproute2.patch:1.3
--- SOURCES/esfq-iproute2.patch:1.2	Mon Nov 14 10:35:05 2005
+++ SOURCES/esfq-iproute2.patch	Thu May 17 20:50:58 2007
@@ -1,6 +1,51 @@
---- iproute2.orig/tc/Makefile	Sun Apr 16 20:42:53 2000
-+++ iproute2/tc/Makefile	Tue May 14 23:04:10 2002
-@@ -5,6 +5,7 @@
+diff -Naur iproute2-2.6.19-061214.orig/include/linux/pkt_sched.h iproute2-2.6.19-061214/include/linux/pkt_sched.h
+--- iproute2-2.6.19-061214.orig/include/linux/pkt_sched.h	2006-12-14 15:04:12.000000000 -0800
++++ iproute2-2.6.19-061214/include/linux/pkt_sched.h	2007-02-13 23:18:29.000000000 -0800
+@@ -146,8 +146,40 @@
+  *
+  *	The only reason for this is efficiency, it is possible
+  *	to change these parameters in compile time.
++ *
++ *	If you need to play with these values use esfq instead.
+  */
+ 
++/* ESFQ section */
++
++enum
++{
++	/* traditional */
++	TCA_SFQ_HASH_CLASSIC,
++	TCA_SFQ_HASH_DST,
++	TCA_SFQ_HASH_SRC,
++	TCA_SFQ_HASH_FWMARK,
++	/* direct */
++	TCA_SFQ_HASH_DSTDIR,
++	TCA_SFQ_HASH_SRCDIR,
++	TCA_SFQ_HASH_FWMARKDIR,
++	/* conntrack */
++	TCA_SFQ_HASH_CTORIGDST,
++	TCA_SFQ_HASH_CTORIGSRC,
++	TCA_SFQ_HASH_CTREPLDST,
++	TCA_SFQ_HASH_CTREPLSRC,
++};
++
++struct tc_esfq_qopt
++{
++	unsigned	quantum;	/* Bytes per round allocated to flow */
++	int		perturb_period;	/* Period of hash perturbation */
++	__u32		limit;		/* Maximal packets in queue */
++	unsigned	divisor;	/* Hash divisor  */
++	unsigned	flows;		/* Maximal number of flows  */
++	unsigned        hash_kind;      /* Hash function to use for flow identification */
++};
++
+ /* RED section */
+ 
+ enum
+diff -Naur iproute2-2.6.19-061214.orig/tc/Makefile iproute2-2.6.19-061214/tc/Makefile
+--- iproute2-2.6.19-061214.orig/tc/Makefile	2006-12-14 15:04:12.000000000 -0800
++++ iproute2-2.6.19-061214/tc/Makefile	2007-02-11 11:56:13.000000000 -0800
+@@ -7,6 +7,7 @@
  TCMODULES :=
  TCMODULES += q_fifo.o
  TCMODULES += q_sfq.o
@@ -8,9 +53,10 @@
  TCMODULES += q_red.o
  TCMODULES += q_prio.o
  TCMODULES += q_tbf.o
---- iproute2.orig/tc/q_esfq.c	1969-12-31 16:00:00.000000000 -0800
-+++ iproute2/tc/q_esfq.c	2005-10-21 18:28:44.000000000 -0700
-@@ -0,0 +1,192 @@
+diff -Naur iproute2-2.6.19-061214.orig/tc/q_esfq.c iproute2-2.6.19-061214/tc/q_esfq.c
+--- iproute2-2.6.19-061214.orig/tc/q_esfq.c	1969-12-31 16:00:00.000000000 -0800
++++ iproute2-2.6.19-061214/tc/q_esfq.c	2007-02-13 23:18:26.000000000 -0800
+@@ -0,0 +1,224 @@
 +/*
 + * q_esfq.c		ESFQ.
 + *
@@ -22,7 +68,9 @@
 + * Authors:	Alexey Kuznetsov, <kuznet at ms2.inr.ac.ru>
 + *
 + * Changes:	Alexander Atanasov, <alex at ssi.bg>
-+ *		Added depth,limit,divisor,hash_kind options.
++ *		Alexander Clouter, <alex at digriz.org.uk>
++ *		Corey Hickey, <bugfood-c at fatooh.org>
++ *
 + */
 +
 +#include <stdio.h>
@@ -43,7 +91,7 @@
 +{
 +	fprintf(stderr, "Usage: ... esfq [ perturb SECS ] [ quantum BYTES ] [ depth FLOWS ]\n\t[ divisor HASHBITS ] [ limit PKTS ] [ hash HASHTYPE]\n");
 +	fprintf(stderr,"Where: \n");
-+	fprintf(stderr,"HASHTYPE := { classic | src | dst | fwmark | src_dir | dst_dir | fwmark_dir }\n");
++	fprintf(stderr,"HASHTYPE := { classic | src | dst | fwmark | src_dir | dst_dir | fwmark_dir | ctorigdst | ctorigsrc | ctrepldst | ctreplsrc}\n");
 +}
 +
 +#define usage() return(-1)
@@ -85,8 +133,8 @@
 +				fprintf(stderr, "Illegal \"divisor\"\n");
 +				return -1;
 +			}
-+			if(opt.divisor >= 15) {
-+				fprintf(stderr, "Illegal \"divisor\" must be < 15\n");
++			if(opt.divisor >= 14) {
++				fprintf(stderr, "Illegal \"divisor\": must be < 14\n");
 +				return -1;
 +			}
 +			opt.divisor=pow(2,opt.divisor);
@@ -114,12 +162,30 @@
 +			} else
 +			if(strcmp(*argv, "dst_direct") == 0) {
 +				opt.hash_kind= TCA_SFQ_HASH_DSTDIR;
++				fprintf(stderr, "Warning: \"dst_direct\" is deprecated\n"
++					"use \"dst\" instead\n");
 +			} else
 +			if(strcmp(*argv, "src_direct") == 0) {
 +				opt.hash_kind= TCA_SFQ_HASH_SRCDIR;
++				fprintf(stderr, "Warning: \"src_direct\" is deprecated\n"
++					"use \"src\" instead\n");
 +			} else
 +			if(strcmp(*argv, "fwmark_direct") == 0) {
 +				opt.hash_kind= TCA_SFQ_HASH_FWMARKDIR;
++				fprintf(stderr, "Warning: \"fwmark_direct\" is deprecated\n"
++					"use \"fwmark\" instead\n");
++			} else
++			if(strcmp(*argv, "ctorigsrc") == 0) {
++				opt.hash_kind= TCA_SFQ_HASH_CTORIGSRC;
++			} else
++			if(strcmp(*argv, "ctorigdst") == 0) {
++				opt.hash_kind= TCA_SFQ_HASH_CTORIGDST;
++			} else
++			if(strcmp(*argv, "ctreplsrc") == 0) {
++				opt.hash_kind= TCA_SFQ_HASH_CTREPLSRC;
++			} else
++			if(strcmp(*argv, "ctrepldst") == 0) {
++				opt.hash_kind= TCA_SFQ_HASH_CTREPLDST;
 +			} else {
 +				fprintf(stderr, "Illegal \"hash\"\n");
 +				explain();
@@ -184,6 +250,18 @@
 +		break;
 +	case TCA_SFQ_HASH_FWMARKDIR:
 +		fprintf(f,"fwmark_direct");
++		break;
++	case TCA_SFQ_HASH_CTORIGSRC:
++		fprintf(f,"ctorigsrc");
++		break;
++	case TCA_SFQ_HASH_CTORIGDST:
++		fprintf(f,"ctorigdst");
++		break;
++	case TCA_SFQ_HASH_CTREPLSRC:
++		fprintf(f,"ctreplsrc");
++		break;
++	case TCA_SFQ_HASH_CTREPLDST:
++		fprintf(f,"ctrepldst");
 +		break;
 +	default:
 +		fprintf(f,"Unknown");
================================================================

---- CVS-web:
    http://cvs.pld-linux.org/SOURCES/esfq-iproute2.patch?r1=1.2&r2=1.3&f=u



More information about the pld-cvs-commit mailing list