# Kconfig.rpl - RPL Options # # Copyright (c) 2016 Intel Corporation. # # SPDX-License-Identifier: Apache-2.0 # menuconfig NET_RPL bool "Enable RPL (Ripple) support" default n select NET_IPV6 select NET_IPV6_NBR_CACHE select NET_ROUTE help See RFC 6550 and RFC 6551 for details. Enable this if required by the network needs. if NET_RPL choice prompt "Objective function" default NET_RPL_MRHOF help The objective function to use. All RPL nodes in a DODAG must use the same OF. The default is MRHOF, see RFC 6719 for details. Other alternative is OF0, see RFC 6552 for details. config NET_RPL_MRHOF bool "Minimum Rank with Hysteresis, RFC 6719" help Choose this (MRHOF) if unsure. config NET_RPL_OF0 bool "OF Zero, RFC 6552" help Objective function zero (OF0). endchoice choice prompt "Routing Metric" default NET_RPL_MC_NONE help The routing metric to use. This must be a valid DAG Metric Container Object Type. When MRH OF (RFC6719) is used with ETX, no metric container must be used as the rank carries ETX directly. config NET_RPL_MC_NONE bool "No routing metric" config NET_RPL_MC_EXT bool "Estimated number of transmissions (ETX)" config NET_RPL_MC_ENERGY bool "Energy based routing metric" endchoice choice prompt "Mode of operation (MOP)" default NET_RPL_MOP2 help Mode of operation (MOP) level. MOP0 : No Downward routes maintained by RPL MOP1 : Non-Storing Mode of Operation MOP2 : Storing Mode of Operation with no multicast support MOP3 : Storing Mode of Operation with multicast support See RFC 6550 ch. 6.3.1 figure 15 for details. config NET_RPL_MOP2 bool "Storing Mode of Operation with no multicast support" help Choose this if unsure. config NET_RPL_MOP3 bool "Storing Mode of Operation with multicast support" select NET_ROUTE_MCAST endchoice config NET_RPL_PROBING bool "Enable RPL probing" depends on NET_RPL default n help When enabled, probes will be sent periodically to keep parent link estimates up to date. config NET_RPL_MAX_INSTANCES int "Maximum number of RPL instances" depends on NET_RPL default 1 help This determines how many RPL instances to allocate. config NET_RPL_MAX_DAG_PER_INSTANCE int "Maximum number of DAGs within an instance" depends on NET_RPL default 2 help This determines how many DAG to allocate within one RPL instance. config NET_RPL_DAO_SPECIFY_DAG bool "Specify DAG when sending a DAO message." depends on NET_RPL default y help This determines whether the DAG is embedded into DAO ICMPv6 message. config NET_RPL_DIO_INTERVAL_MIN int "DIO interval." depends on NET_RPL default 12 help The DIO interval value n represents 2^n ms. According to the specification, the default value is 3 which means 8 milliseconds. That is far too low when using duty cycling with wake-up intervals that are typically hundreds of milliseconds. We thus set the default to 2^12 ms = 4.096 s. config NET_RPL_DIO_INTERVAL_DOUBLINGS int "Maximum amount of timer doublings." depends on NET_RPL default 8 help The maximum interval by default will be 2^(12+8) ms = 1048.576 s. RFC 6550 suggests a default value of 20, which would not be ok when we start with a minimum interval of 2^12. config NET_RPL_DIO_REDUNDANCY int "DIO redundancy." depends on NET_RPL default 10 help RFC 6550 suggests a default value of 10. It is unclear what the basis of this suggestion is. Network operators might attain more efficient operation by tuning this parameter for specific deployments. See also RFC 6206. config NET_RPL_DEFAULT_LIFETIME_UNIT int "Default route lifetime unit." depends on NET_RPL default 65535 help This is the granularity of time used in RPL lifetime values, in seconds. config NET_RPL_DEFAULT_LIFETIME int "Default route lifetime." depends on NET_RPL default 255 help Default route lifetime as a multiple of the lifetime unit. config NET_RPL_MCAST_LIFETIME int "Multicast route lifetime." depends on NET_RPL_MOP3 default 3 help Multicast route lifetime as a multiple of the lifetime unit. config NET_RPL_MIN_HOP_RANK_INC int "Minimum hop rank increment" depends on NET_RPL default 256 config NET_RPL_INIT_LINK_METRIC int "Initial link metric" depends on NET_RPL default 2 help Initial metric attributed to a link when the ETX is unknown. config NET_RPL_DAO_TIMER int "DAO sending timer value" depends on NET_RPL default 4 help How many seconds to wait before sending DAO. config NET_RPL_DAO_ACK bool "Node expecting DAO ACK" depends on NET_RPL default y help Node expecting DAO ACK for DAO message. Enable if interested in status of DAO message. config NET_RPL_DAO_MAX_RETRANSMISSIONS int "Max DAO retransmissions" depends on NET_RPL && NET_RPL_DAO_ACK default 4 range 1 5 help If NET_RPL_DAO_ACK enabled then node expects DAO ACK message from the parent. If DAO message is routed through different nodes, ACK may be lost. So retry sending DAO message for max number of trials. config NET_RPL_PREFERENCE int "DAG preference field default value" depends on NET_RPL default 0 config NET_RPL_GROUNDED bool "DAG grounded default value" depends on NET_RPL default false help A grounded DODAG offers connectivity to hosts that are required for satisfying the application-defined goal. A floating DODAG is not expected to satisfy the goal; in most cases, it only provides routes to nodes within the DODAG. config NET_RPL_DEFAULT_INSTANCE hex "Default DAG instance id" depends on NET_RPL default 0x1e help This value decides which DAG instance we should participate in by default. config NET_RPL_INSERT_HBH_OPTION bool "Add RPL Hop-by-hop ext header to sent UDP packets" depends on NET_RPL default y help This option control the insertion of the RPL Hop-by-Hop extension header into UDP packets originating from this node. config NET_RPL_DIS_SEND bool "Send DIS periodically" depends on NET_RPL default y help Enable periodic DODAG Information Solicitation message sending. config NET_RPL_DIS_INTERVAL int "Default DIS interval" depends on NET_RPL_DIS_SEND default 60 help This value decides how often DIS messages are sent. The value is in seconds. config NET_STATISTICS_RPL bool "Collect RPL statistics" depends on NET_STATISTICS default n help Keep track of RPL related statistics config NET_DEBUG_RPL bool "Debug RPL" default n depends on NET_RPL && NET_LOG help Enables RPL output debug messages endif # NET_RPL