This commit was manufactured by cvs2svn to create tag
[linux-2.6.git] / net / sched / Kconfig
1 #
2 # Traffic control configuration.
3
4 config NET_SCH_CBQ
5         tristate "CBQ packet scheduler"
6         depends on NET_SCHED
7         ---help---
8           Say Y here if you want to use the Class-Based Queueing (CBQ) packet
9           scheduling algorithm for some of your network devices.  This
10           algorithm classifies the waiting packets into a tree-like hierarchy
11           of classes; the leaves of this tree are in turn scheduled by
12           separate algorithms (called "disciplines" in this context).
13
14           See the top of <file:net/sched/sch_cbq.c> for references about the
15           CBQ algorithm.
16
17           CBQ is a commonly used scheduler, so if you're unsure, you should
18           say Y here. Then say Y to all the queueing algorithms below that you
19           want to use as CBQ disciplines.  Then say Y to "Packet classifier
20           API" and say Y to all the classifiers you want to use; a classifier
21           is a routine that allows you to sort your outgoing traffic into
22           classes based on a certain criterion.
23
24           To compile this code as a module, choose M here: the
25           module will be called sch_cbq.
26
27 config NET_SCH_HTB
28         tristate "HTB packet scheduler"
29         depends on NET_SCHED
30         ---help---
31           Say Y here if you want to use the Hierarchical Token Buckets (HTB)
32           packet scheduling algorithm for some of your network devices. See
33           <http://luxik.cdi.cz/~devik/qos/htb/> for complete manual and
34           in-depth articles.
35
36           HTB is very similar to the CBQ regarding its goals however is has 
37           different properties and different algorithm.
38
39           To compile this code as a module, choose M here: the
40           module will be called sch_htb.
41
42 config NET_SCH_HFSC
43         tristate "HFSC packet scheduler"
44         depends on NET_SCHED
45         ---help---
46           Say Y here if you want to use the Hierarchical Fair Service Curve
47           (HFSC) packet scheduling algorithm for some of your network devices.
48
49           To compile this code as a module, choose M here: the
50           module will be called sch_hfsc.
51
52 #tristate '  H-PFQ packet scheduler' CONFIG_NET_SCH_HPFQ
53 config NET_SCH_ATM
54         tristate "ATM pseudo-scheduler"
55         depends on NET_SCHED && ATM
56         ---help---
57           Say Y here if you want to use the ATM pseudo-scheduler.  This
58           provides a framework for invoking classifiers (aka "filters"), which
59           in turn select classes of this queuing discipline.  Each class maps
60           the flow(s) it is handling to a given virtual circuit (see the top of
61           <file:net/sched/sch_atm.c>).
62
63           To compile this code as a module, choose M here: the
64           module will be called sch_atm.
65
66 config NET_SCH_PRIO
67         tristate "The simplest PRIO pseudoscheduler"
68         depends on NET_SCHED
69         help
70           Say Y here if you want to use an n-band priority queue packet
71           "scheduler" for some of your network devices or as a leaf discipline
72           for the CBQ scheduling algorithm. If unsure, say Y.
73
74           To compile this code as a module, choose M here: the
75           module will be called sch_prio.
76
77 config NET_SCH_RED
78         tristate "RED queue"
79         depends on NET_SCHED
80         help
81           Say Y here if you want to use the Random Early Detection (RED)
82           packet scheduling algorithm for some of your network devices (see
83           the top of <file:net/sched/sch_red.c> for details and references
84           about the algorithm).
85
86           To compile this code as a module, choose M here: the
87           module will be called sch_red.
88
89 config NET_SCH_SFQ
90         tristate "SFQ queue"
91         depends on NET_SCHED
92         ---help---
93           Say Y here if you want to use the Stochastic Fairness Queueing (SFQ)
94           packet scheduling algorithm for some of your network devices or as a
95           leaf discipline for the CBQ scheduling algorithm (see the top of
96           <file:net/sched/sch_sfq.c> for details and references about the SFQ
97           algorithm).
98
99           To compile this code as a module, choose M here: the
100           module will be called sch_sfq.
101
102 config NET_SCH_TEQL
103         tristate "TEQL queue"
104         depends on NET_SCHED
105         ---help---
106           Say Y here if you want to use the True Link Equalizer (TLE) packet
107           scheduling algorithm for some of your network devices or as a leaf
108           discipline for the CBQ scheduling algorithm. This queueing
109           discipline allows the combination of several physical devices into
110           one virtual device. (see the top of <file:net/sched/sch_teql.c> for
111           details).
112
113           To compile this code as a module, choose M here: the
114           module will be called sch_teql.
115
116 config NET_SCH_TBF
117         tristate "TBF queue"
118         depends on NET_SCHED
119         help
120           Say Y here if you want to use the Simple Token Bucket Filter (TBF)
121           packet scheduling algorithm for some of your network devices or as a
122           leaf discipline for the CBQ scheduling algorithm (see the top of
123           <file:net/sched/sch_tbf.c> for a description of the TBF algorithm).
124
125           To compile this code as a module, choose M here: the
126           module will be called sch_tbf.
127
128 config NET_SCH_GRED
129         tristate "GRED queue"
130         depends on NET_SCHED
131         help
132           Say Y here if you want to use the Generic Random Early Detection
133           (RED) packet scheduling algorithm for some of your network devices
134           (see the top of <file:net/sched/sch_red.c> for details and
135           references about the algorithm).
136
137           To compile this code as a module, choose M here: the
138           module will be called sch_gred.
139
140 config NET_SCH_DSMARK
141         tristate "Diffserv field marker"
142         depends on NET_SCHED
143         help
144           Say Y if you want to schedule packets according to the
145           Differentiated Services architecture proposed in RFC 2475.
146           Technical information on this method, with pointers to associated
147           RFCs, is available at <http://www.gta.ufrj.br/diffserv/>.
148
149           To compile this code as a module, choose M here: the
150           module will be called sch_dsmark.
151
152 config NET_SCH_NETEM
153         tristate "Network emulator"
154         depends on NET_SCHED
155         help
156           Say Y if you want to emulate network delay, loss, and packet
157           re-ordering. This is often useful to simulate networks when
158           testing applications or protocols.
159
160           To compile this driver as a module, choose M here: the module
161           will be called sch_delay.
162
163 config NET_SCH_INGRESS
164         tristate "Ingress Qdisc"
165         depends on NET_SCHED 
166         help
167           If you say Y here, you will be able to police incoming bandwidth
168           and drop packets when this bandwidth exceeds your desired rate.
169           If unsure, say Y.
170
171           To compile this code as a module, choose M here: the
172           module will be called sch_ingress.
173
174 config NET_QOS
175         bool "QoS support"
176         depends on NET_SCHED
177         ---help---
178           Say Y here if you want to include Quality Of Service scheduling
179           features, which means that you will be able to request certain
180           rate-of-flow limits for your network devices.
181
182           This Quality of Service (QoS) support will enable you to use
183           Differentiated Services (diffserv) and Resource Reservation Protocol
184           (RSVP) on your Linux router if you also say Y to "Packet classifier
185           API" and to some classifiers below. Documentation and software is at
186           <http://diffserv.sourceforge.net/>.
187
188           Note that the answer to this question won't directly affect the
189           kernel: saying N will just cause the configurator to skip all
190           the questions about QoS support.
191
192 config NET_ESTIMATOR
193         bool "Rate estimator"
194         depends on NET_QOS
195         help
196           In order for Quality of Service scheduling to work, the current
197           rate-of-flow for a network device has to be estimated; if you say Y
198           here, the kernel will do just that.
199
200 config NET_CLS
201         bool "Packet classifier API"
202         depends on NET_SCHED
203         ---help---
204           The CBQ scheduling algorithm requires that network packets which are
205           scheduled to be sent out over a network device be classified
206           according to some criterion. If you say Y here, you will get a
207           choice of several different packet classifiers with the following
208           questions.
209
210           This will enable you to use Differentiated Services (diffserv) and
211           Resource Reservation Protocol (RSVP) on your Linux router.
212           Documentation and software is at
213           <http://diffserv.sourceforge.net/>.
214
215 config NET_CLS_TCINDEX
216         tristate "TC index classifier"
217         depends on NET_CLS
218         help
219           If you say Y here, you will be able to classify outgoing packets
220           according to the tc_index field of the skb. You will want this
221           feature if you want to implement Differentiated Services using
222           sch_dsmark. If unsure, say Y.
223
224           To compile this code as a module, choose M here: the
225           module will be called cls_tcindex.
226
227 config NET_CLS_ROUTE4
228         tristate "Routing table based classifier"
229         depends on NET_CLS
230         select NET_CLS_ROUTE
231         help
232           If you say Y here, you will be able to classify outgoing packets
233           according to the route table entry they matched. If unsure, say Y.
234
235           To compile this code as a module, choose M here: the
236           module will be called cls_route.
237
238 config NET_CLS_ROUTE
239         bool
240         default n
241
242 config NET_CLS_FW
243         tristate "Firewall based classifier"
244         depends on NET_CLS
245         help
246           If you say Y here, you will be able to classify outgoing packets
247           according to firewall criteria you specified.
248
249           To compile this code as a module, choose M here: the
250           module will be called cls_fw.
251
252 config NET_CLS_U32
253         tristate "U32 classifier"
254         depends on NET_CLS
255         help
256           If you say Y here, you will be able to classify outgoing packets
257           according to their destination address. If unsure, say Y.
258
259           To compile this code as a module, choose M here: the
260           module will be called cls_u32.
261
262 config CLS_U32_PERF
263         bool "     U32 classifier performance counters"
264         depends on NET_CLS_U32
265         help
266           gathers stats that could be used to tune u32 classifier performance.
267           Requires a new iproute2
268           You MUST NOT turn this on if you dont have an update iproute2.
269
270 config NET_CLS_IND
271         bool "classify input device (slows things u32/fw) "
272         depends on NET_CLS_U32 || NET_CLS_FW
273         help
274           This option will be killed eventually when a 
275           metadata action appears because it slows things a little
276           Available only for u32 and fw classifiers.
277           Requires a new iproute2
278           You MUST NOT turn this on if you dont have an update iproute2.
279
280 config NET_CLS_RSVP
281         tristate "Special RSVP classifier"
282         depends on NET_CLS && NET_QOS
283         ---help---
284           The Resource Reservation Protocol (RSVP) permits end systems to
285           request a minimum and maximum data flow rate for a connection; this
286           is important for real time data such as streaming sound or video.
287
288           Say Y here if you want to be able to classify outgoing packets based
289           on their RSVP requests.
290
291           To compile this code as a module, choose M here: the
292           module will be called cls_rsvp.
293
294 config NET_CLS_RSVP6
295         tristate "Special RSVP classifier for IPv6"
296         depends on NET_CLS && NET_QOS
297         ---help---
298           The Resource Reservation Protocol (RSVP) permits end systems to
299           request a minimum and maximum data flow rate for a connection; this
300           is important for real time data such as streaming sound or video.
301
302           Say Y here if you want to be able to classify outgoing packets based
303           on their RSVP requests and you are using the new Internet Protocol
304           IPv6 as opposed to the older and more common IPv4.
305
306           To compile this code as a module, choose M here: the
307           module will be called cls_rsvp6.
308
309 config NET_CLS_ACT
310         bool '  Packet ACTION ' 
311         depends on EXPERIMENTAL && NET_CLS && NET_QOS
312         ---help---
313         This option requires you have a new iproute2. It enables
314         tc extensions which can be used with tc classifiers.
315         Only the u32 and fw classifiers are supported at the moment.
316           You MUST NOT turn this on if you dont have an update iproute2.
317
318 config NET_ACT_POLICE
319         tristate '      Policing Actions' 
320         depends on NET_CLS_ACT 
321         ---help---
322         If you are using a newer iproute2 select this one, otherwise use one
323         below to select a policer.
324           You MUST NOT turn this on if you dont have an update iproute2.
325
326 config NET_CLS_POLICE
327         bool "Traffic policing (needed for in/egress)"
328         depends on NET_CLS && NET_QOS && NET_ACT_POLICE!=y && NET_ACT_POLICE!=m
329         help
330           Say Y to support traffic policing (bandwidth limits).  Needed for
331           ingress and egress rate limiting.
332