1ec8f24b7SThomas Gleixner# SPDX-License-Identifier: GPL-2.0-only 21da177e4SLinus Torvalds# 31da177e4SLinus Torvalds# IPv6 configuration 41da177e4SLinus Torvalds# 56a2e9b73SSam Ravnborg 66a2e9b73SSam Ravnborg# IPv6 as module will cause a CRASH if you try to unload it 70b18542bSJan Engelhardtmenuconfig IPV6 86a2e9b73SSam Ravnborg tristate "The IPv6 protocol" 9de551f2eSTom Herbert default y 10ec8f7f48SEric Biggers select CRYPTO_LIB_SHA1 11a7f7f624SMasahiro Yamada help 12de551f2eSTom Herbert Support for IP version 6 (IPv6). 136a2e9b73SSam Ravnborg 146a2e9b73SSam Ravnborg For general information about IPv6, see 15242260fbSChristian Kujau <https://en.wikipedia.org/wiki/IPv6>. 16de551f2eSTom Herbert For specific information about IPv6 under Linux, see 1719093313SMauro Carvalho Chehab Documentation/networking/ipv6.rst and read the HOWTO at 187a6498ebSAlexander A. Klimov <https://www.tldp.org/HOWTO/Linux+IPv6-HOWTO/> 196a2e9b73SSam Ravnborg 206a2e9b73SSam Ravnborg To compile this protocol support as a module, choose M here: the 216a2e9b73SSam Ravnborg module will be called ipv6. 226a2e9b73SSam Ravnborg 230b18542bSJan Engelhardtif IPV6 240b18542bSJan Engelhardt 25ebacaaa0SYOSHIFUJI Hideakiconfig IPV6_ROUTER_PREF 26ebacaaa0SYOSHIFUJI Hideaki bool "IPv6: Router Preference (RFC 4191) support" 27a7f7f624SMasahiro Yamada help 28ebacaaa0SYOSHIFUJI Hideaki Router Preference is an optional extension to the Router 29692105b8SMatt LaPlante Advertisement message which improves the ability of hosts 30692105b8SMatt LaPlante to pick an appropriate router, especially when the hosts 31692105b8SMatt LaPlante are placed in a multi-homed network. 32ebacaaa0SYOSHIFUJI Hideaki 33ebacaaa0SYOSHIFUJI Hideaki If unsure, say N. 34ebacaaa0SYOSHIFUJI Hideaki 3570ceb4f5SYOSHIFUJI Hideakiconfig IPV6_ROUTE_INFO 36f9ceb16eSKees Cook bool "IPv6: Route Information (RFC 4191) support" 37f9ceb16eSKees Cook depends on IPV6_ROUTER_PREF 38a7f7f624SMasahiro Yamada help 39a9f71d0dSGeorg Hofmann Support of Route Information. 4070ceb4f5SYOSHIFUJI Hideaki 4170ceb4f5SYOSHIFUJI Hideaki If unsure, say N. 4270ceb4f5SYOSHIFUJI Hideaki 4395c385b4SNeil Hormanconfig IPV6_OPTIMISTIC_DAD 44f9ceb16eSKees Cook bool "IPv6: Enable RFC 4429 Optimistic DAD" 45a7f7f624SMasahiro Yamada help 46a9f71d0dSGeorg Hofmann Support for optimistic Duplicate Address Detection. It allows for 47a9f71d0dSGeorg Hofmann autoconfigured addresses to be used more quickly. 4895c385b4SNeil Horman 4995c385b4SNeil Horman If unsure, say N. 5095c385b4SNeil Horman 511da177e4SLinus Torvaldsconfig INET6_AH 521da177e4SLinus Torvalds tristate "IPv6: AH transformation" 537d4e3919SEric Biggers select XFRM_AH 54a7f7f624SMasahiro Yamada help 55be013698SEric Biggers Support for IPsec AH (Authentication Header). 56be013698SEric Biggers 57be013698SEric Biggers AH can be used with various authentication algorithms. Besides 58be013698SEric Biggers enabling AH support itself, this option enables the generic 59be013698SEric Biggers implementations of the algorithms that RFC 8221 lists as MUST be 60be013698SEric Biggers implemented. If you need any other algorithms, you'll need to enable 61be013698SEric Biggers them in the crypto API. You should also enable accelerated 62be013698SEric Biggers implementations of any needed algorithms when available. 631da177e4SLinus Torvalds 641da177e4SLinus Torvalds If unsure, say Y. 651da177e4SLinus Torvalds 661da177e4SLinus Torvaldsconfig INET6_ESP 671da177e4SLinus Torvalds tristate "IPv6: ESP transformation" 687d4e3919SEric Biggers select XFRM_ESP 69a7f7f624SMasahiro Yamada help 70be013698SEric Biggers Support for IPsec ESP (Encapsulating Security Payload). 71be013698SEric Biggers 72be013698SEric Biggers ESP can be used with various encryption and authentication algorithms. 73be013698SEric Biggers Besides enabling ESP support itself, this option enables the generic 74be013698SEric Biggers implementations of the algorithms that RFC 8221 lists as MUST be 75be013698SEric Biggers implemented. If you need any other algorithms, you'll need to enable 76be013698SEric Biggers them in the crypto API. You should also enable accelerated 77be013698SEric Biggers implementations of any needed algorithms when available. 781da177e4SLinus Torvalds 791da177e4SLinus Torvalds If unsure, say Y. 801da177e4SLinus Torvalds 817785bba2SSteffen Klassertconfig INET6_ESP_OFFLOAD 827785bba2SSteffen Klassert tristate "IPv6: ESP transformation offload" 837785bba2SSteffen Klassert depends on INET6_ESP 847785bba2SSteffen Klassert select XFRM_OFFLOAD 857785bba2SSteffen Klassert default n 86a7f7f624SMasahiro Yamada help 877785bba2SSteffen Klassert Support for ESP transformation offload. This makes sense 887785bba2SSteffen Klassert only if this system really does IPsec and want to do it 897785bba2SSteffen Klassert with high throughput. A typical desktop system does not 907785bba2SSteffen Klassert need it, even if it does IPsec. 917785bba2SSteffen Klassert 927785bba2SSteffen Klassert If unsure, say N. 937785bba2SSteffen Klassert 9426333c37SSabrina Dubrocaconfig INET6_ESPINTCP 9526333c37SSabrina Dubroca bool "IPv6: ESP in TCP encapsulation (RFC 8229)" 9626333c37SSabrina Dubroca depends on XFRM && INET6_ESP 9726333c37SSabrina Dubroca select STREAM_PARSER 9826333c37SSabrina Dubroca select NET_SOCK_MSG 9926333c37SSabrina Dubroca select XFRM_ESPINTCP 10026333c37SSabrina Dubroca help 10126333c37SSabrina Dubroca Support for RFC 8229 encapsulation of ESP and IKE over 10226333c37SSabrina Dubroca TCP/IPv6 sockets. 10326333c37SSabrina Dubroca 10426333c37SSabrina Dubroca If unsure, say N. 10526333c37SSabrina Dubroca 1061da177e4SLinus Torvaldsconfig INET6_IPCOMP 1071da177e4SLinus Torvalds tristate "IPv6: IPComp transformation" 108d2acc347SHerbert Xu select INET6_XFRM_TUNNEL 1096fccab67SHerbert Xu select XFRM_IPCOMP 110a7f7f624SMasahiro Yamada help 1111da177e4SLinus Torvalds Support for IP Payload Compression Protocol (IPComp) (RFC3173), 1121da177e4SLinus Torvalds typically needed for IPsec. 1131da177e4SLinus Torvalds 1141da177e4SLinus Torvalds If unsure, say Y. 1151da177e4SLinus Torvalds 116ee538268SMasahide NAKAMURAconfig IPV6_MIP6 117f9ceb16eSKees Cook tristate "IPv6: Mobility" 118ee538268SMasahide NAKAMURA select XFRM 119a7f7f624SMasahiro Yamada help 120ee538268SMasahide NAKAMURA Support for IPv6 Mobility described in RFC 3775. 121ee538268SMasahide NAKAMURA 122ee538268SMasahide NAKAMURA If unsure, say N. 123ee538268SMasahide NAKAMURA 12465d7ab8dSTom Herbertconfig IPV6_ILA 12565d7ab8dSTom Herbert tristate "IPv6: Identifier Locator Addressing (ILA)" 1268cb964daSArnd Bergmann depends on NETFILTER 12783ed7d1fSArnd Bergmann select DST_CACHE 12865d7ab8dSTom Herbert select LWTUNNEL 129a7f7f624SMasahiro Yamada help 13065d7ab8dSTom Herbert Support for IPv6 Identifier Locator Addressing (ILA). 13165d7ab8dSTom Herbert 13265d7ab8dSTom Herbert ILA is a mechanism to do network virtualization without 13365d7ab8dSTom Herbert encapsulation. The basic concept of ILA is that we split an 13465d7ab8dSTom Herbert IPv6 address into a 64 bit locator and 64 bit identifier. The 13565d7ab8dSTom Herbert identifier is the identity of an entity in communication 13665d7ab8dSTom Herbert ("who") and the locator expresses the location of the 13765d7ab8dSTom Herbert entity ("where"). 13865d7ab8dSTom Herbert 13965d7ab8dSTom Herbert ILA can be configured using the "encap ila" option with 14065d7ab8dSTom Herbert "ip -6 route" command. ILA is described in 14165d7ab8dSTom Herbert https://tools.ietf.org/html/draft-herbert-nvo3-ila-00. 14265d7ab8dSTom Herbert 14365d7ab8dSTom Herbert If unsure, say N. 14465d7ab8dSTom Herbert 145d2acc347SHerbert Xuconfig INET6_XFRM_TUNNEL 146d2acc347SHerbert Xu tristate 147d2acc347SHerbert Xu select INET6_TUNNEL 148d2acc347SHerbert Xu default n 1491da177e4SLinus Torvalds 150d2acc347SHerbert Xuconfig INET6_TUNNEL 151d2acc347SHerbert Xu tristate 152d2acc347SHerbert Xu default n 1531da177e4SLinus Torvalds 154ed1efb2aSSteffen Klassertconfig IPV6_VTI 155ed1efb2aSSteffen Klassert tristate "Virtual (secure) IPv6: tunneling" 156ed1efb2aSSteffen Klassert select IPV6_TUNNEL 157876fc03aSSteffen Klassert select NET_IP_TUNNEL 1584c145dceSFlorian Westphal select XFRM 159a7f7f624SMasahiro Yamada help 160ed1efb2aSSteffen Klassert Tunneling means encapsulating data of one protocol type within 161ed1efb2aSSteffen Klassert another protocol and sending it over a channel that understands the 162ed1efb2aSSteffen Klassert encapsulating protocol. This can be used with xfrm mode tunnel to give 163ed1efb2aSSteffen Klassert the notion of a secure tunnel for IPSEC and then use routing protocol 164ed1efb2aSSteffen Klassert on top. 165ed1efb2aSSteffen Klassert 166989e5b96SJoerg Roedelconfig IPV6_SIT 167989e5b96SJoerg Roedel tristate "IPv6: IPv6-in-IPv4 tunnel (SIT driver)" 168c73cb5a2SKazunori MIYAZAWA select INET_TUNNEL 169f61dd388SPravin B Shelar select NET_IP_TUNNEL 170de357cc0SYOSHIFUJI Hideaki select IPV6_NDISC_NODETYPE 171989e5b96SJoerg Roedel default y 172a7f7f624SMasahiro Yamada help 173989e5b96SJoerg Roedel Tunneling means encapsulating data of one protocol type within 174989e5b96SJoerg Roedel another protocol and sending it over a channel that understands the 175989e5b96SJoerg Roedel encapsulating protocol. This driver implements encapsulation of IPv6 1765c5d6dabSDavid S. Miller into IPv4 packets. This is useful if you want to connect two IPv6 177989e5b96SJoerg Roedel networks over an IPv4-only path. 178989e5b96SJoerg Roedel 1794737f097SPavel Machek Saying M here will produce a module called sit. If unsure, say Y. 180989e5b96SJoerg Roedel 181fa857afcSYOSHIFUJI Hideaki / 吉藤英明config IPV6_SIT_6RD 182f9ceb16eSKees Cook bool "IPv6: IPv6 Rapid Deployment (6RD)" 183f9ceb16eSKees Cook depends on IPV6_SIT 184fa857afcSYOSHIFUJI Hideaki / 吉藤英明 default n 185a7f7f624SMasahiro Yamada help 186fa857afcSYOSHIFUJI Hideaki / 吉藤英明 IPv6 Rapid Deployment (6rd; draft-ietf-softwire-ipv6-6rd) builds upon 187fa857afcSYOSHIFUJI Hideaki / 吉藤英明 mechanisms of 6to4 (RFC3056) to enable a service provider to rapidly 188fa857afcSYOSHIFUJI Hideaki / 吉藤英明 deploy IPv6 unicast service to IPv4 sites to which it provides 189fa857afcSYOSHIFUJI Hideaki / 吉藤英明 customer premise equipment. Like 6to4, it utilizes stateless IPv6 in 190fa857afcSYOSHIFUJI Hideaki / 吉藤英明 IPv4 encapsulation in order to transit IPv4-only network 191fa857afcSYOSHIFUJI Hideaki / 吉藤英明 infrastructure. Unlike 6to4, a 6rd service provider uses an IPv6 192fa857afcSYOSHIFUJI Hideaki / 吉藤英明 prefix of its own in place of the fixed 6to4 prefix. 193fa857afcSYOSHIFUJI Hideaki / 吉藤英明 194fa857afcSYOSHIFUJI Hideaki / 吉藤英明 With this option enabled, the SIT driver offers 6rd functionality by 195fa857afcSYOSHIFUJI Hideaki / 吉藤英明 providing additional ioctl API to configure the IPv6 Prefix for in 196fa857afcSYOSHIFUJI Hideaki / 吉藤英明 stead of static 2002::/16 for 6to4. 197fa857afcSYOSHIFUJI Hideaki / 吉藤英明 198fa857afcSYOSHIFUJI Hideaki / 吉藤英明 If unsure, say N. 199fa857afcSYOSHIFUJI Hideaki / 吉藤英明 200de357cc0SYOSHIFUJI Hideakiconfig IPV6_NDISC_NODETYPE 201de357cc0SYOSHIFUJI Hideaki bool 202de357cc0SYOSHIFUJI Hideaki 2031da177e4SLinus Torvaldsconfig IPV6_TUNNEL 20438fe999eSYOSHIFUJI Hideaki tristate "IPv6: IP-in-IPv6 tunnel (RFC2473)" 205d2acc347SHerbert Xu select INET6_TUNNEL 206607f725fSPaolo Abeni select DST_CACHE 20797e219b7SEric Dumazet select GRO_CELLS 208a7f7f624SMasahiro Yamada help 20938fe999eSYOSHIFUJI Hideaki Support for IPv6-in-IPv6 and IPv4-in-IPv6 tunnels described in 21038fe999eSYOSHIFUJI Hideaki RFC 2473. 2111da177e4SLinus Torvalds 2121da177e4SLinus Torvalds If unsure, say N. 2131da177e4SLinus Torvalds 214c12b395aSxeb@mail.ruconfig IPV6_GRE 215c12b395aSxeb@mail.ru tristate "IPv6: GRE tunnel" 216c12b395aSxeb@mail.ru select IPV6_TUNNEL 217f61dd388SPravin B Shelar select NET_IP_TUNNEL 2188bf42e9eSArnd Bergmann depends on NET_IPGRE_DEMUX 219a7f7f624SMasahiro Yamada help 220c12b395aSxeb@mail.ru Tunneling means encapsulating data of one protocol type within 221c12b395aSxeb@mail.ru another protocol and sending it over a channel that understands the 222c12b395aSxeb@mail.ru encapsulating protocol. This particular tunneling driver implements 223c12b395aSxeb@mail.ru GRE (Generic Routing Encapsulation) and at this time allows 224c12b395aSxeb@mail.ru encapsulating of IPv4 or IPv6 over existing IPv6 infrastructure. 225c12b395aSxeb@mail.ru This driver is useful if the other endpoint is a Cisco router: Cisco 226c12b395aSxeb@mail.ru likes GRE much better than the other Linux tunneling driver ("IP 227c12b395aSxeb@mail.ru tunneling" above). In addition, GRE allows multicast redistribution 228c12b395aSxeb@mail.ru through the tunnel. 229c12b395aSxeb@mail.ru 230c12b395aSxeb@mail.ru Saying M here will produce a module called ip6_gre. If unsure, say N. 231c12b395aSxeb@mail.ru 232fabb13dbSArnd Bergmannconfig IPV6_FOU 233fabb13dbSArnd Bergmann tristate 234fabb13dbSArnd Bergmann default NET_FOU && IPV6 235fabb13dbSArnd Bergmann 236fabb13dbSArnd Bergmannconfig IPV6_FOU_TUNNEL 237fabb13dbSArnd Bergmann tristate 238fabb13dbSArnd Bergmann default NET_FOU_IP_TUNNELS && IPV6_FOU 23995e4daa8SArnd Bergmann select IPV6_TUNNEL 240fabb13dbSArnd Bergmann 241264e91b6SVille Nuorvalaconfig IPV6_MULTIPLE_TABLES 242264e91b6SVille Nuorvala bool "IPv6: Multiple Routing Tables" 243264e91b6SVille Nuorvala select FIB_RULES 244a7f7f624SMasahiro Yamada help 245264e91b6SVille Nuorvala Support multiple routing tables. 246264e91b6SVille Nuorvala 2474e96c2b4SYOSHIFUJI Hideakiconfig IPV6_SUBTREES 2484e96c2b4SYOSHIFUJI Hideaki bool "IPv6: source address based routing" 249264e91b6SVille Nuorvala depends on IPV6_MULTIPLE_TABLES 250a7f7f624SMasahiro Yamada help 2514e96c2b4SYOSHIFUJI Hideaki Enable routing by source address or prefix. 2524e96c2b4SYOSHIFUJI Hideaki 2534e96c2b4SYOSHIFUJI Hideaki The destination address is still the primary routing key, so mixing 2544e96c2b4SYOSHIFUJI Hideaki normal and source prefix specific routes in the same routing table 2554e96c2b4SYOSHIFUJI Hideaki may sometimes lead to unintended routing behavior. This can be 2564e96c2b4SYOSHIFUJI Hideaki avoided by defining different routing tables for the normal and 2574e96c2b4SYOSHIFUJI Hideaki source prefix specific routes. 2584e96c2b4SYOSHIFUJI Hideaki 2594e96c2b4SYOSHIFUJI Hideaki If unsure, say N. 2604e96c2b4SYOSHIFUJI Hideaki 2617bc570c8SYOSHIFUJI Hideakiconfig IPV6_MROUTE 262f9ceb16eSKees Cook bool "IPv6: multicast routing" 263f9ceb16eSKees Cook depends on IPV6 2646853f21fSYuval Mintz select IP_MROUTE_COMMON 265a7f7f624SMasahiro Yamada help 266a9f71d0dSGeorg Hofmann Support for IPv6 multicast forwarding. 2677bc570c8SYOSHIFUJI Hideaki If unsure, say N. 2687bc570c8SYOSHIFUJI Hideaki 269d1db275dSPatrick McHardyconfig IPV6_MROUTE_MULTIPLE_TABLES 270d1db275dSPatrick McHardy bool "IPv6: multicast policy routing" 271d1db275dSPatrick McHardy depends on IPV6_MROUTE 272d1db275dSPatrick McHardy select FIB_RULES 273d1db275dSPatrick McHardy help 274d1db275dSPatrick McHardy Normally, a multicast router runs a userspace daemon and decides 275d1db275dSPatrick McHardy what to do with a multicast packet based on the source and 276d1db275dSPatrick McHardy destination addresses. If you say Y here, the multicast router 277d1db275dSPatrick McHardy will also be able to take interfaces and packet marks into 278d1db275dSPatrick McHardy account and run multiple instances of userspace daemons 279d1db275dSPatrick McHardy simultaneously, each one handling a single table. 280d1db275dSPatrick McHardy 281d1db275dSPatrick McHardy If unsure, say N. 282d1db275dSPatrick McHardy 28314fb64e1SYOSHIFUJI Hideakiconfig IPV6_PIMSM_V2 284f9ceb16eSKees Cook bool "IPv6: PIM-SM version 2 support" 28514fb64e1SYOSHIFUJI Hideaki depends on IPV6_MROUTE 286a7f7f624SMasahiro Yamada help 28714fb64e1SYOSHIFUJI Hideaki Support for IPv6 PIM multicast routing protocol PIM-SMv2. 28814fb64e1SYOSHIFUJI Hideaki If unsure, say N. 28914fb64e1SYOSHIFUJI Hideaki 29046738b13SDavid Lebrunconfig IPV6_SEG6_LWTUNNEL 29146738b13SDavid Lebrun bool "IPv6: Segment Routing Header encapsulation support" 29246738b13SDavid Lebrun depends on IPV6 29346738b13SDavid Lebrun select LWTUNNEL 294402a5bc4SDavid Lebrun select DST_CACHE 295d7a669ddSDavid Lebrun select IPV6_MULTIPLE_TABLES 296a7f7f624SMasahiro Yamada help 29746738b13SDavid Lebrun Support for encapsulation of packets within an outer IPv6 29846738b13SDavid Lebrun header and a Segment Routing Header using the lightweight 299d1df6fd8SDavid Lebrun tunnels mechanism. Also enable support for advanced local 300d1df6fd8SDavid Lebrun processing of SRv6 packets based on their active segment. 30146738b13SDavid Lebrun 30246738b13SDavid Lebrun If unsure, say N. 30346738b13SDavid Lebrun 304bf355b8dSDavid Lebrunconfig IPV6_SEG6_HMAC 305bf355b8dSDavid Lebrun bool "IPv6: Segment Routing HMAC support" 306bf355b8dSDavid Lebrun depends on IPV6 307db7cd91aSNecip Fazil Yildiran select CRYPTO 308bf355b8dSDavid Lebrun select CRYPTO_HMAC 309bf355b8dSDavid Lebrun select CRYPTO_SHA1 310bf355b8dSDavid Lebrun select CRYPTO_SHA256 311a7f7f624SMasahiro Yamada help 312bf355b8dSDavid Lebrun Support for HMAC signature generation and verification 313bf355b8dSDavid Lebrun of SR-enabled packets. 314bf355b8dSDavid Lebrun 315bf355b8dSDavid Lebrun If unsure, say N. 316bf355b8dSDavid Lebrun 317fe94cc29SMathieu Xhonneuxconfig IPV6_SEG6_BPF 318fe94cc29SMathieu Xhonneux def_bool y 319fe94cc29SMathieu Xhonneux depends on IPV6_SEG6_LWTUNNEL 320fe94cc29SMathieu Xhonneux depends on IPV6 = y 321fe94cc29SMathieu Xhonneux 322a7a29f9cSAlexander Aringconfig IPV6_RPL_LWTUNNEL 323a7a29f9cSAlexander Aring bool "IPv6: RPL Source Routing Header support" 324a7a29f9cSAlexander Aring depends on IPV6 325a7a29f9cSAlexander Aring select LWTUNNEL 326*88297d3cSThomas Weißschuh select DST_CACHE 327a7f7f624SMasahiro Yamada help 328a7a29f9cSAlexander Aring Support for RFC6554 RPL Source Routing Header using the lightweight 329a7a29f9cSAlexander Aring tunnels mechanism. 330a7a29f9cSAlexander Aring 331a7a29f9cSAlexander Aring If unsure, say N. 332a7a29f9cSAlexander Aring 3333edede08SJustin Iurmanconfig IPV6_IOAM6_LWTUNNEL 3343edede08SJustin Iurman bool "IPv6: IOAM Pre-allocated Trace insertion support" 3353edede08SJustin Iurman depends on IPV6 3363edede08SJustin Iurman select LWTUNNEL 3378cb3bf8bSJustin Iurman select DST_CACHE 3383edede08SJustin Iurman help 3398cb3bf8bSJustin Iurman Support for the insertion of IOAM Pre-allocated Trace 3408cb3bf8bSJustin Iurman Header using the lightweight tunnels mechanism. 3413edede08SJustin Iurman 3423edede08SJustin Iurman If unsure, say N. 3433edede08SJustin Iurman 3440b18542bSJan Engelhardtendif # IPV6 345