xref: /openbmc/linux/net/ipv6/Kconfig (revision ba61bb17)
1#
2# IPv6 configuration
3#
4
5#   IPv6 as module will cause a CRASH if you try to unload it
6menuconfig IPV6
7	tristate "The IPv6 protocol"
8	default y
9	---help---
10	  Support for IP version 6 (IPv6).
11
12	  For general information about IPv6, see
13	  <https://en.wikipedia.org/wiki/IPv6>.
14	  For specific information about IPv6 under Linux, see
15	  Documentation/networking/ipv6.txt and read the HOWTO at
16	  <http://www.tldp.org/HOWTO/Linux+IPv6-HOWTO/>
17
18	  To compile this protocol support as a module, choose M here: the
19	  module will be called ipv6.
20
21if IPV6
22
23config IPV6_ROUTER_PREF
24	bool "IPv6: Router Preference (RFC 4191) support"
25	---help---
26	  Router Preference is an optional extension to the Router
27	  Advertisement message which improves the ability of hosts
28	  to pick an appropriate router, especially when the hosts
29	  are placed in a multi-homed network.
30
31	  If unsure, say N.
32
33config IPV6_ROUTE_INFO
34	bool "IPv6: Route Information (RFC 4191) support"
35	depends on IPV6_ROUTER_PREF
36	---help---
37	  Support of Route Information.
38
39	  If unsure, say N.
40
41config IPV6_OPTIMISTIC_DAD
42	bool "IPv6: Enable RFC 4429 Optimistic DAD"
43	---help---
44	  Support for optimistic Duplicate Address Detection. It allows for
45	  autoconfigured addresses to be used more quickly.
46
47	  If unsure, say N.
48
49config INET6_AH
50	tristate "IPv6: AH transformation"
51	select XFRM_ALGO
52	select CRYPTO
53	select CRYPTO_HMAC
54	select CRYPTO_MD5
55	select CRYPTO_SHA1
56	---help---
57	  Support for IPsec AH.
58
59	  If unsure, say Y.
60
61config INET6_ESP
62	tristate "IPv6: ESP transformation"
63	select XFRM_ALGO
64	select CRYPTO
65	select CRYPTO_AUTHENC
66	select CRYPTO_HMAC
67	select CRYPTO_MD5
68	select CRYPTO_CBC
69	select CRYPTO_SHA1
70	select CRYPTO_DES
71	select CRYPTO_ECHAINIV
72	---help---
73	  Support for IPsec ESP.
74
75	  If unsure, say Y.
76
77config INET6_ESP_OFFLOAD
78	tristate "IPv6: ESP transformation offload"
79	depends on INET6_ESP
80	select XFRM_OFFLOAD
81	default n
82	---help---
83	  Support for ESP transformation offload. This makes sense
84	  only if this system really does IPsec and want to do it
85	  with high throughput. A typical desktop system does not
86	  need it, even if it does IPsec.
87
88	  If unsure, say N.
89
90config INET6_IPCOMP
91	tristate "IPv6: IPComp transformation"
92	select INET6_XFRM_TUNNEL
93	select XFRM_IPCOMP
94	---help---
95	  Support for IP Payload Compression Protocol (IPComp) (RFC3173),
96	  typically needed for IPsec.
97
98	  If unsure, say Y.
99
100config IPV6_MIP6
101	tristate "IPv6: Mobility"
102	select XFRM
103	---help---
104	  Support for IPv6 Mobility described in RFC 3775.
105
106	  If unsure, say N.
107
108config IPV6_ILA
109	tristate "IPv6: Identifier Locator Addressing (ILA)"
110	depends on NETFILTER
111	select LWTUNNEL
112	---help---
113	  Support for IPv6 Identifier Locator Addressing (ILA).
114
115	  ILA is a mechanism to do network virtualization without
116	  encapsulation. The basic concept of ILA is that we split an
117	  IPv6 address into a 64 bit locator and 64 bit identifier. The
118	  identifier is the identity of an entity in communication
119	  ("who") and the locator expresses the location of the
120	  entity ("where").
121
122	  ILA can be configured using the "encap ila" option with
123	  "ip -6 route" command. ILA is described in
124	  https://tools.ietf.org/html/draft-herbert-nvo3-ila-00.
125
126	  If unsure, say N.
127
128config INET6_XFRM_TUNNEL
129	tristate
130	select INET6_TUNNEL
131	default n
132
133config INET6_TUNNEL
134	tristate
135	default n
136
137config INET6_XFRM_MODE_TRANSPORT
138	tristate "IPv6: IPsec transport mode"
139	default IPV6
140	select XFRM
141	---help---
142	  Support for IPsec transport mode.
143
144	  If unsure, say Y.
145
146config INET6_XFRM_MODE_TUNNEL
147	tristate "IPv6: IPsec tunnel mode"
148	default IPV6
149	select XFRM
150	---help---
151	  Support for IPsec tunnel mode.
152
153	  If unsure, say Y.
154
155config INET6_XFRM_MODE_BEET
156	tristate "IPv6: IPsec BEET mode"
157	default IPV6
158	select XFRM
159	---help---
160	  Support for IPsec BEET mode.
161
162	  If unsure, say Y.
163
164config INET6_XFRM_MODE_ROUTEOPTIMIZATION
165	tristate "IPv6: MIPv6 route optimization mode"
166	select XFRM
167	---help---
168	  Support for MIPv6 route optimization mode.
169
170config IPV6_VTI
171tristate "Virtual (secure) IPv6: tunneling"
172	select IPV6_TUNNEL
173	select NET_IP_TUNNEL
174	depends on INET6_XFRM_MODE_TUNNEL
175	---help---
176	Tunneling means encapsulating data of one protocol type within
177	another protocol and sending it over a channel that understands the
178	encapsulating protocol. This can be used with xfrm mode tunnel to give
179	the notion of a secure tunnel for IPSEC and then use routing protocol
180	on top.
181
182config IPV6_SIT
183	tristate "IPv6: IPv6-in-IPv4 tunnel (SIT driver)"
184	select INET_TUNNEL
185	select NET_IP_TUNNEL
186	select IPV6_NDISC_NODETYPE
187	default y
188	---help---
189	  Tunneling means encapsulating data of one protocol type within
190	  another protocol and sending it over a channel that understands the
191	  encapsulating protocol. This driver implements encapsulation of IPv6
192	  into IPv4 packets. This is useful if you want to connect two IPv6
193	  networks over an IPv4-only path.
194
195	  Saying M here will produce a module called sit. If unsure, say Y.
196
197config IPV6_SIT_6RD
198	bool "IPv6: IPv6 Rapid Deployment (6RD)"
199	depends on IPV6_SIT
200	default n
201	---help---
202	  IPv6 Rapid Deployment (6rd; draft-ietf-softwire-ipv6-6rd) builds upon
203	  mechanisms of 6to4 (RFC3056) to enable a service provider to rapidly
204	  deploy IPv6 unicast service to IPv4 sites to which it provides
205	  customer premise equipment.  Like 6to4, it utilizes stateless IPv6 in
206	  IPv4 encapsulation in order to transit IPv4-only network
207	  infrastructure.  Unlike 6to4, a 6rd service provider uses an IPv6
208	  prefix of its own in place of the fixed 6to4 prefix.
209
210	  With this option enabled, the SIT driver offers 6rd functionality by
211	  providing additional ioctl API to configure the IPv6 Prefix for in
212	  stead of static 2002::/16 for 6to4.
213
214	  If unsure, say N.
215
216config IPV6_NDISC_NODETYPE
217	bool
218
219config IPV6_TUNNEL
220	tristate "IPv6: IP-in-IPv6 tunnel (RFC2473)"
221	select INET6_TUNNEL
222	select DST_CACHE
223	select GRO_CELLS
224	---help---
225	  Support for IPv6-in-IPv6 and IPv4-in-IPv6 tunnels described in
226	  RFC 2473.
227
228	  If unsure, say N.
229
230config IPV6_GRE
231	tristate "IPv6: GRE tunnel"
232	select IPV6_TUNNEL
233	select NET_IP_TUNNEL
234	depends on NET_IPGRE_DEMUX
235	---help---
236	  Tunneling means encapsulating data of one protocol type within
237	  another protocol and sending it over a channel that understands the
238	  encapsulating protocol. This particular tunneling driver implements
239	  GRE (Generic Routing Encapsulation) and at this time allows
240	  encapsulating of IPv4 or IPv6 over existing IPv6 infrastructure.
241	  This driver is useful if the other endpoint is a Cisco router: Cisco
242	  likes GRE much better than the other Linux tunneling driver ("IP
243	  tunneling" above). In addition, GRE allows multicast redistribution
244	  through the tunnel.
245
246	  Saying M here will produce a module called ip6_gre. If unsure, say N.
247
248config IPV6_FOU
249	tristate
250	default NET_FOU && IPV6
251
252config IPV6_FOU_TUNNEL
253	tristate
254	default NET_FOU_IP_TUNNELS && IPV6_FOU
255	select IPV6_TUNNEL
256
257config IPV6_MULTIPLE_TABLES
258	bool "IPv6: Multiple Routing Tables"
259	select FIB_RULES
260	---help---
261	  Support multiple routing tables.
262
263config IPV6_SUBTREES
264	bool "IPv6: source address based routing"
265	depends on IPV6_MULTIPLE_TABLES
266	---help---
267	  Enable routing by source address or prefix.
268
269	  The destination address is still the primary routing key, so mixing
270	  normal and source prefix specific routes in the same routing table
271	  may sometimes lead to unintended routing behavior.  This can be
272	  avoided by defining different routing tables for the normal and
273	  source prefix specific routes.
274
275	  If unsure, say N.
276
277config IPV6_MROUTE
278	bool "IPv6: multicast routing"
279	depends on IPV6
280	select IP_MROUTE_COMMON
281	---help---
282	  Support for IPv6 multicast forwarding.
283	  If unsure, say N.
284
285config IPV6_MROUTE_MULTIPLE_TABLES
286	bool "IPv6: multicast policy routing"
287	depends on IPV6_MROUTE
288	select FIB_RULES
289	help
290	  Normally, a multicast router runs a userspace daemon and decides
291	  what to do with a multicast packet based on the source and
292	  destination addresses. If you say Y here, the multicast router
293	  will also be able to take interfaces and packet marks into
294	  account and run multiple instances of userspace daemons
295	  simultaneously, each one handling a single table.
296
297	  If unsure, say N.
298
299config IPV6_PIMSM_V2
300	bool "IPv6: PIM-SM version 2 support"
301	depends on IPV6_MROUTE
302	---help---
303	  Support for IPv6 PIM multicast routing protocol PIM-SMv2.
304	  If unsure, say N.
305
306config IPV6_SEG6_LWTUNNEL
307	bool "IPv6: Segment Routing Header encapsulation support"
308	depends on IPV6
309	select LWTUNNEL
310	select DST_CACHE
311	select IPV6_MULTIPLE_TABLES
312	---help---
313	  Support for encapsulation of packets within an outer IPv6
314	  header and a Segment Routing Header using the lightweight
315	  tunnels mechanism. Also enable support for advanced local
316	  processing of SRv6 packets based on their active segment.
317
318	  If unsure, say N.
319
320config IPV6_SEG6_HMAC
321	bool "IPv6: Segment Routing HMAC support"
322	depends on IPV6
323	select CRYPTO_HMAC
324	select CRYPTO_SHA1
325	select CRYPTO_SHA256
326	---help---
327	  Support for HMAC signature generation and verification
328	  of SR-enabled packets.
329
330	  If unsure, say N.
331
332config IPV6_SEG6_BPF
333	def_bool y
334	depends on IPV6_SEG6_LWTUNNEL
335	depends on IPV6 = y
336
337endif # IPV6
338