2015-01-15 04:26:50 +08:00
|
|
|
#
|
|
|
|
# For a description of the syntax of this configuration file,
|
2015-06-28 22:08:57 +08:00
|
|
|
# see the file kconfig-language.txt in the NuttX tools repository.
|
2015-01-15 04:26:50 +08:00
|
|
|
#
|
|
|
|
|
|
|
|
menu "ICMPv6 Networking Support"
|
|
|
|
|
|
|
|
config NET_ICMPv6
|
|
|
|
bool "Enable ICMPv6 networking"
|
|
|
|
default n
|
2023-12-13 12:39:43 +08:00
|
|
|
select NET_MCASTGROUP
|
2015-01-15 04:26:50 +08:00
|
|
|
depends on NET
|
|
|
|
---help---
|
|
|
|
Enable minimal ICMPv6 support. Includes built-in support
|
|
|
|
for sending replies to received ECHO (ping) requests.
|
|
|
|
|
2018-11-10 01:25:57 +08:00
|
|
|
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
|
2015-01-15 04:26:50 +08:00
|
|
|
|
2023-05-11 19:32:30 +08:00
|
|
|
config NET_ICMPv6_PMTU_ENTRIES
|
|
|
|
int "PMTUD ICMPv6 pmtu entry"
|
|
|
|
default 0
|
|
|
|
---help---
|
|
|
|
The number of the ICMPv6 pmtu entry
|
|
|
|
|
|
|
|
config NET_ICMPv6_PMTU_TIMEOUT
|
|
|
|
int "PMTUD ICMPv6 pmtu entry timeout (Time Unit:minute)"
|
|
|
|
default 10
|
|
|
|
depends on NET_ICMPv6_PMTU_ENTRIES != 0
|
|
|
|
---help---
|
|
|
|
The timout of the ICMPv6 pmtu entry
|
|
|
|
|
2017-10-25 01:23:08 +08:00
|
|
|
config NET_ICMPv6_SOCKET
|
|
|
|
bool "IPPROTO_ICMP6 socket support"
|
2015-01-21 01:06:51 +08:00
|
|
|
default n
|
2019-12-31 23:26:14 +08:00
|
|
|
select MM_IOB
|
2015-01-21 01:06:51 +08:00
|
|
|
---help---
|
2017-10-25 01:23:08 +08:00
|
|
|
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.
|
2015-12-01 21:48:56 +08:00
|
|
|
|
2024-04-24 11:06:52 +08:00
|
|
|
config NET_ICMPv6_CHECKSUMS
|
|
|
|
bool "ICMPv6 checksums"
|
|
|
|
default y
|
|
|
|
---help---
|
|
|
|
Enable/disable ICMPv6 checksum support.
|
|
|
|
|
2015-02-03 00:49:50 +08:00
|
|
|
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.
|
|
|
|
|
2015-02-03 01:34:51 +08:00
|
|
|
if NET_ICMPv6_NEIGHBOR
|
|
|
|
|
|
|
|
config ICMPv6_NEIGHBOR_MAXTRIES
|
2015-02-04 03:25:28 +08:00
|
|
|
int "ICMPv6 neighbor solicitation retries"
|
2015-02-03 01:34:51 +08:00
|
|
|
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
|
2015-02-04 03:25:28 +08:00
|
|
|
int "ICMPv6 neighbor re-solicit delay"
|
2015-02-03 04:59:49 +08:00
|
|
|
default 20
|
2015-02-03 01:34:51 +08:00
|
|
|
---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
|
|
|
|
|
2015-02-03 07:54:48 +08:00
|
|
|
config NET_ICMPv6_AUTOCONF
|
2015-02-03 22:01:55 +08:00
|
|
|
bool "ICMPv6 auto-configuration"
|
2015-02-03 07:54:48 +08:00
|
|
|
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.
|
|
|
|
|
2015-02-04 03:25:28 +08:00
|
|
|
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.
|
|
|
|
|
2023-03-15 13:52:18 +08:00
|
|
|
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.
|
|
|
|
|
2015-02-04 03:25:28 +08:00
|
|
|
endif # NET_ICMPv6_AUTOCONF
|
2015-02-05 23:28:00 +08:00
|
|
|
|
|
|
|
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
|
|
|
|
|
2023-09-26 16:35:36 +08:00
|
|
|
config NET_ICMPv6_ROUTER_LIFETIME
|
|
|
|
int "Router Advertisement router lifetime in seconds"
|
|
|
|
default 1800
|
|
|
|
---help---
|
|
|
|
Set the router lifetime for advertising as a default router.
|
|
|
|
Set to 0 to only advertise autoconfiguration prefix without
|
|
|
|
advertising as a router.
|
|
|
|
|
2017-11-08 21:47:41 +08:00
|
|
|
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
|
|
|
|
|
2015-02-05 23:28:00 +08:00
|
|
|
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.
|
|
|
|
|
2023-03-15 19:52:22 +08:00
|
|
|
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.
|
|
|
|
|
2017-11-08 21:47:41 +08:00
|
|
|
endif # NET_ICMPv6_ROUTER_MANUAL
|
2015-02-05 23:28:00 +08:00
|
|
|
endif # NET_ICMPv6_ROUTER
|
2017-10-25 01:23:08 +08:00
|
|
|
|
|
|
|
if NET_ICMPv6_SOCKET
|
|
|
|
|
2023-02-11 21:09:01 +08:00
|
|
|
config NET_ICMPv6_PREALLOC_CONNS
|
|
|
|
int "Preallocated ICMPv6 packet sockets"
|
2017-10-25 01:23:08 +08:00
|
|
|
default 4
|
2023-02-11 21:09:01 +08:00
|
|
|
---help---
|
|
|
|
Number of ICMPv6 connections (all tasks).
|
2023-02-26 02:14:11 +08:00
|
|
|
|
2023-02-11 21:09:01 +08:00
|
|
|
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.
|
2023-02-26 02:14:11 +08:00
|
|
|
|
2023-02-11 21:09:01 +08:00
|
|
|
This is useful in case the system is under very heavy load (or
|
|
|
|
under attack), ensuring that the heap will not be exhausted.
|
2019-12-31 23:26:14 +08:00
|
|
|
|
|
|
|
config NET_ICMPv6_NPOLLWAITERS
|
|
|
|
int "Number of ICMPv6 poll waiters"
|
|
|
|
default 1
|
2017-10-25 01:23:08 +08:00
|
|
|
|
|
|
|
endif # NET_ICMPv6_SOCKET
|
|
|
|
|
2018-11-10 01:25:57 +08:00
|
|
|
endif # NET_ICMPv6 && !NET_ICMPv6_NO_STACK
|
2015-01-15 04:26:50 +08:00
|
|
|
endmenu # ICMPv6 Networking Support
|