diff options
Diffstat (limited to 'net')
39 files changed, 549 insertions, 525 deletions
diff --git a/net/802/fddi.c b/net/802/fddi.c index ebcf4830d6f1..5ce24c4bb840 100644 --- a/net/802/fddi.c +++ b/net/802/fddi.c | |||
@@ -122,10 +122,10 @@ static int fddi_rebuild_header(struct sk_buff *skb) | |||
122 | * the proper pointer to the start of packet data (skb->data). | 122 | * the proper pointer to the start of packet data (skb->data). |
123 | */ | 123 | */ |
124 | 124 | ||
125 | unsigned short fddi_type_trans(struct sk_buff *skb, struct net_device *dev) | 125 | __be16 fddi_type_trans(struct sk_buff *skb, struct net_device *dev) |
126 | { | 126 | { |
127 | struct fddihdr *fddi = (struct fddihdr *)skb->data; | 127 | struct fddihdr *fddi = (struct fddihdr *)skb->data; |
128 | unsigned short type; | 128 | __be16 type; |
129 | 129 | ||
130 | /* | 130 | /* |
131 | * Set mac.raw field to point to FC byte, set data field to point | 131 | * Set mac.raw field to point to FC byte, set data field to point |
diff --git a/net/8021q/Kconfig b/net/8021q/Kconfig new file mode 100644 index 000000000000..c4a382e450e2 --- /dev/null +++ b/net/8021q/Kconfig | |||
@@ -0,0 +1,19 @@ | |||
1 | # | ||
2 | # Configuration for 802.1Q VLAN support | ||
3 | # | ||
4 | |||
5 | config VLAN_8021Q | ||
6 | tristate "802.1Q VLAN Support" | ||
7 | ---help--- | ||
8 | Select this and you will be able to create 802.1Q VLAN interfaces | ||
9 | on your ethernet interfaces. 802.1Q VLAN supports almost | ||
10 | everything a regular ethernet interface does, including | ||
11 | firewalling, bridging, and of course IP traffic. You will need | ||
12 | the 'vconfig' tool from the VLAN project in order to effectively | ||
13 | use VLANs. See the VLAN web page for more information: | ||
14 | <http://www.candelatech.com/~greear/vlan.html> | ||
15 | |||
16 | To compile this code as a module, choose M here: the module | ||
17 | will be called 8021q. | ||
18 | |||
19 | If unsure, say N. | ||
diff --git a/net/8021q/vlan.c b/net/8021q/vlan.c index 1f6d31670bc7..91e412b0ab00 100644 --- a/net/8021q/vlan.c +++ b/net/8021q/vlan.c | |||
@@ -578,6 +578,14 @@ static int vlan_device_event(struct notifier_block *unused, unsigned long event, | |||
578 | if (!vlandev) | 578 | if (!vlandev) |
579 | continue; | 579 | continue; |
580 | 580 | ||
581 | if (netif_carrier_ok(dev)) { | ||
582 | if (!netif_carrier_ok(vlandev)) | ||
583 | netif_carrier_on(vlandev); | ||
584 | } else { | ||
585 | if (netif_carrier_ok(vlandev)) | ||
586 | netif_carrier_off(vlandev); | ||
587 | } | ||
588 | |||
581 | if ((vlandev->state & VLAN_LINK_STATE_MASK) != flgs) { | 589 | if ((vlandev->state & VLAN_LINK_STATE_MASK) != flgs) { |
582 | vlandev->state = (vlandev->state &~ VLAN_LINK_STATE_MASK) | 590 | vlandev->state = (vlandev->state &~ VLAN_LINK_STATE_MASK) |
583 | | flgs; | 591 | | flgs; |
diff --git a/net/Kconfig b/net/Kconfig index 9251b28e8d5d..2684e809a649 100644 --- a/net/Kconfig +++ b/net/Kconfig | |||
@@ -2,7 +2,7 @@ | |||
2 | # Network configuration | 2 | # Network configuration |
3 | # | 3 | # |
4 | 4 | ||
5 | menu "Networking support" | 5 | menu "Networking" |
6 | 6 | ||
7 | config NET | 7 | config NET |
8 | bool "Networking support" | 8 | bool "Networking support" |
@@ -10,7 +10,9 @@ config NET | |||
10 | Unless you really know what you are doing, you should say Y here. | 10 | Unless you really know what you are doing, you should say Y here. |
11 | The reason is that some programs need kernel networking support even | 11 | The reason is that some programs need kernel networking support even |
12 | when running on a stand-alone machine that isn't connected to any | 12 | when running on a stand-alone machine that isn't connected to any |
13 | other computer. If you are upgrading from an older kernel, you | 13 | other computer. |
14 | |||
15 | If you are upgrading from an older kernel, you | ||
14 | should consider updating your networking tools too because changes | 16 | should consider updating your networking tools too because changes |
15 | in the kernel and the tools often go hand in hand. The tools are | 17 | in the kernel and the tools often go hand in hand. The tools are |
16 | contained in the package net-tools, the location and version number | 18 | contained in the package net-tools, the location and version number |
@@ -20,57 +22,14 @@ config NET | |||
20 | recommended to read the NET-HOWTO, available from | 22 | recommended to read the NET-HOWTO, available from |
21 | <http://www.tldp.org/docs.html#howto>. | 23 | <http://www.tldp.org/docs.html#howto>. |
22 | 24 | ||
23 | menu "Networking options" | 25 | # Make sure that all config symbols are dependent on NET |
24 | depends on NET | 26 | if NET |
25 | |||
26 | config PACKET | ||
27 | tristate "Packet socket" | ||
28 | ---help--- | ||
29 | The Packet protocol is used by applications which communicate | ||
30 | directly with network devices without an intermediate network | ||
31 | protocol implemented in the kernel, e.g. tcpdump. If you want them | ||
32 | to work, choose Y. | ||
33 | 27 | ||
34 | To compile this driver as a module, choose M here: the module will | 28 | menu "Networking options" |
35 | be called af_packet. | ||
36 | |||
37 | If unsure, say Y. | ||
38 | |||
39 | config PACKET_MMAP | ||
40 | bool "Packet socket: mmapped IO" | ||
41 | depends on PACKET | ||
42 | help | ||
43 | If you say Y here, the Packet protocol driver will use an IO | ||
44 | mechanism that results in faster communication. | ||
45 | |||
46 | If unsure, say N. | ||
47 | |||
48 | config UNIX | ||
49 | tristate "Unix domain sockets" | ||
50 | ---help--- | ||
51 | If you say Y here, you will include support for Unix domain sockets; | ||
52 | sockets are the standard Unix mechanism for establishing and | ||
53 | accessing network connections. Many commonly used programs such as | ||
54 | the X Window system and syslog use these sockets even if your | ||
55 | machine is not connected to any network. Unless you are working on | ||
56 | an embedded system or something similar, you therefore definitely | ||
57 | want to say Y here. | ||
58 | |||
59 | To compile this driver as a module, choose M here: the module will be | ||
60 | called unix. Note that several important services won't work | ||
61 | correctly if you say M here and then neglect to load the module. | ||
62 | |||
63 | Say Y unless you know what you are doing. | ||
64 | |||
65 | config NET_KEY | ||
66 | tristate "PF_KEY sockets" | ||
67 | select XFRM | ||
68 | ---help--- | ||
69 | PF_KEYv2 socket family, compatible to KAME ones. | ||
70 | They are required if you are going to use IPsec tools ported | ||
71 | from KAME. | ||
72 | 29 | ||
73 | Say Y unless you know what you are doing. | 30 | source "net/packet/Kconfig" |
31 | source "net/unix/Kconfig" | ||
32 | source "net/xfrm/Kconfig" | ||
74 | 33 | ||
75 | config INET | 34 | config INET |
76 | bool "TCP/IP networking" | 35 | bool "TCP/IP networking" |
@@ -94,30 +53,12 @@ config INET | |||
94 | 53 | ||
95 | Short answer: say Y. | 54 | Short answer: say Y. |
96 | 55 | ||
56 | if INET | ||
97 | source "net/ipv4/Kconfig" | 57 | source "net/ipv4/Kconfig" |
98 | |||
99 | # IPv6 as module will cause a CRASH if you try to unload it | ||
100 | config IPV6 | ||
101 | tristate "The IPv6 protocol" | ||
102 | depends on INET | ||
103 | default m | ||
104 | select CRYPTO if IPV6_PRIVACY | ||
105 | select CRYPTO_MD5 if IPV6_PRIVACY | ||
106 | ---help--- | ||
107 | This is complemental support for the IP version 6. | ||
108 | You will still be able to do traditional IPv4 networking as well. | ||
109 | |||
110 | For general information about IPv6, see | ||
111 | <http://playground.sun.com/pub/ipng/html/ipng-main.html>. | ||
112 | For Linux IPv6 development information, see <http://www.linux-ipv6.org>. | ||
113 | For specific information about IPv6 under Linux, read the HOWTO at | ||
114 | <http://www.bieringer.de/linux/IPv6/>. | ||
115 | |||
116 | To compile this protocol support as a module, choose M here: the | ||
117 | module will be called ipv6. | ||
118 | |||
119 | source "net/ipv6/Kconfig" | 58 | source "net/ipv6/Kconfig" |
120 | 59 | ||
60 | endif # if INET | ||
61 | |||
121 | menuconfig NETFILTER | 62 | menuconfig NETFILTER |
122 | bool "Network packet filtering (replaces ipchains)" | 63 | bool "Network packet filtering (replaces ipchains)" |
123 | ---help--- | 64 | ---help--- |
@@ -206,269 +147,16 @@ source "net/bridge/netfilter/Kconfig" | |||
206 | 147 | ||
207 | endif | 148 | endif |
208 | 149 | ||
209 | config XFRM | ||
210 | bool | ||
211 | depends on NET | ||
212 | |||
213 | source "net/xfrm/Kconfig" | ||
214 | |||
215 | source "net/sctp/Kconfig" | 150 | source "net/sctp/Kconfig" |
216 | 151 | source "net/atm/Kconfig" | |
217 | config ATM | 152 | source "net/bridge/Kconfig" |
218 | tristate "Asynchronous Transfer Mode (ATM) (EXPERIMENTAL)" | 153 | source "net/8021q/Kconfig" |
219 | depends on EXPERIMENTAL | ||
220 | ---help--- | ||
221 | ATM is a high-speed networking technology for Local Area Networks | ||
222 | and Wide Area Networks. It uses a fixed packet size and is | ||
223 | connection oriented, allowing for the negotiation of minimum | ||
224 | bandwidth requirements. | ||
225 | |||
226 | In order to participate in an ATM network, your Linux box needs an | ||
227 | ATM networking card. If you have that, say Y here and to the driver | ||
228 | of your ATM card below. | ||
229 | |||
230 | Note that you need a set of user-space programs to actually make use | ||
231 | of ATM. See the file <file:Documentation/networking/atm.txt> for | ||
232 | further details. | ||
233 | |||
234 | config ATM_CLIP | ||
235 | tristate "Classical IP over ATM (EXPERIMENTAL)" | ||
236 | depends on ATM && INET | ||
237 | help | ||
238 | Classical IP over ATM for PVCs and SVCs, supporting InARP and | ||
239 | ATMARP. If you want to communication with other IP hosts on your ATM | ||
240 | network, you will typically either say Y here or to "LAN Emulation | ||
241 | (LANE)" below. | ||
242 | |||
243 | config ATM_CLIP_NO_ICMP | ||
244 | bool "Do NOT send ICMP if no neighbour (EXPERIMENTAL)" | ||
245 | depends on ATM_CLIP | ||
246 | help | ||
247 | Normally, an "ICMP host unreachable" message is sent if a neighbour | ||
248 | cannot be reached because there is no VC to it in the kernel's | ||
249 | ATMARP table. This may cause problems when ATMARP table entries are | ||
250 | briefly removed during revalidation. If you say Y here, packets to | ||
251 | such neighbours are silently discarded instead. | ||
252 | |||
253 | config ATM_LANE | ||
254 | tristate "LAN Emulation (LANE) support (EXPERIMENTAL)" | ||
255 | depends on ATM | ||
256 | help | ||
257 | LAN Emulation emulates services of existing LANs across an ATM | ||
258 | network. Besides operating as a normal ATM end station client, Linux | ||
259 | LANE client can also act as an proxy client bridging packets between | ||
260 | ELAN and Ethernet segments. You need LANE if you want to try MPOA. | ||
261 | |||
262 | config ATM_MPOA | ||
263 | tristate "Multi-Protocol Over ATM (MPOA) support (EXPERIMENTAL)" | ||
264 | depends on ATM && INET && ATM_LANE!=n | ||
265 | help | ||
266 | Multi-Protocol Over ATM allows ATM edge devices such as routers, | ||
267 | bridges and ATM attached hosts establish direct ATM VCs across | ||
268 | subnetwork boundaries. These shortcut connections bypass routers | ||
269 | enhancing overall network performance. | ||
270 | |||
271 | config ATM_BR2684 | ||
272 | tristate "RFC1483/2684 Bridged protocols" | ||
273 | depends on ATM && INET | ||
274 | help | ||
275 | ATM PVCs can carry ethernet PDUs according to rfc2684 (formerly 1483) | ||
276 | This device will act like an ethernet from the kernels point of view, | ||
277 | with the traffic being carried by ATM PVCs (currently 1 PVC/device). | ||
278 | This is sometimes used over DSL lines. If in doubt, say N. | ||
279 | |||
280 | config ATM_BR2684_IPFILTER | ||
281 | bool "Per-VC IP filter kludge" | ||
282 | depends on ATM_BR2684 | ||
283 | help | ||
284 | This is an experimental mechanism for users who need to terminating a | ||
285 | large number of IP-only vcc's. Do not enable this unless you are sure | ||
286 | you know what you are doing. | ||
287 | |||
288 | config BRIDGE | ||
289 | tristate "802.1d Ethernet Bridging" | ||
290 | ---help--- | ||
291 | If you say Y here, then your Linux box will be able to act as an | ||
292 | Ethernet bridge, which means that the different Ethernet segments it | ||
293 | is connected to will appear as one Ethernet to the participants. | ||
294 | Several such bridges can work together to create even larger | ||
295 | networks of Ethernets using the IEEE 802.1 spanning tree algorithm. | ||
296 | As this is a standard, Linux bridges will cooperate properly with | ||
297 | other third party bridge products. | ||
298 | |||
299 | In order to use the Ethernet bridge, you'll need the bridge | ||
300 | configuration tools; see <file:Documentation/networking/bridge.txt> | ||
301 | for location. Please read the Bridge mini-HOWTO for more | ||
302 | information. | ||
303 | |||
304 | If you enable iptables support along with the bridge support then you | ||
305 | turn your bridge into a bridging IP firewall. | ||
306 | iptables will then see the IP packets being bridged, so you need to | ||
307 | take this into account when setting up your firewall rules. | ||
308 | Enabling arptables support when bridging will let arptables see | ||
309 | bridged ARP traffic in the arptables FORWARD chain. | ||
310 | |||
311 | To compile this code as a module, choose M here: the module | ||
312 | will be called bridge. | ||
313 | |||
314 | If unsure, say N. | ||
315 | |||
316 | config VLAN_8021Q | ||
317 | tristate "802.1Q VLAN Support" | ||
318 | ---help--- | ||
319 | Select this and you will be able to create 802.1Q VLAN interfaces | ||
320 | on your ethernet interfaces. 802.1Q VLAN supports almost | ||
321 | everything a regular ethernet interface does, including | ||
322 | firewalling, bridging, and of course IP traffic. You will need | ||
323 | the 'vconfig' tool from the VLAN project in order to effectively | ||
324 | use VLANs. See the VLAN web page for more information: | ||
325 | <http://www.candelatech.com/~greear/vlan.html> | ||
326 | |||
327 | To compile this code as a module, choose M here: the module | ||
328 | will be called 8021q. | ||
329 | |||
330 | If unsure, say N. | ||
331 | |||
332 | config DECNET | ||
333 | tristate "DECnet Support" | ||
334 | ---help--- | ||
335 | The DECnet networking protocol was used in many products made by | ||
336 | Digital (now Compaq). It provides reliable stream and sequenced | ||
337 | packet communications over which run a variety of services similar | ||
338 | to those which run over TCP/IP. | ||
339 | |||
340 | To find some tools to use with the kernel layer support, please | ||
341 | look at Patrick Caulfield's web site: | ||
342 | <http://linux-decnet.sourceforge.net/>. | ||
343 | |||
344 | More detailed documentation is available in | ||
345 | <file:Documentation/networking/decnet.txt>. | ||
346 | |||
347 | Be sure to say Y to "/proc file system support" and "Sysctl support" | ||
348 | below when using DECnet, since you will need sysctl support to aid | ||
349 | in configuration at run time. | ||
350 | |||
351 | The DECnet code is also available as a module ( = code which can be | ||
352 | inserted in and removed from the running kernel whenever you want). | ||
353 | The module is called decnet. | ||
354 | |||
355 | source "net/decnet/Kconfig" | 154 | source "net/decnet/Kconfig" |
356 | |||
357 | source "net/llc/Kconfig" | 155 | source "net/llc/Kconfig" |
358 | |||
359 | config IPX | ||
360 | tristate "The IPX protocol" | ||
361 | select LLC | ||
362 | ---help--- | ||
363 | This is support for the Novell networking protocol, IPX, commonly | ||
364 | used for local networks of Windows machines. You need it if you | ||
365 | want to access Novell NetWare file or print servers using the Linux | ||
366 | Novell client ncpfs (available from | ||
367 | <ftp://platan.vc.cvut.cz/pub/linux/ncpfs/>) or from | ||
368 | within the Linux DOS emulator DOSEMU (read the DOSEMU-HOWTO, | ||
369 | available from <http://www.tldp.org/docs.html#howto>). In order | ||
370 | to do the former, you'll also have to say Y to "NCP file system | ||
371 | support", below. | ||
372 | |||
373 | IPX is similar in scope to IP, while SPX, which runs on top of IPX, | ||
374 | is similar to TCP. There is also experimental support for SPX in | ||
375 | Linux (see "SPX networking", below). | ||
376 | |||
377 | To turn your Linux box into a fully featured NetWare file server and | ||
378 | IPX router, say Y here and fetch either lwared from | ||
379 | <ftp://ibiblio.org/pub/Linux/system/network/daemons/> or | ||
380 | mars_nwe from <ftp://www.compu-art.de/mars_nwe/>. For more | ||
381 | information, read the IPX-HOWTO available from | ||
382 | <http://www.tldp.org/docs.html#howto>. | ||
383 | |||
384 | General information about how to connect Linux, Windows machines and | ||
385 | Macs is on the WWW at <http://www.eats.com/linux_mac_win.html>. | ||
386 | |||
387 | The IPX driver would enlarge your kernel by about 16 KB. To compile | ||
388 | this driver as a module, choose M here: the module will be called ipx. | ||
389 | Unless you want to integrate your Linux box with a local Novell | ||
390 | network, say N. | ||
391 | |||
392 | source "net/ipx/Kconfig" | 156 | source "net/ipx/Kconfig" |
393 | |||
394 | config ATALK | ||
395 | tristate "Appletalk protocol support" | ||
396 | select LLC | ||
397 | ---help--- | ||
398 | AppleTalk is the protocol that Apple computers can use to communicate | ||
399 | on a network. If your Linux box is connected to such a network and you | ||
400 | wish to connect to it, say Y. You will need to use the netatalk package | ||
401 | so that your Linux box can act as a print and file server for Macs as | ||
402 | well as access AppleTalk printers. Check out | ||
403 | <http://www.zettabyte.net/netatalk/> on the WWW for details. | ||
404 | EtherTalk is the name used for AppleTalk over Ethernet and the | ||
405 | cheaper and slower LocalTalk is AppleTalk over a proprietary Apple | ||
406 | network using serial links. EtherTalk and LocalTalk are fully | ||
407 | supported by Linux. | ||
408 | |||
409 | General information about how to connect Linux, Windows machines and | ||
410 | Macs is on the WWW at <http://www.eats.com/linux_mac_win.html>. The | ||
411 | NET-3-HOWTO, available from | ||
412 | <http://www.tldp.org/docs.html#howto>, contains valuable | ||
413 | information as well. | ||
414 | |||
415 | To compile this driver as a module, choose M here: the module will be | ||
416 | called appletalk. You almost certainly want to compile it as a | ||
417 | module so you can restart your AppleTalk stack without rebooting | ||
418 | your machine. I hear that the GNU boycott of Apple is over, so | ||
419 | even politically correct people are allowed to say Y here. | ||
420 | |||
421 | source "drivers/net/appletalk/Kconfig" | 157 | source "drivers/net/appletalk/Kconfig" |
422 | 158 | source "net/x25/Kconfig" | |
423 | config X25 | 159 | source "net/lapb/Kconfig" |
424 | tristate "CCITT X.25 Packet Layer (EXPERIMENTAL)" | ||
425 | depends on EXPERIMENTAL | ||
426 | ---help--- | ||
427 | X.25 is a set of standardized network protocols, similar in scope to | ||
428 | frame relay; the one physical line from your box to the X.25 network | ||
429 | entry point can carry several logical point-to-point connections | ||
430 | (called "virtual circuits") to other computers connected to the X.25 | ||
431 | network. Governments, banks, and other organizations tend to use it | ||
432 | to connect to each other or to form Wide Area Networks (WANs). Many | ||
433 | countries have public X.25 networks. X.25 consists of two | ||
434 | protocols: the higher level Packet Layer Protocol (PLP) (say Y here | ||
435 | if you want that) and the lower level data link layer protocol LAPB | ||
436 | (say Y to "LAPB Data Link Driver" below if you want that). | ||
437 | |||
438 | You can read more about X.25 at <http://www.sangoma.com/x25.htm> and | ||
439 | <http://www.cisco.com/univercd/cc/td/doc/product/software/ios11/cbook/cx25.htm>. | ||
440 | Information about X.25 for Linux is contained in the files | ||
441 | <file:Documentation/networking/x25.txt> and | ||
442 | <file:Documentation/networking/x25-iface.txt>. | ||
443 | |||
444 | One connects to an X.25 network either with a dedicated network card | ||
445 | using the X.21 protocol (not yet supported by Linux) or one can do | ||
446 | X.25 over a standard telephone line using an ordinary modem (say Y | ||
447 | to "X.25 async driver" below) or over Ethernet using an ordinary | ||
448 | Ethernet card and the LAPB over Ethernet (say Y to "LAPB Data Link | ||
449 | Driver" and "LAPB over Ethernet driver" below). | ||
450 | |||
451 | To compile this driver as a module, choose M here: the module | ||
452 | will be called x25. If unsure, say N. | ||
453 | |||
454 | config LAPB | ||
455 | tristate "LAPB Data Link Driver (EXPERIMENTAL)" | ||
456 | depends on EXPERIMENTAL | ||
457 | ---help--- | ||
458 | Link Access Procedure, Balanced (LAPB) is the data link layer (i.e. | ||
459 | the lower) part of the X.25 protocol. It offers a reliable | ||
460 | connection service to exchange data frames with one other host, and | ||
461 | it is used to transport higher level protocols (mostly X.25 Packet | ||
462 | Layer, the higher part of X.25, but others are possible as well). | ||
463 | Usually, LAPB is used with specialized X.21 network cards, but Linux | ||
464 | currently supports LAPB only over Ethernet connections. If you want | ||
465 | to use LAPB connections over Ethernet, say Y here and to "LAPB over | ||
466 | Ethernet driver" below. Read | ||
467 | <file:Documentation/networking/lapb-module.txt> for technical | ||
468 | details. | ||
469 | |||
470 | To compile this driver as a module, choose M here: the | ||
471 | module will be called lapb. If unsure, say N. | ||
472 | 160 | ||
473 | config NET_DIVERT | 161 | config NET_DIVERT |
474 | bool "Frame Diverter (EXPERIMENTAL)" | 162 | bool "Frame Diverter (EXPERIMENTAL)" |
@@ -496,107 +184,10 @@ config NET_DIVERT | |||
496 | 184 | ||
497 | If unsure, say N. | 185 | If unsure, say N. |
498 | 186 | ||
499 | config ECONET | 187 | source "net/econet/Kconfig" |
500 | tristate "Acorn Econet/AUN protocols (EXPERIMENTAL)" | 188 | source "net/wanrouter/Kconfig" |
501 | depends on EXPERIMENTAL && INET | ||
502 | ---help--- | ||
503 | Econet is a fairly old and slow networking protocol mainly used by | ||
504 | Acorn computers to access file and print servers. It uses native | ||
505 | Econet network cards. AUN is an implementation of the higher level | ||
506 | parts of Econet that runs over ordinary Ethernet connections, on | ||
507 | top of the UDP packet protocol, which in turn runs on top of the | ||
508 | Internet protocol IP. | ||
509 | |||
510 | If you say Y here, you can choose with the next two options whether | ||
511 | to send Econet/AUN traffic over a UDP Ethernet connection or over | ||
512 | a native Econet network card. | ||
513 | |||
514 | To compile this driver as a module, choose M here: the module | ||
515 | will be called econet. | ||
516 | |||
517 | config ECONET_AUNUDP | ||
518 | bool "AUN over UDP" | ||
519 | depends on ECONET | ||
520 | help | ||
521 | Say Y here if you want to send Econet/AUN traffic over a UDP | ||
522 | connection (UDP is a packet based protocol that runs on top of the | ||
523 | Internet protocol IP) using an ordinary Ethernet network card. | ||
524 | |||
525 | config ECONET_NATIVE | ||
526 | bool "Native Econet" | ||
527 | depends on ECONET | ||
528 | help | ||
529 | Say Y here if you have a native Econet network card installed in | ||
530 | your computer. | ||
531 | |||
532 | config WAN_ROUTER | ||
533 | tristate "WAN router" | ||
534 | depends on EXPERIMENTAL | ||
535 | ---help--- | ||
536 | Wide Area Networks (WANs), such as X.25, frame relay and leased | ||
537 | lines, are used to interconnect Local Area Networks (LANs) over vast | ||
538 | distances with data transfer rates significantly higher than those | ||
539 | achievable with commonly used asynchronous modem connections. | ||
540 | Usually, a quite expensive external device called a `WAN router' is | ||
541 | needed to connect to a WAN. | ||
542 | |||
543 | As an alternative, WAN routing can be built into the Linux kernel. | ||
544 | With relatively inexpensive WAN interface cards available on the | ||
545 | market, a perfectly usable router can be built for less than half | ||
546 | the price of an external router. If you have one of those cards and | ||
547 | wish to use your Linux box as a WAN router, say Y here and also to | ||
548 | the WAN driver for your card, below. You will then need the | ||
549 | wan-tools package which is available from <ftp://ftp.sangoma.com/>. | ||
550 | Read <file:Documentation/networking/wan-router.txt> for more | ||
551 | information. | ||
552 | |||
553 | To compile WAN routing support as a module, choose M here: the | ||
554 | module will be called wanrouter. | ||
555 | |||
556 | If unsure, say N. | ||
557 | |||
558 | menu "QoS and/or fair queueing" | ||
559 | |||
560 | config NET_SCHED | ||
561 | bool "QoS and/or fair queueing" | ||
562 | ---help--- | ||
563 | When the kernel has several packets to send out over a network | ||
564 | device, it has to decide which ones to send first, which ones to | ||
565 | delay, and which ones to drop. This is the job of the packet | ||
566 | scheduler, and several different algorithms for how to do this | ||
567 | "fairly" have been proposed. | ||
568 | |||
569 | If you say N here, you will get the standard packet scheduler, which | ||
570 | is a FIFO (first come, first served). If you say Y here, you will be | ||
571 | able to choose from among several alternative algorithms which can | ||
572 | then be attached to different network devices. This is useful for | ||
573 | example if some of your network devices are real time devices that | ||
574 | need a certain minimum data flow rate, or if you need to limit the | ||
575 | maximum data flow rate for traffic which matches specified criteria. | ||
576 | This code is considered to be experimental. | ||
577 | |||
578 | To administer these schedulers, you'll need the user-level utilities | ||
579 | from the package iproute2+tc at <ftp://ftp.tux.org/pub/net/ip-routing/>. | ||
580 | That package also contains some documentation; for more, check out | ||
581 | <http://snafu.freedom.org/linux2.2/iproute-notes.html>. | ||
582 | |||
583 | This Quality of Service (QoS) support will enable you to use | ||
584 | Differentiated Services (diffserv) and Resource Reservation Protocol | ||
585 | (RSVP) on your Linux router if you also say Y to "QoS support", | ||
586 | "Packet classifier API" and to some classifiers below. Documentation | ||
587 | and software is at <http://diffserv.sourceforge.net/>. | ||
588 | |||
589 | If you say Y here and to "/proc file system" below, you will be able | ||
590 | to read status information about packet schedulers from the file | ||
591 | /proc/net/psched. | ||
592 | |||
593 | The available schedulers are listed in the following questions; you | ||
594 | can say Y to as many as you like. If unsure, say N now. | ||
595 | |||
596 | source "net/sched/Kconfig" | 189 | source "net/sched/Kconfig" |
597 | 190 | ||
598 | endmenu | ||
599 | |||
600 | menu "Network testing" | 191 | menu "Network testing" |
601 | 192 | ||
602 | config NET_PKTGEN | 193 | config NET_PKTGEN |
@@ -635,12 +226,9 @@ config NET_POLL_CONTROLLER | |||
635 | def_bool NETPOLL | 226 | def_bool NETPOLL |
636 | 227 | ||
637 | source "net/ax25/Kconfig" | 228 | source "net/ax25/Kconfig" |
638 | |||
639 | source "net/irda/Kconfig" | 229 | source "net/irda/Kconfig" |
640 | |||
641 | source "net/bluetooth/Kconfig" | 230 | source "net/bluetooth/Kconfig" |
642 | 231 | ||
643 | source "drivers/net/Kconfig" | 232 | endif # if NET |
644 | 233 | endmenu # Networking | |
645 | endmenu | ||
646 | 234 | ||
diff --git a/net/atm/Kconfig b/net/atm/Kconfig new file mode 100644 index 000000000000..bea2426229b1 --- /dev/null +++ b/net/atm/Kconfig | |||
@@ -0,0 +1,74 @@ | |||
1 | # | ||
2 | # Asynchronous Transfer Mode (ATM) (EXPERIMENTAL) | ||
3 | # | ||
4 | |||
5 | config ATM | ||
6 | tristate "Asynchronous Transfer Mode (ATM) (EXPERIMENTAL)" | ||
7 | depends on EXPERIMENTAL | ||
8 | ---help--- | ||
9 | ATM is a high-speed networking technology for Local Area Networks | ||
10 | and Wide Area Networks. It uses a fixed packet size and is | ||
11 | connection oriented, allowing for the negotiation of minimum | ||
12 | bandwidth requirements. | ||
13 | |||
14 | In order to participate in an ATM network, your Linux box needs an | ||
15 | ATM networking card. If you have that, say Y here and to the driver | ||
16 | of your ATM card below. | ||
17 | |||
18 | Note that you need a set of user-space programs to actually make use | ||
19 | of ATM. See the file <file:Documentation/networking/atm.txt> for | ||
20 | further details. | ||
21 | |||
22 | config ATM_CLIP | ||
23 | tristate "Classical IP over ATM (EXPERIMENTAL)" | ||
24 | depends on ATM && INET | ||
25 | help | ||
26 | Classical IP over ATM for PVCs and SVCs, supporting InARP and | ||
27 | ATMARP. If you want to communication with other IP hosts on your ATM | ||
28 | network, you will typically either say Y here or to "LAN Emulation | ||
29 | (LANE)" below. | ||
30 | |||
31 | config ATM_CLIP_NO_ICMP | ||
32 | bool "Do NOT send ICMP if no neighbour (EXPERIMENTAL)" | ||
33 | depends on ATM_CLIP | ||
34 | help | ||
35 | Normally, an "ICMP host unreachable" message is sent if a neighbour | ||
36 | cannot be reached because there is no VC to it in the kernel's | ||
37 | ATMARP table. This may cause problems when ATMARP table entries are | ||
38 | briefly removed during revalidation. If you say Y here, packets to | ||
39 | such neighbours are silently discarded instead. | ||
40 | |||
41 | config ATM_LANE | ||
42 | tristate "LAN Emulation (LANE) support (EXPERIMENTAL)" | ||
43 | depends on ATM | ||
44 | help | ||
45 | LAN Emulation emulates services of existing LANs across an ATM | ||
46 | network. Besides operating as a normal ATM end station client, Linux | ||
47 | LANE client can also act as an proxy client bridging packets between | ||
48 | ELAN and Ethernet segments. You need LANE if you want to try MPOA. | ||
49 | |||
50 | config ATM_MPOA | ||
51 | tristate "Multi-Protocol Over ATM (MPOA) support (EXPERIMENTAL)" | ||
52 | depends on ATM && INET && ATM_LANE!=n | ||
53 | help | ||
54 | Multi-Protocol Over ATM allows ATM edge devices such as routers, | ||
55 | bridges and ATM attached hosts establish direct ATM VCs across | ||
56 | subnetwork boundaries. These shortcut connections bypass routers | ||
57 | enhancing overall network performance. | ||
58 | |||
59 | config ATM_BR2684 | ||
60 | tristate "RFC1483/2684 Bridged protocols" | ||
61 | depends on ATM && INET | ||
62 | help | ||
63 | ATM PVCs can carry ethernet PDUs according to rfc2684 (formerly 1483) | ||
64 | This device will act like an ethernet from the kernels point of view, | ||
65 | with the traffic being carried by ATM PVCs (currently 1 PVC/device). | ||
66 | This is sometimes used over DSL lines. If in doubt, say N. | ||
67 | |||
68 | config ATM_BR2684_IPFILTER | ||
69 | bool "Per-VC IP filter kludge" | ||
70 | depends on ATM_BR2684 | ||
71 | help | ||
72 | This is an experimental mechanism for users who need to terminating a | ||
73 | large number of IP-only vcc's. Do not enable this unless you are sure | ||
74 | you know what you are doing. | ||
diff --git a/net/atm/br2684.c b/net/atm/br2684.c index e6954cf1459d..289956c4dd3e 100644 --- a/net/atm/br2684.c +++ b/net/atm/br2684.c | |||
@@ -289,8 +289,7 @@ xmit will add the additional header part in that case */ | |||
289 | * This is similar to eth_type_trans, which cannot be used because of | 289 | * This is similar to eth_type_trans, which cannot be used because of |
290 | * our dev->hard_header_len | 290 | * our dev->hard_header_len |
291 | */ | 291 | */ |
292 | static inline unsigned short br_type_trans(struct sk_buff *skb, | 292 | static inline __be16 br_type_trans(struct sk_buff *skb, struct net_device *dev) |
293 | struct net_device *dev) | ||
294 | { | 293 | { |
295 | struct ethhdr *eth; | 294 | struct ethhdr *eth; |
296 | unsigned char *rawp; | 295 | unsigned char *rawp; |
diff --git a/net/bridge/Kconfig b/net/bridge/Kconfig new file mode 100644 index 000000000000..db23d59746cf --- /dev/null +++ b/net/bridge/Kconfig | |||
@@ -0,0 +1,31 @@ | |||
1 | # | ||
2 | # 802.1d Ethernet Bridging | ||
3 | # | ||
4 | |||
5 | config BRIDGE | ||
6 | tristate "802.1d Ethernet Bridging" | ||
7 | ---help--- | ||
8 | If you say Y here, then your Linux box will be able to act as an | ||
9 | Ethernet bridge, which means that the different Ethernet segments it | ||
10 | is connected to will appear as one Ethernet to the participants. | ||
11 | Several such bridges can work together to create even larger | ||
12 | networks of Ethernets using the IEEE 802.1 spanning tree algorithm. | ||
13 | As this is a standard, Linux bridges will cooperate properly with | ||
14 | other third party bridge products. | ||
15 | |||
16 | In order to use the Ethernet bridge, you'll need the bridge | ||
17 | configuration tools; see <file:Documentation/networking/bridge.txt> | ||
18 | for location. Please read the Bridge mini-HOWTO for more | ||
19 | information. | ||
20 | |||
21 | If you enable iptables support along with the bridge support then you | ||
22 | turn your bridge into a bridging IP firewall. | ||
23 | iptables will then see the IP packets being bridged, so you need to | ||
24 | take this into account when setting up your firewall rules. | ||
25 | Enabling arptables support when bridging will let arptables see | ||
26 | bridged ARP traffic in the arptables FORWARD chain. | ||
27 | |||
28 | To compile this code as a module, choose M here: the module | ||
29 | will be called bridge. | ||
30 | |||
31 | If unsure, say N. | ||
diff --git a/net/decnet/Kconfig b/net/decnet/Kconfig index 2101da542ba8..92f2ec46fd22 100644 --- a/net/decnet/Kconfig +++ b/net/decnet/Kconfig | |||
@@ -1,6 +1,29 @@ | |||
1 | # | 1 | # |
2 | # DECnet configuration | 2 | # DECnet configuration |
3 | # | 3 | # |
4 | config DECNET | ||
5 | tristate "DECnet Support" | ||
6 | ---help--- | ||
7 | The DECnet networking protocol was used in many products made by | ||
8 | Digital (now Compaq). It provides reliable stream and sequenced | ||
9 | packet communications over which run a variety of services similar | ||
10 | to those which run over TCP/IP. | ||
11 | |||
12 | To find some tools to use with the kernel layer support, please | ||
13 | look at Patrick Caulfield's web site: | ||
14 | <http://linux-decnet.sourceforge.net/>. | ||
15 | |||
16 | More detailed documentation is available in | ||
17 | <file:Documentation/networking/decnet.txt>. | ||
18 | |||
19 | Be sure to say Y to "/proc file system support" and "Sysctl support" | ||
20 | below when using DECnet, since you will need sysctl support to aid | ||
21 | in configuration at run time. | ||
22 | |||
23 | The DECnet code is also available as a module ( = code which can be | ||
24 | inserted in and removed from the running kernel whenever you want). | ||
25 | The module is called decnet. | ||
26 | |||
4 | config DECNET_ROUTER | 27 | config DECNET_ROUTER |
5 | bool "DECnet: router support (EXPERIMENTAL)" | 28 | bool "DECnet: router support (EXPERIMENTAL)" |
6 | depends on DECNET && EXPERIMENTAL | 29 | depends on DECNET && EXPERIMENTAL |
diff --git a/net/econet/Kconfig b/net/econet/Kconfig new file mode 100644 index 000000000000..39a2d2975e0e --- /dev/null +++ b/net/econet/Kconfig | |||
@@ -0,0 +1,36 @@ | |||
1 | # | ||
2 | # Acorn Econet/AUN protocols | ||
3 | # | ||
4 | |||
5 | config ECONET | ||
6 | tristate "Acorn Econet/AUN protocols (EXPERIMENTAL)" | ||
7 | depends on EXPERIMENTAL && INET | ||
8 | ---help--- | ||
9 | Econet is a fairly old and slow networking protocol mainly used by | ||
10 | Acorn computers to access file and print servers. It uses native | ||
11 | Econet network cards. AUN is an implementation of the higher level | ||
12 | parts of Econet that runs over ordinary Ethernet connections, on | ||
13 | top of the UDP packet protocol, which in turn runs on top of the | ||
14 | Internet protocol IP. | ||
15 | |||
16 | If you say Y here, you can choose with the next two options whether | ||
17 | to send Econet/AUN traffic over a UDP Ethernet connection or over | ||
18 | a native Econet network card. | ||
19 | |||
20 | To compile this driver as a module, choose M here: the module | ||
21 | will be called econet. | ||
22 | |||
23 | config ECONET_AUNUDP | ||
24 | bool "AUN over UDP" | ||
25 | depends on ECONET | ||
26 | help | ||
27 | Say Y here if you want to send Econet/AUN traffic over a UDP | ||
28 | connection (UDP is a packet based protocol that runs on top of the | ||
29 | Internet protocol IP) using an ordinary Ethernet network card. | ||
30 | |||
31 | config ECONET_NATIVE | ||
32 | bool "Native Econet" | ||
33 | depends on ECONET | ||
34 | help | ||
35 | Say Y here if you have a native Econet network card installed in | ||
36 | your computer. | ||
diff --git a/net/ethernet/eth.c b/net/ethernet/eth.c index ab60ea63688e..f6dbfb99b14d 100644 --- a/net/ethernet/eth.c +++ b/net/ethernet/eth.c | |||
@@ -155,7 +155,7 @@ int eth_rebuild_header(struct sk_buff *skb) | |||
155 | * This is normal practice and works for any 'now in use' protocol. | 155 | * This is normal practice and works for any 'now in use' protocol. |
156 | */ | 156 | */ |
157 | 157 | ||
158 | unsigned short eth_type_trans(struct sk_buff *skb, struct net_device *dev) | 158 | __be16 eth_type_trans(struct sk_buff *skb, struct net_device *dev) |
159 | { | 159 | { |
160 | struct ethhdr *eth; | 160 | struct ethhdr *eth; |
161 | unsigned char *rawp; | 161 | unsigned char *rawp; |
diff --git a/net/ipv4/Kconfig b/net/ipv4/Kconfig index 3e63123f7bbd..df5386885a90 100644 --- a/net/ipv4/Kconfig +++ b/net/ipv4/Kconfig | |||
@@ -3,7 +3,6 @@ | |||
3 | # | 3 | # |
4 | config IP_MULTICAST | 4 | config IP_MULTICAST |
5 | bool "IP: multicasting" | 5 | bool "IP: multicasting" |
6 | depends on INET | ||
7 | help | 6 | help |
8 | This is code for addressing several networked computers at once, | 7 | This is code for addressing several networked computers at once, |
9 | enlarging your kernel by about 2 KB. You need multicasting if you | 8 | enlarging your kernel by about 2 KB. You need multicasting if you |
@@ -17,7 +16,6 @@ config IP_MULTICAST | |||
17 | 16 | ||
18 | config IP_ADVANCED_ROUTER | 17 | config IP_ADVANCED_ROUTER |
19 | bool "IP: advanced router" | 18 | bool "IP: advanced router" |
20 | depends on INET | ||
21 | ---help--- | 19 | ---help--- |
22 | If you intend to run your Linux box mostly as a router, i.e. as a | 20 | If you intend to run your Linux box mostly as a router, i.e. as a |
23 | computer that forwards and redistributes network packets, say Y; you | 21 | computer that forwards and redistributes network packets, say Y; you |
@@ -183,7 +181,6 @@ config IP_ROUTE_VERBOSE | |||
183 | 181 | ||
184 | config IP_PNP | 182 | config IP_PNP |
185 | bool "IP: kernel level autoconfiguration" | 183 | bool "IP: kernel level autoconfiguration" |
186 | depends on INET | ||
187 | help | 184 | help |
188 | This enables automatic configuration of IP addresses of devices and | 185 | This enables automatic configuration of IP addresses of devices and |
189 | of the routing table during kernel boot, based on either information | 186 | of the routing table during kernel boot, based on either information |
@@ -242,7 +239,6 @@ config IP_PNP_RARP | |||
242 | # bool ' IP: ARP support' CONFIG_IP_PNP_ARP | 239 | # bool ' IP: ARP support' CONFIG_IP_PNP_ARP |
243 | config NET_IPIP | 240 | config NET_IPIP |
244 | tristate "IP: tunneling" | 241 | tristate "IP: tunneling" |
245 | depends on INET | ||
246 | select INET_TUNNEL | 242 | select INET_TUNNEL |
247 | ---help--- | 243 | ---help--- |
248 | Tunneling means encapsulating data of one protocol type within | 244 | Tunneling means encapsulating data of one protocol type within |
@@ -260,7 +256,6 @@ config NET_IPIP | |||
260 | 256 | ||
261 | config NET_IPGRE | 257 | config NET_IPGRE |
262 | tristate "IP: GRE tunnels over IP" | 258 | tristate "IP: GRE tunnels over IP" |
263 | depends on INET | ||
264 | select XFRM | 259 | select XFRM |
265 | help | 260 | help |
266 | Tunneling means encapsulating data of one protocol type within | 261 | Tunneling means encapsulating data of one protocol type within |
@@ -319,7 +314,7 @@ config IP_PIMSM_V2 | |||
319 | 314 | ||
320 | config ARPD | 315 | config ARPD |
321 | bool "IP: ARP daemon support (EXPERIMENTAL)" | 316 | bool "IP: ARP daemon support (EXPERIMENTAL)" |
322 | depends on INET && EXPERIMENTAL | 317 | depends on EXPERIMENTAL |
323 | ---help--- | 318 | ---help--- |
324 | Normally, the kernel maintains an internal cache which maps IP | 319 | Normally, the kernel maintains an internal cache which maps IP |
325 | addresses to hardware addresses on the local network, so that | 320 | addresses to hardware addresses on the local network, so that |
@@ -344,7 +339,6 @@ config ARPD | |||
344 | 339 | ||
345 | config SYN_COOKIES | 340 | config SYN_COOKIES |
346 | bool "IP: TCP syncookie support (disabled per default)" | 341 | bool "IP: TCP syncookie support (disabled per default)" |
347 | depends on INET | ||
348 | ---help--- | 342 | ---help--- |
349 | Normal TCP/IP networking is open to an attack known as "SYN | 343 | Normal TCP/IP networking is open to an attack known as "SYN |
350 | flooding". This denial-of-service attack prevents legitimate remote | 344 | flooding". This denial-of-service attack prevents legitimate remote |
@@ -381,7 +375,6 @@ config SYN_COOKIES | |||
381 | 375 | ||
382 | config INET_AH | 376 | config INET_AH |
383 | tristate "IP: AH transformation" | 377 | tristate "IP: AH transformation" |
384 | depends on INET | ||
385 | select XFRM | 378 | select XFRM |
386 | select CRYPTO | 379 | select CRYPTO |
387 | select CRYPTO_HMAC | 380 | select CRYPTO_HMAC |
@@ -394,7 +387,6 @@ config INET_AH | |||
394 | 387 | ||
395 | config INET_ESP | 388 | config INET_ESP |
396 | tristate "IP: ESP transformation" | 389 | tristate "IP: ESP transformation" |
397 | depends on INET | ||
398 | select XFRM | 390 | select XFRM |
399 | select CRYPTO | 391 | select CRYPTO |
400 | select CRYPTO_HMAC | 392 | select CRYPTO_HMAC |
@@ -408,7 +400,6 @@ config INET_ESP | |||
408 | 400 | ||
409 | config INET_IPCOMP | 401 | config INET_IPCOMP |
410 | tristate "IP: IPComp transformation" | 402 | tristate "IP: IPComp transformation" |
411 | depends on INET | ||
412 | select XFRM | 403 | select XFRM |
413 | select INET_TUNNEL | 404 | select INET_TUNNEL |
414 | select CRYPTO | 405 | select CRYPTO |
@@ -421,7 +412,6 @@ config INET_IPCOMP | |||
421 | 412 | ||
422 | config INET_TUNNEL | 413 | config INET_TUNNEL |
423 | tristate "IP: tunnel transformation" | 414 | tristate "IP: tunnel transformation" |
424 | depends on INET | ||
425 | select XFRM | 415 | select XFRM |
426 | ---help--- | 416 | ---help--- |
427 | Support for generic IP tunnel transformation, which is required by | 417 | Support for generic IP tunnel transformation, which is required by |
@@ -431,7 +421,6 @@ config INET_TUNNEL | |||
431 | 421 | ||
432 | config IP_TCPDIAG | 422 | config IP_TCPDIAG |
433 | tristate "IP: TCP socket monitoring interface" | 423 | tristate "IP: TCP socket monitoring interface" |
434 | depends on INET | ||
435 | default y | 424 | default y |
436 | ---help--- | 425 | ---help--- |
437 | Support for TCP socket monitoring interface used by native Linux | 426 | Support for TCP socket monitoring interface used by native Linux |
@@ -447,7 +436,6 @@ config IP_TCPDIAG_IPV6 | |||
447 | 436 | ||
448 | config TCP_CONG_ADVANCED | 437 | config TCP_CONG_ADVANCED |
449 | bool "TCP: advanced congestion control" | 438 | bool "TCP: advanced congestion control" |
450 | depends on INET | ||
451 | ---help--- | 439 | ---help--- |
452 | Support for selection of various TCP congestion control | 440 | Support for selection of various TCP congestion control |
453 | modules. | 441 | modules. |
@@ -463,7 +451,6 @@ menu "TCP congestion control" | |||
463 | 451 | ||
464 | config TCP_CONG_BIC | 452 | config TCP_CONG_BIC |
465 | tristate "Binary Increase Congestion (BIC) control" | 453 | tristate "Binary Increase Congestion (BIC) control" |
466 | depends on INET | ||
467 | default y | 454 | default y |
468 | ---help--- | 455 | ---help--- |
469 | BIC-TCP is a sender-side only change that ensures a linear RTT | 456 | BIC-TCP is a sender-side only change that ensures a linear RTT |
@@ -478,7 +465,6 @@ config TCP_CONG_BIC | |||
478 | 465 | ||
479 | config TCP_CONG_WESTWOOD | 466 | config TCP_CONG_WESTWOOD |
480 | tristate "TCP Westwood+" | 467 | tristate "TCP Westwood+" |
481 | depends on INET | ||
482 | default m | 468 | default m |
483 | ---help--- | 469 | ---help--- |
484 | TCP Westwood+ is a sender-side only modification of the TCP Reno | 470 | TCP Westwood+ is a sender-side only modification of the TCP Reno |
@@ -493,7 +479,6 @@ config TCP_CONG_WESTWOOD | |||
493 | 479 | ||
494 | config TCP_CONG_HTCP | 480 | config TCP_CONG_HTCP |
495 | tristate "H-TCP" | 481 | tristate "H-TCP" |
496 | depends on INET | ||
497 | default m | 482 | default m |
498 | ---help--- | 483 | ---help--- |
499 | H-TCP is a send-side only modifications of the TCP Reno | 484 | H-TCP is a send-side only modifications of the TCP Reno |
@@ -505,7 +490,7 @@ config TCP_CONG_HTCP | |||
505 | 490 | ||
506 | config TCP_CONG_HSTCP | 491 | config TCP_CONG_HSTCP |
507 | tristate "High Speed TCP" | 492 | tristate "High Speed TCP" |
508 | depends on INET && EXPERIMENTAL | 493 | depends on EXPERIMENTAL |
509 | default n | 494 | default n |
510 | ---help--- | 495 | ---help--- |
511 | Sally Floyd's High Speed TCP (RFC 3649) congestion control. | 496 | Sally Floyd's High Speed TCP (RFC 3649) congestion control. |
@@ -516,7 +501,7 @@ config TCP_CONG_HSTCP | |||
516 | 501 | ||
517 | config TCP_CONG_HYBLA | 502 | config TCP_CONG_HYBLA |
518 | tristate "TCP-Hybla congestion control algorithm" | 503 | tristate "TCP-Hybla congestion control algorithm" |
519 | depends on INET && EXPERIMENTAL | 504 | depends on EXPERIMENTAL |
520 | default n | 505 | default n |
521 | ---help--- | 506 | ---help--- |
522 | TCP-Hybla is a sender-side only change that eliminates penalization of | 507 | TCP-Hybla is a sender-side only change that eliminates penalization of |
@@ -526,7 +511,7 @@ config TCP_CONG_HYBLA | |||
526 | 511 | ||
527 | config TCP_CONG_VEGAS | 512 | config TCP_CONG_VEGAS |
528 | tristate "TCP Vegas" | 513 | tristate "TCP Vegas" |
529 | depends on INET && EXPERIMENTAL | 514 | depends on EXPERIMENTAL |
530 | default n | 515 | default n |
531 | ---help--- | 516 | ---help--- |
532 | TCP Vegas is a sender-side only change to TCP that anticipates | 517 | TCP Vegas is a sender-side only change to TCP that anticipates |
@@ -537,7 +522,7 @@ config TCP_CONG_VEGAS | |||
537 | 522 | ||
538 | config TCP_CONG_SCALABLE | 523 | config TCP_CONG_SCALABLE |
539 | tristate "Scalable TCP" | 524 | tristate "Scalable TCP" |
540 | depends on INET && EXPERIMENTAL | 525 | depends on EXPERIMENTAL |
541 | default n | 526 | default n |
542 | ---help--- | 527 | ---help--- |
543 | Scalable TCP is a sender-side only change to TCP which uses a | 528 | Scalable TCP is a sender-side only change to TCP which uses a |
diff --git a/net/ipv4/ip_output.c b/net/ipv4/ip_output.c index 9de83e6e0f1d..80d13103b2b0 100644 --- a/net/ipv4/ip_output.c +++ b/net/ipv4/ip_output.c | |||
@@ -107,7 +107,6 @@ static int ip_dev_loopback_xmit(struct sk_buff *newskb) | |||
107 | newskb->pkt_type = PACKET_LOOPBACK; | 107 | newskb->pkt_type = PACKET_LOOPBACK; |
108 | newskb->ip_summed = CHECKSUM_UNNECESSARY; | 108 | newskb->ip_summed = CHECKSUM_UNNECESSARY; |
109 | BUG_TRAP(newskb->dst); | 109 | BUG_TRAP(newskb->dst); |
110 | nf_reset(newskb); | ||
111 | netif_rx(newskb); | 110 | netif_rx(newskb); |
112 | return 0; | 111 | return 0; |
113 | } | 112 | } |
@@ -188,14 +187,6 @@ static inline int ip_finish_output2(struct sk_buff *skb) | |||
188 | skb = skb2; | 187 | skb = skb2; |
189 | } | 188 | } |
190 | 189 | ||
191 | #ifdef CONFIG_BRIDGE_NETFILTER | ||
192 | /* bridge-netfilter defers calling some IP hooks to the bridge layer | ||
193 | * and still needs the conntrack reference. | ||
194 | */ | ||
195 | if (skb->nf_bridge == NULL) | ||
196 | #endif | ||
197 | nf_reset(skb); | ||
198 | |||
199 | if (hh) { | 190 | if (hh) { |
200 | int hh_alen; | 191 | int hh_alen; |
201 | 192 | ||
diff --git a/net/ipv4/ipvs/Kconfig b/net/ipv4/ipvs/Kconfig index 63a82b4b64bb..c9820bfc493a 100644 --- a/net/ipv4/ipvs/Kconfig +++ b/net/ipv4/ipvs/Kconfig | |||
@@ -2,11 +2,11 @@ | |||
2 | # IP Virtual Server configuration | 2 | # IP Virtual Server configuration |
3 | # | 3 | # |
4 | menu "IP: Virtual Server Configuration" | 4 | menu "IP: Virtual Server Configuration" |
5 | depends on INET && NETFILTER | 5 | depends on NETFILTER |
6 | 6 | ||
7 | config IP_VS | 7 | config IP_VS |
8 | tristate "IP virtual server support (EXPERIMENTAL)" | 8 | tristate "IP virtual server support (EXPERIMENTAL)" |
9 | depends on INET && NETFILTER | 9 | depends on NETFILTER |
10 | ---help--- | 10 | ---help--- |
11 | IP Virtual Server support will let you build a high-performance | 11 | IP Virtual Server support will let you build a high-performance |
12 | virtual server based on cluster of two or more real servers. This | 12 | virtual server based on cluster of two or more real servers. This |
diff --git a/net/ipv4/ipvs/ip_vs_conn.c b/net/ipv4/ipvs/ip_vs_conn.c index 9f16ab309106..d0145a8b1551 100644 --- a/net/ipv4/ipvs/ip_vs_conn.c +++ b/net/ipv4/ipvs/ip_vs_conn.c | |||
@@ -758,7 +758,7 @@ static inline int todrop_entry(struct ip_vs_conn *cp) | |||
758 | return 1; | 758 | return 1; |
759 | } | 759 | } |
760 | 760 | ||
761 | 761 | /* Called from keventd and must protect itself from softirqs */ | |
762 | void ip_vs_random_dropentry(void) | 762 | void ip_vs_random_dropentry(void) |
763 | { | 763 | { |
764 | int idx; | 764 | int idx; |
@@ -773,7 +773,7 @@ void ip_vs_random_dropentry(void) | |||
773 | /* | 773 | /* |
774 | * Lock is actually needed in this loop. | 774 | * Lock is actually needed in this loop. |
775 | */ | 775 | */ |
776 | ct_write_lock(hash); | 776 | ct_write_lock_bh(hash); |
777 | 777 | ||
778 | list_for_each_entry(cp, &ip_vs_conn_tab[hash], c_list) { | 778 | list_for_each_entry(cp, &ip_vs_conn_tab[hash], c_list) { |
779 | if (!cp->cport && !(cp->flags & IP_VS_CONN_F_NO_CPORT)) | 779 | if (!cp->cport && !(cp->flags & IP_VS_CONN_F_NO_CPORT)) |
@@ -806,7 +806,7 @@ void ip_vs_random_dropentry(void) | |||
806 | ip_vs_conn_expire_now(cp->control); | 806 | ip_vs_conn_expire_now(cp->control); |
807 | } | 807 | } |
808 | } | 808 | } |
809 | ct_write_unlock(hash); | 809 | ct_write_unlock_bh(hash); |
810 | } | 810 | } |
811 | } | 811 | } |
812 | 812 | ||
diff --git a/net/ipv4/ipvs/ip_vs_ctl.c b/net/ipv4/ipvs/ip_vs_ctl.c index 12a82e91d22a..7d99ede2ef79 100644 --- a/net/ipv4/ipvs/ip_vs_ctl.c +++ b/net/ipv4/ipvs/ip_vs_ctl.c | |||
@@ -90,7 +90,8 @@ int ip_vs_get_debug_level(void) | |||
90 | #endif | 90 | #endif |
91 | 91 | ||
92 | /* | 92 | /* |
93 | * update_defense_level is called from keventd and from sysctl. | 93 | * update_defense_level is called from keventd and from sysctl, |
94 | * so it needs to protect itself from softirqs | ||
94 | */ | 95 | */ |
95 | static void update_defense_level(void) | 96 | static void update_defense_level(void) |
96 | { | 97 | { |
@@ -110,6 +111,8 @@ static void update_defense_level(void) | |||
110 | 111 | ||
111 | nomem = (availmem < sysctl_ip_vs_amemthresh); | 112 | nomem = (availmem < sysctl_ip_vs_amemthresh); |
112 | 113 | ||
114 | local_bh_disable(); | ||
115 | |||
113 | /* drop_entry */ | 116 | /* drop_entry */ |
114 | spin_lock(&__ip_vs_dropentry_lock); | 117 | spin_lock(&__ip_vs_dropentry_lock); |
115 | switch (sysctl_ip_vs_drop_entry) { | 118 | switch (sysctl_ip_vs_drop_entry) { |
@@ -206,6 +209,8 @@ static void update_defense_level(void) | |||
206 | if (to_change >= 0) | 209 | if (to_change >= 0) |
207 | ip_vs_protocol_timeout_change(sysctl_ip_vs_secure_tcp>1); | 210 | ip_vs_protocol_timeout_change(sysctl_ip_vs_secure_tcp>1); |
208 | write_unlock(&__ip_vs_securetcp_lock); | 211 | write_unlock(&__ip_vs_securetcp_lock); |
212 | |||
213 | local_bh_enable(); | ||
209 | } | 214 | } |
210 | 215 | ||
211 | 216 | ||
@@ -1360,9 +1365,7 @@ proc_do_defense_mode(ctl_table *table, int write, struct file * filp, | |||
1360 | /* Restore the correct value */ | 1365 | /* Restore the correct value */ |
1361 | *valp = val; | 1366 | *valp = val; |
1362 | } else { | 1367 | } else { |
1363 | local_bh_disable(); | ||
1364 | update_defense_level(); | 1368 | update_defense_level(); |
1365 | local_bh_enable(); | ||
1366 | } | 1369 | } |
1367 | } | 1370 | } |
1368 | return rc; | 1371 | return rc; |
diff --git a/net/ipv4/netfilter/ip_conntrack_standalone.c b/net/ipv4/netfilter/ip_conntrack_standalone.c index 42dc95102873..1dd824f3cf0a 100644 --- a/net/ipv4/netfilter/ip_conntrack_standalone.c +++ b/net/ipv4/netfilter/ip_conntrack_standalone.c | |||
@@ -432,6 +432,13 @@ static unsigned int ip_conntrack_defrag(unsigned int hooknum, | |||
432 | const struct net_device *out, | 432 | const struct net_device *out, |
433 | int (*okfn)(struct sk_buff *)) | 433 | int (*okfn)(struct sk_buff *)) |
434 | { | 434 | { |
435 | #if !defined(CONFIG_IP_NF_NAT) && !defined(CONFIG_IP_NF_NAT_MODULE) | ||
436 | /* Previously seen (loopback)? Ignore. Do this before | ||
437 | fragment check. */ | ||
438 | if ((*pskb)->nfct) | ||
439 | return NF_ACCEPT; | ||
440 | #endif | ||
441 | |||
435 | /* Gather fragments. */ | 442 | /* Gather fragments. */ |
436 | if ((*pskb)->nh.iph->frag_off & htons(IP_MF|IP_OFFSET)) { | 443 | if ((*pskb)->nh.iph->frag_off & htons(IP_MF|IP_OFFSET)) { |
437 | *pskb = ip_ct_gather_frags(*pskb, | 444 | *pskb = ip_ct_gather_frags(*pskb, |
diff --git a/net/ipv4/route.c b/net/ipv4/route.c index 726ea5e8180a..d675ff80b04d 100644 --- a/net/ipv4/route.c +++ b/net/ipv4/route.c | |||
@@ -1685,7 +1685,7 @@ static void ip_handle_martian_source(struct net_device *dev, | |||
1685 | printk(KERN_WARNING "martian source %u.%u.%u.%u from " | 1685 | printk(KERN_WARNING "martian source %u.%u.%u.%u from " |
1686 | "%u.%u.%u.%u, on dev %s\n", | 1686 | "%u.%u.%u.%u, on dev %s\n", |
1687 | NIPQUAD(daddr), NIPQUAD(saddr), dev->name); | 1687 | NIPQUAD(daddr), NIPQUAD(saddr), dev->name); |
1688 | if (dev->hard_header_len) { | 1688 | if (dev->hard_header_len && skb->mac.raw) { |
1689 | int i; | 1689 | int i; |
1690 | unsigned char *p = skb->mac.raw; | 1690 | unsigned char *p = skb->mac.raw; |
1691 | printk(KERN_WARNING "ll header: "); | 1691 | printk(KERN_WARNING "ll header: "); |
diff --git a/net/ipv6/Kconfig b/net/ipv6/Kconfig index e66ca9381cfd..95163cd52ae0 100644 --- a/net/ipv6/Kconfig +++ b/net/ipv6/Kconfig | |||
@@ -1,6 +1,26 @@ | |||
1 | # | 1 | # |
2 | # IPv6 configuration | 2 | # IPv6 configuration |
3 | # | 3 | # |
4 | |||
5 | # IPv6 as module will cause a CRASH if you try to unload it | ||
6 | config IPV6 | ||
7 | tristate "The IPv6 protocol" | ||
8 | default m | ||
9 | select CRYPTO if IPV6_PRIVACY | ||
10 | select CRYPTO_MD5 if IPV6_PRIVACY | ||
11 | ---help--- | ||
12 | This is complemental support for the IP version 6. | ||
13 | You will still be able to do traditional IPv4 networking as well. | ||
14 | |||
15 | For general information about IPv6, see | ||
16 | <http://playground.sun.com/pub/ipng/html/ipng-main.html>. | ||
17 | For Linux IPv6 development information, see <http://www.linux-ipv6.org>. | ||
18 | For specific information about IPv6 under Linux, read the HOWTO at | ||
19 | <http://www.bieringer.de/linux/IPv6/>. | ||
20 | |||
21 | To compile this protocol support as a module, choose M here: the | ||
22 | module will be called ipv6. | ||
23 | |||
4 | config IPV6_PRIVACY | 24 | config IPV6_PRIVACY |
5 | bool "IPv6: Privacy Extensions (RFC 3041) support" | 25 | bool "IPv6: Privacy Extensions (RFC 3041) support" |
6 | depends on IPV6 | 26 | depends on IPV6 |
diff --git a/net/ipx/Kconfig b/net/ipx/Kconfig index a16237c0e783..980a826f5d02 100644 --- a/net/ipx/Kconfig +++ b/net/ipx/Kconfig | |||
@@ -1,6 +1,39 @@ | |||
1 | # | 1 | # |
2 | # IPX configuration | 2 | # IPX configuration |
3 | # | 3 | # |
4 | config IPX | ||
5 | tristate "The IPX protocol" | ||
6 | select LLC | ||
7 | ---help--- | ||
8 | This is support for the Novell networking protocol, IPX, commonly | ||
9 | used for local networks of Windows machines. You need it if you | ||
10 | want to access Novell NetWare file or print servers using the Linux | ||
11 | Novell client ncpfs (available from | ||
12 | <ftp://platan.vc.cvut.cz/pub/linux/ncpfs/>) or from | ||
13 | within the Linux DOS emulator DOSEMU (read the DOSEMU-HOWTO, | ||
14 | available from <http://www.tldp.org/docs.html#howto>). In order | ||
15 | to do the former, you'll also have to say Y to "NCP file system | ||
16 | support", below. | ||
17 | |||
18 | IPX is similar in scope to IP, while SPX, which runs on top of IPX, | ||
19 | is similar to TCP. There is also experimental support for SPX in | ||
20 | Linux (see "SPX networking", below). | ||
21 | |||
22 | To turn your Linux box into a fully featured NetWare file server and | ||
23 | IPX router, say Y here and fetch either lwared from | ||
24 | <ftp://ibiblio.org/pub/Linux/system/network/daemons/> or | ||
25 | mars_nwe from <ftp://www.compu-art.de/mars_nwe/>. For more | ||
26 | information, read the IPX-HOWTO available from | ||
27 | <http://www.tldp.org/docs.html#howto>. | ||
28 | |||
29 | General information about how to connect Linux, Windows machines and | ||
30 | Macs is on the WWW at <http://www.eats.com/linux_mac_win.html>. | ||
31 | |||
32 | The IPX driver would enlarge your kernel by about 16 KB. To compile | ||
33 | this driver as a module, choose M here: the module will be called ipx. | ||
34 | Unless you want to integrate your Linux box with a local Novell | ||
35 | network, say N. | ||
36 | |||
4 | config IPX_INTERN | 37 | config IPX_INTERN |
5 | bool "IPX: Full internal IPX network" | 38 | bool "IPX: Full internal IPX network" |
6 | depends on IPX | 39 | depends on IPX |
diff --git a/net/lapb/Kconfig b/net/lapb/Kconfig new file mode 100644 index 000000000000..f0b5efb31a00 --- /dev/null +++ b/net/lapb/Kconfig | |||
@@ -0,0 +1,22 @@ | |||
1 | # | ||
2 | # LAPB Data Link Drive | ||
3 | # | ||
4 | |||
5 | config LAPB | ||
6 | tristate "LAPB Data Link Driver (EXPERIMENTAL)" | ||
7 | depends on EXPERIMENTAL | ||
8 | ---help--- | ||
9 | Link Access Procedure, Balanced (LAPB) is the data link layer (i.e. | ||
10 | the lower) part of the X.25 protocol. It offers a reliable | ||
11 | connection service to exchange data frames with one other host, and | ||
12 | it is used to transport higher level protocols (mostly X.25 Packet | ||
13 | Layer, the higher part of X.25, but others are possible as well). | ||
14 | Usually, LAPB is used with specialized X.21 network cards, but Linux | ||
15 | currently supports LAPB only over Ethernet connections. If you want | ||
16 | to use LAPB connections over Ethernet, say Y here and to "LAPB over | ||
17 | Ethernet driver" below. Read | ||
18 | <file:Documentation/networking/lapb-module.txt> for technical | ||
19 | details. | ||
20 | |||
21 | To compile this driver as a module, choose M here: the | ||
22 | module will be called lapb. If unsure, say N. | ||
diff --git a/net/packet/Kconfig b/net/packet/Kconfig new file mode 100644 index 000000000000..34ff93ff894d --- /dev/null +++ b/net/packet/Kconfig | |||
@@ -0,0 +1,26 @@ | |||
1 | # | ||
2 | # Packet configuration | ||
3 | # | ||
4 | |||
5 | config PACKET | ||
6 | tristate "Packet socket" | ||
7 | ---help--- | ||
8 | The Packet protocol is used by applications which communicate | ||
9 | directly with network devices without an intermediate network | ||
10 | protocol implemented in the kernel, e.g. tcpdump. If you want them | ||
11 | to work, choose Y. | ||
12 | |||
13 | To compile this driver as a module, choose M here: the module will | ||
14 | be called af_packet. | ||
15 | |||
16 | If unsure, say Y. | ||
17 | |||
18 | config PACKET_MMAP | ||
19 | bool "Packet socket: mmapped IO" | ||
20 | depends on PACKET | ||
21 | help | ||
22 | If you say Y here, the Packet protocol driver will use an IO | ||
23 | mechanism that results in faster communication. | ||
24 | |||
25 | If unsure, say N. | ||
26 | |||
diff --git a/net/packet/af_packet.c b/net/packet/af_packet.c index 0269616e75a1..c9d5980aa4de 100644 --- a/net/packet/af_packet.c +++ b/net/packet/af_packet.c | |||
@@ -274,6 +274,9 @@ static int packet_rcv_spkt(struct sk_buff *skb, struct net_device *dev, struct | |||
274 | dst_release(skb->dst); | 274 | dst_release(skb->dst); |
275 | skb->dst = NULL; | 275 | skb->dst = NULL; |
276 | 276 | ||
277 | /* drop conntrack reference */ | ||
278 | nf_reset(skb); | ||
279 | |||
277 | spkt = (struct sockaddr_pkt*)skb->cb; | 280 | spkt = (struct sockaddr_pkt*)skb->cb; |
278 | 281 | ||
279 | skb_push(skb, skb->data-skb->mac.raw); | 282 | skb_push(skb, skb->data-skb->mac.raw); |
@@ -517,6 +520,9 @@ static int packet_rcv(struct sk_buff *skb, struct net_device *dev, struct packe | |||
517 | dst_release(skb->dst); | 520 | dst_release(skb->dst); |
518 | skb->dst = NULL; | 521 | skb->dst = NULL; |
519 | 522 | ||
523 | /* drop conntrack reference */ | ||
524 | nf_reset(skb); | ||
525 | |||
520 | spin_lock(&sk->sk_receive_queue.lock); | 526 | spin_lock(&sk->sk_receive_queue.lock); |
521 | po->stats.tp_packets++; | 527 | po->stats.tp_packets++; |
522 | __skb_queue_tail(&sk->sk_receive_queue, skb); | 528 | __skb_queue_tail(&sk->sk_receive_queue, skb); |
diff --git a/net/sched/Kconfig b/net/sched/Kconfig index 7bac249258e3..59d3e71f8b85 100644 --- a/net/sched/Kconfig +++ b/net/sched/Kconfig | |||
@@ -1,6 +1,43 @@ | |||
1 | # | 1 | # |
2 | # Traffic control configuration. | 2 | # Traffic control configuration. |
3 | # | 3 | # |
4 | |||
5 | menuconfig NET_SCHED | ||
6 | bool "QoS and/or fair queueing" | ||
7 | ---help--- | ||
8 | When the kernel has several packets to send out over a network | ||
9 | device, it has to decide which ones to send first, which ones to | ||
10 | delay, and which ones to drop. This is the job of the packet | ||
11 | scheduler, and several different algorithms for how to do this | ||
12 | "fairly" have been proposed. | ||
13 | |||
14 | If you say N here, you will get the standard packet scheduler, which | ||
15 | is a FIFO (first come, first served). If you say Y here, you will be | ||
16 | able to choose from among several alternative algorithms which can | ||
17 | then be attached to different network devices. This is useful for | ||
18 | example if some of your network devices are real time devices that | ||
19 | need a certain minimum data flow rate, or if you need to limit the | ||
20 | maximum data flow rate for traffic which matches specified criteria. | ||
21 | This code is considered to be experimental. | ||
22 | |||
23 | To administer these schedulers, you'll need the user-level utilities | ||
24 | from the package iproute2+tc at <ftp://ftp.tux.org/pub/net/ip-routing/>. | ||
25 | That package also contains some documentation; for more, check out | ||
26 | <http://snafu.freedom.org/linux2.2/iproute-notes.html>. | ||
27 | |||
28 | This Quality of Service (QoS) support will enable you to use | ||
29 | Differentiated Services (diffserv) and Resource Reservation Protocol | ||
30 | (RSVP) on your Linux router if you also say Y to "QoS support", | ||
31 | "Packet classifier API" and to some classifiers below. Documentation | ||
32 | and software is at <http://diffserv.sourceforge.net/>. | ||
33 | |||
34 | If you say Y here and to "/proc file system" below, you will be able | ||
35 | to read status information about packet schedulers from the file | ||
36 | /proc/net/psched. | ||
37 | |||
38 | The available schedulers are listed in the following questions; you | ||
39 | can say Y to as many as you like. If unsure, say N now. | ||
40 | |||
4 | choice | 41 | choice |
5 | prompt "Packet scheduler clock source" | 42 | prompt "Packet scheduler clock source" |
6 | depends on NET_SCHED | 43 | depends on NET_SCHED |
diff --git a/net/sctp/associola.c b/net/sctp/associola.c index 4b47dd6f2485..5b24ae0650d3 100644 --- a/net/sctp/associola.c +++ b/net/sctp/associola.c | |||
@@ -71,7 +71,7 @@ static struct sctp_association *sctp_association_init(struct sctp_association *a | |||
71 | const struct sctp_endpoint *ep, | 71 | const struct sctp_endpoint *ep, |
72 | const struct sock *sk, | 72 | const struct sock *sk, |
73 | sctp_scope_t scope, | 73 | sctp_scope_t scope, |
74 | int gfp) | 74 | unsigned int __nocast gfp) |
75 | { | 75 | { |
76 | struct sctp_sock *sp; | 76 | struct sctp_sock *sp; |
77 | int i; | 77 | int i; |
@@ -272,7 +272,8 @@ fail_init: | |||
272 | /* Allocate and initialize a new association */ | 272 | /* Allocate and initialize a new association */ |
273 | struct sctp_association *sctp_association_new(const struct sctp_endpoint *ep, | 273 | struct sctp_association *sctp_association_new(const struct sctp_endpoint *ep, |
274 | const struct sock *sk, | 274 | const struct sock *sk, |
275 | sctp_scope_t scope, int gfp) | 275 | sctp_scope_t scope, |
276 | unsigned int __nocast gfp) | ||
276 | { | 277 | { |
277 | struct sctp_association *asoc; | 278 | struct sctp_association *asoc; |
278 | 279 | ||
@@ -478,7 +479,7 @@ void sctp_assoc_rm_peer(struct sctp_association *asoc, | |||
478 | /* Add a transport address to an association. */ | 479 | /* Add a transport address to an association. */ |
479 | struct sctp_transport *sctp_assoc_add_peer(struct sctp_association *asoc, | 480 | struct sctp_transport *sctp_assoc_add_peer(struct sctp_association *asoc, |
480 | const union sctp_addr *addr, | 481 | const union sctp_addr *addr, |
481 | const int gfp, | 482 | const unsigned int __nocast gfp, |
482 | const int peer_state) | 483 | const int peer_state) |
483 | { | 484 | { |
484 | struct sctp_transport *peer; | 485 | struct sctp_transport *peer; |
@@ -1229,7 +1230,8 @@ void sctp_assoc_rwnd_decrease(struct sctp_association *asoc, unsigned len) | |||
1229 | /* Build the bind address list for the association based on info from the | 1230 | /* Build the bind address list for the association based on info from the |
1230 | * local endpoint and the remote peer. | 1231 | * local endpoint and the remote peer. |
1231 | */ | 1232 | */ |
1232 | int sctp_assoc_set_bind_addr_from_ep(struct sctp_association *asoc, int gfp) | 1233 | int sctp_assoc_set_bind_addr_from_ep(struct sctp_association *asoc, |
1234 | unsigned int __nocast gfp) | ||
1233 | { | 1235 | { |
1234 | sctp_scope_t scope; | 1236 | sctp_scope_t scope; |
1235 | int flags; | 1237 | int flags; |
@@ -1251,7 +1253,8 @@ int sctp_assoc_set_bind_addr_from_ep(struct sctp_association *asoc, int gfp) | |||
1251 | 1253 | ||
1252 | /* Build the association's bind address list from the cookie. */ | 1254 | /* Build the association's bind address list from the cookie. */ |
1253 | int sctp_assoc_set_bind_addr_from_cookie(struct sctp_association *asoc, | 1255 | int sctp_assoc_set_bind_addr_from_cookie(struct sctp_association *asoc, |
1254 | struct sctp_cookie *cookie, int gfp) | 1256 | struct sctp_cookie *cookie, |
1257 | unsigned int __nocast gfp) | ||
1255 | { | 1258 | { |
1256 | int var_size2 = ntohs(cookie->peer_init->chunk_hdr.length); | 1259 | int var_size2 = ntohs(cookie->peer_init->chunk_hdr.length); |
1257 | int var_size3 = cookie->raw_addr_list_len; | 1260 | int var_size3 = cookie->raw_addr_list_len; |
diff --git a/net/sctp/bind_addr.c b/net/sctp/bind_addr.c index f90eadfb60a2..f71549710f2e 100644 --- a/net/sctp/bind_addr.c +++ b/net/sctp/bind_addr.c | |||
@@ -53,7 +53,8 @@ | |||
53 | 53 | ||
54 | /* Forward declarations for internal helpers. */ | 54 | /* Forward declarations for internal helpers. */ |
55 | static int sctp_copy_one_addr(struct sctp_bind_addr *, union sctp_addr *, | 55 | static int sctp_copy_one_addr(struct sctp_bind_addr *, union sctp_addr *, |
56 | sctp_scope_t scope, int gfp, int flags); | 56 | sctp_scope_t scope, unsigned int __nocast gfp, |
57 | int flags); | ||
57 | static void sctp_bind_addr_clean(struct sctp_bind_addr *); | 58 | static void sctp_bind_addr_clean(struct sctp_bind_addr *); |
58 | 59 | ||
59 | /* First Level Abstractions. */ | 60 | /* First Level Abstractions. */ |
@@ -63,7 +64,8 @@ static void sctp_bind_addr_clean(struct sctp_bind_addr *); | |||
63 | */ | 64 | */ |
64 | int sctp_bind_addr_copy(struct sctp_bind_addr *dest, | 65 | int sctp_bind_addr_copy(struct sctp_bind_addr *dest, |
65 | const struct sctp_bind_addr *src, | 66 | const struct sctp_bind_addr *src, |
66 | sctp_scope_t scope, int gfp, int flags) | 67 | sctp_scope_t scope, unsigned int __nocast gfp, |
68 | int flags) | ||
67 | { | 69 | { |
68 | struct sctp_sockaddr_entry *addr; | 70 | struct sctp_sockaddr_entry *addr; |
69 | struct list_head *pos; | 71 | struct list_head *pos; |
@@ -144,7 +146,7 @@ void sctp_bind_addr_free(struct sctp_bind_addr *bp) | |||
144 | 146 | ||
145 | /* Add an address to the bind address list in the SCTP_bind_addr structure. */ | 147 | /* Add an address to the bind address list in the SCTP_bind_addr structure. */ |
146 | int sctp_add_bind_addr(struct sctp_bind_addr *bp, union sctp_addr *new, | 148 | int sctp_add_bind_addr(struct sctp_bind_addr *bp, union sctp_addr *new, |
147 | int gfp) | 149 | unsigned int __nocast gfp) |
148 | { | 150 | { |
149 | struct sctp_sockaddr_entry *addr; | 151 | struct sctp_sockaddr_entry *addr; |
150 | 152 | ||
@@ -197,7 +199,8 @@ int sctp_del_bind_addr(struct sctp_bind_addr *bp, union sctp_addr *del_addr) | |||
197 | * The second argument is the return value for the length. | 199 | * The second argument is the return value for the length. |
198 | */ | 200 | */ |
199 | union sctp_params sctp_bind_addrs_to_raw(const struct sctp_bind_addr *bp, | 201 | union sctp_params sctp_bind_addrs_to_raw(const struct sctp_bind_addr *bp, |
200 | int *addrs_len, int gfp) | 202 | int *addrs_len, |
203 | unsigned int __nocast gfp) | ||
201 | { | 204 | { |
202 | union sctp_params addrparms; | 205 | union sctp_params addrparms; |
203 | union sctp_params retval; | 206 | union sctp_params retval; |
@@ -249,7 +252,7 @@ end_raw: | |||
249 | * address parameters). | 252 | * address parameters). |
250 | */ | 253 | */ |
251 | int sctp_raw_to_bind_addrs(struct sctp_bind_addr *bp, __u8 *raw_addr_list, | 254 | int sctp_raw_to_bind_addrs(struct sctp_bind_addr *bp, __u8 *raw_addr_list, |
252 | int addrs_len, __u16 port, int gfp) | 255 | int addrs_len, __u16 port, unsigned int __nocast gfp) |
253 | { | 256 | { |
254 | union sctp_addr_param *rawaddr; | 257 | union sctp_addr_param *rawaddr; |
255 | struct sctp_paramhdr *param; | 258 | struct sctp_paramhdr *param; |
@@ -347,7 +350,8 @@ union sctp_addr *sctp_find_unmatch_addr(struct sctp_bind_addr *bp, | |||
347 | /* Copy out addresses from the global local address list. */ | 350 | /* Copy out addresses from the global local address list. */ |
348 | static int sctp_copy_one_addr(struct sctp_bind_addr *dest, | 351 | static int sctp_copy_one_addr(struct sctp_bind_addr *dest, |
349 | union sctp_addr *addr, | 352 | union sctp_addr *addr, |
350 | sctp_scope_t scope, int gfp, int flags) | 353 | sctp_scope_t scope, unsigned int __nocast gfp, |
354 | int flags) | ||
351 | { | 355 | { |
352 | int error = 0; | 356 | int error = 0; |
353 | 357 | ||
diff --git a/net/sctp/chunk.c b/net/sctp/chunk.c index 0c2ab7885058..61da2937e641 100644 --- a/net/sctp/chunk.c +++ b/net/sctp/chunk.c | |||
@@ -62,7 +62,7 @@ static void sctp_datamsg_init(struct sctp_datamsg *msg) | |||
62 | } | 62 | } |
63 | 63 | ||
64 | /* Allocate and initialize datamsg. */ | 64 | /* Allocate and initialize datamsg. */ |
65 | SCTP_STATIC struct sctp_datamsg *sctp_datamsg_new(int gfp) | 65 | SCTP_STATIC struct sctp_datamsg *sctp_datamsg_new(unsigned int __nocast gfp) |
66 | { | 66 | { |
67 | struct sctp_datamsg *msg; | 67 | struct sctp_datamsg *msg; |
68 | msg = kmalloc(sizeof(struct sctp_datamsg), gfp); | 68 | msg = kmalloc(sizeof(struct sctp_datamsg), gfp); |
diff --git a/net/sctp/endpointola.c b/net/sctp/endpointola.c index c44bf4165c6e..e47ac0d1a6d6 100644 --- a/net/sctp/endpointola.c +++ b/net/sctp/endpointola.c | |||
@@ -67,7 +67,8 @@ static void sctp_endpoint_bh_rcv(struct sctp_endpoint *ep); | |||
67 | * Initialize the base fields of the endpoint structure. | 67 | * Initialize the base fields of the endpoint structure. |
68 | */ | 68 | */ |
69 | static struct sctp_endpoint *sctp_endpoint_init(struct sctp_endpoint *ep, | 69 | static struct sctp_endpoint *sctp_endpoint_init(struct sctp_endpoint *ep, |
70 | struct sock *sk, int gfp) | 70 | struct sock *sk, |
71 | unsigned int __nocast gfp) | ||
71 | { | 72 | { |
72 | struct sctp_sock *sp = sctp_sk(sk); | 73 | struct sctp_sock *sp = sctp_sk(sk); |
73 | memset(ep, 0, sizeof(struct sctp_endpoint)); | 74 | memset(ep, 0, sizeof(struct sctp_endpoint)); |
@@ -137,7 +138,8 @@ static struct sctp_endpoint *sctp_endpoint_init(struct sctp_endpoint *ep, | |||
137 | /* Create a sctp_endpoint with all that boring stuff initialized. | 138 | /* Create a sctp_endpoint with all that boring stuff initialized. |
138 | * Returns NULL if there isn't enough memory. | 139 | * Returns NULL if there isn't enough memory. |
139 | */ | 140 | */ |
140 | struct sctp_endpoint *sctp_endpoint_new(struct sock *sk, int gfp) | 141 | struct sctp_endpoint *sctp_endpoint_new(struct sock *sk, |
142 | unsigned int __nocast gfp) | ||
141 | { | 143 | { |
142 | struct sctp_endpoint *ep; | 144 | struct sctp_endpoint *ep; |
143 | 145 | ||
diff --git a/net/sctp/protocol.c b/net/sctp/protocol.c index e7f37faba7c0..ce9245e71fca 100644 --- a/net/sctp/protocol.c +++ b/net/sctp/protocol.c | |||
@@ -219,7 +219,7 @@ static void sctp_free_local_addr_list(void) | |||
219 | 219 | ||
220 | /* Copy the local addresses which are valid for 'scope' into 'bp'. */ | 220 | /* Copy the local addresses which are valid for 'scope' into 'bp'. */ |
221 | int sctp_copy_local_addr_list(struct sctp_bind_addr *bp, sctp_scope_t scope, | 221 | int sctp_copy_local_addr_list(struct sctp_bind_addr *bp, sctp_scope_t scope, |
222 | int gfp, int copy_flags) | 222 | unsigned int __nocast gfp, int copy_flags) |
223 | { | 223 | { |
224 | struct sctp_sockaddr_entry *addr; | 224 | struct sctp_sockaddr_entry *addr; |
225 | int error = 0; | 225 | int error = 0; |
diff --git a/net/sctp/sm_make_chunk.c b/net/sctp/sm_make_chunk.c index 773cd93fa3d0..00d32b7c8266 100644 --- a/net/sctp/sm_make_chunk.c +++ b/net/sctp/sm_make_chunk.c | |||
@@ -78,7 +78,7 @@ static sctp_cookie_param_t *sctp_pack_cookie(const struct sctp_endpoint *ep, | |||
78 | static int sctp_process_param(struct sctp_association *asoc, | 78 | static int sctp_process_param(struct sctp_association *asoc, |
79 | union sctp_params param, | 79 | union sctp_params param, |
80 | const union sctp_addr *peer_addr, | 80 | const union sctp_addr *peer_addr, |
81 | int gfp); | 81 | unsigned int __nocast gfp); |
82 | 82 | ||
83 | /* What was the inbound interface for this chunk? */ | 83 | /* What was the inbound interface for this chunk? */ |
84 | int sctp_chunk_iif(const struct sctp_chunk *chunk) | 84 | int sctp_chunk_iif(const struct sctp_chunk *chunk) |
@@ -174,7 +174,7 @@ void sctp_init_cause(struct sctp_chunk *chunk, __u16 cause_code, | |||
174 | */ | 174 | */ |
175 | struct sctp_chunk *sctp_make_init(const struct sctp_association *asoc, | 175 | struct sctp_chunk *sctp_make_init(const struct sctp_association *asoc, |
176 | const struct sctp_bind_addr *bp, | 176 | const struct sctp_bind_addr *bp, |
177 | int gfp, int vparam_len) | 177 | unsigned int __nocast gfp, int vparam_len) |
178 | { | 178 | { |
179 | sctp_inithdr_t init; | 179 | sctp_inithdr_t init; |
180 | union sctp_params addrs; | 180 | union sctp_params addrs; |
@@ -261,7 +261,7 @@ nodata: | |||
261 | 261 | ||
262 | struct sctp_chunk *sctp_make_init_ack(const struct sctp_association *asoc, | 262 | struct sctp_chunk *sctp_make_init_ack(const struct sctp_association *asoc, |
263 | const struct sctp_chunk *chunk, | 263 | const struct sctp_chunk *chunk, |
264 | int gfp, int unkparam_len) | 264 | unsigned int __nocast gfp, int unkparam_len) |
265 | { | 265 | { |
266 | sctp_inithdr_t initack; | 266 | sctp_inithdr_t initack; |
267 | struct sctp_chunk *retval; | 267 | struct sctp_chunk *retval; |
@@ -1233,7 +1233,8 @@ void sctp_chunk_assign_tsn(struct sctp_chunk *chunk) | |||
1233 | 1233 | ||
1234 | /* Create a CLOSED association to use with an incoming packet. */ | 1234 | /* Create a CLOSED association to use with an incoming packet. */ |
1235 | struct sctp_association *sctp_make_temp_asoc(const struct sctp_endpoint *ep, | 1235 | struct sctp_association *sctp_make_temp_asoc(const struct sctp_endpoint *ep, |
1236 | struct sctp_chunk *chunk, int gfp) | 1236 | struct sctp_chunk *chunk, |
1237 | unsigned int __nocast gfp) | ||
1237 | { | 1238 | { |
1238 | struct sctp_association *asoc; | 1239 | struct sctp_association *asoc; |
1239 | struct sk_buff *skb; | 1240 | struct sk_buff *skb; |
@@ -1348,7 +1349,7 @@ nodata: | |||
1348 | struct sctp_association *sctp_unpack_cookie( | 1349 | struct sctp_association *sctp_unpack_cookie( |
1349 | const struct sctp_endpoint *ep, | 1350 | const struct sctp_endpoint *ep, |
1350 | const struct sctp_association *asoc, | 1351 | const struct sctp_association *asoc, |
1351 | struct sctp_chunk *chunk, int gfp, | 1352 | struct sctp_chunk *chunk, unsigned int __nocast gfp, |
1352 | int *error, struct sctp_chunk **errp) | 1353 | int *error, struct sctp_chunk **errp) |
1353 | { | 1354 | { |
1354 | struct sctp_association *retval = NULL; | 1355 | struct sctp_association *retval = NULL; |
@@ -1812,7 +1813,7 @@ int sctp_verify_init(const struct sctp_association *asoc, | |||
1812 | */ | 1813 | */ |
1813 | int sctp_process_init(struct sctp_association *asoc, sctp_cid_t cid, | 1814 | int sctp_process_init(struct sctp_association *asoc, sctp_cid_t cid, |
1814 | const union sctp_addr *peer_addr, | 1815 | const union sctp_addr *peer_addr, |
1815 | sctp_init_chunk_t *peer_init, int gfp) | 1816 | sctp_init_chunk_t *peer_init, unsigned int __nocast gfp) |
1816 | { | 1817 | { |
1817 | union sctp_params param; | 1818 | union sctp_params param; |
1818 | struct sctp_transport *transport; | 1819 | struct sctp_transport *transport; |
@@ -1983,7 +1984,7 @@ nomem: | |||
1983 | static int sctp_process_param(struct sctp_association *asoc, | 1984 | static int sctp_process_param(struct sctp_association *asoc, |
1984 | union sctp_params param, | 1985 | union sctp_params param, |
1985 | const union sctp_addr *peer_addr, | 1986 | const union sctp_addr *peer_addr, |
1986 | int gfp) | 1987 | unsigned int __nocast gfp) |
1987 | { | 1988 | { |
1988 | union sctp_addr addr; | 1989 | union sctp_addr addr; |
1989 | int i; | 1990 | int i; |
diff --git a/net/sctp/sm_sideeffect.c b/net/sctp/sm_sideeffect.c index 778639db125a..39c970b5b198 100644 --- a/net/sctp/sm_sideeffect.c +++ b/net/sctp/sm_sideeffect.c | |||
@@ -63,7 +63,7 @@ static int sctp_cmd_interpreter(sctp_event_t event_type, | |||
63 | void *event_arg, | 63 | void *event_arg, |
64 | sctp_disposition_t status, | 64 | sctp_disposition_t status, |
65 | sctp_cmd_seq_t *commands, | 65 | sctp_cmd_seq_t *commands, |
66 | int gfp); | 66 | unsigned int __nocast gfp); |
67 | static int sctp_side_effects(sctp_event_t event_type, sctp_subtype_t subtype, | 67 | static int sctp_side_effects(sctp_event_t event_type, sctp_subtype_t subtype, |
68 | sctp_state_t state, | 68 | sctp_state_t state, |
69 | struct sctp_endpoint *ep, | 69 | struct sctp_endpoint *ep, |
@@ -71,7 +71,7 @@ static int sctp_side_effects(sctp_event_t event_type, sctp_subtype_t subtype, | |||
71 | void *event_arg, | 71 | void *event_arg, |
72 | sctp_disposition_t status, | 72 | sctp_disposition_t status, |
73 | sctp_cmd_seq_t *commands, | 73 | sctp_cmd_seq_t *commands, |
74 | int gfp); | 74 | unsigned int __nocast gfp); |
75 | 75 | ||
76 | /******************************************************************** | 76 | /******************************************************************** |
77 | * Helper functions | 77 | * Helper functions |
@@ -497,7 +497,8 @@ static void sctp_cmd_assoc_failed(sctp_cmd_seq_t *commands, | |||
497 | static int sctp_cmd_process_init(sctp_cmd_seq_t *commands, | 497 | static int sctp_cmd_process_init(sctp_cmd_seq_t *commands, |
498 | struct sctp_association *asoc, | 498 | struct sctp_association *asoc, |
499 | struct sctp_chunk *chunk, | 499 | struct sctp_chunk *chunk, |
500 | sctp_init_chunk_t *peer_init, int gfp) | 500 | sctp_init_chunk_t *peer_init, |
501 | unsigned int __nocast gfp) | ||
501 | { | 502 | { |
502 | int error; | 503 | int error; |
503 | 504 | ||
@@ -852,7 +853,7 @@ int sctp_do_sm(sctp_event_t event_type, sctp_subtype_t subtype, | |||
852 | struct sctp_endpoint *ep, | 853 | struct sctp_endpoint *ep, |
853 | struct sctp_association *asoc, | 854 | struct sctp_association *asoc, |
854 | void *event_arg, | 855 | void *event_arg, |
855 | int gfp) | 856 | unsigned int __nocast gfp) |
856 | { | 857 | { |
857 | sctp_cmd_seq_t commands; | 858 | sctp_cmd_seq_t commands; |
858 | const sctp_sm_table_entry_t *state_fn; | 859 | const sctp_sm_table_entry_t *state_fn; |
@@ -897,7 +898,7 @@ static int sctp_side_effects(sctp_event_t event_type, sctp_subtype_t subtype, | |||
897 | void *event_arg, | 898 | void *event_arg, |
898 | sctp_disposition_t status, | 899 | sctp_disposition_t status, |
899 | sctp_cmd_seq_t *commands, | 900 | sctp_cmd_seq_t *commands, |
900 | int gfp) | 901 | unsigned int __nocast gfp) |
901 | { | 902 | { |
902 | int error; | 903 | int error; |
903 | 904 | ||
@@ -985,7 +986,7 @@ static int sctp_cmd_interpreter(sctp_event_t event_type, | |||
985 | void *event_arg, | 986 | void *event_arg, |
986 | sctp_disposition_t status, | 987 | sctp_disposition_t status, |
987 | sctp_cmd_seq_t *commands, | 988 | sctp_cmd_seq_t *commands, |
988 | int gfp) | 989 | unsigned int __nocast gfp) |
989 | { | 990 | { |
990 | int error = 0; | 991 | int error = 0; |
991 | int force; | 992 | int force; |
diff --git a/net/sctp/ssnmap.c b/net/sctp/ssnmap.c index e627d2b451b6..25037daf3fa0 100644 --- a/net/sctp/ssnmap.c +++ b/net/sctp/ssnmap.c | |||
@@ -57,7 +57,8 @@ static inline size_t sctp_ssnmap_size(__u16 in, __u16 out) | |||
57 | /* Create a new sctp_ssnmap. | 57 | /* Create a new sctp_ssnmap. |
58 | * Allocate room to store at least 'len' contiguous TSNs. | 58 | * Allocate room to store at least 'len' contiguous TSNs. |
59 | */ | 59 | */ |
60 | struct sctp_ssnmap *sctp_ssnmap_new(__u16 in, __u16 out, int gfp) | 60 | struct sctp_ssnmap *sctp_ssnmap_new(__u16 in, __u16 out, |
61 | unsigned int __nocast gfp) | ||
61 | { | 62 | { |
62 | struct sctp_ssnmap *retval; | 63 | struct sctp_ssnmap *retval; |
63 | int size; | 64 | int size; |
diff --git a/net/sctp/transport.c b/net/sctp/transport.c index a63b69179607..d2f04ebe5081 100644 --- a/net/sctp/transport.c +++ b/net/sctp/transport.c | |||
@@ -57,7 +57,7 @@ | |||
57 | /* Initialize a new transport from provided memory. */ | 57 | /* Initialize a new transport from provided memory. */ |
58 | static struct sctp_transport *sctp_transport_init(struct sctp_transport *peer, | 58 | static struct sctp_transport *sctp_transport_init(struct sctp_transport *peer, |
59 | const union sctp_addr *addr, | 59 | const union sctp_addr *addr, |
60 | int gfp) | 60 | unsigned int __nocast gfp) |
61 | { | 61 | { |
62 | /* Copy in the address. */ | 62 | /* Copy in the address. */ |
63 | peer->ipaddr = *addr; | 63 | peer->ipaddr = *addr; |
@@ -121,7 +121,8 @@ static struct sctp_transport *sctp_transport_init(struct sctp_transport *peer, | |||
121 | } | 121 | } |
122 | 122 | ||
123 | /* Allocate and initialize a new transport. */ | 123 | /* Allocate and initialize a new transport. */ |
124 | struct sctp_transport *sctp_transport_new(const union sctp_addr *addr, int gfp) | 124 | struct sctp_transport *sctp_transport_new(const union sctp_addr *addr, |
125 | unsigned int __nocast gfp) | ||
125 | { | 126 | { |
126 | struct sctp_transport *transport; | 127 | struct sctp_transport *transport; |
127 | 128 | ||
diff --git a/net/sctp/ulpevent.c b/net/sctp/ulpevent.c index 17d0ff534735..0abd5101107c 100644 --- a/net/sctp/ulpevent.c +++ b/net/sctp/ulpevent.c | |||
@@ -74,7 +74,7 @@ SCTP_STATIC void sctp_ulpevent_init(struct sctp_ulpevent *event, int msg_flags) | |||
74 | 74 | ||
75 | /* Create a new sctp_ulpevent. */ | 75 | /* Create a new sctp_ulpevent. */ |
76 | SCTP_STATIC struct sctp_ulpevent *sctp_ulpevent_new(int size, int msg_flags, | 76 | SCTP_STATIC struct sctp_ulpevent *sctp_ulpevent_new(int size, int msg_flags, |
77 | int gfp) | 77 | unsigned int __nocast gfp) |
78 | { | 78 | { |
79 | struct sctp_ulpevent *event; | 79 | struct sctp_ulpevent *event; |
80 | struct sk_buff *skb; | 80 | struct sk_buff *skb; |
@@ -136,7 +136,7 @@ static inline void sctp_ulpevent_release_owner(struct sctp_ulpevent *event) | |||
136 | struct sctp_ulpevent *sctp_ulpevent_make_assoc_change( | 136 | struct sctp_ulpevent *sctp_ulpevent_make_assoc_change( |
137 | const struct sctp_association *asoc, | 137 | const struct sctp_association *asoc, |
138 | __u16 flags, __u16 state, __u16 error, __u16 outbound, | 138 | __u16 flags, __u16 state, __u16 error, __u16 outbound, |
139 | __u16 inbound, int gfp) | 139 | __u16 inbound, unsigned int __nocast gfp) |
140 | { | 140 | { |
141 | struct sctp_ulpevent *event; | 141 | struct sctp_ulpevent *event; |
142 | struct sctp_assoc_change *sac; | 142 | struct sctp_assoc_change *sac; |
@@ -237,7 +237,7 @@ fail: | |||
237 | struct sctp_ulpevent *sctp_ulpevent_make_peer_addr_change( | 237 | struct sctp_ulpevent *sctp_ulpevent_make_peer_addr_change( |
238 | const struct sctp_association *asoc, | 238 | const struct sctp_association *asoc, |
239 | const struct sockaddr_storage *aaddr, | 239 | const struct sockaddr_storage *aaddr, |
240 | int flags, int state, int error, int gfp) | 240 | int flags, int state, int error, unsigned int __nocast gfp) |
241 | { | 241 | { |
242 | struct sctp_ulpevent *event; | 242 | struct sctp_ulpevent *event; |
243 | struct sctp_paddr_change *spc; | 243 | struct sctp_paddr_change *spc; |
@@ -350,7 +350,7 @@ fail: | |||
350 | */ | 350 | */ |
351 | struct sctp_ulpevent *sctp_ulpevent_make_remote_error( | 351 | struct sctp_ulpevent *sctp_ulpevent_make_remote_error( |
352 | const struct sctp_association *asoc, struct sctp_chunk *chunk, | 352 | const struct sctp_association *asoc, struct sctp_chunk *chunk, |
353 | __u16 flags, int gfp) | 353 | __u16 flags, unsigned int __nocast gfp) |
354 | { | 354 | { |
355 | struct sctp_ulpevent *event; | 355 | struct sctp_ulpevent *event; |
356 | struct sctp_remote_error *sre; | 356 | struct sctp_remote_error *sre; |
@@ -448,7 +448,7 @@ fail: | |||
448 | */ | 448 | */ |
449 | struct sctp_ulpevent *sctp_ulpevent_make_send_failed( | 449 | struct sctp_ulpevent *sctp_ulpevent_make_send_failed( |
450 | const struct sctp_association *asoc, struct sctp_chunk *chunk, | 450 | const struct sctp_association *asoc, struct sctp_chunk *chunk, |
451 | __u16 flags, __u32 error, int gfp) | 451 | __u16 flags, __u32 error, unsigned int __nocast gfp) |
452 | { | 452 | { |
453 | struct sctp_ulpevent *event; | 453 | struct sctp_ulpevent *event; |
454 | struct sctp_send_failed *ssf; | 454 | struct sctp_send_failed *ssf; |
@@ -557,7 +557,7 @@ fail: | |||
557 | */ | 557 | */ |
558 | struct sctp_ulpevent *sctp_ulpevent_make_shutdown_event( | 558 | struct sctp_ulpevent *sctp_ulpevent_make_shutdown_event( |
559 | const struct sctp_association *asoc, | 559 | const struct sctp_association *asoc, |
560 | __u16 flags, int gfp) | 560 | __u16 flags, unsigned int __nocast gfp) |
561 | { | 561 | { |
562 | struct sctp_ulpevent *event; | 562 | struct sctp_ulpevent *event; |
563 | struct sctp_shutdown_event *sse; | 563 | struct sctp_shutdown_event *sse; |
@@ -620,7 +620,7 @@ fail: | |||
620 | * 5.3.1.6 SCTP_ADAPTION_INDICATION | 620 | * 5.3.1.6 SCTP_ADAPTION_INDICATION |
621 | */ | 621 | */ |
622 | struct sctp_ulpevent *sctp_ulpevent_make_adaption_indication( | 622 | struct sctp_ulpevent *sctp_ulpevent_make_adaption_indication( |
623 | const struct sctp_association *asoc, int gfp) | 623 | const struct sctp_association *asoc, unsigned int __nocast gfp) |
624 | { | 624 | { |
625 | struct sctp_ulpevent *event; | 625 | struct sctp_ulpevent *event; |
626 | struct sctp_adaption_event *sai; | 626 | struct sctp_adaption_event *sai; |
@@ -657,7 +657,7 @@ fail: | |||
657 | */ | 657 | */ |
658 | struct sctp_ulpevent *sctp_ulpevent_make_rcvmsg(struct sctp_association *asoc, | 658 | struct sctp_ulpevent *sctp_ulpevent_make_rcvmsg(struct sctp_association *asoc, |
659 | struct sctp_chunk *chunk, | 659 | struct sctp_chunk *chunk, |
660 | int gfp) | 660 | unsigned int __nocast gfp) |
661 | { | 661 | { |
662 | struct sctp_ulpevent *event = NULL; | 662 | struct sctp_ulpevent *event = NULL; |
663 | struct sk_buff *skb; | 663 | struct sk_buff *skb; |
@@ -718,7 +718,8 @@ fail: | |||
718 | * various events. | 718 | * various events. |
719 | */ | 719 | */ |
720 | struct sctp_ulpevent *sctp_ulpevent_make_pdapi( | 720 | struct sctp_ulpevent *sctp_ulpevent_make_pdapi( |
721 | const struct sctp_association *asoc, __u32 indication, int gfp) | 721 | const struct sctp_association *asoc, __u32 indication, |
722 | unsigned int __nocast gfp) | ||
722 | { | 723 | { |
723 | struct sctp_ulpevent *event; | 724 | struct sctp_ulpevent *event; |
724 | struct sctp_pdapi_event *pd; | 725 | struct sctp_pdapi_event *pd; |
diff --git a/net/sctp/ulpqueue.c b/net/sctp/ulpqueue.c index d5dd2cf7ac4a..8bbc279d6c99 100644 --- a/net/sctp/ulpqueue.c +++ b/net/sctp/ulpqueue.c | |||
@@ -100,7 +100,7 @@ void sctp_ulpq_free(struct sctp_ulpq *ulpq) | |||
100 | 100 | ||
101 | /* Process an incoming DATA chunk. */ | 101 | /* Process an incoming DATA chunk. */ |
102 | int sctp_ulpq_tail_data(struct sctp_ulpq *ulpq, struct sctp_chunk *chunk, | 102 | int sctp_ulpq_tail_data(struct sctp_ulpq *ulpq, struct sctp_chunk *chunk, |
103 | int gfp) | 103 | unsigned int __nocast gfp) |
104 | { | 104 | { |
105 | struct sk_buff_head temp; | 105 | struct sk_buff_head temp; |
106 | sctp_data_chunk_t *hdr; | 106 | sctp_data_chunk_t *hdr; |
@@ -778,7 +778,8 @@ static __u16 sctp_ulpq_renege_frags(struct sctp_ulpq *ulpq, __u16 needed) | |||
778 | 778 | ||
779 | /* Partial deliver the first message as there is pressure on rwnd. */ | 779 | /* Partial deliver the first message as there is pressure on rwnd. */ |
780 | void sctp_ulpq_partial_delivery(struct sctp_ulpq *ulpq, | 780 | void sctp_ulpq_partial_delivery(struct sctp_ulpq *ulpq, |
781 | struct sctp_chunk *chunk, int gfp) | 781 | struct sctp_chunk *chunk, |
782 | unsigned int __nocast gfp) | ||
782 | { | 783 | { |
783 | struct sctp_ulpevent *event; | 784 | struct sctp_ulpevent *event; |
784 | struct sctp_association *asoc; | 785 | struct sctp_association *asoc; |
@@ -802,7 +803,7 @@ void sctp_ulpq_partial_delivery(struct sctp_ulpq *ulpq, | |||
802 | 803 | ||
803 | /* Renege some packets to make room for an incoming chunk. */ | 804 | /* Renege some packets to make room for an incoming chunk. */ |
804 | void sctp_ulpq_renege(struct sctp_ulpq *ulpq, struct sctp_chunk *chunk, | 805 | void sctp_ulpq_renege(struct sctp_ulpq *ulpq, struct sctp_chunk *chunk, |
805 | int gfp) | 806 | unsigned int __nocast gfp) |
806 | { | 807 | { |
807 | struct sctp_association *asoc; | 808 | struct sctp_association *asoc; |
808 | __u16 needed, freed; | 809 | __u16 needed, freed; |
@@ -841,7 +842,7 @@ void sctp_ulpq_renege(struct sctp_ulpq *ulpq, struct sctp_chunk *chunk, | |||
841 | /* Notify the application if an association is aborted and in | 842 | /* Notify the application if an association is aborted and in |
842 | * partial delivery mode. Send up any pending received messages. | 843 | * partial delivery mode. Send up any pending received messages. |
843 | */ | 844 | */ |
844 | void sctp_ulpq_abort_pd(struct sctp_ulpq *ulpq, int gfp) | 845 | void sctp_ulpq_abort_pd(struct sctp_ulpq *ulpq, unsigned int __nocast gfp) |
845 | { | 846 | { |
846 | struct sctp_ulpevent *ev = NULL; | 847 | struct sctp_ulpevent *ev = NULL; |
847 | struct sock *sk; | 848 | struct sock *sk; |
diff --git a/net/unix/Kconfig b/net/unix/Kconfig new file mode 100644 index 000000000000..5a69733bcdad --- /dev/null +++ b/net/unix/Kconfig | |||
@@ -0,0 +1,21 @@ | |||
1 | # | ||
2 | # Unix Domain Sockets | ||
3 | # | ||
4 | |||
5 | config UNIX | ||
6 | tristate "Unix domain sockets" | ||
7 | ---help--- | ||
8 | If you say Y here, you will include support for Unix domain sockets; | ||
9 | sockets are the standard Unix mechanism for establishing and | ||
10 | accessing network connections. Many commonly used programs such as | ||
11 | the X Window system and syslog use these sockets even if your | ||
12 | machine is not connected to any network. Unless you are working on | ||
13 | an embedded system or something similar, you therefore definitely | ||
14 | want to say Y here. | ||
15 | |||
16 | To compile this driver as a module, choose M here: the module will be | ||
17 | called unix. Note that several important services won't work | ||
18 | correctly if you say M here and then neglect to load the module. | ||
19 | |||
20 | Say Y unless you know what you are doing. | ||
21 | |||
diff --git a/net/wanrouter/Kconfig b/net/wanrouter/Kconfig new file mode 100644 index 000000000000..1debe1cb054e --- /dev/null +++ b/net/wanrouter/Kconfig | |||
@@ -0,0 +1,29 @@ | |||
1 | # | ||
2 | # Configuration for WAN router | ||
3 | # | ||
4 | |||
5 | config WAN_ROUTER | ||
6 | tristate "WAN router" | ||
7 | depends on EXPERIMENTAL | ||
8 | ---help--- | ||
9 | Wide Area Networks (WANs), such as X.25, frame relay and leased | ||
10 | lines, are used to interconnect Local Area Networks (LANs) over vast | ||
11 | distances with data transfer rates significantly higher than those | ||
12 | achievable with commonly used asynchronous modem connections. | ||
13 | Usually, a quite expensive external device called a `WAN router' is | ||
14 | needed to connect to a WAN. | ||
15 | |||
16 | As an alternative, WAN routing can be built into the Linux kernel. | ||
17 | With relatively inexpensive WAN interface cards available on the | ||
18 | market, a perfectly usable router can be built for less than half | ||
19 | the price of an external router. If you have one of those cards and | ||
20 | wish to use your Linux box as a WAN router, say Y here and also to | ||
21 | the WAN driver for your card, below. You will then need the | ||
22 | wan-tools package which is available from <ftp://ftp.sangoma.com/>. | ||
23 | Read <file:Documentation/networking/wan-router.txt> for more | ||
24 | information. | ||
25 | |||
26 | To compile WAN routing support as a module, choose M here: the | ||
27 | module will be called wanrouter. | ||
28 | |||
29 | If unsure, say N. | ||
diff --git a/net/wanrouter/wanmain.c b/net/wanrouter/wanmain.c index d6844ac226f5..13b650ad22e2 100644 --- a/net/wanrouter/wanmain.c +++ b/net/wanrouter/wanmain.c | |||
@@ -358,10 +358,10 @@ int wanrouter_encapsulate(struct sk_buff *skb, struct net_device *dev, | |||
358 | */ | 358 | */ |
359 | 359 | ||
360 | 360 | ||
361 | unsigned short wanrouter_type_trans(struct sk_buff *skb, struct net_device *dev) | 361 | __be16 wanrouter_type_trans(struct sk_buff *skb, struct net_device *dev) |
362 | { | 362 | { |
363 | int cnt = skb->data[0] ? 0 : 1; /* there may be a pad present */ | 363 | int cnt = skb->data[0] ? 0 : 1; /* there may be a pad present */ |
364 | unsigned short ethertype; | 364 | __be16 ethertype; |
365 | 365 | ||
366 | switch (skb->data[cnt]) { | 366 | switch (skb->data[cnt]) { |
367 | case NLPID_IP: /* IP datagramm */ | 367 | case NLPID_IP: /* IP datagramm */ |
@@ -379,7 +379,7 @@ unsigned short wanrouter_type_trans(struct sk_buff *skb, struct net_device *dev) | |||
379 | skb->data[cnt+3], dev->name); | 379 | skb->data[cnt+3], dev->name); |
380 | return 0; | 380 | return 0; |
381 | } | 381 | } |
382 | ethertype = *((unsigned short*)&skb->data[cnt+4]); | 382 | ethertype = *((__be16*)&skb->data[cnt+4]); |
383 | cnt += 6; | 383 | cnt += 6; |
384 | break; | 384 | break; |
385 | 385 | ||
diff --git a/net/x25/Kconfig b/net/x25/Kconfig new file mode 100644 index 000000000000..e6759c9660bb --- /dev/null +++ b/net/x25/Kconfig | |||
@@ -0,0 +1,36 @@ | |||
1 | # | ||
2 | # CCITT X.25 Packet Layer | ||
3 | # | ||
4 | |||
5 | config X25 | ||
6 | tristate "CCITT X.25 Packet Layer (EXPERIMENTAL)" | ||
7 | depends on EXPERIMENTAL | ||
8 | ---help--- | ||
9 | X.25 is a set of standardized network protocols, similar in scope to | ||
10 | frame relay; the one physical line from your box to the X.25 network | ||
11 | entry point can carry several logical point-to-point connections | ||
12 | (called "virtual circuits") to other computers connected to the X.25 | ||
13 | network. Governments, banks, and other organizations tend to use it | ||
14 | to connect to each other or to form Wide Area Networks (WANs). Many | ||
15 | countries have public X.25 networks. X.25 consists of two | ||
16 | protocols: the higher level Packet Layer Protocol (PLP) (say Y here | ||
17 | if you want that) and the lower level data link layer protocol LAPB | ||
18 | (say Y to "LAPB Data Link Driver" below if you want that). | ||
19 | |||
20 | You can read more about X.25 at <http://www.sangoma.com/x25.htm> and | ||
21 | <http://www.cisco.com/univercd/cc/td/doc/product/software/ios11/cbook/cx25.htm>. | ||
22 | Information about X.25 for Linux is contained in the files | ||
23 | <file:Documentation/networking/x25.txt> and | ||
24 | <file:Documentation/networking/x25-iface.txt>. | ||
25 | |||
26 | One connects to an X.25 network either with a dedicated network card | ||
27 | using the X.21 protocol (not yet supported by Linux) or one can do | ||
28 | X.25 over a standard telephone line using an ordinary modem (say Y | ||
29 | to "X.25 async driver" below) or over Ethernet using an ordinary | ||
30 | Ethernet card and the LAPB over Ethernet (say Y to "LAPB Data Link | ||
31 | Driver" and "LAPB over Ethernet driver" below). | ||
32 | |||
33 | To compile this driver as a module, choose M here: the module | ||
34 | will be called x25. If unsure, say N. | ||
35 | |||
36 | |||
diff --git a/net/xfrm/Kconfig b/net/xfrm/Kconfig index 58ca6a972c48..0c1c04322baf 100644 --- a/net/xfrm/Kconfig +++ b/net/xfrm/Kconfig | |||
@@ -1,6 +1,10 @@ | |||
1 | # | 1 | # |
2 | # XFRM configuration | 2 | # XFRM configuration |
3 | # | 3 | # |
4 | config XFRM | ||
5 | bool | ||
6 | depends on NET | ||
7 | |||
4 | config XFRM_USER | 8 | config XFRM_USER |
5 | tristate "IPsec user configuration interface" | 9 | tristate "IPsec user configuration interface" |
6 | depends on INET && XFRM | 10 | depends on INET && XFRM |
@@ -10,3 +14,14 @@ config XFRM_USER | |||
10 | 14 | ||
11 | If unsure, say Y. | 15 | If unsure, say Y. |
12 | 16 | ||
17 | config NET_KEY | ||
18 | tristate "PF_KEY sockets" | ||
19 | select XFRM | ||
20 | ---help--- | ||
21 | PF_KEYv2 socket family, compatible to KAME ones. | ||
22 | They are required if you are going to use IPsec tools ported | ||
23 | from KAME. | ||
24 | |||
25 | Say Y unless you know what you are doing. | ||
26 | |||
27 | |||