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

This commit is contained in:
Linus Torvalds 2005-07-12 13:16:40 -07:00
commit 9ffc7a0ebf
84 changed files with 691 additions and 583 deletions

View File

@ -596,6 +596,8 @@ source "fs/Kconfig.binfmt"
endmenu endmenu
source "net/Kconfig"
source "drivers/Kconfig" source "drivers/Kconfig"
source "fs/Kconfig" source "fs/Kconfig"

View File

@ -700,6 +700,8 @@ config APM
endmenu endmenu
source "net/Kconfig"
menu "Device Drivers" menu "Device Drivers"
source "drivers/base/Kconfig" source "drivers/base/Kconfig"
@ -732,7 +734,7 @@ source "drivers/ieee1394/Kconfig"
source "drivers/message/i2o/Kconfig" source "drivers/message/i2o/Kconfig"
source "net/Kconfig" source "drivers/net/Kconfig"
source "drivers/isdn/Kconfig" source "drivers/isdn/Kconfig"

View File

@ -183,6 +183,8 @@ source "mm/Kconfig"
endmenu endmenu
source "net/Kconfig"
source "drivers/base/Kconfig" source "drivers/base/Kconfig"
source "drivers/parport/Kconfig" source "drivers/parport/Kconfig"
@ -193,7 +195,7 @@ source "drivers/block/Kconfig"
source "drivers/md/Kconfig" source "drivers/md/Kconfig"
source "net/Kconfig" source "drivers/net/Kconfig"
source "drivers/ide/Kconfig" source "drivers/ide/Kconfig"

View File

@ -122,6 +122,8 @@ source arch/cris/arch-v10/Kconfig
endmenu endmenu
source "net/Kconfig"
# bring in ETRAX built-in drivers # bring in ETRAX built-in drivers
menu "Drivers for built-in interfaces" menu "Drivers for built-in interfaces"
source arch/cris/arch-v10/drivers/Kconfig source arch/cris/arch-v10/drivers/Kconfig
@ -149,7 +151,7 @@ source "drivers/ieee1394/Kconfig"
source "drivers/message/i2o/Kconfig" source "drivers/message/i2o/Kconfig"
source "net/Kconfig" source "drivers/net/Kconfig"
source "drivers/isdn/Kconfig" source "drivers/isdn/Kconfig"

View File

@ -346,6 +346,8 @@ source "fs/Kconfig.binfmt"
endmenu endmenu
source "net/Kconfig"
source "drivers/Kconfig" source "drivers/Kconfig"
source "fs/Kconfig" source "fs/Kconfig"

View File

@ -55,6 +55,8 @@ source "fs/Kconfig.binfmt"
endmenu endmenu
source "net/Kconfig"
source "drivers/base/Kconfig" source "drivers/base/Kconfig"
source "drivers/mtd/Kconfig" source "drivers/mtd/Kconfig"
@ -65,7 +67,7 @@ source "drivers/ide/Kconfig"
source "arch/h8300/Kconfig.ide" source "arch/h8300/Kconfig.ide"
source "net/Kconfig" source "drivers/net/Kconfig"
# #
# input - input/joystick depends on it. As does USB. # input - input/joystick depends on it. As does USB.

View File

@ -1285,6 +1285,8 @@ source "fs/Kconfig.binfmt"
endmenu endmenu
source "net/Kconfig"
source "drivers/Kconfig" source "drivers/Kconfig"
source "fs/Kconfig" source "fs/Kconfig"

View File

@ -423,6 +423,8 @@ endmenu
endif endif
source "net/Kconfig"
source "drivers/Kconfig" source "drivers/Kconfig"
source "fs/Kconfig" source "fs/Kconfig"

View File

@ -359,6 +359,8 @@ source "fs/Kconfig.binfmt"
endmenu endmenu
source "net/Kconfig"
source "drivers/Kconfig" source "drivers/Kconfig"
source "fs/Kconfig" source "fs/Kconfig"

View File

@ -450,6 +450,8 @@ source "drivers/zorro/Kconfig"
endmenu endmenu
source "net/Kconfig"
source "drivers/Kconfig" source "drivers/Kconfig"
menu "Character devices" menu "Character devices"

View File

@ -575,6 +575,8 @@ config PM
endmenu endmenu
source "net/Kconfig"
source "drivers/Kconfig" source "drivers/Kconfig"
source "fs/Kconfig" source "fs/Kconfig"

View File

@ -1640,6 +1640,8 @@ config PM
endmenu endmenu
source "net/Kconfig"
source "drivers/Kconfig" source "drivers/Kconfig"
source "fs/Kconfig" source "fs/Kconfig"

View File

@ -190,6 +190,8 @@ source "fs/Kconfig.binfmt"
endmenu endmenu
source "net/Kconfig"
source "drivers/Kconfig" source "drivers/Kconfig"
source "fs/Kconfig" source "fs/Kconfig"

View File

@ -1355,6 +1355,8 @@ config PIN_TLB
depends on ADVANCED_OPTIONS && 8xx depends on ADVANCED_OPTIONS && 8xx
endmenu endmenu
source "net/Kconfig"
source "drivers/Kconfig" source "drivers/Kconfig"
source "fs/Kconfig" source "fs/Kconfig"

View File

@ -429,6 +429,8 @@ config CMDLINE
endmenu endmenu
source "net/Kconfig"
source "drivers/Kconfig" source "drivers/Kconfig"
source "fs/Kconfig" source "fs/Kconfig"

View File

@ -465,6 +465,8 @@ config KEXEC
endmenu endmenu
source "net/Kconfig"
config PCMCIA config PCMCIA
bool bool
default n default n
@ -475,7 +477,7 @@ source "drivers/scsi/Kconfig"
source "drivers/s390/Kconfig" source "drivers/s390/Kconfig"
source "net/Kconfig" source "drivers/net/Kconfig"
source "fs/Kconfig" source "fs/Kconfig"

View File

@ -784,6 +784,8 @@ config EMBEDDED_RAMDISK_IMAGE
endmenu endmenu
source "net/Kconfig"
source "drivers/Kconfig" source "drivers/Kconfig"
source "fs/Kconfig" source "fs/Kconfig"

View File

@ -268,6 +268,8 @@ source "fs/Kconfig.binfmt"
endmenu endmenu
source "net/Kconfig"
source "drivers/Kconfig" source "drivers/Kconfig"
source "fs/Kconfig" source "fs/Kconfig"

View File

@ -268,6 +268,8 @@ source "mm/Kconfig"
endmenu endmenu
source "net/Kconfig"
source "drivers/Kconfig" source "drivers/Kconfig"
if !SUN4 if !SUN4

View File

@ -525,6 +525,8 @@ source "mm/Kconfig"
endmenu endmenu
source "net/Kconfig"
source "drivers/base/Kconfig" source "drivers/base/Kconfig"
source "drivers/video/Kconfig" source "drivers/video/Kconfig"
@ -551,7 +553,7 @@ endif
source "drivers/ieee1394/Kconfig" source "drivers/ieee1394/Kconfig"
source "net/Kconfig" source "drivers/net/Kconfig"
source "drivers/isdn/Kconfig" source "drivers/isdn/Kconfig"

View File

@ -275,6 +275,8 @@ endmenu
source "init/Kconfig" source "init/Kconfig"
source "net/Kconfig"
source "drivers/base/Kconfig" source "drivers/base/Kconfig"
source "arch/um/Kconfig_char" source "arch/um/Kconfig_char"
@ -287,7 +289,7 @@ config NETDEVICES
source "arch/um/Kconfig_net" source "arch/um/Kconfig_net"
source "net/Kconfig" source "drivers/net/Kconfig"
source "fs/Kconfig" source "fs/Kconfig"

View File

@ -250,6 +250,8 @@ source "fs/Kconfig.binfmt"
endmenu endmenu
source "net/Kconfig"
############################################################################# #############################################################################
source "drivers/base/Kconfig" source "drivers/base/Kconfig"
@ -283,7 +285,7 @@ source "drivers/ieee1394/Kconfig"
source "drivers/message/i2o/Kconfig" source "drivers/message/i2o/Kconfig"
source "net/Kconfig" source "drivers/net/Kconfig"
source "drivers/isdn/Kconfig" source "drivers/isdn/Kconfig"

View File

@ -515,6 +515,8 @@ config UID16
endmenu endmenu
source "net/Kconfig"
source drivers/Kconfig source drivers/Kconfig
source "drivers/firmware/Kconfig" source "drivers/firmware/Kconfig"

View File

@ -228,6 +228,8 @@ source "fs/Kconfig.binfmt"
endmenu endmenu
source "net/Kconfig"
source "drivers/Kconfig" source "drivers/Kconfig"
source "fs/Kconfig" source "fs/Kconfig"

View File

@ -28,7 +28,7 @@ source "drivers/message/i2o/Kconfig"
source "drivers/macintosh/Kconfig" source "drivers/macintosh/Kconfig"
source "net/Kconfig" source "drivers/net/Kconfig"
source "drivers/isdn/Kconfig" source "drivers/isdn/Kconfig"

View File

@ -3,6 +3,8 @@
# Network device configuration # Network device configuration
# #
menu "Network device support"
config NETDEVICES config NETDEVICES
depends on NET depends on NET
bool "Network device support" bool "Network device support"
@ -2547,3 +2549,4 @@ config NETCONSOLE
If you want to log kernel messages over the network, enable this. If you want to log kernel messages over the network, enable this.
See <file:Documentation/networking/netconsole.txt> for details. See <file:Documentation/networking/netconsole.txt> for details.
endmenu

View File

@ -1,6 +1,33 @@
# #
# Appletalk driver configuration # Appletalk driver configuration
# #
config ATALK
tristate "Appletalk protocol support"
select LLC
---help---
AppleTalk is the protocol that Apple computers can use to communicate
on a network. If your Linux box is connected to such a network and you
wish to connect to it, say Y. You will need to use the netatalk package
so that your Linux box can act as a print and file server for Macs as
well as access AppleTalk printers. Check out
<http://www.zettabyte.net/netatalk/> on the WWW for details.
EtherTalk is the name used for AppleTalk over Ethernet and the
cheaper and slower LocalTalk is AppleTalk over a proprietary Apple
network using serial links. EtherTalk and LocalTalk are fully
supported by Linux.
General information about how to connect Linux, Windows machines and
Macs is on the WWW at <http://www.eats.com/linux_mac_win.html>. The
NET-3-HOWTO, available from
<http://www.tldp.org/docs.html#howto>, contains valuable
information as well.
To compile this driver as a module, choose M here: the module will be
called appletalk. You almost certainly want to compile it as a
module so you can restart your AppleTalk stack without rebooting
your machine. I hear that the GNU boycott of Apple is over, so
even politically correct people are allowed to say Y here.
config DEV_APPLETALK config DEV_APPLETALK
bool "Appletalk interfaces support" bool "Appletalk interfaces support"
depends on ATALK depends on ATALK

View File

@ -369,7 +369,7 @@ static void myri_tx(struct myri_eth *mp, struct net_device *dev)
* assume 802.3 if the type field is short enough to be a length. * assume 802.3 if the type field is short enough to be a length.
* This is normal practice and works for any 'now in use' protocol. * This is normal practice and works for any 'now in use' protocol.
*/ */
static unsigned short myri_type_trans(struct sk_buff *skb, struct net_device *dev) static __be16 myri_type_trans(struct sk_buff *skb, struct net_device *dev)
{ {
struct ethhdr *eth; struct ethhdr *eth;
unsigned char *rawp; unsigned char *rawp;

View File

@ -540,7 +540,7 @@ plip_receive(unsigned short nibble_timeout, struct net_device *dev,
* in far too many old systems not all even running Linux. * in far too many old systems not all even running Linux.
*/ */
static unsigned short plip_type_trans(struct sk_buff *skb, struct net_device *dev) static __be16 plip_type_trans(struct sk_buff *skb, struct net_device *dev)
{ {
struct ethhdr *eth; struct ethhdr *eth;
unsigned char *rawp; unsigned char *rawp;

View File

@ -861,8 +861,7 @@ fst_tx_dma_complete(struct fst_card_info *card, struct fst_port_info *port,
/* /*
* Mark it for our own raw sockets interface * Mark it for our own raw sockets interface
*/ */
static unsigned short farsync_type_trans(struct sk_buff *skb, static __be16 farsync_type_trans(struct sk_buff *skb, struct net_device *dev)
struct net_device *dev)
{ {
skb->dev = dev; skb->dev = dev;
skb->mac.raw = skb->data; skb->mac.raw = skb->data;

View File

@ -91,8 +91,7 @@ static void cisco_keepalive_send(struct net_device *dev, u32 type,
static unsigned short cisco_type_trans(struct sk_buff *skb, static __be16 cisco_type_trans(struct sk_buff *skb, struct net_device *dev)
struct net_device *dev)
{ {
hdlc_header *data = (hdlc_header*)skb->data; hdlc_header *data = (hdlc_header*)skb->data;

View File

@ -66,8 +66,7 @@ static void ppp_close(struct net_device *dev)
static unsigned short ppp_type_trans(struct sk_buff *skb, static __be16 ppp_type_trans(struct sk_buff *skb, struct net_device *dev)
struct net_device *dev)
{ {
return __constant_htons(ETH_P_WAN_PPP); return __constant_htons(ETH_P_WAN_PPP);
} }

View File

@ -24,8 +24,7 @@
#include <linux/hdlc.h> #include <linux/hdlc.h>
static unsigned short raw_type_trans(struct sk_buff *skb, static __be16 raw_type_trans(struct sk_buff *skb, struct net_device *dev)
struct net_device *dev)
{ {
return __constant_htons(ETH_P_IP); return __constant_htons(ETH_P_IP);
} }

View File

@ -2210,7 +2210,7 @@ no_mem:
return NULL; return NULL;
} }
static inline unsigned short static inline __be16
qeth_type_trans(struct sk_buff *skb, struct net_device *dev) qeth_type_trans(struct sk_buff *skb, struct net_device *dev)
{ {
struct qeth_card *card; struct qeth_card *card;

View File

@ -33,7 +33,7 @@ extern int eth_header(struct sk_buff *skb, struct net_device *dev,
unsigned short type, void *daddr, unsigned short type, void *daddr,
void *saddr, unsigned len); void *saddr, unsigned len);
extern int eth_rebuild_header(struct sk_buff *skb); extern int eth_rebuild_header(struct sk_buff *skb);
extern unsigned short eth_type_trans(struct sk_buff *skb, struct net_device *dev); extern __be16 eth_type_trans(struct sk_buff *skb, struct net_device *dev);
extern void eth_header_cache_update(struct hh_cache *hh, struct net_device *dev, extern void eth_header_cache_update(struct hh_cache *hh, struct net_device *dev,
unsigned char * haddr); unsigned char * haddr);
extern int eth_header_cache(struct neighbour *neigh, extern int eth_header_cache(struct neighbour *neigh,

View File

@ -25,7 +25,7 @@
#include <linux/if_fddi.h> #include <linux/if_fddi.h>
#ifdef __KERNEL__ #ifdef __KERNEL__
extern unsigned short fddi_type_trans(struct sk_buff *skb, extern __be16 fddi_type_trans(struct sk_buff *skb,
struct net_device *dev); struct net_device *dev);
extern struct net_device *alloc_fddidev(int sizeof_priv); extern struct net_device *alloc_fddidev(int sizeof_priv);
#endif #endif

View File

@ -242,8 +242,8 @@ static __inline__ struct net_device_stats *hdlc_stats(struct net_device *dev)
} }
static __inline__ unsigned short hdlc_type_trans(struct sk_buff *skb, static __inline__ __be16 hdlc_type_trans(struct sk_buff *skb,
struct net_device *dev) struct net_device *dev)
{ {
hdlc_device *hdlc = dev_to_hdlc(dev); hdlc_device *hdlc = dev_to_hdlc(dev);

View File

@ -16,6 +16,7 @@
#define NETLINK_AUDIT 9 /* auditing */ #define NETLINK_AUDIT 9 /* auditing */
#define NETLINK_FIB_LOOKUP 10 #define NETLINK_FIB_LOOKUP 10
#define NETLINK_ROUTE6 11 /* af_inet6 route comm channel */ #define NETLINK_ROUTE6 11 /* af_inet6 route comm channel */
#define NETLINK_NETFILTER 12 /* netfilter subsystem */
#define NETLINK_IP6_FW 13 #define NETLINK_IP6_FW 13
#define NETLINK_DNRTMSG 14 /* DECnet routing messages */ #define NETLINK_DNRTMSG 14 /* DECnet routing messages */
#define NETLINK_KOBJECT_UEVENT 15 /* Kernel messages to userspace */ #define NETLINK_KOBJECT_UEVENT 15 /* Kernel messages to userspace */

View File

@ -516,8 +516,7 @@ struct wan_device {
/* Public functions available for device drivers */ /* Public functions available for device drivers */
extern int register_wan_device(struct wan_device *wandev); extern int register_wan_device(struct wan_device *wandev);
extern int unregister_wan_device(char *name); extern int unregister_wan_device(char *name);
unsigned short wanrouter_type_trans(struct sk_buff *skb, __be16 wanrouter_type_trans(struct sk_buff *skb, struct net_device *dev);
struct net_device *dev);
int wanrouter_encapsulate(struct sk_buff *skb, struct net_device *dev, int wanrouter_encapsulate(struct sk_buff *skb, struct net_device *dev,
unsigned short type); unsigned short type);

View File

@ -125,7 +125,8 @@
*/ */
extern struct sock *sctp_get_ctl_sock(void); extern struct sock *sctp_get_ctl_sock(void);
extern int sctp_copy_local_addr_list(struct sctp_bind_addr *, extern int sctp_copy_local_addr_list(struct sctp_bind_addr *,
sctp_scope_t, int gfp, int flags); sctp_scope_t, unsigned int __nocast gfp,
int flags);
extern struct sctp_pf *sctp_get_pf_specific(sa_family_t family); extern struct sctp_pf *sctp_get_pf_specific(sa_family_t family);
extern int sctp_register_pf(struct sctp_pf *, sa_family_t); extern int sctp_register_pf(struct sctp_pf *, sa_family_t);

View File

@ -181,17 +181,17 @@ const sctp_sm_table_entry_t *sctp_sm_lookup_event(sctp_event_t,
int sctp_chunk_iif(const struct sctp_chunk *); int sctp_chunk_iif(const struct sctp_chunk *);
struct sctp_association *sctp_make_temp_asoc(const struct sctp_endpoint *, struct sctp_association *sctp_make_temp_asoc(const struct sctp_endpoint *,
struct sctp_chunk *, struct sctp_chunk *,
int gfp); unsigned int __nocast gfp);
__u32 sctp_generate_verification_tag(void); __u32 sctp_generate_verification_tag(void);
void sctp_populate_tie_tags(__u8 *cookie, __u32 curTag, __u32 hisTag); void sctp_populate_tie_tags(__u8 *cookie, __u32 curTag, __u32 hisTag);
/* Prototypes for chunk-building functions. */ /* Prototypes for chunk-building functions. */
struct sctp_chunk *sctp_make_init(const struct sctp_association *, struct sctp_chunk *sctp_make_init(const struct sctp_association *,
const struct sctp_bind_addr *, const struct sctp_bind_addr *,
int gfp, int vparam_len); unsigned int __nocast gfp, int vparam_len);
struct sctp_chunk *sctp_make_init_ack(const struct sctp_association *, struct sctp_chunk *sctp_make_init_ack(const struct sctp_association *,
const struct sctp_chunk *, const struct sctp_chunk *,
const int gfp, const unsigned int __nocast gfp,
const int unkparam_len); const int unkparam_len);
struct sctp_chunk *sctp_make_cookie_echo(const struct sctp_association *, struct sctp_chunk *sctp_make_cookie_echo(const struct sctp_association *,
const struct sctp_chunk *); const struct sctp_chunk *);
@ -265,7 +265,7 @@ int sctp_do_sm(sctp_event_t event_type, sctp_subtype_t subtype,
struct sctp_endpoint *, struct sctp_endpoint *,
struct sctp_association *asoc, struct sctp_association *asoc,
void *event_arg, void *event_arg,
int gfp); unsigned int __nocast gfp);
/* 2nd level prototypes */ /* 2nd level prototypes */
void sctp_generate_t3_rtx_event(unsigned long peer); void sctp_generate_t3_rtx_event(unsigned long peer);
@ -275,7 +275,8 @@ void sctp_ootb_pkt_free(struct sctp_packet *);
struct sctp_association *sctp_unpack_cookie(const struct sctp_endpoint *, struct sctp_association *sctp_unpack_cookie(const struct sctp_endpoint *,
const struct sctp_association *, const struct sctp_association *,
struct sctp_chunk *, int gfp, int *err, struct sctp_chunk *,
unsigned int __nocast gfp, int *err,
struct sctp_chunk **err_chk_p); struct sctp_chunk **err_chk_p);
int sctp_addip_addr_config(struct sctp_association *, sctp_param_t, int sctp_addip_addr_config(struct sctp_association *, sctp_param_t,
struct sockaddr_storage*, int); struct sockaddr_storage*, int);

View File

@ -445,7 +445,8 @@ struct sctp_ssnmap {
int malloced; int malloced;
}; };
struct sctp_ssnmap *sctp_ssnmap_new(__u16 in, __u16 out, int gfp); struct sctp_ssnmap *sctp_ssnmap_new(__u16 in, __u16 out,
unsigned int __nocast gfp);
void sctp_ssnmap_free(struct sctp_ssnmap *map); void sctp_ssnmap_free(struct sctp_ssnmap *map);
void sctp_ssnmap_clear(struct sctp_ssnmap *map); void sctp_ssnmap_clear(struct sctp_ssnmap *map);
@ -945,7 +946,8 @@ struct sctp_transport {
} cacc; } cacc;
}; };
struct sctp_transport *sctp_transport_new(const union sctp_addr *, int); struct sctp_transport *sctp_transport_new(const union sctp_addr *,
unsigned int __nocast);
void sctp_transport_set_owner(struct sctp_transport *, void sctp_transport_set_owner(struct sctp_transport *,
struct sctp_association *); struct sctp_association *);
void sctp_transport_route(struct sctp_transport *, union sctp_addr *, 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);
void sctp_bind_addr_free(struct sctp_bind_addr *); void sctp_bind_addr_free(struct sctp_bind_addr *);
int sctp_bind_addr_copy(struct sctp_bind_addr *dest, int sctp_bind_addr_copy(struct sctp_bind_addr *dest,
const struct sctp_bind_addr *src, const struct sctp_bind_addr *src,
sctp_scope_t scope, int gfp,int flags); sctp_scope_t scope, unsigned int __nocast gfp,
int flags);
int sctp_add_bind_addr(struct sctp_bind_addr *, union sctp_addr *, int sctp_add_bind_addr(struct sctp_bind_addr *, union sctp_addr *,
int gfp); unsigned int __nocast gfp);
int sctp_del_bind_addr(struct sctp_bind_addr *, union sctp_addr *); int sctp_del_bind_addr(struct sctp_bind_addr *, union sctp_addr *);
int sctp_bind_addr_match(struct sctp_bind_addr *, const union sctp_addr *, int sctp_bind_addr_match(struct sctp_bind_addr *, const union sctp_addr *,
struct sctp_sock *); struct sctp_sock *);
@ -1104,9 +1107,10 @@ union sctp_addr *sctp_find_unmatch_addr(struct sctp_bind_addr *bp,
int addrcnt, int addrcnt,
struct sctp_sock *opt); struct sctp_sock *opt);
union sctp_params sctp_bind_addrs_to_raw(const struct sctp_bind_addr *bp, union sctp_params sctp_bind_addrs_to_raw(const struct sctp_bind_addr *bp,
int *addrs_len, int gfp); int *addrs_len,
unsigned int __nocast gfp);
int sctp_raw_to_bind_addrs(struct sctp_bind_addr *bp, __u8 *raw, int len, int sctp_raw_to_bind_addrs(struct sctp_bind_addr *bp, __u8 *raw, int len,
__u16 port, int gfp); __u16 port, unsigned int __nocast gfp);
sctp_scope_t sctp_scope(const union sctp_addr *); sctp_scope_t sctp_scope(const union sctp_addr *);
int sctp_in_scope(const union sctp_addr *addr, const sctp_scope_t scope); 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)
} }
/* These are function signatures for manipulating endpoints. */ /* These are function signatures for manipulating endpoints. */
struct sctp_endpoint *sctp_endpoint_new(struct sock *, int); struct sctp_endpoint *sctp_endpoint_new(struct sock *, unsigned int __nocast);
void sctp_endpoint_free(struct sctp_endpoint *); void sctp_endpoint_free(struct sctp_endpoint *);
void sctp_endpoint_put(struct sctp_endpoint *); void sctp_endpoint_put(struct sctp_endpoint *);
void sctp_endpoint_hold(struct sctp_endpoint *); void sctp_endpoint_hold(struct sctp_endpoint *);
@ -1256,7 +1260,7 @@ int sctp_verify_init(const struct sctp_association *asoc, sctp_cid_t,
struct sctp_chunk **err_chunk); struct sctp_chunk **err_chunk);
int sctp_process_init(struct sctp_association *, sctp_cid_t cid, int sctp_process_init(struct sctp_association *, sctp_cid_t cid,
const union sctp_addr *peer, const union sctp_addr *peer,
sctp_init_chunk_t *init, int gfp); sctp_init_chunk_t *init, unsigned int __nocast gfp);
__u32 sctp_generate_tag(const struct sctp_endpoint *); __u32 sctp_generate_tag(const struct sctp_endpoint *);
__u32 sctp_generate_tsn(const struct sctp_endpoint *); __u32 sctp_generate_tsn(const struct sctp_endpoint *);
@ -1719,7 +1723,7 @@ static inline struct sctp_association *sctp_assoc(struct sctp_ep_common *base)
struct sctp_association * struct sctp_association *
sctp_association_new(const struct sctp_endpoint *, const struct sock *, sctp_association_new(const struct sctp_endpoint *, const struct sock *,
sctp_scope_t scope, int gfp); sctp_scope_t scope, unsigned int __nocast gfp);
void sctp_association_free(struct sctp_association *); void sctp_association_free(struct sctp_association *);
void sctp_association_put(struct sctp_association *); void sctp_association_put(struct sctp_association *);
void sctp_association_hold(struct sctp_association *); void sctp_association_hold(struct sctp_association *);
@ -1735,7 +1739,7 @@ int sctp_assoc_lookup_laddr(struct sctp_association *asoc,
const union sctp_addr *laddr); const union sctp_addr *laddr);
struct sctp_transport *sctp_assoc_add_peer(struct sctp_association *, struct sctp_transport *sctp_assoc_add_peer(struct sctp_association *,
const union sctp_addr *address, const union sctp_addr *address,
const int gfp, const unsigned int __nocast gfp,
const int peer_state); const int peer_state);
void sctp_assoc_del_peer(struct sctp_association *asoc, void sctp_assoc_del_peer(struct sctp_association *asoc,
const union sctp_addr *addr); const union sctp_addr *addr);
@ -1759,9 +1763,11 @@ void sctp_assoc_rwnd_increase(struct sctp_association *, unsigned);
void sctp_assoc_rwnd_decrease(struct sctp_association *, unsigned); void sctp_assoc_rwnd_decrease(struct sctp_association *, unsigned);
void sctp_assoc_set_primary(struct sctp_association *, void sctp_assoc_set_primary(struct sctp_association *,
struct sctp_transport *); struct sctp_transport *);
int sctp_assoc_set_bind_addr_from_ep(struct sctp_association *, int); int sctp_assoc_set_bind_addr_from_ep(struct sctp_association *,
unsigned int __nocast);
int sctp_assoc_set_bind_addr_from_cookie(struct sctp_association *, int sctp_assoc_set_bind_addr_from_cookie(struct sctp_association *,
struct sctp_cookie*, int gfp); struct sctp_cookie*,
unsigned int __nocast gfp);
int sctp_cmp_addr_exact(const union sctp_addr *ss1, int sctp_cmp_addr_exact(const union sctp_addr *ss1,
const union sctp_addr *ss2); const union sctp_addr *ss2);

View File

@ -88,7 +88,7 @@ struct sctp_ulpevent *sctp_ulpevent_make_assoc_change(
__u16 error, __u16 error,
__u16 outbound, __u16 outbound,
__u16 inbound, __u16 inbound,
int gfp); unsigned int __nocast gfp);
struct sctp_ulpevent *sctp_ulpevent_make_peer_addr_change( struct sctp_ulpevent *sctp_ulpevent_make_peer_addr_change(
const struct sctp_association *asoc, const struct sctp_association *asoc,
@ -96,35 +96,35 @@ struct sctp_ulpevent *sctp_ulpevent_make_peer_addr_change(
int flags, int flags,
int state, int state,
int error, int error,
int gfp); unsigned int __nocast gfp);
struct sctp_ulpevent *sctp_ulpevent_make_remote_error( struct sctp_ulpevent *sctp_ulpevent_make_remote_error(
const struct sctp_association *asoc, const struct sctp_association *asoc,
struct sctp_chunk *chunk, struct sctp_chunk *chunk,
__u16 flags, __u16 flags,
int gfp); unsigned int __nocast gfp);
struct sctp_ulpevent *sctp_ulpevent_make_send_failed( struct sctp_ulpevent *sctp_ulpevent_make_send_failed(
const struct sctp_association *asoc, const struct sctp_association *asoc,
struct sctp_chunk *chunk, struct sctp_chunk *chunk,
__u16 flags, __u16 flags,
__u32 error, __u32 error,
int gfp); unsigned int __nocast gfp);
struct sctp_ulpevent *sctp_ulpevent_make_shutdown_event( struct sctp_ulpevent *sctp_ulpevent_make_shutdown_event(
const struct sctp_association *asoc, const struct sctp_association *asoc,
__u16 flags, __u16 flags,
int gfp); unsigned int __nocast gfp);
struct sctp_ulpevent *sctp_ulpevent_make_pdapi( struct sctp_ulpevent *sctp_ulpevent_make_pdapi(
const struct sctp_association *asoc, const struct sctp_association *asoc,
__u32 indication, int gfp); __u32 indication, unsigned int __nocast gfp);
struct sctp_ulpevent *sctp_ulpevent_make_adaption_indication( struct sctp_ulpevent *sctp_ulpevent_make_adaption_indication(
const struct sctp_association *asoc, int gfp); const struct sctp_association *asoc, unsigned int __nocast gfp);
struct sctp_ulpevent *sctp_ulpevent_make_rcvmsg(struct sctp_association *asoc, struct sctp_ulpevent *sctp_ulpevent_make_rcvmsg(struct sctp_association *asoc,
struct sctp_chunk *chunk, struct sctp_chunk *chunk,
int gfp); unsigned int __nocast gfp);
void sctp_ulpevent_read_sndrcvinfo(const struct sctp_ulpevent *event, void sctp_ulpevent_read_sndrcvinfo(const struct sctp_ulpevent *event,
struct msghdr *); struct msghdr *);

View File

@ -62,19 +62,22 @@ struct sctp_ulpq *sctp_ulpq_init(struct sctp_ulpq *,
void sctp_ulpq_free(struct sctp_ulpq *); void sctp_ulpq_free(struct sctp_ulpq *);
/* Add a new DATA chunk for processing. */ /* Add a new DATA chunk for processing. */
int sctp_ulpq_tail_data(struct sctp_ulpq *, struct sctp_chunk *, int); int sctp_ulpq_tail_data(struct sctp_ulpq *, struct sctp_chunk *,
unsigned int __nocast);
/* Add a new event for propagation to the ULP. */ /* Add a new event for propagation to the ULP. */
int sctp_ulpq_tail_event(struct sctp_ulpq *, struct sctp_ulpevent *ev); int sctp_ulpq_tail_event(struct sctp_ulpq *, struct sctp_ulpevent *ev);
/* Renege previously received chunks. */ /* Renege previously received chunks. */
void sctp_ulpq_renege(struct sctp_ulpq *, struct sctp_chunk *, int); void sctp_ulpq_renege(struct sctp_ulpq *, struct sctp_chunk *,
unsigned int __nocast);
/* Perform partial delivery. */ /* Perform partial delivery. */
void sctp_ulpq_partial_delivery(struct sctp_ulpq *, struct sctp_chunk *, int); void sctp_ulpq_partial_delivery(struct sctp_ulpq *, struct sctp_chunk *,
unsigned int __nocast);
/* Abort the partial delivery. */ /* Abort the partial delivery. */
void sctp_ulpq_abort_pd(struct sctp_ulpq *, int); void sctp_ulpq_abort_pd(struct sctp_ulpq *, unsigned int __nocast);
/* Clear the partial data delivery condition on this socket. */ /* Clear the partial data delivery condition on this socket. */
int sctp_clear_pd(struct sock *sk); int sctp_clear_pd(struct sock *sk);

View File

@ -5,8 +5,7 @@
#include <linux/if_packet.h> #include <linux/if_packet.h>
#include <linux/skbuff.h> #include <linux/skbuff.h>
static inline unsigned short x25_type_trans(struct sk_buff *skb, static inline __be16 x25_type_trans(struct sk_buff *skb, struct net_device *dev)
struct net_device *dev)
{ {
skb->mac.raw = skb->data; skb->mac.raw = skb->data;
skb->input_dev = skb->dev = dev; skb->input_dev = skb->dev = dev;

View File

@ -122,10 +122,10 @@ static int fddi_rebuild_header(struct sk_buff *skb)
* the proper pointer to the start of packet data (skb->data). * the proper pointer to the start of packet data (skb->data).
*/ */
unsigned short fddi_type_trans(struct sk_buff *skb, struct net_device *dev) __be16 fddi_type_trans(struct sk_buff *skb, struct net_device *dev)
{ {
struct fddihdr *fddi = (struct fddihdr *)skb->data; struct fddihdr *fddi = (struct fddihdr *)skb->data;
unsigned short type; __be16 type;
/* /*
* Set mac.raw field to point to FC byte, set data field to point * Set mac.raw field to point to FC byte, set data field to point

19
net/8021q/Kconfig Normal file
View File

@ -0,0 +1,19 @@
#
# Configuration for 802.1Q VLAN support
#
config VLAN_8021Q
tristate "802.1Q VLAN Support"
---help---
Select this and you will be able to create 802.1Q VLAN interfaces
on your ethernet interfaces. 802.1Q VLAN supports almost
everything a regular ethernet interface does, including
firewalling, bridging, and of course IP traffic. You will need
the 'vconfig' tool from the VLAN project in order to effectively
use VLANs. See the VLAN web page for more information:
<http://www.candelatech.com/~greear/vlan.html>
To compile this code as a module, choose M here: the module
will be called 8021q.
If unsure, say N.

View File

@ -578,6 +578,14 @@ static int vlan_device_event(struct notifier_block *unused, unsigned long event,
if (!vlandev) if (!vlandev)
continue; continue;
if (netif_carrier_ok(dev)) {
if (!netif_carrier_ok(vlandev))
netif_carrier_on(vlandev);
} else {
if (netif_carrier_ok(vlandev))
netif_carrier_off(vlandev);
}
if ((vlandev->state & VLAN_LINK_STATE_MASK) != flgs) { if ((vlandev->state & VLAN_LINK_STATE_MASK) != flgs) {
vlandev->state = (vlandev->state &~ VLAN_LINK_STATE_MASK) vlandev->state = (vlandev->state &~ VLAN_LINK_STATE_MASK)
| flgs; | flgs;

View File

@ -2,7 +2,7 @@
# Network configuration # Network configuration
# #
menu "Networking support" menu "Networking"
config NET config NET
bool "Networking support" bool "Networking support"
@ -10,7 +10,9 @@ config NET
Unless you really know what you are doing, you should say Y here. Unless you really know what you are doing, you should say Y here.
The reason is that some programs need kernel networking support even The reason is that some programs need kernel networking support even
when running on a stand-alone machine that isn't connected to any when running on a stand-alone machine that isn't connected to any
other computer. If you are upgrading from an older kernel, you other computer.
If you are upgrading from an older kernel, you
should consider updating your networking tools too because changes should consider updating your networking tools too because changes
in the kernel and the tools often go hand in hand. The tools are in the kernel and the tools often go hand in hand. The tools are
contained in the package net-tools, the location and version number contained in the package net-tools, the location and version number
@ -20,57 +22,14 @@ config NET
recommended to read the NET-HOWTO, available from recommended to read the NET-HOWTO, available from
<http://www.tldp.org/docs.html#howto>. <http://www.tldp.org/docs.html#howto>.
# Make sure that all config symbols are dependent on NET
if NET
menu "Networking options" menu "Networking options"
depends on NET
config PACKET source "net/packet/Kconfig"
tristate "Packet socket" source "net/unix/Kconfig"
---help--- source "net/xfrm/Kconfig"
The Packet protocol is used by applications which communicate
directly with network devices without an intermediate network
protocol implemented in the kernel, e.g. tcpdump. If you want them
to work, choose Y.
To compile this driver as a module, choose M here: the module will
be called af_packet.
If unsure, say Y.
config PACKET_MMAP
bool "Packet socket: mmapped IO"
depends on PACKET
help
If you say Y here, the Packet protocol driver will use an IO
mechanism that results in faster communication.
If unsure, say N.
config UNIX
tristate "Unix domain sockets"
---help---
If you say Y here, you will include support for Unix domain sockets;
sockets are the standard Unix mechanism for establishing and
accessing network connections. Many commonly used programs such as
the X Window system and syslog use these sockets even if your
machine is not connected to any network. Unless you are working on
an embedded system or something similar, you therefore definitely
want to say Y here.
To compile this driver as a module, choose M here: the module will be
called unix. Note that several important services won't work
correctly if you say M here and then neglect to load the module.
Say Y unless you know what you are doing.
config NET_KEY
tristate "PF_KEY sockets"
select XFRM
---help---
PF_KEYv2 socket family, compatible to KAME ones.
They are required if you are going to use IPsec tools ported
from KAME.
Say Y unless you know what you are doing.
config INET config INET
bool "TCP/IP networking" bool "TCP/IP networking"
@ -94,30 +53,12 @@ config INET
Short answer: say Y. Short answer: say Y.
if INET
source "net/ipv4/Kconfig" source "net/ipv4/Kconfig"
# IPv6 as module will cause a CRASH if you try to unload it
config IPV6
tristate "The IPv6 protocol"
depends on INET
default m
select CRYPTO if IPV6_PRIVACY
select CRYPTO_MD5 if IPV6_PRIVACY
---help---
This is complemental support for the IP version 6.
You will still be able to do traditional IPv4 networking as well.
For general information about IPv6, see
<http://playground.sun.com/pub/ipng/html/ipng-main.html>.
For Linux IPv6 development information, see <http://www.linux-ipv6.org>.
For specific information about IPv6 under Linux, read the HOWTO at
<http://www.bieringer.de/linux/IPv6/>.
To compile this protocol support as a module, choose M here: the
module will be called ipv6.
source "net/ipv6/Kconfig" source "net/ipv6/Kconfig"
endif # if INET
menuconfig NETFILTER menuconfig NETFILTER
bool "Network packet filtering (replaces ipchains)" bool "Network packet filtering (replaces ipchains)"
---help--- ---help---
@ -206,269 +147,16 @@ source "net/bridge/netfilter/Kconfig"
endif endif
config XFRM
bool
depends on NET
source "net/xfrm/Kconfig"
source "net/sctp/Kconfig" source "net/sctp/Kconfig"
source "net/atm/Kconfig"
config ATM source "net/bridge/Kconfig"
tristate "Asynchronous Transfer Mode (ATM) (EXPERIMENTAL)" source "net/8021q/Kconfig"
depends on EXPERIMENTAL
---help---
ATM is a high-speed networking technology for Local Area Networks
and Wide Area Networks. It uses a fixed packet size and is
connection oriented, allowing for the negotiation of minimum
bandwidth requirements.
In order to participate in an ATM network, your Linux box needs an
ATM networking card. If you have that, say Y here and to the driver
of your ATM card below.
Note that you need a set of user-space programs to actually make use
of ATM. See the file <file:Documentation/networking/atm.txt> for
further details.
config ATM_CLIP
tristate "Classical IP over ATM (EXPERIMENTAL)"
depends on ATM && INET
help
Classical IP over ATM for PVCs and SVCs, supporting InARP and
ATMARP. If you want to communication with other IP hosts on your ATM
network, you will typically either say Y here or to "LAN Emulation
(LANE)" below.
config ATM_CLIP_NO_ICMP
bool "Do NOT send ICMP if no neighbour (EXPERIMENTAL)"
depends on ATM_CLIP
help
Normally, an "ICMP host unreachable" message is sent if a neighbour
cannot be reached because there is no VC to it in the kernel's
ATMARP table. This may cause problems when ATMARP table entries are
briefly removed during revalidation. If you say Y here, packets to
such neighbours are silently discarded instead.
config ATM_LANE
tristate "LAN Emulation (LANE) support (EXPERIMENTAL)"
depends on ATM
help
LAN Emulation emulates services of existing LANs across an ATM
network. Besides operating as a normal ATM end station client, Linux
LANE client can also act as an proxy client bridging packets between
ELAN and Ethernet segments. You need LANE if you want to try MPOA.
config ATM_MPOA
tristate "Multi-Protocol Over ATM (MPOA) support (EXPERIMENTAL)"
depends on ATM && INET && ATM_LANE!=n
help
Multi-Protocol Over ATM allows ATM edge devices such as routers,
bridges and ATM attached hosts establish direct ATM VCs across
subnetwork boundaries. These shortcut connections bypass routers
enhancing overall network performance.
config ATM_BR2684
tristate "RFC1483/2684 Bridged protocols"
depends on ATM && INET
help
ATM PVCs can carry ethernet PDUs according to rfc2684 (formerly 1483)
This device will act like an ethernet from the kernels point of view,
with the traffic being carried by ATM PVCs (currently 1 PVC/device).
This is sometimes used over DSL lines. If in doubt, say N.
config ATM_BR2684_IPFILTER
bool "Per-VC IP filter kludge"
depends on ATM_BR2684
help
This is an experimental mechanism for users who need to terminating a
large number of IP-only vcc's. Do not enable this unless you are sure
you know what you are doing.
config BRIDGE
tristate "802.1d Ethernet Bridging"
---help---
If you say Y here, then your Linux box will be able to act as an
Ethernet bridge, which means that the different Ethernet segments it
is connected to will appear as one Ethernet to the participants.
Several such bridges can work together to create even larger
networks of Ethernets using the IEEE 802.1 spanning tree algorithm.
As this is a standard, Linux bridges will cooperate properly with
other third party bridge products.
In order to use the Ethernet bridge, you'll need the bridge
configuration tools; see <file:Documentation/networking/bridge.txt>
for location. Please read the Bridge mini-HOWTO for more
information.
If you enable iptables support along with the bridge support then you
turn your bridge into a bridging IP firewall.
iptables will then see the IP packets being bridged, so you need to
take this into account when setting up your firewall rules.
Enabling arptables support when bridging will let arptables see
bridged ARP traffic in the arptables FORWARD chain.
To compile this code as a module, choose M here: the module
will be called bridge.
If unsure, say N.
config VLAN_8021Q
tristate "802.1Q VLAN Support"
---help---
Select this and you will be able to create 802.1Q VLAN interfaces
on your ethernet interfaces. 802.1Q VLAN supports almost
everything a regular ethernet interface does, including
firewalling, bridging, and of course IP traffic. You will need
the 'vconfig' tool from the VLAN project in order to effectively
use VLANs. See the VLAN web page for more information:
<http://www.candelatech.com/~greear/vlan.html>
To compile this code as a module, choose M here: the module
will be called 8021q.
If unsure, say N.
config DECNET
tristate "DECnet Support"
---help---
The DECnet networking protocol was used in many products made by
Digital (now Compaq). It provides reliable stream and sequenced
packet communications over which run a variety of services similar
to those which run over TCP/IP.
To find some tools to use with the kernel layer support, please
look at Patrick Caulfield's web site:
<http://linux-decnet.sourceforge.net/>.
More detailed documentation is available in
<file:Documentation/networking/decnet.txt>.
Be sure to say Y to "/proc file system support" and "Sysctl support"
below when using DECnet, since you will need sysctl support to aid
in configuration at run time.
The DECnet code is also available as a module ( = code which can be
inserted in and removed from the running kernel whenever you want).
The module is called decnet.
source "net/decnet/Kconfig" source "net/decnet/Kconfig"
source "net/llc/Kconfig" source "net/llc/Kconfig"
config IPX
tristate "The IPX protocol"
select LLC
---help---
This is support for the Novell networking protocol, IPX, commonly
used for local networks of Windows machines. You need it if you
want to access Novell NetWare file or print servers using the Linux
Novell client ncpfs (available from
<ftp://platan.vc.cvut.cz/pub/linux/ncpfs/>) or from
within the Linux DOS emulator DOSEMU (read the DOSEMU-HOWTO,
available from <http://www.tldp.org/docs.html#howto>). In order
to do the former, you'll also have to say Y to "NCP file system
support", below.
IPX is similar in scope to IP, while SPX, which runs on top of IPX,
is similar to TCP. There is also experimental support for SPX in
Linux (see "SPX networking", below).
To turn your Linux box into a fully featured NetWare file server and
IPX router, say Y here and fetch either lwared from
<ftp://ibiblio.org/pub/Linux/system/network/daemons/> or
mars_nwe from <ftp://www.compu-art.de/mars_nwe/>. For more
information, read the IPX-HOWTO available from
<http://www.tldp.org/docs.html#howto>.
General information about how to connect Linux, Windows machines and
Macs is on the WWW at <http://www.eats.com/linux_mac_win.html>.
The IPX driver would enlarge your kernel by about 16 KB. To compile
this driver as a module, choose M here: the module will be called ipx.
Unless you want to integrate your Linux box with a local Novell
network, say N.
source "net/ipx/Kconfig" source "net/ipx/Kconfig"
config ATALK
tristate "Appletalk protocol support"
select LLC
---help---
AppleTalk is the protocol that Apple computers can use to communicate
on a network. If your Linux box is connected to such a network and you
wish to connect to it, say Y. You will need to use the netatalk package
so that your Linux box can act as a print and file server for Macs as
well as access AppleTalk printers. Check out
<http://www.zettabyte.net/netatalk/> on the WWW for details.
EtherTalk is the name used for AppleTalk over Ethernet and the
cheaper and slower LocalTalk is AppleTalk over a proprietary Apple
network using serial links. EtherTalk and LocalTalk are fully
supported by Linux.
General information about how to connect Linux, Windows machines and
Macs is on the WWW at <http://www.eats.com/linux_mac_win.html>. The
NET-3-HOWTO, available from
<http://www.tldp.org/docs.html#howto>, contains valuable
information as well.
To compile this driver as a module, choose M here: the module will be
called appletalk. You almost certainly want to compile it as a
module so you can restart your AppleTalk stack without rebooting
your machine. I hear that the GNU boycott of Apple is over, so
even politically correct people are allowed to say Y here.
source "drivers/net/appletalk/Kconfig" source "drivers/net/appletalk/Kconfig"
source "net/x25/Kconfig"
config X25 source "net/lapb/Kconfig"
tristate "CCITT X.25 Packet Layer (EXPERIMENTAL)"
depends on EXPERIMENTAL
---help---
X.25 is a set of standardized network protocols, similar in scope to
frame relay; the one physical line from your box to the X.25 network
entry point can carry several logical point-to-point connections
(called "virtual circuits") to other computers connected to the X.25
network. Governments, banks, and other organizations tend to use it
to connect to each other or to form Wide Area Networks (WANs). Many
countries have public X.25 networks. X.25 consists of two
protocols: the higher level Packet Layer Protocol (PLP) (say Y here
if you want that) and the lower level data link layer protocol LAPB
(say Y to "LAPB Data Link Driver" below if you want that).
You can read more about X.25 at <http://www.sangoma.com/x25.htm> and
<http://www.cisco.com/univercd/cc/td/doc/product/software/ios11/cbook/cx25.htm>.
Information about X.25 for Linux is contained in the files
<file:Documentation/networking/x25.txt> and
<file:Documentation/networking/x25-iface.txt>.
One connects to an X.25 network either with a dedicated network card
using the X.21 protocol (not yet supported by Linux) or one can do
X.25 over a standard telephone line using an ordinary modem (say Y
to "X.25 async driver" below) or over Ethernet using an ordinary
Ethernet card and the LAPB over Ethernet (say Y to "LAPB Data Link
Driver" and "LAPB over Ethernet driver" below).
To compile this driver as a module, choose M here: the module
will be called x25. If unsure, say N.
config LAPB
tristate "LAPB Data Link Driver (EXPERIMENTAL)"
depends on EXPERIMENTAL
---help---
Link Access Procedure, Balanced (LAPB) is the data link layer (i.e.
the lower) part of the X.25 protocol. It offers a reliable
connection service to exchange data frames with one other host, and
it is used to transport higher level protocols (mostly X.25 Packet
Layer, the higher part of X.25, but others are possible as well).
Usually, LAPB is used with specialized X.21 network cards, but Linux
currently supports LAPB only over Ethernet connections. If you want
to use LAPB connections over Ethernet, say Y here and to "LAPB over
Ethernet driver" below. Read
<file:Documentation/networking/lapb-module.txt> for technical
details.
To compile this driver as a module, choose M here: the
module will be called lapb. If unsure, say N.
config NET_DIVERT config NET_DIVERT
bool "Frame Diverter (EXPERIMENTAL)" bool "Frame Diverter (EXPERIMENTAL)"
@ -496,107 +184,10 @@ config NET_DIVERT
If unsure, say N. If unsure, say N.
config ECONET source "net/econet/Kconfig"
tristate "Acorn Econet/AUN protocols (EXPERIMENTAL)" source "net/wanrouter/Kconfig"
depends on EXPERIMENTAL && INET
---help---
Econet is a fairly old and slow networking protocol mainly used by
Acorn computers to access file and print servers. It uses native
Econet network cards. AUN is an implementation of the higher level
parts of Econet that runs over ordinary Ethernet connections, on
top of the UDP packet protocol, which in turn runs on top of the
Internet protocol IP.
If you say Y here, you can choose with the next two options whether
to send Econet/AUN traffic over a UDP Ethernet connection or over
a native Econet network card.
To compile this driver as a module, choose M here: the module
will be called econet.
config ECONET_AUNUDP
bool "AUN over UDP"
depends on ECONET
help
Say Y here if you want to send Econet/AUN traffic over a UDP
connection (UDP is a packet based protocol that runs on top of the
Internet protocol IP) using an ordinary Ethernet network card.
config ECONET_NATIVE
bool "Native Econet"
depends on ECONET
help
Say Y here if you have a native Econet network card installed in
your computer.
config WAN_ROUTER
tristate "WAN router"
depends on EXPERIMENTAL
---help---
Wide Area Networks (WANs), such as X.25, frame relay and leased
lines, are used to interconnect Local Area Networks (LANs) over vast
distances with data transfer rates significantly higher than those
achievable with commonly used asynchronous modem connections.
Usually, a quite expensive external device called a `WAN router' is
needed to connect to a WAN.
As an alternative, WAN routing can be built into the Linux kernel.
With relatively inexpensive WAN interface cards available on the
market, a perfectly usable router can be built for less than half
the price of an external router. If you have one of those cards and
wish to use your Linux box as a WAN router, say Y here and also to
the WAN driver for your card, below. You will then need the
wan-tools package which is available from <ftp://ftp.sangoma.com/>.
Read <file:Documentation/networking/wan-router.txt> for more
information.
To compile WAN routing support as a module, choose M here: the
module will be called wanrouter.
If unsure, say N.
menu "QoS and/or fair queueing"
config NET_SCHED
bool "QoS and/or fair queueing"
---help---
When the kernel has several packets to send out over a network
device, it has to decide which ones to send first, which ones to
delay, and which ones to drop. This is the job of the packet
scheduler, and several different algorithms for how to do this
"fairly" have been proposed.
If you say N here, you will get the standard packet scheduler, which
is a FIFO (first come, first served). If you say Y here, you will be
able to choose from among several alternative algorithms which can
then be attached to different network devices. This is useful for
example if some of your network devices are real time devices that
need a certain minimum data flow rate, or if you need to limit the
maximum data flow rate for traffic which matches specified criteria.
This code is considered to be experimental.
To administer these schedulers, you'll need the user-level utilities
from the package iproute2+tc at <ftp://ftp.tux.org/pub/net/ip-routing/>.
That package also contains some documentation; for more, check out
<http://snafu.freedom.org/linux2.2/iproute-notes.html>.
This Quality of Service (QoS) support will enable you to use
Differentiated Services (diffserv) and Resource Reservation Protocol
(RSVP) on your Linux router if you also say Y to "QoS support",
"Packet classifier API" and to some classifiers below. Documentation
and software is at <http://diffserv.sourceforge.net/>.
If you say Y here and to "/proc file system" below, you will be able
to read status information about packet schedulers from the file
/proc/net/psched.
The available schedulers are listed in the following questions; you
can say Y to as many as you like. If unsure, say N now.
source "net/sched/Kconfig" source "net/sched/Kconfig"
endmenu
menu "Network testing" menu "Network testing"
config NET_PKTGEN config NET_PKTGEN
@ -635,12 +226,9 @@ config NET_POLL_CONTROLLER
def_bool NETPOLL def_bool NETPOLL
source "net/ax25/Kconfig" source "net/ax25/Kconfig"
source "net/irda/Kconfig" source "net/irda/Kconfig"
source "net/bluetooth/Kconfig" source "net/bluetooth/Kconfig"
source "drivers/net/Kconfig" endif # if NET
endmenu # Networking
endmenu

74
net/atm/Kconfig Normal file
View File

@ -0,0 +1,74 @@
#
# Asynchronous Transfer Mode (ATM) (EXPERIMENTAL)
#
config ATM
tristate "Asynchronous Transfer Mode (ATM) (EXPERIMENTAL)"
depends on EXPERIMENTAL
---help---
ATM is a high-speed networking technology for Local Area Networks
and Wide Area Networks. It uses a fixed packet size and is
connection oriented, allowing for the negotiation of minimum
bandwidth requirements.
In order to participate in an ATM network, your Linux box needs an
ATM networking card. If you have that, say Y here and to the driver
of your ATM card below.
Note that you need a set of user-space programs to actually make use
of ATM. See the file <file:Documentation/networking/atm.txt> for
further details.
config ATM_CLIP
tristate "Classical IP over ATM (EXPERIMENTAL)"
depends on ATM && INET
help
Classical IP over ATM for PVCs and SVCs, supporting InARP and
ATMARP. If you want to communication with other IP hosts on your ATM
network, you will typically either say Y here or to "LAN Emulation
(LANE)" below.
config ATM_CLIP_NO_ICMP
bool "Do NOT send ICMP if no neighbour (EXPERIMENTAL)"
depends on ATM_CLIP
help
Normally, an "ICMP host unreachable" message is sent if a neighbour
cannot be reached because there is no VC to it in the kernel's
ATMARP table. This may cause problems when ATMARP table entries are
briefly removed during revalidation. If you say Y here, packets to
such neighbours are silently discarded instead.
config ATM_LANE
tristate "LAN Emulation (LANE) support (EXPERIMENTAL)"
depends on ATM
help
LAN Emulation emulates services of existing LANs across an ATM
network. Besides operating as a normal ATM end station client, Linux
LANE client can also act as an proxy client bridging packets between
ELAN and Ethernet segments. You need LANE if you want to try MPOA.
config ATM_MPOA
tristate "Multi-Protocol Over ATM (MPOA) support (EXPERIMENTAL)"
depends on ATM && INET && ATM_LANE!=n
help
Multi-Protocol Over ATM allows ATM edge devices such as routers,
bridges and ATM attached hosts establish direct ATM VCs across
subnetwork boundaries. These shortcut connections bypass routers
enhancing overall network performance.
config ATM_BR2684
tristate "RFC1483/2684 Bridged protocols"
depends on ATM && INET
help
ATM PVCs can carry ethernet PDUs according to rfc2684 (formerly 1483)
This device will act like an ethernet from the kernels point of view,
with the traffic being carried by ATM PVCs (currently 1 PVC/device).
This is sometimes used over DSL lines. If in doubt, say N.
config ATM_BR2684_IPFILTER
bool "Per-VC IP filter kludge"
depends on ATM_BR2684
help
This is an experimental mechanism for users who need to terminating a
large number of IP-only vcc's. Do not enable this unless you are sure
you know what you are doing.

View File

@ -289,8 +289,7 @@ xmit will add the additional header part in that case */
* This is similar to eth_type_trans, which cannot be used because of * This is similar to eth_type_trans, which cannot be used because of
* our dev->hard_header_len * our dev->hard_header_len
*/ */
static inline unsigned short br_type_trans(struct sk_buff *skb, static inline __be16 br_type_trans(struct sk_buff *skb, struct net_device *dev)
struct net_device *dev)
{ {
struct ethhdr *eth; struct ethhdr *eth;
unsigned char *rawp; unsigned char *rawp;

31
net/bridge/Kconfig Normal file
View File

@ -0,0 +1,31 @@
#
# 802.1d Ethernet Bridging
#
config BRIDGE
tristate "802.1d Ethernet Bridging"
---help---
If you say Y here, then your Linux box will be able to act as an
Ethernet bridge, which means that the different Ethernet segments it
is connected to will appear as one Ethernet to the participants.
Several such bridges can work together to create even larger
networks of Ethernets using the IEEE 802.1 spanning tree algorithm.
As this is a standard, Linux bridges will cooperate properly with
other third party bridge products.
In order to use the Ethernet bridge, you'll need the bridge
configuration tools; see <file:Documentation/networking/bridge.txt>
for location. Please read the Bridge mini-HOWTO for more
information.
If you enable iptables support along with the bridge support then you
turn your bridge into a bridging IP firewall.
iptables will then see the IP packets being bridged, so you need to
take this into account when setting up your firewall rules.
Enabling arptables support when bridging will let arptables see
bridged ARP traffic in the arptables FORWARD chain.
To compile this code as a module, choose M here: the module
will be called bridge.
If unsure, say N.

View File

@ -1,6 +1,29 @@
# #
# DECnet configuration # DECnet configuration
# #
config DECNET
tristate "DECnet Support"
---help---
The DECnet networking protocol was used in many products made by
Digital (now Compaq). It provides reliable stream and sequenced
packet communications over which run a variety of services similar
to those which run over TCP/IP.
To find some tools to use with the kernel layer support, please
look at Patrick Caulfield's web site:
<http://linux-decnet.sourceforge.net/>.
More detailed documentation is available in
<file:Documentation/networking/decnet.txt>.
Be sure to say Y to "/proc file system support" and "Sysctl support"
below when using DECnet, since you will need sysctl support to aid
in configuration at run time.
The DECnet code is also available as a module ( = code which can be
inserted in and removed from the running kernel whenever you want).
The module is called decnet.
config DECNET_ROUTER config DECNET_ROUTER
bool "DECnet: router support (EXPERIMENTAL)" bool "DECnet: router support (EXPERIMENTAL)"
depends on DECNET && EXPERIMENTAL depends on DECNET && EXPERIMENTAL

36
net/econet/Kconfig Normal file
View File

@ -0,0 +1,36 @@
#
# Acorn Econet/AUN protocols
#
config ECONET
tristate "Acorn Econet/AUN protocols (EXPERIMENTAL)"
depends on EXPERIMENTAL && INET
---help---
Econet is a fairly old and slow networking protocol mainly used by
Acorn computers to access file and print servers. It uses native
Econet network cards. AUN is an implementation of the higher level
parts of Econet that runs over ordinary Ethernet connections, on
top of the UDP packet protocol, which in turn runs on top of the
Internet protocol IP.
If you say Y here, you can choose with the next two options whether
to send Econet/AUN traffic over a UDP Ethernet connection or over
a native Econet network card.
To compile this driver as a module, choose M here: the module
will be called econet.
config ECONET_AUNUDP
bool "AUN over UDP"
depends on ECONET
help
Say Y here if you want to send Econet/AUN traffic over a UDP
connection (UDP is a packet based protocol that runs on top of the
Internet protocol IP) using an ordinary Ethernet network card.
config ECONET_NATIVE
bool "Native Econet"
depends on ECONET
help
Say Y here if you have a native Econet network card installed in
your computer.

View File

@ -155,7 +155,7 @@ int eth_rebuild_header(struct sk_buff *skb)
* This is normal practice and works for any 'now in use' protocol. * This is normal practice and works for any 'now in use' protocol.
*/ */
unsigned short eth_type_trans(struct sk_buff *skb, struct net_device *dev) __be16 eth_type_trans(struct sk_buff *skb, struct net_device *dev)
{ {
struct ethhdr *eth; struct ethhdr *eth;
unsigned char *rawp; unsigned char *rawp;

View File

@ -3,7 +3,6 @@
# #
config IP_MULTICAST config IP_MULTICAST
bool "IP: multicasting" bool "IP: multicasting"
depends on INET
help help
This is code for addressing several networked computers at once, This is code for addressing several networked computers at once,
enlarging your kernel by about 2 KB. You need multicasting if you enlarging your kernel by about 2 KB. You need multicasting if you
@ -17,7 +16,6 @@ config IP_MULTICAST
config IP_ADVANCED_ROUTER config IP_ADVANCED_ROUTER
bool "IP: advanced router" bool "IP: advanced router"
depends on INET
---help--- ---help---
If you intend to run your Linux box mostly as a router, i.e. as a If you intend to run your Linux box mostly as a router, i.e. as a
computer that forwards and redistributes network packets, say Y; you computer that forwards and redistributes network packets, say Y; you
@ -183,7 +181,6 @@ config IP_ROUTE_VERBOSE
config IP_PNP config IP_PNP
bool "IP: kernel level autoconfiguration" bool "IP: kernel level autoconfiguration"
depends on INET
help help
This enables automatic configuration of IP addresses of devices and This enables automatic configuration of IP addresses of devices and
of the routing table during kernel boot, based on either information of the routing table during kernel boot, based on either information
@ -242,7 +239,6 @@ config IP_PNP_RARP
# bool ' IP: ARP support' CONFIG_IP_PNP_ARP # bool ' IP: ARP support' CONFIG_IP_PNP_ARP
config NET_IPIP config NET_IPIP
tristate "IP: tunneling" tristate "IP: tunneling"
depends on INET
select INET_TUNNEL select INET_TUNNEL
---help--- ---help---
Tunneling means encapsulating data of one protocol type within Tunneling means encapsulating data of one protocol type within
@ -260,7 +256,6 @@ config NET_IPIP
config NET_IPGRE config NET_IPGRE
tristate "IP: GRE tunnels over IP" tristate "IP: GRE tunnels over IP"
depends on INET
select XFRM select XFRM
help help
Tunneling means encapsulating data of one protocol type within Tunneling means encapsulating data of one protocol type within
@ -319,7 +314,7 @@ config IP_PIMSM_V2
config ARPD config ARPD
bool "IP: ARP daemon support (EXPERIMENTAL)" bool "IP: ARP daemon support (EXPERIMENTAL)"
depends on INET && EXPERIMENTAL depends on EXPERIMENTAL
---help--- ---help---
Normally, the kernel maintains an internal cache which maps IP Normally, the kernel maintains an internal cache which maps IP
addresses to hardware addresses on the local network, so that addresses to hardware addresses on the local network, so that
@ -344,7 +339,6 @@ config ARPD
config SYN_COOKIES config SYN_COOKIES
bool "IP: TCP syncookie support (disabled per default)" bool "IP: TCP syncookie support (disabled per default)"
depends on INET
---help--- ---help---
Normal TCP/IP networking is open to an attack known as "SYN Normal TCP/IP networking is open to an attack known as "SYN
flooding". This denial-of-service attack prevents legitimate remote flooding". This denial-of-service attack prevents legitimate remote
@ -381,7 +375,6 @@ config SYN_COOKIES
config INET_AH config INET_AH
tristate "IP: AH transformation" tristate "IP: AH transformation"
depends on INET
select XFRM select XFRM
select CRYPTO select CRYPTO
select CRYPTO_HMAC select CRYPTO_HMAC
@ -394,7 +387,6 @@ config INET_AH
config INET_ESP config INET_ESP
tristate "IP: ESP transformation" tristate "IP: ESP transformation"
depends on INET
select XFRM select XFRM
select CRYPTO select CRYPTO
select CRYPTO_HMAC select CRYPTO_HMAC
@ -408,7 +400,6 @@ config INET_ESP
config INET_IPCOMP config INET_IPCOMP
tristate "IP: IPComp transformation" tristate "IP: IPComp transformation"
depends on INET
select XFRM select XFRM
select INET_TUNNEL select INET_TUNNEL
select CRYPTO select CRYPTO
@ -421,7 +412,6 @@ config INET_IPCOMP
config INET_TUNNEL config INET_TUNNEL
tristate "IP: tunnel transformation" tristate "IP: tunnel transformation"
depends on INET
select XFRM select XFRM
---help--- ---help---
Support for generic IP tunnel transformation, which is required by Support for generic IP tunnel transformation, which is required by
@ -431,7 +421,6 @@ config INET_TUNNEL
config IP_TCPDIAG config IP_TCPDIAG
tristate "IP: TCP socket monitoring interface" tristate "IP: TCP socket monitoring interface"
depends on INET
default y default y
---help--- ---help---
Support for TCP socket monitoring interface used by native Linux Support for TCP socket monitoring interface used by native Linux
@ -447,7 +436,6 @@ config IP_TCPDIAG_IPV6
config TCP_CONG_ADVANCED config TCP_CONG_ADVANCED
bool "TCP: advanced congestion control" bool "TCP: advanced congestion control"
depends on INET
---help--- ---help---
Support for selection of various TCP congestion control Support for selection of various TCP congestion control
modules. modules.
@ -463,7 +451,6 @@ menu "TCP congestion control"
config TCP_CONG_BIC config TCP_CONG_BIC
tristate "Binary Increase Congestion (BIC) control" tristate "Binary Increase Congestion (BIC) control"
depends on INET
default y default y
---help--- ---help---
BIC-TCP is a sender-side only change that ensures a linear RTT BIC-TCP is a sender-side only change that ensures a linear RTT
@ -478,7 +465,6 @@ config TCP_CONG_BIC
config TCP_CONG_WESTWOOD config TCP_CONG_WESTWOOD
tristate "TCP Westwood+" tristate "TCP Westwood+"
depends on INET
default m default m
---help--- ---help---
TCP Westwood+ is a sender-side only modification of the TCP Reno TCP Westwood+ is a sender-side only modification of the TCP Reno
@ -493,7 +479,6 @@ config TCP_CONG_WESTWOOD
config TCP_CONG_HTCP config TCP_CONG_HTCP
tristate "H-TCP" tristate "H-TCP"
depends on INET
default m default m
---help--- ---help---
H-TCP is a send-side only modifications of the TCP Reno H-TCP is a send-side only modifications of the TCP Reno
@ -505,7 +490,7 @@ config TCP_CONG_HTCP
config TCP_CONG_HSTCP config TCP_CONG_HSTCP
tristate "High Speed TCP" tristate "High Speed TCP"
depends on INET && EXPERIMENTAL depends on EXPERIMENTAL
default n default n
---help--- ---help---
Sally Floyd's High Speed TCP (RFC 3649) congestion control. Sally Floyd's High Speed TCP (RFC 3649) congestion control.
@ -516,7 +501,7 @@ config TCP_CONG_HSTCP
config TCP_CONG_HYBLA config TCP_CONG_HYBLA
tristate "TCP-Hybla congestion control algorithm" tristate "TCP-Hybla congestion control algorithm"
depends on INET && EXPERIMENTAL depends on EXPERIMENTAL
default n default n
---help--- ---help---
TCP-Hybla is a sender-side only change that eliminates penalization of TCP-Hybla is a sender-side only change that eliminates penalization of
@ -526,7 +511,7 @@ config TCP_CONG_HYBLA
config TCP_CONG_VEGAS config TCP_CONG_VEGAS
tristate "TCP Vegas" tristate "TCP Vegas"
depends on INET && EXPERIMENTAL depends on EXPERIMENTAL
default n default n
---help--- ---help---
TCP Vegas is a sender-side only change to TCP that anticipates TCP Vegas is a sender-side only change to TCP that anticipates
@ -537,7 +522,7 @@ config TCP_CONG_VEGAS
config TCP_CONG_SCALABLE config TCP_CONG_SCALABLE
tristate "Scalable TCP" tristate "Scalable TCP"
depends on INET && EXPERIMENTAL depends on EXPERIMENTAL
default n default n
---help--- ---help---
Scalable TCP is a sender-side only change to TCP which uses a Scalable TCP is a sender-side only change to TCP which uses a

View File

@ -107,7 +107,6 @@ static int ip_dev_loopback_xmit(struct sk_buff *newskb)
newskb->pkt_type = PACKET_LOOPBACK; newskb->pkt_type = PACKET_LOOPBACK;
newskb->ip_summed = CHECKSUM_UNNECESSARY; newskb->ip_summed = CHECKSUM_UNNECESSARY;
BUG_TRAP(newskb->dst); BUG_TRAP(newskb->dst);
nf_reset(newskb);
netif_rx(newskb); netif_rx(newskb);
return 0; return 0;
} }
@ -188,14 +187,6 @@ static inline int ip_finish_output2(struct sk_buff *skb)
skb = skb2; skb = skb2;
} }
#ifdef CONFIG_BRIDGE_NETFILTER
/* bridge-netfilter defers calling some IP hooks to the bridge layer
* and still needs the conntrack reference.
*/
if (skb->nf_bridge == NULL)
#endif
nf_reset(skb);
if (hh) { if (hh) {
int hh_alen; int hh_alen;

View File

@ -2,11 +2,11 @@
# IP Virtual Server configuration # IP Virtual Server configuration
# #
menu "IP: Virtual Server Configuration" menu "IP: Virtual Server Configuration"
depends on INET && NETFILTER depends on NETFILTER
config IP_VS config IP_VS
tristate "IP virtual server support (EXPERIMENTAL)" tristate "IP virtual server support (EXPERIMENTAL)"
depends on INET && NETFILTER depends on NETFILTER
---help--- ---help---
IP Virtual Server support will let you build a high-performance IP Virtual Server support will let you build a high-performance
virtual server based on cluster of two or more real servers. This virtual server based on cluster of two or more real servers. This

View File

@ -758,7 +758,7 @@ static inline int todrop_entry(struct ip_vs_conn *cp)
return 1; return 1;
} }
/* Called from keventd and must protect itself from softirqs */
void ip_vs_random_dropentry(void) void ip_vs_random_dropentry(void)
{ {
int idx; int idx;
@ -773,7 +773,7 @@ void ip_vs_random_dropentry(void)
/* /*
* Lock is actually needed in this loop. * Lock is actually needed in this loop.
*/ */
ct_write_lock(hash); ct_write_lock_bh(hash);
list_for_each_entry(cp, &ip_vs_conn_tab[hash], c_list) { list_for_each_entry(cp, &ip_vs_conn_tab[hash], c_list) {
if (!cp->cport && !(cp->flags & IP_VS_CONN_F_NO_CPORT)) if (!cp->cport && !(cp->flags & IP_VS_CONN_F_NO_CPORT))
@ -806,7 +806,7 @@ void ip_vs_random_dropentry(void)
ip_vs_conn_expire_now(cp->control); ip_vs_conn_expire_now(cp->control);
} }
} }
ct_write_unlock(hash); ct_write_unlock_bh(hash);
} }
} }

View File

@ -90,7 +90,8 @@ int ip_vs_get_debug_level(void)
#endif #endif
/* /*
* update_defense_level is called from keventd and from sysctl. * update_defense_level is called from keventd and from sysctl,
* so it needs to protect itself from softirqs
*/ */
static void update_defense_level(void) static void update_defense_level(void)
{ {
@ -110,6 +111,8 @@ static void update_defense_level(void)
nomem = (availmem < sysctl_ip_vs_amemthresh); nomem = (availmem < sysctl_ip_vs_amemthresh);
local_bh_disable();
/* drop_entry */ /* drop_entry */
spin_lock(&__ip_vs_dropentry_lock); spin_lock(&__ip_vs_dropentry_lock);
switch (sysctl_ip_vs_drop_entry) { switch (sysctl_ip_vs_drop_entry) {
@ -206,6 +209,8 @@ static void update_defense_level(void)
if (to_change >= 0) if (to_change >= 0)
ip_vs_protocol_timeout_change(sysctl_ip_vs_secure_tcp>1); ip_vs_protocol_timeout_change(sysctl_ip_vs_secure_tcp>1);
write_unlock(&__ip_vs_securetcp_lock); write_unlock(&__ip_vs_securetcp_lock);
local_bh_enable();
} }
@ -1360,9 +1365,7 @@ proc_do_defense_mode(ctl_table *table, int write, struct file * filp,
/* Restore the correct value */ /* Restore the correct value */
*valp = val; *valp = val;
} else { } else {
local_bh_disable();
update_defense_level(); update_defense_level();
local_bh_enable();
} }
} }
return rc; return rc;

View File

@ -432,6 +432,13 @@ static unsigned int ip_conntrack_defrag(unsigned int hooknum,
const struct net_device *out, const struct net_device *out,
int (*okfn)(struct sk_buff *)) int (*okfn)(struct sk_buff *))
{ {
#if !defined(CONFIG_IP_NF_NAT) && !defined(CONFIG_IP_NF_NAT_MODULE)
/* Previously seen (loopback)? Ignore. Do this before
fragment check. */
if ((*pskb)->nfct)
return NF_ACCEPT;
#endif
/* Gather fragments. */ /* Gather fragments. */
if ((*pskb)->nh.iph->frag_off & htons(IP_MF|IP_OFFSET)) { if ((*pskb)->nh.iph->frag_off & htons(IP_MF|IP_OFFSET)) {
*pskb = ip_ct_gather_frags(*pskb, *pskb = ip_ct_gather_frags(*pskb,

View File

@ -1685,7 +1685,7 @@ static void ip_handle_martian_source(struct net_device *dev,
printk(KERN_WARNING "martian source %u.%u.%u.%u from " printk(KERN_WARNING "martian source %u.%u.%u.%u from "
"%u.%u.%u.%u, on dev %s\n", "%u.%u.%u.%u, on dev %s\n",
NIPQUAD(daddr), NIPQUAD(saddr), dev->name); NIPQUAD(daddr), NIPQUAD(saddr), dev->name);
if (dev->hard_header_len) { if (dev->hard_header_len && skb->mac.raw) {
int i; int i;
unsigned char *p = skb->mac.raw; unsigned char *p = skb->mac.raw;
printk(KERN_WARNING "ll header: "); printk(KERN_WARNING "ll header: ");

View File

@ -1,6 +1,26 @@
# #
# IPv6 configuration # IPv6 configuration
# #
# IPv6 as module will cause a CRASH if you try to unload it
config IPV6
tristate "The IPv6 protocol"
default m
select CRYPTO if IPV6_PRIVACY
select CRYPTO_MD5 if IPV6_PRIVACY
---help---
This is complemental support for the IP version 6.
You will still be able to do traditional IPv4 networking as well.
For general information about IPv6, see
<http://playground.sun.com/pub/ipng/html/ipng-main.html>.
For Linux IPv6 development information, see <http://www.linux-ipv6.org>.
For specific information about IPv6 under Linux, read the HOWTO at
<http://www.bieringer.de/linux/IPv6/>.
To compile this protocol support as a module, choose M here: the
module will be called ipv6.
config IPV6_PRIVACY config IPV6_PRIVACY
bool "IPv6: Privacy Extensions (RFC 3041) support" bool "IPv6: Privacy Extensions (RFC 3041) support"
depends on IPV6 depends on IPV6

View File

@ -1,6 +1,39 @@
# #
# IPX configuration # IPX configuration
# #
config IPX
tristate "The IPX protocol"
select LLC
---help---
This is support for the Novell networking protocol, IPX, commonly
used for local networks of Windows machines. You need it if you
want to access Novell NetWare file or print servers using the Linux
Novell client ncpfs (available from
<ftp://platan.vc.cvut.cz/pub/linux/ncpfs/>) or from
within the Linux DOS emulator DOSEMU (read the DOSEMU-HOWTO,
available from <http://www.tldp.org/docs.html#howto>). In order
to do the former, you'll also have to say Y to "NCP file system
support", below.
IPX is similar in scope to IP, while SPX, which runs on top of IPX,
is similar to TCP. There is also experimental support for SPX in
Linux (see "SPX networking", below).
To turn your Linux box into a fully featured NetWare file server and
IPX router, say Y here and fetch either lwared from
<ftp://ibiblio.org/pub/Linux/system/network/daemons/> or
mars_nwe from <ftp://www.compu-art.de/mars_nwe/>. For more
information, read the IPX-HOWTO available from
<http://www.tldp.org/docs.html#howto>.
General information about how to connect Linux, Windows machines and
Macs is on the WWW at <http://www.eats.com/linux_mac_win.html>.
The IPX driver would enlarge your kernel by about 16 KB. To compile
this driver as a module, choose M here: the module will be called ipx.
Unless you want to integrate your Linux box with a local Novell
network, say N.
config IPX_INTERN config IPX_INTERN
bool "IPX: Full internal IPX network" bool "IPX: Full internal IPX network"
depends on IPX depends on IPX

22
net/lapb/Kconfig Normal file
View File

@ -0,0 +1,22 @@
#
# LAPB Data Link Drive
#
config LAPB
tristate "LAPB Data Link Driver (EXPERIMENTAL)"
depends on EXPERIMENTAL
---help---
Link Access Procedure, Balanced (LAPB) is the data link layer (i.e.
the lower) part of the X.25 protocol. It offers a reliable
connection service to exchange data frames with one other host, and
it is used to transport higher level protocols (mostly X.25 Packet
Layer, the higher part of X.25, but others are possible as well).
Usually, LAPB is used with specialized X.21 network cards, but Linux
currently supports LAPB only over Ethernet connections. If you want
to use LAPB connections over Ethernet, say Y here and to "LAPB over
Ethernet driver" below. Read
<file:Documentation/networking/lapb-module.txt> for technical
details.
To compile this driver as a module, choose M here: the
module will be called lapb. If unsure, say N.

26
net/packet/Kconfig Normal file
View File

@ -0,0 +1,26 @@
#
# Packet configuration
#
config PACKET
tristate "Packet socket"
---help---
The Packet protocol is used by applications which communicate
directly with network devices without an intermediate network
protocol implemented in the kernel, e.g. tcpdump. If you want them
to work, choose Y.
To compile this driver as a module, choose M here: the module will
be called af_packet.
If unsure, say Y.
config PACKET_MMAP
bool "Packet socket: mmapped IO"
depends on PACKET
help
If you say Y here, the Packet protocol driver will use an IO
mechanism that results in faster communication.
If unsure, say N.

View File

@ -274,6 +274,9 @@ static int packet_rcv_spkt(struct sk_buff *skb, struct net_device *dev, struct
dst_release(skb->dst); dst_release(skb->dst);
skb->dst = NULL; skb->dst = NULL;
/* drop conntrack reference */
nf_reset(skb);
spkt = (struct sockaddr_pkt*)skb->cb; spkt = (struct sockaddr_pkt*)skb->cb;
skb_push(skb, skb->data-skb->mac.raw); 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
dst_release(skb->dst); dst_release(skb->dst);
skb->dst = NULL; skb->dst = NULL;
/* drop conntrack reference */
nf_reset(skb);
spin_lock(&sk->sk_receive_queue.lock); spin_lock(&sk->sk_receive_queue.lock);
po->stats.tp_packets++; po->stats.tp_packets++;
__skb_queue_tail(&sk->sk_receive_queue, skb); __skb_queue_tail(&sk->sk_receive_queue, skb);

View File

@ -1,6 +1,43 @@
# #
# Traffic control configuration. # Traffic control configuration.
# #
menuconfig NET_SCHED
bool "QoS and/or fair queueing"
---help---
When the kernel has several packets to send out over a network
device, it has to decide which ones to send first, which ones to
delay, and which ones to drop. This is the job of the packet
scheduler, and several different algorithms for how to do this
"fairly" have been proposed.
If you say N here, you will get the standard packet scheduler, which
is a FIFO (first come, first served). If you say Y here, you will be
able to choose from among several alternative algorithms which can
then be attached to different network devices. This is useful for
example if some of your network devices are real time devices that
need a certain minimum data flow rate, or if you need to limit the
maximum data flow rate for traffic which matches specified criteria.
This code is considered to be experimental.
To administer these schedulers, you'll need the user-level utilities
from the package iproute2+tc at <ftp://ftp.tux.org/pub/net/ip-routing/>.
That package also contains some documentation; for more, check out
<http://snafu.freedom.org/linux2.2/iproute-notes.html>.
This Quality of Service (QoS) support will enable you to use
Differentiated Services (diffserv) and Resource Reservation Protocol
(RSVP) on your Linux router if you also say Y to "QoS support",
"Packet classifier API" and to some classifiers below. Documentation
and software is at <http://diffserv.sourceforge.net/>.
If you say Y here and to "/proc file system" below, you will be able
to read status information about packet schedulers from the file
/proc/net/psched.
The available schedulers are listed in the following questions; you
can say Y to as many as you like. If unsure, say N now.
choice choice
prompt "Packet scheduler clock source" prompt "Packet scheduler clock source"
depends on NET_SCHED depends on NET_SCHED

View File

@ -71,7 +71,7 @@ static struct sctp_association *sctp_association_init(struct sctp_association *a
const struct sctp_endpoint *ep, const struct sctp_endpoint *ep,
const struct sock *sk, const struct sock *sk,
sctp_scope_t scope, sctp_scope_t scope,
int gfp) unsigned int __nocast gfp)
{ {
struct sctp_sock *sp; struct sctp_sock *sp;
int i; int i;
@ -272,7 +272,8 @@ fail_init:
/* Allocate and initialize a new association */ /* Allocate and initialize a new association */
struct sctp_association *sctp_association_new(const struct sctp_endpoint *ep, struct sctp_association *sctp_association_new(const struct sctp_endpoint *ep,
const struct sock *sk, const struct sock *sk,
sctp_scope_t scope, int gfp) sctp_scope_t scope,
unsigned int __nocast gfp)
{ {
struct sctp_association *asoc; struct sctp_association *asoc;
@ -478,7 +479,7 @@ void sctp_assoc_rm_peer(struct sctp_association *asoc,
/* Add a transport address to an association. */ /* Add a transport address to an association. */
struct sctp_transport *sctp_assoc_add_peer(struct sctp_association *asoc, struct sctp_transport *sctp_assoc_add_peer(struct sctp_association *asoc,
const union sctp_addr *addr, const union sctp_addr *addr,
const int gfp, const unsigned int __nocast gfp,
const int peer_state) const int peer_state)
{ {
struct sctp_transport *peer; struct sctp_transport *peer;
@ -1229,7 +1230,8 @@ void sctp_assoc_rwnd_decrease(struct sctp_association *asoc, unsigned len)
/* Build the bind address list for the association based on info from the /* Build the bind address list for the association based on info from the
* local endpoint and the remote peer. * local endpoint and the remote peer.
*/ */
int sctp_assoc_set_bind_addr_from_ep(struct sctp_association *asoc, int gfp) int sctp_assoc_set_bind_addr_from_ep(struct sctp_association *asoc,
unsigned int __nocast gfp)
{ {
sctp_scope_t scope; sctp_scope_t scope;
int flags; int flags;
@ -1251,7 +1253,8 @@ int sctp_assoc_set_bind_addr_from_ep(struct sctp_association *asoc, int gfp)
/* Build the association's bind address list from the cookie. */ /* Build the association's bind address list from the cookie. */
int sctp_assoc_set_bind_addr_from_cookie(struct sctp_association *asoc, int sctp_assoc_set_bind_addr_from_cookie(struct sctp_association *asoc,
struct sctp_cookie *cookie, int gfp) struct sctp_cookie *cookie,
unsigned int __nocast gfp)
{ {
int var_size2 = ntohs(cookie->peer_init->chunk_hdr.length); int var_size2 = ntohs(cookie->peer_init->chunk_hdr.length);
int var_size3 = cookie->raw_addr_list_len; int var_size3 = cookie->raw_addr_list_len;

View File

@ -53,7 +53,8 @@
/* Forward declarations for internal helpers. */ /* Forward declarations for internal helpers. */
static int sctp_copy_one_addr(struct sctp_bind_addr *, union sctp_addr *, static int sctp_copy_one_addr(struct sctp_bind_addr *, union sctp_addr *,
sctp_scope_t scope, int gfp, int flags); sctp_scope_t scope, unsigned int __nocast gfp,
int flags);
static void sctp_bind_addr_clean(struct sctp_bind_addr *); static void sctp_bind_addr_clean(struct sctp_bind_addr *);
/* First Level Abstractions. */ /* First Level Abstractions. */
@ -63,7 +64,8 @@ static void sctp_bind_addr_clean(struct sctp_bind_addr *);
*/ */
int sctp_bind_addr_copy(struct sctp_bind_addr *dest, int sctp_bind_addr_copy(struct sctp_bind_addr *dest,
const struct sctp_bind_addr *src, const struct sctp_bind_addr *src,
sctp_scope_t scope, int gfp, int flags) sctp_scope_t scope, unsigned int __nocast gfp,
int flags)
{ {
struct sctp_sockaddr_entry *addr; struct sctp_sockaddr_entry *addr;
struct list_head *pos; struct list_head *pos;
@ -144,7 +146,7 @@ void sctp_bind_addr_free(struct sctp_bind_addr *bp)
/* Add an address to the bind address list in the SCTP_bind_addr structure. */ /* Add an address to the bind address list in the SCTP_bind_addr structure. */
int sctp_add_bind_addr(struct sctp_bind_addr *bp, union sctp_addr *new, int sctp_add_bind_addr(struct sctp_bind_addr *bp, union sctp_addr *new,
int gfp) unsigned int __nocast gfp)
{ {
struct sctp_sockaddr_entry *addr; struct sctp_sockaddr_entry *addr;
@ -197,7 +199,8 @@ int sctp_del_bind_addr(struct sctp_bind_addr *bp, union sctp_addr *del_addr)
* The second argument is the return value for the length. * The second argument is the return value for the length.
*/ */
union sctp_params sctp_bind_addrs_to_raw(const struct sctp_bind_addr *bp, union sctp_params sctp_bind_addrs_to_raw(const struct sctp_bind_addr *bp,
int *addrs_len, int gfp) int *addrs_len,
unsigned int __nocast gfp)
{ {
union sctp_params addrparms; union sctp_params addrparms;
union sctp_params retval; union sctp_params retval;
@ -249,7 +252,7 @@ end_raw:
* address parameters). * address parameters).
*/ */
int sctp_raw_to_bind_addrs(struct sctp_bind_addr *bp, __u8 *raw_addr_list, int sctp_raw_to_bind_addrs(struct sctp_bind_addr *bp, __u8 *raw_addr_list,
int addrs_len, __u16 port, int gfp) int addrs_len, __u16 port, unsigned int __nocast gfp)
{ {
union sctp_addr_param *rawaddr; union sctp_addr_param *rawaddr;
struct sctp_paramhdr *param; struct sctp_paramhdr *param;
@ -347,7 +350,8 @@ union sctp_addr *sctp_find_unmatch_addr(struct sctp_bind_addr *bp,
/* Copy out addresses from the global local address list. */ /* Copy out addresses from the global local address list. */
static int sctp_copy_one_addr(struct sctp_bind_addr *dest, static int sctp_copy_one_addr(struct sctp_bind_addr *dest,
union sctp_addr *addr, union sctp_addr *addr,
sctp_scope_t scope, int gfp, int flags) sctp_scope_t scope, unsigned int __nocast gfp,
int flags)
{ {
int error = 0; int error = 0;

View File

@ -62,7 +62,7 @@ static void sctp_datamsg_init(struct sctp_datamsg *msg)
} }
/* Allocate and initialize datamsg. */ /* Allocate and initialize datamsg. */
SCTP_STATIC struct sctp_datamsg *sctp_datamsg_new(int gfp) SCTP_STATIC struct sctp_datamsg *sctp_datamsg_new(unsigned int __nocast gfp)
{ {
struct sctp_datamsg *msg; struct sctp_datamsg *msg;
msg = kmalloc(sizeof(struct sctp_datamsg), gfp); msg = kmalloc(sizeof(struct sctp_datamsg), gfp);

View File

@ -67,7 +67,8 @@ static void sctp_endpoint_bh_rcv(struct sctp_endpoint *ep);
* Initialize the base fields of the endpoint structure. * Initialize the base fields of the endpoint structure.
*/ */
static struct sctp_endpoint *sctp_endpoint_init(struct sctp_endpoint *ep, static struct sctp_endpoint *sctp_endpoint_init(struct sctp_endpoint *ep,
struct sock *sk, int gfp) struct sock *sk,
unsigned int __nocast gfp)
{ {
struct sctp_sock *sp = sctp_sk(sk); struct sctp_sock *sp = sctp_sk(sk);
memset(ep, 0, sizeof(struct sctp_endpoint)); memset(ep, 0, sizeof(struct sctp_endpoint));
@ -137,7 +138,8 @@ static struct sctp_endpoint *sctp_endpoint_init(struct sctp_endpoint *ep,
/* Create a sctp_endpoint with all that boring stuff initialized. /* Create a sctp_endpoint with all that boring stuff initialized.
* Returns NULL if there isn't enough memory. * Returns NULL if there isn't enough memory.
*/ */
struct sctp_endpoint *sctp_endpoint_new(struct sock *sk, int gfp) struct sctp_endpoint *sctp_endpoint_new(struct sock *sk,
unsigned int __nocast gfp)
{ {
struct sctp_endpoint *ep; struct sctp_endpoint *ep;

View File

@ -219,7 +219,7 @@ static void sctp_free_local_addr_list(void)
/* Copy the local addresses which are valid for 'scope' into 'bp'. */ /* Copy the local addresses which are valid for 'scope' into 'bp'. */
int sctp_copy_local_addr_list(struct sctp_bind_addr *bp, sctp_scope_t scope, int sctp_copy_local_addr_list(struct sctp_bind_addr *bp, sctp_scope_t scope,
int gfp, int copy_flags) unsigned int __nocast gfp, int copy_flags)
{ {
struct sctp_sockaddr_entry *addr; struct sctp_sockaddr_entry *addr;
int error = 0; int error = 0;

View File

@ -78,7 +78,7 @@ static sctp_cookie_param_t *sctp_pack_cookie(const struct sctp_endpoint *ep,
static int sctp_process_param(struct sctp_association *asoc, static int sctp_process_param(struct sctp_association *asoc,
union sctp_params param, union sctp_params param,
const union sctp_addr *peer_addr, const union sctp_addr *peer_addr,
int gfp); unsigned int __nocast gfp);
/* What was the inbound interface for this chunk? */ /* What was the inbound interface for this chunk? */
int sctp_chunk_iif(const struct sctp_chunk *chunk) int sctp_chunk_iif(const struct sctp_chunk *chunk)
@ -174,7 +174,7 @@ void sctp_init_cause(struct sctp_chunk *chunk, __u16 cause_code,
*/ */
struct sctp_chunk *sctp_make_init(const struct sctp_association *asoc, struct sctp_chunk *sctp_make_init(const struct sctp_association *asoc,
const struct sctp_bind_addr *bp, const struct sctp_bind_addr *bp,
int gfp, int vparam_len) unsigned int __nocast gfp, int vparam_len)
{ {
sctp_inithdr_t init; sctp_inithdr_t init;
union sctp_params addrs; union sctp_params addrs;
@ -261,7 +261,7 @@ nodata:
struct sctp_chunk *sctp_make_init_ack(const struct sctp_association *asoc, struct sctp_chunk *sctp_make_init_ack(const struct sctp_association *asoc,
const struct sctp_chunk *chunk, const struct sctp_chunk *chunk,
int gfp, int unkparam_len) unsigned int __nocast gfp, int unkparam_len)
{ {
sctp_inithdr_t initack; sctp_inithdr_t initack;
struct sctp_chunk *retval; struct sctp_chunk *retval;
@ -1233,7 +1233,8 @@ void sctp_chunk_assign_tsn(struct sctp_chunk *chunk)
/* Create a CLOSED association to use with an incoming packet. */ /* Create a CLOSED association to use with an incoming packet. */
struct sctp_association *sctp_make_temp_asoc(const struct sctp_endpoint *ep, struct sctp_association *sctp_make_temp_asoc(const struct sctp_endpoint *ep,
struct sctp_chunk *chunk, int gfp) struct sctp_chunk *chunk,
unsigned int __nocast gfp)
{ {
struct sctp_association *asoc; struct sctp_association *asoc;
struct sk_buff *skb; struct sk_buff *skb;
@ -1348,7 +1349,7 @@ nodata:
struct sctp_association *sctp_unpack_cookie( struct sctp_association *sctp_unpack_cookie(
const struct sctp_endpoint *ep, const struct sctp_endpoint *ep,
const struct sctp_association *asoc, const struct sctp_association *asoc,
struct sctp_chunk *chunk, int gfp, struct sctp_chunk *chunk, unsigned int __nocast gfp,
int *error, struct sctp_chunk **errp) int *error, struct sctp_chunk **errp)
{ {
struct sctp_association *retval = NULL; struct sctp_association *retval = NULL;
@ -1812,7 +1813,7 @@ int sctp_verify_init(const struct sctp_association *asoc,
*/ */
int sctp_process_init(struct sctp_association *asoc, sctp_cid_t cid, int sctp_process_init(struct sctp_association *asoc, sctp_cid_t cid,
const union sctp_addr *peer_addr, const union sctp_addr *peer_addr,
sctp_init_chunk_t *peer_init, int gfp) sctp_init_chunk_t *peer_init, unsigned int __nocast gfp)
{ {
union sctp_params param; union sctp_params param;
struct sctp_transport *transport; struct sctp_transport *transport;
@ -1983,7 +1984,7 @@ nomem:
static int sctp_process_param(struct sctp_association *asoc, static int sctp_process_param(struct sctp_association *asoc,
union sctp_params param, union sctp_params param,
const union sctp_addr *peer_addr, const union sctp_addr *peer_addr,
int gfp) unsigned int __nocast gfp)
{ {
union sctp_addr addr; union sctp_addr addr;
int i; int i;

View File

@ -63,7 +63,7 @@ static int sctp_cmd_interpreter(sctp_event_t event_type,
void *event_arg, void *event_arg,
sctp_disposition_t status, sctp_disposition_t status,
sctp_cmd_seq_t *commands, sctp_cmd_seq_t *commands,
int gfp); unsigned int __nocast gfp);
static int sctp_side_effects(sctp_event_t event_type, sctp_subtype_t subtype, static int sctp_side_effects(sctp_event_t event_type, sctp_subtype_t subtype,
sctp_state_t state, sctp_state_t state,
struct sctp_endpoint *ep, struct sctp_endpoint *ep,
@ -71,7 +71,7 @@ static int sctp_side_effects(sctp_event_t event_type, sctp_subtype_t subtype,
void *event_arg, void *event_arg,
sctp_disposition_t status, sctp_disposition_t status,
sctp_cmd_seq_t *commands, sctp_cmd_seq_t *commands,
int gfp); unsigned int __nocast gfp);
/******************************************************************** /********************************************************************
* Helper functions * Helper functions
@ -497,7 +497,8 @@ static void sctp_cmd_assoc_failed(sctp_cmd_seq_t *commands,
static int sctp_cmd_process_init(sctp_cmd_seq_t *commands, static int sctp_cmd_process_init(sctp_cmd_seq_t *commands,
struct sctp_association *asoc, struct sctp_association *asoc,
struct sctp_chunk *chunk, struct sctp_chunk *chunk,
sctp_init_chunk_t *peer_init, int gfp) sctp_init_chunk_t *peer_init,
unsigned int __nocast gfp)
{ {
int error; int error;
@ -852,7 +853,7 @@ int sctp_do_sm(sctp_event_t event_type, sctp_subtype_t subtype,
struct sctp_endpoint *ep, struct sctp_endpoint *ep,
struct sctp_association *asoc, struct sctp_association *asoc,
void *event_arg, void *event_arg,
int gfp) unsigned int __nocast gfp)
{ {
sctp_cmd_seq_t commands; sctp_cmd_seq_t commands;
const sctp_sm_table_entry_t *state_fn; 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,
void *event_arg, void *event_arg,
sctp_disposition_t status, sctp_disposition_t status,
sctp_cmd_seq_t *commands, sctp_cmd_seq_t *commands,
int gfp) unsigned int __nocast gfp)
{ {
int error; int error;
@ -985,7 +986,7 @@ static int sctp_cmd_interpreter(sctp_event_t event_type,
void *event_arg, void *event_arg,
sctp_disposition_t status, sctp_disposition_t status,
sctp_cmd_seq_t *commands, sctp_cmd_seq_t *commands,
int gfp) unsigned int __nocast gfp)
{ {
int error = 0; int error = 0;
int force; int force;

View File

@ -57,7 +57,8 @@ static inline size_t sctp_ssnmap_size(__u16 in, __u16 out)
/* Create a new sctp_ssnmap. /* Create a new sctp_ssnmap.
* Allocate room to store at least 'len' contiguous TSNs. * Allocate room to store at least 'len' contiguous TSNs.
*/ */
struct sctp_ssnmap *sctp_ssnmap_new(__u16 in, __u16 out, int gfp) struct sctp_ssnmap *sctp_ssnmap_new(__u16 in, __u16 out,
unsigned int __nocast gfp)
{ {
struct sctp_ssnmap *retval; struct sctp_ssnmap *retval;
int size; int size;

View File

@ -57,7 +57,7 @@
/* Initialize a new transport from provided memory. */ /* Initialize a new transport from provided memory. */
static struct sctp_transport *sctp_transport_init(struct sctp_transport *peer, static struct sctp_transport *sctp_transport_init(struct sctp_transport *peer,
const union sctp_addr *addr, const union sctp_addr *addr,
int gfp) unsigned int __nocast gfp)
{ {
/* Copy in the address. */ /* Copy in the address. */
peer->ipaddr = *addr; peer->ipaddr = *addr;
@ -121,7 +121,8 @@ static struct sctp_transport *sctp_transport_init(struct sctp_transport *peer,
} }
/* Allocate and initialize a new transport. */ /* Allocate and initialize a new transport. */
struct sctp_transport *sctp_transport_new(const union sctp_addr *addr, int gfp) struct sctp_transport *sctp_transport_new(const union sctp_addr *addr,
unsigned int __nocast gfp)
{ {
struct sctp_transport *transport; struct sctp_transport *transport;

View File

@ -74,7 +74,7 @@ SCTP_STATIC void sctp_ulpevent_init(struct sctp_ulpevent *event, int msg_flags)
/* Create a new sctp_ulpevent. */ /* Create a new sctp_ulpevent. */
SCTP_STATIC struct sctp_ulpevent *sctp_ulpevent_new(int size, int msg_flags, SCTP_STATIC struct sctp_ulpevent *sctp_ulpevent_new(int size, int msg_flags,
int gfp) unsigned int __nocast gfp)
{ {
struct sctp_ulpevent *event; struct sctp_ulpevent *event;
struct sk_buff *skb; struct sk_buff *skb;
@ -136,7 +136,7 @@ static inline void sctp_ulpevent_release_owner(struct sctp_ulpevent *event)
struct sctp_ulpevent *sctp_ulpevent_make_assoc_change( struct sctp_ulpevent *sctp_ulpevent_make_assoc_change(
const struct sctp_association *asoc, const struct sctp_association *asoc,
__u16 flags, __u16 state, __u16 error, __u16 outbound, __u16 flags, __u16 state, __u16 error, __u16 outbound,
__u16 inbound, int gfp) __u16 inbound, unsigned int __nocast gfp)
{ {
struct sctp_ulpevent *event; struct sctp_ulpevent *event;
struct sctp_assoc_change *sac; struct sctp_assoc_change *sac;
@ -237,7 +237,7 @@ fail:
struct sctp_ulpevent *sctp_ulpevent_make_peer_addr_change( struct sctp_ulpevent *sctp_ulpevent_make_peer_addr_change(
const struct sctp_association *asoc, const struct sctp_association *asoc,
const struct sockaddr_storage *aaddr, const struct sockaddr_storage *aaddr,
int flags, int state, int error, int gfp) int flags, int state, int error, unsigned int __nocast gfp)
{ {
struct sctp_ulpevent *event; struct sctp_ulpevent *event;
struct sctp_paddr_change *spc; struct sctp_paddr_change *spc;
@ -350,7 +350,7 @@ fail:
*/ */
struct sctp_ulpevent *sctp_ulpevent_make_remote_error( struct sctp_ulpevent *sctp_ulpevent_make_remote_error(
const struct sctp_association *asoc, struct sctp_chunk *chunk, const struct sctp_association *asoc, struct sctp_chunk *chunk,
__u16 flags, int gfp) __u16 flags, unsigned int __nocast gfp)
{ {
struct sctp_ulpevent *event; struct sctp_ulpevent *event;
struct sctp_remote_error *sre; struct sctp_remote_error *sre;
@ -448,7 +448,7 @@ fail:
*/ */
struct sctp_ulpevent *sctp_ulpevent_make_send_failed( struct sctp_ulpevent *sctp_ulpevent_make_send_failed(
const struct sctp_association *asoc, struct sctp_chunk *chunk, const struct sctp_association *asoc, struct sctp_chunk *chunk,
__u16 flags, __u32 error, int gfp) __u16 flags, __u32 error, unsigned int __nocast gfp)
{ {
struct sctp_ulpevent *event; struct sctp_ulpevent *event;
struct sctp_send_failed *ssf; struct sctp_send_failed *ssf;
@ -557,7 +557,7 @@ fail:
*/ */
struct sctp_ulpevent *sctp_ulpevent_make_shutdown_event( struct sctp_ulpevent *sctp_ulpevent_make_shutdown_event(
const struct sctp_association *asoc, const struct sctp_association *asoc,
__u16 flags, int gfp) __u16 flags, unsigned int __nocast gfp)
{ {
struct sctp_ulpevent *event; struct sctp_ulpevent *event;
struct sctp_shutdown_event *sse; struct sctp_shutdown_event *sse;
@ -620,7 +620,7 @@ fail:
* 5.3.1.6 SCTP_ADAPTION_INDICATION * 5.3.1.6 SCTP_ADAPTION_INDICATION
*/ */
struct sctp_ulpevent *sctp_ulpevent_make_adaption_indication( struct sctp_ulpevent *sctp_ulpevent_make_adaption_indication(
const struct sctp_association *asoc, int gfp) const struct sctp_association *asoc, unsigned int __nocast gfp)
{ {
struct sctp_ulpevent *event; struct sctp_ulpevent *event;
struct sctp_adaption_event *sai; struct sctp_adaption_event *sai;
@ -657,7 +657,7 @@ fail:
*/ */
struct sctp_ulpevent *sctp_ulpevent_make_rcvmsg(struct sctp_association *asoc, struct sctp_ulpevent *sctp_ulpevent_make_rcvmsg(struct sctp_association *asoc,
struct sctp_chunk *chunk, struct sctp_chunk *chunk,
int gfp) unsigned int __nocast gfp)
{ {
struct sctp_ulpevent *event = NULL; struct sctp_ulpevent *event = NULL;
struct sk_buff *skb; struct sk_buff *skb;
@ -718,7 +718,8 @@ fail:
* various events. * various events.
*/ */
struct sctp_ulpevent *sctp_ulpevent_make_pdapi( struct sctp_ulpevent *sctp_ulpevent_make_pdapi(
const struct sctp_association *asoc, __u32 indication, int gfp) const struct sctp_association *asoc, __u32 indication,
unsigned int __nocast gfp)
{ {
struct sctp_ulpevent *event; struct sctp_ulpevent *event;
struct sctp_pdapi_event *pd; struct sctp_pdapi_event *pd;

View File

@ -100,7 +100,7 @@ void sctp_ulpq_free(struct sctp_ulpq *ulpq)
/* Process an incoming DATA chunk. */ /* Process an incoming DATA chunk. */
int sctp_ulpq_tail_data(struct sctp_ulpq *ulpq, struct sctp_chunk *chunk, int sctp_ulpq_tail_data(struct sctp_ulpq *ulpq, struct sctp_chunk *chunk,
int gfp) unsigned int __nocast gfp)
{ {
struct sk_buff_head temp; struct sk_buff_head temp;
sctp_data_chunk_t *hdr; sctp_data_chunk_t *hdr;
@ -778,7 +778,8 @@ static __u16 sctp_ulpq_renege_frags(struct sctp_ulpq *ulpq, __u16 needed)
/* Partial deliver the first message as there is pressure on rwnd. */ /* Partial deliver the first message as there is pressure on rwnd. */
void sctp_ulpq_partial_delivery(struct sctp_ulpq *ulpq, void sctp_ulpq_partial_delivery(struct sctp_ulpq *ulpq,
struct sctp_chunk *chunk, int gfp) struct sctp_chunk *chunk,
unsigned int __nocast gfp)
{ {
struct sctp_ulpevent *event; struct sctp_ulpevent *event;
struct sctp_association *asoc; struct sctp_association *asoc;
@ -802,7 +803,7 @@ void sctp_ulpq_partial_delivery(struct sctp_ulpq *ulpq,
/* Renege some packets to make room for an incoming chunk. */ /* Renege some packets to make room for an incoming chunk. */
void sctp_ulpq_renege(struct sctp_ulpq *ulpq, struct sctp_chunk *chunk, void sctp_ulpq_renege(struct sctp_ulpq *ulpq, struct sctp_chunk *chunk,
int gfp) unsigned int __nocast gfp)
{ {
struct sctp_association *asoc; struct sctp_association *asoc;
__u16 needed, freed; __u16 needed, freed;
@ -841,7 +842,7 @@ void sctp_ulpq_renege(struct sctp_ulpq *ulpq, struct sctp_chunk *chunk,
/* Notify the application if an association is aborted and in /* Notify the application if an association is aborted and in
* partial delivery mode. Send up any pending received messages. * partial delivery mode. Send up any pending received messages.
*/ */
void sctp_ulpq_abort_pd(struct sctp_ulpq *ulpq, int gfp) void sctp_ulpq_abort_pd(struct sctp_ulpq *ulpq, unsigned int __nocast gfp)
{ {
struct sctp_ulpevent *ev = NULL; struct sctp_ulpevent *ev = NULL;
struct sock *sk; struct sock *sk;

21
net/unix/Kconfig Normal file
View File

@ -0,0 +1,21 @@
#
# Unix Domain Sockets
#
config UNIX
tristate "Unix domain sockets"
---help---
If you say Y here, you will include support for Unix domain sockets;
sockets are the standard Unix mechanism for establishing and
accessing network connections. Many commonly used programs such as
the X Window system and syslog use these sockets even if your
machine is not connected to any network. Unless you are working on
an embedded system or something similar, you therefore definitely
want to say Y here.
To compile this driver as a module, choose M here: the module will be
called unix. Note that several important services won't work
correctly if you say M here and then neglect to load the module.
Say Y unless you know what you are doing.

29
net/wanrouter/Kconfig Normal file
View File

@ -0,0 +1,29 @@
#
# Configuration for WAN router
#
config WAN_ROUTER
tristate "WAN router"
depends on EXPERIMENTAL
---help---
Wide Area Networks (WANs), such as X.25, frame relay and leased
lines, are used to interconnect Local Area Networks (LANs) over vast
distances with data transfer rates significantly higher than those
achievable with commonly used asynchronous modem connections.
Usually, a quite expensive external device called a `WAN router' is
needed to connect to a WAN.
As an alternative, WAN routing can be built into the Linux kernel.
With relatively inexpensive WAN interface cards available on the
market, a perfectly usable router can be built for less than half
the price of an external router. If you have one of those cards and
wish to use your Linux box as a WAN router, say Y here and also to
the WAN driver for your card, below. You will then need the
wan-tools package which is available from <ftp://ftp.sangoma.com/>.
Read <file:Documentation/networking/wan-router.txt> for more
information.
To compile WAN routing support as a module, choose M here: the
module will be called wanrouter.
If unsure, say N.

View File

@ -358,10 +358,10 @@ int wanrouter_encapsulate(struct sk_buff *skb, struct net_device *dev,
*/ */
unsigned short wanrouter_type_trans(struct sk_buff *skb, struct net_device *dev) __be16 wanrouter_type_trans(struct sk_buff *skb, struct net_device *dev)
{ {
int cnt = skb->data[0] ? 0 : 1; /* there may be a pad present */ int cnt = skb->data[0] ? 0 : 1; /* there may be a pad present */
unsigned short ethertype; __be16 ethertype;
switch (skb->data[cnt]) { switch (skb->data[cnt]) {
case NLPID_IP: /* IP datagramm */ case NLPID_IP: /* IP datagramm */
@ -379,7 +379,7 @@ unsigned short wanrouter_type_trans(struct sk_buff *skb, struct net_device *dev)
skb->data[cnt+3], dev->name); skb->data[cnt+3], dev->name);
return 0; return 0;
} }
ethertype = *((unsigned short*)&skb->data[cnt+4]); ethertype = *((__be16*)&skb->data[cnt+4]);
cnt += 6; cnt += 6;
break; break;

36
net/x25/Kconfig Normal file
View File

@ -0,0 +1,36 @@
#
# CCITT X.25 Packet Layer
#
config X25
tristate "CCITT X.25 Packet Layer (EXPERIMENTAL)"
depends on EXPERIMENTAL
---help---
X.25 is a set of standardized network protocols, similar in scope to
frame relay; the one physical line from your box to the X.25 network
entry point can carry several logical point-to-point connections
(called "virtual circuits") to other computers connected to the X.25
network. Governments, banks, and other organizations tend to use it
to connect to each other or to form Wide Area Networks (WANs). Many
countries have public X.25 networks. X.25 consists of two
protocols: the higher level Packet Layer Protocol (PLP) (say Y here
if you want that) and the lower level data link layer protocol LAPB
(say Y to "LAPB Data Link Driver" below if you want that).
You can read more about X.25 at <http://www.sangoma.com/x25.htm> and
<http://www.cisco.com/univercd/cc/td/doc/product/software/ios11/cbook/cx25.htm>.
Information about X.25 for Linux is contained in the files
<file:Documentation/networking/x25.txt> and
<file:Documentation/networking/x25-iface.txt>.
One connects to an X.25 network either with a dedicated network card
using the X.21 protocol (not yet supported by Linux) or one can do
X.25 over a standard telephone line using an ordinary modem (say Y
to "X.25 async driver" below) or over Ethernet using an ordinary
Ethernet card and the LAPB over Ethernet (say Y to "LAPB Data Link
Driver" and "LAPB over Ethernet driver" below).
To compile this driver as a module, choose M here: the module
will be called x25. If unsure, say N.

View File

@ -1,6 +1,10 @@
# #
# XFRM configuration # XFRM configuration
# #
config XFRM
bool
depends on NET
config XFRM_USER config XFRM_USER
tristate "IPsec user configuration interface" tristate "IPsec user configuration interface"
depends on INET && XFRM depends on INET && XFRM
@ -10,3 +14,14 @@ config XFRM_USER
If unsure, say Y. If unsure, say Y.
config NET_KEY
tristate "PF_KEY sockets"
select XFRM
---help---
PF_KEYv2 socket family, compatible to KAME ones.
They are required if you are going to use IPsec tools ported
from KAME.
Say Y unless you know what you are doing.