239d718bc7
Debugging IPv6 Neighbor Discovery issues requires to enable full IPv6 logs, which can get bloated given it provides logs for every single packet. We should be able to focus on IPv6 ND logs only, hence introduce a separate log module for IPv6 ND. Signed-off-by: Robert Lubos <robert.lubos@nordicsemi.no>
229 lines
6.9 KiB
Plaintext
229 lines
6.9 KiB
Plaintext
# 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
|