mirror of https://gitee.com/openkylin/linux.git
Merge master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
This commit is contained in:
commit
9ffc7a0ebf
|
@ -596,6 +596,8 @@ source "fs/Kconfig.binfmt"
|
|||
|
||||
endmenu
|
||||
|
||||
source "net/Kconfig"
|
||||
|
||||
source "drivers/Kconfig"
|
||||
|
||||
source "fs/Kconfig"
|
||||
|
|
|
@ -700,6 +700,8 @@ config APM
|
|||
|
||||
endmenu
|
||||
|
||||
source "net/Kconfig"
|
||||
|
||||
menu "Device Drivers"
|
||||
|
||||
source "drivers/base/Kconfig"
|
||||
|
@ -732,7 +734,7 @@ source "drivers/ieee1394/Kconfig"
|
|||
|
||||
source "drivers/message/i2o/Kconfig"
|
||||
|
||||
source "net/Kconfig"
|
||||
source "drivers/net/Kconfig"
|
||||
|
||||
source "drivers/isdn/Kconfig"
|
||||
|
||||
|
|
|
@ -183,6 +183,8 @@ source "mm/Kconfig"
|
|||
|
||||
endmenu
|
||||
|
||||
source "net/Kconfig"
|
||||
|
||||
source "drivers/base/Kconfig"
|
||||
|
||||
source "drivers/parport/Kconfig"
|
||||
|
@ -193,7 +195,7 @@ source "drivers/block/Kconfig"
|
|||
|
||||
source "drivers/md/Kconfig"
|
||||
|
||||
source "net/Kconfig"
|
||||
source "drivers/net/Kconfig"
|
||||
|
||||
source "drivers/ide/Kconfig"
|
||||
|
||||
|
|
|
@ -122,6 +122,8 @@ source arch/cris/arch-v10/Kconfig
|
|||
|
||||
endmenu
|
||||
|
||||
source "net/Kconfig"
|
||||
|
||||
# bring in ETRAX built-in drivers
|
||||
menu "Drivers for built-in interfaces"
|
||||
source arch/cris/arch-v10/drivers/Kconfig
|
||||
|
@ -149,7 +151,7 @@ source "drivers/ieee1394/Kconfig"
|
|||
|
||||
source "drivers/message/i2o/Kconfig"
|
||||
|
||||
source "net/Kconfig"
|
||||
source "drivers/net/Kconfig"
|
||||
|
||||
source "drivers/isdn/Kconfig"
|
||||
|
||||
|
|
|
@ -346,6 +346,8 @@ source "fs/Kconfig.binfmt"
|
|||
|
||||
endmenu
|
||||
|
||||
source "net/Kconfig"
|
||||
|
||||
source "drivers/Kconfig"
|
||||
|
||||
source "fs/Kconfig"
|
||||
|
|
|
@ -55,6 +55,8 @@ source "fs/Kconfig.binfmt"
|
|||
|
||||
endmenu
|
||||
|
||||
source "net/Kconfig"
|
||||
|
||||
source "drivers/base/Kconfig"
|
||||
|
||||
source "drivers/mtd/Kconfig"
|
||||
|
@ -65,7 +67,7 @@ source "drivers/ide/Kconfig"
|
|||
|
||||
source "arch/h8300/Kconfig.ide"
|
||||
|
||||
source "net/Kconfig"
|
||||
source "drivers/net/Kconfig"
|
||||
|
||||
#
|
||||
# input - input/joystick depends on it. As does USB.
|
||||
|
|
|
@ -1285,6 +1285,8 @@ source "fs/Kconfig.binfmt"
|
|||
|
||||
endmenu
|
||||
|
||||
source "net/Kconfig"
|
||||
|
||||
source "drivers/Kconfig"
|
||||
|
||||
source "fs/Kconfig"
|
||||
|
|
|
@ -423,6 +423,8 @@ endmenu
|
|||
|
||||
endif
|
||||
|
||||
source "net/Kconfig"
|
||||
|
||||
source "drivers/Kconfig"
|
||||
|
||||
source "fs/Kconfig"
|
||||
|
|
|
@ -359,6 +359,8 @@ source "fs/Kconfig.binfmt"
|
|||
|
||||
endmenu
|
||||
|
||||
source "net/Kconfig"
|
||||
|
||||
source "drivers/Kconfig"
|
||||
|
||||
source "fs/Kconfig"
|
||||
|
|
|
@ -450,6 +450,8 @@ source "drivers/zorro/Kconfig"
|
|||
|
||||
endmenu
|
||||
|
||||
source "net/Kconfig"
|
||||
|
||||
source "drivers/Kconfig"
|
||||
|
||||
menu "Character devices"
|
||||
|
|
|
@ -575,6 +575,8 @@ config PM
|
|||
|
||||
endmenu
|
||||
|
||||
source "net/Kconfig"
|
||||
|
||||
source "drivers/Kconfig"
|
||||
|
||||
source "fs/Kconfig"
|
||||
|
|
|
@ -1640,6 +1640,8 @@ config PM
|
|||
|
||||
endmenu
|
||||
|
||||
source "net/Kconfig"
|
||||
|
||||
source "drivers/Kconfig"
|
||||
|
||||
source "fs/Kconfig"
|
||||
|
|
|
@ -190,6 +190,8 @@ source "fs/Kconfig.binfmt"
|
|||
|
||||
endmenu
|
||||
|
||||
source "net/Kconfig"
|
||||
|
||||
source "drivers/Kconfig"
|
||||
|
||||
source "fs/Kconfig"
|
||||
|
|
|
@ -1355,6 +1355,8 @@ config PIN_TLB
|
|||
depends on ADVANCED_OPTIONS && 8xx
|
||||
endmenu
|
||||
|
||||
source "net/Kconfig"
|
||||
|
||||
source "drivers/Kconfig"
|
||||
|
||||
source "fs/Kconfig"
|
||||
|
|
|
@ -429,6 +429,8 @@ config CMDLINE
|
|||
|
||||
endmenu
|
||||
|
||||
source "net/Kconfig"
|
||||
|
||||
source "drivers/Kconfig"
|
||||
|
||||
source "fs/Kconfig"
|
||||
|
|
|
@ -465,6 +465,8 @@ config KEXEC
|
|||
|
||||
endmenu
|
||||
|
||||
source "net/Kconfig"
|
||||
|
||||
config PCMCIA
|
||||
bool
|
||||
default n
|
||||
|
@ -475,7 +477,7 @@ source "drivers/scsi/Kconfig"
|
|||
|
||||
source "drivers/s390/Kconfig"
|
||||
|
||||
source "net/Kconfig"
|
||||
source "drivers/net/Kconfig"
|
||||
|
||||
source "fs/Kconfig"
|
||||
|
||||
|
|
|
@ -784,6 +784,8 @@ config EMBEDDED_RAMDISK_IMAGE
|
|||
|
||||
endmenu
|
||||
|
||||
source "net/Kconfig"
|
||||
|
||||
source "drivers/Kconfig"
|
||||
|
||||
source "fs/Kconfig"
|
||||
|
|
|
@ -268,6 +268,8 @@ source "fs/Kconfig.binfmt"
|
|||
|
||||
endmenu
|
||||
|
||||
source "net/Kconfig"
|
||||
|
||||
source "drivers/Kconfig"
|
||||
|
||||
source "fs/Kconfig"
|
||||
|
|
|
@ -268,6 +268,8 @@ source "mm/Kconfig"
|
|||
|
||||
endmenu
|
||||
|
||||
source "net/Kconfig"
|
||||
|
||||
source "drivers/Kconfig"
|
||||
|
||||
if !SUN4
|
||||
|
|
|
@ -525,6 +525,8 @@ source "mm/Kconfig"
|
|||
|
||||
endmenu
|
||||
|
||||
source "net/Kconfig"
|
||||
|
||||
source "drivers/base/Kconfig"
|
||||
|
||||
source "drivers/video/Kconfig"
|
||||
|
@ -551,7 +553,7 @@ endif
|
|||
|
||||
source "drivers/ieee1394/Kconfig"
|
||||
|
||||
source "net/Kconfig"
|
||||
source "drivers/net/Kconfig"
|
||||
|
||||
source "drivers/isdn/Kconfig"
|
||||
|
||||
|
|
|
@ -275,6 +275,8 @@ endmenu
|
|||
|
||||
source "init/Kconfig"
|
||||
|
||||
source "net/Kconfig"
|
||||
|
||||
source "drivers/base/Kconfig"
|
||||
|
||||
source "arch/um/Kconfig_char"
|
||||
|
@ -287,7 +289,7 @@ config NETDEVICES
|
|||
|
||||
source "arch/um/Kconfig_net"
|
||||
|
||||
source "net/Kconfig"
|
||||
source "drivers/net/Kconfig"
|
||||
|
||||
source "fs/Kconfig"
|
||||
|
||||
|
|
|
@ -250,6 +250,8 @@ source "fs/Kconfig.binfmt"
|
|||
|
||||
endmenu
|
||||
|
||||
source "net/Kconfig"
|
||||
|
||||
#############################################################################
|
||||
|
||||
source "drivers/base/Kconfig"
|
||||
|
@ -283,7 +285,7 @@ source "drivers/ieee1394/Kconfig"
|
|||
|
||||
source "drivers/message/i2o/Kconfig"
|
||||
|
||||
source "net/Kconfig"
|
||||
source "drivers/net/Kconfig"
|
||||
|
||||
source "drivers/isdn/Kconfig"
|
||||
|
||||
|
|
|
@ -515,6 +515,8 @@ config UID16
|
|||
|
||||
endmenu
|
||||
|
||||
source "net/Kconfig"
|
||||
|
||||
source drivers/Kconfig
|
||||
|
||||
source "drivers/firmware/Kconfig"
|
||||
|
|
|
@ -228,6 +228,8 @@ source "fs/Kconfig.binfmt"
|
|||
|
||||
endmenu
|
||||
|
||||
source "net/Kconfig"
|
||||
|
||||
source "drivers/Kconfig"
|
||||
|
||||
source "fs/Kconfig"
|
||||
|
|
|
@ -28,7 +28,7 @@ source "drivers/message/i2o/Kconfig"
|
|||
|
||||
source "drivers/macintosh/Kconfig"
|
||||
|
||||
source "net/Kconfig"
|
||||
source "drivers/net/Kconfig"
|
||||
|
||||
source "drivers/isdn/Kconfig"
|
||||
|
||||
|
|
|
@ -3,6 +3,8 @@
|
|||
# Network device configuration
|
||||
#
|
||||
|
||||
menu "Network device support"
|
||||
|
||||
config NETDEVICES
|
||||
depends on NET
|
||||
bool "Network device support"
|
||||
|
@ -2547,3 +2549,4 @@ config NETCONSOLE
|
|||
If you want to log kernel messages over the network, enable this.
|
||||
See <file:Documentation/networking/netconsole.txt> for details.
|
||||
|
||||
endmenu
|
||||
|
|
|
@ -1,6 +1,33 @@
|
|||
#
|
||||
# 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
|
||||
bool "Appletalk interfaces support"
|
||||
depends on ATALK
|
||||
|
|
|
@ -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.
|
||||
* 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;
|
||||
unsigned char *rawp;
|
||||
|
|
|
@ -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.
|
||||
*/
|
||||
|
||||
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;
|
||||
unsigned char *rawp;
|
||||
|
|
|
@ -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
|
||||
*/
|
||||
static unsigned short farsync_type_trans(struct sk_buff *skb,
|
||||
struct net_device *dev)
|
||||
static __be16 farsync_type_trans(struct sk_buff *skb, struct net_device *dev)
|
||||
{
|
||||
skb->dev = dev;
|
||||
skb->mac.raw = skb->data;
|
||||
|
|
|
@ -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,
|
||||
struct net_device *dev)
|
||||
static __be16 cisco_type_trans(struct sk_buff *skb, struct net_device *dev)
|
||||
{
|
||||
hdlc_header *data = (hdlc_header*)skb->data;
|
||||
|
||||
|
|
|
@ -66,8 +66,7 @@ static void ppp_close(struct net_device *dev)
|
|||
|
||||
|
||||
|
||||
static unsigned short ppp_type_trans(struct sk_buff *skb,
|
||||
struct net_device *dev)
|
||||
static __be16 ppp_type_trans(struct sk_buff *skb, struct net_device *dev)
|
||||
{
|
||||
return __constant_htons(ETH_P_WAN_PPP);
|
||||
}
|
||||
|
|
|
@ -24,8 +24,7 @@
|
|||
#include <linux/hdlc.h>
|
||||
|
||||
|
||||
static unsigned short raw_type_trans(struct sk_buff *skb,
|
||||
struct net_device *dev)
|
||||
static __be16 raw_type_trans(struct sk_buff *skb, struct net_device *dev)
|
||||
{
|
||||
return __constant_htons(ETH_P_IP);
|
||||
}
|
||||
|
|
|
@ -2210,7 +2210,7 @@ qeth_get_next_skb(struct qeth_card *card, struct qdio_buffer *buffer,
|
|||
return NULL;
|
||||
}
|
||||
|
||||
static inline unsigned short
|
||||
static inline __be16
|
||||
qeth_type_trans(struct sk_buff *skb, struct net_device *dev)
|
||||
{
|
||||
struct qeth_card *card;
|
||||
|
|
|
@ -33,7 +33,7 @@ extern int eth_header(struct sk_buff *skb, struct net_device *dev,
|
|||
unsigned short type, void *daddr,
|
||||
void *saddr, unsigned len);
|
||||
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,
|
||||
unsigned char * haddr);
|
||||
extern int eth_header_cache(struct neighbour *neigh,
|
||||
|
|
|
@ -25,7 +25,7 @@
|
|||
#include <linux/if_fddi.h>
|
||||
|
||||
#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);
|
||||
extern struct net_device *alloc_fddidev(int sizeof_priv);
|
||||
#endif
|
||||
|
|
|
@ -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,
|
||||
struct net_device *dev)
|
||||
static __inline__ __be16 hdlc_type_trans(struct sk_buff *skb,
|
||||
struct net_device *dev)
|
||||
{
|
||||
hdlc_device *hdlc = dev_to_hdlc(dev);
|
||||
|
||||
|
|
|
@ -16,6 +16,7 @@
|
|||
#define NETLINK_AUDIT 9 /* auditing */
|
||||
#define NETLINK_FIB_LOOKUP 10
|
||||
#define NETLINK_ROUTE6 11 /* af_inet6 route comm channel */
|
||||
#define NETLINK_NETFILTER 12 /* netfilter subsystem */
|
||||
#define NETLINK_IP6_FW 13
|
||||
#define NETLINK_DNRTMSG 14 /* DECnet routing messages */
|
||||
#define NETLINK_KOBJECT_UEVENT 15 /* Kernel messages to userspace */
|
||||
|
|
|
@ -516,8 +516,7 @@ struct wan_device {
|
|||
/* Public functions available for device drivers */
|
||||
extern int register_wan_device(struct wan_device *wandev);
|
||||
extern int unregister_wan_device(char *name);
|
||||
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 wanrouter_encapsulate(struct sk_buff *skb, struct net_device *dev,
|
||||
unsigned short type);
|
||||
|
||||
|
|
|
@ -125,7 +125,8 @@
|
|||
*/
|
||||
extern struct sock *sctp_get_ctl_sock(void);
|
||||
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 int sctp_register_pf(struct sctp_pf *, sa_family_t);
|
||||
|
||||
|
|
|
@ -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 *);
|
||||
struct sctp_association *sctp_make_temp_asoc(const struct sctp_endpoint *,
|
||||
struct sctp_chunk *,
|
||||
int gfp);
|
||||
unsigned int __nocast gfp);
|
||||
__u32 sctp_generate_verification_tag(void);
|
||||
void sctp_populate_tie_tags(__u8 *cookie, __u32 curTag, __u32 hisTag);
|
||||
|
||||
/* Prototypes for chunk-building functions. */
|
||||
struct sctp_chunk *sctp_make_init(const struct sctp_association *,
|
||||
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 *,
|
||||
const struct sctp_chunk *,
|
||||
const int gfp,
|
||||
const unsigned int __nocast gfp,
|
||||
const int unkparam_len);
|
||||
struct sctp_chunk *sctp_make_cookie_echo(const struct sctp_association *,
|
||||
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_association *asoc,
|
||||
void *event_arg,
|
||||
int gfp);
|
||||
unsigned int __nocast gfp);
|
||||
|
||||
/* 2nd level prototypes */
|
||||
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 *,
|
||||
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);
|
||||
int sctp_addip_addr_config(struct sctp_association *, sctp_param_t,
|
||||
struct sockaddr_storage*, int);
|
||||
|
|
|
@ -445,7 +445,8 @@ struct sctp_ssnmap {
|
|||
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_clear(struct sctp_ssnmap *map);
|
||||
|
||||
|
@ -945,7 +946,8 @@ struct sctp_transport {
|
|||
} 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 *,
|
||||
struct sctp_association *);
|
||||
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 *);
|
||||
int sctp_bind_addr_copy(struct sctp_bind_addr *dest,
|
||||
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 gfp);
|
||||
unsigned int __nocast gfp);
|
||||
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 *,
|
||||
struct sctp_sock *);
|
||||
|
@ -1104,9 +1107,10 @@ union sctp_addr *sctp_find_unmatch_addr(struct sctp_bind_addr *bp,
|
|||
int addrcnt,
|
||||
struct sctp_sock *opt);
|
||||
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,
|
||||
__u16 port, int gfp);
|
||||
__u16 port, unsigned int __nocast gfp);
|
||||
|
||||
sctp_scope_t sctp_scope(const union sctp_addr *);
|
||||
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. */
|
||||
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_put(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);
|
||||
int sctp_process_init(struct sctp_association *, sctp_cid_t cid,
|
||||
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_tsn(const struct sctp_endpoint *);
|
||||
|
||||
|
@ -1719,7 +1723,7 @@ static inline struct sctp_association *sctp_assoc(struct sctp_ep_common *base)
|
|||
|
||||
struct sctp_association *
|
||||
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_put(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);
|
||||
struct sctp_transport *sctp_assoc_add_peer(struct sctp_association *,
|
||||
const union sctp_addr *address,
|
||||
const int gfp,
|
||||
const unsigned int __nocast gfp,
|
||||
const int peer_state);
|
||||
void sctp_assoc_del_peer(struct sctp_association *asoc,
|
||||
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_set_primary(struct sctp_association *,
|
||||
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 *,
|
||||
struct sctp_cookie*, int gfp);
|
||||
struct sctp_cookie*,
|
||||
unsigned int __nocast gfp);
|
||||
|
||||
int sctp_cmp_addr_exact(const union sctp_addr *ss1,
|
||||
const union sctp_addr *ss2);
|
||||
|
|
|
@ -88,7 +88,7 @@ struct sctp_ulpevent *sctp_ulpevent_make_assoc_change(
|
|||
__u16 error,
|
||||
__u16 outbound,
|
||||
__u16 inbound,
|
||||
int gfp);
|
||||
unsigned int __nocast gfp);
|
||||
|
||||
struct sctp_ulpevent *sctp_ulpevent_make_peer_addr_change(
|
||||
const struct sctp_association *asoc,
|
||||
|
@ -96,35 +96,35 @@ struct sctp_ulpevent *sctp_ulpevent_make_peer_addr_change(
|
|||
int flags,
|
||||
int state,
|
||||
int error,
|
||||
int gfp);
|
||||
unsigned int __nocast gfp);
|
||||
|
||||
struct sctp_ulpevent *sctp_ulpevent_make_remote_error(
|
||||
const struct sctp_association *asoc,
|
||||
struct sctp_chunk *chunk,
|
||||
__u16 flags,
|
||||
int gfp);
|
||||
unsigned int __nocast gfp);
|
||||
struct sctp_ulpevent *sctp_ulpevent_make_send_failed(
|
||||
const struct sctp_association *asoc,
|
||||
struct sctp_chunk *chunk,
|
||||
__u16 flags,
|
||||
__u32 error,
|
||||
int gfp);
|
||||
unsigned int __nocast gfp);
|
||||
|
||||
struct sctp_ulpevent *sctp_ulpevent_make_shutdown_event(
|
||||
const struct sctp_association *asoc,
|
||||
__u16 flags,
|
||||
int gfp);
|
||||
unsigned int __nocast gfp);
|
||||
|
||||
struct sctp_ulpevent *sctp_ulpevent_make_pdapi(
|
||||
const struct sctp_association *asoc,
|
||||
__u32 indication, int gfp);
|
||||
__u32 indication, unsigned int __nocast gfp);
|
||||
|
||||
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_chunk *chunk,
|
||||
int gfp);
|
||||
unsigned int __nocast gfp);
|
||||
|
||||
void sctp_ulpevent_read_sndrcvinfo(const struct sctp_ulpevent *event,
|
||||
struct msghdr *);
|
||||
|
|
|
@ -62,19 +62,22 @@ struct sctp_ulpq *sctp_ulpq_init(struct sctp_ulpq *,
|
|||
void sctp_ulpq_free(struct sctp_ulpq *);
|
||||
|
||||
/* 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. */
|
||||
int sctp_ulpq_tail_event(struct sctp_ulpq *, struct sctp_ulpevent *ev);
|
||||
|
||||
/* 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. */
|
||||
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. */
|
||||
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. */
|
||||
int sctp_clear_pd(struct sock *sk);
|
||||
|
|
|
@ -5,8 +5,7 @@
|
|||
#include <linux/if_packet.h>
|
||||
#include <linux/skbuff.h>
|
||||
|
||||
static inline unsigned short x25_type_trans(struct sk_buff *skb,
|
||||
struct net_device *dev)
|
||||
static inline __be16 x25_type_trans(struct sk_buff *skb, struct net_device *dev)
|
||||
{
|
||||
skb->mac.raw = skb->data;
|
||||
skb->input_dev = skb->dev = dev;
|
||||
|
|
|
@ -122,10 +122,10 @@ static int fddi_rebuild_header(struct sk_buff *skb)
|
|||
* 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;
|
||||
unsigned short type;
|
||||
__be16 type;
|
||||
|
||||
/*
|
||||
* Set mac.raw field to point to FC byte, set data field to point
|
||||
|
|
|
@ -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.
|
|
@ -578,6 +578,14 @@ static int vlan_device_event(struct notifier_block *unused, unsigned long event,
|
|||
if (!vlandev)
|
||||
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) {
|
||||
vlandev->state = (vlandev->state &~ VLAN_LINK_STATE_MASK)
|
||||
| flgs;
|
||||
|
|
456
net/Kconfig
456
net/Kconfig
|
@ -2,7 +2,7 @@
|
|||
# Network configuration
|
||||
#
|
||||
|
||||
menu "Networking support"
|
||||
menu "Networking"
|
||||
|
||||
config NET
|
||||
bool "Networking support"
|
||||
|
@ -10,7 +10,9 @@ config NET
|
|||
Unless you really know what you are doing, you should say Y here.
|
||||
The reason is that some programs need kernel networking support even
|
||||
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
|
||||
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
|
||||
|
@ -20,57 +22,14 @@ config NET
|
|||
recommended to read the NET-HOWTO, available from
|
||||
<http://www.tldp.org/docs.html#howto>.
|
||||
|
||||
# Make sure that all config symbols are dependent on NET
|
||||
if NET
|
||||
|
||||
menu "Networking options"
|
||||
depends on NET
|
||||
|
||||
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.
|
||||
|
||||
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.
|
||||
source "net/packet/Kconfig"
|
||||
source "net/unix/Kconfig"
|
||||
source "net/xfrm/Kconfig"
|
||||
|
||||
config INET
|
||||
bool "TCP/IP networking"
|
||||
|
@ -94,30 +53,12 @@ config INET
|
|||
|
||||
Short answer: say Y.
|
||||
|
||||
if INET
|
||||
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"
|
||||
|
||||
endif # if INET
|
||||
|
||||
menuconfig NETFILTER
|
||||
bool "Network packet filtering (replaces ipchains)"
|
||||
---help---
|
||||
|
@ -206,269 +147,16 @@ source "net/bridge/netfilter/Kconfig"
|
|||
|
||||
endif
|
||||
|
||||
config XFRM
|
||||
bool
|
||||
depends on NET
|
||||
|
||||
source "net/xfrm/Kconfig"
|
||||
|
||||
source "net/sctp/Kconfig"
|
||||
|
||||
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.
|
||||
|
||||
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/atm/Kconfig"
|
||||
source "net/bridge/Kconfig"
|
||||
source "net/8021q/Kconfig"
|
||||
source "net/decnet/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"
|
||||
|
||||
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"
|
||||
|
||||
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.
|
||||
|
||||
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.
|
||||
source "net/x25/Kconfig"
|
||||
source "net/lapb/Kconfig"
|
||||
|
||||
config NET_DIVERT
|
||||
bool "Frame Diverter (EXPERIMENTAL)"
|
||||
|
@ -496,107 +184,10 @@ config NET_DIVERT
|
|||
|
||||
If unsure, say N.
|
||||
|
||||
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.
|
||||
|
||||
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/econet/Kconfig"
|
||||
source "net/wanrouter/Kconfig"
|
||||
source "net/sched/Kconfig"
|
||||
|
||||
endmenu
|
||||
|
||||
menu "Network testing"
|
||||
|
||||
config NET_PKTGEN
|
||||
|
@ -635,12 +226,9 @@ config NET_POLL_CONTROLLER
|
|||
def_bool NETPOLL
|
||||
|
||||
source "net/ax25/Kconfig"
|
||||
|
||||
source "net/irda/Kconfig"
|
||||
|
||||
source "net/bluetooth/Kconfig"
|
||||
|
||||
source "drivers/net/Kconfig"
|
||||
|
||||
endmenu
|
||||
endif # if NET
|
||||
endmenu # Networking
|
||||
|
||||
|
|
|
@ -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.
|
|
@ -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
|
||||
* our dev->hard_header_len
|
||||
*/
|
||||
static inline unsigned short br_type_trans(struct sk_buff *skb,
|
||||
struct net_device *dev)
|
||||
static inline __be16 br_type_trans(struct sk_buff *skb, struct net_device *dev)
|
||||
{
|
||||
struct ethhdr *eth;
|
||||
unsigned char *rawp;
|
||||
|
|
|
@ -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.
|
|
@ -1,6 +1,29 @@
|
|||
#
|
||||
# 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
|
||||
bool "DECnet: router support (EXPERIMENTAL)"
|
||||
depends on DECNET && EXPERIMENTAL
|
||||
|
|
|
@ -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.
|
|
@ -155,7 +155,7 @@ int eth_rebuild_header(struct sk_buff *skb)
|
|||
* 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;
|
||||
unsigned char *rawp;
|
||||
|
|
|
@ -3,7 +3,6 @@
|
|||
#
|
||||
config IP_MULTICAST
|
||||
bool "IP: multicasting"
|
||||
depends on INET
|
||||
help
|
||||
This is code for addressing several networked computers at once,
|
||||
enlarging your kernel by about 2 KB. You need multicasting if you
|
||||
|
@ -17,7 +16,6 @@ config IP_MULTICAST
|
|||
|
||||
config IP_ADVANCED_ROUTER
|
||||
bool "IP: advanced router"
|
||||
depends on INET
|
||||
---help---
|
||||
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
|
||||
|
@ -183,7 +181,6 @@ config IP_ROUTE_VERBOSE
|
|||
|
||||
config IP_PNP
|
||||
bool "IP: kernel level autoconfiguration"
|
||||
depends on INET
|
||||
help
|
||||
This enables automatic configuration of IP addresses of devices and
|
||||
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
|
||||
config NET_IPIP
|
||||
tristate "IP: tunneling"
|
||||
depends on INET
|
||||
select INET_TUNNEL
|
||||
---help---
|
||||
Tunneling means encapsulating data of one protocol type within
|
||||
|
@ -260,7 +256,6 @@ config NET_IPIP
|
|||
|
||||
config NET_IPGRE
|
||||
tristate "IP: GRE tunnels over IP"
|
||||
depends on INET
|
||||
select XFRM
|
||||
help
|
||||
Tunneling means encapsulating data of one protocol type within
|
||||
|
@ -319,7 +314,7 @@ config IP_PIMSM_V2
|
|||
|
||||
config ARPD
|
||||
bool "IP: ARP daemon support (EXPERIMENTAL)"
|
||||
depends on INET && EXPERIMENTAL
|
||||
depends on EXPERIMENTAL
|
||||
---help---
|
||||
Normally, the kernel maintains an internal cache which maps IP
|
||||
addresses to hardware addresses on the local network, so that
|
||||
|
@ -344,7 +339,6 @@ config ARPD
|
|||
|
||||
config SYN_COOKIES
|
||||
bool "IP: TCP syncookie support (disabled per default)"
|
||||
depends on INET
|
||||
---help---
|
||||
Normal TCP/IP networking is open to an attack known as "SYN
|
||||
flooding". This denial-of-service attack prevents legitimate remote
|
||||
|
@ -381,7 +375,6 @@ config SYN_COOKIES
|
|||
|
||||
config INET_AH
|
||||
tristate "IP: AH transformation"
|
||||
depends on INET
|
||||
select XFRM
|
||||
select CRYPTO
|
||||
select CRYPTO_HMAC
|
||||
|
@ -394,7 +387,6 @@ config INET_AH
|
|||
|
||||
config INET_ESP
|
||||
tristate "IP: ESP transformation"
|
||||
depends on INET
|
||||
select XFRM
|
||||
select CRYPTO
|
||||
select CRYPTO_HMAC
|
||||
|
@ -408,7 +400,6 @@ config INET_ESP
|
|||
|
||||
config INET_IPCOMP
|
||||
tristate "IP: IPComp transformation"
|
||||
depends on INET
|
||||
select XFRM
|
||||
select INET_TUNNEL
|
||||
select CRYPTO
|
||||
|
@ -421,7 +412,6 @@ config INET_IPCOMP
|
|||
|
||||
config INET_TUNNEL
|
||||
tristate "IP: tunnel transformation"
|
||||
depends on INET
|
||||
select XFRM
|
||||
---help---
|
||||
Support for generic IP tunnel transformation, which is required by
|
||||
|
@ -431,7 +421,6 @@ config INET_TUNNEL
|
|||
|
||||
config IP_TCPDIAG
|
||||
tristate "IP: TCP socket monitoring interface"
|
||||
depends on INET
|
||||
default y
|
||||
---help---
|
||||
Support for TCP socket monitoring interface used by native Linux
|
||||
|
@ -447,7 +436,6 @@ config IP_TCPDIAG_IPV6
|
|||
|
||||
config TCP_CONG_ADVANCED
|
||||
bool "TCP: advanced congestion control"
|
||||
depends on INET
|
||||
---help---
|
||||
Support for selection of various TCP congestion control
|
||||
modules.
|
||||
|
@ -463,7 +451,6 @@ menu "TCP congestion control"
|
|||
|
||||
config TCP_CONG_BIC
|
||||
tristate "Binary Increase Congestion (BIC) control"
|
||||
depends on INET
|
||||
default y
|
||||
---help---
|
||||
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
|
||||
tristate "TCP Westwood+"
|
||||
depends on INET
|
||||
default m
|
||||
---help---
|
||||
TCP Westwood+ is a sender-side only modification of the TCP Reno
|
||||
|
@ -493,7 +479,6 @@ config TCP_CONG_WESTWOOD
|
|||
|
||||
config TCP_CONG_HTCP
|
||||
tristate "H-TCP"
|
||||
depends on INET
|
||||
default m
|
||||
---help---
|
||||
H-TCP is a send-side only modifications of the TCP Reno
|
||||
|
@ -505,7 +490,7 @@ config TCP_CONG_HTCP
|
|||
|
||||
config TCP_CONG_HSTCP
|
||||
tristate "High Speed TCP"
|
||||
depends on INET && EXPERIMENTAL
|
||||
depends on EXPERIMENTAL
|
||||
default n
|
||||
---help---
|
||||
Sally Floyd's High Speed TCP (RFC 3649) congestion control.
|
||||
|
@ -516,7 +501,7 @@ config TCP_CONG_HSTCP
|
|||
|
||||
config TCP_CONG_HYBLA
|
||||
tristate "TCP-Hybla congestion control algorithm"
|
||||
depends on INET && EXPERIMENTAL
|
||||
depends on EXPERIMENTAL
|
||||
default n
|
||||
---help---
|
||||
TCP-Hybla is a sender-side only change that eliminates penalization of
|
||||
|
@ -526,7 +511,7 @@ config TCP_CONG_HYBLA
|
|||
|
||||
config TCP_CONG_VEGAS
|
||||
tristate "TCP Vegas"
|
||||
depends on INET && EXPERIMENTAL
|
||||
depends on EXPERIMENTAL
|
||||
default n
|
||||
---help---
|
||||
TCP Vegas is a sender-side only change to TCP that anticipates
|
||||
|
@ -537,7 +522,7 @@ config TCP_CONG_VEGAS
|
|||
|
||||
config TCP_CONG_SCALABLE
|
||||
tristate "Scalable TCP"
|
||||
depends on INET && EXPERIMENTAL
|
||||
depends on EXPERIMENTAL
|
||||
default n
|
||||
---help---
|
||||
Scalable TCP is a sender-side only change to TCP which uses a
|
||||
|
|
|
@ -107,7 +107,6 @@ static int ip_dev_loopback_xmit(struct sk_buff *newskb)
|
|||
newskb->pkt_type = PACKET_LOOPBACK;
|
||||
newskb->ip_summed = CHECKSUM_UNNECESSARY;
|
||||
BUG_TRAP(newskb->dst);
|
||||
nf_reset(newskb);
|
||||
netif_rx(newskb);
|
||||
return 0;
|
||||
}
|
||||
|
@ -188,14 +187,6 @@ static inline int ip_finish_output2(struct sk_buff *skb)
|
|||
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) {
|
||||
int hh_alen;
|
||||
|
||||
|
|
|
@ -2,11 +2,11 @@
|
|||
# IP Virtual Server configuration
|
||||
#
|
||||
menu "IP: Virtual Server Configuration"
|
||||
depends on INET && NETFILTER
|
||||
depends on NETFILTER
|
||||
|
||||
config IP_VS
|
||||
tristate "IP virtual server support (EXPERIMENTAL)"
|
||||
depends on INET && NETFILTER
|
||||
depends on NETFILTER
|
||||
---help---
|
||||
IP Virtual Server support will let you build a high-performance
|
||||
virtual server based on cluster of two or more real servers. This
|
||||
|
|
|
@ -758,7 +758,7 @@ static inline int todrop_entry(struct ip_vs_conn *cp)
|
|||
return 1;
|
||||
}
|
||||
|
||||
|
||||
/* Called from keventd and must protect itself from softirqs */
|
||||
void ip_vs_random_dropentry(void)
|
||||
{
|
||||
int idx;
|
||||
|
@ -773,7 +773,7 @@ void ip_vs_random_dropentry(void)
|
|||
/*
|
||||
* 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) {
|
||||
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);
|
||||
}
|
||||
}
|
||||
ct_write_unlock(hash);
|
||||
ct_write_unlock_bh(hash);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -90,7 +90,8 @@ int ip_vs_get_debug_level(void)
|
|||
#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)
|
||||
{
|
||||
|
@ -110,6 +111,8 @@ static void update_defense_level(void)
|
|||
|
||||
nomem = (availmem < sysctl_ip_vs_amemthresh);
|
||||
|
||||
local_bh_disable();
|
||||
|
||||
/* drop_entry */
|
||||
spin_lock(&__ip_vs_dropentry_lock);
|
||||
switch (sysctl_ip_vs_drop_entry) {
|
||||
|
@ -206,6 +209,8 @@ static void update_defense_level(void)
|
|||
if (to_change >= 0)
|
||||
ip_vs_protocol_timeout_change(sysctl_ip_vs_secure_tcp>1);
|
||||
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 */
|
||||
*valp = val;
|
||||
} else {
|
||||
local_bh_disable();
|
||||
update_defense_level();
|
||||
local_bh_enable();
|
||||
}
|
||||
}
|
||||
return rc;
|
||||
|
|
|
@ -432,6 +432,13 @@ static unsigned int ip_conntrack_defrag(unsigned int hooknum,
|
|||
const struct net_device *out,
|
||||
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. */
|
||||
if ((*pskb)->nh.iph->frag_off & htons(IP_MF|IP_OFFSET)) {
|
||||
*pskb = ip_ct_gather_frags(*pskb,
|
||||
|
|
|
@ -1685,7 +1685,7 @@ static void ip_handle_martian_source(struct net_device *dev,
|
|||
printk(KERN_WARNING "martian source %u.%u.%u.%u from "
|
||||
"%u.%u.%u.%u, on dev %s\n",
|
||||
NIPQUAD(daddr), NIPQUAD(saddr), dev->name);
|
||||
if (dev->hard_header_len) {
|
||||
if (dev->hard_header_len && skb->mac.raw) {
|
||||
int i;
|
||||
unsigned char *p = skb->mac.raw;
|
||||
printk(KERN_WARNING "ll header: ");
|
||||
|
|
|
@ -1,6 +1,26 @@
|
|||
#
|
||||
# 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
|
||||
bool "IPv6: Privacy Extensions (RFC 3041) support"
|
||||
depends on IPV6
|
||||
|
|
|
@ -1,6 +1,39 @@
|
|||
#
|
||||
# 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
|
||||
bool "IPX: Full internal IPX network"
|
||||
depends on IPX
|
||||
|
|
|
@ -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.
|
|
@ -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.
|
||||
|
|
@ -274,6 +274,9 @@ static int packet_rcv_spkt(struct sk_buff *skb, struct net_device *dev, struct
|
|||
dst_release(skb->dst);
|
||||
skb->dst = NULL;
|
||||
|
||||
/* drop conntrack reference */
|
||||
nf_reset(skb);
|
||||
|
||||
spkt = (struct sockaddr_pkt*)skb->cb;
|
||||
|
||||
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);
|
||||
skb->dst = NULL;
|
||||
|
||||
/* drop conntrack reference */
|
||||
nf_reset(skb);
|
||||
|
||||
spin_lock(&sk->sk_receive_queue.lock);
|
||||
po->stats.tp_packets++;
|
||||
__skb_queue_tail(&sk->sk_receive_queue, skb);
|
||||
|
|
|
@ -1,6 +1,43 @@
|
|||
#
|
||||
# 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
|
||||
prompt "Packet scheduler clock source"
|
||||
depends on NET_SCHED
|
||||
|
|
|
@ -71,7 +71,7 @@ static struct sctp_association *sctp_association_init(struct sctp_association *a
|
|||
const struct sctp_endpoint *ep,
|
||||
const struct sock *sk,
|
||||
sctp_scope_t scope,
|
||||
int gfp)
|
||||
unsigned int __nocast gfp)
|
||||
{
|
||||
struct sctp_sock *sp;
|
||||
int i;
|
||||
|
@ -272,7 +272,8 @@ static struct sctp_association *sctp_association_init(struct sctp_association *a
|
|||
/* Allocate and initialize a new association */
|
||||
struct sctp_association *sctp_association_new(const struct sctp_endpoint *ep,
|
||||
const struct sock *sk,
|
||||
sctp_scope_t scope, int gfp)
|
||||
sctp_scope_t scope,
|
||||
unsigned int __nocast gfp)
|
||||
{
|
||||
struct sctp_association *asoc;
|
||||
|
||||
|
@ -478,7 +479,7 @@ void sctp_assoc_rm_peer(struct sctp_association *asoc,
|
|||
/* Add a transport address to an association. */
|
||||
struct sctp_transport *sctp_assoc_add_peer(struct sctp_association *asoc,
|
||||
const union sctp_addr *addr,
|
||||
const int gfp,
|
||||
const unsigned int __nocast gfp,
|
||||
const int peer_state)
|
||||
{
|
||||
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
|
||||
* 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;
|
||||
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. */
|
||||
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_size3 = cookie->raw_addr_list_len;
|
||||
|
|
|
@ -53,7 +53,8 @@
|
|||
|
||||
/* Forward declarations for internal helpers. */
|
||||
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 *);
|
||||
|
||||
/* 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,
|
||||
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 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. */
|
||||
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;
|
||||
|
||||
|
@ -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.
|
||||
*/
|
||||
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 retval;
|
||||
|
@ -249,7 +252,7 @@ union sctp_params sctp_bind_addrs_to_raw(const struct sctp_bind_addr *bp,
|
|||
* address parameters).
|
||||
*/
|
||||
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;
|
||||
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. */
|
||||
static int sctp_copy_one_addr(struct sctp_bind_addr *dest,
|
||||
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;
|
||||
|
||||
|
|
|
@ -62,7 +62,7 @@ static void sctp_datamsg_init(struct sctp_datamsg *msg)
|
|||
}
|
||||
|
||||
/* 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;
|
||||
msg = kmalloc(sizeof(struct sctp_datamsg), gfp);
|
||||
|
|
|
@ -67,7 +67,8 @@ static void sctp_endpoint_bh_rcv(struct sctp_endpoint *ep);
|
|||
* Initialize the base fields of the endpoint structure.
|
||||
*/
|
||||
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);
|
||||
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.
|
||||
* 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;
|
||||
|
||||
|
|
|
@ -219,7 +219,7 @@ static void sctp_free_local_addr_list(void)
|
|||
|
||||
/* 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 gfp, int copy_flags)
|
||||
unsigned int __nocast gfp, int copy_flags)
|
||||
{
|
||||
struct sctp_sockaddr_entry *addr;
|
||||
int error = 0;
|
||||
|
|
|
@ -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,
|
||||
union sctp_params param,
|
||||
const union sctp_addr *peer_addr,
|
||||
int gfp);
|
||||
unsigned int __nocast gfp);
|
||||
|
||||
/* What was the inbound interface for this 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,
|
||||
const struct sctp_bind_addr *bp,
|
||||
int gfp, int vparam_len)
|
||||
unsigned int __nocast gfp, int vparam_len)
|
||||
{
|
||||
sctp_inithdr_t init;
|
||||
union sctp_params addrs;
|
||||
|
@ -261,7 +261,7 @@ struct sctp_chunk *sctp_make_init(const struct sctp_association *asoc,
|
|||
|
||||
struct sctp_chunk *sctp_make_init_ack(const struct sctp_association *asoc,
|
||||
const struct sctp_chunk *chunk,
|
||||
int gfp, int unkparam_len)
|
||||
unsigned int __nocast gfp, int unkparam_len)
|
||||
{
|
||||
sctp_inithdr_t initack;
|
||||
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. */
|
||||
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 sk_buff *skb;
|
||||
|
@ -1348,7 +1349,7 @@ static sctp_cookie_param_t *sctp_pack_cookie(const struct sctp_endpoint *ep,
|
|||
struct sctp_association *sctp_unpack_cookie(
|
||||
const struct sctp_endpoint *ep,
|
||||
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)
|
||||
{
|
||||
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,
|
||||
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;
|
||||
struct sctp_transport *transport;
|
||||
|
@ -1983,7 +1984,7 @@ int sctp_process_init(struct sctp_association *asoc, sctp_cid_t cid,
|
|||
static int sctp_process_param(struct sctp_association *asoc,
|
||||
union sctp_params param,
|
||||
const union sctp_addr *peer_addr,
|
||||
int gfp)
|
||||
unsigned int __nocast gfp)
|
||||
{
|
||||
union sctp_addr addr;
|
||||
int i;
|
||||
|
|
|
@ -63,7 +63,7 @@ static int sctp_cmd_interpreter(sctp_event_t event_type,
|
|||
void *event_arg,
|
||||
sctp_disposition_t status,
|
||||
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,
|
||||
sctp_state_t state,
|
||||
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,
|
||||
sctp_disposition_t status,
|
||||
sctp_cmd_seq_t *commands,
|
||||
int gfp);
|
||||
unsigned int __nocast gfp);
|
||||
|
||||
/********************************************************************
|
||||
* 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,
|
||||
struct sctp_association *asoc,
|
||||
struct sctp_chunk *chunk,
|
||||
sctp_init_chunk_t *peer_init, int gfp)
|
||||
sctp_init_chunk_t *peer_init,
|
||||
unsigned int __nocast gfp)
|
||||
{
|
||||
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_association *asoc,
|
||||
void *event_arg,
|
||||
int gfp)
|
||||
unsigned int __nocast gfp)
|
||||
{
|
||||
sctp_cmd_seq_t commands;
|
||||
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,
|
||||
sctp_disposition_t status,
|
||||
sctp_cmd_seq_t *commands,
|
||||
int gfp)
|
||||
unsigned int __nocast gfp)
|
||||
{
|
||||
int error;
|
||||
|
||||
|
@ -985,7 +986,7 @@ static int sctp_cmd_interpreter(sctp_event_t event_type,
|
|||
void *event_arg,
|
||||
sctp_disposition_t status,
|
||||
sctp_cmd_seq_t *commands,
|
||||
int gfp)
|
||||
unsigned int __nocast gfp)
|
||||
{
|
||||
int error = 0;
|
||||
int force;
|
||||
|
|
|
@ -57,7 +57,8 @@ static inline size_t sctp_ssnmap_size(__u16 in, __u16 out)
|
|||
/* Create a new sctp_ssnmap.
|
||||
* 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;
|
||||
int size;
|
||||
|
|
|
@ -57,7 +57,7 @@
|
|||
/* Initialize a new transport from provided memory. */
|
||||
static struct sctp_transport *sctp_transport_init(struct sctp_transport *peer,
|
||||
const union sctp_addr *addr,
|
||||
int gfp)
|
||||
unsigned int __nocast gfp)
|
||||
{
|
||||
/* Copy in the address. */
|
||||
peer->ipaddr = *addr;
|
||||
|
@ -121,7 +121,8 @@ static struct sctp_transport *sctp_transport_init(struct sctp_transport *peer,
|
|||
}
|
||||
|
||||
/* 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;
|
||||
|
||||
|
|
|
@ -74,7 +74,7 @@ SCTP_STATIC void sctp_ulpevent_init(struct sctp_ulpevent *event, int msg_flags)
|
|||
|
||||
/* Create a new sctp_ulpevent. */
|
||||
SCTP_STATIC struct sctp_ulpevent *sctp_ulpevent_new(int size, int msg_flags,
|
||||
int gfp)
|
||||
unsigned int __nocast gfp)
|
||||
{
|
||||
struct sctp_ulpevent *event;
|
||||
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(
|
||||
const struct sctp_association *asoc,
|
||||
__u16 flags, __u16 state, __u16 error, __u16 outbound,
|
||||
__u16 inbound, int gfp)
|
||||
__u16 inbound, unsigned int __nocast gfp)
|
||||
{
|
||||
struct sctp_ulpevent *event;
|
||||
struct sctp_assoc_change *sac;
|
||||
|
@ -237,7 +237,7 @@ struct sctp_ulpevent *sctp_ulpevent_make_assoc_change(
|
|||
struct sctp_ulpevent *sctp_ulpevent_make_peer_addr_change(
|
||||
const struct sctp_association *asoc,
|
||||
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_paddr_change *spc;
|
||||
|
@ -350,7 +350,7 @@ struct sctp_ulpevent *sctp_ulpevent_make_peer_addr_change(
|
|||
*/
|
||||
struct sctp_ulpevent *sctp_ulpevent_make_remote_error(
|
||||
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_remote_error *sre;
|
||||
|
@ -448,7 +448,7 @@ struct sctp_ulpevent *sctp_ulpevent_make_remote_error(
|
|||
*/
|
||||
struct sctp_ulpevent *sctp_ulpevent_make_send_failed(
|
||||
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_send_failed *ssf;
|
||||
|
@ -557,7 +557,7 @@ struct sctp_ulpevent *sctp_ulpevent_make_send_failed(
|
|||
*/
|
||||
struct sctp_ulpevent *sctp_ulpevent_make_shutdown_event(
|
||||
const struct sctp_association *asoc,
|
||||
__u16 flags, int gfp)
|
||||
__u16 flags, unsigned int __nocast gfp)
|
||||
{
|
||||
struct sctp_ulpevent *event;
|
||||
struct sctp_shutdown_event *sse;
|
||||
|
@ -620,7 +620,7 @@ struct sctp_ulpevent *sctp_ulpevent_make_shutdown_event(
|
|||
* 5.3.1.6 SCTP_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_adaption_event *sai;
|
||||
|
@ -657,7 +657,7 @@ struct sctp_ulpevent *sctp_ulpevent_make_adaption_indication(
|
|||
*/
|
||||
struct sctp_ulpevent *sctp_ulpevent_make_rcvmsg(struct sctp_association *asoc,
|
||||
struct sctp_chunk *chunk,
|
||||
int gfp)
|
||||
unsigned int __nocast gfp)
|
||||
{
|
||||
struct sctp_ulpevent *event = NULL;
|
||||
struct sk_buff *skb;
|
||||
|
@ -718,7 +718,8 @@ struct sctp_ulpevent *sctp_ulpevent_make_rcvmsg(struct sctp_association *asoc,
|
|||
* various events.
|
||||
*/
|
||||
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_pdapi_event *pd;
|
||||
|
|
|
@ -100,7 +100,7 @@ void sctp_ulpq_free(struct sctp_ulpq *ulpq)
|
|||
|
||||
/* Process an incoming DATA 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;
|
||||
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. */
|
||||
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_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. */
|
||||
void sctp_ulpq_renege(struct sctp_ulpq *ulpq, struct sctp_chunk *chunk,
|
||||
int gfp)
|
||||
unsigned int __nocast gfp)
|
||||
{
|
||||
struct sctp_association *asoc;
|
||||
__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
|
||||
* 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 sock *sk;
|
||||
|
|
|
@ -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.
|
||||
|
|
@ -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.
|
|
@ -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 */
|
||||
unsigned short ethertype;
|
||||
__be16 ethertype;
|
||||
|
||||
switch (skb->data[cnt]) {
|
||||
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);
|
||||
return 0;
|
||||
}
|
||||
ethertype = *((unsigned short*)&skb->data[cnt+4]);
|
||||
ethertype = *((__be16*)&skb->data[cnt+4]);
|
||||
cnt += 6;
|
||||
break;
|
||||
|
||||
|
|
|
@ -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.
|
||||
|
||||
|
|
@ -1,6 +1,10 @@
|
|||
#
|
||||
# XFRM configuration
|
||||
#
|
||||
config XFRM
|
||||
bool
|
||||
depends on NET
|
||||
|
||||
config XFRM_USER
|
||||
tristate "IPsec user configuration interface"
|
||||
depends on INET && XFRM
|
||||
|
@ -10,3 +14,14 @@ config XFRM_USER
|
|||
|
||||
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.
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue