DragonFly commits List (threaded) for 2008-04
[
Date Prev][
Date Next]
[
Thread Prev][
Thread Next]
[
Date Index][
Thread Index]
cvs commit: src/sys/sys mbuf.h src/sys/conf files options src/sys/config LINT src/usr.sbin/pfctl parse.y pf.conf.5 pfctl_altq.c pfctl_parser.h pfctl_qstats.c src/sys/net/altq altq.h altq_fairq.c altq_fairq.h altq_subr.c altq_var.h src/sys/net/pf ...
dillon 2008/04/06 11:58:16 PDT
DragonFly src repository
Modified files:
sys/sys mbuf.h
sys/conf files options
sys/config LINT
usr.sbin/pfctl parse.y pf.conf.5 pfctl_altq.c
pfctl_parser.h pfctl_qstats.c
sys/net/altq altq.h altq_subr.c altq_var.h
sys/net/pf pf.c pfvar.h
Added files:
sys/net/altq altq_fairq.c altq_fairq.h
Log:
Add fairq to altq. Fairq is a fair queueing algorithm with bandwidth
prioritization and a bandwidth delimiter (hogs) to allow low bandwidth
buckets to jump the round robin. This fairq algorithm is currently unweighted
but traffic can still be classified with the global priority model. For
each queue traffic is normally round robined by taking a packet from each
bucket in turn.
This feature is primarily intended for edge routers and egress points with
bandwidth constrictions.
* Hogs feature allows low bandwidth buckets to burst. Low bandwidth can
mean, e.g. an interactive shell or even simply ack traffic, without
the need to explicitly classify it. Bandwidth is managed on a per-bucket
basis.
* Prioritization feature allows minimum guaranteed bandwidths based on
service classifications. e.g. VOIP, web, mail, PtP, etc.
* Weighted fairq not implemented (beyond using classification into priority
queues), but the circular bucket design makes it a fairly easy task if
someone wants to do it.
* Add ALTQ_MBUF_STATE_HASHED and generate a hash of the connection state
in the mbuf header for any packet that you have set 'keep state' for
in pf. This is done in PF and is needed by fairq to bucketize
'connections'.
* Add the fairq implementation and a new ALTQ_FAIRQ kernel build option.
* Simple example included below.
ports="{ 25, 80 }"
altq on vke0 fairq bandwidth 500Kb queue { normal, bulk }
queue bulk priority 1 bandwidth 100Kb \
fairq(buckets 64, hogs 25Kb) qlimit 50
queue normal priority 2 bandwidth 400Kb \
fairq(buckets 64, hogs 25Kb, default) qlimit 50
pass out on vke0 inet proto tcp from any to any \
keep state queue normal
pass out on vke0 inet proto tcp from any to any port $ports \
keep state queue bulk
Revision Changes Path
1.47 +2 -0 src/sys/sys/mbuf.h
1.213 +1 -0 src/sys/conf/files
1.80 +1 -0 src/sys/conf/options
1.155 +1 -0 src/sys/config/LINT
1.3 +75 -3 src/usr.sbin/pfctl/parse.y
1.10 +89 -4 src/usr.sbin/pfctl/pf.conf.5
1.3 +220 -2 src/usr.sbin/pfctl/pfctl_altq.c
1.2 +15 -0 src/usr.sbin/pfctl/pfctl_parser.h
1.3 +31 -0 src/usr.sbin/pfctl/pfctl_qstats.c
1.2 +2 -1 src/sys/net/altq/altq.h
1.10 +30 -0 src/sys/net/altq/altq_subr.c
1.3 +7 -0 src/sys/net/altq/altq_var.h
1.15 +20 -0 src/sys/net/pf/pf.c
1.6 +15 -0 src/sys/net/pf/pfvar.h
http://www.dragonflybsd.org/cvsweb/src/sys/sys/mbuf.h.diff?r1=1.46&r2=1.47&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/conf/files.diff?r1=1.212&r2=1.213&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/conf/options.diff?r1=1.79&r2=1.80&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/config/LINT.diff?r1=1.154&r2=1.155&f=u
http://www.dragonflybsd.org/cvsweb/src/usr.sbin/pfctl/parse.y.diff?r1=1.2&r2=1.3&f=u
http://www.dragonflybsd.org/cvsweb/src/usr.sbin/pfctl/pf.conf.5.diff?r1=1.9&r2=1.10&f=u
http://www.dragonflybsd.org/cvsweb/src/usr.sbin/pfctl/pfctl_altq.c.diff?r1=1.2&r2=1.3&f=u
http://www.dragonflybsd.org/cvsweb/src/usr.sbin/pfctl/pfctl_parser.h.diff?r1=1.1&r2=1.2&f=u
http://www.dragonflybsd.org/cvsweb/src/usr.sbin/pfctl/pfctl_qstats.c.diff?r1=1.2&r2=1.3&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/net/altq/altq.h.diff?r1=1.1&r2=1.2&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/net/altq/altq_subr.c.diff?r1=1.9&r2=1.10&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/net/altq/altq_var.h.diff?r1=1.2&r2=1.3&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/net/pf/pf.c.diff?r1=1.14&r2=1.15&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/net/pf/pfvar.h.diff?r1=1.5&r2=1.6&f=u
[
Date Prev][
Date Next]
[
Thread Prev][
Thread Next]
[
Date Index][
Thread Index]