619 lines
15 KiB
Plaintext
619 lines
15 KiB
Plaintext
# networking.kconf - Generic networking configuration options
|
|
|
|
#
|
|
# Copyright (c) 2015 Intel Corporation.
|
|
#
|
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
# you may not use this file except in compliance with the License.
|
|
# You may obtain a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
# See the License for the specific language governing permissions and
|
|
# limitations under the License.
|
|
#
|
|
|
|
#
|
|
# Networking options
|
|
#
|
|
|
|
menuconfig NETWORKING
|
|
bool
|
|
prompt "Generic networking support"
|
|
select NANO_TIMEOUTS
|
|
select NANO_TIMERS
|
|
select NET_BUF
|
|
default n
|
|
help
|
|
This option enabled generic networking support.
|
|
|
|
choice
|
|
prompt "IP stack"
|
|
depends on NETWORKING
|
|
help
|
|
Select what IP stack to use. The legacy stack is
|
|
Contiki based uIP stack.
|
|
default NET_UIP
|
|
config NET_UIP
|
|
bool "uIP"
|
|
help
|
|
Choose this if unsure.
|
|
|
|
config NET_YAIP
|
|
bool "New IP stack [EXPERIMENTAL]"
|
|
help
|
|
New IP stack.
|
|
endchoice
|
|
|
|
if NETWORKING && NET_UIP
|
|
|
|
config IP_BUF_RX_SIZE
|
|
int "Number of IP net buffers to use when receiving data"
|
|
default 1
|
|
help
|
|
Each network buffer will contain one received IPv6 or IPv4 packet.
|
|
Each buffer will occupy 1280 bytes of memory.
|
|
|
|
config IP_BUF_TX_SIZE
|
|
int "Number of IP net buffers to use when sending data"
|
|
default 2
|
|
help
|
|
Each network buffer will contain one sent IPv6 or IPv4 packet.
|
|
Each buffer will occupy 1280 bytes of memory.
|
|
|
|
config IP_RX_STACK_SIZE
|
|
int "RX fiber stack size"
|
|
default 1024
|
|
help
|
|
Set the RX fiber stack size in bytes. The RX fiber is waiting
|
|
network packets from lower level bearers. It will then run the
|
|
packet through IP stack which validates the packet and passes
|
|
it eventually to application.
|
|
|
|
config IP_TX_STACK_SIZE
|
|
int "TX fiber stack size"
|
|
default 1024
|
|
help
|
|
Set the TX fiber stack size in bytes. The TX fiber is waiting
|
|
data from application. It will then validate the data and push
|
|
it to network driver to be sent out.
|
|
|
|
config IP_TIMER_STACK_SIZE
|
|
int "Timer fiber stack size"
|
|
default 1536
|
|
help
|
|
Set the timer fiber stack size in bytes. The timer fiber is
|
|
responsible for handling re-transmissions and periodic network
|
|
packet sending like IPv6 router solicitations.
|
|
|
|
config NET_MAX_CONTEXTS
|
|
int "How many network context to use"
|
|
default 2
|
|
help
|
|
The network context is similar concept as network socket.
|
|
It defines a network endpoint and number of context depends
|
|
on application usage.
|
|
|
|
config UDP_MAX_CONNECTIONS
|
|
int "How many UDP connections can be used"
|
|
default 2
|
|
help
|
|
Amount of concurrent UDP connections.
|
|
|
|
choice
|
|
prompt "Internet Protocol version"
|
|
depends on NETWORKING
|
|
help
|
|
The IP stack can either support IPv6 or IPv4 but
|
|
not both at the same time. The IPv6 support should
|
|
be selected by default as there is limited set of
|
|
network bearers provided that support IPv4.
|
|
default NETWORKING_WITH_IPV6
|
|
config NETWORKING_WITH_IPV6
|
|
bool "IPv6"
|
|
help
|
|
Choose this if unsure.
|
|
config NETWORKING_WITH_IPV4
|
|
bool "IPv4"
|
|
help
|
|
Legacy IP.
|
|
endchoice
|
|
|
|
config NETWORKING_STATISTICS
|
|
bool
|
|
prompt "Enable IP statistics gathering"
|
|
depends on NETWORKING
|
|
default n
|
|
help
|
|
This is only for debugging the network. Do not activate
|
|
this in live system! The option uses memory and slows
|
|
down IP packet processing.
|
|
|
|
if NETWORKING_WITH_IPV6
|
|
config NETWORKING_IPV6_NO_ND
|
|
bool
|
|
prompt "Disable IPv6 neighbor discovery"
|
|
depends on NETWORKING
|
|
depends on NETWORKING_WITH_IPV6
|
|
default n
|
|
help
|
|
Normally ND should be enabled but in order to simplify
|
|
the network setup it can be turned off if using
|
|
slip and tun device.
|
|
|
|
config NETWORKING_MAX_NEIGHBORS
|
|
int "Max number of neighbors"
|
|
depends on NETWORKING
|
|
depends on NETWORKING_WITH_IPV6
|
|
default 4
|
|
help
|
|
Specifies the maximum number of neighbors that each node will
|
|
be able to handle.
|
|
endif
|
|
|
|
config NETWORKING_WITH_TCP
|
|
bool
|
|
prompt "Enable TCP protocol"
|
|
depends on NETWORKING
|
|
default n
|
|
help
|
|
Enable Transmission and Control Protocol (TCP) support.
|
|
|
|
config TCP_MAX_CONNECTIONS
|
|
int "Maximum number of connections"
|
|
depends on NETWORKING_WITH_TCP
|
|
default 2
|
|
help
|
|
Tweak the TCP maximum segment size. Normally one should
|
|
not change this but let the IP stack to calculate a best
|
|
size for it.
|
|
|
|
config TCP_DISABLE_ACTIVE_OPEN
|
|
bool
|
|
prompt "Disallow host to initiate connection attempt"
|
|
depends on NETWORKING_WITH_TCP
|
|
default n
|
|
help
|
|
By default application is allowed to initiate a TCP
|
|
connection attempt. If the application is only acting
|
|
as a server, then some memory can be saved by disabling
|
|
the client role.
|
|
|
|
config TCP_MSS
|
|
int
|
|
prompt "TCP maximum segment size"
|
|
depends on NETWORKING_WITH_TCP
|
|
default 0
|
|
help
|
|
Tweak the TCP maximum segment size. Normally one should
|
|
not change this but let the IP stack to calculate a best
|
|
size for it.
|
|
|
|
config TCP_RECEIVE_WINDOW
|
|
int
|
|
prompt "TCP receive window size"
|
|
depends on NETWORKING_WITH_TCP
|
|
default 0
|
|
help
|
|
Tweak the TCP receive window size. Normally one should
|
|
not change this but let the IP stack to calculate a best
|
|
size for it.
|
|
|
|
config NETWORKING_WITH_RPL
|
|
bool
|
|
prompt "Enable RPL (ripple) IPv6 mesh routing protocol"
|
|
depends on NETWORKING && NETWORKING_WITH_IPV6
|
|
default n
|
|
help
|
|
Enable RPL (RFC 6550) IPv6 Routing Protocol for
|
|
Low-Power and Lossy Networks.
|
|
|
|
config RPL_STATS
|
|
bool
|
|
prompt "Enable RPL statistics"
|
|
depends on NETWORKING_WITH_RPL
|
|
select NETWORKING_STATISTICS
|
|
default n
|
|
help
|
|
Enable RPL statistics support.
|
|
|
|
config RPL_PROBING
|
|
bool
|
|
prompt "Enable RPL probing"
|
|
depends on NETWORKING_WITH_RPL
|
|
default n
|
|
help
|
|
Enable RPL probing support. When enabled, probes will be sent
|
|
periodically to keep parent link estimates up to date.
|
|
|
|
choice
|
|
prompt "Objective function"
|
|
depends on NETWORKING_WITH_RPL
|
|
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.
|
|
default RPL_WITH_MRHOF
|
|
config RPL_WITH_MRHOF
|
|
bool "Minimum Rank with Hysteresis, RFC 6719"
|
|
help
|
|
Choose this (MRHOF) if unsure.
|
|
config RPL_WITH_OF0
|
|
bool "OF Zero, RFC 6552"
|
|
help
|
|
Objective function zero (OF0).
|
|
endchoice
|
|
|
|
config NETWORKING_WITH_TRICKLE
|
|
bool "Enable Trickle algorithm"
|
|
depends on NETWORKING
|
|
default n
|
|
help
|
|
Enable Trickle algorithm (RFC 6206) support. This only
|
|
includes Trickle library but IP stack does not call its
|
|
functions.
|
|
|
|
config NETWORKING_WITH_LOOPBACK
|
|
bool
|
|
prompt "Enable loopback driver"
|
|
depends on NETWORKING
|
|
default n
|
|
help
|
|
Enable a simple loopback driver that installs
|
|
IPv6 loopback addresses into routing table and
|
|
neighbor cache. All packets transmitted are
|
|
looped back to the receiving fifo/fiber.
|
|
|
|
config NETWORK_LOOPBACK_TEST_COUNT
|
|
int "How many packets the loopback test passes"
|
|
depends on NETWORKING_WITH_LOOPBACK
|
|
default 0
|
|
help
|
|
If set to 0, then the loopback test runs forever.
|
|
|
|
choice
|
|
prompt "Wired networking support"
|
|
depends on NETWORKING
|
|
default NETWORKING_NO_WIRED
|
|
config NETWORKING_NO_WIRED
|
|
bool "No wired network driver"
|
|
help
|
|
Do not enable any wired network driver. It is still
|
|
possible to select other types of network drivers if
|
|
this option is selected.
|
|
config NETWORKING_UART
|
|
bool "Network UART/slip driver"
|
|
select UART_PIPE
|
|
help
|
|
Enable UART driver for passing IPv6 packets using slip.
|
|
config ETHERNET
|
|
bool "Ethernet drivers"
|
|
help
|
|
Include Ethernet drivers in system config. This
|
|
option enables Ethernet support in the core network
|
|
subsystem, but it is necessary to also select a
|
|
specific Ethernet device driver.
|
|
endchoice
|
|
|
|
config NETWORKING_DEBUG_UART
|
|
bool
|
|
prompt "Network UART driver debug"
|
|
depends on NETWORKING_UART && NETWORKING_WITH_LOGGING
|
|
default n
|
|
help
|
|
This option enables debug support for network UART
|
|
driver.
|
|
|
|
config ETHERNET_DEBUG
|
|
bool
|
|
prompt "Network Ethernet driver debug"
|
|
depends on NETWORKING_WITH_LOGGING && ETHERNET
|
|
default n
|
|
help
|
|
This option enables debug support for Ethernet drivers.
|
|
|
|
config L2_BUFFERS
|
|
bool
|
|
default n
|
|
|
|
config NETWORKING_WITH_15_4
|
|
bool
|
|
prompt "Enable 802.15.4 driver"
|
|
depends on NETWORKING && NETWORKING_WITH_IPV6
|
|
select L2_BUFFERS
|
|
default n
|
|
help
|
|
Enable 802.15.4 driver that receives the IPv6 packet,
|
|
does header compression on it and writes it to the
|
|
802.15.4 stack Tx FIFO. The 802.15.4 Tx fiber will pick up
|
|
the header compressed IPv6 6lowpan packet and fragment
|
|
it into suitable chunks ready to be sent to the 802.15.4
|
|
hw driver
|
|
|
|
config NETWORKING_WITH_15_4_ALWAYS_ACK
|
|
bool
|
|
prompt "Always request 802.15.4 packet acknowledgment"
|
|
depends on NETWORKING_WITH_15_4
|
|
default n
|
|
help
|
|
This is meant to be used for testing only. Requesting an
|
|
acknowledgment on all data packet will draw power resource.
|
|
Use case for this option it for testing only.
|
|
|
|
# Using nullmac 802.15.4 driver only.
|
|
config NETWORKING_WITH_15_4_MAC_NULL
|
|
bool
|
|
default n
|
|
|
|
choice
|
|
prompt "802.15.4 RDC Driver"
|
|
depends on NETWORKING && NETWORKING_WITH_15_4
|
|
help
|
|
The 802.15.4 RDC (Radio Duty Cycle) layer can use either
|
|
sicslowmac or simplerdc.
|
|
config NETWORKING_WITH_15_4_RDC_SIMPLE
|
|
bool
|
|
prompt "simplerdc driver"
|
|
help
|
|
Enable simplerdc driver.
|
|
config NETWORKING_WITH_15_4_RDC_SICSLOWMAC
|
|
bool
|
|
prompt "sicslowmac driver"
|
|
help
|
|
Enable sicslowmac driver.
|
|
endchoice
|
|
|
|
config 15_4_RX_STACK_SIZE
|
|
int "Stack size of 802.15.4 RX fiber"
|
|
depends on NETWORKING_WITH_15_4
|
|
default 1024
|
|
help
|
|
Set the 802.15.4 RX fiber stack size in bytes. The RX fiber
|
|
is waiting network packets from 802.15.4 device driver.
|
|
It will then run the packet through 6LoWPAN stack which
|
|
uncompresses and de-fragments the packet and passes those to
|
|
upper layers.
|
|
|
|
config 15_4_TX_STACK_SIZE
|
|
int "Stack size of 802.15.4 TX fiber"
|
|
depends on NETWORKING_WITH_15_4
|
|
default 4096
|
|
help
|
|
Set the 802.15.4 TX fiber stack size in bytes. The TX fiber
|
|
is waiting network packets from IP stack. It then feeds those
|
|
to 6LoWPAN stack which compresses and fragments packets before
|
|
passing the fragments to 802.15.4 device driver. Note that
|
|
this stack needs to be bigger that TX stack because stack is
|
|
used to store the fragmented 802.15.4 packets.
|
|
|
|
config 15_4_BEACON_SUPPORT
|
|
bool
|
|
prompt "Enable 802.15.4 beacon support"
|
|
depends on NETWORKING_WITH_15_4
|
|
default n
|
|
help
|
|
Enable 802.15.4 beacon support
|
|
|
|
config 15_4_BEACON_STATS
|
|
bool
|
|
prompt "Enable 802.15.4 beacon statistics"
|
|
depends on NETWORKING_WITH_15_4
|
|
depends on 15_4_BEACON_SUPPORT
|
|
select NETWORKING_STATISTICS
|
|
default n
|
|
help
|
|
Enable 802.15.4 beacon statistics support.
|
|
|
|
config NETWORKING_WITH_15_4_PAN_ID
|
|
hex
|
|
prompt "IEEE 802.15.4 PAN id/address"
|
|
depends on NETWORKING_WITH_15_4
|
|
default 0xabcd
|
|
help
|
|
All the 802.15.4 devices that want to connect to each
|
|
other need to have same PAN id (address).
|
|
Default PAN id is 0xABCD
|
|
|
|
choice
|
|
prompt "802.15.4 Radio Driver"
|
|
depends on NETWORKING && NETWORKING_WITH_15_4
|
|
default n
|
|
help
|
|
The 802.15.4 layer can either support loopback within
|
|
or loopback with uart but not both at the same time.
|
|
|
|
config NETWORKING_WITH_15_4_TI_CC2520
|
|
bool
|
|
prompt "TI CC2520"
|
|
select TEST_RANDOM_GENERATOR
|
|
help
|
|
Enable Texas Instruments CC2520 802.15.4 radio driver.
|
|
|
|
config NETWORKING_WITH_15_4_LOOPBACK
|
|
bool
|
|
prompt "Loopback"
|
|
help
|
|
Enable 802.15.4 loopback radio driver that receives
|
|
the 802.15.4 frame and put it back 802.15.4 Rx Fifo.
|
|
|
|
config NETWORKING_WITH_15_4_LOOPBACK_UART
|
|
bool
|
|
prompt "Loopback with UART"
|
|
select UART_PIPE
|
|
help
|
|
Enable 802.15.4 loopback radio driver that sends
|
|
802.15.4 frames out of qemu through uart and receive
|
|
frames through uart. This way one can test 802.15.4 frames
|
|
between two qemus
|
|
endchoice
|
|
|
|
config NETWORKING_WITH_BT
|
|
bool
|
|
prompt "Enable Bluetooth driver"
|
|
depends on NETWORKING && NETWORKING_WITH_IPV6
|
|
select L2_BUFFERS
|
|
select NETWORKING_IPV6_NO_ND
|
|
select NETWORKING_WITH_6LOWPAN
|
|
select 6LOWPAN_COMPRESSION_IPHC
|
|
select BLUETOOTH
|
|
select BLUETOOTH_PERIPHERAL
|
|
select BLUETOOTH_L2CAP_DYNAMIC_CHANNEL
|
|
select BLUETOOTH_SMP
|
|
default n
|
|
help
|
|
Enable Bluetooth driver that send and receives IPv6 packets,
|
|
does header compression on it and writes it to the
|
|
Bluetooth stack via L2CAP channel.
|
|
|
|
config NETWORKING_WITH_6LOWPAN
|
|
bool
|
|
prompt "Enable 6LoWPAN (IPv6 compression) in the uIP stack"
|
|
depends on NETWORKING
|
|
depends on NETWORKING_WITH_15_4 || NETWORKING_WITH_BT
|
|
default n
|
|
help
|
|
Enable 6LoWPAN in uIP stack. Currently this requires 802.15.4
|
|
stack to be enabled.
|
|
|
|
choice
|
|
prompt "6LoWPAN compression method"
|
|
depends on NETWORKING_WITH_6LOWPAN
|
|
help
|
|
Select the compression method that is used in 6LoWPAN.
|
|
default 6LOWPAN_COMPRESSION_IPV6
|
|
config 6LOWPAN_COMPRESSION_IPV6
|
|
bool "No compression"
|
|
help
|
|
Choose this if unsure.
|
|
config 6LOWPAN_COMPRESSION_IPHC
|
|
bool "IP header compression"
|
|
help
|
|
IP header compression
|
|
endchoice
|
|
|
|
config TINYDTLS
|
|
bool
|
|
prompt "Enable tinyDTLS support."
|
|
depends on NETWORKING
|
|
default n
|
|
help
|
|
Enable tinyDTLS support so that applications can use it.
|
|
This is needed at least in CoAP.
|
|
|
|
config TINYDTLS_DEBUG
|
|
bool
|
|
prompt "Enable tinyDTLS debugging support."
|
|
depends on TINYDTLS
|
|
default n
|
|
help
|
|
Enable tinyDTLS debugging support.
|
|
|
|
config ER_COAP
|
|
bool
|
|
prompt "Enable Erbium CoAP engine support."
|
|
depends on NETWORKING
|
|
default n
|
|
help
|
|
Enable Erbium CoAP engine support so that applications can use it.
|
|
|
|
config ER_COAP_WITH_DTLS
|
|
bool
|
|
prompt "Use DTLS in CoAP"
|
|
depends on ER_COAP
|
|
select TINYDTLS
|
|
default n
|
|
help
|
|
Make CoAP engine use DTLS. Note that if you activate DTLS, you
|
|
are not able to send or receive non-DTLS CoAP messages, and
|
|
vice versa.
|
|
|
|
config ER_COAP_LINK_FORMAT_FILTERING
|
|
bool "Enable link format filtering"
|
|
select MINIMAL_LIBC_EXTENDED
|
|
default n
|
|
help
|
|
Make CoAP engine support link format filters.
|
|
|
|
config COAP_STATS
|
|
bool
|
|
prompt "Enable CoAP statistics"
|
|
depends on ER_COAP
|
|
select NETWORKING_STATISTICS
|
|
default n
|
|
help
|
|
Enable CoAP statistics support.
|
|
|
|
config ER_COAP_CLIENT
|
|
bool
|
|
prompt "Enable CoAP client support"
|
|
depends on ER_COAP
|
|
default n
|
|
help
|
|
Compile in client CoAP support.
|
|
|
|
config DHCP
|
|
bool
|
|
prompt "Enable DHCP support."
|
|
depends on NETWORKING && NETWORKING_WITH_IPV4
|
|
default n
|
|
help
|
|
Enable DHCP support so that applications can use it.
|
|
choice
|
|
prompt "DHCP message type"
|
|
depends on DHCP
|
|
help
|
|
Select the DHCP message type broadcast or unicast.
|
|
default DHCP_BROADCAST
|
|
config DHCP_BROADCAST
|
|
bool "Broadcast message"
|
|
help
|
|
Choose this if unsure.
|
|
config DHCP_UNICAST
|
|
bool "Unicast message"
|
|
help
|
|
DHCP message type
|
|
endchoice
|
|
|
|
config NET_SANITY_TEST
|
|
bool
|
|
prompt "Enable networking sanity test"
|
|
depends on NETWORKING
|
|
default n
|
|
help
|
|
Enable networking sanity tests. Network sanity test
|
|
verification and test report submission will fall under
|
|
this config.
|
|
|
|
config NET_15_4_LOOPBACK_NUM
|
|
int
|
|
prompt "Number of times loopback test runs"
|
|
depends on (NETWORKING_WITH_15_4_LOOPBACK || NETWORKING_WITH_15_4_LOOPBACK_UART) && NET_SANITY_TEST
|
|
default 0
|
|
help
|
|
Number of times loopback test runs, 0 means infinite.
|
|
|
|
config NET_TESTING
|
|
bool
|
|
prompt "Enable network testing setup"
|
|
depends on NETWORKING
|
|
default n
|
|
help
|
|
Setup the network stack such a way that it is suitable for
|
|
testing with Qemu and slip.
|
|
|
|
endif
|
|
|
|
if NETWORKING
|
|
|
|
if NET_YAIP
|
|
source "net/yaip/Kconfig"
|
|
endif
|
|
|
|
source "net/ip/Kconfig.debug"
|
|
|
|
endif
|