287 lines
7.2 KiB
Plaintext
287 lines
7.2 KiB
Plaintext
# 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 1
|
|
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
|
|
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
|