Back to home page

OSCL-LXR

 
 

    


0001 # SPDX-License-Identifier: GPL-2.0-only
0002 #
0003 # IPv6 configuration
0004 #
0005 
0006 #   IPv6 as module will cause a CRASH if you try to unload it
0007 menuconfig IPV6
0008         tristate "The IPv6 protocol"
0009         default y
0010         select CRYPTO_LIB_SHA1
0011         help
0012           Support for IP version 6 (IPv6).
0013 
0014           For general information about IPv6, see
0015           <https://en.wikipedia.org/wiki/IPv6>.
0016           For specific information about IPv6 under Linux, see
0017           Documentation/networking/ipv6.rst and read the HOWTO at
0018           <https://www.tldp.org/HOWTO/Linux+IPv6-HOWTO/>
0019 
0020           To compile this protocol support as a module, choose M here: the
0021           module will be called ipv6.
0022 
0023 if IPV6
0024 
0025 config IPV6_ROUTER_PREF
0026         bool "IPv6: Router Preference (RFC 4191) support"
0027         help
0028           Router Preference is an optional extension to the Router
0029           Advertisement message which improves the ability of hosts
0030           to pick an appropriate router, especially when the hosts
0031           are placed in a multi-homed network.
0032 
0033           If unsure, say N.
0034 
0035 config IPV6_ROUTE_INFO
0036         bool "IPv6: Route Information (RFC 4191) support"
0037         depends on IPV6_ROUTER_PREF
0038         help
0039           Support of Route Information.
0040 
0041           If unsure, say N.
0042 
0043 config IPV6_OPTIMISTIC_DAD
0044         bool "IPv6: Enable RFC 4429 Optimistic DAD"
0045         help
0046           Support for optimistic Duplicate Address Detection. It allows for
0047           autoconfigured addresses to be used more quickly.
0048 
0049           If unsure, say N.
0050 
0051 config INET6_AH
0052         tristate "IPv6: AH transformation"
0053         select XFRM_AH
0054         help
0055           Support for IPsec AH (Authentication Header).
0056 
0057           AH can be used with various authentication algorithms.  Besides
0058           enabling AH support itself, this option enables the generic
0059           implementations of the algorithms that RFC 8221 lists as MUST be
0060           implemented.  If you need any other algorithms, you'll need to enable
0061           them in the crypto API.  You should also enable accelerated
0062           implementations of any needed algorithms when available.
0063 
0064           If unsure, say Y.
0065 
0066 config INET6_ESP
0067         tristate "IPv6: ESP transformation"
0068         select XFRM_ESP
0069         help
0070           Support for IPsec ESP (Encapsulating Security Payload).
0071 
0072           ESP can be used with various encryption and authentication algorithms.
0073           Besides enabling ESP support itself, this option enables the generic
0074           implementations of the algorithms that RFC 8221 lists as MUST be
0075           implemented.  If you need any other algorithms, you'll need to enable
0076           them in the crypto API.  You should also enable accelerated
0077           implementations of any needed algorithms when available.
0078 
0079           If unsure, say Y.
0080 
0081 config INET6_ESP_OFFLOAD
0082         tristate "IPv6: ESP transformation offload"
0083         depends on INET6_ESP
0084         select XFRM_OFFLOAD
0085         default n
0086         help
0087           Support for ESP transformation offload. This makes sense
0088           only if this system really does IPsec and want to do it
0089           with high throughput. A typical desktop system does not
0090           need it, even if it does IPsec.
0091 
0092           If unsure, say N.
0093 
0094 config INET6_ESPINTCP
0095         bool "IPv6: ESP in TCP encapsulation (RFC 8229)"
0096         depends on XFRM && INET6_ESP
0097         select STREAM_PARSER
0098         select NET_SOCK_MSG
0099         select XFRM_ESPINTCP
0100         help
0101           Support for RFC 8229 encapsulation of ESP and IKE over
0102           TCP/IPv6 sockets.
0103 
0104           If unsure, say N.
0105 
0106 config INET6_IPCOMP
0107         tristate "IPv6: IPComp transformation"
0108         select INET6_XFRM_TUNNEL
0109         select XFRM_IPCOMP
0110         help
0111           Support for IP Payload Compression Protocol (IPComp) (RFC3173),
0112           typically needed for IPsec.
0113 
0114           If unsure, say Y.
0115 
0116 config IPV6_MIP6
0117         tristate "IPv6: Mobility"
0118         select XFRM
0119         help
0120           Support for IPv6 Mobility described in RFC 3775.
0121 
0122           If unsure, say N.
0123 
0124 config IPV6_ILA
0125         tristate "IPv6: Identifier Locator Addressing (ILA)"
0126         depends on NETFILTER
0127         select DST_CACHE
0128         select LWTUNNEL
0129         help
0130           Support for IPv6 Identifier Locator Addressing (ILA).
0131 
0132           ILA is a mechanism to do network virtualization without
0133           encapsulation. The basic concept of ILA is that we split an
0134           IPv6 address into a 64 bit locator and 64 bit identifier. The
0135           identifier is the identity of an entity in communication
0136           ("who") and the locator expresses the location of the
0137           entity ("where").
0138 
0139           ILA can be configured using the "encap ila" option with
0140           "ip -6 route" command. ILA is described in
0141           https://tools.ietf.org/html/draft-herbert-nvo3-ila-00.
0142 
0143           If unsure, say N.
0144 
0145 config INET6_XFRM_TUNNEL
0146         tristate
0147         select INET6_TUNNEL
0148         default n
0149 
0150 config INET6_TUNNEL
0151         tristate
0152         default n
0153 
0154 config IPV6_VTI
0155 tristate "Virtual (secure) IPv6: tunneling"
0156         select IPV6_TUNNEL
0157         select NET_IP_TUNNEL
0158         select XFRM
0159         help
0160         Tunneling means encapsulating data of one protocol type within
0161         another protocol and sending it over a channel that understands the
0162         encapsulating protocol. This can be used with xfrm mode tunnel to give
0163         the notion of a secure tunnel for IPSEC and then use routing protocol
0164         on top.
0165 
0166 config IPV6_SIT
0167         tristate "IPv6: IPv6-in-IPv4 tunnel (SIT driver)"
0168         select INET_TUNNEL
0169         select NET_IP_TUNNEL
0170         select IPV6_NDISC_NODETYPE
0171         default y
0172         help
0173           Tunneling means encapsulating data of one protocol type within
0174           another protocol and sending it over a channel that understands the
0175           encapsulating protocol. This driver implements encapsulation of IPv6
0176           into IPv4 packets. This is useful if you want to connect two IPv6
0177           networks over an IPv4-only path.
0178 
0179           Saying M here will produce a module called sit. If unsure, say Y.
0180 
0181 config IPV6_SIT_6RD
0182         bool "IPv6: IPv6 Rapid Deployment (6RD)"
0183         depends on IPV6_SIT
0184         default n
0185         help
0186           IPv6 Rapid Deployment (6rd; draft-ietf-softwire-ipv6-6rd) builds upon
0187           mechanisms of 6to4 (RFC3056) to enable a service provider to rapidly
0188           deploy IPv6 unicast service to IPv4 sites to which it provides
0189           customer premise equipment.  Like 6to4, it utilizes stateless IPv6 in
0190           IPv4 encapsulation in order to transit IPv4-only network
0191           infrastructure.  Unlike 6to4, a 6rd service provider uses an IPv6
0192           prefix of its own in place of the fixed 6to4 prefix.
0193 
0194           With this option enabled, the SIT driver offers 6rd functionality by
0195           providing additional ioctl API to configure the IPv6 Prefix for in
0196           stead of static 2002::/16 for 6to4.
0197 
0198           If unsure, say N.
0199 
0200 config IPV6_NDISC_NODETYPE
0201         bool
0202 
0203 config IPV6_TUNNEL
0204         tristate "IPv6: IP-in-IPv6 tunnel (RFC2473)"
0205         select INET6_TUNNEL
0206         select DST_CACHE
0207         select GRO_CELLS
0208         help
0209           Support for IPv6-in-IPv6 and IPv4-in-IPv6 tunnels described in
0210           RFC 2473.
0211 
0212           If unsure, say N.
0213 
0214 config IPV6_GRE
0215         tristate "IPv6: GRE tunnel"
0216         select IPV6_TUNNEL
0217         select NET_IP_TUNNEL
0218         depends on NET_IPGRE_DEMUX
0219         help
0220           Tunneling means encapsulating data of one protocol type within
0221           another protocol and sending it over a channel that understands the
0222           encapsulating protocol. This particular tunneling driver implements
0223           GRE (Generic Routing Encapsulation) and at this time allows
0224           encapsulating of IPv4 or IPv6 over existing IPv6 infrastructure.
0225           This driver is useful if the other endpoint is a Cisco router: Cisco
0226           likes GRE much better than the other Linux tunneling driver ("IP
0227           tunneling" above). In addition, GRE allows multicast redistribution
0228           through the tunnel.
0229 
0230           Saying M here will produce a module called ip6_gre. If unsure, say N.
0231 
0232 config IPV6_FOU
0233         tristate
0234         default NET_FOU && IPV6
0235 
0236 config IPV6_FOU_TUNNEL
0237         tristate
0238         default NET_FOU_IP_TUNNELS && IPV6_FOU
0239         select IPV6_TUNNEL
0240 
0241 config IPV6_MULTIPLE_TABLES
0242         bool "IPv6: Multiple Routing Tables"
0243         select FIB_RULES
0244         help
0245           Support multiple routing tables.
0246 
0247 config IPV6_SUBTREES
0248         bool "IPv6: source address based routing"
0249         depends on IPV6_MULTIPLE_TABLES
0250         help
0251           Enable routing by source address or prefix.
0252 
0253           The destination address is still the primary routing key, so mixing
0254           normal and source prefix specific routes in the same routing table
0255           may sometimes lead to unintended routing behavior.  This can be
0256           avoided by defining different routing tables for the normal and
0257           source prefix specific routes.
0258 
0259           If unsure, say N.
0260 
0261 config IPV6_MROUTE
0262         bool "IPv6: multicast routing"
0263         depends on IPV6
0264         select IP_MROUTE_COMMON
0265         help
0266           Support for IPv6 multicast forwarding.
0267           If unsure, say N.
0268 
0269 config IPV6_MROUTE_MULTIPLE_TABLES
0270         bool "IPv6: multicast policy routing"
0271         depends on IPV6_MROUTE
0272         select FIB_RULES
0273         help
0274           Normally, a multicast router runs a userspace daemon and decides
0275           what to do with a multicast packet based on the source and
0276           destination addresses. If you say Y here, the multicast router
0277           will also be able to take interfaces and packet marks into
0278           account and run multiple instances of userspace daemons
0279           simultaneously, each one handling a single table.
0280 
0281           If unsure, say N.
0282 
0283 config IPV6_PIMSM_V2
0284         bool "IPv6: PIM-SM version 2 support"
0285         depends on IPV6_MROUTE
0286         help
0287           Support for IPv6 PIM multicast routing protocol PIM-SMv2.
0288           If unsure, say N.
0289 
0290 config IPV6_SEG6_LWTUNNEL
0291         bool "IPv6: Segment Routing Header encapsulation support"
0292         depends on IPV6
0293         select LWTUNNEL
0294         select DST_CACHE
0295         select IPV6_MULTIPLE_TABLES
0296         help
0297           Support for encapsulation of packets within an outer IPv6
0298           header and a Segment Routing Header using the lightweight
0299           tunnels mechanism. Also enable support for advanced local
0300           processing of SRv6 packets based on their active segment.
0301 
0302           If unsure, say N.
0303 
0304 config IPV6_SEG6_HMAC
0305         bool "IPv6: Segment Routing HMAC support"
0306         depends on IPV6
0307         select CRYPTO
0308         select CRYPTO_HMAC
0309         select CRYPTO_SHA1
0310         select CRYPTO_SHA256
0311         help
0312           Support for HMAC signature generation and verification
0313           of SR-enabled packets.
0314 
0315           If unsure, say N.
0316 
0317 config IPV6_SEG6_BPF
0318         def_bool y
0319         depends on IPV6_SEG6_LWTUNNEL
0320         depends on IPV6 = y
0321 
0322 config IPV6_RPL_LWTUNNEL
0323         bool "IPv6: RPL Source Routing Header support"
0324         depends on IPV6
0325         select LWTUNNEL
0326         help
0327           Support for RFC6554 RPL Source Routing Header using the lightweight
0328           tunnels mechanism.
0329 
0330           If unsure, say N.
0331 
0332 config IPV6_IOAM6_LWTUNNEL
0333         bool "IPv6: IOAM Pre-allocated Trace insertion support"
0334         depends on IPV6
0335         select LWTUNNEL
0336         select DST_CACHE
0337         help
0338           Support for the insertion of IOAM Pre-allocated Trace
0339           Header using the lightweight tunnels mechanism.
0340 
0341           If unsure, say N.
0342 
0343 endif # IPV6