Commit 9ffc7a0ebfcace0ed3eb77fb77e159f6f9443ec5

Authored by Linus Torvalds

Merge master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6

Showing 84 changed files Side-by-side Diff

... ... @@ -596,6 +596,8 @@
596 596  
597 597 endmenu
598 598  
  599 +source "net/Kconfig"
  600 +
599 601 source "drivers/Kconfig"
600 602  
601 603 source "fs/Kconfig"
... ... @@ -700,6 +700,8 @@
700 700  
701 701 endmenu
702 702  
  703 +source "net/Kconfig"
  704 +
703 705 menu "Device Drivers"
704 706  
705 707 source "drivers/base/Kconfig"
... ... @@ -732,7 +734,7 @@
732 734  
733 735 source "drivers/message/i2o/Kconfig"
734 736  
735   -source "net/Kconfig"
  737 +source "drivers/net/Kconfig"
736 738  
737 739 source "drivers/isdn/Kconfig"
738 740  
... ... @@ -183,6 +183,8 @@
183 183  
184 184 endmenu
185 185  
  186 +source "net/Kconfig"
  187 +
186 188 source "drivers/base/Kconfig"
187 189  
188 190 source "drivers/parport/Kconfig"
... ... @@ -193,7 +195,7 @@
193 195  
194 196 source "drivers/md/Kconfig"
195 197  
196   -source "net/Kconfig"
  198 +source "drivers/net/Kconfig"
197 199  
198 200 source "drivers/ide/Kconfig"
199 201  
... ... @@ -122,6 +122,8 @@
122 122  
123 123 endmenu
124 124  
  125 +source "net/Kconfig"
  126 +
125 127 # bring in ETRAX built-in drivers
126 128 menu "Drivers for built-in interfaces"
127 129 source arch/cris/arch-v10/drivers/Kconfig
... ... @@ -149,7 +151,7 @@
149 151  
150 152 source "drivers/message/i2o/Kconfig"
151 153  
152   -source "net/Kconfig"
  154 +source "drivers/net/Kconfig"
153 155  
154 156 source "drivers/isdn/Kconfig"
155 157  
... ... @@ -346,6 +346,8 @@
346 346  
347 347 endmenu
348 348  
  349 +source "net/Kconfig"
  350 +
349 351 source "drivers/Kconfig"
350 352  
351 353 source "fs/Kconfig"
... ... @@ -55,6 +55,8 @@
55 55  
56 56 endmenu
57 57  
  58 +source "net/Kconfig"
  59 +
58 60 source "drivers/base/Kconfig"
59 61  
60 62 source "drivers/mtd/Kconfig"
... ... @@ -65,7 +67,7 @@
65 67  
66 68 source "arch/h8300/Kconfig.ide"
67 69  
68   -source "net/Kconfig"
  70 +source "drivers/net/Kconfig"
69 71  
70 72 #
71 73 # input - input/joystick depends on it. As does USB.
... ... @@ -1285,6 +1285,8 @@
1285 1285  
1286 1286 endmenu
1287 1287  
  1288 +source "net/Kconfig"
  1289 +
1288 1290 source "drivers/Kconfig"
1289 1291  
1290 1292 source "fs/Kconfig"
... ... @@ -423,6 +423,8 @@
423 423  
424 424 endif
425 425  
  426 +source "net/Kconfig"
  427 +
426 428 source "drivers/Kconfig"
427 429  
428 430 source "fs/Kconfig"
... ... @@ -359,6 +359,8 @@
359 359  
360 360 endmenu
361 361  
  362 +source "net/Kconfig"
  363 +
362 364 source "drivers/Kconfig"
363 365  
364 366 source "fs/Kconfig"
... ... @@ -450,6 +450,8 @@
450 450  
451 451 endmenu
452 452  
  453 +source "net/Kconfig"
  454 +
453 455 source "drivers/Kconfig"
454 456  
455 457 menu "Character devices"
arch/m68knommu/Kconfig
... ... @@ -575,6 +575,8 @@
575 575  
576 576 endmenu
577 577  
  578 +source "net/Kconfig"
  579 +
578 580 source "drivers/Kconfig"
579 581  
580 582 source "fs/Kconfig"
... ... @@ -1640,6 +1640,8 @@
1640 1640  
1641 1641 endmenu
1642 1642  
  1643 +source "net/Kconfig"
  1644 +
1643 1645 source "drivers/Kconfig"
1644 1646  
1645 1647 source "fs/Kconfig"
... ... @@ -190,6 +190,8 @@
190 190  
191 191 endmenu
192 192  
  193 +source "net/Kconfig"
  194 +
193 195 source "drivers/Kconfig"
194 196  
195 197 source "fs/Kconfig"
... ... @@ -1355,6 +1355,8 @@
1355 1355 depends on ADVANCED_OPTIONS && 8xx
1356 1356 endmenu
1357 1357  
  1358 +source "net/Kconfig"
  1359 +
1358 1360 source "drivers/Kconfig"
1359 1361  
1360 1362 source "fs/Kconfig"
... ... @@ -429,6 +429,8 @@
429 429  
430 430 endmenu
431 431  
  432 +source "net/Kconfig"
  433 +
432 434 source "drivers/Kconfig"
433 435  
434 436 source "fs/Kconfig"
... ... @@ -465,6 +465,8 @@
465 465  
466 466 endmenu
467 467  
  468 +source "net/Kconfig"
  469 +
468 470 config PCMCIA
469 471 bool
470 472 default n
... ... @@ -475,7 +477,7 @@
475 477  
476 478 source "drivers/s390/Kconfig"
477 479  
478   -source "net/Kconfig"
  480 +source "drivers/net/Kconfig"
479 481  
480 482 source "fs/Kconfig"
481 483  
... ... @@ -784,6 +784,8 @@
784 784  
785 785 endmenu
786 786  
  787 +source "net/Kconfig"
  788 +
787 789 source "drivers/Kconfig"
788 790  
789 791 source "fs/Kconfig"
... ... @@ -268,6 +268,8 @@
268 268  
269 269 endmenu
270 270  
  271 +source "net/Kconfig"
  272 +
271 273 source "drivers/Kconfig"
272 274  
273 275 source "fs/Kconfig"
... ... @@ -268,6 +268,8 @@
268 268  
269 269 endmenu
270 270  
  271 +source "net/Kconfig"
  272 +
271 273 source "drivers/Kconfig"
272 274  
273 275 if !SUN4
arch/sparc64/Kconfig
... ... @@ -525,6 +525,8 @@
525 525  
526 526 endmenu
527 527  
  528 +source "net/Kconfig"
  529 +
528 530 source "drivers/base/Kconfig"
529 531  
530 532 source "drivers/video/Kconfig"
... ... @@ -551,7 +553,7 @@
551 553  
552 554 source "drivers/ieee1394/Kconfig"
553 555  
554   -source "net/Kconfig"
  556 +source "drivers/net/Kconfig"
555 557  
556 558 source "drivers/isdn/Kconfig"
557 559  
... ... @@ -275,6 +275,8 @@
275 275  
276 276 source "init/Kconfig"
277 277  
  278 +source "net/Kconfig"
  279 +
278 280 source "drivers/base/Kconfig"
279 281  
280 282 source "arch/um/Kconfig_char"
... ... @@ -287,7 +289,7 @@
287 289  
288 290 source "arch/um/Kconfig_net"
289 291  
290   -source "net/Kconfig"
  292 +source "drivers/net/Kconfig"
291 293  
292 294 source "fs/Kconfig"
293 295  
... ... @@ -250,6 +250,8 @@
250 250  
251 251 endmenu
252 252  
  253 +source "net/Kconfig"
  254 +
253 255 #############################################################################
254 256  
255 257 source "drivers/base/Kconfig"
... ... @@ -283,7 +285,7 @@
283 285  
284 286 source "drivers/message/i2o/Kconfig"
285 287  
286   -source "net/Kconfig"
  288 +source "drivers/net/Kconfig"
287 289  
288 290 source "drivers/isdn/Kconfig"
289 291  
... ... @@ -515,6 +515,8 @@
515 515  
516 516 endmenu
517 517  
  518 +source "net/Kconfig"
  519 +
518 520 source drivers/Kconfig
519 521  
520 522 source "drivers/firmware/Kconfig"
... ... @@ -228,6 +228,8 @@
228 228  
229 229 endmenu
230 230  
  231 +source "net/Kconfig"
  232 +
231 233 source "drivers/Kconfig"
232 234  
233 235 source "fs/Kconfig"
... ... @@ -28,7 +28,7 @@
28 28  
29 29 source "drivers/macintosh/Kconfig"
30 30  
31   -source "net/Kconfig"
  31 +source "drivers/net/Kconfig"
32 32  
33 33 source "drivers/isdn/Kconfig"
34 34  
... ... @@ -3,6 +3,8 @@
3 3 # Network device configuration
4 4 #
5 5  
  6 +menu "Network device support"
  7 +
6 8 config NETDEVICES
7 9 depends on NET
8 10 bool "Network device support"
... ... @@ -2546,4 +2548,6 @@
2546 2548 ---help---
2547 2549 If you want to log kernel messages over the network, enable this.
2548 2550 See <file:Documentation/networking/netconsole.txt> for details.
  2551 +
  2552 +endmenu
drivers/net/appletalk/Kconfig
1 1 #
2 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 31 config DEV_APPLETALK
5 32 bool "Appletalk interfaces support"
6 33 depends on ATALK
drivers/net/myri_sbus.c
... ... @@ -369,7 +369,7 @@
369 369 * assume 802.3 if the type field is short enough to be a length.
370 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 374 struct ethhdr *eth;
375 375 unsigned char *rawp;
... ... @@ -540,7 +540,7 @@
540 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 545 struct ethhdr *eth;
546 546 unsigned char *rawp;
drivers/net/wan/farsync.c
... ... @@ -861,8 +861,7 @@
861 861 /*
862 862 * Mark it for our own raw sockets interface
863 863 */
864   -static unsigned short farsync_type_trans(struct sk_buff *skb,
865   - struct net_device *dev)
  864 +static __be16 farsync_type_trans(struct sk_buff *skb, struct net_device *dev)
866 865 {
867 866 skb->dev = dev;
868 867 skb->mac.raw = skb->data;
drivers/net/wan/hdlc_cisco.c
... ... @@ -91,8 +91,7 @@
91 91  
92 92  
93 93  
94   -static unsigned short cisco_type_trans(struct sk_buff *skb,
95   - struct net_device *dev)
  94 +static __be16 cisco_type_trans(struct sk_buff *skb, struct net_device *dev)
96 95 {
97 96 hdlc_header *data = (hdlc_header*)skb->data;
98 97  
drivers/net/wan/hdlc_ppp.c
... ... @@ -66,8 +66,7 @@
66 66  
67 67  
68 68  
69   -static unsigned short ppp_type_trans(struct sk_buff *skb,
70   - struct net_device *dev)
  69 +static __be16 ppp_type_trans(struct sk_buff *skb, struct net_device *dev)
71 70 {
72 71 return __constant_htons(ETH_P_WAN_PPP);
73 72 }
drivers/net/wan/hdlc_raw.c
... ... @@ -24,8 +24,7 @@
24 24 #include <linux/hdlc.h>
25 25  
26 26  
27   -static unsigned short raw_type_trans(struct sk_buff *skb,
28   - struct net_device *dev)
  27 +static __be16 raw_type_trans(struct sk_buff *skb, struct net_device *dev)
29 28 {
30 29 return __constant_htons(ETH_P_IP);
31 30 }
drivers/s390/net/qeth_main.c
... ... @@ -2210,7 +2210,7 @@
2210 2210 return NULL;
2211 2211 }
2212 2212  
2213   -static inline unsigned short
  2213 +static inline __be16
2214 2214 qeth_type_trans(struct sk_buff *skb, struct net_device *dev)
2215 2215 {
2216 2216 struct qeth_card *card;
include/linux/etherdevice.h
... ... @@ -33,7 +33,7 @@
33 33 unsigned short type, void *daddr,
34 34 void *saddr, unsigned len);
35 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 37 extern void eth_header_cache_update(struct hh_cache *hh, struct net_device *dev,
38 38 unsigned char * haddr);
39 39 extern int eth_header_cache(struct neighbour *neigh,
include/linux/fddidevice.h
... ... @@ -25,7 +25,7 @@
25 25 #include <linux/if_fddi.h>
26 26  
27 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 29 struct net_device *dev);
30 30 extern struct net_device *alloc_fddidev(int sizeof_priv);
31 31 #endif
include/linux/hdlc.h
... ... @@ -242,8 +242,8 @@
242 242 }
243 243  
244 244  
245   -static __inline__ unsigned short hdlc_type_trans(struct sk_buff *skb,
246   - struct net_device *dev)
  245 +static __inline__ __be16 hdlc_type_trans(struct sk_buff *skb,
  246 + struct net_device *dev)
247 247 {
248 248 hdlc_device *hdlc = dev_to_hdlc(dev);
249 249  
include/linux/netlink.h
... ... @@ -16,6 +16,7 @@
16 16 #define NETLINK_AUDIT 9 /* auditing */
17 17 #define NETLINK_FIB_LOOKUP 10
18 18 #define NETLINK_ROUTE6 11 /* af_inet6 route comm channel */
  19 +#define NETLINK_NETFILTER 12 /* netfilter subsystem */
19 20 #define NETLINK_IP6_FW 13
20 21 #define NETLINK_DNRTMSG 14 /* DECnet routing messages */
21 22 #define NETLINK_KOBJECT_UEVENT 15 /* Kernel messages to userspace */
include/linux/wanrouter.h
... ... @@ -516,8 +516,7 @@
516 516 /* Public functions available for device drivers */
517 517 extern int register_wan_device(struct wan_device *wandev);
518 518 extern int unregister_wan_device(char *name);
519   -unsigned short wanrouter_type_trans(struct sk_buff *skb,
520   - struct net_device *dev);
  519 +__be16 wanrouter_type_trans(struct sk_buff *skb, struct net_device *dev);
521 520 int wanrouter_encapsulate(struct sk_buff *skb, struct net_device *dev,
522 521 unsigned short type);
523 522  
include/net/sctp/sctp.h
... ... @@ -125,7 +125,8 @@
125 125 */
126 126 extern struct sock *sctp_get_ctl_sock(void);
127 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 130 extern struct sctp_pf *sctp_get_pf_specific(sa_family_t family);
130 131 extern int sctp_register_pf(struct sctp_pf *, sa_family_t);
131 132  
include/net/sctp/sm.h
... ... @@ -181,17 +181,17 @@
181 181 int sctp_chunk_iif(const struct sctp_chunk *);
182 182 struct sctp_association *sctp_make_temp_asoc(const struct sctp_endpoint *,
183 183 struct sctp_chunk *,
184   - int gfp);
  184 + unsigned int __nocast gfp);
185 185 __u32 sctp_generate_verification_tag(void);
186 186 void sctp_populate_tie_tags(__u8 *cookie, __u32 curTag, __u32 hisTag);
187 187  
188 188 /* Prototypes for chunk-building functions. */
189 189 struct sctp_chunk *sctp_make_init(const struct sctp_association *,
190 190 const struct sctp_bind_addr *,
191   - int gfp, int vparam_len);
  191 + unsigned int __nocast gfp, int vparam_len);
192 192 struct sctp_chunk *sctp_make_init_ack(const struct sctp_association *,
193 193 const struct sctp_chunk *,
194   - const int gfp,
  194 + const unsigned int __nocast gfp,
195 195 const int unkparam_len);
196 196 struct sctp_chunk *sctp_make_cookie_echo(const struct sctp_association *,
197 197 const struct sctp_chunk *);
... ... @@ -265,7 +265,7 @@
265 265 struct sctp_endpoint *,
266 266 struct sctp_association *asoc,
267 267 void *event_arg,
268   - int gfp);
  268 + unsigned int __nocast gfp);
269 269  
270 270 /* 2nd level prototypes */
271 271 void sctp_generate_t3_rtx_event(unsigned long peer);
... ... @@ -275,7 +275,8 @@
275 275  
276 276 struct sctp_association *sctp_unpack_cookie(const struct sctp_endpoint *,
277 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 280 struct sctp_chunk **err_chk_p);
280 281 int sctp_addip_addr_config(struct sctp_association *, sctp_param_t,
281 282 struct sockaddr_storage*, int);
include/net/sctp/structs.h
... ... @@ -445,7 +445,8 @@
445 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 450 void sctp_ssnmap_free(struct sctp_ssnmap *map);
450 451 void sctp_ssnmap_clear(struct sctp_ssnmap *map);
451 452  
... ... @@ -945,7 +946,8 @@
945 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 951 void sctp_transport_set_owner(struct sctp_transport *,
950 952 struct sctp_association *);
951 953 void sctp_transport_route(struct sctp_transport *, union sctp_addr *,
952 954  
... ... @@ -1093,9 +1095,10 @@
1093 1095 void sctp_bind_addr_free(struct sctp_bind_addr *);
1094 1096 int sctp_bind_addr_copy(struct sctp_bind_addr *dest,
1095 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 1100 int sctp_add_bind_addr(struct sctp_bind_addr *, union sctp_addr *,
1098   - int gfp);
  1101 + unsigned int __nocast gfp);
1099 1102 int sctp_del_bind_addr(struct sctp_bind_addr *, union sctp_addr *);
1100 1103 int sctp_bind_addr_match(struct sctp_bind_addr *, const union sctp_addr *,
1101 1104 struct sctp_sock *);
1102 1105  
... ... @@ -1104,9 +1107,10 @@
1104 1107 int addrcnt,
1105 1108 struct sctp_sock *opt);
1106 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 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 1115 sctp_scope_t sctp_scope(const union sctp_addr *);
1112 1116 int sctp_in_scope(const union sctp_addr *addr, const sctp_scope_t scope);
... ... @@ -1235,7 +1239,7 @@
1235 1239 }
1236 1240  
1237 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 1243 void sctp_endpoint_free(struct sctp_endpoint *);
1240 1244 void sctp_endpoint_put(struct sctp_endpoint *);
1241 1245 void sctp_endpoint_hold(struct sctp_endpoint *);
... ... @@ -1256,7 +1260,7 @@
1256 1260 struct sctp_chunk **err_chunk);
1257 1261 int sctp_process_init(struct sctp_association *, sctp_cid_t cid,
1258 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 1264 __u32 sctp_generate_tag(const struct sctp_endpoint *);
1261 1265 __u32 sctp_generate_tsn(const struct sctp_endpoint *);
1262 1266  
... ... @@ -1719,7 +1723,7 @@
1719 1723  
1720 1724 struct sctp_association *
1721 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 1727 void sctp_association_free(struct sctp_association *);
1724 1728 void sctp_association_put(struct sctp_association *);
1725 1729 void sctp_association_hold(struct sctp_association *);
... ... @@ -1735,7 +1739,7 @@
1735 1739 const union sctp_addr *laddr);
1736 1740 struct sctp_transport *sctp_assoc_add_peer(struct sctp_association *,
1737 1741 const union sctp_addr *address,
1738   - const int gfp,
  1742 + const unsigned int __nocast gfp,
1739 1743 const int peer_state);
1740 1744 void sctp_assoc_del_peer(struct sctp_association *asoc,
1741 1745 const union sctp_addr *addr);
1742 1746  
... ... @@ -1759,9 +1763,11 @@
1759 1763 void sctp_assoc_rwnd_decrease(struct sctp_association *, unsigned);
1760 1764 void sctp_assoc_set_primary(struct sctp_association *,
1761 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 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 1772 int sctp_cmp_addr_exact(const union sctp_addr *ss1,
1767 1773 const union sctp_addr *ss2);
include/net/sctp/ulpevent.h
... ... @@ -88,7 +88,7 @@
88 88 __u16 error,
89 89 __u16 outbound,
90 90 __u16 inbound,
91   - int gfp);
  91 + unsigned int __nocast gfp);
92 92  
93 93 struct sctp_ulpevent *sctp_ulpevent_make_peer_addr_change(
94 94 const struct sctp_association *asoc,
95 95  
96 96  
97 97  
98 98  
99 99  
100 100  
... ... @@ -96,35 +96,35 @@
96 96 int flags,
97 97 int state,
98 98 int error,
99   - int gfp);
  99 + unsigned int __nocast gfp);
100 100  
101 101 struct sctp_ulpevent *sctp_ulpevent_make_remote_error(
102 102 const struct sctp_association *asoc,
103 103 struct sctp_chunk *chunk,
104 104 __u16 flags,
105   - int gfp);
  105 + unsigned int __nocast gfp);
106 106 struct sctp_ulpevent *sctp_ulpevent_make_send_failed(
107 107 const struct sctp_association *asoc,
108 108 struct sctp_chunk *chunk,
109 109 __u16 flags,
110 110 __u32 error,
111   - int gfp);
  111 + unsigned int __nocast gfp);
112 112  
113 113 struct sctp_ulpevent *sctp_ulpevent_make_shutdown_event(
114 114 const struct sctp_association *asoc,
115 115 __u16 flags,
116   - int gfp);
  116 + unsigned int __nocast gfp);
117 117  
118 118 struct sctp_ulpevent *sctp_ulpevent_make_pdapi(
119 119 const struct sctp_association *asoc,
120   - __u32 indication, int gfp);
  120 + __u32 indication, unsigned int __nocast gfp);
121 121  
122 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 125 struct sctp_ulpevent *sctp_ulpevent_make_rcvmsg(struct sctp_association *asoc,
126 126 struct sctp_chunk *chunk,
127   - int gfp);
  127 + unsigned int __nocast gfp);
128 128  
129 129 void sctp_ulpevent_read_sndrcvinfo(const struct sctp_ulpevent *event,
130 130 struct msghdr *);
include/net/sctp/ulpqueue.h
... ... @@ -62,19 +62,22 @@
62 62 void sctp_ulpq_free(struct sctp_ulpq *);
63 63  
64 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 68 /* Add a new event for propagation to the ULP. */
68 69 int sctp_ulpq_tail_event(struct sctp_ulpq *, struct sctp_ulpevent *ev);
69 70  
70 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 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 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 82 /* Clear the partial data delivery condition on this socket. */
80 83 int sctp_clear_pd(struct sock *sk);
include/net/x25device.h
... ... @@ -5,8 +5,7 @@
5 5 #include <linux/if_packet.h>
6 6 #include <linux/skbuff.h>
7 7  
8   -static inline unsigned short x25_type_trans(struct sk_buff *skb,
9   - struct net_device *dev)
  8 +static inline __be16 x25_type_trans(struct sk_buff *skb, struct net_device *dev)
10 9 {
11 10 skb->mac.raw = skb->data;
12 11 skb->input_dev = skb->dev = dev;
... ... @@ -122,10 +122,10 @@
122 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 127 struct fddihdr *fddi = (struct fddihdr *)skb->data;
128   - unsigned short type;
  128 + __be16 type;
129 129  
130 130 /*
131 131 * Set mac.raw field to point to FC byte, set data field to point
  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.
... ... @@ -578,6 +578,14 @@
578 578 if (!vlandev)
579 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 589 if ((vlandev->state & VLAN_LINK_STATE_MASK) != flgs) {
582 590 vlandev->state = (vlandev->state &~ VLAN_LINK_STATE_MASK)
583 591 | flgs;
... ... @@ -2,7 +2,7 @@
2 2 # Network configuration
3 3 #
4 4  
5   -menu "Networking support"
  5 +menu "Networking"
6 6  
7 7 config NET
8 8 bool "Networking support"
... ... @@ -10,7 +10,9 @@
10 10 Unless you really know what you are doing, you should say Y here.
11 11 The reason is that some programs need kernel networking support even
12 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 16 should consider updating your networking tools too because changes
15 17 in the kernel and the tools often go hand in hand. The tools are
16 18 contained in the package net-tools, the location and version number
17 19  
18 20  
19 21  
... ... @@ -20,58 +22,15 @@
20 22 recommended to read the NET-HOWTO, available from
21 23 <http://www.tldp.org/docs.html#howto>.
22 24  
  25 +# Make sure that all config symbols are dependent on NET
  26 +if NET
  27 +
23 28 menu "Networking options"
24   - depends on NET
25 29  
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.
  30 +source "net/packet/Kconfig"
  31 +source "net/unix/Kconfig"
  32 +source "net/xfrm/Kconfig"
33 33  
34   - To compile this driver as a module, choose M here: the module will
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   -
73   - Say Y unless you know what you are doing.
74   -
75 34 config INET
76 35 bool "TCP/IP networking"
77 36 ---help---
78 37  
79 38  
... ... @@ -94,30 +53,12 @@
94 53  
95 54 Short answer: say Y.
96 55  
  56 +if INET
97 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 58 source "net/ipv6/Kconfig"
120 59  
  60 +endif # if INET
  61 +
121 62 menuconfig NETFILTER
122 63 bool "Network packet filtering (replaces ipchains)"
123 64 ---help---
124 65  
125 66  
126 67  
127 68  
128 69  
129 70  
... ... @@ -206,270 +147,17 @@
206 147  
207 148 endif
208 149  
209   -config XFRM
210   - bool
211   - depends on NET
212   -
213   -source "net/xfrm/Kconfig"
214   -
215 150 source "net/sctp/Kconfig"
216   -
217   -config ATM
218   - tristate "Asynchronous Transfer Mode (ATM) (EXPERIMENTAL)"
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   -
  151 +source "net/atm/Kconfig"
  152 +source "net/bridge/Kconfig"
  153 +source "net/8021q/Kconfig"
355 154 source "net/decnet/Kconfig"
356   -
357 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 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 157 source "drivers/net/appletalk/Kconfig"
  158 +source "net/x25/Kconfig"
  159 +source "net/lapb/Kconfig"
422 160  
423   -config X25
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   -
473 161 config NET_DIVERT
474 162 bool "Frame Diverter (EXPERIMENTAL)"
475 163 depends on EXPERIMENTAL
476 164  
... ... @@ -496,107 +184,10 @@
496 184  
497 185 If unsure, say N.
498 186  
499   -config ECONET
500   - tristate "Acorn Econet/AUN protocols (EXPERIMENTAL)"
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   -
  187 +source "net/econet/Kconfig"
  188 +source "net/wanrouter/Kconfig"
596 189 source "net/sched/Kconfig"
597 190  
598   -endmenu
599   -
600 191 menu "Network testing"
601 192  
602 193 config NET_PKTGEN
603 194  
604 195  
... ... @@ -635,12 +226,9 @@
635 226 def_bool NETPOLL
636 227  
637 228 source "net/ax25/Kconfig"
638   -
639 229 source "net/irda/Kconfig"
640   -
641 230 source "net/bluetooth/Kconfig"
642 231  
643   -source "drivers/net/Kconfig"
644   -
645   -endmenu
  232 +endif # if NET
  233 +endmenu # Networking
  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.
... ... @@ -289,8 +289,7 @@
289 289 * This is similar to eth_type_trans, which cannot be used because of
290 290 * our dev->hard_header_len
291 291 */
292   -static inline unsigned short br_type_trans(struct sk_buff *skb,
293   - struct net_device *dev)
  292 +static inline __be16 br_type_trans(struct sk_buff *skb, struct net_device *dev)
294 293 {
295 294 struct ethhdr *eth;
296 295 unsigned char *rawp;
  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.
1 1 #
2 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 27 config DECNET_ROUTER
5 28 bool "DECnet: router support (EXPERIMENTAL)"
6 29 depends on DECNET && EXPERIMENTAL
  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.
... ... @@ -155,7 +155,7 @@
155 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 160 struct ethhdr *eth;
161 161 unsigned char *rawp;
... ... @@ -3,7 +3,6 @@
3 3 #
4 4 config IP_MULTICAST
5 5 bool "IP: multicasting"
6   - depends on INET
7 6 help
8 7 This is code for addressing several networked computers at once,
9 8 enlarging your kernel by about 2 KB. You need multicasting if you
... ... @@ -17,7 +16,6 @@
17 16  
18 17 config IP_ADVANCED_ROUTER
19 18 bool "IP: advanced router"
20   - depends on INET
21 19 ---help---
22 20 If you intend to run your Linux box mostly as a router, i.e. as a
23 21 computer that forwards and redistributes network packets, say Y; you
... ... @@ -183,7 +181,6 @@
183 181  
184 182 config IP_PNP
185 183 bool "IP: kernel level autoconfiguration"
186   - depends on INET
187 184 help
188 185 This enables automatic configuration of IP addresses of devices and
189 186 of the routing table during kernel boot, based on either information
... ... @@ -242,7 +239,6 @@
242 239 # bool ' IP: ARP support' CONFIG_IP_PNP_ARP
243 240 config NET_IPIP
244 241 tristate "IP: tunneling"
245   - depends on INET
246 242 select INET_TUNNEL
247 243 ---help---
248 244 Tunneling means encapsulating data of one protocol type within
... ... @@ -260,7 +256,6 @@
260 256  
261 257 config NET_IPGRE
262 258 tristate "IP: GRE tunnels over IP"
263   - depends on INET
264 259 select XFRM
265 260 help
266 261 Tunneling means encapsulating data of one protocol type within
... ... @@ -319,7 +314,7 @@
319 314  
320 315 config ARPD
321 316 bool "IP: ARP daemon support (EXPERIMENTAL)"
322   - depends on INET && EXPERIMENTAL
  317 + depends on EXPERIMENTAL
323 318 ---help---
324 319 Normally, the kernel maintains an internal cache which maps IP
325 320 addresses to hardware addresses on the local network, so that
... ... @@ -344,7 +339,6 @@
344 339  
345 340 config SYN_COOKIES
346 341 bool "IP: TCP syncookie support (disabled per default)"
347   - depends on INET
348 342 ---help---
349 343 Normal TCP/IP networking is open to an attack known as "SYN
350 344 flooding". This denial-of-service attack prevents legitimate remote
... ... @@ -381,7 +375,6 @@
381 375  
382 376 config INET_AH
383 377 tristate "IP: AH transformation"
384   - depends on INET
385 378 select XFRM
386 379 select CRYPTO
387 380 select CRYPTO_HMAC
... ... @@ -394,7 +387,6 @@
394 387  
395 388 config INET_ESP
396 389 tristate "IP: ESP transformation"
397   - depends on INET
398 390 select XFRM
399 391 select CRYPTO
400 392 select CRYPTO_HMAC
... ... @@ -408,7 +400,6 @@
408 400  
409 401 config INET_IPCOMP
410 402 tristate "IP: IPComp transformation"
411   - depends on INET
412 403 select XFRM
413 404 select INET_TUNNEL
414 405 select CRYPTO
... ... @@ -421,7 +412,6 @@
421 412  
422 413 config INET_TUNNEL
423 414 tristate "IP: tunnel transformation"
424   - depends on INET
425 415 select XFRM
426 416 ---help---
427 417 Support for generic IP tunnel transformation, which is required by
... ... @@ -431,7 +421,6 @@
431 421  
432 422 config IP_TCPDIAG
433 423 tristate "IP: TCP socket monitoring interface"
434   - depends on INET
435 424 default y
436 425 ---help---
437 426 Support for TCP socket monitoring interface used by native Linux
... ... @@ -447,7 +436,6 @@
447 436  
448 437 config TCP_CONG_ADVANCED
449 438 bool "TCP: advanced congestion control"
450   - depends on INET
451 439 ---help---
452 440 Support for selection of various TCP congestion control
453 441 modules.
... ... @@ -463,7 +451,6 @@
463 451  
464 452 config TCP_CONG_BIC
465 453 tristate "Binary Increase Congestion (BIC) control"
466   - depends on INET
467 454 default y
468 455 ---help---
469 456 BIC-TCP is a sender-side only change that ensures a linear RTT
... ... @@ -478,7 +465,6 @@
478 465  
479 466 config TCP_CONG_WESTWOOD
480 467 tristate "TCP Westwood+"
481   - depends on INET
482 468 default m
483 469 ---help---
484 470 TCP Westwood+ is a sender-side only modification of the TCP Reno
... ... @@ -493,7 +479,6 @@
493 479  
494 480 config TCP_CONG_HTCP
495 481 tristate "H-TCP"
496   - depends on INET
497 482 default m
498 483 ---help---
499 484 H-TCP is a send-side only modifications of the TCP Reno
... ... @@ -505,7 +490,7 @@
505 490  
506 491 config TCP_CONG_HSTCP
507 492 tristate "High Speed TCP"
508   - depends on INET && EXPERIMENTAL
  493 + depends on EXPERIMENTAL
509 494 default n
510 495 ---help---
511 496 Sally Floyd's High Speed TCP (RFC 3649) congestion control.
... ... @@ -516,7 +501,7 @@
516 501  
517 502 config TCP_CONG_HYBLA
518 503 tristate "TCP-Hybla congestion control algorithm"
519   - depends on INET && EXPERIMENTAL
  504 + depends on EXPERIMENTAL
520 505 default n
521 506 ---help---
522 507 TCP-Hybla is a sender-side only change that eliminates penalization of
... ... @@ -526,7 +511,7 @@
526 511  
527 512 config TCP_CONG_VEGAS
528 513 tristate "TCP Vegas"
529   - depends on INET && EXPERIMENTAL
  514 + depends on EXPERIMENTAL
530 515 default n
531 516 ---help---
532 517 TCP Vegas is a sender-side only change to TCP that anticipates
... ... @@ -537,7 +522,7 @@
537 522  
538 523 config TCP_CONG_SCALABLE
539 524 tristate "Scalable TCP"
540   - depends on INET && EXPERIMENTAL
  525 + depends on EXPERIMENTAL
541 526 default n
542 527 ---help---
543 528 Scalable TCP is a sender-side only change to TCP which uses a
net/ipv4/ip_output.c
... ... @@ -107,7 +107,6 @@
107 107 newskb->pkt_type = PACKET_LOOPBACK;
108 108 newskb->ip_summed = CHECKSUM_UNNECESSARY;
109 109 BUG_TRAP(newskb->dst);
110   - nf_reset(newskb);
111 110 netif_rx(newskb);
112 111 return 0;
113 112 }
... ... @@ -187,14 +186,6 @@
187 186 kfree_skb(skb);
188 187 skb = skb2;
189 188 }
190   -
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 189  
199 190 if (hh) {
200 191 int hh_alen;
net/ipv4/ipvs/Kconfig
... ... @@ -2,11 +2,11 @@
2 2 # IP Virtual Server configuration
3 3 #
4 4 menu "IP: Virtual Server Configuration"
5   - depends on INET && NETFILTER
  5 + depends on NETFILTER
6 6  
7 7 config IP_VS
8 8 tristate "IP virtual server support (EXPERIMENTAL)"
9   - depends on INET && NETFILTER
  9 + depends on NETFILTER
10 10 ---help---
11 11 IP Virtual Server support will let you build a high-performance
12 12 virtual server based on cluster of two or more real servers. This
net/ipv4/ipvs/ip_vs_conn.c
... ... @@ -758,7 +758,7 @@
758 758 return 1;
759 759 }
760 760  
761   -
  761 +/* Called from keventd and must protect itself from softirqs */
762 762 void ip_vs_random_dropentry(void)
763 763 {
764 764 int idx;
... ... @@ -773,7 +773,7 @@
773 773 /*
774 774 * Lock is actually needed in this loop.
775 775 */
776   - ct_write_lock(hash);
  776 + ct_write_lock_bh(hash);
777 777  
778 778 list_for_each_entry(cp, &ip_vs_conn_tab[hash], c_list) {
779 779 if (!cp->cport && !(cp->flags & IP_VS_CONN_F_NO_CPORT))
... ... @@ -806,7 +806,7 @@
806 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  
net/ipv4/ipvs/ip_vs_ctl.c
... ... @@ -90,7 +90,8 @@
90 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 96 static void update_defense_level(void)
96 97 {
... ... @@ -110,6 +111,8 @@
110 111  
111 112 nomem = (availmem < sysctl_ip_vs_amemthresh);
112 113  
  114 + local_bh_disable();
  115 +
113 116 /* drop_entry */
114 117 spin_lock(&__ip_vs_dropentry_lock);
115 118 switch (sysctl_ip_vs_drop_entry) {
... ... @@ -206,6 +209,8 @@
206 209 if (to_change >= 0)
207 210 ip_vs_protocol_timeout_change(sysctl_ip_vs_secure_tcp>1);
208 211 write_unlock(&__ip_vs_securetcp_lock);
  212 +
  213 + local_bh_enable();
209 214 }
210 215  
211 216  
212 217  
... ... @@ -1360,9 +1365,7 @@
1360 1365 /* Restore the correct value */
1361 1366 *valp = val;
1362 1367 } else {
1363   - local_bh_disable();
1364 1368 update_defense_level();
1365   - local_bh_enable();
1366 1369 }
1367 1370 }
1368 1371 return rc;
net/ipv4/netfilter/ip_conntrack_standalone.c
... ... @@ -432,6 +432,13 @@
432 432 const struct net_device *out,
433 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 442 /* Gather fragments. */
436 443 if ((*pskb)->nh.iph->frag_off & htons(IP_MF|IP_OFFSET)) {
437 444 *pskb = ip_ct_gather_frags(*pskb,
... ... @@ -1685,7 +1685,7 @@
1685 1685 printk(KERN_WARNING "martian source %u.%u.%u.%u from "
1686 1686 "%u.%u.%u.%u, on dev %s\n",
1687 1687 NIPQUAD(daddr), NIPQUAD(saddr), dev->name);
1688   - if (dev->hard_header_len) {
  1688 + if (dev->hard_header_len && skb->mac.raw) {
1689 1689 int i;
1690 1690 unsigned char *p = skb->mac.raw;
1691 1691 printk(KERN_WARNING "ll header: ");
1 1 #
2 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 24 config IPV6_PRIVACY
5 25 bool "IPv6: Privacy Extensions (RFC 3041) support"
6 26 depends on IPV6
1 1 #
2 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 37 config IPX_INTERN
5 38 bool "IPX: Full internal IPX network"
6 39 depends on IPX
  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.
  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.
net/packet/af_packet.c
... ... @@ -274,6 +274,9 @@
274 274 dst_release(skb->dst);
275 275 skb->dst = NULL;
276 276  
  277 + /* drop conntrack reference */
  278 + nf_reset(skb);
  279 +
277 280 spkt = (struct sockaddr_pkt*)skb->cb;
278 281  
279 282 skb_push(skb, skb->data-skb->mac.raw);
... ... @@ -516,6 +519,9 @@
516 519 skb->dev = NULL;
517 520 dst_release(skb->dst);
518 521 skb->dst = NULL;
  522 +
  523 + /* drop conntrack reference */
  524 + nf_reset(skb);
519 525  
520 526 spin_lock(&sk->sk_receive_queue.lock);
521 527 po->stats.tp_packets++;
1 1 #
2 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 41 choice
5 42 prompt "Packet scheduler clock source"
6 43 depends on NET_SCHED
net/sctp/associola.c
... ... @@ -71,7 +71,7 @@
71 71 const struct sctp_endpoint *ep,
72 72 const struct sock *sk,
73 73 sctp_scope_t scope,
74   - int gfp)
  74 + unsigned int __nocast gfp)
75 75 {
76 76 struct sctp_sock *sp;
77 77 int i;
... ... @@ -272,7 +272,8 @@
272 272 /* Allocate and initialize a new association */
273 273 struct sctp_association *sctp_association_new(const struct sctp_endpoint *ep,
274 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 278 struct sctp_association *asoc;
278 279  
... ... @@ -478,7 +479,7 @@
478 479 /* Add a transport address to an association. */
479 480 struct sctp_transport *sctp_assoc_add_peer(struct sctp_association *asoc,
480 481 const union sctp_addr *addr,
481   - const int gfp,
  482 + const unsigned int __nocast gfp,
482 483 const int peer_state)
483 484 {
484 485 struct sctp_transport *peer;
... ... @@ -1229,7 +1230,8 @@
1229 1230 /* Build the bind address list for the association based on info from the
1230 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 1236 sctp_scope_t scope;
1235 1237 int flags;
... ... @@ -1251,7 +1253,8 @@
1251 1253  
1252 1254 /* Build the association's bind address list from the cookie. */
1253 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 1259 int var_size2 = ntohs(cookie->peer_init->chunk_hdr.length);
1257 1260 int var_size3 = cookie->raw_addr_list_len;
net/sctp/bind_addr.c
... ... @@ -53,7 +53,8 @@
53 53  
54 54 /* Forward declarations for internal helpers. */
55 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 58 static void sctp_bind_addr_clean(struct sctp_bind_addr *);
58 59  
59 60 /* First Level Abstractions. */
... ... @@ -63,7 +64,8 @@
63 64 */
64 65 int sctp_bind_addr_copy(struct sctp_bind_addr *dest,
65 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 70 struct sctp_sockaddr_entry *addr;
69 71 struct list_head *pos;
... ... @@ -144,7 +146,7 @@
144 146  
145 147 /* Add an address to the bind address list in the SCTP_bind_addr structure. */
146 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 151 struct sctp_sockaddr_entry *addr;
150 152  
... ... @@ -197,7 +199,8 @@
197 199 * The second argument is the return value for the length.
198 200 */
199 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 205 union sctp_params addrparms;
203 206 union sctp_params retval;
... ... @@ -249,7 +252,7 @@
249 252 * address parameters).
250 253 */
251 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 257 union sctp_addr_param *rawaddr;
255 258 struct sctp_paramhdr *param;
... ... @@ -347,7 +350,8 @@
347 350 /* Copy out addresses from the global local address list. */
348 351 static int sctp_copy_one_addr(struct sctp_bind_addr *dest,
349 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 356 int error = 0;
353 357  
... ... @@ -62,7 +62,7 @@
62 62 }
63 63  
64 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 67 struct sctp_datamsg *msg;
68 68 msg = kmalloc(sizeof(struct sctp_datamsg), gfp);
net/sctp/endpointola.c
... ... @@ -67,7 +67,8 @@
67 67 * Initialize the base fields of the endpoint structure.
68 68 */
69 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 73 struct sctp_sock *sp = sctp_sk(sk);
73 74 memset(ep, 0, sizeof(struct sctp_endpoint));
... ... @@ -137,7 +138,8 @@
137 138 /* Create a sctp_endpoint with all that boring stuff initialized.
138 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 144 struct sctp_endpoint *ep;
143 145  
... ... @@ -219,7 +219,7 @@
219 219  
220 220 /* Copy the local addresses which are valid for 'scope' into 'bp'. */
221 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 224 struct sctp_sockaddr_entry *addr;
225 225 int error = 0;
net/sctp/sm_make_chunk.c
... ... @@ -78,7 +78,7 @@
78 78 static int sctp_process_param(struct sctp_association *asoc,
79 79 union sctp_params param,
80 80 const union sctp_addr *peer_addr,
81   - int gfp);
  81 + unsigned int __nocast gfp);
82 82  
83 83 /* What was the inbound interface for this chunk? */
84 84 int sctp_chunk_iif(const struct sctp_chunk *chunk)
... ... @@ -174,7 +174,7 @@
174 174 */
175 175 struct sctp_chunk *sctp_make_init(const struct sctp_association *asoc,
176 176 const struct sctp_bind_addr *bp,
177   - int gfp, int vparam_len)
  177 + unsigned int __nocast gfp, int vparam_len)
178 178 {
179 179 sctp_inithdr_t init;
180 180 union sctp_params addrs;
... ... @@ -261,7 +261,7 @@
261 261  
262 262 struct sctp_chunk *sctp_make_init_ack(const struct sctp_association *asoc,
263 263 const struct sctp_chunk *chunk,
264   - int gfp, int unkparam_len)
  264 + unsigned int __nocast gfp, int unkparam_len)
265 265 {
266 266 sctp_inithdr_t initack;
267 267 struct sctp_chunk *retval;
... ... @@ -1233,7 +1233,8 @@
1233 1233  
1234 1234 /* Create a CLOSED association to use with an incoming packet. */
1235 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 1239 struct sctp_association *asoc;
1239 1240 struct sk_buff *skb;
... ... @@ -1348,7 +1349,7 @@
1348 1349 struct sctp_association *sctp_unpack_cookie(
1349 1350 const struct sctp_endpoint *ep,
1350 1351 const struct sctp_association *asoc,
1351   - struct sctp_chunk *chunk, int gfp,
  1352 + struct sctp_chunk *chunk, unsigned int __nocast gfp,
1352 1353 int *error, struct sctp_chunk **errp)
1353 1354 {
1354 1355 struct sctp_association *retval = NULL;
... ... @@ -1812,7 +1813,7 @@
1812 1813 */
1813 1814 int sctp_process_init(struct sctp_association *asoc, sctp_cid_t cid,
1814 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 1818 union sctp_params param;
1818 1819 struct sctp_transport *transport;
... ... @@ -1983,7 +1984,7 @@
1983 1984 static int sctp_process_param(struct sctp_association *asoc,
1984 1985 union sctp_params param,
1985 1986 const union sctp_addr *peer_addr,
1986   - int gfp)
  1987 + unsigned int __nocast gfp)
1987 1988 {
1988 1989 union sctp_addr addr;
1989 1990 int i;
net/sctp/sm_sideeffect.c
... ... @@ -63,7 +63,7 @@
63 63 void *event_arg,
64 64 sctp_disposition_t status,
65 65 sctp_cmd_seq_t *commands,
66   - int gfp);
  66 + unsigned int __nocast gfp);
67 67 static int sctp_side_effects(sctp_event_t event_type, sctp_subtype_t subtype,
68 68 sctp_state_t state,
69 69 struct sctp_endpoint *ep,
... ... @@ -71,7 +71,7 @@
71 71 void *event_arg,
72 72 sctp_disposition_t status,
73 73 sctp_cmd_seq_t *commands,
74   - int gfp);
  74 + unsigned int __nocast gfp);
75 75  
76 76 /********************************************************************
77 77 * Helper functions
... ... @@ -497,7 +497,8 @@
497 497 static int sctp_cmd_process_init(sctp_cmd_seq_t *commands,
498 498 struct sctp_association *asoc,
499 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 503 int error;
503 504  
... ... @@ -852,7 +853,7 @@
852 853 struct sctp_endpoint *ep,
853 854 struct sctp_association *asoc,
854 855 void *event_arg,
855   - int gfp)
  856 + unsigned int __nocast gfp)
856 857 {
857 858 sctp_cmd_seq_t commands;
858 859 const sctp_sm_table_entry_t *state_fn;
... ... @@ -897,7 +898,7 @@
897 898 void *event_arg,
898 899 sctp_disposition_t status,
899 900 sctp_cmd_seq_t *commands,
900   - int gfp)
  901 + unsigned int __nocast gfp)
901 902 {
902 903 int error;
903 904  
... ... @@ -985,7 +986,7 @@
985 986 void *event_arg,
986 987 sctp_disposition_t status,
987 988 sctp_cmd_seq_t *commands,
988   - int gfp)
  989 + unsigned int __nocast gfp)
989 990 {
990 991 int error = 0;
991 992 int force;
... ... @@ -57,7 +57,8 @@
57 57 /* Create a new sctp_ssnmap.
58 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 63 struct sctp_ssnmap *retval;
63 64 int size;
net/sctp/transport.c
... ... @@ -57,7 +57,7 @@
57 57 /* Initialize a new transport from provided memory. */
58 58 static struct sctp_transport *sctp_transport_init(struct sctp_transport *peer,
59 59 const union sctp_addr *addr,
60   - int gfp)
  60 + unsigned int __nocast gfp)
61 61 {
62 62 /* Copy in the address. */
63 63 peer->ipaddr = *addr;
... ... @@ -121,7 +121,8 @@
121 121 }
122 122  
123 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 127 struct sctp_transport *transport;
127 128  
... ... @@ -74,7 +74,7 @@
74 74  
75 75 /* Create a new sctp_ulpevent. */
76 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 79 struct sctp_ulpevent *event;
80 80 struct sk_buff *skb;
... ... @@ -136,7 +136,7 @@
136 136 struct sctp_ulpevent *sctp_ulpevent_make_assoc_change(
137 137 const struct sctp_association *asoc,
138 138 __u16 flags, __u16 state, __u16 error, __u16 outbound,
139   - __u16 inbound, int gfp)
  139 + __u16 inbound, unsigned int __nocast gfp)
140 140 {
141 141 struct sctp_ulpevent *event;
142 142 struct sctp_assoc_change *sac;
... ... @@ -237,7 +237,7 @@
237 237 struct sctp_ulpevent *sctp_ulpevent_make_peer_addr_change(
238 238 const struct sctp_association *asoc,
239 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 242 struct sctp_ulpevent *event;
243 243 struct sctp_paddr_change *spc;
... ... @@ -350,7 +350,7 @@
350 350 */
351 351 struct sctp_ulpevent *sctp_ulpevent_make_remote_error(
352 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 355 struct sctp_ulpevent *event;
356 356 struct sctp_remote_error *sre;
... ... @@ -448,7 +448,7 @@
448 448 */
449 449 struct sctp_ulpevent *sctp_ulpevent_make_send_failed(
450 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 453 struct sctp_ulpevent *event;
454 454 struct sctp_send_failed *ssf;
... ... @@ -557,7 +557,7 @@
557 557 */
558 558 struct sctp_ulpevent *sctp_ulpevent_make_shutdown_event(
559 559 const struct sctp_association *asoc,
560   - __u16 flags, int gfp)
  560 + __u16 flags, unsigned int __nocast gfp)
561 561 {
562 562 struct sctp_ulpevent *event;
563 563 struct sctp_shutdown_event *sse;
... ... @@ -620,7 +620,7 @@
620 620 * 5.3.1.6 SCTP_ADAPTION_INDICATION
621 621 */
622 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 625 struct sctp_ulpevent *event;
626 626 struct sctp_adaption_event *sai;
... ... @@ -657,7 +657,7 @@
657 657 */
658 658 struct sctp_ulpevent *sctp_ulpevent_make_rcvmsg(struct sctp_association *asoc,
659 659 struct sctp_chunk *chunk,
660   - int gfp)
  660 + unsigned int __nocast gfp)
661 661 {
662 662 struct sctp_ulpevent *event = NULL;
663 663 struct sk_buff *skb;
... ... @@ -718,7 +718,8 @@
718 718 * various events.
719 719 */
720 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 724 struct sctp_ulpevent *event;
724 725 struct sctp_pdapi_event *pd;
... ... @@ -100,7 +100,7 @@
100 100  
101 101 /* Process an incoming DATA chunk. */
102 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 105 struct sk_buff_head temp;
106 106 sctp_data_chunk_t *hdr;
... ... @@ -778,7 +778,8 @@
778 778  
779 779 /* Partial deliver the first message as there is pressure on rwnd. */
780 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 784 struct sctp_ulpevent *event;
784 785 struct sctp_association *asoc;
... ... @@ -802,7 +803,7 @@
802 803  
803 804 /* Renege some packets to make room for an incoming chunk. */
804 805 void sctp_ulpq_renege(struct sctp_ulpq *ulpq, struct sctp_chunk *chunk,
805   - int gfp)
  806 + unsigned int __nocast gfp)
806 807 {
807 808 struct sctp_association *asoc;
808 809 __u16 needed, freed;
... ... @@ -841,7 +842,7 @@
841 842 /* Notify the application if an association is aborted and in
842 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 847 struct sctp_ulpevent *ev = NULL;
847 848 struct sock *sk;
  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.
net/wanrouter/Kconfig
  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.
net/wanrouter/wanmain.c
... ... @@ -358,10 +358,10 @@
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 363 int cnt = skb->data[0] ? 0 : 1; /* there may be a pad present */
364   - unsigned short ethertype;
  364 + __be16 ethertype;
365 365  
366 366 switch (skb->data[cnt]) {
367 367 case NLPID_IP: /* IP datagramm */
... ... @@ -379,7 +379,7 @@
379 379 skb->data[cnt+3], dev->name);
380 380 return 0;
381 381 }
382   - ethertype = *((unsigned short*)&skb->data[cnt+4]);
  382 + ethertype = *((__be16*)&skb->data[cnt+4]);
383 383 cnt += 6;
384 384 break;
385 385  
  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.
1 1 #
2 2 # XFRM configuration
3 3 #
  4 +config XFRM
  5 + bool
  6 + depends on NET
  7 +
4 8 config XFRM_USER
5 9 tristate "IPsec user configuration interface"
6 10 depends on INET && XFRM
... ... @@ -9,4 +13,14 @@
9 13 by native Linux tools.
10 14  
11 15 If unsure, say Y.
  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.