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 IPv6 hop limit value for unicast packets" 44 default 64 45 range 0 255 46 help 47 The value should normally be > 0. The device receiving the IPv6 48 packet will decrement the value and will drop the packet if the hop 49 limit value is 0. When sending, the packet is dropped before 50 transmitting to network if hop limit is 0. 51 52config NET_INITIAL_MCAST_HOP_LIMIT 53 int "Initial IPv6 hop limit value for multicast packets" 54 default 1 55 range 0 255 56 help 57 The value should normally be > 0. The device receiving the IPv6 58 packet will decrement the value and will drop the packet if the hop 59 limit value is 0. When sending, the packet is dropped before 60 transmitting to network if hop limit is 0. 61 The default is 1 (same as in IPv4) which means that multicast packets 62 don't leave the local network unless the application explicitly 63 requests it. 64 65config NET_IPV6_MAX_NEIGHBORS 66 int "How many IPv6 neighbors are supported" 67 default 8 68 range 1 254 69 help 70 The value depends on your network needs. 71 72config NET_IPV6_FRAGMENT 73 bool "Support IPv6 fragmentation" 74 help 75 IPv6 fragmentation is disabled by default. This saves memory and 76 should not cause issues normally as we support anyway the minimum 77 length IPv6 packets (1280 bytes). If you enable fragmentation 78 support, please increase amount of RX data buffers so that larger 79 than 1280 byte packets can be received. 80 81config NET_IPV6_FRAGMENT_MAX_COUNT 82 int "How many packets to reassemble at a time" 83 range 1 16 84 default 1 85 depends on NET_IPV6_FRAGMENT 86 help 87 How many fragmented IPv6 packets can be waiting reassembly 88 simultaneously. Each fragment count might use up to 1280 bytes 89 of memory so you need to plan this and increase the network buffer 90 count. 91 92config NET_IPV6_FRAGMENT_MAX_PKT 93 int "How many fragments can be handled to reassemble a packet" 94 default 2 95 depends on NET_IPV6_FRAGMENT 96 help 97 Incoming fragments are stored in per-packet queue before being 98 reassembled. This value defines the number of fragments that 99 can be handled at the same time to reassemble a single packet. 100 101 We do not have to accept IPv6 packets larger than 1500 bytes 102 (RFC 2460 ch 5). This means that we should receive everything 103 within the first two fragments. The first one being 1280 bytes and 104 the second one 220 bytes. 105 106 You can increase this value if you expect packets with more 107 than two fragments. 108 109config NET_IPV6_FRAGMENT_TIMEOUT 110 int "How long to wait the fragments to receive" 111 range 1 60 112 default 5 113 depends on NET_IPV6_FRAGMENT 114 help 115 How long to wait for IPv6 fragment to arrive before the reassembly 116 will timeout. RFC 2460 chapter 4.5 tells to wait for 60 seconds but 117 this might be too long in memory constrained devices. This value 118 is in seconds. 119 120config NET_IPV6_MLD 121 bool "Multicast Listener Discovery support" 122 default y 123 help 124 The value depends on your network needs. MLD should normally 125 be active. Currently we support only MLDv2. See RFC 3810 for 126 details. 127 128config NET_IPV6_NBR_CACHE 129 bool "Neighbor cache" 130 default y 131 help 132 The value depends on your network needs. Neighbor cache should 133 normally be active. 134 135config NET_IPV6_ND 136 bool "Activate neighbor discovery" 137 depends on NET_IPV6_NBR_CACHE 138 default y 139 help 140 The value depends on your network needs. ND should normally 141 be active. 142 143config NET_IPV6_DAD 144 bool "Activate duplicate address detection" 145 depends on NET_IPV6_NBR_CACHE 146 default y 147 help 148 The value depends on your network needs. DAD should normally 149 be active. 150 151config NET_IPV6_RA_RDNSS 152 bool "Support RA RDNSS option" 153 depends on NET_IPV6_ND 154 select DNS_RESOLVER 155 default y 156 help 157 Support Router Advertisement Recursive DNS Server option. 158 See RFC 6106 for details. The value depends on your network needs. 159 160config NET_6LO 161 bool "6lowpan IPv6 Compression library" 162 default y if NET_L2_IEEE802154 163 help 164 6lowpan compression and fragmentation. It is enabled by default 165 if 802.15.4 is present, since using IPv6 on it requires it. 166 167 You may disable this option if you wish to implement a non-IP 168 custom protocol on top of the 802.15.4 MAC (L2) layer. 169 170config NET_6LO_CONTEXT 171 bool "6lowpan context based compression" 172 depends on NET_6LO 173 help 174 Enables 6lowpan context based compression based on information 175 received in Router Advertisement (RA) message. 176 177config NET_MAX_6LO_CONTEXTS 178 int "Number of supported 6CO (6lowpan contexts options)" 179 depends on NET_6LO_CONTEXT 180 default 1 181 range 1 16 182 help 183 6lowpan context options table size. The value depends on your 184 network and memory consumption. More 6CO options uses more memory. 185 186if NET_6LO 187module = NET_6LO 188module-dep = NET_LOG 189module-str = Log level for 6LoWPAN library 190module-help = Enables 6LoWPAN code to output debug messages. 191source "subsys/net/Kconfig.template.log_config.net" 192endif # NET_6LO 193 194module = NET_IPV6 195module-dep = NET_LOG 196module-str = Log level for core IPv6 197module-help = Enables core IPv6 code to output debug messages. 198source "subsys/net/Kconfig.template.log_config.net" 199 200module = NET_ICMPV6 201module-dep = NET_LOG 202module-str = Log level for ICMPv6 203module-help = Enables ICMPv6 code to output debug messages. 204source "subsys/net/Kconfig.template.log_config.net" 205 206module = NET_IPV6_NBR_CACHE 207module-dep = NET_LOG 208module-str = Log level for IPv6 neighbor cache 209module-help = Enables IPv6 Neighbor Cache code to output debug messages. 210source "subsys/net/Kconfig.template.log_config.net" 211 212endif # NET_NATIVE_IPV6 213endif # NET_IPV6 214