projects/linux·blob master · refs

339 lines · 9.6 KiB

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