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
|
endmenu
|
||||||
|
|
||||||
|
source "net/Kconfig"
|
||||||
|
|
||||||
source "drivers/Kconfig"
|
source "drivers/Kconfig"
|
||||||
|
|
||||||
source "fs/Kconfig"
|
source "fs/Kconfig"
|
||||||
|
|
|
@ -700,6 +700,8 @@ config APM
|
||||||
|
|
||||||
endmenu
|
endmenu
|
||||||
|
|
||||||
|
source "net/Kconfig"
|
||||||
|
|
||||||
menu "Device Drivers"
|
menu "Device Drivers"
|
||||||
|
|
||||||
source "drivers/base/Kconfig"
|
source "drivers/base/Kconfig"
|
||||||
|
@ -732,7 +734,7 @@ source "drivers/ieee1394/Kconfig"
|
||||||
|
|
||||||
source "drivers/message/i2o/Kconfig"
|
source "drivers/message/i2o/Kconfig"
|
||||||
|
|
||||||
source "net/Kconfig"
|
source "drivers/net/Kconfig"
|
||||||
|
|
||||||
source "drivers/isdn/Kconfig"
|
source "drivers/isdn/Kconfig"
|
||||||
|
|
||||||
|
|
|
@ -183,6 +183,8 @@ source "mm/Kconfig"
|
||||||
|
|
||||||
endmenu
|
endmenu
|
||||||
|
|
||||||
|
source "net/Kconfig"
|
||||||
|
|
||||||
source "drivers/base/Kconfig"
|
source "drivers/base/Kconfig"
|
||||||
|
|
||||||
source "drivers/parport/Kconfig"
|
source "drivers/parport/Kconfig"
|
||||||
|
@ -193,7 +195,7 @@ source "drivers/block/Kconfig"
|
||||||
|
|
||||||
source "drivers/md/Kconfig"
|
source "drivers/md/Kconfig"
|
||||||
|
|
||||||
source "net/Kconfig"
|
source "drivers/net/Kconfig"
|
||||||
|
|
||||||
source "drivers/ide/Kconfig"
|
source "drivers/ide/Kconfig"
|
||||||
|
|
||||||
|
|
|
@ -122,6 +122,8 @@ source arch/cris/arch-v10/Kconfig
|
||||||
|
|
||||||
endmenu
|
endmenu
|
||||||
|
|
||||||
|
source "net/Kconfig"
|
||||||
|
|
||||||
# bring in ETRAX built-in drivers
|
# bring in ETRAX built-in drivers
|
||||||
menu "Drivers for built-in interfaces"
|
menu "Drivers for built-in interfaces"
|
||||||
source arch/cris/arch-v10/drivers/Kconfig
|
source arch/cris/arch-v10/drivers/Kconfig
|
||||||
|
@ -149,7 +151,7 @@ source "drivers/ieee1394/Kconfig"
|
||||||
|
|
||||||
source "drivers/message/i2o/Kconfig"
|
source "drivers/message/i2o/Kconfig"
|
||||||
|
|
||||||
source "net/Kconfig"
|
source "drivers/net/Kconfig"
|
||||||
|
|
||||||
source "drivers/isdn/Kconfig"
|
source "drivers/isdn/Kconfig"
|
||||||
|
|
||||||
|
|
|
@ -346,6 +346,8 @@ source "fs/Kconfig.binfmt"
|
||||||
|
|
||||||
endmenu
|
endmenu
|
||||||
|
|
||||||
|
source "net/Kconfig"
|
||||||
|
|
||||||
source "drivers/Kconfig"
|
source "drivers/Kconfig"
|
||||||
|
|
||||||
source "fs/Kconfig"
|
source "fs/Kconfig"
|
||||||
|
|
|
@ -55,6 +55,8 @@ source "fs/Kconfig.binfmt"
|
||||||
|
|
||||||
endmenu
|
endmenu
|
||||||
|
|
||||||
|
source "net/Kconfig"
|
||||||
|
|
||||||
source "drivers/base/Kconfig"
|
source "drivers/base/Kconfig"
|
||||||
|
|
||||||
source "drivers/mtd/Kconfig"
|
source "drivers/mtd/Kconfig"
|
||||||
|
@ -65,7 +67,7 @@ source "drivers/ide/Kconfig"
|
||||||
|
|
||||||
source "arch/h8300/Kconfig.ide"
|
source "arch/h8300/Kconfig.ide"
|
||||||
|
|
||||||
source "net/Kconfig"
|
source "drivers/net/Kconfig"
|
||||||
|
|
||||||
#
|
#
|
||||||
# input - input/joystick depends on it. As does USB.
|
# input - input/joystick depends on it. As does USB.
|
||||||
|
|
|
@ -1285,6 +1285,8 @@ source "fs/Kconfig.binfmt"
|
||||||
|
|
||||||
endmenu
|
endmenu
|
||||||
|
|
||||||
|
source "net/Kconfig"
|
||||||
|
|
||||||
source "drivers/Kconfig"
|
source "drivers/Kconfig"
|
||||||
|
|
||||||
source "fs/Kconfig"
|
source "fs/Kconfig"
|
||||||
|
|
|
@ -423,6 +423,8 @@ endmenu
|
||||||
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
source "net/Kconfig"
|
||||||
|
|
||||||
source "drivers/Kconfig"
|
source "drivers/Kconfig"
|
||||||
|
|
||||||
source "fs/Kconfig"
|
source "fs/Kconfig"
|
||||||
|
|
|
@ -359,6 +359,8 @@ source "fs/Kconfig.binfmt"
|
||||||
|
|
||||||
endmenu
|
endmenu
|
||||||
|
|
||||||
|
source "net/Kconfig"
|
||||||
|
|
||||||
source "drivers/Kconfig"
|
source "drivers/Kconfig"
|
||||||
|
|
||||||
source "fs/Kconfig"
|
source "fs/Kconfig"
|
||||||
|
|
|
@ -450,6 +450,8 @@ source "drivers/zorro/Kconfig"
|
||||||
|
|
||||||
endmenu
|
endmenu
|
||||||
|
|
||||||
|
source "net/Kconfig"
|
||||||
|
|
||||||
source "drivers/Kconfig"
|
source "drivers/Kconfig"
|
||||||
|
|
||||||
menu "Character devices"
|
menu "Character devices"
|
||||||
|
|
|
@ -575,6 +575,8 @@ config PM
|
||||||
|
|
||||||
endmenu
|
endmenu
|
||||||
|
|
||||||
|
source "net/Kconfig"
|
||||||
|
|
||||||
source "drivers/Kconfig"
|
source "drivers/Kconfig"
|
||||||
|
|
||||||
source "fs/Kconfig"
|
source "fs/Kconfig"
|
||||||
|
|
|
@ -1640,6 +1640,8 @@ config PM
|
||||||
|
|
||||||
endmenu
|
endmenu
|
||||||
|
|
||||||
|
source "net/Kconfig"
|
||||||
|
|
||||||
source "drivers/Kconfig"
|
source "drivers/Kconfig"
|
||||||
|
|
||||||
source "fs/Kconfig"
|
source "fs/Kconfig"
|
||||||
|
|
|
@ -190,6 +190,8 @@ source "fs/Kconfig.binfmt"
|
||||||
|
|
||||||
endmenu
|
endmenu
|
||||||
|
|
||||||
|
source "net/Kconfig"
|
||||||
|
|
||||||
source "drivers/Kconfig"
|
source "drivers/Kconfig"
|
||||||
|
|
||||||
source "fs/Kconfig"
|
source "fs/Kconfig"
|
||||||
|
|
|
@ -1355,6 +1355,8 @@ config PIN_TLB
|
||||||
depends on ADVANCED_OPTIONS && 8xx
|
depends on ADVANCED_OPTIONS && 8xx
|
||||||
endmenu
|
endmenu
|
||||||
|
|
||||||
|
source "net/Kconfig"
|
||||||
|
|
||||||
source "drivers/Kconfig"
|
source "drivers/Kconfig"
|
||||||
|
|
||||||
source "fs/Kconfig"
|
source "fs/Kconfig"
|
||||||
|
|
|
@ -429,6 +429,8 @@ config CMDLINE
|
||||||
|
|
||||||
endmenu
|
endmenu
|
||||||
|
|
||||||
|
source "net/Kconfig"
|
||||||
|
|
||||||
source "drivers/Kconfig"
|
source "drivers/Kconfig"
|
||||||
|
|
||||||
source "fs/Kconfig"
|
source "fs/Kconfig"
|
||||||
|
|
|
@ -465,6 +465,8 @@ config KEXEC
|
||||||
|
|
||||||
endmenu
|
endmenu
|
||||||
|
|
||||||
|
source "net/Kconfig"
|
||||||
|
|
||||||
config PCMCIA
|
config PCMCIA
|
||||||
bool
|
bool
|
||||||
default n
|
default n
|
||||||
|
@ -475,7 +477,7 @@ source "drivers/scsi/Kconfig"
|
||||||
|
|
||||||
source "drivers/s390/Kconfig"
|
source "drivers/s390/Kconfig"
|
||||||
|
|
||||||
source "net/Kconfig"
|
source "drivers/net/Kconfig"
|
||||||
|
|
||||||
source "fs/Kconfig"
|
source "fs/Kconfig"
|
||||||
|
|
||||||
|
|
|
@ -784,6 +784,8 @@ config EMBEDDED_RAMDISK_IMAGE
|
||||||
|
|
||||||
endmenu
|
endmenu
|
||||||
|
|
||||||
|
source "net/Kconfig"
|
||||||
|
|
||||||
source "drivers/Kconfig"
|
source "drivers/Kconfig"
|
||||||
|
|
||||||
source "fs/Kconfig"
|
source "fs/Kconfig"
|
||||||
|
|
|
@ -268,6 +268,8 @@ source "fs/Kconfig.binfmt"
|
||||||
|
|
||||||
endmenu
|
endmenu
|
||||||
|
|
||||||
|
source "net/Kconfig"
|
||||||
|
|
||||||
source "drivers/Kconfig"
|
source "drivers/Kconfig"
|
||||||
|
|
||||||
source "fs/Kconfig"
|
source "fs/Kconfig"
|
||||||
|
|
|
@ -268,6 +268,8 @@ source "mm/Kconfig"
|
||||||
|
|
||||||
endmenu
|
endmenu
|
||||||
|
|
||||||
|
source "net/Kconfig"
|
||||||
|
|
||||||
source "drivers/Kconfig"
|
source "drivers/Kconfig"
|
||||||
|
|
||||||
if !SUN4
|
if !SUN4
|
||||||
|
|
|
@ -525,6 +525,8 @@ source "mm/Kconfig"
|
||||||
|
|
||||||
endmenu
|
endmenu
|
||||||
|
|
||||||
|
source "net/Kconfig"
|
||||||
|
|
||||||
source "drivers/base/Kconfig"
|
source "drivers/base/Kconfig"
|
||||||
|
|
||||||
source "drivers/video/Kconfig"
|
source "drivers/video/Kconfig"
|
||||||
|
@ -551,7 +553,7 @@ endif
|
||||||
|
|
||||||
source "drivers/ieee1394/Kconfig"
|
source "drivers/ieee1394/Kconfig"
|
||||||
|
|
||||||
source "net/Kconfig"
|
source "drivers/net/Kconfig"
|
||||||
|
|
||||||
source "drivers/isdn/Kconfig"
|
source "drivers/isdn/Kconfig"
|
||||||
|
|
||||||
|
|
|
@ -275,6 +275,8 @@ endmenu
|
||||||
|
|
||||||
source "init/Kconfig"
|
source "init/Kconfig"
|
||||||
|
|
||||||
|
source "net/Kconfig"
|
||||||
|
|
||||||
source "drivers/base/Kconfig"
|
source "drivers/base/Kconfig"
|
||||||
|
|
||||||
source "arch/um/Kconfig_char"
|
source "arch/um/Kconfig_char"
|
||||||
|
@ -287,7 +289,7 @@ config NETDEVICES
|
||||||
|
|
||||||
source "arch/um/Kconfig_net"
|
source "arch/um/Kconfig_net"
|
||||||
|
|
||||||
source "net/Kconfig"
|
source "drivers/net/Kconfig"
|
||||||
|
|
||||||
source "fs/Kconfig"
|
source "fs/Kconfig"
|
||||||
|
|
||||||
|
|
|
@ -250,6 +250,8 @@ source "fs/Kconfig.binfmt"
|
||||||
|
|
||||||
endmenu
|
endmenu
|
||||||
|
|
||||||
|
source "net/Kconfig"
|
||||||
|
|
||||||
#############################################################################
|
#############################################################################
|
||||||
|
|
||||||
source "drivers/base/Kconfig"
|
source "drivers/base/Kconfig"
|
||||||
|
@ -283,7 +285,7 @@ source "drivers/ieee1394/Kconfig"
|
||||||
|
|
||||||
source "drivers/message/i2o/Kconfig"
|
source "drivers/message/i2o/Kconfig"
|
||||||
|
|
||||||
source "net/Kconfig"
|
source "drivers/net/Kconfig"
|
||||||
|
|
||||||
source "drivers/isdn/Kconfig"
|
source "drivers/isdn/Kconfig"
|
||||||
|
|
||||||
|
|
|
@ -515,6 +515,8 @@ config UID16
|
||||||
|
|
||||||
endmenu
|
endmenu
|
||||||
|
|
||||||
|
source "net/Kconfig"
|
||||||
|
|
||||||
source drivers/Kconfig
|
source drivers/Kconfig
|
||||||
|
|
||||||
source "drivers/firmware/Kconfig"
|
source "drivers/firmware/Kconfig"
|
||||||
|
|
|
@ -228,6 +228,8 @@ source "fs/Kconfig.binfmt"
|
||||||
|
|
||||||
endmenu
|
endmenu
|
||||||
|
|
||||||
|
source "net/Kconfig"
|
||||||
|
|
||||||
source "drivers/Kconfig"
|
source "drivers/Kconfig"
|
||||||
|
|
||||||
source "fs/Kconfig"
|
source "fs/Kconfig"
|
||||||
|
|
|
@ -28,7 +28,7 @@ source "drivers/message/i2o/Kconfig"
|
||||||
|
|
||||||
source "drivers/macintosh/Kconfig"
|
source "drivers/macintosh/Kconfig"
|
||||||
|
|
||||||
source "net/Kconfig"
|
source "drivers/net/Kconfig"
|
||||||
|
|
||||||
source "drivers/isdn/Kconfig"
|
source "drivers/isdn/Kconfig"
|
||||||
|
|
||||||
|
|
|
@ -3,6 +3,8 @@
|
||||||
# Network device configuration
|
# Network device configuration
|
||||||
#
|
#
|
||||||
|
|
||||||
|
menu "Network device support"
|
||||||
|
|
||||||
config NETDEVICES
|
config NETDEVICES
|
||||||
depends on NET
|
depends on NET
|
||||||
bool "Network device support"
|
bool "Network device support"
|
||||||
|
@ -2547,3 +2549,4 @@ config NETCONSOLE
|
||||||
If you want to log kernel messages over the network, enable this.
|
If you want to log kernel messages over the network, enable this.
|
||||||
See <file:Documentation/networking/netconsole.txt> for details.
|
See <file:Documentation/networking/netconsole.txt> for details.
|
||||||
|
|
||||||
|
endmenu
|
||||||
|
|
|
@ -1,6 +1,33 @@
|
||||||
#
|
#
|
||||||
# Appletalk driver configuration
|
# Appletalk driver configuration
|
||||||
#
|
#
|
||||||
|
config ATALK
|
||||||
|
tristate "Appletalk protocol support"
|
||||||
|
select LLC
|
||||||
|
---help---
|
||||||
|
AppleTalk is the protocol that Apple computers can use to communicate
|
||||||
|
on a network. If your Linux box is connected to such a network and you
|
||||||
|
wish to connect to it, say Y. You will need to use the netatalk package
|
||||||
|
so that your Linux box can act as a print and file server for Macs as
|
||||||
|
well as access AppleTalk printers. Check out
|
||||||
|
<http://www.zettabyte.net/netatalk/> on the WWW for details.
|
||||||
|
EtherTalk is the name used for AppleTalk over Ethernet and the
|
||||||
|
cheaper and slower LocalTalk is AppleTalk over a proprietary Apple
|
||||||
|
network using serial links. EtherTalk and LocalTalk are fully
|
||||||
|
supported by Linux.
|
||||||
|
|
||||||
|
General information about how to connect Linux, Windows machines and
|
||||||
|
Macs is on the WWW at <http://www.eats.com/linux_mac_win.html>. The
|
||||||
|
NET-3-HOWTO, available from
|
||||||
|
<http://www.tldp.org/docs.html#howto>, contains valuable
|
||||||
|
information as well.
|
||||||
|
|
||||||
|
To compile this driver as a module, choose M here: the module will be
|
||||||
|
called appletalk. You almost certainly want to compile it as a
|
||||||
|
module so you can restart your AppleTalk stack without rebooting
|
||||||
|
your machine. I hear that the GNU boycott of Apple is over, so
|
||||||
|
even politically correct people are allowed to say Y here.
|
||||||
|
|
||||||
config DEV_APPLETALK
|
config DEV_APPLETALK
|
||||||
bool "Appletalk interfaces support"
|
bool "Appletalk interfaces support"
|
||||||
depends on ATALK
|
depends on ATALK
|
||||||
|
|
|
@ -369,7 +369,7 @@ static void myri_tx(struct myri_eth *mp, struct net_device *dev)
|
||||||
* assume 802.3 if the type field is short enough to be a length.
|
* assume 802.3 if the type field is short enough to be a length.
|
||||||
* This is normal practice and works for any 'now in use' protocol.
|
* This is normal practice and works for any 'now in use' protocol.
|
||||||
*/
|
*/
|
||||||
static unsigned short myri_type_trans(struct sk_buff *skb, struct net_device *dev)
|
static __be16 myri_type_trans(struct sk_buff *skb, struct net_device *dev)
|
||||||
{
|
{
|
||||||
struct ethhdr *eth;
|
struct ethhdr *eth;
|
||||||
unsigned char *rawp;
|
unsigned char *rawp;
|
||||||
|
|
|
@ -540,7 +540,7 @@ plip_receive(unsigned short nibble_timeout, struct net_device *dev,
|
||||||
* in far too many old systems not all even running Linux.
|
* in far too many old systems not all even running Linux.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
static unsigned short plip_type_trans(struct sk_buff *skb, struct net_device *dev)
|
static __be16 plip_type_trans(struct sk_buff *skb, struct net_device *dev)
|
||||||
{
|
{
|
||||||
struct ethhdr *eth;
|
struct ethhdr *eth;
|
||||||
unsigned char *rawp;
|
unsigned char *rawp;
|
||||||
|
|
|
@ -861,8 +861,7 @@ fst_tx_dma_complete(struct fst_card_info *card, struct fst_port_info *port,
|
||||||
/*
|
/*
|
||||||
* Mark it for our own raw sockets interface
|
* Mark it for our own raw sockets interface
|
||||||
*/
|
*/
|
||||||
static unsigned short farsync_type_trans(struct sk_buff *skb,
|
static __be16 farsync_type_trans(struct sk_buff *skb, struct net_device *dev)
|
||||||
struct net_device *dev)
|
|
||||||
{
|
{
|
||||||
skb->dev = dev;
|
skb->dev = dev;
|
||||||
skb->mac.raw = skb->data;
|
skb->mac.raw = skb->data;
|
||||||
|
|
|
@ -91,8 +91,7 @@ static void cisco_keepalive_send(struct net_device *dev, u32 type,
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
static unsigned short cisco_type_trans(struct sk_buff *skb,
|
static __be16 cisco_type_trans(struct sk_buff *skb, struct net_device *dev)
|
||||||
struct net_device *dev)
|
|
||||||
{
|
{
|
||||||
hdlc_header *data = (hdlc_header*)skb->data;
|
hdlc_header *data = (hdlc_header*)skb->data;
|
||||||
|
|
||||||
|
|
|
@ -66,8 +66,7 @@ static void ppp_close(struct net_device *dev)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
static unsigned short ppp_type_trans(struct sk_buff *skb,
|
static __be16 ppp_type_trans(struct sk_buff *skb, struct net_device *dev)
|
||||||
struct net_device *dev)
|
|
||||||
{
|
{
|
||||||
return __constant_htons(ETH_P_WAN_PPP);
|
return __constant_htons(ETH_P_WAN_PPP);
|
||||||
}
|
}
|
||||||
|
|
|
@ -24,8 +24,7 @@
|
||||||
#include <linux/hdlc.h>
|
#include <linux/hdlc.h>
|
||||||
|
|
||||||
|
|
||||||
static unsigned short raw_type_trans(struct sk_buff *skb,
|
static __be16 raw_type_trans(struct sk_buff *skb, struct net_device *dev)
|
||||||
struct net_device *dev)
|
|
||||||
{
|
{
|
||||||
return __constant_htons(ETH_P_IP);
|
return __constant_htons(ETH_P_IP);
|
||||||
}
|
}
|
||||||
|
|
|
@ -2210,7 +2210,7 @@ no_mem:
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline unsigned short
|
static inline __be16
|
||||||
qeth_type_trans(struct sk_buff *skb, struct net_device *dev)
|
qeth_type_trans(struct sk_buff *skb, struct net_device *dev)
|
||||||
{
|
{
|
||||||
struct qeth_card *card;
|
struct qeth_card *card;
|
||||||
|
|
|
@ -33,7 +33,7 @@ extern int eth_header(struct sk_buff *skb, struct net_device *dev,
|
||||||
unsigned short type, void *daddr,
|
unsigned short type, void *daddr,
|
||||||
void *saddr, unsigned len);
|
void *saddr, unsigned len);
|
||||||
extern int eth_rebuild_header(struct sk_buff *skb);
|
extern int eth_rebuild_header(struct sk_buff *skb);
|
||||||
extern unsigned short eth_type_trans(struct sk_buff *skb, struct net_device *dev);
|
extern __be16 eth_type_trans(struct sk_buff *skb, struct net_device *dev);
|
||||||
extern void eth_header_cache_update(struct hh_cache *hh, struct net_device *dev,
|
extern void eth_header_cache_update(struct hh_cache *hh, struct net_device *dev,
|
||||||
unsigned char * haddr);
|
unsigned char * haddr);
|
||||||
extern int eth_header_cache(struct neighbour *neigh,
|
extern int eth_header_cache(struct neighbour *neigh,
|
||||||
|
|
|
@ -25,7 +25,7 @@
|
||||||
#include <linux/if_fddi.h>
|
#include <linux/if_fddi.h>
|
||||||
|
|
||||||
#ifdef __KERNEL__
|
#ifdef __KERNEL__
|
||||||
extern unsigned short fddi_type_trans(struct sk_buff *skb,
|
extern __be16 fddi_type_trans(struct sk_buff *skb,
|
||||||
struct net_device *dev);
|
struct net_device *dev);
|
||||||
extern struct net_device *alloc_fddidev(int sizeof_priv);
|
extern struct net_device *alloc_fddidev(int sizeof_priv);
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -242,8 +242,8 @@ static __inline__ struct net_device_stats *hdlc_stats(struct net_device *dev)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static __inline__ unsigned short hdlc_type_trans(struct sk_buff *skb,
|
static __inline__ __be16 hdlc_type_trans(struct sk_buff *skb,
|
||||||
struct net_device *dev)
|
struct net_device *dev)
|
||||||
{
|
{
|
||||||
hdlc_device *hdlc = dev_to_hdlc(dev);
|
hdlc_device *hdlc = dev_to_hdlc(dev);
|
||||||
|
|
||||||
|
|
|
@ -16,6 +16,7 @@
|
||||||
#define NETLINK_AUDIT 9 /* auditing */
|
#define NETLINK_AUDIT 9 /* auditing */
|
||||||
#define NETLINK_FIB_LOOKUP 10
|
#define NETLINK_FIB_LOOKUP 10
|
||||||
#define NETLINK_ROUTE6 11 /* af_inet6 route comm channel */
|
#define NETLINK_ROUTE6 11 /* af_inet6 route comm channel */
|
||||||
|
#define NETLINK_NETFILTER 12 /* netfilter subsystem */
|
||||||
#define NETLINK_IP6_FW 13
|
#define NETLINK_IP6_FW 13
|
||||||
#define NETLINK_DNRTMSG 14 /* DECnet routing messages */
|
#define NETLINK_DNRTMSG 14 /* DECnet routing messages */
|
||||||
#define NETLINK_KOBJECT_UEVENT 15 /* Kernel messages to userspace */
|
#define NETLINK_KOBJECT_UEVENT 15 /* Kernel messages to userspace */
|
||||||
|
|
|
@ -516,8 +516,7 @@ struct wan_device {
|
||||||
/* Public functions available for device drivers */
|
/* Public functions available for device drivers */
|
||||||
extern int register_wan_device(struct wan_device *wandev);
|
extern int register_wan_device(struct wan_device *wandev);
|
||||||
extern int unregister_wan_device(char *name);
|
extern int unregister_wan_device(char *name);
|
||||||
unsigned short wanrouter_type_trans(struct sk_buff *skb,
|
__be16 wanrouter_type_trans(struct sk_buff *skb, struct net_device *dev);
|
||||||
struct net_device *dev);
|
|
||||||
int wanrouter_encapsulate(struct sk_buff *skb, struct net_device *dev,
|
int wanrouter_encapsulate(struct sk_buff *skb, struct net_device *dev,
|
||||||
unsigned short type);
|
unsigned short type);
|
||||||
|
|
||||||
|
|
|
@ -125,7 +125,8 @@
|
||||||
*/
|
*/
|
||||||
extern struct sock *sctp_get_ctl_sock(void);
|
extern struct sock *sctp_get_ctl_sock(void);
|
||||||
extern int sctp_copy_local_addr_list(struct sctp_bind_addr *,
|
extern int sctp_copy_local_addr_list(struct sctp_bind_addr *,
|
||||||
sctp_scope_t, int gfp, int flags);
|
sctp_scope_t, unsigned int __nocast gfp,
|
||||||
|
int flags);
|
||||||
extern struct sctp_pf *sctp_get_pf_specific(sa_family_t family);
|
extern struct sctp_pf *sctp_get_pf_specific(sa_family_t family);
|
||||||
extern int sctp_register_pf(struct sctp_pf *, sa_family_t);
|
extern int sctp_register_pf(struct sctp_pf *, sa_family_t);
|
||||||
|
|
||||||
|
|
|
@ -181,17 +181,17 @@ const sctp_sm_table_entry_t *sctp_sm_lookup_event(sctp_event_t,
|
||||||
int sctp_chunk_iif(const struct sctp_chunk *);
|
int sctp_chunk_iif(const struct sctp_chunk *);
|
||||||
struct sctp_association *sctp_make_temp_asoc(const struct sctp_endpoint *,
|
struct sctp_association *sctp_make_temp_asoc(const struct sctp_endpoint *,
|
||||||
struct sctp_chunk *,
|
struct sctp_chunk *,
|
||||||
int gfp);
|
unsigned int __nocast gfp);
|
||||||
__u32 sctp_generate_verification_tag(void);
|
__u32 sctp_generate_verification_tag(void);
|
||||||
void sctp_populate_tie_tags(__u8 *cookie, __u32 curTag, __u32 hisTag);
|
void sctp_populate_tie_tags(__u8 *cookie, __u32 curTag, __u32 hisTag);
|
||||||
|
|
||||||
/* Prototypes for chunk-building functions. */
|
/* Prototypes for chunk-building functions. */
|
||||||
struct sctp_chunk *sctp_make_init(const struct sctp_association *,
|
struct sctp_chunk *sctp_make_init(const struct sctp_association *,
|
||||||
const struct sctp_bind_addr *,
|
const struct sctp_bind_addr *,
|
||||||
int gfp, int vparam_len);
|
unsigned int __nocast gfp, int vparam_len);
|
||||||
struct sctp_chunk *sctp_make_init_ack(const struct sctp_association *,
|
struct sctp_chunk *sctp_make_init_ack(const struct sctp_association *,
|
||||||
const struct sctp_chunk *,
|
const struct sctp_chunk *,
|
||||||
const int gfp,
|
const unsigned int __nocast gfp,
|
||||||
const int unkparam_len);
|
const int unkparam_len);
|
||||||
struct sctp_chunk *sctp_make_cookie_echo(const struct sctp_association *,
|
struct sctp_chunk *sctp_make_cookie_echo(const struct sctp_association *,
|
||||||
const struct sctp_chunk *);
|
const struct sctp_chunk *);
|
||||||
|
@ -265,7 +265,7 @@ int sctp_do_sm(sctp_event_t event_type, sctp_subtype_t subtype,
|
||||||
struct sctp_endpoint *,
|
struct sctp_endpoint *,
|
||||||
struct sctp_association *asoc,
|
struct sctp_association *asoc,
|
||||||
void *event_arg,
|
void *event_arg,
|
||||||
int gfp);
|
unsigned int __nocast gfp);
|
||||||
|
|
||||||
/* 2nd level prototypes */
|
/* 2nd level prototypes */
|
||||||
void sctp_generate_t3_rtx_event(unsigned long peer);
|
void sctp_generate_t3_rtx_event(unsigned long peer);
|
||||||
|
@ -275,7 +275,8 @@ void sctp_ootb_pkt_free(struct sctp_packet *);
|
||||||
|
|
||||||
struct sctp_association *sctp_unpack_cookie(const struct sctp_endpoint *,
|
struct sctp_association *sctp_unpack_cookie(const struct sctp_endpoint *,
|
||||||
const struct sctp_association *,
|
const struct sctp_association *,
|
||||||
struct sctp_chunk *, int gfp, int *err,
|
struct sctp_chunk *,
|
||||||
|
unsigned int __nocast gfp, int *err,
|
||||||
struct sctp_chunk **err_chk_p);
|
struct sctp_chunk **err_chk_p);
|
||||||
int sctp_addip_addr_config(struct sctp_association *, sctp_param_t,
|
int sctp_addip_addr_config(struct sctp_association *, sctp_param_t,
|
||||||
struct sockaddr_storage*, int);
|
struct sockaddr_storage*, int);
|
||||||
|
|
|
@ -445,7 +445,8 @@ struct sctp_ssnmap {
|
||||||
int malloced;
|
int malloced;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct sctp_ssnmap *sctp_ssnmap_new(__u16 in, __u16 out, int gfp);
|
struct sctp_ssnmap *sctp_ssnmap_new(__u16 in, __u16 out,
|
||||||
|
unsigned int __nocast gfp);
|
||||||
void sctp_ssnmap_free(struct sctp_ssnmap *map);
|
void sctp_ssnmap_free(struct sctp_ssnmap *map);
|
||||||
void sctp_ssnmap_clear(struct sctp_ssnmap *map);
|
void sctp_ssnmap_clear(struct sctp_ssnmap *map);
|
||||||
|
|
||||||
|
@ -945,7 +946,8 @@ struct sctp_transport {
|
||||||
} cacc;
|
} cacc;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct sctp_transport *sctp_transport_new(const union sctp_addr *, int);
|
struct sctp_transport *sctp_transport_new(const union sctp_addr *,
|
||||||
|
unsigned int __nocast);
|
||||||
void sctp_transport_set_owner(struct sctp_transport *,
|
void sctp_transport_set_owner(struct sctp_transport *,
|
||||||
struct sctp_association *);
|
struct sctp_association *);
|
||||||
void sctp_transport_route(struct sctp_transport *, union sctp_addr *,
|
void sctp_transport_route(struct sctp_transport *, union sctp_addr *,
|
||||||
|
@ -1093,9 +1095,10 @@ void sctp_bind_addr_init(struct sctp_bind_addr *, __u16 port);
|
||||||
void sctp_bind_addr_free(struct sctp_bind_addr *);
|
void sctp_bind_addr_free(struct sctp_bind_addr *);
|
||||||
int sctp_bind_addr_copy(struct sctp_bind_addr *dest,
|
int sctp_bind_addr_copy(struct sctp_bind_addr *dest,
|
||||||
const struct sctp_bind_addr *src,
|
const struct sctp_bind_addr *src,
|
||||||
sctp_scope_t scope, int gfp,int flags);
|
sctp_scope_t scope, unsigned int __nocast gfp,
|
||||||
|
int flags);
|
||||||
int sctp_add_bind_addr(struct sctp_bind_addr *, union sctp_addr *,
|
int sctp_add_bind_addr(struct sctp_bind_addr *, union sctp_addr *,
|
||||||
int gfp);
|
unsigned int __nocast gfp);
|
||||||
int sctp_del_bind_addr(struct sctp_bind_addr *, union sctp_addr *);
|
int sctp_del_bind_addr(struct sctp_bind_addr *, union sctp_addr *);
|
||||||
int sctp_bind_addr_match(struct sctp_bind_addr *, const union sctp_addr *,
|
int sctp_bind_addr_match(struct sctp_bind_addr *, const union sctp_addr *,
|
||||||
struct sctp_sock *);
|
struct sctp_sock *);
|
||||||
|
@ -1104,9 +1107,10 @@ union sctp_addr *sctp_find_unmatch_addr(struct sctp_bind_addr *bp,
|
||||||
int addrcnt,
|
int addrcnt,
|
||||||
struct sctp_sock *opt);
|
struct sctp_sock *opt);
|
||||||
union sctp_params sctp_bind_addrs_to_raw(const struct sctp_bind_addr *bp,
|
union sctp_params sctp_bind_addrs_to_raw(const struct sctp_bind_addr *bp,
|
||||||
int *addrs_len, int gfp);
|
int *addrs_len,
|
||||||
|
unsigned int __nocast gfp);
|
||||||
int sctp_raw_to_bind_addrs(struct sctp_bind_addr *bp, __u8 *raw, int len,
|
int sctp_raw_to_bind_addrs(struct sctp_bind_addr *bp, __u8 *raw, int len,
|
||||||
__u16 port, int gfp);
|
__u16 port, unsigned int __nocast gfp);
|
||||||
|
|
||||||
sctp_scope_t sctp_scope(const union sctp_addr *);
|
sctp_scope_t sctp_scope(const union sctp_addr *);
|
||||||
int sctp_in_scope(const union sctp_addr *addr, const sctp_scope_t scope);
|
int sctp_in_scope(const union sctp_addr *addr, const sctp_scope_t scope);
|
||||||
|
@ -1235,7 +1239,7 @@ static inline struct sctp_endpoint *sctp_ep(struct sctp_ep_common *base)
|
||||||
}
|
}
|
||||||
|
|
||||||
/* These are function signatures for manipulating endpoints. */
|
/* These are function signatures for manipulating endpoints. */
|
||||||
struct sctp_endpoint *sctp_endpoint_new(struct sock *, int);
|
struct sctp_endpoint *sctp_endpoint_new(struct sock *, unsigned int __nocast);
|
||||||
void sctp_endpoint_free(struct sctp_endpoint *);
|
void sctp_endpoint_free(struct sctp_endpoint *);
|
||||||
void sctp_endpoint_put(struct sctp_endpoint *);
|
void sctp_endpoint_put(struct sctp_endpoint *);
|
||||||
void sctp_endpoint_hold(struct sctp_endpoint *);
|
void sctp_endpoint_hold(struct sctp_endpoint *);
|
||||||
|
@ -1256,7 +1260,7 @@ int sctp_verify_init(const struct sctp_association *asoc, sctp_cid_t,
|
||||||
struct sctp_chunk **err_chunk);
|
struct sctp_chunk **err_chunk);
|
||||||
int sctp_process_init(struct sctp_association *, sctp_cid_t cid,
|
int sctp_process_init(struct sctp_association *, sctp_cid_t cid,
|
||||||
const union sctp_addr *peer,
|
const union sctp_addr *peer,
|
||||||
sctp_init_chunk_t *init, int gfp);
|
sctp_init_chunk_t *init, unsigned int __nocast gfp);
|
||||||
__u32 sctp_generate_tag(const struct sctp_endpoint *);
|
__u32 sctp_generate_tag(const struct sctp_endpoint *);
|
||||||
__u32 sctp_generate_tsn(const struct sctp_endpoint *);
|
__u32 sctp_generate_tsn(const struct sctp_endpoint *);
|
||||||
|
|
||||||
|
@ -1719,7 +1723,7 @@ static inline struct sctp_association *sctp_assoc(struct sctp_ep_common *base)
|
||||||
|
|
||||||
struct sctp_association *
|
struct sctp_association *
|
||||||
sctp_association_new(const struct sctp_endpoint *, const struct sock *,
|
sctp_association_new(const struct sctp_endpoint *, const struct sock *,
|
||||||
sctp_scope_t scope, int gfp);
|
sctp_scope_t scope, unsigned int __nocast gfp);
|
||||||
void sctp_association_free(struct sctp_association *);
|
void sctp_association_free(struct sctp_association *);
|
||||||
void sctp_association_put(struct sctp_association *);
|
void sctp_association_put(struct sctp_association *);
|
||||||
void sctp_association_hold(struct sctp_association *);
|
void sctp_association_hold(struct sctp_association *);
|
||||||
|
@ -1735,7 +1739,7 @@ int sctp_assoc_lookup_laddr(struct sctp_association *asoc,
|
||||||
const union sctp_addr *laddr);
|
const union sctp_addr *laddr);
|
||||||
struct sctp_transport *sctp_assoc_add_peer(struct sctp_association *,
|
struct sctp_transport *sctp_assoc_add_peer(struct sctp_association *,
|
||||||
const union sctp_addr *address,
|
const union sctp_addr *address,
|
||||||
const int gfp,
|
const unsigned int __nocast gfp,
|
||||||
const int peer_state);
|
const int peer_state);
|
||||||
void sctp_assoc_del_peer(struct sctp_association *asoc,
|
void sctp_assoc_del_peer(struct sctp_association *asoc,
|
||||||
const union sctp_addr *addr);
|
const union sctp_addr *addr);
|
||||||
|
@ -1759,9 +1763,11 @@ void sctp_assoc_rwnd_increase(struct sctp_association *, unsigned);
|
||||||
void sctp_assoc_rwnd_decrease(struct sctp_association *, unsigned);
|
void sctp_assoc_rwnd_decrease(struct sctp_association *, unsigned);
|
||||||
void sctp_assoc_set_primary(struct sctp_association *,
|
void sctp_assoc_set_primary(struct sctp_association *,
|
||||||
struct sctp_transport *);
|
struct sctp_transport *);
|
||||||
int sctp_assoc_set_bind_addr_from_ep(struct sctp_association *, int);
|
int sctp_assoc_set_bind_addr_from_ep(struct sctp_association *,
|
||||||
|
unsigned int __nocast);
|
||||||
int sctp_assoc_set_bind_addr_from_cookie(struct sctp_association *,
|
int sctp_assoc_set_bind_addr_from_cookie(struct sctp_association *,
|
||||||
struct sctp_cookie*, int gfp);
|
struct sctp_cookie*,
|
||||||
|
unsigned int __nocast gfp);
|
||||||
|
|
||||||
int sctp_cmp_addr_exact(const union sctp_addr *ss1,
|
int sctp_cmp_addr_exact(const union sctp_addr *ss1,
|
||||||
const union sctp_addr *ss2);
|
const union sctp_addr *ss2);
|
||||||
|
|
|
@ -88,7 +88,7 @@ struct sctp_ulpevent *sctp_ulpevent_make_assoc_change(
|
||||||
__u16 error,
|
__u16 error,
|
||||||
__u16 outbound,
|
__u16 outbound,
|
||||||
__u16 inbound,
|
__u16 inbound,
|
||||||
int gfp);
|
unsigned int __nocast gfp);
|
||||||
|
|
||||||
struct sctp_ulpevent *sctp_ulpevent_make_peer_addr_change(
|
struct sctp_ulpevent *sctp_ulpevent_make_peer_addr_change(
|
||||||
const struct sctp_association *asoc,
|
const struct sctp_association *asoc,
|
||||||
|
@ -96,35 +96,35 @@ struct sctp_ulpevent *sctp_ulpevent_make_peer_addr_change(
|
||||||
int flags,
|
int flags,
|
||||||
int state,
|
int state,
|
||||||
int error,
|
int error,
|
||||||
int gfp);
|
unsigned int __nocast gfp);
|
||||||
|
|
||||||
struct sctp_ulpevent *sctp_ulpevent_make_remote_error(
|
struct sctp_ulpevent *sctp_ulpevent_make_remote_error(
|
||||||
const struct sctp_association *asoc,
|
const struct sctp_association *asoc,
|
||||||
struct sctp_chunk *chunk,
|
struct sctp_chunk *chunk,
|
||||||
__u16 flags,
|
__u16 flags,
|
||||||
int gfp);
|
unsigned int __nocast gfp);
|
||||||
struct sctp_ulpevent *sctp_ulpevent_make_send_failed(
|
struct sctp_ulpevent *sctp_ulpevent_make_send_failed(
|
||||||
const struct sctp_association *asoc,
|
const struct sctp_association *asoc,
|
||||||
struct sctp_chunk *chunk,
|
struct sctp_chunk *chunk,
|
||||||
__u16 flags,
|
__u16 flags,
|
||||||
__u32 error,
|
__u32 error,
|
||||||
int gfp);
|
unsigned int __nocast gfp);
|
||||||
|
|
||||||
struct sctp_ulpevent *sctp_ulpevent_make_shutdown_event(
|
struct sctp_ulpevent *sctp_ulpevent_make_shutdown_event(
|
||||||
const struct sctp_association *asoc,
|
const struct sctp_association *asoc,
|
||||||
__u16 flags,
|
__u16 flags,
|
||||||
int gfp);
|
unsigned int __nocast gfp);
|
||||||
|
|
||||||
struct sctp_ulpevent *sctp_ulpevent_make_pdapi(
|
struct sctp_ulpevent *sctp_ulpevent_make_pdapi(
|
||||||
const struct sctp_association *asoc,
|
const struct sctp_association *asoc,
|
||||||
__u32 indication, int gfp);
|
__u32 indication, unsigned int __nocast gfp);
|
||||||
|
|
||||||
struct sctp_ulpevent *sctp_ulpevent_make_adaption_indication(
|
struct sctp_ulpevent *sctp_ulpevent_make_adaption_indication(
|
||||||
const struct sctp_association *asoc, int gfp);
|
const struct sctp_association *asoc, unsigned int __nocast gfp);
|
||||||
|
|
||||||
struct sctp_ulpevent *sctp_ulpevent_make_rcvmsg(struct sctp_association *asoc,
|
struct sctp_ulpevent *sctp_ulpevent_make_rcvmsg(struct sctp_association *asoc,
|
||||||
struct sctp_chunk *chunk,
|
struct sctp_chunk *chunk,
|
||||||
int gfp);
|
unsigned int __nocast gfp);
|
||||||
|
|
||||||
void sctp_ulpevent_read_sndrcvinfo(const struct sctp_ulpevent *event,
|
void sctp_ulpevent_read_sndrcvinfo(const struct sctp_ulpevent *event,
|
||||||
struct msghdr *);
|
struct msghdr *);
|
||||||
|
|
|
@ -62,19 +62,22 @@ struct sctp_ulpq *sctp_ulpq_init(struct sctp_ulpq *,
|
||||||
void sctp_ulpq_free(struct sctp_ulpq *);
|
void sctp_ulpq_free(struct sctp_ulpq *);
|
||||||
|
|
||||||
/* Add a new DATA chunk for processing. */
|
/* Add a new DATA chunk for processing. */
|
||||||
int sctp_ulpq_tail_data(struct sctp_ulpq *, struct sctp_chunk *, int);
|
int sctp_ulpq_tail_data(struct sctp_ulpq *, struct sctp_chunk *,
|
||||||
|
unsigned int __nocast);
|
||||||
|
|
||||||
/* Add a new event for propagation to the ULP. */
|
/* Add a new event for propagation to the ULP. */
|
||||||
int sctp_ulpq_tail_event(struct sctp_ulpq *, struct sctp_ulpevent *ev);
|
int sctp_ulpq_tail_event(struct sctp_ulpq *, struct sctp_ulpevent *ev);
|
||||||
|
|
||||||
/* Renege previously received chunks. */
|
/* Renege previously received chunks. */
|
||||||
void sctp_ulpq_renege(struct sctp_ulpq *, struct sctp_chunk *, int);
|
void sctp_ulpq_renege(struct sctp_ulpq *, struct sctp_chunk *,
|
||||||
|
unsigned int __nocast);
|
||||||
|
|
||||||
/* Perform partial delivery. */
|
/* Perform partial delivery. */
|
||||||
void sctp_ulpq_partial_delivery(struct sctp_ulpq *, struct sctp_chunk *, int);
|
void sctp_ulpq_partial_delivery(struct sctp_ulpq *, struct sctp_chunk *,
|
||||||
|
unsigned int __nocast);
|
||||||
|
|
||||||
/* Abort the partial delivery. */
|
/* Abort the partial delivery. */
|
||||||
void sctp_ulpq_abort_pd(struct sctp_ulpq *, int);
|
void sctp_ulpq_abort_pd(struct sctp_ulpq *, unsigned int __nocast);
|
||||||
|
|
||||||
/* Clear the partial data delivery condition on this socket. */
|
/* Clear the partial data delivery condition on this socket. */
|
||||||
int sctp_clear_pd(struct sock *sk);
|
int sctp_clear_pd(struct sock *sk);
|
||||||
|
|
|
@ -5,8 +5,7 @@
|
||||||
#include <linux/if_packet.h>
|
#include <linux/if_packet.h>
|
||||||
#include <linux/skbuff.h>
|
#include <linux/skbuff.h>
|
||||||
|
|
||||||
static inline unsigned short x25_type_trans(struct sk_buff *skb,
|
static inline __be16 x25_type_trans(struct sk_buff *skb, struct net_device *dev)
|
||||||
struct net_device *dev)
|
|
||||||
{
|
{
|
||||||
skb->mac.raw = skb->data;
|
skb->mac.raw = skb->data;
|
||||||
skb->input_dev = skb->dev = dev;
|
skb->input_dev = skb->dev = dev;
|
||||||
|
|
|
@ -122,10 +122,10 @@ static int fddi_rebuild_header(struct sk_buff *skb)
|
||||||
* the proper pointer to the start of packet data (skb->data).
|
* the proper pointer to the start of packet data (skb->data).
|
||||||
*/
|
*/
|
||||||
|
|
||||||
unsigned short fddi_type_trans(struct sk_buff *skb, struct net_device *dev)
|
__be16 fddi_type_trans(struct sk_buff *skb, struct net_device *dev)
|
||||||
{
|
{
|
||||||
struct fddihdr *fddi = (struct fddihdr *)skb->data;
|
struct fddihdr *fddi = (struct fddihdr *)skb->data;
|
||||||
unsigned short type;
|
__be16 type;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Set mac.raw field to point to FC byte, set data field to point
|
* Set mac.raw field to point to FC byte, set data field to point
|
||||||
|
|
|
@ -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)
|
if (!vlandev)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
|
if (netif_carrier_ok(dev)) {
|
||||||
|
if (!netif_carrier_ok(vlandev))
|
||||||
|
netif_carrier_on(vlandev);
|
||||||
|
} else {
|
||||||
|
if (netif_carrier_ok(vlandev))
|
||||||
|
netif_carrier_off(vlandev);
|
||||||
|
}
|
||||||
|
|
||||||
if ((vlandev->state & VLAN_LINK_STATE_MASK) != flgs) {
|
if ((vlandev->state & VLAN_LINK_STATE_MASK) != flgs) {
|
||||||
vlandev->state = (vlandev->state &~ VLAN_LINK_STATE_MASK)
|
vlandev->state = (vlandev->state &~ VLAN_LINK_STATE_MASK)
|
||||||
| flgs;
|
| flgs;
|
||||||
|
|
456
net/Kconfig
456
net/Kconfig
|
@ -2,7 +2,7 @@
|
||||||
# Network configuration
|
# Network configuration
|
||||||
#
|
#
|
||||||
|
|
||||||
menu "Networking support"
|
menu "Networking"
|
||||||
|
|
||||||
config NET
|
config NET
|
||||||
bool "Networking support"
|
bool "Networking support"
|
||||||
|
@ -10,7 +10,9 @@ config NET
|
||||||
Unless you really know what you are doing, you should say Y here.
|
Unless you really know what you are doing, you should say Y here.
|
||||||
The reason is that some programs need kernel networking support even
|
The reason is that some programs need kernel networking support even
|
||||||
when running on a stand-alone machine that isn't connected to any
|
when running on a stand-alone machine that isn't connected to any
|
||||||
other computer. If you are upgrading from an older kernel, you
|
other computer.
|
||||||
|
|
||||||
|
If you are upgrading from an older kernel, you
|
||||||
should consider updating your networking tools too because changes
|
should consider updating your networking tools too because changes
|
||||||
in the kernel and the tools often go hand in hand. The tools are
|
in the kernel and the tools often go hand in hand. The tools are
|
||||||
contained in the package net-tools, the location and version number
|
contained in the package net-tools, the location and version number
|
||||||
|
@ -20,57 +22,14 @@ config NET
|
||||||
recommended to read the NET-HOWTO, available from
|
recommended to read the NET-HOWTO, available from
|
||||||
<http://www.tldp.org/docs.html#howto>.
|
<http://www.tldp.org/docs.html#howto>.
|
||||||
|
|
||||||
|
# Make sure that all config symbols are dependent on NET
|
||||||
|
if NET
|
||||||
|
|
||||||
menu "Networking options"
|
menu "Networking options"
|
||||||
depends on NET
|
|
||||||
|
|
||||||
config PACKET
|
source "net/packet/Kconfig"
|
||||||
tristate "Packet socket"
|
source "net/unix/Kconfig"
|
||||||
---help---
|
source "net/xfrm/Kconfig"
|
||||||
The Packet protocol is used by applications which communicate
|
|
||||||
directly with network devices without an intermediate network
|
|
||||||
protocol implemented in the kernel, e.g. tcpdump. If you want them
|
|
||||||
to work, choose Y.
|
|
||||||
|
|
||||||
To compile this driver as a module, choose M here: the module will
|
|
||||||
be called af_packet.
|
|
||||||
|
|
||||||
If unsure, say Y.
|
|
||||||
|
|
||||||
config PACKET_MMAP
|
|
||||||
bool "Packet socket: mmapped IO"
|
|
||||||
depends on PACKET
|
|
||||||
help
|
|
||||||
If you say Y here, the Packet protocol driver will use an IO
|
|
||||||
mechanism that results in faster communication.
|
|
||||||
|
|
||||||
If unsure, say N.
|
|
||||||
|
|
||||||
config UNIX
|
|
||||||
tristate "Unix domain sockets"
|
|
||||||
---help---
|
|
||||||
If you say Y here, you will include support for Unix domain sockets;
|
|
||||||
sockets are the standard Unix mechanism for establishing and
|
|
||||||
accessing network connections. Many commonly used programs such as
|
|
||||||
the X Window system and syslog use these sockets even if your
|
|
||||||
machine is not connected to any network. Unless you are working on
|
|
||||||
an embedded system or something similar, you therefore definitely
|
|
||||||
want to say Y here.
|
|
||||||
|
|
||||||
To compile this driver as a module, choose M here: the module will be
|
|
||||||
called unix. Note that several important services won't work
|
|
||||||
correctly if you say M here and then neglect to load the module.
|
|
||||||
|
|
||||||
Say Y unless you know what you are doing.
|
|
||||||
|
|
||||||
config NET_KEY
|
|
||||||
tristate "PF_KEY sockets"
|
|
||||||
select XFRM
|
|
||||||
---help---
|
|
||||||
PF_KEYv2 socket family, compatible to KAME ones.
|
|
||||||
They are required if you are going to use IPsec tools ported
|
|
||||||
from KAME.
|
|
||||||
|
|
||||||
Say Y unless you know what you are doing.
|
|
||||||
|
|
||||||
config INET
|
config INET
|
||||||
bool "TCP/IP networking"
|
bool "TCP/IP networking"
|
||||||
|
@ -94,30 +53,12 @@ config INET
|
||||||
|
|
||||||
Short answer: say Y.
|
Short answer: say Y.
|
||||||
|
|
||||||
|
if INET
|
||||||
source "net/ipv4/Kconfig"
|
source "net/ipv4/Kconfig"
|
||||||
|
|
||||||
# IPv6 as module will cause a CRASH if you try to unload it
|
|
||||||
config IPV6
|
|
||||||
tristate "The IPv6 protocol"
|
|
||||||
depends on INET
|
|
||||||
default m
|
|
||||||
select CRYPTO if IPV6_PRIVACY
|
|
||||||
select CRYPTO_MD5 if IPV6_PRIVACY
|
|
||||||
---help---
|
|
||||||
This is complemental support for the IP version 6.
|
|
||||||
You will still be able to do traditional IPv4 networking as well.
|
|
||||||
|
|
||||||
For general information about IPv6, see
|
|
||||||
<http://playground.sun.com/pub/ipng/html/ipng-main.html>.
|
|
||||||
For Linux IPv6 development information, see <http://www.linux-ipv6.org>.
|
|
||||||
For specific information about IPv6 under Linux, read the HOWTO at
|
|
||||||
<http://www.bieringer.de/linux/IPv6/>.
|
|
||||||
|
|
||||||
To compile this protocol support as a module, choose M here: the
|
|
||||||
module will be called ipv6.
|
|
||||||
|
|
||||||
source "net/ipv6/Kconfig"
|
source "net/ipv6/Kconfig"
|
||||||
|
|
||||||
|
endif # if INET
|
||||||
|
|
||||||
menuconfig NETFILTER
|
menuconfig NETFILTER
|
||||||
bool "Network packet filtering (replaces ipchains)"
|
bool "Network packet filtering (replaces ipchains)"
|
||||||
---help---
|
---help---
|
||||||
|
@ -206,269 +147,16 @@ source "net/bridge/netfilter/Kconfig"
|
||||||
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
config XFRM
|
|
||||||
bool
|
|
||||||
depends on NET
|
|
||||||
|
|
||||||
source "net/xfrm/Kconfig"
|
|
||||||
|
|
||||||
source "net/sctp/Kconfig"
|
source "net/sctp/Kconfig"
|
||||||
|
source "net/atm/Kconfig"
|
||||||
config ATM
|
source "net/bridge/Kconfig"
|
||||||
tristate "Asynchronous Transfer Mode (ATM) (EXPERIMENTAL)"
|
source "net/8021q/Kconfig"
|
||||||
depends on EXPERIMENTAL
|
|
||||||
---help---
|
|
||||||
ATM is a high-speed networking technology for Local Area Networks
|
|
||||||
and Wide Area Networks. It uses a fixed packet size and is
|
|
||||||
connection oriented, allowing for the negotiation of minimum
|
|
||||||
bandwidth requirements.
|
|
||||||
|
|
||||||
In order to participate in an ATM network, your Linux box needs an
|
|
||||||
ATM networking card. If you have that, say Y here and to the driver
|
|
||||||
of your ATM card below.
|
|
||||||
|
|
||||||
Note that you need a set of user-space programs to actually make use
|
|
||||||
of ATM. See the file <file:Documentation/networking/atm.txt> for
|
|
||||||
further details.
|
|
||||||
|
|
||||||
config ATM_CLIP
|
|
||||||
tristate "Classical IP over ATM (EXPERIMENTAL)"
|
|
||||||
depends on ATM && INET
|
|
||||||
help
|
|
||||||
Classical IP over ATM for PVCs and SVCs, supporting InARP and
|
|
||||||
ATMARP. If you want to communication with other IP hosts on your ATM
|
|
||||||
network, you will typically either say Y here or to "LAN Emulation
|
|
||||||
(LANE)" below.
|
|
||||||
|
|
||||||
config ATM_CLIP_NO_ICMP
|
|
||||||
bool "Do NOT send ICMP if no neighbour (EXPERIMENTAL)"
|
|
||||||
depends on ATM_CLIP
|
|
||||||
help
|
|
||||||
Normally, an "ICMP host unreachable" message is sent if a neighbour
|
|
||||||
cannot be reached because there is no VC to it in the kernel's
|
|
||||||
ATMARP table. This may cause problems when ATMARP table entries are
|
|
||||||
briefly removed during revalidation. If you say Y here, packets to
|
|
||||||
such neighbours are silently discarded instead.
|
|
||||||
|
|
||||||
config ATM_LANE
|
|
||||||
tristate "LAN Emulation (LANE) support (EXPERIMENTAL)"
|
|
||||||
depends on ATM
|
|
||||||
help
|
|
||||||
LAN Emulation emulates services of existing LANs across an ATM
|
|
||||||
network. Besides operating as a normal ATM end station client, Linux
|
|
||||||
LANE client can also act as an proxy client bridging packets between
|
|
||||||
ELAN and Ethernet segments. You need LANE if you want to try MPOA.
|
|
||||||
|
|
||||||
config ATM_MPOA
|
|
||||||
tristate "Multi-Protocol Over ATM (MPOA) support (EXPERIMENTAL)"
|
|
||||||
depends on ATM && INET && ATM_LANE!=n
|
|
||||||
help
|
|
||||||
Multi-Protocol Over ATM allows ATM edge devices such as routers,
|
|
||||||
bridges and ATM attached hosts establish direct ATM VCs across
|
|
||||||
subnetwork boundaries. These shortcut connections bypass routers
|
|
||||||
enhancing overall network performance.
|
|
||||||
|
|
||||||
config ATM_BR2684
|
|
||||||
tristate "RFC1483/2684 Bridged protocols"
|
|
||||||
depends on ATM && INET
|
|
||||||
help
|
|
||||||
ATM PVCs can carry ethernet PDUs according to rfc2684 (formerly 1483)
|
|
||||||
This device will act like an ethernet from the kernels point of view,
|
|
||||||
with the traffic being carried by ATM PVCs (currently 1 PVC/device).
|
|
||||||
This is sometimes used over DSL lines. If in doubt, say N.
|
|
||||||
|
|
||||||
config ATM_BR2684_IPFILTER
|
|
||||||
bool "Per-VC IP filter kludge"
|
|
||||||
depends on ATM_BR2684
|
|
||||||
help
|
|
||||||
This is an experimental mechanism for users who need to terminating a
|
|
||||||
large number of IP-only vcc's. Do not enable this unless you are sure
|
|
||||||
you know what you are doing.
|
|
||||||
|
|
||||||
config BRIDGE
|
|
||||||
tristate "802.1d Ethernet Bridging"
|
|
||||||
---help---
|
|
||||||
If you say Y here, then your Linux box will be able to act as an
|
|
||||||
Ethernet bridge, which means that the different Ethernet segments it
|
|
||||||
is connected to will appear as one Ethernet to the participants.
|
|
||||||
Several such bridges can work together to create even larger
|
|
||||||
networks of Ethernets using the IEEE 802.1 spanning tree algorithm.
|
|
||||||
As this is a standard, Linux bridges will cooperate properly with
|
|
||||||
other third party bridge products.
|
|
||||||
|
|
||||||
In order to use the Ethernet bridge, you'll need the bridge
|
|
||||||
configuration tools; see <file:Documentation/networking/bridge.txt>
|
|
||||||
for location. Please read the Bridge mini-HOWTO for more
|
|
||||||
information.
|
|
||||||
|
|
||||||
If you enable iptables support along with the bridge support then you
|
|
||||||
turn your bridge into a bridging IP firewall.
|
|
||||||
iptables will then see the IP packets being bridged, so you need to
|
|
||||||
take this into account when setting up your firewall rules.
|
|
||||||
Enabling arptables support when bridging will let arptables see
|
|
||||||
bridged ARP traffic in the arptables FORWARD chain.
|
|
||||||
|
|
||||||
To compile this code as a module, choose M here: the module
|
|
||||||
will be called bridge.
|
|
||||||
|
|
||||||
If unsure, say N.
|
|
||||||
|
|
||||||
config VLAN_8021Q
|
|
||||||
tristate "802.1Q VLAN Support"
|
|
||||||
---help---
|
|
||||||
Select this and you will be able to create 802.1Q VLAN interfaces
|
|
||||||
on your ethernet interfaces. 802.1Q VLAN supports almost
|
|
||||||
everything a regular ethernet interface does, including
|
|
||||||
firewalling, bridging, and of course IP traffic. You will need
|
|
||||||
the 'vconfig' tool from the VLAN project in order to effectively
|
|
||||||
use VLANs. See the VLAN web page for more information:
|
|
||||||
<http://www.candelatech.com/~greear/vlan.html>
|
|
||||||
|
|
||||||
To compile this code as a module, choose M here: the module
|
|
||||||
will be called 8021q.
|
|
||||||
|
|
||||||
If unsure, say N.
|
|
||||||
|
|
||||||
config DECNET
|
|
||||||
tristate "DECnet Support"
|
|
||||||
---help---
|
|
||||||
The DECnet networking protocol was used in many products made by
|
|
||||||
Digital (now Compaq). It provides reliable stream and sequenced
|
|
||||||
packet communications over which run a variety of services similar
|
|
||||||
to those which run over TCP/IP.
|
|
||||||
|
|
||||||
To find some tools to use with the kernel layer support, please
|
|
||||||
look at Patrick Caulfield's web site:
|
|
||||||
<http://linux-decnet.sourceforge.net/>.
|
|
||||||
|
|
||||||
More detailed documentation is available in
|
|
||||||
<file:Documentation/networking/decnet.txt>.
|
|
||||||
|
|
||||||
Be sure to say Y to "/proc file system support" and "Sysctl support"
|
|
||||||
below when using DECnet, since you will need sysctl support to aid
|
|
||||||
in configuration at run time.
|
|
||||||
|
|
||||||
The DECnet code is also available as a module ( = code which can be
|
|
||||||
inserted in and removed from the running kernel whenever you want).
|
|
||||||
The module is called decnet.
|
|
||||||
|
|
||||||
source "net/decnet/Kconfig"
|
source "net/decnet/Kconfig"
|
||||||
|
|
||||||
source "net/llc/Kconfig"
|
source "net/llc/Kconfig"
|
||||||
|
|
||||||
config IPX
|
|
||||||
tristate "The IPX protocol"
|
|
||||||
select LLC
|
|
||||||
---help---
|
|
||||||
This is support for the Novell networking protocol, IPX, commonly
|
|
||||||
used for local networks of Windows machines. You need it if you
|
|
||||||
want to access Novell NetWare file or print servers using the Linux
|
|
||||||
Novell client ncpfs (available from
|
|
||||||
<ftp://platan.vc.cvut.cz/pub/linux/ncpfs/>) or from
|
|
||||||
within the Linux DOS emulator DOSEMU (read the DOSEMU-HOWTO,
|
|
||||||
available from <http://www.tldp.org/docs.html#howto>). In order
|
|
||||||
to do the former, you'll also have to say Y to "NCP file system
|
|
||||||
support", below.
|
|
||||||
|
|
||||||
IPX is similar in scope to IP, while SPX, which runs on top of IPX,
|
|
||||||
is similar to TCP. There is also experimental support for SPX in
|
|
||||||
Linux (see "SPX networking", below).
|
|
||||||
|
|
||||||
To turn your Linux box into a fully featured NetWare file server and
|
|
||||||
IPX router, say Y here and fetch either lwared from
|
|
||||||
<ftp://ibiblio.org/pub/Linux/system/network/daemons/> or
|
|
||||||
mars_nwe from <ftp://www.compu-art.de/mars_nwe/>. For more
|
|
||||||
information, read the IPX-HOWTO available from
|
|
||||||
<http://www.tldp.org/docs.html#howto>.
|
|
||||||
|
|
||||||
General information about how to connect Linux, Windows machines and
|
|
||||||
Macs is on the WWW at <http://www.eats.com/linux_mac_win.html>.
|
|
||||||
|
|
||||||
The IPX driver would enlarge your kernel by about 16 KB. To compile
|
|
||||||
this driver as a module, choose M here: the module will be called ipx.
|
|
||||||
Unless you want to integrate your Linux box with a local Novell
|
|
||||||
network, say N.
|
|
||||||
|
|
||||||
source "net/ipx/Kconfig"
|
source "net/ipx/Kconfig"
|
||||||
|
|
||||||
config ATALK
|
|
||||||
tristate "Appletalk protocol support"
|
|
||||||
select LLC
|
|
||||||
---help---
|
|
||||||
AppleTalk is the protocol that Apple computers can use to communicate
|
|
||||||
on a network. If your Linux box is connected to such a network and you
|
|
||||||
wish to connect to it, say Y. You will need to use the netatalk package
|
|
||||||
so that your Linux box can act as a print and file server for Macs as
|
|
||||||
well as access AppleTalk printers. Check out
|
|
||||||
<http://www.zettabyte.net/netatalk/> on the WWW for details.
|
|
||||||
EtherTalk is the name used for AppleTalk over Ethernet and the
|
|
||||||
cheaper and slower LocalTalk is AppleTalk over a proprietary Apple
|
|
||||||
network using serial links. EtherTalk and LocalTalk are fully
|
|
||||||
supported by Linux.
|
|
||||||
|
|
||||||
General information about how to connect Linux, Windows machines and
|
|
||||||
Macs is on the WWW at <http://www.eats.com/linux_mac_win.html>. The
|
|
||||||
NET-3-HOWTO, available from
|
|
||||||
<http://www.tldp.org/docs.html#howto>, contains valuable
|
|
||||||
information as well.
|
|
||||||
|
|
||||||
To compile this driver as a module, choose M here: the module will be
|
|
||||||
called appletalk. You almost certainly want to compile it as a
|
|
||||||
module so you can restart your AppleTalk stack without rebooting
|
|
||||||
your machine. I hear that the GNU boycott of Apple is over, so
|
|
||||||
even politically correct people are allowed to say Y here.
|
|
||||||
|
|
||||||
source "drivers/net/appletalk/Kconfig"
|
source "drivers/net/appletalk/Kconfig"
|
||||||
|
source "net/x25/Kconfig"
|
||||||
config X25
|
source "net/lapb/Kconfig"
|
||||||
tristate "CCITT X.25 Packet Layer (EXPERIMENTAL)"
|
|
||||||
depends on EXPERIMENTAL
|
|
||||||
---help---
|
|
||||||
X.25 is a set of standardized network protocols, similar in scope to
|
|
||||||
frame relay; the one physical line from your box to the X.25 network
|
|
||||||
entry point can carry several logical point-to-point connections
|
|
||||||
(called "virtual circuits") to other computers connected to the X.25
|
|
||||||
network. Governments, banks, and other organizations tend to use it
|
|
||||||
to connect to each other or to form Wide Area Networks (WANs). Many
|
|
||||||
countries have public X.25 networks. X.25 consists of two
|
|
||||||
protocols: the higher level Packet Layer Protocol (PLP) (say Y here
|
|
||||||
if you want that) and the lower level data link layer protocol LAPB
|
|
||||||
(say Y to "LAPB Data Link Driver" below if you want that).
|
|
||||||
|
|
||||||
You can read more about X.25 at <http://www.sangoma.com/x25.htm> and
|
|
||||||
<http://www.cisco.com/univercd/cc/td/doc/product/software/ios11/cbook/cx25.htm>.
|
|
||||||
Information about X.25 for Linux is contained in the files
|
|
||||||
<file:Documentation/networking/x25.txt> and
|
|
||||||
<file:Documentation/networking/x25-iface.txt>.
|
|
||||||
|
|
||||||
One connects to an X.25 network either with a dedicated network card
|
|
||||||
using the X.21 protocol (not yet supported by Linux) or one can do
|
|
||||||
X.25 over a standard telephone line using an ordinary modem (say Y
|
|
||||||
to "X.25 async driver" below) or over Ethernet using an ordinary
|
|
||||||
Ethernet card and the LAPB over Ethernet (say Y to "LAPB Data Link
|
|
||||||
Driver" and "LAPB over Ethernet driver" below).
|
|
||||||
|
|
||||||
To compile this driver as a module, choose M here: the module
|
|
||||||
will be called x25. If unsure, say N.
|
|
||||||
|
|
||||||
config LAPB
|
|
||||||
tristate "LAPB Data Link Driver (EXPERIMENTAL)"
|
|
||||||
depends on EXPERIMENTAL
|
|
||||||
---help---
|
|
||||||
Link Access Procedure, Balanced (LAPB) is the data link layer (i.e.
|
|
||||||
the lower) part of the X.25 protocol. It offers a reliable
|
|
||||||
connection service to exchange data frames with one other host, and
|
|
||||||
it is used to transport higher level protocols (mostly X.25 Packet
|
|
||||||
Layer, the higher part of X.25, but others are possible as well).
|
|
||||||
Usually, LAPB is used with specialized X.21 network cards, but Linux
|
|
||||||
currently supports LAPB only over Ethernet connections. If you want
|
|
||||||
to use LAPB connections over Ethernet, say Y here and to "LAPB over
|
|
||||||
Ethernet driver" below. Read
|
|
||||||
<file:Documentation/networking/lapb-module.txt> for technical
|
|
||||||
details.
|
|
||||||
|
|
||||||
To compile this driver as a module, choose M here: the
|
|
||||||
module will be called lapb. If unsure, say N.
|
|
||||||
|
|
||||||
config NET_DIVERT
|
config NET_DIVERT
|
||||||
bool "Frame Diverter (EXPERIMENTAL)"
|
bool "Frame Diverter (EXPERIMENTAL)"
|
||||||
|
@ -496,107 +184,10 @@ config NET_DIVERT
|
||||||
|
|
||||||
If unsure, say N.
|
If unsure, say N.
|
||||||
|
|
||||||
config ECONET
|
source "net/econet/Kconfig"
|
||||||
tristate "Acorn Econet/AUN protocols (EXPERIMENTAL)"
|
source "net/wanrouter/Kconfig"
|
||||||
depends on EXPERIMENTAL && INET
|
|
||||||
---help---
|
|
||||||
Econet is a fairly old and slow networking protocol mainly used by
|
|
||||||
Acorn computers to access file and print servers. It uses native
|
|
||||||
Econet network cards. AUN is an implementation of the higher level
|
|
||||||
parts of Econet that runs over ordinary Ethernet connections, on
|
|
||||||
top of the UDP packet protocol, which in turn runs on top of the
|
|
||||||
Internet protocol IP.
|
|
||||||
|
|
||||||
If you say Y here, you can choose with the next two options whether
|
|
||||||
to send Econet/AUN traffic over a UDP Ethernet connection or over
|
|
||||||
a native Econet network card.
|
|
||||||
|
|
||||||
To compile this driver as a module, choose M here: the module
|
|
||||||
will be called econet.
|
|
||||||
|
|
||||||
config ECONET_AUNUDP
|
|
||||||
bool "AUN over UDP"
|
|
||||||
depends on ECONET
|
|
||||||
help
|
|
||||||
Say Y here if you want to send Econet/AUN traffic over a UDP
|
|
||||||
connection (UDP is a packet based protocol that runs on top of the
|
|
||||||
Internet protocol IP) using an ordinary Ethernet network card.
|
|
||||||
|
|
||||||
config ECONET_NATIVE
|
|
||||||
bool "Native Econet"
|
|
||||||
depends on ECONET
|
|
||||||
help
|
|
||||||
Say Y here if you have a native Econet network card installed in
|
|
||||||
your computer.
|
|
||||||
|
|
||||||
config WAN_ROUTER
|
|
||||||
tristate "WAN router"
|
|
||||||
depends on EXPERIMENTAL
|
|
||||||
---help---
|
|
||||||
Wide Area Networks (WANs), such as X.25, frame relay and leased
|
|
||||||
lines, are used to interconnect Local Area Networks (LANs) over vast
|
|
||||||
distances with data transfer rates significantly higher than those
|
|
||||||
achievable with commonly used asynchronous modem connections.
|
|
||||||
Usually, a quite expensive external device called a `WAN router' is
|
|
||||||
needed to connect to a WAN.
|
|
||||||
|
|
||||||
As an alternative, WAN routing can be built into the Linux kernel.
|
|
||||||
With relatively inexpensive WAN interface cards available on the
|
|
||||||
market, a perfectly usable router can be built for less than half
|
|
||||||
the price of an external router. If you have one of those cards and
|
|
||||||
wish to use your Linux box as a WAN router, say Y here and also to
|
|
||||||
the WAN driver for your card, below. You will then need the
|
|
||||||
wan-tools package which is available from <ftp://ftp.sangoma.com/>.
|
|
||||||
Read <file:Documentation/networking/wan-router.txt> for more
|
|
||||||
information.
|
|
||||||
|
|
||||||
To compile WAN routing support as a module, choose M here: the
|
|
||||||
module will be called wanrouter.
|
|
||||||
|
|
||||||
If unsure, say N.
|
|
||||||
|
|
||||||
menu "QoS and/or fair queueing"
|
|
||||||
|
|
||||||
config NET_SCHED
|
|
||||||
bool "QoS and/or fair queueing"
|
|
||||||
---help---
|
|
||||||
When the kernel has several packets to send out over a network
|
|
||||||
device, it has to decide which ones to send first, which ones to
|
|
||||||
delay, and which ones to drop. This is the job of the packet
|
|
||||||
scheduler, and several different algorithms for how to do this
|
|
||||||
"fairly" have been proposed.
|
|
||||||
|
|
||||||
If you say N here, you will get the standard packet scheduler, which
|
|
||||||
is a FIFO (first come, first served). If you say Y here, you will be
|
|
||||||
able to choose from among several alternative algorithms which can
|
|
||||||
then be attached to different network devices. This is useful for
|
|
||||||
example if some of your network devices are real time devices that
|
|
||||||
need a certain minimum data flow rate, or if you need to limit the
|
|
||||||
maximum data flow rate for traffic which matches specified criteria.
|
|
||||||
This code is considered to be experimental.
|
|
||||||
|
|
||||||
To administer these schedulers, you'll need the user-level utilities
|
|
||||||
from the package iproute2+tc at <ftp://ftp.tux.org/pub/net/ip-routing/>.
|
|
||||||
That package also contains some documentation; for more, check out
|
|
||||||
<http://snafu.freedom.org/linux2.2/iproute-notes.html>.
|
|
||||||
|
|
||||||
This Quality of Service (QoS) support will enable you to use
|
|
||||||
Differentiated Services (diffserv) and Resource Reservation Protocol
|
|
||||||
(RSVP) on your Linux router if you also say Y to "QoS support",
|
|
||||||
"Packet classifier API" and to some classifiers below. Documentation
|
|
||||||
and software is at <http://diffserv.sourceforge.net/>.
|
|
||||||
|
|
||||||
If you say Y here and to "/proc file system" below, you will be able
|
|
||||||
to read status information about packet schedulers from the file
|
|
||||||
/proc/net/psched.
|
|
||||||
|
|
||||||
The available schedulers are listed in the following questions; you
|
|
||||||
can say Y to as many as you like. If unsure, say N now.
|
|
||||||
|
|
||||||
source "net/sched/Kconfig"
|
source "net/sched/Kconfig"
|
||||||
|
|
||||||
endmenu
|
|
||||||
|
|
||||||
menu "Network testing"
|
menu "Network testing"
|
||||||
|
|
||||||
config NET_PKTGEN
|
config NET_PKTGEN
|
||||||
|
@ -635,12 +226,9 @@ config NET_POLL_CONTROLLER
|
||||||
def_bool NETPOLL
|
def_bool NETPOLL
|
||||||
|
|
||||||
source "net/ax25/Kconfig"
|
source "net/ax25/Kconfig"
|
||||||
|
|
||||||
source "net/irda/Kconfig"
|
source "net/irda/Kconfig"
|
||||||
|
|
||||||
source "net/bluetooth/Kconfig"
|
source "net/bluetooth/Kconfig"
|
||||||
|
|
||||||
source "drivers/net/Kconfig"
|
endif # if NET
|
||||||
|
endmenu # Networking
|
||||||
endmenu
|
|
||||||
|
|
||||||
|
|
|
@ -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
|
* This is similar to eth_type_trans, which cannot be used because of
|
||||||
* our dev->hard_header_len
|
* our dev->hard_header_len
|
||||||
*/
|
*/
|
||||||
static inline unsigned short br_type_trans(struct sk_buff *skb,
|
static inline __be16 br_type_trans(struct sk_buff *skb, struct net_device *dev)
|
||||||
struct net_device *dev)
|
|
||||||
{
|
{
|
||||||
struct ethhdr *eth;
|
struct ethhdr *eth;
|
||||||
unsigned char *rawp;
|
unsigned char *rawp;
|
||||||
|
|
|
@ -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
|
# DECnet configuration
|
||||||
#
|
#
|
||||||
|
config DECNET
|
||||||
|
tristate "DECnet Support"
|
||||||
|
---help---
|
||||||
|
The DECnet networking protocol was used in many products made by
|
||||||
|
Digital (now Compaq). It provides reliable stream and sequenced
|
||||||
|
packet communications over which run a variety of services similar
|
||||||
|
to those which run over TCP/IP.
|
||||||
|
|
||||||
|
To find some tools to use with the kernel layer support, please
|
||||||
|
look at Patrick Caulfield's web site:
|
||||||
|
<http://linux-decnet.sourceforge.net/>.
|
||||||
|
|
||||||
|
More detailed documentation is available in
|
||||||
|
<file:Documentation/networking/decnet.txt>.
|
||||||
|
|
||||||
|
Be sure to say Y to "/proc file system support" and "Sysctl support"
|
||||||
|
below when using DECnet, since you will need sysctl support to aid
|
||||||
|
in configuration at run time.
|
||||||
|
|
||||||
|
The DECnet code is also available as a module ( = code which can be
|
||||||
|
inserted in and removed from the running kernel whenever you want).
|
||||||
|
The module is called decnet.
|
||||||
|
|
||||||
config DECNET_ROUTER
|
config DECNET_ROUTER
|
||||||
bool "DECnet: router support (EXPERIMENTAL)"
|
bool "DECnet: router support (EXPERIMENTAL)"
|
||||||
depends on DECNET && EXPERIMENTAL
|
depends on DECNET && EXPERIMENTAL
|
||||||
|
|
|
@ -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.
|
* This is normal practice and works for any 'now in use' protocol.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
unsigned short eth_type_trans(struct sk_buff *skb, struct net_device *dev)
|
__be16 eth_type_trans(struct sk_buff *skb, struct net_device *dev)
|
||||||
{
|
{
|
||||||
struct ethhdr *eth;
|
struct ethhdr *eth;
|
||||||
unsigned char *rawp;
|
unsigned char *rawp;
|
||||||
|
|
|
@ -3,7 +3,6 @@
|
||||||
#
|
#
|
||||||
config IP_MULTICAST
|
config IP_MULTICAST
|
||||||
bool "IP: multicasting"
|
bool "IP: multicasting"
|
||||||
depends on INET
|
|
||||||
help
|
help
|
||||||
This is code for addressing several networked computers at once,
|
This is code for addressing several networked computers at once,
|
||||||
enlarging your kernel by about 2 KB. You need multicasting if you
|
enlarging your kernel by about 2 KB. You need multicasting if you
|
||||||
|
@ -17,7 +16,6 @@ config IP_MULTICAST
|
||||||
|
|
||||||
config IP_ADVANCED_ROUTER
|
config IP_ADVANCED_ROUTER
|
||||||
bool "IP: advanced router"
|
bool "IP: advanced router"
|
||||||
depends on INET
|
|
||||||
---help---
|
---help---
|
||||||
If you intend to run your Linux box mostly as a router, i.e. as a
|
If you intend to run your Linux box mostly as a router, i.e. as a
|
||||||
computer that forwards and redistributes network packets, say Y; you
|
computer that forwards and redistributes network packets, say Y; you
|
||||||
|
@ -183,7 +181,6 @@ config IP_ROUTE_VERBOSE
|
||||||
|
|
||||||
config IP_PNP
|
config IP_PNP
|
||||||
bool "IP: kernel level autoconfiguration"
|
bool "IP: kernel level autoconfiguration"
|
||||||
depends on INET
|
|
||||||
help
|
help
|
||||||
This enables automatic configuration of IP addresses of devices and
|
This enables automatic configuration of IP addresses of devices and
|
||||||
of the routing table during kernel boot, based on either information
|
of the routing table during kernel boot, based on either information
|
||||||
|
@ -242,7 +239,6 @@ config IP_PNP_RARP
|
||||||
# bool ' IP: ARP support' CONFIG_IP_PNP_ARP
|
# bool ' IP: ARP support' CONFIG_IP_PNP_ARP
|
||||||
config NET_IPIP
|
config NET_IPIP
|
||||||
tristate "IP: tunneling"
|
tristate "IP: tunneling"
|
||||||
depends on INET
|
|
||||||
select INET_TUNNEL
|
select INET_TUNNEL
|
||||||
---help---
|
---help---
|
||||||
Tunneling means encapsulating data of one protocol type within
|
Tunneling means encapsulating data of one protocol type within
|
||||||
|
@ -260,7 +256,6 @@ config NET_IPIP
|
||||||
|
|
||||||
config NET_IPGRE
|
config NET_IPGRE
|
||||||
tristate "IP: GRE tunnels over IP"
|
tristate "IP: GRE tunnels over IP"
|
||||||
depends on INET
|
|
||||||
select XFRM
|
select XFRM
|
||||||
help
|
help
|
||||||
Tunneling means encapsulating data of one protocol type within
|
Tunneling means encapsulating data of one protocol type within
|
||||||
|
@ -319,7 +314,7 @@ config IP_PIMSM_V2
|
||||||
|
|
||||||
config ARPD
|
config ARPD
|
||||||
bool "IP: ARP daemon support (EXPERIMENTAL)"
|
bool "IP: ARP daemon support (EXPERIMENTAL)"
|
||||||
depends on INET && EXPERIMENTAL
|
depends on EXPERIMENTAL
|
||||||
---help---
|
---help---
|
||||||
Normally, the kernel maintains an internal cache which maps IP
|
Normally, the kernel maintains an internal cache which maps IP
|
||||||
addresses to hardware addresses on the local network, so that
|
addresses to hardware addresses on the local network, so that
|
||||||
|
@ -344,7 +339,6 @@ config ARPD
|
||||||
|
|
||||||
config SYN_COOKIES
|
config SYN_COOKIES
|
||||||
bool "IP: TCP syncookie support (disabled per default)"
|
bool "IP: TCP syncookie support (disabled per default)"
|
||||||
depends on INET
|
|
||||||
---help---
|
---help---
|
||||||
Normal TCP/IP networking is open to an attack known as "SYN
|
Normal TCP/IP networking is open to an attack known as "SYN
|
||||||
flooding". This denial-of-service attack prevents legitimate remote
|
flooding". This denial-of-service attack prevents legitimate remote
|
||||||
|
@ -381,7 +375,6 @@ config SYN_COOKIES
|
||||||
|
|
||||||
config INET_AH
|
config INET_AH
|
||||||
tristate "IP: AH transformation"
|
tristate "IP: AH transformation"
|
||||||
depends on INET
|
|
||||||
select XFRM
|
select XFRM
|
||||||
select CRYPTO
|
select CRYPTO
|
||||||
select CRYPTO_HMAC
|
select CRYPTO_HMAC
|
||||||
|
@ -394,7 +387,6 @@ config INET_AH
|
||||||
|
|
||||||
config INET_ESP
|
config INET_ESP
|
||||||
tristate "IP: ESP transformation"
|
tristate "IP: ESP transformation"
|
||||||
depends on INET
|
|
||||||
select XFRM
|
select XFRM
|
||||||
select CRYPTO
|
select CRYPTO
|
||||||
select CRYPTO_HMAC
|
select CRYPTO_HMAC
|
||||||
|
@ -408,7 +400,6 @@ config INET_ESP
|
||||||
|
|
||||||
config INET_IPCOMP
|
config INET_IPCOMP
|
||||||
tristate "IP: IPComp transformation"
|
tristate "IP: IPComp transformation"
|
||||||
depends on INET
|
|
||||||
select XFRM
|
select XFRM
|
||||||
select INET_TUNNEL
|
select INET_TUNNEL
|
||||||
select CRYPTO
|
select CRYPTO
|
||||||
|
@ -421,7 +412,6 @@ config INET_IPCOMP
|
||||||
|
|
||||||
config INET_TUNNEL
|
config INET_TUNNEL
|
||||||
tristate "IP: tunnel transformation"
|
tristate "IP: tunnel transformation"
|
||||||
depends on INET
|
|
||||||
select XFRM
|
select XFRM
|
||||||
---help---
|
---help---
|
||||||
Support for generic IP tunnel transformation, which is required by
|
Support for generic IP tunnel transformation, which is required by
|
||||||
|
@ -431,7 +421,6 @@ config INET_TUNNEL
|
||||||
|
|
||||||
config IP_TCPDIAG
|
config IP_TCPDIAG
|
||||||
tristate "IP: TCP socket monitoring interface"
|
tristate "IP: TCP socket monitoring interface"
|
||||||
depends on INET
|
|
||||||
default y
|
default y
|
||||||
---help---
|
---help---
|
||||||
Support for TCP socket monitoring interface used by native Linux
|
Support for TCP socket monitoring interface used by native Linux
|
||||||
|
@ -447,7 +436,6 @@ config IP_TCPDIAG_IPV6
|
||||||
|
|
||||||
config TCP_CONG_ADVANCED
|
config TCP_CONG_ADVANCED
|
||||||
bool "TCP: advanced congestion control"
|
bool "TCP: advanced congestion control"
|
||||||
depends on INET
|
|
||||||
---help---
|
---help---
|
||||||
Support for selection of various TCP congestion control
|
Support for selection of various TCP congestion control
|
||||||
modules.
|
modules.
|
||||||
|
@ -463,7 +451,6 @@ menu "TCP congestion control"
|
||||||
|
|
||||||
config TCP_CONG_BIC
|
config TCP_CONG_BIC
|
||||||
tristate "Binary Increase Congestion (BIC) control"
|
tristate "Binary Increase Congestion (BIC) control"
|
||||||
depends on INET
|
|
||||||
default y
|
default y
|
||||||
---help---
|
---help---
|
||||||
BIC-TCP is a sender-side only change that ensures a linear RTT
|
BIC-TCP is a sender-side only change that ensures a linear RTT
|
||||||
|
@ -478,7 +465,6 @@ config TCP_CONG_BIC
|
||||||
|
|
||||||
config TCP_CONG_WESTWOOD
|
config TCP_CONG_WESTWOOD
|
||||||
tristate "TCP Westwood+"
|
tristate "TCP Westwood+"
|
||||||
depends on INET
|
|
||||||
default m
|
default m
|
||||||
---help---
|
---help---
|
||||||
TCP Westwood+ is a sender-side only modification of the TCP Reno
|
TCP Westwood+ is a sender-side only modification of the TCP Reno
|
||||||
|
@ -493,7 +479,6 @@ config TCP_CONG_WESTWOOD
|
||||||
|
|
||||||
config TCP_CONG_HTCP
|
config TCP_CONG_HTCP
|
||||||
tristate "H-TCP"
|
tristate "H-TCP"
|
||||||
depends on INET
|
|
||||||
default m
|
default m
|
||||||
---help---
|
---help---
|
||||||
H-TCP is a send-side only modifications of the TCP Reno
|
H-TCP is a send-side only modifications of the TCP Reno
|
||||||
|
@ -505,7 +490,7 @@ config TCP_CONG_HTCP
|
||||||
|
|
||||||
config TCP_CONG_HSTCP
|
config TCP_CONG_HSTCP
|
||||||
tristate "High Speed TCP"
|
tristate "High Speed TCP"
|
||||||
depends on INET && EXPERIMENTAL
|
depends on EXPERIMENTAL
|
||||||
default n
|
default n
|
||||||
---help---
|
---help---
|
||||||
Sally Floyd's High Speed TCP (RFC 3649) congestion control.
|
Sally Floyd's High Speed TCP (RFC 3649) congestion control.
|
||||||
|
@ -516,7 +501,7 @@ config TCP_CONG_HSTCP
|
||||||
|
|
||||||
config TCP_CONG_HYBLA
|
config TCP_CONG_HYBLA
|
||||||
tristate "TCP-Hybla congestion control algorithm"
|
tristate "TCP-Hybla congestion control algorithm"
|
||||||
depends on INET && EXPERIMENTAL
|
depends on EXPERIMENTAL
|
||||||
default n
|
default n
|
||||||
---help---
|
---help---
|
||||||
TCP-Hybla is a sender-side only change that eliminates penalization of
|
TCP-Hybla is a sender-side only change that eliminates penalization of
|
||||||
|
@ -526,7 +511,7 @@ config TCP_CONG_HYBLA
|
||||||
|
|
||||||
config TCP_CONG_VEGAS
|
config TCP_CONG_VEGAS
|
||||||
tristate "TCP Vegas"
|
tristate "TCP Vegas"
|
||||||
depends on INET && EXPERIMENTAL
|
depends on EXPERIMENTAL
|
||||||
default n
|
default n
|
||||||
---help---
|
---help---
|
||||||
TCP Vegas is a sender-side only change to TCP that anticipates
|
TCP Vegas is a sender-side only change to TCP that anticipates
|
||||||
|
@ -537,7 +522,7 @@ config TCP_CONG_VEGAS
|
||||||
|
|
||||||
config TCP_CONG_SCALABLE
|
config TCP_CONG_SCALABLE
|
||||||
tristate "Scalable TCP"
|
tristate "Scalable TCP"
|
||||||
depends on INET && EXPERIMENTAL
|
depends on EXPERIMENTAL
|
||||||
default n
|
default n
|
||||||
---help---
|
---help---
|
||||||
Scalable TCP is a sender-side only change to TCP which uses a
|
Scalable TCP is a sender-side only change to TCP which uses a
|
||||||
|
|
|
@ -107,7 +107,6 @@ static int ip_dev_loopback_xmit(struct sk_buff *newskb)
|
||||||
newskb->pkt_type = PACKET_LOOPBACK;
|
newskb->pkt_type = PACKET_LOOPBACK;
|
||||||
newskb->ip_summed = CHECKSUM_UNNECESSARY;
|
newskb->ip_summed = CHECKSUM_UNNECESSARY;
|
||||||
BUG_TRAP(newskb->dst);
|
BUG_TRAP(newskb->dst);
|
||||||
nf_reset(newskb);
|
|
||||||
netif_rx(newskb);
|
netif_rx(newskb);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -188,14 +187,6 @@ static inline int ip_finish_output2(struct sk_buff *skb)
|
||||||
skb = skb2;
|
skb = skb2;
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef CONFIG_BRIDGE_NETFILTER
|
|
||||||
/* bridge-netfilter defers calling some IP hooks to the bridge layer
|
|
||||||
* and still needs the conntrack reference.
|
|
||||||
*/
|
|
||||||
if (skb->nf_bridge == NULL)
|
|
||||||
#endif
|
|
||||||
nf_reset(skb);
|
|
||||||
|
|
||||||
if (hh) {
|
if (hh) {
|
||||||
int hh_alen;
|
int hh_alen;
|
||||||
|
|
||||||
|
|
|
@ -2,11 +2,11 @@
|
||||||
# IP Virtual Server configuration
|
# IP Virtual Server configuration
|
||||||
#
|
#
|
||||||
menu "IP: Virtual Server Configuration"
|
menu "IP: Virtual Server Configuration"
|
||||||
depends on INET && NETFILTER
|
depends on NETFILTER
|
||||||
|
|
||||||
config IP_VS
|
config IP_VS
|
||||||
tristate "IP virtual server support (EXPERIMENTAL)"
|
tristate "IP virtual server support (EXPERIMENTAL)"
|
||||||
depends on INET && NETFILTER
|
depends on NETFILTER
|
||||||
---help---
|
---help---
|
||||||
IP Virtual Server support will let you build a high-performance
|
IP Virtual Server support will let you build a high-performance
|
||||||
virtual server based on cluster of two or more real servers. This
|
virtual server based on cluster of two or more real servers. This
|
||||||
|
|
|
@ -758,7 +758,7 @@ static inline int todrop_entry(struct ip_vs_conn *cp)
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Called from keventd and must protect itself from softirqs */
|
||||||
void ip_vs_random_dropentry(void)
|
void ip_vs_random_dropentry(void)
|
||||||
{
|
{
|
||||||
int idx;
|
int idx;
|
||||||
|
@ -773,7 +773,7 @@ void ip_vs_random_dropentry(void)
|
||||||
/*
|
/*
|
||||||
* Lock is actually needed in this loop.
|
* Lock is actually needed in this loop.
|
||||||
*/
|
*/
|
||||||
ct_write_lock(hash);
|
ct_write_lock_bh(hash);
|
||||||
|
|
||||||
list_for_each_entry(cp, &ip_vs_conn_tab[hash], c_list) {
|
list_for_each_entry(cp, &ip_vs_conn_tab[hash], c_list) {
|
||||||
if (!cp->cport && !(cp->flags & IP_VS_CONN_F_NO_CPORT))
|
if (!cp->cport && !(cp->flags & IP_VS_CONN_F_NO_CPORT))
|
||||||
|
@ -806,7 +806,7 @@ void ip_vs_random_dropentry(void)
|
||||||
ip_vs_conn_expire_now(cp->control);
|
ip_vs_conn_expire_now(cp->control);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
ct_write_unlock(hash);
|
ct_write_unlock_bh(hash);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -90,7 +90,8 @@ int ip_vs_get_debug_level(void)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* update_defense_level is called from keventd and from sysctl.
|
* update_defense_level is called from keventd and from sysctl,
|
||||||
|
* so it needs to protect itself from softirqs
|
||||||
*/
|
*/
|
||||||
static void update_defense_level(void)
|
static void update_defense_level(void)
|
||||||
{
|
{
|
||||||
|
@ -110,6 +111,8 @@ static void update_defense_level(void)
|
||||||
|
|
||||||
nomem = (availmem < sysctl_ip_vs_amemthresh);
|
nomem = (availmem < sysctl_ip_vs_amemthresh);
|
||||||
|
|
||||||
|
local_bh_disable();
|
||||||
|
|
||||||
/* drop_entry */
|
/* drop_entry */
|
||||||
spin_lock(&__ip_vs_dropentry_lock);
|
spin_lock(&__ip_vs_dropentry_lock);
|
||||||
switch (sysctl_ip_vs_drop_entry) {
|
switch (sysctl_ip_vs_drop_entry) {
|
||||||
|
@ -206,6 +209,8 @@ static void update_defense_level(void)
|
||||||
if (to_change >= 0)
|
if (to_change >= 0)
|
||||||
ip_vs_protocol_timeout_change(sysctl_ip_vs_secure_tcp>1);
|
ip_vs_protocol_timeout_change(sysctl_ip_vs_secure_tcp>1);
|
||||||
write_unlock(&__ip_vs_securetcp_lock);
|
write_unlock(&__ip_vs_securetcp_lock);
|
||||||
|
|
||||||
|
local_bh_enable();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -1360,9 +1365,7 @@ proc_do_defense_mode(ctl_table *table, int write, struct file * filp,
|
||||||
/* Restore the correct value */
|
/* Restore the correct value */
|
||||||
*valp = val;
|
*valp = val;
|
||||||
} else {
|
} else {
|
||||||
local_bh_disable();
|
|
||||||
update_defense_level();
|
update_defense_level();
|
||||||
local_bh_enable();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return rc;
|
return rc;
|
||||||
|
|
|
@ -432,6 +432,13 @@ static unsigned int ip_conntrack_defrag(unsigned int hooknum,
|
||||||
const struct net_device *out,
|
const struct net_device *out,
|
||||||
int (*okfn)(struct sk_buff *))
|
int (*okfn)(struct sk_buff *))
|
||||||
{
|
{
|
||||||
|
#if !defined(CONFIG_IP_NF_NAT) && !defined(CONFIG_IP_NF_NAT_MODULE)
|
||||||
|
/* Previously seen (loopback)? Ignore. Do this before
|
||||||
|
fragment check. */
|
||||||
|
if ((*pskb)->nfct)
|
||||||
|
return NF_ACCEPT;
|
||||||
|
#endif
|
||||||
|
|
||||||
/* Gather fragments. */
|
/* Gather fragments. */
|
||||||
if ((*pskb)->nh.iph->frag_off & htons(IP_MF|IP_OFFSET)) {
|
if ((*pskb)->nh.iph->frag_off & htons(IP_MF|IP_OFFSET)) {
|
||||||
*pskb = ip_ct_gather_frags(*pskb,
|
*pskb = ip_ct_gather_frags(*pskb,
|
||||||
|
|
|
@ -1685,7 +1685,7 @@ static void ip_handle_martian_source(struct net_device *dev,
|
||||||
printk(KERN_WARNING "martian source %u.%u.%u.%u from "
|
printk(KERN_WARNING "martian source %u.%u.%u.%u from "
|
||||||
"%u.%u.%u.%u, on dev %s\n",
|
"%u.%u.%u.%u, on dev %s\n",
|
||||||
NIPQUAD(daddr), NIPQUAD(saddr), dev->name);
|
NIPQUAD(daddr), NIPQUAD(saddr), dev->name);
|
||||||
if (dev->hard_header_len) {
|
if (dev->hard_header_len && skb->mac.raw) {
|
||||||
int i;
|
int i;
|
||||||
unsigned char *p = skb->mac.raw;
|
unsigned char *p = skb->mac.raw;
|
||||||
printk(KERN_WARNING "ll header: ");
|
printk(KERN_WARNING "ll header: ");
|
||||||
|
|
|
@ -1,6 +1,26 @@
|
||||||
#
|
#
|
||||||
# IPv6 configuration
|
# IPv6 configuration
|
||||||
#
|
#
|
||||||
|
|
||||||
|
# IPv6 as module will cause a CRASH if you try to unload it
|
||||||
|
config IPV6
|
||||||
|
tristate "The IPv6 protocol"
|
||||||
|
default m
|
||||||
|
select CRYPTO if IPV6_PRIVACY
|
||||||
|
select CRYPTO_MD5 if IPV6_PRIVACY
|
||||||
|
---help---
|
||||||
|
This is complemental support for the IP version 6.
|
||||||
|
You will still be able to do traditional IPv4 networking as well.
|
||||||
|
|
||||||
|
For general information about IPv6, see
|
||||||
|
<http://playground.sun.com/pub/ipng/html/ipng-main.html>.
|
||||||
|
For Linux IPv6 development information, see <http://www.linux-ipv6.org>.
|
||||||
|
For specific information about IPv6 under Linux, read the HOWTO at
|
||||||
|
<http://www.bieringer.de/linux/IPv6/>.
|
||||||
|
|
||||||
|
To compile this protocol support as a module, choose M here: the
|
||||||
|
module will be called ipv6.
|
||||||
|
|
||||||
config IPV6_PRIVACY
|
config IPV6_PRIVACY
|
||||||
bool "IPv6: Privacy Extensions (RFC 3041) support"
|
bool "IPv6: Privacy Extensions (RFC 3041) support"
|
||||||
depends on IPV6
|
depends on IPV6
|
||||||
|
|
|
@ -1,6 +1,39 @@
|
||||||
#
|
#
|
||||||
# IPX configuration
|
# IPX configuration
|
||||||
#
|
#
|
||||||
|
config IPX
|
||||||
|
tristate "The IPX protocol"
|
||||||
|
select LLC
|
||||||
|
---help---
|
||||||
|
This is support for the Novell networking protocol, IPX, commonly
|
||||||
|
used for local networks of Windows machines. You need it if you
|
||||||
|
want to access Novell NetWare file or print servers using the Linux
|
||||||
|
Novell client ncpfs (available from
|
||||||
|
<ftp://platan.vc.cvut.cz/pub/linux/ncpfs/>) or from
|
||||||
|
within the Linux DOS emulator DOSEMU (read the DOSEMU-HOWTO,
|
||||||
|
available from <http://www.tldp.org/docs.html#howto>). In order
|
||||||
|
to do the former, you'll also have to say Y to "NCP file system
|
||||||
|
support", below.
|
||||||
|
|
||||||
|
IPX is similar in scope to IP, while SPX, which runs on top of IPX,
|
||||||
|
is similar to TCP. There is also experimental support for SPX in
|
||||||
|
Linux (see "SPX networking", below).
|
||||||
|
|
||||||
|
To turn your Linux box into a fully featured NetWare file server and
|
||||||
|
IPX router, say Y here and fetch either lwared from
|
||||||
|
<ftp://ibiblio.org/pub/Linux/system/network/daemons/> or
|
||||||
|
mars_nwe from <ftp://www.compu-art.de/mars_nwe/>. For more
|
||||||
|
information, read the IPX-HOWTO available from
|
||||||
|
<http://www.tldp.org/docs.html#howto>.
|
||||||
|
|
||||||
|
General information about how to connect Linux, Windows machines and
|
||||||
|
Macs is on the WWW at <http://www.eats.com/linux_mac_win.html>.
|
||||||
|
|
||||||
|
The IPX driver would enlarge your kernel by about 16 KB. To compile
|
||||||
|
this driver as a module, choose M here: the module will be called ipx.
|
||||||
|
Unless you want to integrate your Linux box with a local Novell
|
||||||
|
network, say N.
|
||||||
|
|
||||||
config IPX_INTERN
|
config IPX_INTERN
|
||||||
bool "IPX: Full internal IPX network"
|
bool "IPX: Full internal IPX network"
|
||||||
depends on IPX
|
depends on IPX
|
||||||
|
|
|
@ -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);
|
dst_release(skb->dst);
|
||||||
skb->dst = NULL;
|
skb->dst = NULL;
|
||||||
|
|
||||||
|
/* drop conntrack reference */
|
||||||
|
nf_reset(skb);
|
||||||
|
|
||||||
spkt = (struct sockaddr_pkt*)skb->cb;
|
spkt = (struct sockaddr_pkt*)skb->cb;
|
||||||
|
|
||||||
skb_push(skb, skb->data-skb->mac.raw);
|
skb_push(skb, skb->data-skb->mac.raw);
|
||||||
|
@ -517,6 +520,9 @@ static int packet_rcv(struct sk_buff *skb, struct net_device *dev, struct packe
|
||||||
dst_release(skb->dst);
|
dst_release(skb->dst);
|
||||||
skb->dst = NULL;
|
skb->dst = NULL;
|
||||||
|
|
||||||
|
/* drop conntrack reference */
|
||||||
|
nf_reset(skb);
|
||||||
|
|
||||||
spin_lock(&sk->sk_receive_queue.lock);
|
spin_lock(&sk->sk_receive_queue.lock);
|
||||||
po->stats.tp_packets++;
|
po->stats.tp_packets++;
|
||||||
__skb_queue_tail(&sk->sk_receive_queue, skb);
|
__skb_queue_tail(&sk->sk_receive_queue, skb);
|
||||||
|
|
|
@ -1,6 +1,43 @@
|
||||||
#
|
#
|
||||||
# Traffic control configuration.
|
# Traffic control configuration.
|
||||||
#
|
#
|
||||||
|
|
||||||
|
menuconfig NET_SCHED
|
||||||
|
bool "QoS and/or fair queueing"
|
||||||
|
---help---
|
||||||
|
When the kernel has several packets to send out over a network
|
||||||
|
device, it has to decide which ones to send first, which ones to
|
||||||
|
delay, and which ones to drop. This is the job of the packet
|
||||||
|
scheduler, and several different algorithms for how to do this
|
||||||
|
"fairly" have been proposed.
|
||||||
|
|
||||||
|
If you say N here, you will get the standard packet scheduler, which
|
||||||
|
is a FIFO (first come, first served). If you say Y here, you will be
|
||||||
|
able to choose from among several alternative algorithms which can
|
||||||
|
then be attached to different network devices. This is useful for
|
||||||
|
example if some of your network devices are real time devices that
|
||||||
|
need a certain minimum data flow rate, or if you need to limit the
|
||||||
|
maximum data flow rate for traffic which matches specified criteria.
|
||||||
|
This code is considered to be experimental.
|
||||||
|
|
||||||
|
To administer these schedulers, you'll need the user-level utilities
|
||||||
|
from the package iproute2+tc at <ftp://ftp.tux.org/pub/net/ip-routing/>.
|
||||||
|
That package also contains some documentation; for more, check out
|
||||||
|
<http://snafu.freedom.org/linux2.2/iproute-notes.html>.
|
||||||
|
|
||||||
|
This Quality of Service (QoS) support will enable you to use
|
||||||
|
Differentiated Services (diffserv) and Resource Reservation Protocol
|
||||||
|
(RSVP) on your Linux router if you also say Y to "QoS support",
|
||||||
|
"Packet classifier API" and to some classifiers below. Documentation
|
||||||
|
and software is at <http://diffserv.sourceforge.net/>.
|
||||||
|
|
||||||
|
If you say Y here and to "/proc file system" below, you will be able
|
||||||
|
to read status information about packet schedulers from the file
|
||||||
|
/proc/net/psched.
|
||||||
|
|
||||||
|
The available schedulers are listed in the following questions; you
|
||||||
|
can say Y to as many as you like. If unsure, say N now.
|
||||||
|
|
||||||
choice
|
choice
|
||||||
prompt "Packet scheduler clock source"
|
prompt "Packet scheduler clock source"
|
||||||
depends on NET_SCHED
|
depends on NET_SCHED
|
||||||
|
|
|
@ -71,7 +71,7 @@ static struct sctp_association *sctp_association_init(struct sctp_association *a
|
||||||
const struct sctp_endpoint *ep,
|
const struct sctp_endpoint *ep,
|
||||||
const struct sock *sk,
|
const struct sock *sk,
|
||||||
sctp_scope_t scope,
|
sctp_scope_t scope,
|
||||||
int gfp)
|
unsigned int __nocast gfp)
|
||||||
{
|
{
|
||||||
struct sctp_sock *sp;
|
struct sctp_sock *sp;
|
||||||
int i;
|
int i;
|
||||||
|
@ -272,7 +272,8 @@ fail_init:
|
||||||
/* Allocate and initialize a new association */
|
/* Allocate and initialize a new association */
|
||||||
struct sctp_association *sctp_association_new(const struct sctp_endpoint *ep,
|
struct sctp_association *sctp_association_new(const struct sctp_endpoint *ep,
|
||||||
const struct sock *sk,
|
const struct sock *sk,
|
||||||
sctp_scope_t scope, int gfp)
|
sctp_scope_t scope,
|
||||||
|
unsigned int __nocast gfp)
|
||||||
{
|
{
|
||||||
struct sctp_association *asoc;
|
struct sctp_association *asoc;
|
||||||
|
|
||||||
|
@ -478,7 +479,7 @@ void sctp_assoc_rm_peer(struct sctp_association *asoc,
|
||||||
/* Add a transport address to an association. */
|
/* Add a transport address to an association. */
|
||||||
struct sctp_transport *sctp_assoc_add_peer(struct sctp_association *asoc,
|
struct sctp_transport *sctp_assoc_add_peer(struct sctp_association *asoc,
|
||||||
const union sctp_addr *addr,
|
const union sctp_addr *addr,
|
||||||
const int gfp,
|
const unsigned int __nocast gfp,
|
||||||
const int peer_state)
|
const int peer_state)
|
||||||
{
|
{
|
||||||
struct sctp_transport *peer;
|
struct sctp_transport *peer;
|
||||||
|
@ -1229,7 +1230,8 @@ void sctp_assoc_rwnd_decrease(struct sctp_association *asoc, unsigned len)
|
||||||
/* Build the bind address list for the association based on info from the
|
/* Build the bind address list for the association based on info from the
|
||||||
* local endpoint and the remote peer.
|
* local endpoint and the remote peer.
|
||||||
*/
|
*/
|
||||||
int sctp_assoc_set_bind_addr_from_ep(struct sctp_association *asoc, int gfp)
|
int sctp_assoc_set_bind_addr_from_ep(struct sctp_association *asoc,
|
||||||
|
unsigned int __nocast gfp)
|
||||||
{
|
{
|
||||||
sctp_scope_t scope;
|
sctp_scope_t scope;
|
||||||
int flags;
|
int flags;
|
||||||
|
@ -1251,7 +1253,8 @@ int sctp_assoc_set_bind_addr_from_ep(struct sctp_association *asoc, int gfp)
|
||||||
|
|
||||||
/* Build the association's bind address list from the cookie. */
|
/* Build the association's bind address list from the cookie. */
|
||||||
int sctp_assoc_set_bind_addr_from_cookie(struct sctp_association *asoc,
|
int sctp_assoc_set_bind_addr_from_cookie(struct sctp_association *asoc,
|
||||||
struct sctp_cookie *cookie, int gfp)
|
struct sctp_cookie *cookie,
|
||||||
|
unsigned int __nocast gfp)
|
||||||
{
|
{
|
||||||
int var_size2 = ntohs(cookie->peer_init->chunk_hdr.length);
|
int var_size2 = ntohs(cookie->peer_init->chunk_hdr.length);
|
||||||
int var_size3 = cookie->raw_addr_list_len;
|
int var_size3 = cookie->raw_addr_list_len;
|
||||||
|
|
|
@ -53,7 +53,8 @@
|
||||||
|
|
||||||
/* Forward declarations for internal helpers. */
|
/* Forward declarations for internal helpers. */
|
||||||
static int sctp_copy_one_addr(struct sctp_bind_addr *, union sctp_addr *,
|
static int sctp_copy_one_addr(struct sctp_bind_addr *, union sctp_addr *,
|
||||||
sctp_scope_t scope, int gfp, int flags);
|
sctp_scope_t scope, unsigned int __nocast gfp,
|
||||||
|
int flags);
|
||||||
static void sctp_bind_addr_clean(struct sctp_bind_addr *);
|
static void sctp_bind_addr_clean(struct sctp_bind_addr *);
|
||||||
|
|
||||||
/* First Level Abstractions. */
|
/* First Level Abstractions. */
|
||||||
|
@ -63,7 +64,8 @@ static void sctp_bind_addr_clean(struct sctp_bind_addr *);
|
||||||
*/
|
*/
|
||||||
int sctp_bind_addr_copy(struct sctp_bind_addr *dest,
|
int sctp_bind_addr_copy(struct sctp_bind_addr *dest,
|
||||||
const struct sctp_bind_addr *src,
|
const struct sctp_bind_addr *src,
|
||||||
sctp_scope_t scope, int gfp, int flags)
|
sctp_scope_t scope, unsigned int __nocast gfp,
|
||||||
|
int flags)
|
||||||
{
|
{
|
||||||
struct sctp_sockaddr_entry *addr;
|
struct sctp_sockaddr_entry *addr;
|
||||||
struct list_head *pos;
|
struct list_head *pos;
|
||||||
|
@ -144,7 +146,7 @@ void sctp_bind_addr_free(struct sctp_bind_addr *bp)
|
||||||
|
|
||||||
/* Add an address to the bind address list in the SCTP_bind_addr structure. */
|
/* Add an address to the bind address list in the SCTP_bind_addr structure. */
|
||||||
int sctp_add_bind_addr(struct sctp_bind_addr *bp, union sctp_addr *new,
|
int sctp_add_bind_addr(struct sctp_bind_addr *bp, union sctp_addr *new,
|
||||||
int gfp)
|
unsigned int __nocast gfp)
|
||||||
{
|
{
|
||||||
struct sctp_sockaddr_entry *addr;
|
struct sctp_sockaddr_entry *addr;
|
||||||
|
|
||||||
|
@ -197,7 +199,8 @@ int sctp_del_bind_addr(struct sctp_bind_addr *bp, union sctp_addr *del_addr)
|
||||||
* The second argument is the return value for the length.
|
* The second argument is the return value for the length.
|
||||||
*/
|
*/
|
||||||
union sctp_params sctp_bind_addrs_to_raw(const struct sctp_bind_addr *bp,
|
union sctp_params sctp_bind_addrs_to_raw(const struct sctp_bind_addr *bp,
|
||||||
int *addrs_len, int gfp)
|
int *addrs_len,
|
||||||
|
unsigned int __nocast gfp)
|
||||||
{
|
{
|
||||||
union sctp_params addrparms;
|
union sctp_params addrparms;
|
||||||
union sctp_params retval;
|
union sctp_params retval;
|
||||||
|
@ -249,7 +252,7 @@ end_raw:
|
||||||
* address parameters).
|
* address parameters).
|
||||||
*/
|
*/
|
||||||
int sctp_raw_to_bind_addrs(struct sctp_bind_addr *bp, __u8 *raw_addr_list,
|
int sctp_raw_to_bind_addrs(struct sctp_bind_addr *bp, __u8 *raw_addr_list,
|
||||||
int addrs_len, __u16 port, int gfp)
|
int addrs_len, __u16 port, unsigned int __nocast gfp)
|
||||||
{
|
{
|
||||||
union sctp_addr_param *rawaddr;
|
union sctp_addr_param *rawaddr;
|
||||||
struct sctp_paramhdr *param;
|
struct sctp_paramhdr *param;
|
||||||
|
@ -347,7 +350,8 @@ union sctp_addr *sctp_find_unmatch_addr(struct sctp_bind_addr *bp,
|
||||||
/* Copy out addresses from the global local address list. */
|
/* Copy out addresses from the global local address list. */
|
||||||
static int sctp_copy_one_addr(struct sctp_bind_addr *dest,
|
static int sctp_copy_one_addr(struct sctp_bind_addr *dest,
|
||||||
union sctp_addr *addr,
|
union sctp_addr *addr,
|
||||||
sctp_scope_t scope, int gfp, int flags)
|
sctp_scope_t scope, unsigned int __nocast gfp,
|
||||||
|
int flags)
|
||||||
{
|
{
|
||||||
int error = 0;
|
int error = 0;
|
||||||
|
|
||||||
|
|
|
@ -62,7 +62,7 @@ static void sctp_datamsg_init(struct sctp_datamsg *msg)
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Allocate and initialize datamsg. */
|
/* Allocate and initialize datamsg. */
|
||||||
SCTP_STATIC struct sctp_datamsg *sctp_datamsg_new(int gfp)
|
SCTP_STATIC struct sctp_datamsg *sctp_datamsg_new(unsigned int __nocast gfp)
|
||||||
{
|
{
|
||||||
struct sctp_datamsg *msg;
|
struct sctp_datamsg *msg;
|
||||||
msg = kmalloc(sizeof(struct sctp_datamsg), gfp);
|
msg = kmalloc(sizeof(struct sctp_datamsg), gfp);
|
||||||
|
|
|
@ -67,7 +67,8 @@ static void sctp_endpoint_bh_rcv(struct sctp_endpoint *ep);
|
||||||
* Initialize the base fields of the endpoint structure.
|
* Initialize the base fields of the endpoint structure.
|
||||||
*/
|
*/
|
||||||
static struct sctp_endpoint *sctp_endpoint_init(struct sctp_endpoint *ep,
|
static struct sctp_endpoint *sctp_endpoint_init(struct sctp_endpoint *ep,
|
||||||
struct sock *sk, int gfp)
|
struct sock *sk,
|
||||||
|
unsigned int __nocast gfp)
|
||||||
{
|
{
|
||||||
struct sctp_sock *sp = sctp_sk(sk);
|
struct sctp_sock *sp = sctp_sk(sk);
|
||||||
memset(ep, 0, sizeof(struct sctp_endpoint));
|
memset(ep, 0, sizeof(struct sctp_endpoint));
|
||||||
|
@ -137,7 +138,8 @@ static struct sctp_endpoint *sctp_endpoint_init(struct sctp_endpoint *ep,
|
||||||
/* Create a sctp_endpoint with all that boring stuff initialized.
|
/* Create a sctp_endpoint with all that boring stuff initialized.
|
||||||
* Returns NULL if there isn't enough memory.
|
* Returns NULL if there isn't enough memory.
|
||||||
*/
|
*/
|
||||||
struct sctp_endpoint *sctp_endpoint_new(struct sock *sk, int gfp)
|
struct sctp_endpoint *sctp_endpoint_new(struct sock *sk,
|
||||||
|
unsigned int __nocast gfp)
|
||||||
{
|
{
|
||||||
struct sctp_endpoint *ep;
|
struct sctp_endpoint *ep;
|
||||||
|
|
||||||
|
|
|
@ -219,7 +219,7 @@ static void sctp_free_local_addr_list(void)
|
||||||
|
|
||||||
/* Copy the local addresses which are valid for 'scope' into 'bp'. */
|
/* Copy the local addresses which are valid for 'scope' into 'bp'. */
|
||||||
int sctp_copy_local_addr_list(struct sctp_bind_addr *bp, sctp_scope_t scope,
|
int sctp_copy_local_addr_list(struct sctp_bind_addr *bp, sctp_scope_t scope,
|
||||||
int gfp, int copy_flags)
|
unsigned int __nocast gfp, int copy_flags)
|
||||||
{
|
{
|
||||||
struct sctp_sockaddr_entry *addr;
|
struct sctp_sockaddr_entry *addr;
|
||||||
int error = 0;
|
int error = 0;
|
||||||
|
|
|
@ -78,7 +78,7 @@ static sctp_cookie_param_t *sctp_pack_cookie(const struct sctp_endpoint *ep,
|
||||||
static int sctp_process_param(struct sctp_association *asoc,
|
static int sctp_process_param(struct sctp_association *asoc,
|
||||||
union sctp_params param,
|
union sctp_params param,
|
||||||
const union sctp_addr *peer_addr,
|
const union sctp_addr *peer_addr,
|
||||||
int gfp);
|
unsigned int __nocast gfp);
|
||||||
|
|
||||||
/* What was the inbound interface for this chunk? */
|
/* What was the inbound interface for this chunk? */
|
||||||
int sctp_chunk_iif(const struct sctp_chunk *chunk)
|
int sctp_chunk_iif(const struct sctp_chunk *chunk)
|
||||||
|
@ -174,7 +174,7 @@ void sctp_init_cause(struct sctp_chunk *chunk, __u16 cause_code,
|
||||||
*/
|
*/
|
||||||
struct sctp_chunk *sctp_make_init(const struct sctp_association *asoc,
|
struct sctp_chunk *sctp_make_init(const struct sctp_association *asoc,
|
||||||
const struct sctp_bind_addr *bp,
|
const struct sctp_bind_addr *bp,
|
||||||
int gfp, int vparam_len)
|
unsigned int __nocast gfp, int vparam_len)
|
||||||
{
|
{
|
||||||
sctp_inithdr_t init;
|
sctp_inithdr_t init;
|
||||||
union sctp_params addrs;
|
union sctp_params addrs;
|
||||||
|
@ -261,7 +261,7 @@ nodata:
|
||||||
|
|
||||||
struct sctp_chunk *sctp_make_init_ack(const struct sctp_association *asoc,
|
struct sctp_chunk *sctp_make_init_ack(const struct sctp_association *asoc,
|
||||||
const struct sctp_chunk *chunk,
|
const struct sctp_chunk *chunk,
|
||||||
int gfp, int unkparam_len)
|
unsigned int __nocast gfp, int unkparam_len)
|
||||||
{
|
{
|
||||||
sctp_inithdr_t initack;
|
sctp_inithdr_t initack;
|
||||||
struct sctp_chunk *retval;
|
struct sctp_chunk *retval;
|
||||||
|
@ -1233,7 +1233,8 @@ void sctp_chunk_assign_tsn(struct sctp_chunk *chunk)
|
||||||
|
|
||||||
/* Create a CLOSED association to use with an incoming packet. */
|
/* Create a CLOSED association to use with an incoming packet. */
|
||||||
struct sctp_association *sctp_make_temp_asoc(const struct sctp_endpoint *ep,
|
struct sctp_association *sctp_make_temp_asoc(const struct sctp_endpoint *ep,
|
||||||
struct sctp_chunk *chunk, int gfp)
|
struct sctp_chunk *chunk,
|
||||||
|
unsigned int __nocast gfp)
|
||||||
{
|
{
|
||||||
struct sctp_association *asoc;
|
struct sctp_association *asoc;
|
||||||
struct sk_buff *skb;
|
struct sk_buff *skb;
|
||||||
|
@ -1348,7 +1349,7 @@ nodata:
|
||||||
struct sctp_association *sctp_unpack_cookie(
|
struct sctp_association *sctp_unpack_cookie(
|
||||||
const struct sctp_endpoint *ep,
|
const struct sctp_endpoint *ep,
|
||||||
const struct sctp_association *asoc,
|
const struct sctp_association *asoc,
|
||||||
struct sctp_chunk *chunk, int gfp,
|
struct sctp_chunk *chunk, unsigned int __nocast gfp,
|
||||||
int *error, struct sctp_chunk **errp)
|
int *error, struct sctp_chunk **errp)
|
||||||
{
|
{
|
||||||
struct sctp_association *retval = NULL;
|
struct sctp_association *retval = NULL;
|
||||||
|
@ -1812,7 +1813,7 @@ int sctp_verify_init(const struct sctp_association *asoc,
|
||||||
*/
|
*/
|
||||||
int sctp_process_init(struct sctp_association *asoc, sctp_cid_t cid,
|
int sctp_process_init(struct sctp_association *asoc, sctp_cid_t cid,
|
||||||
const union sctp_addr *peer_addr,
|
const union sctp_addr *peer_addr,
|
||||||
sctp_init_chunk_t *peer_init, int gfp)
|
sctp_init_chunk_t *peer_init, unsigned int __nocast gfp)
|
||||||
{
|
{
|
||||||
union sctp_params param;
|
union sctp_params param;
|
||||||
struct sctp_transport *transport;
|
struct sctp_transport *transport;
|
||||||
|
@ -1983,7 +1984,7 @@ nomem:
|
||||||
static int sctp_process_param(struct sctp_association *asoc,
|
static int sctp_process_param(struct sctp_association *asoc,
|
||||||
union sctp_params param,
|
union sctp_params param,
|
||||||
const union sctp_addr *peer_addr,
|
const union sctp_addr *peer_addr,
|
||||||
int gfp)
|
unsigned int __nocast gfp)
|
||||||
{
|
{
|
||||||
union sctp_addr addr;
|
union sctp_addr addr;
|
||||||
int i;
|
int i;
|
||||||
|
|
|
@ -63,7 +63,7 @@ static int sctp_cmd_interpreter(sctp_event_t event_type,
|
||||||
void *event_arg,
|
void *event_arg,
|
||||||
sctp_disposition_t status,
|
sctp_disposition_t status,
|
||||||
sctp_cmd_seq_t *commands,
|
sctp_cmd_seq_t *commands,
|
||||||
int gfp);
|
unsigned int __nocast gfp);
|
||||||
static int sctp_side_effects(sctp_event_t event_type, sctp_subtype_t subtype,
|
static int sctp_side_effects(sctp_event_t event_type, sctp_subtype_t subtype,
|
||||||
sctp_state_t state,
|
sctp_state_t state,
|
||||||
struct sctp_endpoint *ep,
|
struct sctp_endpoint *ep,
|
||||||
|
@ -71,7 +71,7 @@ static int sctp_side_effects(sctp_event_t event_type, sctp_subtype_t subtype,
|
||||||
void *event_arg,
|
void *event_arg,
|
||||||
sctp_disposition_t status,
|
sctp_disposition_t status,
|
||||||
sctp_cmd_seq_t *commands,
|
sctp_cmd_seq_t *commands,
|
||||||
int gfp);
|
unsigned int __nocast gfp);
|
||||||
|
|
||||||
/********************************************************************
|
/********************************************************************
|
||||||
* Helper functions
|
* Helper functions
|
||||||
|
@ -497,7 +497,8 @@ static void sctp_cmd_assoc_failed(sctp_cmd_seq_t *commands,
|
||||||
static int sctp_cmd_process_init(sctp_cmd_seq_t *commands,
|
static int sctp_cmd_process_init(sctp_cmd_seq_t *commands,
|
||||||
struct sctp_association *asoc,
|
struct sctp_association *asoc,
|
||||||
struct sctp_chunk *chunk,
|
struct sctp_chunk *chunk,
|
||||||
sctp_init_chunk_t *peer_init, int gfp)
|
sctp_init_chunk_t *peer_init,
|
||||||
|
unsigned int __nocast gfp)
|
||||||
{
|
{
|
||||||
int error;
|
int error;
|
||||||
|
|
||||||
|
@ -852,7 +853,7 @@ int sctp_do_sm(sctp_event_t event_type, sctp_subtype_t subtype,
|
||||||
struct sctp_endpoint *ep,
|
struct sctp_endpoint *ep,
|
||||||
struct sctp_association *asoc,
|
struct sctp_association *asoc,
|
||||||
void *event_arg,
|
void *event_arg,
|
||||||
int gfp)
|
unsigned int __nocast gfp)
|
||||||
{
|
{
|
||||||
sctp_cmd_seq_t commands;
|
sctp_cmd_seq_t commands;
|
||||||
const sctp_sm_table_entry_t *state_fn;
|
const sctp_sm_table_entry_t *state_fn;
|
||||||
|
@ -897,7 +898,7 @@ static int sctp_side_effects(sctp_event_t event_type, sctp_subtype_t subtype,
|
||||||
void *event_arg,
|
void *event_arg,
|
||||||
sctp_disposition_t status,
|
sctp_disposition_t status,
|
||||||
sctp_cmd_seq_t *commands,
|
sctp_cmd_seq_t *commands,
|
||||||
int gfp)
|
unsigned int __nocast gfp)
|
||||||
{
|
{
|
||||||
int error;
|
int error;
|
||||||
|
|
||||||
|
@ -985,7 +986,7 @@ static int sctp_cmd_interpreter(sctp_event_t event_type,
|
||||||
void *event_arg,
|
void *event_arg,
|
||||||
sctp_disposition_t status,
|
sctp_disposition_t status,
|
||||||
sctp_cmd_seq_t *commands,
|
sctp_cmd_seq_t *commands,
|
||||||
int gfp)
|
unsigned int __nocast gfp)
|
||||||
{
|
{
|
||||||
int error = 0;
|
int error = 0;
|
||||||
int force;
|
int force;
|
||||||
|
|
|
@ -57,7 +57,8 @@ static inline size_t sctp_ssnmap_size(__u16 in, __u16 out)
|
||||||
/* Create a new sctp_ssnmap.
|
/* Create a new sctp_ssnmap.
|
||||||
* Allocate room to store at least 'len' contiguous TSNs.
|
* Allocate room to store at least 'len' contiguous TSNs.
|
||||||
*/
|
*/
|
||||||
struct sctp_ssnmap *sctp_ssnmap_new(__u16 in, __u16 out, int gfp)
|
struct sctp_ssnmap *sctp_ssnmap_new(__u16 in, __u16 out,
|
||||||
|
unsigned int __nocast gfp)
|
||||||
{
|
{
|
||||||
struct sctp_ssnmap *retval;
|
struct sctp_ssnmap *retval;
|
||||||
int size;
|
int size;
|
||||||
|
|
|
@ -57,7 +57,7 @@
|
||||||
/* Initialize a new transport from provided memory. */
|
/* Initialize a new transport from provided memory. */
|
||||||
static struct sctp_transport *sctp_transport_init(struct sctp_transport *peer,
|
static struct sctp_transport *sctp_transport_init(struct sctp_transport *peer,
|
||||||
const union sctp_addr *addr,
|
const union sctp_addr *addr,
|
||||||
int gfp)
|
unsigned int __nocast gfp)
|
||||||
{
|
{
|
||||||
/* Copy in the address. */
|
/* Copy in the address. */
|
||||||
peer->ipaddr = *addr;
|
peer->ipaddr = *addr;
|
||||||
|
@ -121,7 +121,8 @@ static struct sctp_transport *sctp_transport_init(struct sctp_transport *peer,
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Allocate and initialize a new transport. */
|
/* Allocate and initialize a new transport. */
|
||||||
struct sctp_transport *sctp_transport_new(const union sctp_addr *addr, int gfp)
|
struct sctp_transport *sctp_transport_new(const union sctp_addr *addr,
|
||||||
|
unsigned int __nocast gfp)
|
||||||
{
|
{
|
||||||
struct sctp_transport *transport;
|
struct sctp_transport *transport;
|
||||||
|
|
||||||
|
|
|
@ -74,7 +74,7 @@ SCTP_STATIC void sctp_ulpevent_init(struct sctp_ulpevent *event, int msg_flags)
|
||||||
|
|
||||||
/* Create a new sctp_ulpevent. */
|
/* Create a new sctp_ulpevent. */
|
||||||
SCTP_STATIC struct sctp_ulpevent *sctp_ulpevent_new(int size, int msg_flags,
|
SCTP_STATIC struct sctp_ulpevent *sctp_ulpevent_new(int size, int msg_flags,
|
||||||
int gfp)
|
unsigned int __nocast gfp)
|
||||||
{
|
{
|
||||||
struct sctp_ulpevent *event;
|
struct sctp_ulpevent *event;
|
||||||
struct sk_buff *skb;
|
struct sk_buff *skb;
|
||||||
|
@ -136,7 +136,7 @@ static inline void sctp_ulpevent_release_owner(struct sctp_ulpevent *event)
|
||||||
struct sctp_ulpevent *sctp_ulpevent_make_assoc_change(
|
struct sctp_ulpevent *sctp_ulpevent_make_assoc_change(
|
||||||
const struct sctp_association *asoc,
|
const struct sctp_association *asoc,
|
||||||
__u16 flags, __u16 state, __u16 error, __u16 outbound,
|
__u16 flags, __u16 state, __u16 error, __u16 outbound,
|
||||||
__u16 inbound, int gfp)
|
__u16 inbound, unsigned int __nocast gfp)
|
||||||
{
|
{
|
||||||
struct sctp_ulpevent *event;
|
struct sctp_ulpevent *event;
|
||||||
struct sctp_assoc_change *sac;
|
struct sctp_assoc_change *sac;
|
||||||
|
@ -237,7 +237,7 @@ fail:
|
||||||
struct sctp_ulpevent *sctp_ulpevent_make_peer_addr_change(
|
struct sctp_ulpevent *sctp_ulpevent_make_peer_addr_change(
|
||||||
const struct sctp_association *asoc,
|
const struct sctp_association *asoc,
|
||||||
const struct sockaddr_storage *aaddr,
|
const struct sockaddr_storage *aaddr,
|
||||||
int flags, int state, int error, int gfp)
|
int flags, int state, int error, unsigned int __nocast gfp)
|
||||||
{
|
{
|
||||||
struct sctp_ulpevent *event;
|
struct sctp_ulpevent *event;
|
||||||
struct sctp_paddr_change *spc;
|
struct sctp_paddr_change *spc;
|
||||||
|
@ -350,7 +350,7 @@ fail:
|
||||||
*/
|
*/
|
||||||
struct sctp_ulpevent *sctp_ulpevent_make_remote_error(
|
struct sctp_ulpevent *sctp_ulpevent_make_remote_error(
|
||||||
const struct sctp_association *asoc, struct sctp_chunk *chunk,
|
const struct sctp_association *asoc, struct sctp_chunk *chunk,
|
||||||
__u16 flags, int gfp)
|
__u16 flags, unsigned int __nocast gfp)
|
||||||
{
|
{
|
||||||
struct sctp_ulpevent *event;
|
struct sctp_ulpevent *event;
|
||||||
struct sctp_remote_error *sre;
|
struct sctp_remote_error *sre;
|
||||||
|
@ -448,7 +448,7 @@ fail:
|
||||||
*/
|
*/
|
||||||
struct sctp_ulpevent *sctp_ulpevent_make_send_failed(
|
struct sctp_ulpevent *sctp_ulpevent_make_send_failed(
|
||||||
const struct sctp_association *asoc, struct sctp_chunk *chunk,
|
const struct sctp_association *asoc, struct sctp_chunk *chunk,
|
||||||
__u16 flags, __u32 error, int gfp)
|
__u16 flags, __u32 error, unsigned int __nocast gfp)
|
||||||
{
|
{
|
||||||
struct sctp_ulpevent *event;
|
struct sctp_ulpevent *event;
|
||||||
struct sctp_send_failed *ssf;
|
struct sctp_send_failed *ssf;
|
||||||
|
@ -557,7 +557,7 @@ fail:
|
||||||
*/
|
*/
|
||||||
struct sctp_ulpevent *sctp_ulpevent_make_shutdown_event(
|
struct sctp_ulpevent *sctp_ulpevent_make_shutdown_event(
|
||||||
const struct sctp_association *asoc,
|
const struct sctp_association *asoc,
|
||||||
__u16 flags, int gfp)
|
__u16 flags, unsigned int __nocast gfp)
|
||||||
{
|
{
|
||||||
struct sctp_ulpevent *event;
|
struct sctp_ulpevent *event;
|
||||||
struct sctp_shutdown_event *sse;
|
struct sctp_shutdown_event *sse;
|
||||||
|
@ -620,7 +620,7 @@ fail:
|
||||||
* 5.3.1.6 SCTP_ADAPTION_INDICATION
|
* 5.3.1.6 SCTP_ADAPTION_INDICATION
|
||||||
*/
|
*/
|
||||||
struct sctp_ulpevent *sctp_ulpevent_make_adaption_indication(
|
struct sctp_ulpevent *sctp_ulpevent_make_adaption_indication(
|
||||||
const struct sctp_association *asoc, int gfp)
|
const struct sctp_association *asoc, unsigned int __nocast gfp)
|
||||||
{
|
{
|
||||||
struct sctp_ulpevent *event;
|
struct sctp_ulpevent *event;
|
||||||
struct sctp_adaption_event *sai;
|
struct sctp_adaption_event *sai;
|
||||||
|
@ -657,7 +657,7 @@ fail:
|
||||||
*/
|
*/
|
||||||
struct sctp_ulpevent *sctp_ulpevent_make_rcvmsg(struct sctp_association *asoc,
|
struct sctp_ulpevent *sctp_ulpevent_make_rcvmsg(struct sctp_association *asoc,
|
||||||
struct sctp_chunk *chunk,
|
struct sctp_chunk *chunk,
|
||||||
int gfp)
|
unsigned int __nocast gfp)
|
||||||
{
|
{
|
||||||
struct sctp_ulpevent *event = NULL;
|
struct sctp_ulpevent *event = NULL;
|
||||||
struct sk_buff *skb;
|
struct sk_buff *skb;
|
||||||
|
@ -718,7 +718,8 @@ fail:
|
||||||
* various events.
|
* various events.
|
||||||
*/
|
*/
|
||||||
struct sctp_ulpevent *sctp_ulpevent_make_pdapi(
|
struct sctp_ulpevent *sctp_ulpevent_make_pdapi(
|
||||||
const struct sctp_association *asoc, __u32 indication, int gfp)
|
const struct sctp_association *asoc, __u32 indication,
|
||||||
|
unsigned int __nocast gfp)
|
||||||
{
|
{
|
||||||
struct sctp_ulpevent *event;
|
struct sctp_ulpevent *event;
|
||||||
struct sctp_pdapi_event *pd;
|
struct sctp_pdapi_event *pd;
|
||||||
|
|
|
@ -100,7 +100,7 @@ void sctp_ulpq_free(struct sctp_ulpq *ulpq)
|
||||||
|
|
||||||
/* Process an incoming DATA chunk. */
|
/* Process an incoming DATA chunk. */
|
||||||
int sctp_ulpq_tail_data(struct sctp_ulpq *ulpq, struct sctp_chunk *chunk,
|
int sctp_ulpq_tail_data(struct sctp_ulpq *ulpq, struct sctp_chunk *chunk,
|
||||||
int gfp)
|
unsigned int __nocast gfp)
|
||||||
{
|
{
|
||||||
struct sk_buff_head temp;
|
struct sk_buff_head temp;
|
||||||
sctp_data_chunk_t *hdr;
|
sctp_data_chunk_t *hdr;
|
||||||
|
@ -778,7 +778,8 @@ static __u16 sctp_ulpq_renege_frags(struct sctp_ulpq *ulpq, __u16 needed)
|
||||||
|
|
||||||
/* Partial deliver the first message as there is pressure on rwnd. */
|
/* Partial deliver the first message as there is pressure on rwnd. */
|
||||||
void sctp_ulpq_partial_delivery(struct sctp_ulpq *ulpq,
|
void sctp_ulpq_partial_delivery(struct sctp_ulpq *ulpq,
|
||||||
struct sctp_chunk *chunk, int gfp)
|
struct sctp_chunk *chunk,
|
||||||
|
unsigned int __nocast gfp)
|
||||||
{
|
{
|
||||||
struct sctp_ulpevent *event;
|
struct sctp_ulpevent *event;
|
||||||
struct sctp_association *asoc;
|
struct sctp_association *asoc;
|
||||||
|
@ -802,7 +803,7 @@ void sctp_ulpq_partial_delivery(struct sctp_ulpq *ulpq,
|
||||||
|
|
||||||
/* Renege some packets to make room for an incoming chunk. */
|
/* Renege some packets to make room for an incoming chunk. */
|
||||||
void sctp_ulpq_renege(struct sctp_ulpq *ulpq, struct sctp_chunk *chunk,
|
void sctp_ulpq_renege(struct sctp_ulpq *ulpq, struct sctp_chunk *chunk,
|
||||||
int gfp)
|
unsigned int __nocast gfp)
|
||||||
{
|
{
|
||||||
struct sctp_association *asoc;
|
struct sctp_association *asoc;
|
||||||
__u16 needed, freed;
|
__u16 needed, freed;
|
||||||
|
@ -841,7 +842,7 @@ void sctp_ulpq_renege(struct sctp_ulpq *ulpq, struct sctp_chunk *chunk,
|
||||||
/* Notify the application if an association is aborted and in
|
/* Notify the application if an association is aborted and in
|
||||||
* partial delivery mode. Send up any pending received messages.
|
* partial delivery mode. Send up any pending received messages.
|
||||||
*/
|
*/
|
||||||
void sctp_ulpq_abort_pd(struct sctp_ulpq *ulpq, int gfp)
|
void sctp_ulpq_abort_pd(struct sctp_ulpq *ulpq, unsigned int __nocast gfp)
|
||||||
{
|
{
|
||||||
struct sctp_ulpevent *ev = NULL;
|
struct sctp_ulpevent *ev = NULL;
|
||||||
struct sock *sk;
|
struct sock *sk;
|
||||||
|
|
|
@ -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 */
|
int cnt = skb->data[0] ? 0 : 1; /* there may be a pad present */
|
||||||
unsigned short ethertype;
|
__be16 ethertype;
|
||||||
|
|
||||||
switch (skb->data[cnt]) {
|
switch (skb->data[cnt]) {
|
||||||
case NLPID_IP: /* IP datagramm */
|
case NLPID_IP: /* IP datagramm */
|
||||||
|
@ -379,7 +379,7 @@ unsigned short wanrouter_type_trans(struct sk_buff *skb, struct net_device *dev)
|
||||||
skb->data[cnt+3], dev->name);
|
skb->data[cnt+3], dev->name);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
ethertype = *((unsigned short*)&skb->data[cnt+4]);
|
ethertype = *((__be16*)&skb->data[cnt+4]);
|
||||||
cnt += 6;
|
cnt += 6;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
|
|
@ -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
|
# XFRM configuration
|
||||||
#
|
#
|
||||||
|
config XFRM
|
||||||
|
bool
|
||||||
|
depends on NET
|
||||||
|
|
||||||
config XFRM_USER
|
config XFRM_USER
|
||||||
tristate "IPsec user configuration interface"
|
tristate "IPsec user configuration interface"
|
||||||
depends on INET && XFRM
|
depends on INET && XFRM
|
||||||
|
@ -10,3 +14,14 @@ config XFRM_USER
|
||||||
|
|
||||||
If unsure, say Y.
|
If unsure, say Y.
|
||||||
|
|
||||||
|
config NET_KEY
|
||||||
|
tristate "PF_KEY sockets"
|
||||||
|
select XFRM
|
||||||
|
---help---
|
||||||
|
PF_KEYv2 socket family, compatible to KAME ones.
|
||||||
|
They are required if you are going to use IPsec tools ported
|
||||||
|
from KAME.
|
||||||
|
|
||||||
|
Say Y unless you know what you are doing.
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue