| # |
| # 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 |
| select NET_MCASTGROUP |
| 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_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 timeout of the ICMPv6 pmtu entry |
| |
| config NET_ICMPv6_SOCKET |
| bool "IPPROTO_ICMP6 socket support" |
| default n |
| select NET_READAHEAD |
| ---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_CHECKSUMS |
| bool "ICMPv6 checksums" |
| default y |
| ---help--- |
| Enable/disable ICMPv6 checksum support. |
| |
| 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_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. |
| |
| 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 |