# # 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 timout of the ICMPv6 pmtu entry 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_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