| # 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. |
| 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 |
| |
| source "net/ip/Kconfig.debug" |
| |
| endif |