linux-stable/net/sched
Patrick McHardy e5dfb81518 [NET_SCHED]: Add flow classifier
Add new "flow" classifier, which is meant to extend the SFQ hashing
capabilities without hard-coding new hash functions and also allows
deterministic mappings of keys to classes, replacing some out of tree
iptables patches like IPCLASSIFY (maps IPs to classes), IPMARK (maps
IPs to marks, with fw filters to classes), ...

Some examples:

- Classic SFQ hash:

  tc filter add ... flow hash \
  	keys src,dst,proto,proto-src,proto-dst divisor 1024

- Classic SFQ hash, but using information from conntrack to work properly in
  combination with NAT:

  tc filter add ... flow hash \
  	keys nfct-src,nfct-dst,proto,nfct-proto-src,nfct-proto-dst divisor 1024

- Map destination IPs of 192.168.0.0/24 to classids 1-257:

  tc filter add ... flow map \
  	key dst addend -192.168.0.0 divisor 256

- alternatively:

  tc filter add ... flow map \
  	key dst and 0xff

- similar, but reverse ordered:

  tc filter add ... flow map \
  	key dst and 0xff xor 0xff

Perturbation is currently not supported because we can't reliable kill the
timer on destruction.

Signed-off-by: Patrick McHardy <kaber@trash.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
2008-01-31 19:28:36 -08:00
..
Kconfig [NET_SCHED]: Add flow classifier 2008-01-31 19:28:36 -08:00
Makefile [NET_SCHED]: Add flow classifier 2008-01-31 19:28:36 -08:00
act_api.c [NET_SCHED]: Use typeful attribute parsing helpers 2008-01-28 15:11:21 -08:00
act_gact.c [NET_SCHED]: Use nla_policy for attribute validation in actions 2008-01-28 15:11:23 -08:00
act_ipt.c [NET_SCHED]: Use nla_policy for attribute validation in actions 2008-01-28 15:11:23 -08:00
act_mirred.c [NET_SCHED]: Use nla_policy for attribute validation in actions 2008-01-28 15:11:23 -08:00
act_nat.c [NET_SCHED]: Use nla_policy for attribute validation in actions 2008-01-28 15:11:23 -08:00
act_pedit.c [NET_SCHED]: Use nla_policy for attribute validation in actions 2008-01-28 15:11:23 -08:00
act_police.c [NET_SCHED]: Use nla_policy for attribute validation in actions 2008-01-28 15:11:23 -08:00
act_simple.c [NET_SCHED]: Use nla_policy for attribute validation in actions 2008-01-28 15:11:23 -08:00
cls_api.c [NET_SCHED]: Constify struct tcf_ext_map 2008-01-31 19:28:34 -08:00
cls_basic.c [NET_SCHED]: Constify struct tcf_ext_map 2008-01-31 19:28:34 -08:00
cls_flow.c [NET_SCHED]: Add flow classifier 2008-01-31 19:28:36 -08:00
cls_fw.c [NET_SCHED]: Constify struct tcf_ext_map 2008-01-31 19:28:34 -08:00
cls_route.c [NET_SCHED]: Constify struct tcf_ext_map 2008-01-31 19:28:34 -08:00
cls_rsvp.c [NET_SCHED]: Remove unnecessary includes 2007-07-10 22:16:41 -07:00
cls_rsvp.h [NET_SCHED]: Use nla_policy for attribute validation in classifiers 2008-01-28 15:11:23 -08:00
cls_rsvp6.c [NET_SCHED]: Remove unnecessary includes 2007-07-10 22:16:41 -07:00
cls_tcindex.c [NET_SCHED]: Constify struct tcf_ext_map 2008-01-31 19:28:34 -08:00
cls_u32.c [NET_SCHED]: Constify struct tcf_ext_map 2008-01-31 19:28:34 -08:00
em_cmp.c [NET_SCHED]: ematch: module autoloading 2007-07-11 19:46:26 -07:00
em_meta.c [NET_SCHED]: Use nla_policy for attribute validation in ematches 2008-01-28 15:11:24 -08:00
em_nbyte.c [NET_SCHED]: ematch: module autoloading 2007-07-11 19:46:26 -07:00
em_text.c [NET_SCHED]: Convert classifiers from rtnetlink to new netlink API 2008-01-28 15:11:11 -08:00
em_u32.c [NET_SCHED]: ematch: module autoloading 2007-07-11 19:46:26 -07:00
ematch.c [NET_SCHED]: Use nla_policy for attribute validation in ematches 2008-01-28 15:11:24 -08:00
sch_api.c [NET_SCHED]: sch_api: introduce constant for rate table size 2008-01-28 15:11:21 -08:00
sch_atm.c [NET_SCHED]: Use nla_policy for attribute validation in packet schedulers 2008-01-28 15:11:22 -08:00
sch_blackhole.c [NET]: Move Qdisc_class_ops and Qdisc_ops in appropriate sections. 2008-01-28 14:53:58 -08:00
sch_cbq.c [NET_SCHED]: Use nla_policy for attribute validation in packet schedulers 2008-01-28 15:11:22 -08:00
sch_dsmark.c [NET_SCHED]: Use nla_policy for attribute validation in packet schedulers 2008-01-28 15:11:22 -08:00
sch_fifo.c [NET_SCHED]: Convert packet schedulers from rtnetlink to new netlink API 2008-01-28 15:11:10 -08:00
sch_generic.c [NET_SCHED]: Convert packet schedulers from rtnetlink to new netlink API 2008-01-28 15:11:10 -08:00
sch_gred.c [NET_SCHED]: Use nla_policy for attribute validation in packet schedulers 2008-01-28 15:11:22 -08:00
sch_hfsc.c [NET_SCHED]: Use nla_policy for attribute validation in packet schedulers 2008-01-28 15:11:22 -08:00
sch_htb.c [NET_SCHED]: Use nla_policy for attribute validation in packet schedulers 2008-01-28 15:11:22 -08:00
sch_ingress.c [NET_SCHED]: sch_ingress: remove netfilter support 2008-01-31 19:28:25 -08:00
sch_netem.c [NET_SCHED]: Use nla_policy for attribute validation in packet schedulers 2008-01-28 15:11:22 -08:00
sch_prio.c [NET_SCHED]: Propagate nla_parse return value 2008-01-28 15:11:18 -08:00
sch_red.c [NET_SCHED]: Use nla_policy for attribute validation in packet schedulers 2008-01-28 15:11:22 -08:00
sch_sfq.c [NET_SCHED]: sch_sfq: make internal queues visible as classes 2008-01-31 19:28:35 -08:00
sch_tbf.c [NET_SCHED]: Use nla_policy for attribute validation in packet schedulers 2008-01-28 15:11:22 -08:00
sch_teql.c [PKT_SCHED] sch_teql.c: Duplicate IFF_BROADCAST in FMASK, remove 2nd. 2008-01-31 19:28:29 -08:00