zephyr/net/ip/Kconfig

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