net/netfilter/ipvs/Kconfig

Source file repositories/reference/linux-study-clean/net/netfilter/ipvs/Kconfig

File Facts

System
Linux kernel
Corpus path
net/netfilter/ipvs/Kconfig
Extension
[no extension]
Size
13646 bytes
Lines
362
Domain
Networking Core
Bucket
Sockets, Protocols, Packet Path, And Network Policy
Inferred role
Networking Core: build/configuration rule
Status
atlas-only

Why This File Exists

Networking stack implementation surface: socket APIs, protocol dispatch, packet flow, routing, filtering, and network namespaces.

Dependency Surface

Detected Declarations

Annotated Snippet

# SPDX-License-Identifier: GPL-2.0-only
#
# IP Virtual Server configuration
#
menuconfig IP_VS
	tristate "IP virtual server support"
	depends on INET && NETFILTER
	depends on (NF_CONNTRACK || NF_CONNTRACK=n)
	help
	  IP Virtual Server support will let you build a high-performance
	  virtual server based on cluster of two or more real servers. This
	  option must be enabled for at least one of the clustered computers
	  that will take care of intercepting incoming connections to a
	  single IP address and scheduling them to real servers.

	  Three request dispatching techniques are implemented, they are
	  virtual server via NAT, virtual server via tunneling and virtual
	  server via direct routing. The several scheduling algorithms can
	  be used to choose which server the connection is directed to,
	  thus load balancing can be achieved among the servers.  For more
	  information and its administration program, please visit the
	  following URL: <http://www.linuxvirtualserver.org/>.

	  If you want to compile it in kernel, say Y. To compile it as a
	  module, choose M here. If unsure, say N.

if IP_VS

config	IP_VS_IPV6
	bool "IPv6 support for IPVS"
	depends on IPV6 = y || IP_VS = IPV6
	select NF_DEFRAG_IPV6
	help
	  Add IPv6 support to IPVS.

	  Say Y if unsure.

config	IP_VS_DEBUG
	bool "IP virtual server debugging"
	help
	  Say Y here if you want to get additional messages useful in
	  debugging the IP virtual server code. You can change the debug
	  level in /proc/sys/net/ipv4/vs/debug_level

config	IP_VS_TAB_BITS
	int "IPVS connection table size (the Nth power of 2)"
	range 8 20 if !64BIT
	range 8 27 if 64BIT
	default 12
	help
	  The IPVS connection hash table uses the chaining scheme to handle
	  hash collisions. Using a big IPVS connection hash table will greatly
	  reduce conflicts when there are hundreds of thousands of connections
	  in the hash table.

	  Note the table size must be power of 2. The table size will be the
	  value of 2 to the your input number power. The number to choose is
	  from 8 to 27 for 64BIT(20 otherwise), the default number is 12,
	  which means the table size is 4096. Don't input the number too
	  small, otherwise you will lose performance on it. You can adapt the
	  table size yourself, according to your virtual server application.
	  It is good to set the table size not far less than the number of
	  connections per second multiplying average lasting time of
	  connection in the table.  For example, your virtual server gets 200
	  connections per second, the connection lasts for 200 seconds in
	  average in the connection table, the table size should be not far
	  less than 200x200, it is good to set the table size 32768 (2**15).

	  Another note that each connection occupies 128 bytes effectively and
	  each hash entry uses 8 bytes, so you can estimate how much memory is

Annotation

Implementation Notes