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