incubator-nuttx/net/icmpv6/Kconfig

266 lines
7.7 KiB
Plaintext

#
# For a description of the syntax of this configuration file,
# see the file kconfig-language.txt in the NuttX tools repository.
#
menu "ICMPv6 Networking Support"
config NET_ICMPv6
bool "Enable ICMPv6 networking"
default n
depends on NET
---help---
Enable minimal ICMPv6 support. Includes built-in support
for sending replies to received ECHO (ping) requests.
config NET_ICMPv6_NO_STACK
bool "Disable ICMPv6 stack"
default n
select NET_ICMPv6
---help---
Build without ICMPv6 stack even if ICMPv6 networking support enabled.
if NET_ICMPv6 && !NET_ICMPv6_NO_STACK
config NET_ICMPv6_SOCKET
bool "IPPROTO_ICMP6 socket support"
default n
select MM_IOB
---help---
Enable support for IPPROTO_ICMP6 sockets. These sockets are needed
for application level support for sending ICMPv7 ECHO requests and
receiving associated ICMPv6 ECHO replies.
config NET_ICMPv6_NEIGHBOR
bool "Solicit destination addresses"
default n
---help---
Enable logic to send ICMPv6 neighbor solicitation requests if
the target IPv6 address mapping does not appear in the Neighbor
table.
if NET_ICMPv6_NEIGHBOR
config ICMPv6_NEIGHBOR_MAXTRIES
int "ICMPv6 neighbor solicitation retries"
default 5
---help---
Send the Neighbor solicitation this number of times before giving
up and deciding that the target IP6 address is non reachable.
config ICMPv6_NEIGHBOR_DELAYMSEC
int "ICMPv6 neighbor re-solicit delay"
default 20
---help---
Wait this number of milliseconds after sending the Neighbor
Solicitation before checking if the IPv6 address mapping is present
in the Neighbor Table. This time should be related to the maximum
round trip time on the network since it is basically the time from
when an Neighbor Solicitation is sent until the Neighbor
Advertisement is received.
endif # NET_ICMPv6_NEIGHBOR
config NET_ICMPv6_AUTOCONF
bool "ICMPv6 auto-configuration"
default n
---help---
Enable ioctl() logic that implements ICMPv6 auto configuration.
ICMPv6 auto configuration is an alternative to DHCPv6 for obtaining
an IPv6 address from a router.
if NET_ICMPv6_AUTOCONF
config ICMPv6_AUTOCONF_MAXTRIES
int "ICMPv6 router solicitation retries"
default 5
---help---
Send the Router solicitation this number of times before giving
up and deciding that no router is going to provide an IP address.
config ICMPv6_AUTOCONF_DELAYMSEC
int "ICMPv6 router re-solicit delay"
default 20
---help---
Wait this number of milliseconds before re-sending the Router
Solicitation. This time should be related to the maximum
round trip time on the network since it is basically the time from
when an Router Solicitation is sent until the Router
Advertisement is received.
config ICMPv6_AUTOCONF_RDNSS
bool "ICMPv6 handle RDNSS field in router advertise"
default n
---help---
Handle the RDNSS field in the Router Advertisement and add it to
netdb DNS Server.
endif # NET_ICMPv6_AUTOCONF
config NET_ICMPv6_ROUTER
bool "Router Advertisement"
default n
---help---
In a router-less environment, NuttX can be configured to provide a
response to Router Solicitation messages and, hence, providing
addressing to IPv6 nodes on the network.
if NET_ICMPv6_ROUTER
config NET_ICMPv6_ROUTER_MANUAL
bool "Manual router prefix"
default n
---help---
Select this to set the advertised router prefix manually. Otherwise, it
will be derived from the device IPv6 address and prefix length set in
the netdev structure.
if NET_ICMPv6_ROUTER_MANUAL
config NET_ICMPv6_PREFLEN
int "Prefix length"
default 64
range 0 128
---help---
The length (in bits) of the IPv6 address prefix. This is the number
of MS bits under the network mask. The default of 64 would
correspond to a network mask of:
0xffff:0xffff:0xffff:0xffff:0x0000:0x0000:0x0000:0x0000.
comment "Router Prefix"
config NET_ICMPv6_PREFIX_1
hex "[0]"
default 0xfc00
range 0x0 0xffff
---help---
This the IPv6 address prefix that will be provided in the IPv6 Router
Advertisement message. This is the first of the 8-values. The
default for all eight values is fc00::0.
config NET_ICMPv6_PREFIX_2
hex "[1]"
default 0x0000
range 0x0 0xffff
---help---
This the IPv6 address prefix that will be provided in the IPv6 Router
Advertisement message. This is the second of the 8-values. The
default for all eight values is fc00::0.
config NET_ICMPv6_PREFIX_3
hex "[2]"
default 0x0000
range 0x0 0xffff
---help---
This the IPv6 address prefix that will be provided in the IPv6 Router
Advertisement message. This is the third of the 8-values. The
default for all eight values is fc00::0.
config NET_ICMPv6_PREFIX_4
hex "[3]"
default 0x0000
range 0x0 0xffff
---help---
This the IPv6 address prefix that will be provided in the IPv6 Router
Advertisement message. This is the fourth of the 8-values. The
default for all eight values is fc00::0.
config NET_ICMPv6_PREFIX_5
hex "[4]"
default 0x0000
range 0x0 0xffff
---help---
This the IPv6 address prefix that will be provided in the IPv6 Router
Advertisement message. This is the fifth of the 8-values. The
default for all eight values is fc00::0.
config NET_ICMPv6_PREFIX_6
hex "[5]"
default 0x0000
range 0x0 0xffff
---help---
This the IPv6 address prefix that will be provided in the IPv6 Router
Advertisement message. This is the sixth of the 8-values. The
default for all eight values is fc00::0.
config NET_ICMPv6_PREFIX_7
hex "[6]"
default 0x0000
range 0x0 0xffff
---help---
This the IPv6 address prefix that will be provided in the IPv6 Router
Advertisement message. This is the seventh of the 8-values. The
default for all eight values is fc00::0.
config NET_ICMPv6_PREFIX_8
hex "[7]"
default 0x0000
range 0x0 0xffff
---help---
This the IPv6 address prefix that will be provided in the IPv6 Router
Advertisement message. This is the last of the 8-values. The
default for all eight values is fc00::0.
config NET_ICMPv6_ROUTER_RDNSS
bool "Fill the RDNSS into Router Advertisement"
default n
---help---
Fill the RDNSS from the netdb DNS Server into the Router
Advertisement.
endif # NET_ICMPv6_ROUTER_MANUAL
endif # NET_ICMPv6_ROUTER
if NET_ICMPv6_SOCKET
config NET_ICMPv6_PREALLOC_CONNS
int "Preallocated ICMPv6 packet sockets"
default 4
---help---
Number of ICMPv6 connections (all tasks).
This number of connections will be pre-allocated during system boot.
If dynamic connections allocation is enabled, more connections may
be allocated at a later time, as the system needs them. Else this
will be the maximum number of connections available to the system
at all times.
Set to 0 to disable (and rely only on dynamic allocations).
config NET_ICMPv6_ALLOC_CONNS
int "Dynamic ICMPv6 connections allocation"
default 0
---help---
Dynamic memory allocations for ICMPv6.
When set to 0 all dynamic allocations are disabled.
When set to 1 a new connection will be allocated every time,
and it will be free'd when no longer needed.
Setting this to 2 or more will allocate the connections in
batches (with batch size equal to this config). When a
connection is no longer needed, it will be returned to the
free connections pool, and it will never be deallocated!
config NET_ICMPv6_MAX_CONNS
int "Maximum number of ICMPv6 connections"
default 0
depends on NET_ICMPv6_ALLOC_CONNS > 0
---help---
If dynamic connections allocation is selected (NET_ICMPv6_ALLOC_CONNS > 0)
this will limit the number of connections that can be allocated.
This is useful in case the system is under very heavy load (or
under attack), ensuring that the heap will not be exhausted.
config NET_ICMPv6_NPOLLWAITERS
int "Number of ICMPv6 poll waiters"
default 1
endif # NET_ICMPv6_SOCKET
endif # NET_ICMPv6 && !NET_ICMPv6_NO_STACK
endmenu # ICMPv6 Networking Support