# SPDX-License-Identifier: GPL-2.0-only
#
# IPv6 configuration
#
# IPv6 as module will cause a CRASH if you try to unload it
menuconfig [31mCONFIG_IPV6[0m
tristate "The IPv6 protocol"
default y
---help---
Support for IP version 6 (IPv6).
For general information about IPv6, see
<https://en.wikipedia.org/wiki/IPv6>.
For specific information about IPv6 under Linux, see
Documentation/networking/ipv6.txt and read the HOWTO at
<http://www.tldp.org/HOWTO/Linux+IPv6-HOWTO/>
To compile this protocol support as a module, choose [31mCONFIG_M[0m here: the
module will be called ipv6.
if [31mCONFIG_IPV6[0m
config [31mCONFIG_IPV6_ROUTER_PREF[0m
bool "IPv6: Router Preference (RFC 4191) support"
---help---
Router Preference is an optional extension to the Router
Advertisement message which improves the ability of hosts
to pick an appropriate router, especially when the hosts
are placed in a multi-homed network.
If unsure, say N.
config [31mCONFIG_IPV6_ROUTE_INFO[0m
bool "IPv6: Route Information (RFC 4191) support"
depends on [31mCONFIG_IPV6_ROUTER_PREF[0m
---help---
Support of Route Information.
If unsure, say N.
config [31mCONFIG_IPV6_OPTIMISTIC_DAD[0m
bool "IPv6: Enable RFC 4429 Optimistic DAD"
---help---
Support for optimistic Duplicate Address Detection. It allows for
autoconfigured addresses to be used more quickly.
If unsure, say N.
config [31mCONFIG_INET6_AH[0m
tristate "IPv6: AH transformation"
select [31mCONFIG_XFRM_ALGO[0m
select [31mCONFIG_CRYPTO[0m
select [31mCONFIG_CRYPTO_HMAC[0m
select [31mCONFIG_CRYPTO_MD5[0m
select [31mCONFIG_CRYPTO_SHA1[0m
---help---
Support for IPsec AH.
If unsure, say Y.
config [31mCONFIG_INET6_ESP[0m
tristate "IPv6: ESP transformation"
select [31mCONFIG_XFRM_ALGO[0m
select [31mCONFIG_CRYPTO[0m
select [31mCONFIG_CRYPTO_AUTHENC[0m
select [31mCONFIG_CRYPTO_HMAC[0m
select [31mCONFIG_CRYPTO_MD5[0m
select [31mCONFIG_CRYPTO_CBC[0m
select [31mCONFIG_CRYPTO_SHA1[0m
select [31mCONFIG_CRYPTO_DES[0m
select [31mCONFIG_CRYPTO_ECHAINIV[0m
---help---
Support for IPsec ESP.
If unsure, say Y.
config [31mCONFIG_INET6_ESP_OFFLOAD[0m
tristate "IPv6: ESP transformation offload"
depends on [31mCONFIG_INET6_ESP[0m
select [31mCONFIG_XFRM_OFFLOAD[0m
default n
---help---
Support for ESP transformation offload. This makes sense
only if this system really does IPsec and want to do it
with high throughput. [31mCONFIG_A[0m typical desktop system does not
need it, even if it does IPsec.
If unsure, say N.
config [31mCONFIG_INET6_IPCOMP[0m
tristate "IPv6: IPComp transformation"
select [31mCONFIG_INET6_XFRM_TUNNEL[0m
select [31mCONFIG_XFRM_IPCOMP[0m
---help---
Support for IP Payload Compression Protocol (IPComp) (RFC3173),
typically needed for IPsec.
If unsure, say Y.
config [31mCONFIG_IPV6_MIP6[0m
tristate "IPv6: Mobility"
select [31mCONFIG_XFRM[0m
---help---
Support for IPv6 Mobility described in RFC 3775.
If unsure, say N.
config [31mCONFIG_IPV6_ILA[0m
tristate "IPv6: Identifier Locator Addressing (ILA)"
depends on [31mCONFIG_NETFILTER[0m
select [31mCONFIG_DST_CACHE[0m
select [31mCONFIG_LWTUNNEL[0m
---help---
Support for IPv6 Identifier Locator Addressing (ILA).
ILA is a mechanism to do network virtualization without
encapsulation. The basic concept of ILA is that we split an
IPv6 address into a 64 bit locator and 64 bit identifier. The
identifier is the identity of an entity in communication
("who") and the locator expresses the location of the
entity ("where").
ILA can be configured using the "encap ila" option with
"ip -6 route" command. ILA is described in
https://tools.ietf.org/html/draft-herbert-nvo3-ila-00.
If unsure, say N.
config [31mCONFIG_INET6_XFRM_TUNNEL[0m
tristate
select [31mCONFIG_INET6_TUNNEL[0m
default n
config [31mCONFIG_INET6_TUNNEL[0m
tristate
default n
config [31mCONFIG_IPV6_VTI[0m
tristate "Virtual (secure) IPv6: tunneling"
select [31mCONFIG_IPV6_TUNNEL[0m
select [31mCONFIG_NET_IP_TUNNEL[0m
select [31mCONFIG_XFRM[0m
---help---
Tunneling means encapsulating data of one protocol type within
another protocol and sending it over a channel that understands the
encapsulating protocol. This can be used with xfrm mode tunnel to give
the notion of a secure tunnel for IPSEC and then use routing protocol
on top.
config [31mCONFIG_IPV6_SIT[0m
tristate "IPv6: IPv6-in-IPv4 tunnel (SIT driver)"
select [31mCONFIG_INET_TUNNEL[0m
select [31mCONFIG_NET_IP_TUNNEL[0m
select [31mCONFIG_IPV6_NDISC_NODETYPE[0m
default y
---help---
Tunneling means encapsulating data of one protocol type within
another protocol and sending it over a channel that understands the
encapsulating protocol. This driver implements encapsulation of IPv6
into IPv4 packets. This is useful if you want to connect two IPv6
networks over an IPv4-only path.
Saying [31mCONFIG_M[0m here will produce a module called sit. If unsure, say Y.
config [31mCONFIG_IPV6_SIT_6RD[0m
bool "IPv6: IPv6 Rapid Deployment (6RD)"
depends on [31mCONFIG_IPV6_SIT[0m
default n
---help---
IPv6 Rapid Deployment (6rd; draft-ietf-softwire-ipv6-6rd) builds upon
mechanisms of 6to4 (RFC3056) to enable a service provider to rapidly
deploy IPv6 unicast service to IPv4 sites to which it provides
customer premise equipment. Like 6to4, it utilizes stateless IPv6 in
IPv4 encapsulation in order to transit IPv4-only network
infrastructure. Unlike 6to4, a 6rd service provider uses an IPv6
prefix of its own in place of the fixed 6to4 prefix.
With this option enabled, the SIT driver offers 6rd functionality by
providing additional ioctl API to configure the IPv6 Prefix for in
stead of static 2002::/16 for 6to4.
If unsure, say N.
config [31mCONFIG_IPV6_NDISC_NODETYPE[0m
bool
config [31mCONFIG_IPV6_TUNNEL[0m
tristate "IPv6: IP-in-IPv6 tunnel (RFC2473)"
select [31mCONFIG_INET6_TUNNEL[0m
select [31mCONFIG_DST_CACHE[0m
select [31mCONFIG_GRO_CELLS[0m
---help---
Support for IPv6-in-IPv6 and IPv4-in-IPv6 tunnels described in
RFC 2473.
If unsure, say N.
config [31mCONFIG_IPV6_GRE[0m
tristate "IPv6: GRE tunnel"
select [31mCONFIG_IPV6_TUNNEL[0m
select [31mCONFIG_NET_IP_TUNNEL[0m
depends on [31mCONFIG_NET_IPGRE_DEMUX[0m
---help---
Tunneling means encapsulating data of one protocol type within
another protocol and sending it over a channel that understands the
encapsulating protocol. This particular tunneling driver implements
GRE (Generic Routing Encapsulation) and at this time allows
encapsulating of IPv4 or IPv6 over existing IPv6 infrastructure.
This driver is useful if the other endpoint is a Cisco router: Cisco
likes GRE much better than the other Linux tunneling driver ("IP
tunneling" above). In addition, GRE allows multicast redistribution
through the tunnel.
Saying [31mCONFIG_M[0m here will produce a module called ip6_gre. If unsure, say N.
config [31mCONFIG_IPV6_FOU[0m
tristate
default [31mCONFIG_NET_FOU[0m && [31mCONFIG_IPV6[0m
config [31mCONFIG_IPV6_FOU_TUNNEL[0m
tristate
default [31mCONFIG_NET_FOU_IP_TUNNELS[0m && [31mCONFIG_IPV6_FOU[0m
select [31mCONFIG_IPV6_TUNNEL[0m
config [31mCONFIG_IPV6_MULTIPLE_TABLES[0m
bool "IPv6: Multiple Routing Tables"
select [31mCONFIG_FIB_RULES[0m
---help---
Support multiple routing tables.
config [31mCONFIG_IPV6_SUBTREES[0m
bool "IPv6: source address based routing"
depends on [31mCONFIG_IPV6_MULTIPLE_TABLES[0m
---help---
Enable routing by source address or prefix.
The destination address is still the primary routing key, so mixing
normal and source prefix specific routes in the same routing table
may sometimes lead to unintended routing behavior. This can be
avoided by defining different routing tables for the normal and
source prefix specific routes.
If unsure, say N.
config [31mCONFIG_IPV6_MROUTE[0m
bool "IPv6: multicast routing"
depends on [31mCONFIG_IPV6[0m
select [31mCONFIG_IP_MROUTE_COMMON[0m
---help---
Support for IPv6 multicast forwarding.
If unsure, say N.
config [31mCONFIG_IPV6_MROUTE_MULTIPLE_TABLES[0m
bool "IPv6: multicast policy routing"
depends on [31mCONFIG_IPV6_MROUTE[0m
select [31mCONFIG_FIB_RULES[0m
help
Normally, a multicast router runs a userspace daemon and decides
what to do with a multicast packet based on the source and
destination addresses. If you say Y here, the multicast router
will also be able to take interfaces and packet marks into
account and run multiple instances of userspace daemons
simultaneously, each one handling a single table.
If unsure, say N.
config [31mCONFIG_IPV6_PIMSM_V2[0m
bool "IPv6: PIM-SM version 2 support"
depends on [31mCONFIG_IPV6_MROUTE[0m
---help---
Support for IPv6 PIM multicast routing protocol PIM-SMv2.
If unsure, say N.
config [31mCONFIG_IPV6_SEG6_LWTUNNEL[0m
bool "IPv6: Segment Routing Header encapsulation support"
depends on [31mCONFIG_IPV6[0m
select [31mCONFIG_LWTUNNEL[0m
select [31mCONFIG_DST_CACHE[0m
select [31mCONFIG_IPV6_MULTIPLE_TABLES[0m
---help---
Support for encapsulation of packets within an outer IPv6
header and a Segment Routing Header using the lightweight
tunnels mechanism. Also enable support for advanced local
processing of SRv6 packets based on their active segment.
If unsure, say N.
config [31mCONFIG_IPV6_SEG6_HMAC[0m
bool "IPv6: Segment Routing HMAC support"
depends on [31mCONFIG_IPV6[0m
select [31mCONFIG_CRYPTO_HMAC[0m
select [31mCONFIG_CRYPTO_SHA1[0m
select [31mCONFIG_CRYPTO_SHA256[0m
---help---
Support for HMAC signature generation and verification
of SR-enabled packets.
If unsure, say N.
config [31mCONFIG_IPV6_SEG6_BPF[0m
def_bool y
depends on [31mCONFIG_IPV6_SEG6_LWTUNNEL[0m
depends on [31mCONFIG_IPV6[0m = y
endif # [31mCONFIG_IPV6[0m