162306a36Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0-only 262306a36Sopenharmony_ci# 362306a36Sopenharmony_ci# IPv6 configuration 462306a36Sopenharmony_ci# 562306a36Sopenharmony_ci 662306a36Sopenharmony_ci# IPv6 as module will cause a CRASH if you try to unload it 762306a36Sopenharmony_cimenuconfig IPV6 862306a36Sopenharmony_ci tristate "The IPv6 protocol" 962306a36Sopenharmony_ci default y 1062306a36Sopenharmony_ci select CRYPTO_LIB_SHA1 1162306a36Sopenharmony_ci help 1262306a36Sopenharmony_ci Support for IP version 6 (IPv6). 1362306a36Sopenharmony_ci 1462306a36Sopenharmony_ci For general information about IPv6, see 1562306a36Sopenharmony_ci <https://en.wikipedia.org/wiki/IPv6>. 1662306a36Sopenharmony_ci For specific information about IPv6 under Linux, see 1762306a36Sopenharmony_ci Documentation/networking/ipv6.rst and read the HOWTO at 1862306a36Sopenharmony_ci <https://www.tldp.org/HOWTO/Linux+IPv6-HOWTO/> 1962306a36Sopenharmony_ci 2062306a36Sopenharmony_ci To compile this protocol support as a module, choose M here: the 2162306a36Sopenharmony_ci module will be called ipv6. 2262306a36Sopenharmony_ci 2362306a36Sopenharmony_ciif IPV6 2462306a36Sopenharmony_ci 2562306a36Sopenharmony_ciconfig IPV6_ROUTER_PREF 2662306a36Sopenharmony_ci bool "IPv6: Router Preference (RFC 4191) support" 2762306a36Sopenharmony_ci help 2862306a36Sopenharmony_ci Router Preference is an optional extension to the Router 2962306a36Sopenharmony_ci Advertisement message which improves the ability of hosts 3062306a36Sopenharmony_ci to pick an appropriate router, especially when the hosts 3162306a36Sopenharmony_ci are placed in a multi-homed network. 3262306a36Sopenharmony_ci 3362306a36Sopenharmony_ci If unsure, say N. 3462306a36Sopenharmony_ci 3562306a36Sopenharmony_ciconfig IPV6_ROUTE_INFO 3662306a36Sopenharmony_ci bool "IPv6: Route Information (RFC 4191) support" 3762306a36Sopenharmony_ci depends on IPV6_ROUTER_PREF 3862306a36Sopenharmony_ci help 3962306a36Sopenharmony_ci Support of Route Information. 4062306a36Sopenharmony_ci 4162306a36Sopenharmony_ci If unsure, say N. 4262306a36Sopenharmony_ci 4362306a36Sopenharmony_ciconfig IPV6_OPTIMISTIC_DAD 4462306a36Sopenharmony_ci bool "IPv6: Enable RFC 4429 Optimistic DAD" 4562306a36Sopenharmony_ci help 4662306a36Sopenharmony_ci Support for optimistic Duplicate Address Detection. It allows for 4762306a36Sopenharmony_ci autoconfigured addresses to be used more quickly. 4862306a36Sopenharmony_ci 4962306a36Sopenharmony_ci If unsure, say N. 5062306a36Sopenharmony_ci 5162306a36Sopenharmony_ciconfig INET6_AH 5262306a36Sopenharmony_ci tristate "IPv6: AH transformation" 5362306a36Sopenharmony_ci select XFRM_AH 5462306a36Sopenharmony_ci help 5562306a36Sopenharmony_ci Support for IPsec AH (Authentication Header). 5662306a36Sopenharmony_ci 5762306a36Sopenharmony_ci AH can be used with various authentication algorithms. Besides 5862306a36Sopenharmony_ci enabling AH support itself, this option enables the generic 5962306a36Sopenharmony_ci implementations of the algorithms that RFC 8221 lists as MUST be 6062306a36Sopenharmony_ci implemented. If you need any other algorithms, you'll need to enable 6162306a36Sopenharmony_ci them in the crypto API. You should also enable accelerated 6262306a36Sopenharmony_ci implementations of any needed algorithms when available. 6362306a36Sopenharmony_ci 6462306a36Sopenharmony_ci If unsure, say Y. 6562306a36Sopenharmony_ci 6662306a36Sopenharmony_ciconfig INET6_ESP 6762306a36Sopenharmony_ci tristate "IPv6: ESP transformation" 6862306a36Sopenharmony_ci select XFRM_ESP 6962306a36Sopenharmony_ci help 7062306a36Sopenharmony_ci Support for IPsec ESP (Encapsulating Security Payload). 7162306a36Sopenharmony_ci 7262306a36Sopenharmony_ci ESP can be used with various encryption and authentication algorithms. 7362306a36Sopenharmony_ci Besides enabling ESP support itself, this option enables the generic 7462306a36Sopenharmony_ci implementations of the algorithms that RFC 8221 lists as MUST be 7562306a36Sopenharmony_ci implemented. If you need any other algorithms, you'll need to enable 7662306a36Sopenharmony_ci them in the crypto API. You should also enable accelerated 7762306a36Sopenharmony_ci implementations of any needed algorithms when available. 7862306a36Sopenharmony_ci 7962306a36Sopenharmony_ci If unsure, say Y. 8062306a36Sopenharmony_ci 8162306a36Sopenharmony_ciconfig INET6_ESP_OFFLOAD 8262306a36Sopenharmony_ci tristate "IPv6: ESP transformation offload" 8362306a36Sopenharmony_ci depends on INET6_ESP 8462306a36Sopenharmony_ci select XFRM_OFFLOAD 8562306a36Sopenharmony_ci default n 8662306a36Sopenharmony_ci help 8762306a36Sopenharmony_ci Support for ESP transformation offload. This makes sense 8862306a36Sopenharmony_ci only if this system really does IPsec and want to do it 8962306a36Sopenharmony_ci with high throughput. A typical desktop system does not 9062306a36Sopenharmony_ci need it, even if it does IPsec. 9162306a36Sopenharmony_ci 9262306a36Sopenharmony_ci If unsure, say N. 9362306a36Sopenharmony_ci 9462306a36Sopenharmony_ciconfig INET6_ESPINTCP 9562306a36Sopenharmony_ci bool "IPv6: ESP in TCP encapsulation (RFC 8229)" 9662306a36Sopenharmony_ci depends on XFRM && INET6_ESP 9762306a36Sopenharmony_ci select STREAM_PARSER 9862306a36Sopenharmony_ci select NET_SOCK_MSG 9962306a36Sopenharmony_ci select XFRM_ESPINTCP 10062306a36Sopenharmony_ci help 10162306a36Sopenharmony_ci Support for RFC 8229 encapsulation of ESP and IKE over 10262306a36Sopenharmony_ci TCP/IPv6 sockets. 10362306a36Sopenharmony_ci 10462306a36Sopenharmony_ci If unsure, say N. 10562306a36Sopenharmony_ci 10662306a36Sopenharmony_ciconfig INET6_IPCOMP 10762306a36Sopenharmony_ci tristate "IPv6: IPComp transformation" 10862306a36Sopenharmony_ci select INET6_XFRM_TUNNEL 10962306a36Sopenharmony_ci select XFRM_IPCOMP 11062306a36Sopenharmony_ci help 11162306a36Sopenharmony_ci Support for IP Payload Compression Protocol (IPComp) (RFC3173), 11262306a36Sopenharmony_ci typically needed for IPsec. 11362306a36Sopenharmony_ci 11462306a36Sopenharmony_ci If unsure, say Y. 11562306a36Sopenharmony_ci 11662306a36Sopenharmony_ciconfig IPV6_MIP6 11762306a36Sopenharmony_ci tristate "IPv6: Mobility" 11862306a36Sopenharmony_ci select XFRM 11962306a36Sopenharmony_ci help 12062306a36Sopenharmony_ci Support for IPv6 Mobility described in RFC 3775. 12162306a36Sopenharmony_ci 12262306a36Sopenharmony_ci If unsure, say N. 12362306a36Sopenharmony_ci 12462306a36Sopenharmony_ciconfig IPV6_ILA 12562306a36Sopenharmony_ci tristate "IPv6: Identifier Locator Addressing (ILA)" 12662306a36Sopenharmony_ci depends on NETFILTER 12762306a36Sopenharmony_ci select DST_CACHE 12862306a36Sopenharmony_ci select LWTUNNEL 12962306a36Sopenharmony_ci help 13062306a36Sopenharmony_ci Support for IPv6 Identifier Locator Addressing (ILA). 13162306a36Sopenharmony_ci 13262306a36Sopenharmony_ci ILA is a mechanism to do network virtualization without 13362306a36Sopenharmony_ci encapsulation. The basic concept of ILA is that we split an 13462306a36Sopenharmony_ci IPv6 address into a 64 bit locator and 64 bit identifier. The 13562306a36Sopenharmony_ci identifier is the identity of an entity in communication 13662306a36Sopenharmony_ci ("who") and the locator expresses the location of the 13762306a36Sopenharmony_ci entity ("where"). 13862306a36Sopenharmony_ci 13962306a36Sopenharmony_ci ILA can be configured using the "encap ila" option with 14062306a36Sopenharmony_ci "ip -6 route" command. ILA is described in 14162306a36Sopenharmony_ci https://tools.ietf.org/html/draft-herbert-nvo3-ila-00. 14262306a36Sopenharmony_ci 14362306a36Sopenharmony_ci If unsure, say N. 14462306a36Sopenharmony_ci 14562306a36Sopenharmony_ciconfig INET6_XFRM_TUNNEL 14662306a36Sopenharmony_ci tristate 14762306a36Sopenharmony_ci select INET6_TUNNEL 14862306a36Sopenharmony_ci default n 14962306a36Sopenharmony_ci 15062306a36Sopenharmony_ciconfig INET6_TUNNEL 15162306a36Sopenharmony_ci tristate 15262306a36Sopenharmony_ci default n 15362306a36Sopenharmony_ci 15462306a36Sopenharmony_ciconfig IPV6_VTI 15562306a36Sopenharmony_ci tristate "Virtual (secure) IPv6: tunneling" 15662306a36Sopenharmony_ci select IPV6_TUNNEL 15762306a36Sopenharmony_ci select NET_IP_TUNNEL 15862306a36Sopenharmony_ci select XFRM 15962306a36Sopenharmony_ci help 16062306a36Sopenharmony_ci Tunneling means encapsulating data of one protocol type within 16162306a36Sopenharmony_ci another protocol and sending it over a channel that understands the 16262306a36Sopenharmony_ci encapsulating protocol. This can be used with xfrm mode tunnel to give 16362306a36Sopenharmony_ci the notion of a secure tunnel for IPSEC and then use routing protocol 16462306a36Sopenharmony_ci on top. 16562306a36Sopenharmony_ci 16662306a36Sopenharmony_ciconfig IPV6_SIT 16762306a36Sopenharmony_ci tristate "IPv6: IPv6-in-IPv4 tunnel (SIT driver)" 16862306a36Sopenharmony_ci select INET_TUNNEL 16962306a36Sopenharmony_ci select NET_IP_TUNNEL 17062306a36Sopenharmony_ci select IPV6_NDISC_NODETYPE 17162306a36Sopenharmony_ci default y 17262306a36Sopenharmony_ci help 17362306a36Sopenharmony_ci Tunneling means encapsulating data of one protocol type within 17462306a36Sopenharmony_ci another protocol and sending it over a channel that understands the 17562306a36Sopenharmony_ci encapsulating protocol. This driver implements encapsulation of IPv6 17662306a36Sopenharmony_ci into IPv4 packets. This is useful if you want to connect two IPv6 17762306a36Sopenharmony_ci networks over an IPv4-only path. 17862306a36Sopenharmony_ci 17962306a36Sopenharmony_ci Saying M here will produce a module called sit. If unsure, say Y. 18062306a36Sopenharmony_ci 18162306a36Sopenharmony_ciconfig IPV6_SIT_6RD 18262306a36Sopenharmony_ci bool "IPv6: IPv6 Rapid Deployment (6RD)" 18362306a36Sopenharmony_ci depends on IPV6_SIT 18462306a36Sopenharmony_ci default n 18562306a36Sopenharmony_ci help 18662306a36Sopenharmony_ci IPv6 Rapid Deployment (6rd; draft-ietf-softwire-ipv6-6rd) builds upon 18762306a36Sopenharmony_ci mechanisms of 6to4 (RFC3056) to enable a service provider to rapidly 18862306a36Sopenharmony_ci deploy IPv6 unicast service to IPv4 sites to which it provides 18962306a36Sopenharmony_ci customer premise equipment. Like 6to4, it utilizes stateless IPv6 in 19062306a36Sopenharmony_ci IPv4 encapsulation in order to transit IPv4-only network 19162306a36Sopenharmony_ci infrastructure. Unlike 6to4, a 6rd service provider uses an IPv6 19262306a36Sopenharmony_ci prefix of its own in place of the fixed 6to4 prefix. 19362306a36Sopenharmony_ci 19462306a36Sopenharmony_ci With this option enabled, the SIT driver offers 6rd functionality by 19562306a36Sopenharmony_ci providing additional ioctl API to configure the IPv6 Prefix for in 19662306a36Sopenharmony_ci stead of static 2002::/16 for 6to4. 19762306a36Sopenharmony_ci 19862306a36Sopenharmony_ci If unsure, say N. 19962306a36Sopenharmony_ci 20062306a36Sopenharmony_ciconfig IPV6_NDISC_NODETYPE 20162306a36Sopenharmony_ci bool 20262306a36Sopenharmony_ci 20362306a36Sopenharmony_ciconfig IPV6_TUNNEL 20462306a36Sopenharmony_ci tristate "IPv6: IP-in-IPv6 tunnel (RFC2473)" 20562306a36Sopenharmony_ci select INET6_TUNNEL 20662306a36Sopenharmony_ci select DST_CACHE 20762306a36Sopenharmony_ci select GRO_CELLS 20862306a36Sopenharmony_ci help 20962306a36Sopenharmony_ci Support for IPv6-in-IPv6 and IPv4-in-IPv6 tunnels described in 21062306a36Sopenharmony_ci RFC 2473. 21162306a36Sopenharmony_ci 21262306a36Sopenharmony_ci If unsure, say N. 21362306a36Sopenharmony_ci 21462306a36Sopenharmony_ciconfig IPV6_GRE 21562306a36Sopenharmony_ci tristate "IPv6: GRE tunnel" 21662306a36Sopenharmony_ci select IPV6_TUNNEL 21762306a36Sopenharmony_ci select NET_IP_TUNNEL 21862306a36Sopenharmony_ci depends on NET_IPGRE_DEMUX 21962306a36Sopenharmony_ci help 22062306a36Sopenharmony_ci Tunneling means encapsulating data of one protocol type within 22162306a36Sopenharmony_ci another protocol and sending it over a channel that understands the 22262306a36Sopenharmony_ci encapsulating protocol. This particular tunneling driver implements 22362306a36Sopenharmony_ci GRE (Generic Routing Encapsulation) and at this time allows 22462306a36Sopenharmony_ci encapsulating of IPv4 or IPv6 over existing IPv6 infrastructure. 22562306a36Sopenharmony_ci This driver is useful if the other endpoint is a Cisco router: Cisco 22662306a36Sopenharmony_ci likes GRE much better than the other Linux tunneling driver ("IP 22762306a36Sopenharmony_ci tunneling" above). In addition, GRE allows multicast redistribution 22862306a36Sopenharmony_ci through the tunnel. 22962306a36Sopenharmony_ci 23062306a36Sopenharmony_ci Saying M here will produce a module called ip6_gre. If unsure, say N. 23162306a36Sopenharmony_ci 23262306a36Sopenharmony_ciconfig IPV6_FOU 23362306a36Sopenharmony_ci tristate 23462306a36Sopenharmony_ci default NET_FOU && IPV6 23562306a36Sopenharmony_ci 23662306a36Sopenharmony_ciconfig IPV6_FOU_TUNNEL 23762306a36Sopenharmony_ci tristate 23862306a36Sopenharmony_ci default NET_FOU_IP_TUNNELS && IPV6_FOU 23962306a36Sopenharmony_ci select IPV6_TUNNEL 24062306a36Sopenharmony_ci 24162306a36Sopenharmony_ciconfig IPV6_MULTIPLE_TABLES 24262306a36Sopenharmony_ci bool "IPv6: Multiple Routing Tables" 24362306a36Sopenharmony_ci select FIB_RULES 24462306a36Sopenharmony_ci help 24562306a36Sopenharmony_ci Support multiple routing tables. 24662306a36Sopenharmony_ci 24762306a36Sopenharmony_ciconfig IPV6_SUBTREES 24862306a36Sopenharmony_ci bool "IPv6: source address based routing" 24962306a36Sopenharmony_ci depends on IPV6_MULTIPLE_TABLES 25062306a36Sopenharmony_ci help 25162306a36Sopenharmony_ci Enable routing by source address or prefix. 25262306a36Sopenharmony_ci 25362306a36Sopenharmony_ci The destination address is still the primary routing key, so mixing 25462306a36Sopenharmony_ci normal and source prefix specific routes in the same routing table 25562306a36Sopenharmony_ci may sometimes lead to unintended routing behavior. This can be 25662306a36Sopenharmony_ci avoided by defining different routing tables for the normal and 25762306a36Sopenharmony_ci source prefix specific routes. 25862306a36Sopenharmony_ci 25962306a36Sopenharmony_ci If unsure, say N. 26062306a36Sopenharmony_ci 26162306a36Sopenharmony_ciconfig IPV6_MROUTE 26262306a36Sopenharmony_ci bool "IPv6: multicast routing" 26362306a36Sopenharmony_ci depends on IPV6 26462306a36Sopenharmony_ci select IP_MROUTE_COMMON 26562306a36Sopenharmony_ci help 26662306a36Sopenharmony_ci Support for IPv6 multicast forwarding. 26762306a36Sopenharmony_ci If unsure, say N. 26862306a36Sopenharmony_ci 26962306a36Sopenharmony_ciconfig IPV6_MROUTE_MULTIPLE_TABLES 27062306a36Sopenharmony_ci bool "IPv6: multicast policy routing" 27162306a36Sopenharmony_ci depends on IPV6_MROUTE 27262306a36Sopenharmony_ci select FIB_RULES 27362306a36Sopenharmony_ci help 27462306a36Sopenharmony_ci Normally, a multicast router runs a userspace daemon and decides 27562306a36Sopenharmony_ci what to do with a multicast packet based on the source and 27662306a36Sopenharmony_ci destination addresses. If you say Y here, the multicast router 27762306a36Sopenharmony_ci will also be able to take interfaces and packet marks into 27862306a36Sopenharmony_ci account and run multiple instances of userspace daemons 27962306a36Sopenharmony_ci simultaneously, each one handling a single table. 28062306a36Sopenharmony_ci 28162306a36Sopenharmony_ci If unsure, say N. 28262306a36Sopenharmony_ci 28362306a36Sopenharmony_ciconfig IPV6_PIMSM_V2 28462306a36Sopenharmony_ci bool "IPv6: PIM-SM version 2 support" 28562306a36Sopenharmony_ci depends on IPV6_MROUTE 28662306a36Sopenharmony_ci help 28762306a36Sopenharmony_ci Support for IPv6 PIM multicast routing protocol PIM-SMv2. 28862306a36Sopenharmony_ci If unsure, say N. 28962306a36Sopenharmony_ci 29062306a36Sopenharmony_ciconfig IPV6_SEG6_LWTUNNEL 29162306a36Sopenharmony_ci bool "IPv6: Segment Routing Header encapsulation support" 29262306a36Sopenharmony_ci depends on IPV6 29362306a36Sopenharmony_ci select LWTUNNEL 29462306a36Sopenharmony_ci select DST_CACHE 29562306a36Sopenharmony_ci select IPV6_MULTIPLE_TABLES 29662306a36Sopenharmony_ci help 29762306a36Sopenharmony_ci Support for encapsulation of packets within an outer IPv6 29862306a36Sopenharmony_ci header and a Segment Routing Header using the lightweight 29962306a36Sopenharmony_ci tunnels mechanism. Also enable support for advanced local 30062306a36Sopenharmony_ci processing of SRv6 packets based on their active segment. 30162306a36Sopenharmony_ci 30262306a36Sopenharmony_ci If unsure, say N. 30362306a36Sopenharmony_ci 30462306a36Sopenharmony_ciconfig IPV6_SEG6_HMAC 30562306a36Sopenharmony_ci bool "IPv6: Segment Routing HMAC support" 30662306a36Sopenharmony_ci depends on IPV6 30762306a36Sopenharmony_ci select CRYPTO 30862306a36Sopenharmony_ci select CRYPTO_HMAC 30962306a36Sopenharmony_ci select CRYPTO_SHA1 31062306a36Sopenharmony_ci select CRYPTO_SHA256 31162306a36Sopenharmony_ci help 31262306a36Sopenharmony_ci Support for HMAC signature generation and verification 31362306a36Sopenharmony_ci of SR-enabled packets. 31462306a36Sopenharmony_ci 31562306a36Sopenharmony_ci If unsure, say N. 31662306a36Sopenharmony_ci 31762306a36Sopenharmony_ciconfig IPV6_SEG6_BPF 31862306a36Sopenharmony_ci def_bool y 31962306a36Sopenharmony_ci depends on IPV6_SEG6_LWTUNNEL 32062306a36Sopenharmony_ci depends on IPV6 = y 32162306a36Sopenharmony_ci 32262306a36Sopenharmony_ciconfig IPV6_RPL_LWTUNNEL 32362306a36Sopenharmony_ci bool "IPv6: RPL Source Routing Header support" 32462306a36Sopenharmony_ci depends on IPV6 32562306a36Sopenharmony_ci select LWTUNNEL 32662306a36Sopenharmony_ci help 32762306a36Sopenharmony_ci Support for RFC6554 RPL Source Routing Header using the lightweight 32862306a36Sopenharmony_ci tunnels mechanism. 32962306a36Sopenharmony_ci 33062306a36Sopenharmony_ci If unsure, say N. 33162306a36Sopenharmony_ci 33262306a36Sopenharmony_ciconfig IPV6_IOAM6_LWTUNNEL 33362306a36Sopenharmony_ci bool "IPv6: IOAM Pre-allocated Trace insertion support" 33462306a36Sopenharmony_ci depends on IPV6 33562306a36Sopenharmony_ci select LWTUNNEL 33662306a36Sopenharmony_ci select DST_CACHE 33762306a36Sopenharmony_ci help 33862306a36Sopenharmony_ci Support for the insertion of IOAM Pre-allocated Trace 33962306a36Sopenharmony_ci Header using the lightweight tunnels mechanism. 34062306a36Sopenharmony_ci 34162306a36Sopenharmony_ci If unsure, say N. 34262306a36Sopenharmony_ci 34362306a36Sopenharmony_ciendif # IPV6 344