1# IPv6 Options 2 3# Copyright (c) 2016 Intel Corporation. 4# SPDX-License-Identifier: Apache-2.0 5 6menuconfig NET_IPV6 7 bool "IPv6" 8 default y 9 help 10 Enable IPv6 support. This should be selected by default as there 11 is limited set of network bearers provided that support IPv4. 12 13if NET_IPV6 14 15config NET_IF_MAX_IPV6_COUNT 16 int "Max number of IPv6 network interfaces in the system" 17 default BT_MAX_CONN if NET_L2_BT 18 default NET_VLAN_COUNT if NET_VLAN 19 default 2 if NET_LOOPBACK 20 default 1 21 help 22 This tells how many network interfaces there will be in the system 23 that will have IPv6 enabled. 24 25config NET_IF_UNICAST_IPV6_ADDR_COUNT 26 int "Max number of unicast IPv6 addresses per network interface" 27 default 6 if NET_L2_OPENTHREAD 28 default 3 if NET_LOOPBACK 29 default 2 30 31config NET_IF_MCAST_IPV6_ADDR_COUNT 32 int "Max number of multicast IPv6 addresses per network interface" 33 default 8 if NET_L2_OPENTHREAD 34 default 3 35 36config NET_IF_IPV6_PREFIX_COUNT 37 int "Max number of IPv6 prefixes per network interface" 38 default 2 39 40if NET_NATIVE_IPV6 41 42config NET_INITIAL_HOP_LIMIT 43 int "Initial hop limit for a connection" 44 default 64 45 help 46 The value should be > 0 47 48config NET_IPV6_MAX_NEIGHBORS 49 int "How many IPv6 neighbors are supported" 50 default 8 51 range 1 254 52 help 53 The value depends on your network needs. 54 55config NET_IPV6_FRAGMENT 56 bool "Support IPv6 fragmentation" 57 help 58 IPv6 fragmentation is disabled by default. This saves memory and 59 should not cause issues normally as we support anyway the minimum 60 length IPv6 packets (1280 bytes). If you enable fragmentation 61 support, please increase amount of RX data buffers so that larger 62 than 1280 byte packets can be received. 63 64config NET_IPV6_FRAGMENT_MAX_COUNT 65 int "How many packets to reassemble at a time" 66 range 1 16 67 default 1 68 depends on NET_IPV6_FRAGMENT 69 help 70 How many fragmented IPv6 packets can be waiting reassembly 71 simultaneously. Each fragment count might use up to 1280 bytes 72 of memory so you need to plan this and increase the network buffer 73 count. 74 75config NET_IPV6_FRAGMENT_MAX_PKT 76 int "How many fragments can be handled to reassemble a packet" 77 default 2 78 depends on NET_IPV6_FRAGMENT 79 help 80 Incoming fragments are stored in per-packet queue before being 81 reassembled. This value defines the number of fragments that 82 can be handled at the same time to reassemble a single packet. 83 84 We do not have to accept IPv6 packets larger than 1500 bytes 85 (RFC 2460 ch 5). This means that we should receive everything 86 within the first two fragments. The first one being 1280 bytes and 87 the second one 220 bytes. 88 89 You can increase this value if you expect packets with more 90 than two fragments. 91 92config NET_IPV6_FRAGMENT_TIMEOUT 93 int "How long to wait the fragments to receive" 94 range 1 60 95 default 5 96 depends on NET_IPV6_FRAGMENT 97 help 98 How long to wait for IPv6 fragment to arrive before the reassembly 99 will timeout. RFC 2460 chapter 4.5 tells to wait for 60 seconds but 100 this might be too long in memory constrained devices. This value 101 is in seconds. 102 103config NET_IPV6_MLD 104 bool "Multicast Listener Discovery support" 105 default y 106 help 107 The value depends on your network needs. MLD should normally 108 be active. Currently we support only MLDv2. See RFC 3810 for 109 details. 110 111config NET_IPV6_NBR_CACHE 112 bool "Neighbor cache" 113 default y 114 help 115 The value depends on your network needs. Neighbor cache should 116 normally be active. 117 118config NET_IPV6_ND 119 bool "Activate neighbor discovery" 120 depends on NET_IPV6_NBR_CACHE 121 default y 122 help 123 The value depends on your network needs. ND should normally 124 be active. 125 126config NET_IPV6_DAD 127 bool "Activate duplicate address detection" 128 depends on NET_IPV6_NBR_CACHE 129 default y 130 help 131 The value depends on your network needs. DAD should normally 132 be active. 133 134config NET_IPV6_RA_RDNSS 135 bool "Support RA RDNSS option" 136 depends on NET_IPV6_ND 137 select DNS_RESOLVER 138 default y 139 help 140 Support Router Advertisement Recursive DNS Server option. 141 See RFC 6106 for details. The value depends on your network needs. 142 143config NET_6LO 144 bool "6lowpan IPv6 Compression library" 145 default y if NET_L2_IEEE802154 146 help 147 6lowpan compression and fragmentation. It is enabled by default 148 if 802.15.4 is present, since using IPv6 on it requires it. 149 150 You may disable this option if you wish to implement a non-IP 151 custom protocol on top of the 802.15.4 MAC (L2) layer. 152 153config NET_6LO_CONTEXT 154 bool "6lowpan context based compression" 155 depends on NET_6LO 156 help 157 Enables 6lowpan context based compression based on information 158 received in Router Advertisement (RA) message. 159 160config NET_MAX_6LO_CONTEXTS 161 int "Number of supported 6CO (6lowpan contexts options)" 162 depends on NET_6LO_CONTEXT 163 default 1 164 range 1 16 165 help 166 6lowpan context options table size. The value depends on your 167 network and memory consumption. More 6CO options uses more memory. 168 169config NET_DHCPV6 170 bool "DHCPv6 client" 171 select NET_MGMT 172 select NET_MGMT_EVENT 173 depends on NET_UDP 174 175if NET_6LO 176module = NET_6LO 177module-dep = NET_LOG 178module-str = Log level for 6LoWPAN library 179module-help = Enables 6LoWPAN code to output debug messages. 180source "subsys/net/Kconfig.template.log_config.net" 181endif # NET_6LO 182 183module = NET_IPV6 184module-dep = NET_LOG 185module-str = Log level for core IPv6 186module-help = Enables core IPv6 code to output debug messages. 187source "subsys/net/Kconfig.template.log_config.net" 188 189module = NET_ICMPV6 190module-dep = NET_LOG 191module-str = Log level for ICMPv6 192module-help = Enables ICMPv6 code to output debug messages. 193source "subsys/net/Kconfig.template.log_config.net" 194 195module = NET_IPV6_NBR_CACHE 196module-dep = NET_LOG 197module-str = Log level for IPv6 neighbor cache 198module-help = Enables IPv6 Neighbor Cache code to output debug messages. 199source "subsys/net/Kconfig.template.log_config.net" 200 201if NET_DHCPV6 202module = NET_DHCPV6 203module-dep = NET_LOG 204module-str = Log level for DHCPv6 client 205module-help = Enables DHCPv6 client code to output debug messages. 206source "subsys/net/Kconfig.template.log_config.net" 207endif # NET_DHCPV6 208 209endif # NET_NATIVE_IPV6 210endif # NET_IPV6 211