ftp://ftp.kernel.org/pub/linux/kernel/v2.6/linux-2.6.6.tar.bz2
[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 config NET_SCH_CSZ
53         tristate "CSZ packet scheduler"
54         depends on NET_SCHED
55         ---help---
56           Say Y here if you want to use the Clark-Shenker-Zhang (CSZ) packet
57           scheduling algorithm for some of your network devices.  At the
58           moment, this is the only algorithm that can guarantee service for
59           real-time applications (see the top of <file:net/sched/sch_csz.c>
60           for details and references about the algorithm).
61
62           Note: this scheduler is currently broken.
63
64           To compile this code as a module, choose M here: the
65           module will be called sch_csz.
66
67 #tristate '  H-PFQ packet scheduler' CONFIG_NET_SCH_HPFQ
68 config NET_SCH_ATM
69         tristate "ATM pseudo-scheduler"
70         depends on NET_SCHED && ATM
71         ---help---
72           Say Y here if you want to use the ATM pseudo-scheduler.  This
73           provides a framework for invoking classifiers (aka "filters"), which
74           in turn select classes of this queuing discipline.  Each class maps
75           the flow(s) it is handling to a given virtual circuit (see the top of
76           <file:net/sched/sch_atm.c>).
77
78           To compile this code as a module, choose M here: the
79           module will be called sch_atm.
80
81 config NET_SCH_PRIO
82         tristate "The simplest PRIO pseudoscheduler"
83         depends on NET_SCHED
84         help
85           Say Y here if you want to use an n-band priority queue packet
86           "scheduler" for some of your network devices or as a leaf discipline
87           for the CBQ scheduling algorithm. If unsure, say Y.
88
89           To compile this code as a module, choose M here: the
90           module will be called sch_prio.
91
92 config NET_SCH_RED
93         tristate "RED queue"
94         depends on NET_SCHED
95         help
96           Say Y here if you want to use the Random Early Detection (RED)
97           packet scheduling algorithm for some of your network devices (see
98           the top of <file:net/sched/sch_red.c> for details and references
99           about the algorithm).
100
101           To compile this code as a module, choose M here: the
102           module will be called sch_red.
103
104 config NET_SCH_SFQ
105         tristate "SFQ queue"
106         depends on NET_SCHED
107         ---help---
108           Say Y here if you want to use the Stochastic Fairness Queueing (SFQ)
109           packet scheduling algorithm for some of your network devices or as a
110           leaf discipline for the CBQ scheduling algorithm (see the top of
111           <file:net/sched/sch_sfq.c> for details and references about the SFQ
112           algorithm).
113
114           To compile this code as a module, choose M here: the
115           module will be called sch_sfq.
116
117 config NET_SCH_TEQL
118         tristate "TEQL queue"
119         depends on NET_SCHED
120         ---help---
121           Say Y here if you want to use the True Link Equalizer (TLE) packet
122           scheduling algorithm for some of your network devices or as a leaf
123           discipline for the CBQ scheduling algorithm. This queueing
124           discipline allows the combination of several physical devices into
125           one virtual device. (see the top of <file:net/sched/sch_teql.c> for
126           details).
127
128           To compile this code as a module, choose M here: the
129           module will be called sch_teql.
130
131 config NET_SCH_TBF
132         tristate "TBF queue"
133         depends on NET_SCHED
134         help
135           Say Y here if you want to use the Simple Token Bucket Filter (TBF)
136           packet scheduling algorithm for some of your network devices or as a
137           leaf discipline for the CBQ scheduling algorithm (see the top of
138           <file:net/sched/sch_tbf.c> for a description of the TBF algorithm).
139
140           To compile this code as a module, choose M here: the
141           module will be called sch_tbf.
142
143 config NET_SCH_GRED
144         tristate "GRED queue"
145         depends on NET_SCHED
146         help
147           Say Y here if you want to use the Generic Random Early Detection
148           (RED) packet scheduling algorithm for some of your network devices
149           (see the top of <file:net/sched/sch_red.c> for details and
150           references about the algorithm).
151
152           To compile this code as a module, choose M here: the
153           module will be called sch_gred.
154
155 config NET_SCH_DSMARK
156         tristate "Diffserv field marker"
157         depends on NET_SCHED
158         help
159           Say Y if you want to schedule packets according to the
160           Differentiated Services architecture proposed in RFC 2475.
161           Technical information on this method, with pointers to associated
162           RFCs, is available at <http://www.gta.ufrj.br/diffserv/>.
163
164           To compile this code as a module, choose M here: the
165           module will be called sch_dsmark.
166
167 config NET_SCH_DELAY
168         tristate "Delay simulator"
169         depends on NET_SCHED
170         help
171           Say Y if you want to delay packets by a fixed amount of
172           time. This is often useful to simulate network delay when
173           testing applications or protocols.
174
175           To compile this driver as a module, choose M here: the module
176           will be called sch_delay.
177
178 config NET_SCH_INGRESS
179         tristate "Ingress Qdisc"
180         depends on NET_SCHED && NETFILTER
181         help
182           If you say Y here, you will be able to police incoming bandwidth
183           and drop packets when this bandwidth exceeds your desired rate.
184           If unsure, say Y.
185
186           To compile this code as a module, choose M here: the
187           module will be called sch_ingress.
188
189 config NET_QOS
190         bool "QoS support"
191         depends on NET_SCHED
192         ---help---
193           Say Y here if you want to include Quality Of Service scheduling
194           features, which means that you will be able to request certain
195           rate-of-flow limits for your network devices.
196
197           This Quality of Service (QoS) support will enable you to use
198           Differentiated Services (diffserv) and Resource Reservation Protocol
199           (RSVP) on your Linux router if you also say Y to "Packet classifier
200           API" and to some classifiers below. Documentation and software is at
201           <http://diffserv.sourceforge.net/>.
202
203           Note that the answer to this question won't directly affect the
204           kernel: saying N will just cause the configurator to skip all
205           the questions about QoS support.
206
207 config NET_ESTIMATOR
208         bool "Rate estimator"
209         depends on NET_QOS
210         help
211           In order for Quality of Service scheduling to work, the current
212           rate-of-flow for a network device has to be estimated; if you say Y
213           here, the kernel will do just that.
214
215 config NET_CLS
216         bool "Packet classifier API"
217         depends on NET_SCHED
218         ---help---
219           The CBQ scheduling algorithm requires that network packets which are
220           scheduled to be sent out over a network device be classified
221           according to some criterion. If you say Y here, you will get a
222           choice of several different packet classifiers with the following
223           questions.
224
225           This will enable you to use Differentiated Services (diffserv) and
226           Resource Reservation Protocol (RSVP) on your Linux router.
227           Documentation and software is at
228           <http://diffserv.sourceforge.net/>.
229
230 config NET_CLS_TCINDEX
231         tristate "TC index classifier"
232         depends on NET_CLS
233         help
234           If you say Y here, you will be able to classify outgoing packets
235           according to the tc_index field of the skb. You will want this
236           feature if you want to implement Differentiated Services using
237           sch_dsmark. If unsure, say Y.
238
239           To compile this code as a module, choose M here: the
240           module will be called cls_tcindex.
241
242 config NET_CLS_ROUTE4
243         tristate "Routing table 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 the route table entry they matched. If unsure, say Y.
248
249           To compile this code as a module, choose M here: the
250           module will be called cls_route.
251
252 config NET_CLS_ROUTE
253         bool
254         depends on NET_CLS_ROUTE4
255         default y
256
257 config NET_CLS_FW
258         tristate "Firewall based classifier"
259         depends on NET_CLS
260         help
261           If you say Y here, you will be able to classify outgoing packets
262           according to firewall criteria you specified.
263
264           To compile this code as a module, choose M here: the
265           module will be called cls_fw.
266
267 config NET_CLS_U32
268         tristate "U32 classifier"
269         depends on NET_CLS
270         help
271           If you say Y here, you will be able to classify outgoing packets
272           according to their destination address. If unsure, say Y.
273
274           To compile this code as a module, choose M here: the
275           module will be called cls_u32.
276
277 config NET_CLS_RSVP
278         tristate "Special RSVP classifier"
279         depends on NET_CLS && NET_QOS
280         ---help---
281           The Resource Reservation Protocol (RSVP) permits end systems to
282           request a minimum and maximum data flow rate for a connection; this
283           is important for real time data such as streaming sound or video.
284
285           Say Y here if you want to be able to classify outgoing packets based
286           on their RSVP requests.
287
288           To compile this code as a module, choose M here: the
289           module will be called cls_rsvp.
290
291 config NET_CLS_RSVP6
292         tristate "Special RSVP classifier for IPv6"
293         depends on NET_CLS && NET_QOS
294         ---help---
295           The Resource Reservation Protocol (RSVP) permits end systems to
296           request a minimum and maximum data flow rate for a connection; this
297           is important for real time data such as streaming sound or video.
298
299           Say Y here if you want to be able to classify outgoing packets based
300           on their RSVP requests and you are using the new Internet Protocol
301           IPv6 as opposed to the older and more common IPv4.
302
303           To compile this code as a module, choose M here: the
304           module will be called cls_rsvp6.
305
306 config NET_CLS_POLICE
307         bool "Traffic policing (needed for in/egress)"
308         depends on NET_CLS && NET_QOS
309         help
310           Say Y to support traffic policing (bandwidth limits).  Needed for
311           ingress and egress rate limiting.
312