| # IPv6 Options | 
 |  | 
 | # Copyright (c) 2016 Intel Corporation. | 
 | # SPDX-License-Identifier: Apache-2.0 | 
 |  | 
 | menuconfig NET_IPV6 | 
 | 	bool "IPv6" | 
 | 	default y | 
 | 	help | 
 | 	  Enable IPv6 support. This should be selected by default as there | 
 | 	  is limited set of network bearers provided that support IPv4. | 
 |  | 
 | if NET_IPV6 | 
 |  | 
 | config NET_IF_MAX_IPV6_COUNT | 
 | 	int "Max number of IPv6 network interfaces in the system" | 
 | 	default BT_MAX_CONN if NET_L2_BT | 
 | 	default NET_VLAN_COUNT if NET_VLAN | 
 | 	default 2 if NET_LOOPBACK | 
 | 	default 1 | 
 | 	help | 
 | 	  This tells how many network interfaces there will be in the system | 
 | 	  that will have IPv6 enabled. | 
 |  | 
 | config NET_IF_UNICAST_IPV6_ADDR_COUNT | 
 | 	int "Max number of unicast IPv6 addresses per network interface" | 
 | 	default 6 if NET_L2_OPENTHREAD | 
 | 	default 3 if NET_LOOPBACK | 
 | 	default 2 | 
 |  | 
 | config NET_IF_MCAST_IPV6_ADDR_COUNT | 
 | 	int "Max number of multicast IPv6 addresses per network interface" | 
 | 	default 8 if NET_L2_OPENTHREAD | 
 | 	default 3 | 
 |  | 
 | config NET_IF_IPV6_PREFIX_COUNT | 
 | 	int "Max number of IPv6 prefixes per network interface" | 
 | 	default 2 | 
 |  | 
 | if NET_NATIVE_IPV6 | 
 |  | 
 | config NET_IPV6_MTU | 
 | 	int "Initial IPv6 MTU value" | 
 | 	default 1280 | 
 | 	range 1280 1500 | 
 | 	help | 
 | 	  The value should normally be 1280 which is the minimum IPv6 packet | 
 | 	  size that implementations need to support without fragmentation. | 
 |  | 
 | config NET_INITIAL_HOP_LIMIT | 
 | 	int "Initial IPv6 hop limit value for unicast packets" | 
 | 	default 64 | 
 | 	range 0 255 | 
 | 	help | 
 | 	  The value should normally be > 0. The device receiving the IPv6 | 
 | 	  packet will decrement the value and will drop the packet if the hop | 
 | 	  limit value is 0. When sending, the packet is dropped before | 
 | 	  transmitting to network if hop limit is 0. | 
 |  | 
 | config NET_INITIAL_MCAST_HOP_LIMIT | 
 | 	int "Initial IPv6 hop limit value for multicast packets" | 
 | 	default 1 | 
 | 	range 0 255 | 
 | 	help | 
 | 	  The value should normally be > 0. The device receiving the IPv6 | 
 | 	  packet will decrement the value and will drop the packet if the hop | 
 | 	  limit value is 0. When sending, the packet is dropped before | 
 | 	  transmitting to network if hop limit is 0. | 
 | 	  The default is 1 (same as in IPv4) which means that multicast packets | 
 | 	  don't leave the local network unless the application explicitly | 
 | 	  requests it. | 
 |  | 
 | config NET_IPV6_MAX_NEIGHBORS | 
 | 	int "How many IPv6 neighbors are supported" | 
 | 	default 8 | 
 | 	range 1 254 | 
 | 	help | 
 | 	  The value depends on your network needs. | 
 |  | 
 | config NET_IPV6_FRAGMENT | 
 | 	bool "Support IPv6 fragmentation" | 
 | 	help | 
 | 	  IPv6 fragmentation is disabled by default. This saves memory and | 
 | 	  should not cause issues normally as we support anyway the minimum | 
 | 	  length IPv6 packets (1280 bytes). If you enable fragmentation | 
 | 	  support, please increase amount of RX data buffers so that larger | 
 | 	  than 1280 byte packets can be received. | 
 |  | 
 | config NET_IPV6_FRAGMENT_MAX_COUNT | 
 | 	int "How many packets to reassemble at a time" | 
 | 	range 1 16 | 
 | 	default 1 | 
 | 	depends on NET_IPV6_FRAGMENT | 
 | 	help | 
 | 	  How many fragmented IPv6 packets can be waiting reassembly | 
 | 	  simultaneously. Each fragment count might use up to 1280 bytes | 
 | 	  of memory so you need to plan this and increase the network buffer | 
 | 	  count. | 
 |  | 
 | config NET_IPV6_FRAGMENT_MAX_PKT | 
 | 	int "How many fragments can be handled to reassemble a packet" | 
 | 	default 2 | 
 | 	depends on NET_IPV6_FRAGMENT | 
 | 	help | 
 | 	  Incoming fragments are stored in per-packet queue before being | 
 | 	  reassembled. This value defines the number of fragments that | 
 | 	  can be handled at the same time to reassemble a single packet. | 
 |  | 
 | 	  We do not have to accept IPv6 packets larger than 1500 bytes | 
 | 	  (RFC 2460 ch 5). This means that we should receive everything | 
 | 	  within the first two fragments. The first one being 1280 bytes and | 
 | 	  the second one 220 bytes. | 
 |  | 
 | 	  You can increase this value if you expect packets with more | 
 | 	  than two fragments. | 
 |  | 
 | config NET_IPV6_FRAGMENT_TIMEOUT | 
 | 	int "How long to wait the fragments to receive" | 
 | 	range 1 60 | 
 | 	default 5 | 
 | 	depends on NET_IPV6_FRAGMENT | 
 | 	help | 
 | 	  How long to wait for IPv6 fragment to arrive before the reassembly | 
 | 	  will timeout. RFC 2460 chapter 4.5 tells to wait for 60 seconds but | 
 | 	  this might be too long in memory constrained devices. This value | 
 | 	  is in seconds. | 
 |  | 
 | config NET_IPV6_MLD | 
 | 	bool "Multicast Listener Discovery support" | 
 | 	default y | 
 | 	help | 
 | 	  The value depends on your network needs. MLD should normally | 
 | 	  be active. Currently we support only MLDv2. See RFC 3810 for | 
 | 	  details. | 
 |  | 
 | config NET_IPV6_NBR_CACHE | 
 | 	bool "Neighbor cache" | 
 | 	default y | 
 | 	help | 
 | 	  The value depends on your network needs. Neighbor cache should | 
 | 	  normally be active. | 
 |  | 
 | config NET_IPV6_ND | 
 | 	bool "Activate neighbor discovery" | 
 | 	depends on NET_IPV6_NBR_CACHE | 
 | 	select NET_IPV6_MLD if !NET_TEST | 
 | 	default y | 
 | 	help | 
 | 	  The value depends on your network needs. ND should normally | 
 | 	  be active. | 
 |  | 
 | config NET_IPV6_DAD | 
 | 	bool "Activate duplicate address detection" | 
 | 	depends on NET_IPV6_NBR_CACHE | 
 | 	default y | 
 | 	help | 
 | 	  The value depends on your network needs. DAD should normally | 
 | 	  be active. | 
 |  | 
 | config NET_IPV6_RA_RDNSS | 
 | 	bool "Support RA RDNSS option" | 
 | 	depends on NET_IPV6_ND | 
 | 	select DNS_RESOLVER | 
 | 	default y | 
 | 	help | 
 | 	  Support Router Advertisement Recursive DNS Server option. | 
 | 	  See RFC 6106 for details. The value depends on your network needs. | 
 |  | 
 | config NET_6LO | 
 | 	bool "6lowpan IPv6 Compression library" | 
 | 	default y if NET_L2_IEEE802154 | 
 | 	help | 
 | 	  6lowpan compression and fragmentation. It is enabled by default | 
 | 	  if 802.15.4 is present, since using IPv6 on it requires it. | 
 |  | 
 | 	  You may disable this option if you wish to implement a non-IP | 
 | 	  custom protocol on top of the 802.15.4 MAC (L2) layer. | 
 |  | 
 | config NET_6LO_CONTEXT | 
 | 	bool "6lowpan context based compression" | 
 | 	depends on NET_6LO | 
 | 	help | 
 | 	  Enables 6lowpan context based compression based on information | 
 | 	  received in Router Advertisement (RA) message. | 
 |  | 
 | config NET_MAX_6LO_CONTEXTS | 
 | 	int "Number of supported 6CO (6lowpan contexts options)" | 
 | 	depends on NET_6LO_CONTEXT | 
 | 	default 1 | 
 | 	range 1 16 | 
 | 	help | 
 | 	  6lowpan context options table size. The value depends on your | 
 | 	  network and memory consumption. More 6CO options uses more memory. | 
 |  | 
 | if NET_6LO | 
 | module = NET_6LO | 
 | module-dep = NET_LOG | 
 | module-str = Log level for 6LoWPAN library | 
 | module-help = Enables 6LoWPAN code to output debug messages. | 
 | source "subsys/net/Kconfig.template.log_config.net" | 
 | endif # NET_6LO | 
 |  | 
 | module = NET_IPV6 | 
 | module-dep = NET_LOG | 
 | module-str = Log level for core IPv6 | 
 | module-help = Enables core IPv6 code to output debug messages. | 
 | source "subsys/net/Kconfig.template.log_config.net" | 
 |  | 
 | module = NET_IPV6_ND | 
 | module-dep = NET_LOG | 
 | module-str = Log level for IPv6 Neighbor Discovery | 
 | module-help = Enables IPv6 Neighbor Discovery code to output debug messages. | 
 | source "subsys/net/Kconfig.template.log_config.net" | 
 |  | 
 | module = NET_ICMPV6 | 
 | module-dep = NET_LOG | 
 | module-str = Log level for ICMPv6 | 
 | module-help = Enables ICMPv6 code to output debug messages. | 
 | source "subsys/net/Kconfig.template.log_config.net" | 
 |  | 
 | module = NET_IPV6_NBR_CACHE | 
 | module-dep = NET_LOG | 
 | module-str = Log level for IPv6 neighbor cache | 
 | module-help = Enables IPv6 Neighbor Cache code to output debug messages. | 
 | source "subsys/net/Kconfig.template.log_config.net" | 
 |  | 
 | endif # NET_NATIVE_IPV6 | 
 | endif # NET_IPV6 |