diff options
author | Linus Torvalds <torvalds@g5.osdl.org> | 2005-07-12 16:16:40 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2005-07-12 16:16:40 -0400 |
commit | 9ffc7a0ebfcace0ed3eb77fb77e159f6f9443ec5 (patch) | |
tree | 4d4353bb6535aec7822ea71e594154979728e484 | |
parent | 2824bd250f0be1551747cc3ed5ae07facc285b57 (diff) | |
parent | f4637b55ba960d9987a836617271659e9b7b0de8 (diff) |
Merge master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
84 files changed, 691 insertions, 583 deletions
diff --git a/arch/alpha/Kconfig b/arch/alpha/Kconfig index c5739d6309df..083c5df42d35 100644 --- a/arch/alpha/Kconfig +++ b/arch/alpha/Kconfig | |||
@@ -596,6 +596,8 @@ source "fs/Kconfig.binfmt" | |||
596 | 596 | ||
597 | endmenu | 597 | endmenu |
598 | 598 | ||
599 | source "net/Kconfig" | ||
600 | |||
599 | source "drivers/Kconfig" | 601 | source "drivers/Kconfig" |
600 | 602 | ||
601 | source "fs/Kconfig" | 603 | source "fs/Kconfig" |
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig index 8752751f9985..45462714caf1 100644 --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig | |||
@@ -700,6 +700,8 @@ config APM | |||
700 | 700 | ||
701 | endmenu | 701 | endmenu |
702 | 702 | ||
703 | source "net/Kconfig" | ||
704 | |||
703 | menu "Device Drivers" | 705 | menu "Device Drivers" |
704 | 706 | ||
705 | source "drivers/base/Kconfig" | 707 | source "drivers/base/Kconfig" |
@@ -732,7 +734,7 @@ source "drivers/ieee1394/Kconfig" | |||
732 | 734 | ||
733 | source "drivers/message/i2o/Kconfig" | 735 | source "drivers/message/i2o/Kconfig" |
734 | 736 | ||
735 | source "net/Kconfig" | 737 | source "drivers/net/Kconfig" |
736 | 738 | ||
737 | source "drivers/isdn/Kconfig" | 739 | source "drivers/isdn/Kconfig" |
738 | 740 | ||
diff --git a/arch/arm26/Kconfig b/arch/arm26/Kconfig index dc0c1936969b..1f0373267306 100644 --- a/arch/arm26/Kconfig +++ b/arch/arm26/Kconfig | |||
@@ -183,6 +183,8 @@ source "mm/Kconfig" | |||
183 | 183 | ||
184 | endmenu | 184 | endmenu |
185 | 185 | ||
186 | source "net/Kconfig" | ||
187 | |||
186 | source "drivers/base/Kconfig" | 188 | source "drivers/base/Kconfig" |
187 | 189 | ||
188 | source "drivers/parport/Kconfig" | 190 | source "drivers/parport/Kconfig" |
@@ -193,7 +195,7 @@ source "drivers/block/Kconfig" | |||
193 | 195 | ||
194 | source "drivers/md/Kconfig" | 196 | source "drivers/md/Kconfig" |
195 | 197 | ||
196 | source "net/Kconfig" | 198 | source "drivers/net/Kconfig" |
197 | 199 | ||
198 | source "drivers/ide/Kconfig" | 200 | source "drivers/ide/Kconfig" |
199 | 201 | ||
diff --git a/arch/cris/Kconfig b/arch/cris/Kconfig index f848e3761491..e5979d68e352 100644 --- a/arch/cris/Kconfig +++ b/arch/cris/Kconfig | |||
@@ -122,6 +122,8 @@ source arch/cris/arch-v10/Kconfig | |||
122 | 122 | ||
123 | endmenu | 123 | endmenu |
124 | 124 | ||
125 | source "net/Kconfig" | ||
126 | |||
125 | # bring in ETRAX built-in drivers | 127 | # bring in ETRAX built-in drivers |
126 | menu "Drivers for built-in interfaces" | 128 | menu "Drivers for built-in interfaces" |
127 | source arch/cris/arch-v10/drivers/Kconfig | 129 | source arch/cris/arch-v10/drivers/Kconfig |
@@ -149,7 +151,7 @@ source "drivers/ieee1394/Kconfig" | |||
149 | 151 | ||
150 | source "drivers/message/i2o/Kconfig" | 152 | source "drivers/message/i2o/Kconfig" |
151 | 153 | ||
152 | source "net/Kconfig" | 154 | source "drivers/net/Kconfig" |
153 | 155 | ||
154 | source "drivers/isdn/Kconfig" | 156 | source "drivers/isdn/Kconfig" |
155 | 157 | ||
diff --git a/arch/frv/Kconfig b/arch/frv/Kconfig index c93f95146cc2..ec85c0d6c6da 100644 --- a/arch/frv/Kconfig +++ b/arch/frv/Kconfig | |||
@@ -346,6 +346,8 @@ source "fs/Kconfig.binfmt" | |||
346 | 346 | ||
347 | endmenu | 347 | endmenu |
348 | 348 | ||
349 | source "net/Kconfig" | ||
350 | |||
349 | source "drivers/Kconfig" | 351 | source "drivers/Kconfig" |
350 | 352 | ||
351 | source "fs/Kconfig" | 353 | source "fs/Kconfig" |
diff --git a/arch/h8300/Kconfig b/arch/h8300/Kconfig index 62a89e812e3e..375f2a8ff3b5 100644 --- a/arch/h8300/Kconfig +++ b/arch/h8300/Kconfig | |||
@@ -55,6 +55,8 @@ source "fs/Kconfig.binfmt" | |||
55 | 55 | ||
56 | endmenu | 56 | endmenu |
57 | 57 | ||
58 | source "net/Kconfig" | ||
59 | |||
58 | source "drivers/base/Kconfig" | 60 | source "drivers/base/Kconfig" |
59 | 61 | ||
60 | source "drivers/mtd/Kconfig" | 62 | source "drivers/mtd/Kconfig" |
@@ -65,7 +67,7 @@ source "drivers/ide/Kconfig" | |||
65 | 67 | ||
66 | source "arch/h8300/Kconfig.ide" | 68 | source "arch/h8300/Kconfig.ide" |
67 | 69 | ||
68 | source "net/Kconfig" | 70 | source "drivers/net/Kconfig" |
69 | 71 | ||
70 | # | 72 | # |
71 | # input - input/joystick depends on it. As does USB. | 73 | # input - input/joystick depends on it. As does USB. |
diff --git a/arch/i386/Kconfig b/arch/i386/Kconfig index 6c02336fe2e4..a801d9d48606 100644 --- a/arch/i386/Kconfig +++ b/arch/i386/Kconfig | |||
@@ -1285,6 +1285,8 @@ source "fs/Kconfig.binfmt" | |||
1285 | 1285 | ||
1286 | endmenu | 1286 | endmenu |
1287 | 1287 | ||
1288 | source "net/Kconfig" | ||
1289 | |||
1288 | source "drivers/Kconfig" | 1290 | source "drivers/Kconfig" |
1289 | 1291 | ||
1290 | source "fs/Kconfig" | 1292 | source "fs/Kconfig" |
diff --git a/arch/ia64/Kconfig b/arch/ia64/Kconfig index 01b78e7f992e..2e08942339ad 100644 --- a/arch/ia64/Kconfig +++ b/arch/ia64/Kconfig | |||
@@ -423,6 +423,8 @@ endmenu | |||
423 | 423 | ||
424 | endif | 424 | endif |
425 | 425 | ||
426 | source "net/Kconfig" | ||
427 | |||
426 | source "drivers/Kconfig" | 428 | source "drivers/Kconfig" |
427 | 429 | ||
428 | source "fs/Kconfig" | 430 | source "fs/Kconfig" |
diff --git a/arch/m32r/Kconfig b/arch/m32r/Kconfig index 42ca8a39798d..7772951df313 100644 --- a/arch/m32r/Kconfig +++ b/arch/m32r/Kconfig | |||
@@ -359,6 +359,8 @@ source "fs/Kconfig.binfmt" | |||
359 | 359 | ||
360 | endmenu | 360 | endmenu |
361 | 361 | ||
362 | source "net/Kconfig" | ||
363 | |||
362 | source "drivers/Kconfig" | 364 | source "drivers/Kconfig" |
363 | 365 | ||
364 | source "fs/Kconfig" | 366 | source "fs/Kconfig" |
diff --git a/arch/m68k/Kconfig b/arch/m68k/Kconfig index 691a2469ff36..178c4a3fbb72 100644 --- a/arch/m68k/Kconfig +++ b/arch/m68k/Kconfig | |||
@@ -450,6 +450,8 @@ source "drivers/zorro/Kconfig" | |||
450 | 450 | ||
451 | endmenu | 451 | endmenu |
452 | 452 | ||
453 | source "net/Kconfig" | ||
454 | |||
453 | source "drivers/Kconfig" | 455 | source "drivers/Kconfig" |
454 | 456 | ||
455 | menu "Character devices" | 457 | menu "Character devices" |
diff --git a/arch/m68knommu/Kconfig b/arch/m68knommu/Kconfig index dbfcdc8e6087..117f183f0b43 100644 --- a/arch/m68knommu/Kconfig +++ b/arch/m68knommu/Kconfig | |||
@@ -575,6 +575,8 @@ config PM | |||
575 | 575 | ||
576 | endmenu | 576 | endmenu |
577 | 577 | ||
578 | source "net/Kconfig" | ||
579 | |||
578 | source "drivers/Kconfig" | 580 | source "drivers/Kconfig" |
579 | 581 | ||
580 | source "fs/Kconfig" | 582 | source "fs/Kconfig" |
diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig index bd9de7b00c0a..b578239146b5 100644 --- a/arch/mips/Kconfig +++ b/arch/mips/Kconfig | |||
@@ -1640,6 +1640,8 @@ config PM | |||
1640 | 1640 | ||
1641 | endmenu | 1641 | endmenu |
1642 | 1642 | ||
1643 | source "net/Kconfig" | ||
1644 | |||
1643 | source "drivers/Kconfig" | 1645 | source "drivers/Kconfig" |
1644 | 1646 | ||
1645 | source "fs/Kconfig" | 1647 | source "fs/Kconfig" |
diff --git a/arch/parisc/Kconfig b/arch/parisc/Kconfig index ce327c799b44..1c2d87435233 100644 --- a/arch/parisc/Kconfig +++ b/arch/parisc/Kconfig | |||
@@ -190,6 +190,8 @@ source "fs/Kconfig.binfmt" | |||
190 | 190 | ||
191 | endmenu | 191 | endmenu |
192 | 192 | ||
193 | source "net/Kconfig" | ||
194 | |||
193 | source "drivers/Kconfig" | 195 | source "drivers/Kconfig" |
194 | 196 | ||
195 | source "fs/Kconfig" | 197 | source "fs/Kconfig" |
diff --git a/arch/ppc/Kconfig b/arch/ppc/Kconfig index 23b0d2f662c5..b833cbcd77f0 100644 --- a/arch/ppc/Kconfig +++ b/arch/ppc/Kconfig | |||
@@ -1355,6 +1355,8 @@ config PIN_TLB | |||
1355 | depends on ADVANCED_OPTIONS && 8xx | 1355 | depends on ADVANCED_OPTIONS && 8xx |
1356 | endmenu | 1356 | endmenu |
1357 | 1357 | ||
1358 | source "net/Kconfig" | ||
1359 | |||
1358 | source "drivers/Kconfig" | 1360 | source "drivers/Kconfig" |
1359 | 1361 | ||
1360 | source "fs/Kconfig" | 1362 | source "fs/Kconfig" |
diff --git a/arch/ppc64/Kconfig b/arch/ppc64/Kconfig index f804f25232ac..fdd8afba7152 100644 --- a/arch/ppc64/Kconfig +++ b/arch/ppc64/Kconfig | |||
@@ -429,6 +429,8 @@ config CMDLINE | |||
429 | 429 | ||
430 | endmenu | 430 | endmenu |
431 | 431 | ||
432 | source "net/Kconfig" | ||
433 | |||
432 | source "drivers/Kconfig" | 434 | source "drivers/Kconfig" |
433 | 435 | ||
434 | source "fs/Kconfig" | 436 | source "fs/Kconfig" |
diff --git a/arch/s390/Kconfig b/arch/s390/Kconfig index 6600ee87f896..477ac2758bd5 100644 --- a/arch/s390/Kconfig +++ b/arch/s390/Kconfig | |||
@@ -465,6 +465,8 @@ config KEXEC | |||
465 | 465 | ||
466 | endmenu | 466 | endmenu |
467 | 467 | ||
468 | source "net/Kconfig" | ||
469 | |||
468 | config PCMCIA | 470 | config PCMCIA |
469 | bool | 471 | bool |
470 | default n | 472 | default n |
@@ -475,7 +477,7 @@ source "drivers/scsi/Kconfig" | |||
475 | 477 | ||
476 | source "drivers/s390/Kconfig" | 478 | source "drivers/s390/Kconfig" |
477 | 479 | ||
478 | source "net/Kconfig" | 480 | source "drivers/net/Kconfig" |
479 | 481 | ||
480 | source "fs/Kconfig" | 482 | source "fs/Kconfig" |
481 | 483 | ||
diff --git a/arch/sh/Kconfig b/arch/sh/Kconfig index a7c8bfc11604..adc8109f8b77 100644 --- a/arch/sh/Kconfig +++ b/arch/sh/Kconfig | |||
@@ -784,6 +784,8 @@ config EMBEDDED_RAMDISK_IMAGE | |||
784 | 784 | ||
785 | endmenu | 785 | endmenu |
786 | 786 | ||
787 | source "net/Kconfig" | ||
788 | |||
787 | source "drivers/Kconfig" | 789 | source "drivers/Kconfig" |
788 | 790 | ||
789 | source "fs/Kconfig" | 791 | source "fs/Kconfig" |
diff --git a/arch/sh64/Kconfig b/arch/sh64/Kconfig index 708e59736a4d..4c3e5334adb3 100644 --- a/arch/sh64/Kconfig +++ b/arch/sh64/Kconfig | |||
@@ -268,6 +268,8 @@ source "fs/Kconfig.binfmt" | |||
268 | 268 | ||
269 | endmenu | 269 | endmenu |
270 | 270 | ||
271 | source "net/Kconfig" | ||
272 | |||
271 | source "drivers/Kconfig" | 273 | source "drivers/Kconfig" |
272 | 274 | ||
273 | source "fs/Kconfig" | 275 | source "fs/Kconfig" |
diff --git a/arch/sparc/Kconfig b/arch/sparc/Kconfig index 7a117ef473c5..aca028aa29bf 100644 --- a/arch/sparc/Kconfig +++ b/arch/sparc/Kconfig | |||
@@ -268,6 +268,8 @@ source "mm/Kconfig" | |||
268 | 268 | ||
269 | endmenu | 269 | endmenu |
270 | 270 | ||
271 | source "net/Kconfig" | ||
272 | |||
271 | source "drivers/Kconfig" | 273 | source "drivers/Kconfig" |
272 | 274 | ||
273 | if !SUN4 | 275 | if !SUN4 |
diff --git a/arch/sparc64/Kconfig b/arch/sparc64/Kconfig index 6a4733683f0f..140607870f13 100644 --- a/arch/sparc64/Kconfig +++ b/arch/sparc64/Kconfig | |||
@@ -525,6 +525,8 @@ source "mm/Kconfig" | |||
525 | 525 | ||
526 | endmenu | 526 | endmenu |
527 | 527 | ||
528 | source "net/Kconfig" | ||
529 | |||
528 | source "drivers/base/Kconfig" | 530 | source "drivers/base/Kconfig" |
529 | 531 | ||
530 | source "drivers/video/Kconfig" | 532 | source "drivers/video/Kconfig" |
@@ -551,7 +553,7 @@ endif | |||
551 | 553 | ||
552 | source "drivers/ieee1394/Kconfig" | 554 | source "drivers/ieee1394/Kconfig" |
553 | 555 | ||
554 | source "net/Kconfig" | 556 | source "drivers/net/Kconfig" |
555 | 557 | ||
556 | source "drivers/isdn/Kconfig" | 558 | source "drivers/isdn/Kconfig" |
557 | 559 | ||
diff --git a/arch/um/Kconfig b/arch/um/Kconfig index 6682c7883647..f945444df49c 100644 --- a/arch/um/Kconfig +++ b/arch/um/Kconfig | |||
@@ -275,6 +275,8 @@ endmenu | |||
275 | 275 | ||
276 | source "init/Kconfig" | 276 | source "init/Kconfig" |
277 | 277 | ||
278 | source "net/Kconfig" | ||
279 | |||
278 | source "drivers/base/Kconfig" | 280 | source "drivers/base/Kconfig" |
279 | 281 | ||
280 | source "arch/um/Kconfig_char" | 282 | source "arch/um/Kconfig_char" |
@@ -287,7 +289,7 @@ config NETDEVICES | |||
287 | 289 | ||
288 | source "arch/um/Kconfig_net" | 290 | source "arch/um/Kconfig_net" |
289 | 291 | ||
290 | source "net/Kconfig" | 292 | source "drivers/net/Kconfig" |
291 | 293 | ||
292 | source "fs/Kconfig" | 294 | source "fs/Kconfig" |
293 | 295 | ||
diff --git a/arch/v850/Kconfig b/arch/v850/Kconfig index 27febd6ffa80..89c053b6c2c4 100644 --- a/arch/v850/Kconfig +++ b/arch/v850/Kconfig | |||
@@ -250,6 +250,8 @@ source "fs/Kconfig.binfmt" | |||
250 | 250 | ||
251 | endmenu | 251 | endmenu |
252 | 252 | ||
253 | source "net/Kconfig" | ||
254 | |||
253 | ############################################################################# | 255 | ############################################################################# |
254 | 256 | ||
255 | source "drivers/base/Kconfig" | 257 | source "drivers/base/Kconfig" |
@@ -283,7 +285,7 @@ source "drivers/ieee1394/Kconfig" | |||
283 | 285 | ||
284 | source "drivers/message/i2o/Kconfig" | 286 | source "drivers/message/i2o/Kconfig" |
285 | 287 | ||
286 | source "net/Kconfig" | 288 | source "drivers/net/Kconfig" |
287 | 289 | ||
288 | source "drivers/isdn/Kconfig" | 290 | source "drivers/isdn/Kconfig" |
289 | 291 | ||
diff --git a/arch/x86_64/Kconfig b/arch/x86_64/Kconfig index d09437b5c48f..4b8326177c52 100644 --- a/arch/x86_64/Kconfig +++ b/arch/x86_64/Kconfig | |||
@@ -515,6 +515,8 @@ config UID16 | |||
515 | 515 | ||
516 | endmenu | 516 | endmenu |
517 | 517 | ||
518 | source "net/Kconfig" | ||
519 | |||
518 | source drivers/Kconfig | 520 | source drivers/Kconfig |
519 | 521 | ||
520 | source "drivers/firmware/Kconfig" | 522 | source "drivers/firmware/Kconfig" |
diff --git a/arch/xtensa/Kconfig b/arch/xtensa/Kconfig index c9b5d298e3c4..2b6257bec4c3 100644 --- a/arch/xtensa/Kconfig +++ b/arch/xtensa/Kconfig | |||
@@ -228,6 +228,8 @@ source "fs/Kconfig.binfmt" | |||
228 | 228 | ||
229 | endmenu | 229 | endmenu |
230 | 230 | ||
231 | source "net/Kconfig" | ||
232 | |||
231 | source "drivers/Kconfig" | 233 | source "drivers/Kconfig" |
232 | 234 | ||
233 | source "fs/Kconfig" | 235 | source "fs/Kconfig" |
diff --git a/drivers/Kconfig b/drivers/Kconfig index aed4a9b97c14..34efb2150e68 100644 --- a/drivers/Kconfig +++ b/drivers/Kconfig | |||
@@ -28,7 +28,7 @@ source "drivers/message/i2o/Kconfig" | |||
28 | 28 | ||
29 | source "drivers/macintosh/Kconfig" | 29 | source "drivers/macintosh/Kconfig" |
30 | 30 | ||
31 | source "net/Kconfig" | 31 | source "drivers/net/Kconfig" |
32 | 32 | ||
33 | source "drivers/isdn/Kconfig" | 33 | source "drivers/isdn/Kconfig" |
34 | 34 | ||
diff --git a/drivers/net/Kconfig b/drivers/net/Kconfig index 2b55687f6ee9..9a07ff7a7777 100644 --- a/drivers/net/Kconfig +++ b/drivers/net/Kconfig | |||
@@ -3,6 +3,8 @@ | |||
3 | # Network device configuration | 3 | # Network device configuration |
4 | # | 4 | # |
5 | 5 | ||
6 | menu "Network device support" | ||
7 | |||
6 | config NETDEVICES | 8 | config NETDEVICES |
7 | depends on NET | 9 | depends on NET |
8 | bool "Network device support" | 10 | bool "Network device support" |
@@ -2547,3 +2549,4 @@ config NETCONSOLE | |||
2547 | If you want to log kernel messages over the network, enable this. | 2549 | If you want to log kernel messages over the network, enable this. |
2548 | See <file:Documentation/networking/netconsole.txt> for details. | 2550 | See <file:Documentation/networking/netconsole.txt> for details. |
2549 | 2551 | ||
2552 | endmenu | ||
diff --git a/drivers/net/appletalk/Kconfig b/drivers/net/appletalk/Kconfig index 69c488d933a2..b14e89004c3a 100644 --- a/drivers/net/appletalk/Kconfig +++ b/drivers/net/appletalk/Kconfig | |||
@@ -1,6 +1,33 @@ | |||
1 | # | 1 | # |
2 | # Appletalk driver configuration | 2 | # Appletalk driver configuration |
3 | # | 3 | # |
4 | config ATALK | ||
5 | tristate "Appletalk protocol support" | ||
6 | select LLC | ||
7 | ---help--- | ||
8 | AppleTalk is the protocol that Apple computers can use to communicate | ||
9 | on a network. If your Linux box is connected to such a network and you | ||
10 | wish to connect to it, say Y. You will need to use the netatalk package | ||
11 | so that your Linux box can act as a print and file server for Macs as | ||
12 | well as access AppleTalk printers. Check out | ||
13 | <http://www.zettabyte.net/netatalk/> on the WWW for details. | ||
14 | EtherTalk is the name used for AppleTalk over Ethernet and the | ||
15 | cheaper and slower LocalTalk is AppleTalk over a proprietary Apple | ||
16 | network using serial links. EtherTalk and LocalTalk are fully | ||
17 | supported by Linux. | ||
18 | |||
19 | General information about how to connect Linux, Windows machines and | ||
20 | Macs is on the WWW at <http://www.eats.com/linux_mac_win.html>. The | ||
21 | NET-3-HOWTO, available from | ||
22 | <http://www.tldp.org/docs.html#howto>, contains valuable | ||
23 | information as well. | ||
24 | |||
25 | To compile this driver as a module, choose M here: the module will be | ||
26 | called appletalk. You almost certainly want to compile it as a | ||
27 | module so you can restart your AppleTalk stack without rebooting | ||
28 | your machine. I hear that the GNU boycott of Apple is over, so | ||
29 | even politically correct people are allowed to say Y here. | ||
30 | |||
4 | config DEV_APPLETALK | 31 | config DEV_APPLETALK |
5 | bool "Appletalk interfaces support" | 32 | bool "Appletalk interfaces support" |
6 | depends on ATALK | 33 | depends on ATALK |
diff --git a/drivers/net/myri_sbus.c b/drivers/net/myri_sbus.c index aad5494c83cf..f0996ce5c268 100644 --- a/drivers/net/myri_sbus.c +++ b/drivers/net/myri_sbus.c | |||
@@ -369,7 +369,7 @@ static void myri_tx(struct myri_eth *mp, struct net_device *dev) | |||
369 | * assume 802.3 if the type field is short enough to be a length. | 369 | * assume 802.3 if the type field is short enough to be a length. |
370 | * This is normal practice and works for any 'now in use' protocol. | 370 | * This is normal practice and works for any 'now in use' protocol. |
371 | */ | 371 | */ |
372 | static unsigned short myri_type_trans(struct sk_buff *skb, struct net_device *dev) | 372 | static __be16 myri_type_trans(struct sk_buff *skb, struct net_device *dev) |
373 | { | 373 | { |
374 | struct ethhdr *eth; | 374 | struct ethhdr *eth; |
375 | unsigned char *rawp; | 375 | unsigned char *rawp; |
diff --git a/drivers/net/plip.c b/drivers/net/plip.c index f4b62405d2e5..21537ee3a6a7 100644 --- a/drivers/net/plip.c +++ b/drivers/net/plip.c | |||
@@ -540,7 +540,7 @@ plip_receive(unsigned short nibble_timeout, struct net_device *dev, | |||
540 | * in far too many old systems not all even running Linux. | 540 | * in far too many old systems not all even running Linux. |
541 | */ | 541 | */ |
542 | 542 | ||
543 | static unsigned short plip_type_trans(struct sk_buff *skb, struct net_device *dev) | 543 | static __be16 plip_type_trans(struct sk_buff *skb, struct net_device *dev) |
544 | { | 544 | { |
545 | struct ethhdr *eth; | 545 | struct ethhdr *eth; |
546 | unsigned char *rawp; | 546 | unsigned char *rawp; |
diff --git a/drivers/net/wan/farsync.c b/drivers/net/wan/farsync.c index 7217d44e8854..2c83cca34b86 100644 --- a/drivers/net/wan/farsync.c +++ b/drivers/net/wan/farsync.c | |||
@@ -861,8 +861,7 @@ fst_tx_dma_complete(struct fst_card_info *card, struct fst_port_info *port, | |||
861 | /* | 861 | /* |
862 | * Mark it for our own raw sockets interface | 862 | * Mark it for our own raw sockets interface |
863 | */ | 863 | */ |
864 | static unsigned short farsync_type_trans(struct sk_buff *skb, | 864 | static __be16 farsync_type_trans(struct sk_buff *skb, struct net_device *dev) |
865 | struct net_device *dev) | ||
866 | { | 865 | { |
867 | skb->dev = dev; | 866 | skb->dev = dev; |
868 | skb->mac.raw = skb->data; | 867 | skb->mac.raw = skb->data; |
diff --git a/drivers/net/wan/hdlc_cisco.c b/drivers/net/wan/hdlc_cisco.c index 87496843681a..48c03c11cd9a 100644 --- a/drivers/net/wan/hdlc_cisco.c +++ b/drivers/net/wan/hdlc_cisco.c | |||
@@ -91,8 +91,7 @@ static void cisco_keepalive_send(struct net_device *dev, u32 type, | |||
91 | 91 | ||
92 | 92 | ||
93 | 93 | ||
94 | static unsigned short cisco_type_trans(struct sk_buff *skb, | 94 | static __be16 cisco_type_trans(struct sk_buff *skb, struct net_device *dev) |
95 | struct net_device *dev) | ||
96 | { | 95 | { |
97 | hdlc_header *data = (hdlc_header*)skb->data; | 96 | hdlc_header *data = (hdlc_header*)skb->data; |
98 | 97 | ||
diff --git a/drivers/net/wan/hdlc_ppp.c b/drivers/net/wan/hdlc_ppp.c index 7cd6195a2e46..b81263eaede0 100644 --- a/drivers/net/wan/hdlc_ppp.c +++ b/drivers/net/wan/hdlc_ppp.c | |||
@@ -66,8 +66,7 @@ static void ppp_close(struct net_device *dev) | |||
66 | 66 | ||
67 | 67 | ||
68 | 68 | ||
69 | static unsigned short ppp_type_trans(struct sk_buff *skb, | 69 | static __be16 ppp_type_trans(struct sk_buff *skb, struct net_device *dev) |
70 | struct net_device *dev) | ||
71 | { | 70 | { |
72 | return __constant_htons(ETH_P_WAN_PPP); | 71 | return __constant_htons(ETH_P_WAN_PPP); |
73 | } | 72 | } |
diff --git a/drivers/net/wan/hdlc_raw.c b/drivers/net/wan/hdlc_raw.c index c41fb70b6929..9456d31cb1c1 100644 --- a/drivers/net/wan/hdlc_raw.c +++ b/drivers/net/wan/hdlc_raw.c | |||
@@ -24,8 +24,7 @@ | |||
24 | #include <linux/hdlc.h> | 24 | #include <linux/hdlc.h> |
25 | 25 | ||
26 | 26 | ||
27 | static unsigned short raw_type_trans(struct sk_buff *skb, | 27 | static __be16 raw_type_trans(struct sk_buff *skb, struct net_device *dev) |
28 | struct net_device *dev) | ||
29 | { | 28 | { |
30 | return __constant_htons(ETH_P_IP); | 29 | return __constant_htons(ETH_P_IP); |
31 | } | 30 | } |
diff --git a/drivers/s390/net/qeth_main.c b/drivers/s390/net/qeth_main.c index 3cb88c770037..8f4d2999af8e 100644 --- a/drivers/s390/net/qeth_main.c +++ b/drivers/s390/net/qeth_main.c | |||
@@ -2210,7 +2210,7 @@ no_mem: | |||
2210 | return NULL; | 2210 | return NULL; |
2211 | } | 2211 | } |
2212 | 2212 | ||
2213 | static inline unsigned short | 2213 | static inline __be16 |
2214 | qeth_type_trans(struct sk_buff *skb, struct net_device *dev) | 2214 | qeth_type_trans(struct sk_buff *skb, struct net_device *dev) |
2215 | { | 2215 | { |
2216 | struct qeth_card *card; | 2216 | struct qeth_card *card; |
diff --git a/include/linux/etherdevice.h b/include/linux/etherdevice.h index cf3847edc50f..ce8518e658b6 100644 --- a/include/linux/etherdevice.h +++ b/include/linux/etherdevice.h | |||
@@ -33,7 +33,7 @@ extern int eth_header(struct sk_buff *skb, struct net_device *dev, | |||
33 | unsigned short type, void *daddr, | 33 | unsigned short type, void *daddr, |
34 | void *saddr, unsigned len); | 34 | void *saddr, unsigned len); |
35 | extern int eth_rebuild_header(struct sk_buff *skb); | 35 | extern int eth_rebuild_header(struct sk_buff *skb); |
36 | extern unsigned short eth_type_trans(struct sk_buff *skb, struct net_device *dev); | 36 | extern __be16 eth_type_trans(struct sk_buff *skb, struct net_device *dev); |
37 | extern void eth_header_cache_update(struct hh_cache *hh, struct net_device *dev, | 37 | extern void eth_header_cache_update(struct hh_cache *hh, struct net_device *dev, |
38 | unsigned char * haddr); | 38 | unsigned char * haddr); |
39 | extern int eth_header_cache(struct neighbour *neigh, | 39 | extern int eth_header_cache(struct neighbour *neigh, |
diff --git a/include/linux/fddidevice.h b/include/linux/fddidevice.h index 002f6367697d..e61e42dfd317 100644 --- a/include/linux/fddidevice.h +++ b/include/linux/fddidevice.h | |||
@@ -25,7 +25,7 @@ | |||
25 | #include <linux/if_fddi.h> | 25 | #include <linux/if_fddi.h> |
26 | 26 | ||
27 | #ifdef __KERNEL__ | 27 | #ifdef __KERNEL__ |
28 | extern unsigned short fddi_type_trans(struct sk_buff *skb, | 28 | extern __be16 fddi_type_trans(struct sk_buff *skb, |
29 | struct net_device *dev); | 29 | struct net_device *dev); |
30 | extern struct net_device *alloc_fddidev(int sizeof_priv); | 30 | extern struct net_device *alloc_fddidev(int sizeof_priv); |
31 | #endif | 31 | #endif |
diff --git a/include/linux/hdlc.h b/include/linux/hdlc.h index ed2927ef1ff7..df695e9ae327 100644 --- a/include/linux/hdlc.h +++ b/include/linux/hdlc.h | |||
@@ -242,8 +242,8 @@ static __inline__ struct net_device_stats *hdlc_stats(struct net_device *dev) | |||
242 | } | 242 | } |
243 | 243 | ||
244 | 244 | ||
245 | static __inline__ unsigned short hdlc_type_trans(struct sk_buff *skb, | 245 | static __inline__ __be16 hdlc_type_trans(struct sk_buff *skb, |
246 | struct net_device *dev) | 246 | struct net_device *dev) |
247 | { | 247 | { |
248 | hdlc_device *hdlc = dev_to_hdlc(dev); | 248 | hdlc_device *hdlc = dev_to_hdlc(dev); |
249 | 249 | ||
diff --git a/include/linux/netlink.h b/include/linux/netlink.h index 27e4d164a108..2f0c085f2c7d 100644 --- a/include/linux/netlink.h +++ b/include/linux/netlink.h | |||
@@ -16,6 +16,7 @@ | |||
16 | #define NETLINK_AUDIT 9 /* auditing */ | 16 | #define NETLINK_AUDIT 9 /* auditing */ |
17 | #define NETLINK_FIB_LOOKUP 10 | 17 | #define NETLINK_FIB_LOOKUP 10 |
18 | #define NETLINK_ROUTE6 11 /* af_inet6 route comm channel */ | 18 | #define NETLINK_ROUTE6 11 /* af_inet6 route comm channel */ |
19 | #define NETLINK_NETFILTER 12 /* netfilter subsystem */ | ||
19 | #define NETLINK_IP6_FW 13 | 20 | #define NETLINK_IP6_FW 13 |
20 | #define NETLINK_DNRTMSG 14 /* DECnet routing messages */ | 21 | #define NETLINK_DNRTMSG 14 /* DECnet routing messages */ |
21 | #define NETLINK_KOBJECT_UEVENT 15 /* Kernel messages to userspace */ | 22 | #define NETLINK_KOBJECT_UEVENT 15 /* Kernel messages to userspace */ |
diff --git a/include/linux/wanrouter.h b/include/linux/wanrouter.h index 3e89f0f15f49..1b6b76a4eb54 100644 --- a/include/linux/wanrouter.h +++ b/include/linux/wanrouter.h | |||
@@ -516,8 +516,7 @@ struct wan_device { | |||
516 | /* Public functions available for device drivers */ | 516 | /* Public functions available for device drivers */ |
517 | extern int register_wan_device(struct wan_device *wandev); | 517 | extern int register_wan_device(struct wan_device *wandev); |
518 | extern int unregister_wan_device(char *name); | 518 | extern int unregister_wan_device(char *name); |
519 | unsigned short wanrouter_type_trans(struct sk_buff *skb, | 519 | __be16 wanrouter_type_trans(struct sk_buff *skb, struct net_device *dev); |
520 | struct net_device *dev); | ||
521 | int wanrouter_encapsulate(struct sk_buff *skb, struct net_device *dev, | 520 | int wanrouter_encapsulate(struct sk_buff *skb, struct net_device *dev, |
522 | unsigned short type); | 521 | unsigned short type); |
523 | 522 | ||
diff --git a/include/net/sctp/sctp.h b/include/net/sctp/sctp.h index ef2738159ab3..4a26adfaed71 100644 --- a/include/net/sctp/sctp.h +++ b/include/net/sctp/sctp.h | |||
@@ -125,7 +125,8 @@ | |||
125 | */ | 125 | */ |
126 | extern struct sock *sctp_get_ctl_sock(void); | 126 | extern struct sock *sctp_get_ctl_sock(void); |
127 | extern int sctp_copy_local_addr_list(struct sctp_bind_addr *, | 127 | extern int sctp_copy_local_addr_list(struct sctp_bind_addr *, |
128 | sctp_scope_t, int gfp, int flags); | 128 | sctp_scope_t, unsigned int __nocast gfp, |
129 | int flags); | ||
129 | extern struct sctp_pf *sctp_get_pf_specific(sa_family_t family); | 130 | extern struct sctp_pf *sctp_get_pf_specific(sa_family_t family); |
130 | extern int sctp_register_pf(struct sctp_pf *, sa_family_t); | 131 | extern int sctp_register_pf(struct sctp_pf *, sa_family_t); |
131 | 132 | ||
diff --git a/include/net/sctp/sm.h b/include/net/sctp/sm.h index 88d9fe5975d5..58462164d960 100644 --- a/include/net/sctp/sm.h +++ b/include/net/sctp/sm.h | |||
@@ -181,17 +181,17 @@ const sctp_sm_table_entry_t *sctp_sm_lookup_event(sctp_event_t, | |||
181 | int sctp_chunk_iif(const struct sctp_chunk *); | 181 | int sctp_chunk_iif(const struct sctp_chunk *); |
182 | struct sctp_association *sctp_make_temp_asoc(const struct sctp_endpoint *, | 182 | struct sctp_association *sctp_make_temp_asoc(const struct sctp_endpoint *, |
183 | struct sctp_chunk *, | 183 | struct sctp_chunk *, |
184 | int gfp); | 184 | unsigned int __nocast gfp); |
185 | __u32 sctp_generate_verification_tag(void); | 185 | __u32 sctp_generate_verification_tag(void); |
186 | void sctp_populate_tie_tags(__u8 *cookie, __u32 curTag, __u32 hisTag); | 186 | void sctp_populate_tie_tags(__u8 *cookie, __u32 curTag, __u32 hisTag); |
187 | 187 | ||
188 | /* Prototypes for chunk-building functions. */ | 188 | /* Prototypes for chunk-building functions. */ |
189 | struct sctp_chunk *sctp_make_init(const struct sctp_association *, | 189 | struct sctp_chunk *sctp_make_init(const struct sctp_association *, |
190 | const struct sctp_bind_addr *, | 190 | const struct sctp_bind_addr *, |
191 | int gfp, int vparam_len); | 191 | unsigned int __nocast gfp, int vparam_len); |
192 | struct sctp_chunk *sctp_make_init_ack(const struct sctp_association *, | 192 | struct sctp_chunk *sctp_make_init_ack(const struct sctp_association *, |
193 | const struct sctp_chunk *, | 193 | const struct sctp_chunk *, |
194 | const int gfp, | 194 | const unsigned int __nocast gfp, |
195 | const int unkparam_len); | 195 | const int unkparam_len); |
196 | struct sctp_chunk *sctp_make_cookie_echo(const struct sctp_association *, | 196 | struct sctp_chunk *sctp_make_cookie_echo(const struct sctp_association *, |
197 | const struct sctp_chunk *); | 197 | const struct sctp_chunk *); |
@@ -265,7 +265,7 @@ int sctp_do_sm(sctp_event_t event_type, sctp_subtype_t subtype, | |||
265 | struct sctp_endpoint *, | 265 | struct sctp_endpoint *, |
266 | struct sctp_association *asoc, | 266 | struct sctp_association *asoc, |
267 | void *event_arg, | 267 | void *event_arg, |
268 | int gfp); | 268 | unsigned int __nocast gfp); |
269 | 269 | ||
270 | /* 2nd level prototypes */ | 270 | /* 2nd level prototypes */ |
271 | void sctp_generate_t3_rtx_event(unsigned long peer); | 271 | void sctp_generate_t3_rtx_event(unsigned long peer); |
@@ -275,7 +275,8 @@ void sctp_ootb_pkt_free(struct sctp_packet *); | |||
275 | 275 | ||
276 | struct sctp_association *sctp_unpack_cookie(const struct sctp_endpoint *, | 276 | struct sctp_association *sctp_unpack_cookie(const struct sctp_endpoint *, |
277 | const struct sctp_association *, | 277 | const struct sctp_association *, |
278 | struct sctp_chunk *, int gfp, int *err, | 278 | struct sctp_chunk *, |
279 | unsigned int __nocast gfp, int *err, | ||
279 | struct sctp_chunk **err_chk_p); | 280 | struct sctp_chunk **err_chk_p); |
280 | int sctp_addip_addr_config(struct sctp_association *, sctp_param_t, | 281 | int sctp_addip_addr_config(struct sctp_association *, sctp_param_t, |
281 | struct sockaddr_storage*, int); | 282 | struct sockaddr_storage*, int); |
diff --git a/include/net/sctp/structs.h b/include/net/sctp/structs.h index 7435528a1747..994009bbe3b4 100644 --- a/include/net/sctp/structs.h +++ b/include/net/sctp/structs.h | |||
@@ -445,7 +445,8 @@ struct sctp_ssnmap { | |||
445 | int malloced; | 445 | int malloced; |
446 | }; | 446 | }; |
447 | 447 | ||
448 | struct sctp_ssnmap *sctp_ssnmap_new(__u16 in, __u16 out, int gfp); | 448 | struct sctp_ssnmap *sctp_ssnmap_new(__u16 in, __u16 out, |
449 | unsigned int __nocast gfp); | ||
449 | void sctp_ssnmap_free(struct sctp_ssnmap *map); | 450 | void sctp_ssnmap_free(struct sctp_ssnmap *map); |
450 | void sctp_ssnmap_clear(struct sctp_ssnmap *map); | 451 | void sctp_ssnmap_clear(struct sctp_ssnmap *map); |
451 | 452 | ||
@@ -945,7 +946,8 @@ struct sctp_transport { | |||
945 | } cacc; | 946 | } cacc; |
946 | }; | 947 | }; |
947 | 948 | ||
948 | struct sctp_transport *sctp_transport_new(const union sctp_addr *, int); | 949 | struct sctp_transport *sctp_transport_new(const union sctp_addr *, |
950 | unsigned int __nocast); | ||
949 | void sctp_transport_set_owner(struct sctp_transport *, | 951 | void sctp_transport_set_owner(struct sctp_transport *, |
950 | struct sctp_association *); | 952 | struct sctp_association *); |
951 | void sctp_transport_route(struct sctp_transport *, union sctp_addr *, | 953 | void sctp_transport_route(struct sctp_transport *, union sctp_addr *, |
@@ -1093,9 +1095,10 @@ void sctp_bind_addr_init(struct sctp_bind_addr *, __u16 port); | |||
1093 | void sctp_bind_addr_free(struct sctp_bind_addr *); | 1095 | void sctp_bind_addr_free(struct sctp_bind_addr *); |
1094 | int sctp_bind_addr_copy(struct sctp_bind_addr *dest, | 1096 | int sctp_bind_addr_copy(struct sctp_bind_addr *dest, |
1095 | const struct sctp_bind_addr *src, | 1097 | const struct sctp_bind_addr *src, |
1096 | sctp_scope_t scope, int gfp,int flags); | 1098 | sctp_scope_t scope, unsigned int __nocast gfp, |
1099 | int flags); | ||
1097 | int sctp_add_bind_addr(struct sctp_bind_addr *, union sctp_addr *, | 1100 | int sctp_add_bind_addr(struct sctp_bind_addr *, union sctp_addr *, |
1098 | int gfp); | 1101 | unsigned int __nocast gfp); |
1099 | int sctp_del_bind_addr(struct sctp_bind_addr *, union sctp_addr *); | 1102 | int sctp_del_bind_addr(struct sctp_bind_addr *, union sctp_addr *); |
1100 | int sctp_bind_addr_match(struct sctp_bind_addr *, const union sctp_addr *, | 1103 | int sctp_bind_addr_match(struct sctp_bind_addr *, const union sctp_addr *, |
1101 | struct sctp_sock *); | 1104 | struct sctp_sock *); |
@@ -1104,9 +1107,10 @@ union sctp_addr *sctp_find_unmatch_addr(struct sctp_bind_addr *bp, | |||
1104 | int addrcnt, | 1107 | int addrcnt, |
1105 | struct sctp_sock *opt); | 1108 | struct sctp_sock *opt); |
1106 | union sctp_params sctp_bind_addrs_to_raw(const struct sctp_bind_addr *bp, | 1109 | union sctp_params sctp_bind_addrs_to_raw(const struct sctp_bind_addr *bp, |
1107 | int *addrs_len, int gfp); | 1110 | int *addrs_len, |
1111 | unsigned int __nocast gfp); | ||
1108 | int sctp_raw_to_bind_addrs(struct sctp_bind_addr *bp, __u8 *raw, int len, | 1112 | int sctp_raw_to_bind_addrs(struct sctp_bind_addr *bp, __u8 *raw, int len, |
1109 | __u16 port, int gfp); | 1113 | __u16 port, unsigned int __nocast gfp); |
1110 | 1114 | ||
1111 | sctp_scope_t sctp_scope(const union sctp_addr *); | 1115 | sctp_scope_t sctp_scope(const union sctp_addr *); |
1112 | int sctp_in_scope(const union sctp_addr *addr, const sctp_scope_t scope); | 1116 | int sctp_in_scope(const union sctp_addr *addr, const sctp_scope_t scope); |
@@ -1235,7 +1239,7 @@ static inline struct sctp_endpoint *sctp_ep(struct sctp_ep_common *base) | |||
1235 | } | 1239 | } |
1236 | 1240 | ||
1237 | /* These are function signatures for manipulating endpoints. */ | 1241 | /* These are function signatures for manipulating endpoints. */ |
1238 | struct sctp_endpoint *sctp_endpoint_new(struct sock *, int); | 1242 | struct sctp_endpoint *sctp_endpoint_new(struct sock *, unsigned int __nocast); |
1239 | void sctp_endpoint_free(struct sctp_endpoint *); | 1243 | void sctp_endpoint_free(struct sctp_endpoint *); |
1240 | void sctp_endpoint_put(struct sctp_endpoint *); | 1244 | void sctp_endpoint_put(struct sctp_endpoint *); |
1241 | void sctp_endpoint_hold(struct sctp_endpoint *); | 1245 | void sctp_endpoint_hold(struct sctp_endpoint *); |
@@ -1256,7 +1260,7 @@ int sctp_verify_init(const struct sctp_association *asoc, sctp_cid_t, | |||
1256 | struct sctp_chunk **err_chunk); | 1260 | struct sctp_chunk **err_chunk); |
1257 | int sctp_process_init(struct sctp_association *, sctp_cid_t cid, | 1261 | int sctp_process_init(struct sctp_association *, sctp_cid_t cid, |
1258 | const union sctp_addr *peer, | 1262 | const union sctp_addr *peer, |
1259 | sctp_init_chunk_t *init, int gfp); | 1263 | sctp_init_chunk_t *init, unsigned int __nocast gfp); |
1260 | __u32 sctp_generate_tag(const struct sctp_endpoint *); | 1264 | __u32 sctp_generate_tag(const struct sctp_endpoint *); |
1261 | __u32 sctp_generate_tsn(const struct sctp_endpoint *); | 1265 | __u32 sctp_generate_tsn(const struct sctp_endpoint *); |
1262 | 1266 | ||
@@ -1719,7 +1723,7 @@ static inline struct sctp_association *sctp_assoc(struct sctp_ep_common *base) | |||
1719 | 1723 | ||
1720 | struct sctp_association * | 1724 | struct sctp_association * |
1721 | sctp_association_new(const struct sctp_endpoint *, const struct sock *, | 1725 | sctp_association_new(const struct sctp_endpoint *, const struct sock *, |
1722 | sctp_scope_t scope, int gfp); | 1726 | sctp_scope_t scope, unsigned int __nocast gfp); |
1723 | void sctp_association_free(struct sctp_association *); | 1727 | void sctp_association_free(struct sctp_association *); |
1724 | void sctp_association_put(struct sctp_association *); | 1728 | void sctp_association_put(struct sctp_association *); |
1725 | void sctp_association_hold(struct sctp_association *); | 1729 | void sctp_association_hold(struct sctp_association *); |
@@ -1735,7 +1739,7 @@ int sctp_assoc_lookup_laddr(struct sctp_association *asoc, | |||
1735 | const union sctp_addr *laddr); | 1739 | const union sctp_addr *laddr); |
1736 | struct sctp_transport *sctp_assoc_add_peer(struct sctp_association *, | 1740 | struct sctp_transport *sctp_assoc_add_peer(struct sctp_association *, |
1737 | const union sctp_addr *address, | 1741 | const union sctp_addr *address, |
1738 | const int gfp, | 1742 | const unsigned int __nocast gfp, |
1739 | const int peer_state); | 1743 | const int peer_state); |
1740 | void sctp_assoc_del_peer(struct sctp_association *asoc, | 1744 | void sctp_assoc_del_peer(struct sctp_association *asoc, |
1741 | const union sctp_addr *addr); | 1745 | const union sctp_addr *addr); |
@@ -1759,9 +1763,11 @@ void sctp_assoc_rwnd_increase(struct sctp_association *, unsigned); | |||
1759 | void sctp_assoc_rwnd_decrease(struct sctp_association *, unsigned); | 1763 | void sctp_assoc_rwnd_decrease(struct sctp_association *, unsigned); |
1760 | void sctp_assoc_set_primary(struct sctp_association *, | 1764 | void sctp_assoc_set_primary(struct sctp_association *, |
1761 | struct sctp_transport *); | 1765 | struct sctp_transport *); |
1762 | int sctp_assoc_set_bind_addr_from_ep(struct sctp_association *, int); | 1766 | int sctp_assoc_set_bind_addr_from_ep(struct sctp_association *, |
1767 | unsigned int __nocast); | ||
1763 | int sctp_assoc_set_bind_addr_from_cookie(struct sctp_association *, | 1768 | int sctp_assoc_set_bind_addr_from_cookie(struct sctp_association *, |
1764 | struct sctp_cookie*, int gfp); | 1769 | struct sctp_cookie*, |
1770 | unsigned int __nocast gfp); | ||
1765 | 1771 | ||
1766 | int sctp_cmp_addr_exact(const union sctp_addr *ss1, | 1772 | int sctp_cmp_addr_exact(const union sctp_addr *ss1, |
1767 | const union sctp_addr *ss2); | 1773 | const union sctp_addr *ss2); |
diff --git a/include/net/sctp/ulpevent.h b/include/net/sctp/ulpevent.h index 1019d83a580a..90fe4bf6754f 100644 --- a/include/net/sctp/ulpevent.h +++ b/include/net/sctp/ulpevent.h | |||
@@ -88,7 +88,7 @@ struct sctp_ulpevent *sctp_ulpevent_make_assoc_change( | |||
88 | __u16 error, | 88 | __u16 error, |
89 | __u16 outbound, | 89 | __u16 outbound, |
90 | __u16 inbound, | 90 | __u16 inbound, |
91 | int gfp); | 91 | unsigned int __nocast gfp); |
92 | 92 | ||
93 | struct sctp_ulpevent *sctp_ulpevent_make_peer_addr_change( | 93 | struct sctp_ulpevent *sctp_ulpevent_make_peer_addr_change( |
94 | const struct sctp_association *asoc, | 94 | const struct sctp_association *asoc, |
@@ -96,35 +96,35 @@ struct sctp_ulpevent *sctp_ulpevent_make_peer_addr_change( | |||
96 | int flags, | 96 | int flags, |
97 | int state, | 97 | int state, |
98 | int error, | 98 | int error, |
99 | int gfp); | 99 | unsigned int __nocast gfp); |
100 | 100 | ||
101 | struct sctp_ulpevent *sctp_ulpevent_make_remote_error( | 101 | struct sctp_ulpevent *sctp_ulpevent_make_remote_error( |
102 | const struct sctp_association *asoc, | 102 | const struct sctp_association *asoc, |
103 | struct sctp_chunk *chunk, | 103 | struct sctp_chunk *chunk, |
104 | __u16 flags, | 104 | __u16 flags, |
105 | int gfp); | 105 | unsigned int __nocast gfp); |
106 | struct sctp_ulpevent *sctp_ulpevent_make_send_failed( | 106 | struct sctp_ulpevent *sctp_ulpevent_make_send_failed( |
107 | const struct sctp_association *asoc, | 107 | const struct sctp_association *asoc, |
108 | struct sctp_chunk *chunk, | 108 | struct sctp_chunk *chunk, |
109 | __u16 flags, | 109 | __u16 flags, |
110 | __u32 error, | 110 | __u32 error, |
111 | int gfp); | 111 | unsigned int __nocast gfp); |
112 | 112 | ||
113 | struct sctp_ulpevent *sctp_ulpevent_make_shutdown_event( | 113 | struct sctp_ulpevent *sctp_ulpevent_make_shutdown_event( |
114 | const struct sctp_association *asoc, | 114 | const struct sctp_association *asoc, |
115 | __u16 flags, | 115 | __u16 flags, |
116 | int gfp); | 116 | unsigned int __nocast gfp); |
117 | 117 | ||
118 | struct sctp_ulpevent *sctp_ulpevent_make_pdapi( | 118 | struct sctp_ulpevent *sctp_ulpevent_make_pdapi( |
119 | const struct sctp_association *asoc, | 119 | const struct sctp_association *asoc, |
120 | __u32 indication, int gfp); | 120 | __u32 indication, unsigned int __nocast gfp); |
121 | 121 | ||
122 | struct sctp_ulpevent *sctp_ulpevent_make_adaption_indication( | 122 | struct sctp_ulpevent *sctp_ulpevent_make_adaption_indication( |
123 | const struct sctp_association *asoc, int gfp); | 123 | const struct sctp_association *asoc, unsigned int __nocast gfp); |
124 | 124 | ||
125 | struct sctp_ulpevent *sctp_ulpevent_make_rcvmsg(struct sctp_association *asoc, | 125 | struct sctp_ulpevent *sctp_ulpevent_make_rcvmsg(struct sctp_association *asoc, |
126 | struct sctp_chunk *chunk, | 126 | struct sctp_chunk *chunk, |
127 | int gfp); | 127 | unsigned int __nocast gfp); |
128 | 128 | ||
129 | void sctp_ulpevent_read_sndrcvinfo(const struct sctp_ulpevent *event, | 129 | void sctp_ulpevent_read_sndrcvinfo(const struct sctp_ulpevent *event, |
130 | struct msghdr *); | 130 | struct msghdr *); |
diff --git a/include/net/sctp/ulpqueue.h b/include/net/sctp/ulpqueue.h index 961736d29d21..1a60c6d943c1 100644 --- a/include/net/sctp/ulpqueue.h +++ b/include/net/sctp/ulpqueue.h | |||
@@ -62,19 +62,22 @@ struct sctp_ulpq *sctp_ulpq_init(struct sctp_ulpq *, | |||
62 | void sctp_ulpq_free(struct sctp_ulpq *); | 62 | void sctp_ulpq_free(struct sctp_ulpq *); |
63 | 63 | ||
64 | /* Add a new DATA chunk for processing. */ | 64 | /* Add a new DATA chunk for processing. */ |
65 | int sctp_ulpq_tail_data(struct sctp_ulpq *, struct sctp_chunk *, int); | 65 | int sctp_ulpq_tail_data(struct sctp_ulpq *, struct sctp_chunk *, |
66 | unsigned int __nocast); | ||
66 | 67 | ||
67 | /* Add a new event for propagation to the ULP. */ | 68 | /* Add a new event for propagation to the ULP. */ |
68 | int sctp_ulpq_tail_event(struct sctp_ulpq *, struct sctp_ulpevent *ev); | 69 | int sctp_ulpq_tail_event(struct sctp_ulpq *, struct sctp_ulpevent *ev); |
69 | 70 | ||
70 | /* Renege previously received chunks. */ | 71 | /* Renege previously received chunks. */ |
71 | void sctp_ulpq_renege(struct sctp_ulpq *, struct sctp_chunk *, int); | 72 | void sctp_ulpq_renege(struct sctp_ulpq *, struct sctp_chunk *, |
73 | unsigned int __nocast); | ||
72 | 74 | ||
73 | /* Perform partial delivery. */ | 75 | /* Perform partial delivery. */ |
74 | void sctp_ulpq_partial_delivery(struct sctp_ulpq *, struct sctp_chunk *, int); | 76 | void sctp_ulpq_partial_delivery(struct sctp_ulpq *, struct sctp_chunk *, |
77 | unsigned int __nocast); | ||
75 | 78 | ||
76 | /* Abort the partial delivery. */ | 79 | /* Abort the partial delivery. */ |
77 | void sctp_ulpq_abort_pd(struct sctp_ulpq *, int); | 80 | void sctp_ulpq_abort_pd(struct sctp_ulpq *, unsigned int __nocast); |
78 | 81 | ||
79 | /* Clear the partial data delivery condition on this socket. */ | 82 | /* Clear the partial data delivery condition on this socket. */ |
80 | int sctp_clear_pd(struct sock *sk); | 83 | int sctp_clear_pd(struct sock *sk); |
diff --git a/include/net/x25device.h b/include/net/x25device.h index cf36a20ea3c5..d45ae883bd1d 100644 --- a/include/net/x25device.h +++ b/include/net/x25device.h | |||
@@ -5,8 +5,7 @@ | |||
5 | #include <linux/if_packet.h> | 5 | #include <linux/if_packet.h> |
6 | #include <linux/skbuff.h> | 6 | #include <linux/skbuff.h> |
7 | 7 | ||
8 | static inline unsigned short x25_type_trans(struct sk_buff *skb, | 8 | static inline __be16 x25_type_trans(struct sk_buff *skb, struct net_device *dev) |
9 | struct net_device *dev) | ||
10 | { | 9 | { |
11 | skb->mac.raw = skb->data; | 10 | skb->mac.raw = skb->data; |
12 | skb->input_dev = skb->dev = dev; | 11 | skb->input_dev = skb->dev = dev; |
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 | |||