mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-25 00:51:28 +07:00
e4fc408e0e
Currently, there is no good possibility to debug netlink traffic that is being exchanged between kernel and user space. Therefore, this patch implements a netlink virtual device, so that netlink messages will be made visible to PF_PACKET sockets. Once there was an approach with a similar idea [1], but it got forgotten somehow. I think it makes most sense to accept the "overhead" of an extra netlink net device over implementing the same functionality from PF_PACKET sockets once again into netlink sockets. We have BPF filters that can already be easily applied which even have netlink extensions, we have RX_RING zero-copy between kernel- and user space that can be reused, and much more features. So instead of re-implementing all of this, we simply pass the skb to a given PF_PACKET socket for further analysis. Another nice benefit that comes from that is that no code needs to be changed in user space packet analyzers (maybe adding a dissector, but not more), thus out of the box, we can already capture pcap files of netlink traffic to debug/troubleshoot netlink problems. Also thanks goes to Thomas Graf, Flavio Leitner, Jesper Dangaard Brouer. [1] http://marc.info/?l=linux-netdev&m=113813401516110 Signed-off-by: Daniel Borkmann <dborkman@redhat.com> Signed-off-by: David S. Miller <davem@davemloft.net>
366 lines
12 KiB
Plaintext
366 lines
12 KiB
Plaintext
#
|
|
# Network device configuration
|
|
#
|
|
|
|
menuconfig NETDEVICES
|
|
default y if UML
|
|
depends on NET
|
|
bool "Network device support"
|
|
---help---
|
|
You can say N here if you don't intend to connect your Linux box to
|
|
any other computer at all.
|
|
|
|
You'll have to say Y if your computer contains a network card that
|
|
you want to use under Linux. If you are going to run SLIP or PPP over
|
|
telephone line or null modem cable you need say Y here. Connecting
|
|
two machines with parallel ports using PLIP needs this, as well as
|
|
AX.25/KISS for sending Internet traffic over amateur radio links.
|
|
|
|
See also "The Linux Network Administrator's Guide" by Olaf Kirch and
|
|
Terry Dawson. Available at <http://www.tldp.org/guides.html>.
|
|
|
|
If unsure, say Y.
|
|
|
|
# All the following symbols are dependent on NETDEVICES - do not repeat
|
|
# that for each of the symbols.
|
|
if NETDEVICES
|
|
|
|
config MII
|
|
tristate
|
|
|
|
config NET_CORE
|
|
default y
|
|
bool "Network core driver support"
|
|
---help---
|
|
You can say N here if you do not intend to use any of the
|
|
networking core drivers (i.e. VLAN, bridging, bonding, etc.)
|
|
|
|
if NET_CORE
|
|
|
|
config BONDING
|
|
tristate "Bonding driver support"
|
|
depends on INET
|
|
depends on IPV6 || IPV6=n
|
|
---help---
|
|
Say 'Y' or 'M' if you wish to be able to 'bond' multiple Ethernet
|
|
Channels together. This is called 'Etherchannel' by Cisco,
|
|
'Trunking' by Sun, 802.3ad by the IEEE, and 'Bonding' in Linux.
|
|
|
|
The driver supports multiple bonding modes to allow for both high
|
|
performance and high availability operation.
|
|
|
|
Refer to <file:Documentation/networking/bonding.txt> for more
|
|
information.
|
|
|
|
To compile this driver as a module, choose M here: the module
|
|
will be called bonding.
|
|
|
|
config DUMMY
|
|
tristate "Dummy net driver support"
|
|
---help---
|
|
This is essentially a bit-bucket device (i.e. traffic you send to
|
|
this device is consigned into oblivion) with a configurable IP
|
|
address. It is most commonly used in order to make your currently
|
|
inactive SLIP address seem like a real address for local programs.
|
|
If you use SLIP or PPP, you might want to say Y here. Since this
|
|
thing often comes in handy, the default is Y. It won't enlarge your
|
|
kernel either. What a deal. Read about it in the Network
|
|
Administrator's Guide, available from
|
|
<http://www.tldp.org/docs.html#guide>.
|
|
|
|
To compile this driver as a module, choose M here: the module
|
|
will be called dummy.
|
|
|
|
config EQUALIZER
|
|
tristate "EQL (serial line load balancing) support"
|
|
---help---
|
|
If you have two serial connections to some other computer (this
|
|
usually requires two modems and two telephone lines) and you use
|
|
SLIP (the protocol for sending Internet traffic over telephone
|
|
lines) or PPP (a better SLIP) on them, you can make them behave like
|
|
one double speed connection using this driver. Naturally, this has
|
|
to be supported at the other end as well, either with a similar EQL
|
|
Linux driver or with a Livingston Portmaster 2e.
|
|
|
|
Say Y if you want this and read
|
|
<file:Documentation/networking/eql.txt>. You may also want to read
|
|
section 6.2 of the NET-3-HOWTO, available from
|
|
<http://www.tldp.org/docs.html#howto>.
|
|
|
|
To compile this driver as a module, choose M here: the module
|
|
will be called eql. If unsure, say N.
|
|
|
|
config NET_FC
|
|
bool "Fibre Channel driver support"
|
|
depends on SCSI && PCI
|
|
help
|
|
Fibre Channel is a high speed serial protocol mainly used to connect
|
|
large storage devices to the computer; it is compatible with and
|
|
intended to replace SCSI.
|
|
|
|
If you intend to use Fibre Channel, you need to have a Fibre channel
|
|
adaptor card in your computer; say Y here and to the driver for your
|
|
adaptor below. You also should have said Y to "SCSI support" and
|
|
"SCSI generic support".
|
|
|
|
config IFB
|
|
tristate "Intermediate Functional Block support"
|
|
depends on NET_CLS_ACT
|
|
---help---
|
|
This is an intermediate driver that allows sharing of
|
|
resources.
|
|
To compile this driver as a module, choose M here: the module
|
|
will be called ifb. If you want to use more than one ifb
|
|
device at a time, you need to compile this driver as a module.
|
|
Instead of 'ifb', the devices will then be called 'ifb0',
|
|
'ifb1' etc.
|
|
Look at the iproute2 documentation directory for usage etc
|
|
|
|
source "drivers/net/team/Kconfig"
|
|
|
|
config MACVLAN
|
|
tristate "MAC-VLAN support"
|
|
---help---
|
|
This allows one to create virtual interfaces that map packets to
|
|
or from specific MAC addresses to a particular interface.
|
|
|
|
Macvlan devices can be added using the "ip" command from the
|
|
iproute2 package starting with the iproute2-2.6.23 release:
|
|
|
|
"ip link add link <real dev> [ address MAC ] [ NAME ] type macvlan"
|
|
|
|
To compile this driver as a module, choose M here: the module
|
|
will be called macvlan.
|
|
|
|
config MACVTAP
|
|
tristate "MAC-VLAN based tap driver"
|
|
depends on MACVLAN
|
|
help
|
|
This adds a specialized tap character device driver that is based
|
|
on the MAC-VLAN network interface, called macvtap. A macvtap device
|
|
can be added in the same way as a macvlan device, using 'type
|
|
macvlan', and then be accessed through the tap user space interface.
|
|
|
|
To compile this driver as a module, choose M here: the module
|
|
will be called macvtap.
|
|
|
|
config VXLAN
|
|
tristate "Virtual eXtensible Local Area Network (VXLAN)"
|
|
depends on INET
|
|
select NET_IP_TUNNEL
|
|
---help---
|
|
This allows one to create vxlan virtual interfaces that provide
|
|
Layer 2 Networks over Layer 3 Networks. VXLAN is often used
|
|
to tunnel virtual network infrastructure in virtualized environments.
|
|
For more information see:
|
|
http://tools.ietf.org/html/draft-mahalingam-dutt-dcops-vxlan-02
|
|
|
|
To compile this driver as a module, choose M here: the module
|
|
will be called vxlan.
|
|
|
|
config NETCONSOLE
|
|
tristate "Network console logging support"
|
|
---help---
|
|
If you want to log kernel messages over the network, enable this.
|
|
See <file:Documentation/networking/netconsole.txt> for details.
|
|
|
|
config NETCONSOLE_DYNAMIC
|
|
bool "Dynamic reconfiguration of logging targets"
|
|
depends on NETCONSOLE && SYSFS && CONFIGFS_FS && \
|
|
!(NETCONSOLE=y && CONFIGFS_FS=m)
|
|
help
|
|
This option enables the ability to dynamically reconfigure target
|
|
parameters (interface, IP addresses, port numbers, MAC addresses)
|
|
at runtime through a userspace interface exported using configfs.
|
|
See <file:Documentation/networking/netconsole.txt> for details.
|
|
|
|
config NETPOLL
|
|
def_bool NETCONSOLE
|
|
|
|
config NETPOLL_TRAP
|
|
bool "Netpoll traffic trapping"
|
|
default n
|
|
depends on NETPOLL
|
|
|
|
config NET_POLL_CONTROLLER
|
|
def_bool NETPOLL
|
|
|
|
config NTB_NETDEV
|
|
tristate "Virtual Ethernet over NTB"
|
|
depends on NTB
|
|
|
|
config RIONET
|
|
tristate "RapidIO Ethernet over messaging driver support"
|
|
depends on RAPIDIO
|
|
|
|
config RIONET_TX_SIZE
|
|
int "Number of outbound queue entries"
|
|
depends on RIONET
|
|
default "128"
|
|
|
|
config RIONET_RX_SIZE
|
|
int "Number of inbound queue entries"
|
|
depends on RIONET
|
|
default "128"
|
|
|
|
config TUN
|
|
tristate "Universal TUN/TAP device driver support"
|
|
select CRC32
|
|
---help---
|
|
TUN/TAP provides packet reception and transmission for user space
|
|
programs. It can be viewed as a simple Point-to-Point or Ethernet
|
|
device, which instead of receiving packets from a physical media,
|
|
receives them from user space program and instead of sending packets
|
|
via physical media writes them to the user space program.
|
|
|
|
When a program opens /dev/net/tun, driver creates and registers
|
|
corresponding net device tunX or tapX. After a program closed above
|
|
devices, driver will automatically delete tunXX or tapXX device and
|
|
all routes corresponding to it.
|
|
|
|
Please read <file:Documentation/networking/tuntap.txt> for more
|
|
information.
|
|
|
|
To compile this driver as a module, choose M here: the module
|
|
will be called tun.
|
|
|
|
If you don't know what to use this for, you don't need it.
|
|
|
|
config VETH
|
|
tristate "Virtual ethernet pair device"
|
|
---help---
|
|
This device is a local ethernet tunnel. Devices are created in pairs.
|
|
When one end receives the packet it appears on its pair and vice
|
|
versa.
|
|
|
|
config VIRTIO_NET
|
|
tristate "Virtio network driver"
|
|
depends on VIRTIO
|
|
---help---
|
|
This is the virtual network driver for virtio. It can be used with
|
|
lguest or QEMU based VMMs (like KVM or Xen). Say Y or M.
|
|
|
|
config NLMON
|
|
tristate "Virtual netlink monitoring device"
|
|
---help---
|
|
This option enables a monitoring net device for netlink skbs. The
|
|
purpose of this is to analyze netlink messages with packet sockets.
|
|
Thus applications like tcpdump will be able to see local netlink
|
|
messages if they tap into the netlink device, record pcaps for further
|
|
diagnostics, etc. This is mostly intended for developers or support
|
|
to debug netlink issues. If unsure, say N.
|
|
|
|
endif # NET_CORE
|
|
|
|
config SUNGEM_PHY
|
|
tristate
|
|
|
|
source "drivers/net/arcnet/Kconfig"
|
|
|
|
source "drivers/atm/Kconfig"
|
|
|
|
source "drivers/net/caif/Kconfig"
|
|
|
|
source "drivers/net/dsa/Kconfig"
|
|
|
|
source "drivers/net/ethernet/Kconfig"
|
|
|
|
source "drivers/net/fddi/Kconfig"
|
|
|
|
source "drivers/net/hippi/Kconfig"
|
|
|
|
config NET_SB1000
|
|
tristate "General Instruments Surfboard 1000"
|
|
depends on PNP
|
|
---help---
|
|
This is a driver for the General Instrument (also known as
|
|
NextLevel) SURFboard 1000 internal
|
|
cable modem. This is an ISA card which is used by a number of cable
|
|
TV companies to provide cable modem access. It's a one-way
|
|
downstream-only cable modem, meaning that your upstream net link is
|
|
provided by your regular phone modem.
|
|
|
|
At present this driver only compiles as a module, so say M here if
|
|
you have this card. The module will be called sb1000. Then read
|
|
<file:Documentation/networking/README.sb1000> for information on how
|
|
to use this module, as it needs special ppp scripts for establishing
|
|
a connection. Further documentation and the necessary scripts can be
|
|
found at:
|
|
|
|
<http://www.jacksonville.net/~fventuri/>
|
|
<http://home.adelphia.net/~siglercm/sb1000.html>
|
|
<http://linuxpower.cx/~cable/>
|
|
|
|
If you don't have this card, of course say N.
|
|
|
|
source "drivers/net/phy/Kconfig"
|
|
|
|
source "drivers/net/plip/Kconfig"
|
|
|
|
source "drivers/net/ppp/Kconfig"
|
|
|
|
source "drivers/net/slip/Kconfig"
|
|
|
|
source "drivers/s390/net/Kconfig"
|
|
|
|
source "drivers/net/usb/Kconfig"
|
|
|
|
source "drivers/net/wireless/Kconfig"
|
|
|
|
source "drivers/net/wimax/Kconfig"
|
|
|
|
source "drivers/net/wan/Kconfig"
|
|
|
|
source "drivers/net/ieee802154/Kconfig"
|
|
|
|
config XEN_NETDEV_FRONTEND
|
|
tristate "Xen network device frontend driver"
|
|
depends on XEN
|
|
select XEN_XENBUS_FRONTEND
|
|
default y
|
|
help
|
|
This driver provides support for Xen paravirtual network
|
|
devices exported by a Xen network driver domain (often
|
|
domain 0).
|
|
|
|
The corresponding Linux backend driver is enabled by the
|
|
CONFIG_XEN_NETDEV_BACKEND option.
|
|
|
|
If you are compiling a kernel for use as Xen guest, you
|
|
should say Y here. To compile this driver as a module, chose
|
|
M here: the module will be called xen-netfront.
|
|
|
|
config XEN_NETDEV_BACKEND
|
|
tristate "Xen backend network device"
|
|
depends on XEN_BACKEND
|
|
help
|
|
This driver allows the kernel to act as a Xen network driver
|
|
domain which exports paravirtual network devices to other
|
|
Xen domains. These devices can be accessed by any operating
|
|
system that implements a compatible front end.
|
|
|
|
The corresponding Linux frontend driver is enabled by the
|
|
CONFIG_XEN_NETDEV_FRONTEND configuration option.
|
|
|
|
The backend driver presents a standard network device
|
|
endpoint for each paravirtual network device to the driver
|
|
domain network stack. These can then be bridged or routed
|
|
etc in order to provide full network connectivity.
|
|
|
|
If you are compiling a kernel to run in a Xen network driver
|
|
domain (often this is domain 0) you should say Y here. To
|
|
compile this driver as a module, chose M here: the module
|
|
will be called xen-netback.
|
|
|
|
config VMXNET3
|
|
tristate "VMware VMXNET3 ethernet driver"
|
|
depends on PCI && INET
|
|
help
|
|
This driver supports VMware's vmxnet3 virtual ethernet NIC.
|
|
To compile this driver as a module, choose M here: the
|
|
module will be called vmxnet3.
|
|
|
|
source "drivers/net/hyperv/Kconfig"
|
|
|
|
endif # NETDEVICES
|