blob: b18923044353fa6f667f87b299d51c22652652af [file] [log] [blame]
# 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