Boot Linux faster!

Check our new training course

Boot Linux faster!

Check our new training course
and Creative Commons CC-BY-SA
lecture and lab materials

Bootlin logo

Elixir Cross Referencer

# 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

config NET_RPL_PREFIX
	string "Network IPv6 prefix"
	help
	What is the DAG id (prefix) of the RPL network. This is only used
	if you are creating a root node. You should specify here the full
	IPv6 address as that is used as a root node address.
	Example: 2001:db8::1/64

choice
	prompt "Network type"
	default NET_RPL_L2_ANY
	default NET_RPL_L2_IEEE802154 if NET_L2_IEEE802154
	help
	The type of the network that this RPL device is supporting.
	Currently all the nodes in the network need to be the same type
	like IEEE 802.15.4.

config NET_RPL_L2_ANY
	bool "Any network type"

config NET_RPL_L2_IEEE802154
	bool "IEEE 802.15.4"
endchoice

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_ETX
	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_MAX_PARENTS
	int "Maximum number of parents for one node"
	default NET_IPV6_MAX_NEIGHBORS
	help
	This determines how many RPL parents each node can have.

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