blob: f4544dd86476eca51bac808ec708e6ad30d30f18 [file] [log] [blame]
Linus Torvalds1da177e2005-04-16 15:20:36 -07001#
2# Traffic control configuration.
3#
Sam Ravnborg6a2e9b72005-07-11 21:13:56 -07004
Thomas Graf52ab4ac2005-11-01 15:13:02 +01005menu "QoS and/or fair queueing"
6
7config NET_SCHED
Sam Ravnborg6a2e9b72005-07-11 21:13:56 -07008 bool "QoS and/or fair queueing"
David Kimdon3c62f752006-11-09 16:16:21 -08009 select NET_SCH_FIFO
Sam Ravnborg6a2e9b72005-07-11 21:13:56 -070010 ---help---
11 When the kernel has several packets to send out over a network
12 device, it has to decide which ones to send first, which ones to
Thomas Graf52ab4ac2005-11-01 15:13:02 +010013 delay, and which ones to drop. This is the job of the queueing
14 disciplines, several different algorithms for how to do this
Sam Ravnborg6a2e9b72005-07-11 21:13:56 -070015 "fairly" have been proposed.
16
17 If you say N here, you will get the standard packet scheduler, which
18 is a FIFO (first come, first served). If you say Y here, you will be
19 able to choose from among several alternative algorithms which can
20 then be attached to different network devices. This is useful for
21 example if some of your network devices are real time devices that
22 need a certain minimum data flow rate, or if you need to limit the
23 maximum data flow rate for traffic which matches specified criteria.
24 This code is considered to be experimental.
25
26 To administer these schedulers, you'll need the user-level utilities
27 from the package iproute2+tc at <ftp://ftp.tux.org/pub/net/ip-routing/>.
28 That package also contains some documentation; for more, check out
Thomas Graf52ab4ac2005-11-01 15:13:02 +010029 <http://linux-net.osdl.org/index.php/Iproute2>.
Sam Ravnborg6a2e9b72005-07-11 21:13:56 -070030
31 This Quality of Service (QoS) support will enable you to use
32 Differentiated Services (diffserv) and Resource Reservation Protocol
Thomas Graf52ab4ac2005-11-01 15:13:02 +010033 (RSVP) on your Linux router if you also say Y to the corresponding
34 classifiers below. Documentation and software is at
35 <http://diffserv.sourceforge.net/>.
Sam Ravnborg6a2e9b72005-07-11 21:13:56 -070036
37 If you say Y here and to "/proc file system" below, you will be able
38 to read status information about packet schedulers from the file
39 /proc/net/psched.
40
41 The available schedulers are listed in the following questions; you
42 can say Y to as many as you like. If unsure, say N now.
43
David Kimdon3c62f752006-11-09 16:16:21 -080044config NET_SCH_FIFO
45 bool
46
Roman Zippel05b8b0f2005-11-17 15:22:39 -080047if NET_SCHED
48
Linus Torvalds1da177e2005-04-16 15:20:36 -070049choice
50 prompt "Packet scheduler clock source"
Patrick McHardydca80b92006-01-13 14:36:55 -080051 default NET_SCH_CLK_GETTIMEOFDAY
Thomas Graf52ab4ac2005-11-01 15:13:02 +010052 ---help---
Linus Torvalds1da177e2005-04-16 15:20:36 -070053 Packet schedulers need a monotonic clock that increments at a static
54 rate. The kernel provides several suitable interfaces, each with
55 different properties:
56
57 - high resolution (us or better)
58 - fast to read (minimal locking, no i/o access)
59 - synchronized on all processors
60 - handles cpu clock frequency changes
61
62 but nothing provides all of the above.
63
64config NET_SCH_CLK_JIFFIES
65 bool "Timer interrupt"
Thomas Graf52ab4ac2005-11-01 15:13:02 +010066 ---help---
Linus Torvalds1da177e2005-04-16 15:20:36 -070067 Say Y here if you want to use the timer interrupt (jiffies) as clock
68 source. This clock source is fast, synchronized on all processors and
69 handles cpu clock frequency changes, but its resolution is too low
70 for accurate shaping except at very low speed.
71
72config NET_SCH_CLK_GETTIMEOFDAY
73 bool "gettimeofday"
Thomas Graf52ab4ac2005-11-01 15:13:02 +010074 ---help---
Linus Torvalds1da177e2005-04-16 15:20:36 -070075 Say Y here if you want to use gettimeofday as clock source. This clock
76 source has high resolution, is synchronized on all processors and
77 handles cpu clock frequency changes, but it is slow.
78
79 Choose this if you need a high resolution clock source but can't use
80 the CPU's cycle counter.
81
Andi Kleen34cb7112005-10-13 14:41:44 -070082# don't allow on SMP x86 because they can have unsynchronized TSCs.
83# gettimeofday is a good alternative
Linus Torvalds1da177e2005-04-16 15:20:36 -070084config NET_SCH_CLK_CPU
85 bool "CPU cycle counter"
Andi Kleen34cb7112005-10-13 14:41:44 -070086 depends on ((X86_TSC || X86_64) && !SMP) || ALPHA || SPARC64 || PPC64 || IA64
Thomas Graf52ab4ac2005-11-01 15:13:02 +010087 ---help---
Linus Torvalds1da177e2005-04-16 15:20:36 -070088 Say Y here if you want to use the CPU's cycle counter as clock source.
89 This is a cheap and high resolution clock source, but on some
90 architectures it is not synchronized on all processors and doesn't
91 handle cpu clock frequency changes.
92
93 The useable cycle counters are:
94
95 x86/x86_64 - Timestamp Counter
96 alpha - Cycle Counter
97 sparc64 - %ticks register
98 ppc64 - Time base
99 ia64 - Interval Time Counter
100
101 Choose this if your CPU's cycle counter is working properly.
102
103endchoice
104
Thomas Graf52ab4ac2005-11-01 15:13:02 +0100105comment "Queueing/Scheduling"
Thomas Graf52ab4ac2005-11-01 15:13:02 +0100106
Linus Torvalds1da177e2005-04-16 15:20:36 -0700107config NET_SCH_CBQ
Thomas Graf52ab4ac2005-11-01 15:13:02 +0100108 tristate "Class Based Queueing (CBQ)"
Linus Torvalds1da177e2005-04-16 15:20:36 -0700109 ---help---
110 Say Y here if you want to use the Class-Based Queueing (CBQ) packet
Thomas Graf52ab4ac2005-11-01 15:13:02 +0100111 scheduling algorithm. This algorithm classifies the waiting packets
112 into a tree-like hierarchy of classes; the leaves of this tree are
113 in turn scheduled by separate algorithms.
Linus Torvalds1da177e2005-04-16 15:20:36 -0700114
Thomas Graf52ab4ac2005-11-01 15:13:02 +0100115 See the top of <file:net/sched/sch_cbq.c> for more details.
Linus Torvalds1da177e2005-04-16 15:20:36 -0700116
117 CBQ is a commonly used scheduler, so if you're unsure, you should
118 say Y here. Then say Y to all the queueing algorithms below that you
Thomas Graf52ab4ac2005-11-01 15:13:02 +0100119 want to use as leaf disciplines.
Linus Torvalds1da177e2005-04-16 15:20:36 -0700120
121 To compile this code as a module, choose M here: the
122 module will be called sch_cbq.
123
124config NET_SCH_HTB
Thomas Graf52ab4ac2005-11-01 15:13:02 +0100125 tristate "Hierarchical Token Bucket (HTB)"
Linus Torvalds1da177e2005-04-16 15:20:36 -0700126 ---help---
127 Say Y here if you want to use the Hierarchical Token Buckets (HTB)
Thomas Graf52ab4ac2005-11-01 15:13:02 +0100128 packet scheduling algorithm. See
Linus Torvalds1da177e2005-04-16 15:20:36 -0700129 <http://luxik.cdi.cz/~devik/qos/htb/> for complete manual and
130 in-depth articles.
131
Thomas Graf52ab4ac2005-11-01 15:13:02 +0100132 HTB is very similar to CBQ regarding its goals however is has
Linus Torvalds1da177e2005-04-16 15:20:36 -0700133 different properties and different algorithm.
134
135 To compile this code as a module, choose M here: the
136 module will be called sch_htb.
137
138config NET_SCH_HFSC
Thomas Graf52ab4ac2005-11-01 15:13:02 +0100139 tristate "Hierarchical Fair Service Curve (HFSC)"
Linus Torvalds1da177e2005-04-16 15:20:36 -0700140 ---help---
141 Say Y here if you want to use the Hierarchical Fair Service Curve
Thomas Graf52ab4ac2005-11-01 15:13:02 +0100142 (HFSC) packet scheduling algorithm.
Linus Torvalds1da177e2005-04-16 15:20:36 -0700143
144 To compile this code as a module, choose M here: the
145 module will be called sch_hfsc.
146
Linus Torvalds1da177e2005-04-16 15:20:36 -0700147config NET_SCH_ATM
Thomas Graf52ab4ac2005-11-01 15:13:02 +0100148 tristate "ATM Virtual Circuits (ATM)"
Roman Zippel05b8b0f2005-11-17 15:22:39 -0800149 depends on ATM
Linus Torvalds1da177e2005-04-16 15:20:36 -0700150 ---help---
151 Say Y here if you want to use the ATM pseudo-scheduler. This
Thomas Graf52ab4ac2005-11-01 15:13:02 +0100152 provides a framework for invoking classifiers, which in turn
153 select classes of this queuing discipline. Each class maps
154 the flow(s) it is handling to a given virtual circuit.
155
156 See the top of <file:net/sched/sch_atm.c>) for more details.
Linus Torvalds1da177e2005-04-16 15:20:36 -0700157
158 To compile this code as a module, choose M here: the
159 module will be called sch_atm.
160
161config NET_SCH_PRIO
Thomas Graf52ab4ac2005-11-01 15:13:02 +0100162 tristate "Multi Band Priority Queueing (PRIO)"
Thomas Graf52ab4ac2005-11-01 15:13:02 +0100163 ---help---
Linus Torvalds1da177e2005-04-16 15:20:36 -0700164 Say Y here if you want to use an n-band priority queue packet
Thomas Graf52ab4ac2005-11-01 15:13:02 +0100165 scheduler.
Linus Torvalds1da177e2005-04-16 15:20:36 -0700166
167 To compile this code as a module, choose M here: the
168 module will be called sch_prio.
169
170config NET_SCH_RED
Thomas Graf52ab4ac2005-11-01 15:13:02 +0100171 tristate "Random Early Detection (RED)"
Thomas Graf52ab4ac2005-11-01 15:13:02 +0100172 ---help---
Linus Torvalds1da177e2005-04-16 15:20:36 -0700173 Say Y here if you want to use the Random Early Detection (RED)
Thomas Graf52ab4ac2005-11-01 15:13:02 +0100174 packet scheduling algorithm.
175
176 See the top of <file:net/sched/sch_red.c> for more details.
Linus Torvalds1da177e2005-04-16 15:20:36 -0700177
178 To compile this code as a module, choose M here: the
179 module will be called sch_red.
180
181config NET_SCH_SFQ
Thomas Graf52ab4ac2005-11-01 15:13:02 +0100182 tristate "Stochastic Fairness Queueing (SFQ)"
Linus Torvalds1da177e2005-04-16 15:20:36 -0700183 ---help---
184 Say Y here if you want to use the Stochastic Fairness Queueing (SFQ)
Thomas Graf52ab4ac2005-11-01 15:13:02 +0100185 packet scheduling algorithm .
186
187 See the top of <file:net/sched/sch_sfq.c> for more details.
Linus Torvalds1da177e2005-04-16 15:20:36 -0700188
189 To compile this code as a module, choose M here: the
190 module will be called sch_sfq.
191
192config NET_SCH_TEQL
Thomas Graf52ab4ac2005-11-01 15:13:02 +0100193 tristate "True Link Equalizer (TEQL)"
Linus Torvalds1da177e2005-04-16 15:20:36 -0700194 ---help---
195 Say Y here if you want to use the True Link Equalizer (TLE) packet
Thomas Graf52ab4ac2005-11-01 15:13:02 +0100196 scheduling algorithm. This queueing discipline allows the combination
197 of several physical devices into one virtual device.
198
199 See the top of <file:net/sched/sch_teql.c> for more details.
Linus Torvalds1da177e2005-04-16 15:20:36 -0700200
201 To compile this code as a module, choose M here: the
202 module will be called sch_teql.
203
204config NET_SCH_TBF
Thomas Graf52ab4ac2005-11-01 15:13:02 +0100205 tristate "Token Bucket Filter (TBF)"
Thomas Graf52ab4ac2005-11-01 15:13:02 +0100206 ---help---
207 Say Y here if you want to use the Token Bucket Filter (TBF) packet
208 scheduling algorithm.
209
210 See the top of <file:net/sched/sch_tbf.c> for more details.
Linus Torvalds1da177e2005-04-16 15:20:36 -0700211
212 To compile this code as a module, choose M here: the
213 module will be called sch_tbf.
214
215config NET_SCH_GRED
Thomas Graf52ab4ac2005-11-01 15:13:02 +0100216 tristate "Generic Random Early Detection (GRED)"
Thomas Graf52ab4ac2005-11-01 15:13:02 +0100217 ---help---
Linus Torvalds1da177e2005-04-16 15:20:36 -0700218 Say Y here if you want to use the Generic Random Early Detection
Lucas Correia Villa Real20cc6be2005-05-03 14:34:20 -0700219 (GRED) packet scheduling algorithm for some of your network devices
Linus Torvalds1da177e2005-04-16 15:20:36 -0700220 (see the top of <file:net/sched/sch_red.c> for details and
221 references about the algorithm).
222
223 To compile this code as a module, choose M here: the
224 module will be called sch_gred.
225
226config NET_SCH_DSMARK
Thomas Graf52ab4ac2005-11-01 15:13:02 +0100227 tristate "Differentiated Services marker (DSMARK)"
Thomas Graf52ab4ac2005-11-01 15:13:02 +0100228 ---help---
Linus Torvalds1da177e2005-04-16 15:20:36 -0700229 Say Y if you want to schedule packets according to the
230 Differentiated Services architecture proposed in RFC 2475.
231 Technical information on this method, with pointers to associated
232 RFCs, is available at <http://www.gta.ufrj.br/diffserv/>.
233
234 To compile this code as a module, choose M here: the
235 module will be called sch_dsmark.
236
237config NET_SCH_NETEM
Thomas Graf52ab4ac2005-11-01 15:13:02 +0100238 tristate "Network emulator (NETEM)"
Thomas Graf52ab4ac2005-11-01 15:13:02 +0100239 ---help---
Linus Torvalds1da177e2005-04-16 15:20:36 -0700240 Say Y if you want to emulate network delay, loss, and packet
241 re-ordering. This is often useful to simulate networks when
242 testing applications or protocols.
243
244 To compile this driver as a module, choose M here: the module
245 will be called sch_netem.
246
247 If unsure, say N.
248
249config NET_SCH_INGRESS
250 tristate "Ingress Qdisc"
Thomas Graf52ab4ac2005-11-01 15:13:02 +0100251 ---help---
252 Say Y here if you want to use classifiers for incoming packets.
Linus Torvalds1da177e2005-04-16 15:20:36 -0700253 If unsure, say Y.
254
255 To compile this code as a module, choose M here: the
256 module will be called sch_ingress.
257
Thomas Graf52ab4ac2005-11-01 15:13:02 +0100258comment "Classification"
Linus Torvalds1da177e2005-04-16 15:20:36 -0700259
260config NET_CLS
Thomas Graf52ab4ac2005-11-01 15:13:02 +0100261 boolean
Linus Torvalds1da177e2005-04-16 15:20:36 -0700262
263config NET_CLS_BASIC
Thomas Graf52ab4ac2005-11-01 15:13:02 +0100264 tristate "Elementary classification (BASIC)"
Thomas Graf52ab4ac2005-11-01 15:13:02 +0100265 select NET_CLS
Linus Torvalds1da177e2005-04-16 15:20:36 -0700266 ---help---
267 Say Y here if you want to be able to classify packets using
268 only extended matches and actions.
269
270 To compile this code as a module, choose M here: the
271 module will be called cls_basic.
272
273config NET_CLS_TCINDEX
Thomas Graf52ab4ac2005-11-01 15:13:02 +0100274 tristate "Traffic-Control Index (TCINDEX)"
Thomas Graf52ab4ac2005-11-01 15:13:02 +0100275 select NET_CLS
276 ---help---
277 Say Y here if you want to be able to classify packets based on
278 traffic control indices. You will want this feature if you want
279 to implement Differentiated Services together with DSMARK.
Linus Torvalds1da177e2005-04-16 15:20:36 -0700280
281 To compile this code as a module, choose M here: the
282 module will be called cls_tcindex.
283
284config NET_CLS_ROUTE4
Thomas Graf52ab4ac2005-11-01 15:13:02 +0100285 tristate "Routing decision (ROUTE)"
Linus Torvalds1da177e2005-04-16 15:20:36 -0700286 select NET_CLS_ROUTE
Thomas Graf52ab4ac2005-11-01 15:13:02 +0100287 select NET_CLS
288 ---help---
289 If you say Y here, you will be able to classify packets
290 according to the route table entry they matched.
Linus Torvalds1da177e2005-04-16 15:20:36 -0700291
292 To compile this code as a module, choose M here: the
293 module will be called cls_route.
294
295config NET_CLS_ROUTE
296 bool
Linus Torvalds1da177e2005-04-16 15:20:36 -0700297
298config NET_CLS_FW
Thomas Graf52ab4ac2005-11-01 15:13:02 +0100299 tristate "Netfilter mark (FW)"
Thomas Graf52ab4ac2005-11-01 15:13:02 +0100300 select NET_CLS
301 ---help---
302 If you say Y here, you will be able to classify packets
303 according to netfilter/firewall marks.
Linus Torvalds1da177e2005-04-16 15:20:36 -0700304
305 To compile this code as a module, choose M here: the
306 module will be called cls_fw.
307
308config NET_CLS_U32
Thomas Graf52ab4ac2005-11-01 15:13:02 +0100309 tristate "Universal 32bit comparisons w/ hashing (U32)"
Thomas Graf52ab4ac2005-11-01 15:13:02 +0100310 select NET_CLS
311 ---help---
Matt LaPlante3539c272006-06-30 18:53:46 +0200312 Say Y here to be able to classify packets using a universal
Thomas Graf52ab4ac2005-11-01 15:13:02 +0100313 32bit pieces based comparison scheme.
Linus Torvalds1da177e2005-04-16 15:20:36 -0700314
315 To compile this code as a module, choose M here: the
316 module will be called cls_u32.
317
318config CLS_U32_PERF
Thomas Graf52ab4ac2005-11-01 15:13:02 +0100319 bool "Performance counters support"
Linus Torvalds1da177e2005-04-16 15:20:36 -0700320 depends on NET_CLS_U32
Thomas Graf52ab4ac2005-11-01 15:13:02 +0100321 ---help---
322 Say Y here to make u32 gather additional statistics useful for
323 fine tuning u32 classifiers.
Linus Torvalds1da177e2005-04-16 15:20:36 -0700324
325config CLS_U32_MARK
Thomas Graf52ab4ac2005-11-01 15:13:02 +0100326 bool "Netfilter marks support"
Thomas Graf82e91ff2006-11-09 15:19:14 -0800327 depends on NET_CLS_U32
Thomas Graf52ab4ac2005-11-01 15:13:02 +0100328 ---help---
329 Say Y here to be able to use netfilter marks as u32 key.
Linus Torvalds1da177e2005-04-16 15:20:36 -0700330
331config NET_CLS_RSVP
Thomas Graf52ab4ac2005-11-01 15:13:02 +0100332 tristate "IPv4 Resource Reservation Protocol (RSVP)"
Thomas Graf52ab4ac2005-11-01 15:13:02 +0100333 select NET_CLS
334 select NET_ESTIMATOR
Linus Torvalds1da177e2005-04-16 15:20:36 -0700335 ---help---
336 The Resource Reservation Protocol (RSVP) permits end systems to
337 request a minimum and maximum data flow rate for a connection; this
338 is important for real time data such as streaming sound or video.
339
340 Say Y here if you want to be able to classify outgoing packets based
341 on their RSVP requests.
342
343 To compile this code as a module, choose M here: the
344 module will be called cls_rsvp.
345
346config NET_CLS_RSVP6
Thomas Graf52ab4ac2005-11-01 15:13:02 +0100347 tristate "IPv6 Resource Reservation Protocol (RSVP6)"
Thomas Graf52ab4ac2005-11-01 15:13:02 +0100348 select NET_CLS
349 select NET_ESTIMATOR
Linus Torvalds1da177e2005-04-16 15:20:36 -0700350 ---help---
351 The Resource Reservation Protocol (RSVP) permits end systems to
352 request a minimum and maximum data flow rate for a connection; this
353 is important for real time data such as streaming sound or video.
354
355 Say Y here if you want to be able to classify outgoing packets based
Thomas Graf52ab4ac2005-11-01 15:13:02 +0100356 on their RSVP requests and you are using the IPv6.
Linus Torvalds1da177e2005-04-16 15:20:36 -0700357
358 To compile this code as a module, choose M here: the
359 module will be called cls_rsvp6.
360
361config NET_EMATCH
362 bool "Extended Matches"
Thomas Graf52ab4ac2005-11-01 15:13:02 +0100363 select NET_CLS
Linus Torvalds1da177e2005-04-16 15:20:36 -0700364 ---help---
365 Say Y here if you want to use extended matches on top of classifiers
366 and select the extended matches below.
367
368 Extended matches are small classification helpers not worth writing
Thomas Graf52ab4ac2005-11-01 15:13:02 +0100369 a separate classifier for.
Linus Torvalds1da177e2005-04-16 15:20:36 -0700370
Thomas Graf52ab4ac2005-11-01 15:13:02 +0100371 A recent version of the iproute2 package is required to use
Linus Torvalds1da177e2005-04-16 15:20:36 -0700372 extended matches.
373
374config NET_EMATCH_STACK
375 int "Stack size"
376 depends on NET_EMATCH
377 default "32"
378 ---help---
379 Size of the local stack variable used while evaluating the tree of
380 ematches. Limits the depth of the tree, i.e. the number of
Thomas Grafb8249792005-06-08 15:10:22 -0700381 encapsulated precedences. Every level requires 4 bytes of additional
Linus Torvalds1da177e2005-04-16 15:20:36 -0700382 stack space.
383
384config NET_EMATCH_CMP
385 tristate "Simple packet data comparison"
386 depends on NET_EMATCH
387 ---help---
388 Say Y here if you want to be able to classify packets based on
389 simple packet data comparisons for 8, 16, and 32bit values.
390
391 To compile this code as a module, choose M here: the
392 module will be called em_cmp.
393
394config NET_EMATCH_NBYTE
395 tristate "Multi byte comparison"
396 depends on NET_EMATCH
397 ---help---
398 Say Y here if you want to be able to classify packets based on
399 multiple byte comparisons mainly useful for IPv6 address comparisons.
400
401 To compile this code as a module, choose M here: the
402 module will be called em_nbyte.
403
404config NET_EMATCH_U32
Thomas Graf52ab4ac2005-11-01 15:13:02 +0100405 tristate "U32 key"
Linus Torvalds1da177e2005-04-16 15:20:36 -0700406 depends on NET_EMATCH
407 ---help---
408 Say Y here if you want to be able to classify packets using
409 the famous u32 key in combination with logic relations.
410
411 To compile this code as a module, choose M here: the
412 module will be called em_u32.
413
414config NET_EMATCH_META
415 tristate "Metadata"
416 depends on NET_EMATCH
417 ---help---
Adrian Bunkbb7e8c52006-01-11 16:40:30 -0800418 Say Y here if you want to be able to classify packets based on
Linus Torvalds1da177e2005-04-16 15:20:36 -0700419 metadata such as load average, netfilter attributes, socket
420 attributes and routing decisions.
421
422 To compile this code as a module, choose M here: the
423 module will be called em_meta.
424
Thomas Grafd675c982005-06-23 21:00:58 -0700425config NET_EMATCH_TEXT
426 tristate "Textsearch"
427 depends on NET_EMATCH
David S. Millerf2d368f2005-06-23 23:55:41 -0700428 select TEXTSEARCH
David S. Millerf7704342005-06-24 17:39:03 -0700429 select TEXTSEARCH_KMP
David S. Miller29cb9f92005-08-25 16:23:11 -0700430 select TEXTSEARCH_BM
David S. Millerf7704342005-06-24 17:39:03 -0700431 select TEXTSEARCH_FSM
Thomas Grafd675c982005-06-23 21:00:58 -0700432 ---help---
Thomas Graf52ab4ac2005-11-01 15:13:02 +0100433 Say Y here if you want to be able to classify packets based on
David S. Millerf7704342005-06-24 17:39:03 -0700434 textsearch comparisons.
Thomas Grafd675c982005-06-23 21:00:58 -0700435
436 To compile this code as a module, choose M here: the
437 module will be called em_text.
438
Linus Torvalds1da177e2005-04-16 15:20:36 -0700439config NET_CLS_ACT
Thomas Graf52ab4ac2005-11-01 15:13:02 +0100440 bool "Actions"
Thomas Graf52ab4ac2005-11-01 15:13:02 +0100441 select NET_ESTIMATOR
Linus Torvalds1da177e2005-04-16 15:20:36 -0700442 ---help---
Thomas Graf52ab4ac2005-11-01 15:13:02 +0100443 Say Y here if you want to use traffic control actions. Actions
444 get attached to classifiers and are invoked after a successful
445 classification. They are used to overwrite the classification
446 result, instantly drop or redirect packets, etc.
447
448 A recent version of the iproute2 package is required to use
449 extended matches.
Linus Torvalds1da177e2005-04-16 15:20:36 -0700450
451config NET_ACT_POLICE
Thomas Graf52ab4ac2005-11-01 15:13:02 +0100452 tristate "Traffic Policing"
Linus Torvalds1da177e2005-04-16 15:20:36 -0700453 depends on NET_CLS_ACT
454 ---help---
Thomas Graf52ab4ac2005-11-01 15:13:02 +0100455 Say Y here if you want to do traffic policing, i.e. strict
456 bandwidth limiting. This action replaces the existing policing
457 module.
458
459 To compile this code as a module, choose M here: the
460 module will be called police.
Linus Torvalds1da177e2005-04-16 15:20:36 -0700461
462config NET_ACT_GACT
Thomas Graf52ab4ac2005-11-01 15:13:02 +0100463 tristate "Generic actions"
Linus Torvalds1da177e2005-04-16 15:20:36 -0700464 depends on NET_CLS_ACT
465 ---help---
Thomas Graf52ab4ac2005-11-01 15:13:02 +0100466 Say Y here to take generic actions such as dropping and
467 accepting packets.
468
469 To compile this code as a module, choose M here: the
470 module will be called gact.
Linus Torvalds1da177e2005-04-16 15:20:36 -0700471
472config GACT_PROB
Thomas Graf52ab4ac2005-11-01 15:13:02 +0100473 bool "Probability support"
Linus Torvalds1da177e2005-04-16 15:20:36 -0700474 depends on NET_ACT_GACT
475 ---help---
Thomas Graf52ab4ac2005-11-01 15:13:02 +0100476 Say Y here to use the generic action randomly or deterministically.
Linus Torvalds1da177e2005-04-16 15:20:36 -0700477
478config NET_ACT_MIRRED
Thomas Graf52ab4ac2005-11-01 15:13:02 +0100479 tristate "Redirecting and Mirroring"
Linus Torvalds1da177e2005-04-16 15:20:36 -0700480 depends on NET_CLS_ACT
481 ---help---
Thomas Graf52ab4ac2005-11-01 15:13:02 +0100482 Say Y here to allow packets to be mirrored or redirected to
483 other devices.
484
485 To compile this code as a module, choose M here: the
486 module will be called mirred.
Linus Torvalds1da177e2005-04-16 15:20:36 -0700487
488config NET_ACT_IPT
Thomas Graf52ab4ac2005-11-01 15:13:02 +0100489 tristate "IPtables targets"
Linus Torvalds1da177e2005-04-16 15:20:36 -0700490 depends on NET_CLS_ACT && NETFILTER && IP_NF_IPTABLES
491 ---help---
Matt LaPlante3539c272006-06-30 18:53:46 +0200492 Say Y here to be able to invoke iptables targets after successful
Thomas Graf52ab4ac2005-11-01 15:13:02 +0100493 classification.
494
495 To compile this code as a module, choose M here: the
496 module will be called ipt.
Linus Torvalds1da177e2005-04-16 15:20:36 -0700497
498config NET_ACT_PEDIT
Thomas Graf52ab4ac2005-11-01 15:13:02 +0100499 tristate "Packet Editing"
Linus Torvalds1da177e2005-04-16 15:20:36 -0700500 depends on NET_CLS_ACT
501 ---help---
Thomas Graf52ab4ac2005-11-01 15:13:02 +0100502 Say Y here if you want to mangle the content of packets.
Linus Torvalds1da177e2005-04-16 15:20:36 -0700503
Thomas Graf52ab4ac2005-11-01 15:13:02 +0100504 To compile this code as a module, choose M here: the
505 module will be called pedit.
Linus Torvalds1da177e2005-04-16 15:20:36 -0700506
Jamal Hadi Salimdb753072005-04-24 20:10:16 -0700507config NET_ACT_SIMP
Thomas Graf52ab4ac2005-11-01 15:13:02 +0100508 tristate "Simple Example (Debug)"
Jamal Hadi Salimdb753072005-04-24 20:10:16 -0700509 depends on NET_CLS_ACT
510 ---help---
Thomas Graf52ab4ac2005-11-01 15:13:02 +0100511 Say Y here to add a simple action for demonstration purposes.
512 It is meant as an example and for debugging purposes. It will
513 print a configured policy string followed by the packet count
514 to the console for every packet that passes by.
Jamal Hadi Salimdb753072005-04-24 20:10:16 -0700515
Thomas Graf52ab4ac2005-11-01 15:13:02 +0100516 If unsure, say N.
517
518 To compile this code as a module, choose M here: the
519 module will be called simple.
520
521config NET_CLS_POLICE
522 bool "Traffic Policing (obsolete)"
Roman Zippel05b8b0f2005-11-17 15:22:39 -0800523 depends on NET_CLS_ACT!=y
Thomas Graf52ab4ac2005-11-01 15:13:02 +0100524 select NET_ESTIMATOR
525 ---help---
526 Say Y here if you want to do traffic policing, i.e. strict
527 bandwidth limiting. This option is obsoleted by the traffic
528 policer implemented as action, it stays here for compatibility
529 reasons.
530
531config NET_CLS_IND
532 bool "Incoming device classification"
Roman Zippel05b8b0f2005-11-17 15:22:39 -0800533 depends on NET_CLS_U32 || NET_CLS_FW
Thomas Graf52ab4ac2005-11-01 15:13:02 +0100534 ---help---
535 Say Y here to extend the u32 and fw classifier to support
536 classification based on the incoming device. This option is
537 likely to disappear in favour of the metadata ematch.
538
539config NET_ESTIMATOR
540 bool "Rate estimator"
Thomas Graf52ab4ac2005-11-01 15:13:02 +0100541 ---help---
542 Say Y here to allow using rate estimators to estimate the current
543 rate-of-flow for network devices, queues, etc. This module is
Matt LaPlante3539c272006-06-30 18:53:46 +0200544 automatically selected if needed but can be selected manually for
545 statistical purposes.
Thomas Graf52ab4ac2005-11-01 15:13:02 +0100546
Roman Zippel05b8b0f2005-11-17 15:22:39 -0800547endif # NET_SCHED
548
Thomas Graf52ab4ac2005-11-01 15:13:02 +0100549endmenu