xref: /openbmc/linux/net/ipv6/Kconfig (revision a7a29f9c)
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
106a2e9b73SSam Ravnborg	---help---
11de551f2eSTom Herbert	  Support for IP version 6 (IPv6).
126a2e9b73SSam Ravnborg
136a2e9b73SSam Ravnborg	  For general information about IPv6, see
14242260fbSChristian Kujau	  <https://en.wikipedia.org/wiki/IPv6>.
15de551f2eSTom Herbert	  For specific information about IPv6 under Linux, see
16de551f2eSTom Herbert	  Documentation/networking/ipv6.txt and read the HOWTO at
17de551f2eSTom Herbert	  <http://www.tldp.org/HOWTO/Linux+IPv6-HOWTO/>
186a2e9b73SSam Ravnborg
196a2e9b73SSam Ravnborg	  To compile this protocol support as a module, choose M here: the
206a2e9b73SSam Ravnborg	  module will be called ipv6.
216a2e9b73SSam Ravnborg
220b18542bSJan Engelhardtif IPV6
230b18542bSJan Engelhardt
24ebacaaa0SYOSHIFUJI Hideakiconfig IPV6_ROUTER_PREF
25ebacaaa0SYOSHIFUJI Hideaki	bool "IPv6: Router Preference (RFC 4191) support"
26ebacaaa0SYOSHIFUJI Hideaki	---help---
27ebacaaa0SYOSHIFUJI Hideaki	  Router Preference is an optional extension to the Router
28692105b8SMatt LaPlante	  Advertisement message which improves the ability of hosts
29692105b8SMatt LaPlante	  to pick an appropriate router, especially when the hosts
30692105b8SMatt LaPlante	  are placed in a multi-homed network.
31ebacaaa0SYOSHIFUJI Hideaki
32ebacaaa0SYOSHIFUJI Hideaki	  If unsure, say N.
33ebacaaa0SYOSHIFUJI Hideaki
3470ceb4f5SYOSHIFUJI Hideakiconfig IPV6_ROUTE_INFO
35f9ceb16eSKees Cook	bool "IPv6: Route Information (RFC 4191) support"
36f9ceb16eSKees Cook	depends on IPV6_ROUTER_PREF
3770ceb4f5SYOSHIFUJI Hideaki	---help---
38a9f71d0dSGeorg Hofmann	  Support of Route Information.
3970ceb4f5SYOSHIFUJI Hideaki
4070ceb4f5SYOSHIFUJI Hideaki	  If unsure, say N.
4170ceb4f5SYOSHIFUJI Hideaki
4295c385b4SNeil Hormanconfig IPV6_OPTIMISTIC_DAD
43f9ceb16eSKees Cook	bool "IPv6: Enable RFC 4429 Optimistic DAD"
4495c385b4SNeil Horman	---help---
45a9f71d0dSGeorg Hofmann	  Support for optimistic Duplicate Address Detection. It allows for
46a9f71d0dSGeorg Hofmann	  autoconfigured addresses to be used more quickly.
4795c385b4SNeil Horman
4895c385b4SNeil Horman	  If unsure, say N.
4995c385b4SNeil Horman
501da177e4SLinus Torvaldsconfig INET6_AH
511da177e4SLinus Torvalds	tristate "IPv6: AH transformation"
527e152524SJan Beulich	select XFRM_ALGO
531da177e4SLinus Torvalds	select CRYPTO
541da177e4SLinus Torvalds	select CRYPTO_HMAC
551da177e4SLinus Torvalds	select CRYPTO_MD5
561da177e4SLinus Torvalds	select CRYPTO_SHA1
571da177e4SLinus Torvalds	---help---
581da177e4SLinus Torvalds	  Support for IPsec AH.
591da177e4SLinus Torvalds
601da177e4SLinus Torvalds	  If unsure, say Y.
611da177e4SLinus Torvalds
621da177e4SLinus Torvaldsconfig INET6_ESP
631da177e4SLinus Torvalds	tristate "IPv6: ESP transformation"
647e152524SJan Beulich	select XFRM_ALGO
651da177e4SLinus Torvalds	select CRYPTO
66ed58dd41SHerbert Xu	select CRYPTO_AUTHENC
671da177e4SLinus Torvalds	select CRYPTO_HMAC
681da177e4SLinus Torvalds	select CRYPTO_MD5
696b7326c8SHerbert Xu	select CRYPTO_CBC
701da177e4SLinus Torvalds	select CRYPTO_SHA1
711da177e4SLinus Torvalds	select CRYPTO_DES
7232b6170cSThomas Egerer	select CRYPTO_ECHAINIV
731da177e4SLinus Torvalds	---help---
741da177e4SLinus Torvalds	  Support for IPsec ESP.
751da177e4SLinus Torvalds
761da177e4SLinus Torvalds	  If unsure, say Y.
771da177e4SLinus Torvalds
787785bba2SSteffen Klassertconfig INET6_ESP_OFFLOAD
797785bba2SSteffen Klassert	tristate "IPv6: ESP transformation offload"
807785bba2SSteffen Klassert	depends on INET6_ESP
817785bba2SSteffen Klassert	select XFRM_OFFLOAD
827785bba2SSteffen Klassert	default n
837785bba2SSteffen Klassert	---help---
847785bba2SSteffen Klassert	  Support for ESP transformation offload. This makes sense
857785bba2SSteffen Klassert	  only if this system really does IPsec and want to do it
867785bba2SSteffen Klassert	  with high throughput. A typical desktop system does not
877785bba2SSteffen Klassert	  need it, even if it does IPsec.
887785bba2SSteffen Klassert
897785bba2SSteffen Klassert	  If unsure, say N.
907785bba2SSteffen Klassert
911da177e4SLinus Torvaldsconfig INET6_IPCOMP
921da177e4SLinus Torvalds	tristate "IPv6: IPComp transformation"
93d2acc347SHerbert Xu	select INET6_XFRM_TUNNEL
946fccab67SHerbert Xu	select XFRM_IPCOMP
951da177e4SLinus Torvalds	---help---
961da177e4SLinus Torvalds	  Support for IP Payload Compression Protocol (IPComp) (RFC3173),
971da177e4SLinus Torvalds	  typically needed for IPsec.
981da177e4SLinus Torvalds
991da177e4SLinus Torvalds	  If unsure, say Y.
1001da177e4SLinus Torvalds
101ee538268SMasahide NAKAMURAconfig IPV6_MIP6
102f9ceb16eSKees Cook	tristate "IPv6: Mobility"
103ee538268SMasahide NAKAMURA	select XFRM
104ee538268SMasahide NAKAMURA	---help---
105ee538268SMasahide NAKAMURA	  Support for IPv6 Mobility described in RFC 3775.
106ee538268SMasahide NAKAMURA
107ee538268SMasahide NAKAMURA	  If unsure, say N.
108ee538268SMasahide NAKAMURA
10965d7ab8dSTom Herbertconfig IPV6_ILA
11065d7ab8dSTom Herbert	tristate "IPv6: Identifier Locator Addressing (ILA)"
1118cb964daSArnd Bergmann	depends on NETFILTER
11283ed7d1fSArnd Bergmann	select DST_CACHE
11365d7ab8dSTom Herbert	select LWTUNNEL
11465d7ab8dSTom Herbert	---help---
11565d7ab8dSTom Herbert	  Support for IPv6 Identifier Locator Addressing (ILA).
11665d7ab8dSTom Herbert
11765d7ab8dSTom Herbert	  ILA is a mechanism to do network virtualization without
11865d7ab8dSTom Herbert	  encapsulation. The basic concept of ILA is that we split an
11965d7ab8dSTom Herbert	  IPv6 address into a 64 bit locator and 64 bit identifier. The
12065d7ab8dSTom Herbert	  identifier is the identity of an entity in communication
12165d7ab8dSTom Herbert	  ("who") and the locator expresses the location of the
12265d7ab8dSTom Herbert	  entity ("where").
12365d7ab8dSTom Herbert
12465d7ab8dSTom Herbert	  ILA can be configured using the "encap ila" option with
12565d7ab8dSTom Herbert	  "ip -6 route" command. ILA is described in
12665d7ab8dSTom Herbert	  https://tools.ietf.org/html/draft-herbert-nvo3-ila-00.
12765d7ab8dSTom Herbert
12865d7ab8dSTom Herbert	  If unsure, say N.
12965d7ab8dSTom Herbert
130d2acc347SHerbert Xuconfig INET6_XFRM_TUNNEL
131d2acc347SHerbert Xu	tristate
132d2acc347SHerbert Xu	select INET6_TUNNEL
133d2acc347SHerbert Xu	default n
1341da177e4SLinus Torvalds
135d2acc347SHerbert Xuconfig INET6_TUNNEL
136d2acc347SHerbert Xu	tristate
137d2acc347SHerbert Xu	default n
1381da177e4SLinus Torvalds
139ed1efb2aSSteffen Klassertconfig IPV6_VTI
140ed1efb2aSSteffen Klasserttristate "Virtual (secure) IPv6: tunneling"
141ed1efb2aSSteffen Klassert	select IPV6_TUNNEL
142876fc03aSSteffen Klassert	select NET_IP_TUNNEL
1434c145dceSFlorian Westphal	select XFRM
144ed1efb2aSSteffen Klassert	---help---
145ed1efb2aSSteffen Klassert	Tunneling means encapsulating data of one protocol type within
146ed1efb2aSSteffen Klassert	another protocol and sending it over a channel that understands the
147ed1efb2aSSteffen Klassert	encapsulating protocol. This can be used with xfrm mode tunnel to give
148ed1efb2aSSteffen Klassert	the notion of a secure tunnel for IPSEC and then use routing protocol
149ed1efb2aSSteffen Klassert	on top.
150ed1efb2aSSteffen Klassert
151989e5b96SJoerg Roedelconfig IPV6_SIT
152989e5b96SJoerg Roedel	tristate "IPv6: IPv6-in-IPv4 tunnel (SIT driver)"
153c73cb5a2SKazunori MIYAZAWA	select INET_TUNNEL
154f61dd388SPravin B Shelar	select NET_IP_TUNNEL
155de357cc0SYOSHIFUJI Hideaki	select IPV6_NDISC_NODETYPE
156989e5b96SJoerg Roedel	default y
157989e5b96SJoerg Roedel	---help---
158989e5b96SJoerg Roedel	  Tunneling means encapsulating data of one protocol type within
159989e5b96SJoerg Roedel	  another protocol and sending it over a channel that understands the
160989e5b96SJoerg Roedel	  encapsulating protocol. This driver implements encapsulation of IPv6
1615c5d6dabSDavid S. Miller	  into IPv4 packets. This is useful if you want to connect two IPv6
162989e5b96SJoerg Roedel	  networks over an IPv4-only path.
163989e5b96SJoerg Roedel
1644737f097SPavel Machek	  Saying M here will produce a module called sit. If unsure, say Y.
165989e5b96SJoerg Roedel
166fa857afcSYOSHIFUJI Hideaki / 吉藤英明config IPV6_SIT_6RD
167f9ceb16eSKees Cook	bool "IPv6: IPv6 Rapid Deployment (6RD)"
168f9ceb16eSKees Cook	depends on IPV6_SIT
169fa857afcSYOSHIFUJI Hideaki / 吉藤英明	default n
170fa857afcSYOSHIFUJI Hideaki / 吉藤英明	---help---
171fa857afcSYOSHIFUJI Hideaki / 吉藤英明	  IPv6 Rapid Deployment (6rd; draft-ietf-softwire-ipv6-6rd) builds upon
172fa857afcSYOSHIFUJI Hideaki / 吉藤英明	  mechanisms of 6to4 (RFC3056) to enable a service provider to rapidly
173fa857afcSYOSHIFUJI Hideaki / 吉藤英明	  deploy IPv6 unicast service to IPv4 sites to which it provides
174fa857afcSYOSHIFUJI Hideaki / 吉藤英明	  customer premise equipment.  Like 6to4, it utilizes stateless IPv6 in
175fa857afcSYOSHIFUJI Hideaki / 吉藤英明	  IPv4 encapsulation in order to transit IPv4-only network
176fa857afcSYOSHIFUJI Hideaki / 吉藤英明	  infrastructure.  Unlike 6to4, a 6rd service provider uses an IPv6
177fa857afcSYOSHIFUJI Hideaki / 吉藤英明	  prefix of its own in place of the fixed 6to4 prefix.
178fa857afcSYOSHIFUJI Hideaki / 吉藤英明
179fa857afcSYOSHIFUJI Hideaki / 吉藤英明	  With this option enabled, the SIT driver offers 6rd functionality by
180fa857afcSYOSHIFUJI Hideaki / 吉藤英明	  providing additional ioctl API to configure the IPv6 Prefix for in
181fa857afcSYOSHIFUJI Hideaki / 吉藤英明	  stead of static 2002::/16 for 6to4.
182fa857afcSYOSHIFUJI Hideaki / 吉藤英明
183fa857afcSYOSHIFUJI Hideaki / 吉藤英明	  If unsure, say N.
184fa857afcSYOSHIFUJI Hideaki / 吉藤英明
185de357cc0SYOSHIFUJI Hideakiconfig IPV6_NDISC_NODETYPE
186de357cc0SYOSHIFUJI Hideaki	bool
187de357cc0SYOSHIFUJI Hideaki
1881da177e4SLinus Torvaldsconfig IPV6_TUNNEL
18938fe999eSYOSHIFUJI Hideaki	tristate "IPv6: IP-in-IPv6 tunnel (RFC2473)"
190d2acc347SHerbert Xu	select INET6_TUNNEL
191607f725fSPaolo Abeni	select DST_CACHE
19297e219b7SEric Dumazet	select GRO_CELLS
1931da177e4SLinus Torvalds	---help---
19438fe999eSYOSHIFUJI Hideaki	  Support for IPv6-in-IPv6 and IPv4-in-IPv6 tunnels described in
19538fe999eSYOSHIFUJI Hideaki	  RFC 2473.
1961da177e4SLinus Torvalds
1971da177e4SLinus Torvalds	  If unsure, say N.
1981da177e4SLinus Torvalds
199c12b395aSxeb@mail.ruconfig IPV6_GRE
200c12b395aSxeb@mail.ru	tristate "IPv6: GRE tunnel"
201c12b395aSxeb@mail.ru	select IPV6_TUNNEL
202f61dd388SPravin B Shelar	select NET_IP_TUNNEL
2038bf42e9eSArnd Bergmann	depends on NET_IPGRE_DEMUX
204c12b395aSxeb@mail.ru	---help---
205c12b395aSxeb@mail.ru	  Tunneling means encapsulating data of one protocol type within
206c12b395aSxeb@mail.ru	  another protocol and sending it over a channel that understands the
207c12b395aSxeb@mail.ru	  encapsulating protocol. This particular tunneling driver implements
208c12b395aSxeb@mail.ru	  GRE (Generic Routing Encapsulation) and at this time allows
209c12b395aSxeb@mail.ru	  encapsulating of IPv4 or IPv6 over existing IPv6 infrastructure.
210c12b395aSxeb@mail.ru	  This driver is useful if the other endpoint is a Cisco router: Cisco
211c12b395aSxeb@mail.ru	  likes GRE much better than the other Linux tunneling driver ("IP
212c12b395aSxeb@mail.ru	  tunneling" above). In addition, GRE allows multicast redistribution
213c12b395aSxeb@mail.ru	  through the tunnel.
214c12b395aSxeb@mail.ru
215c12b395aSxeb@mail.ru	  Saying M here will produce a module called ip6_gre. If unsure, say N.
216c12b395aSxeb@mail.ru
217fabb13dbSArnd Bergmannconfig IPV6_FOU
218fabb13dbSArnd Bergmann	tristate
219fabb13dbSArnd Bergmann	default NET_FOU && IPV6
220fabb13dbSArnd Bergmann
221fabb13dbSArnd Bergmannconfig IPV6_FOU_TUNNEL
222fabb13dbSArnd Bergmann	tristate
223fabb13dbSArnd Bergmann	default NET_FOU_IP_TUNNELS && IPV6_FOU
22495e4daa8SArnd Bergmann	select IPV6_TUNNEL
225fabb13dbSArnd Bergmann
226264e91b6SVille Nuorvalaconfig IPV6_MULTIPLE_TABLES
227264e91b6SVille Nuorvala	bool "IPv6: Multiple Routing Tables"
228264e91b6SVille Nuorvala	select FIB_RULES
229264e91b6SVille Nuorvala	---help---
230264e91b6SVille Nuorvala	  Support multiple routing tables.
231264e91b6SVille Nuorvala
2324e96c2b4SYOSHIFUJI Hideakiconfig IPV6_SUBTREES
2334e96c2b4SYOSHIFUJI Hideaki	bool "IPv6: source address based routing"
234264e91b6SVille Nuorvala	depends on IPV6_MULTIPLE_TABLES
2354e96c2b4SYOSHIFUJI Hideaki	---help---
2364e96c2b4SYOSHIFUJI Hideaki	  Enable routing by source address or prefix.
2374e96c2b4SYOSHIFUJI Hideaki
2384e96c2b4SYOSHIFUJI Hideaki	  The destination address is still the primary routing key, so mixing
2394e96c2b4SYOSHIFUJI Hideaki	  normal and source prefix specific routes in the same routing table
2404e96c2b4SYOSHIFUJI Hideaki	  may sometimes lead to unintended routing behavior.  This can be
2414e96c2b4SYOSHIFUJI Hideaki	  avoided by defining different routing tables for the normal and
2424e96c2b4SYOSHIFUJI Hideaki	  source prefix specific routes.
2434e96c2b4SYOSHIFUJI Hideaki
2444e96c2b4SYOSHIFUJI Hideaki	  If unsure, say N.
2454e96c2b4SYOSHIFUJI Hideaki
2467bc570c8SYOSHIFUJI Hideakiconfig IPV6_MROUTE
247f9ceb16eSKees Cook	bool "IPv6: multicast routing"
248f9ceb16eSKees Cook	depends on IPV6
2496853f21fSYuval Mintz	select IP_MROUTE_COMMON
2507bc570c8SYOSHIFUJI Hideaki	---help---
251a9f71d0dSGeorg Hofmann	  Support for IPv6 multicast forwarding.
2527bc570c8SYOSHIFUJI Hideaki	  If unsure, say N.
2537bc570c8SYOSHIFUJI Hideaki
254d1db275dSPatrick McHardyconfig IPV6_MROUTE_MULTIPLE_TABLES
255d1db275dSPatrick McHardy	bool "IPv6: multicast policy routing"
256d1db275dSPatrick McHardy	depends on IPV6_MROUTE
257d1db275dSPatrick McHardy	select FIB_RULES
258d1db275dSPatrick McHardy	help
259d1db275dSPatrick McHardy	  Normally, a multicast router runs a userspace daemon and decides
260d1db275dSPatrick McHardy	  what to do with a multicast packet based on the source and
261d1db275dSPatrick McHardy	  destination addresses. If you say Y here, the multicast router
262d1db275dSPatrick McHardy	  will also be able to take interfaces and packet marks into
263d1db275dSPatrick McHardy	  account and run multiple instances of userspace daemons
264d1db275dSPatrick McHardy	  simultaneously, each one handling a single table.
265d1db275dSPatrick McHardy
266d1db275dSPatrick McHardy	  If unsure, say N.
267d1db275dSPatrick McHardy
26814fb64e1SYOSHIFUJI Hideakiconfig IPV6_PIMSM_V2
269f9ceb16eSKees Cook	bool "IPv6: PIM-SM version 2 support"
27014fb64e1SYOSHIFUJI Hideaki	depends on IPV6_MROUTE
27114fb64e1SYOSHIFUJI Hideaki	---help---
27214fb64e1SYOSHIFUJI Hideaki	  Support for IPv6 PIM multicast routing protocol PIM-SMv2.
27314fb64e1SYOSHIFUJI Hideaki	  If unsure, say N.
27414fb64e1SYOSHIFUJI Hideaki
27546738b13SDavid Lebrunconfig IPV6_SEG6_LWTUNNEL
27646738b13SDavid Lebrun	bool "IPv6: Segment Routing Header encapsulation support"
27746738b13SDavid Lebrun	depends on IPV6
27846738b13SDavid Lebrun	select LWTUNNEL
279402a5bc4SDavid Lebrun	select DST_CACHE
280d7a669ddSDavid Lebrun	select IPV6_MULTIPLE_TABLES
28146738b13SDavid Lebrun	---help---
28246738b13SDavid Lebrun	  Support for encapsulation of packets within an outer IPv6
28346738b13SDavid Lebrun	  header and a Segment Routing Header using the lightweight
284d1df6fd8SDavid Lebrun	  tunnels mechanism. Also enable support for advanced local
285d1df6fd8SDavid Lebrun	  processing of SRv6 packets based on their active segment.
28646738b13SDavid Lebrun
28746738b13SDavid Lebrun	  If unsure, say N.
28846738b13SDavid Lebrun
289bf355b8dSDavid Lebrunconfig IPV6_SEG6_HMAC
290bf355b8dSDavid Lebrun	bool "IPv6: Segment Routing HMAC support"
291bf355b8dSDavid Lebrun	depends on IPV6
292bf355b8dSDavid Lebrun	select CRYPTO_HMAC
293bf355b8dSDavid Lebrun	select CRYPTO_SHA1
294bf355b8dSDavid Lebrun	select CRYPTO_SHA256
295bf355b8dSDavid Lebrun	---help---
296bf355b8dSDavid Lebrun	  Support for HMAC signature generation and verification
297bf355b8dSDavid Lebrun	  of SR-enabled packets.
298bf355b8dSDavid Lebrun
299bf355b8dSDavid Lebrun	  If unsure, say N.
300bf355b8dSDavid Lebrun
301fe94cc29SMathieu Xhonneuxconfig IPV6_SEG6_BPF
302fe94cc29SMathieu Xhonneux	def_bool y
303fe94cc29SMathieu Xhonneux	depends on IPV6_SEG6_LWTUNNEL
304fe94cc29SMathieu Xhonneux	depends on IPV6 = y
305fe94cc29SMathieu Xhonneux
306*a7a29f9cSAlexander Aringconfig IPV6_RPL_LWTUNNEL
307*a7a29f9cSAlexander Aring	bool "IPv6: RPL Source Routing Header support"
308*a7a29f9cSAlexander Aring	depends on IPV6
309*a7a29f9cSAlexander Aring	select LWTUNNEL
310*a7a29f9cSAlexander Aring	---help---
311*a7a29f9cSAlexander Aring	  Support for RFC6554 RPL Source Routing Header using the lightweight
312*a7a29f9cSAlexander Aring	  tunnels mechanism.
313*a7a29f9cSAlexander Aring
314*a7a29f9cSAlexander Aring	  If unsure, say N.
315*a7a29f9cSAlexander Aring
3160b18542bSJan Engelhardtendif # IPV6
317