blob: 78ea8b781a79fda772f9c7a1542ab78ebc1d2054 [file] [log] [blame]
# Kconfig.app - Options for networking applications
#
# Copyright (c) 2017 Intel Corporation.
#
# SPDX-License-Identifier: Apache-2.0
#
menuconfig NET_APP
bool "Network application API support [EXPERIMENTAL]"
default y
select NET_MGMT
select NET_MGMT_EVENT
help
Enable API that helps to create client/server network applications.
This API is experimental and subject to change.
if NET_APP
config NET_APP_AUTO_INIT
bool "Init networking support automatically during device startup"
default y
help
If this option is set, then the net_app API is automatically
initialized when the device is started. If you do not wish to do
this, then disable this and call net_app_init() in your application.
config NET_APP_INIT_PRIO
int "Startup priority for the network application init"
default 95
depends on NET_APP_AUTO_INIT
config NET_APP_INIT_TIMEOUT
int "How long to wait for networking to be ready and available"
default 30
depends on NET_APP_AUTO_INIT
help
The value is in seconds. If for example IPv4 address from DHCPv4 is not
received within this limit, then the net_app_init() call will fail
during the device startup.
config NET_APP_NEED_IPV6
bool "This application wants IPv6 support"
depends on NET_APP_AUTO_INIT
select NET_IPV6
help
The network application needs IPv6 support to function properly.
This option makes sure the network application is initialized properly
in order to use IPv6.
config NET_APP_NEED_IPV6_ROUTER
bool "This application wants IPv6 router to exists"
depends on NET_APP_AUTO_INIT
depends on NET_IPV6
help
The network application needs IPv6 router to exists before continuing.
What this means that the application wants to wait until it receives
IPv6 router advertisement message before continuing.
config NET_APP_NEED_IPV4
bool "This application wants IPv4 support"
depends on NET_APP_AUTO_INIT
select NET_IPV4
help
The network application needs IPv4 support to function properly.
This option makes sure the network application is initialized properly
in order to use IPv4.
config NET_DEBUG_APP
bool "Debug net app library"
default n
default y if NET_LOG_GLOBAL
help
Enables net app library to output debug messages
config NET_APP_SERVER
bool "Enable server support"
default n
help
Enables net app library server APIs.
config NET_APP_SERVER_NUM_CONN
int "Number of simultaneous incoming connections"
default 1
depends on NET_APP_SERVER
help
Tells how many simultaneous incoming connections the server instance can
support. The value of CONFIG_NET_TCP_BACKLOG_SIZE must be greater than
or equal to CONFIG_NET_APP_SERVER_NUM_CONN.
config NET_APP_CLIENT
bool "Enable client support"
default n
help
Enables net app library client APIs.
config NET_APP_TLS
bool "Enable TLS support for TCP applications"
default n
depends on NET_TCP
select MBEDTLS
help
Enables net app library to use TLS for encrypted communication.
config NET_APP_DTLS
bool "Enable DTLS support for UDP applications"
depends on NET_UDP
select MBEDTLS
default n
help
Enables net app library to use DTLS for encrypted UDP communication.
config NET_APP_DTLS_TIMEOUT
int "DTLS session timeout"
depends on NET_APP_DTLS
default 15
help
If a DTLS session does not have any activity, then disconnect
the session. The value is in seconds.
config NET_DEBUG_APP_TLS_LEVEL
int "Debug level for mbedtls in net app library"
depends on (NET_APP_TLS || NET_APP_DTLS) && NET_DEBUG_APP
default 0
range 0 4
help
Sets log level for the mbedtls when debugging net_app library.
Levels are (from ext/lib/crypto/mbedtls/include/mbedtls/debug.h):
0 No debug
1 Error
2 State change
3 Information
4 Verbose
config NET_APP_TLS_STACK_SIZE
int "TLS handler thread stack size"
default 8192
depends on NET_APP_TLS || NET_APP_DTLS
help
TLS handler thread stack size. The mbedtls routines will use this stack
thus it is by default very large.
endif # NET_APP
menuconfig NET_APP_SETTINGS
bool "Set network settings for applications"
default n
depends on NET_APP
help
Allow IP addresses to be set in config file for
networking client/server sample applications, or
some link-layer dedicated settings like the channel.
Beware this is not meant to be used for proper
provisioning but quick sampling/testing.
if NET_APP_SETTINGS
if NET_IPV6
config NET_APP_MY_IPV6_ADDR
string "My IPv6 address"
help
Use 2001:db8::1 here if uncertain.
config NET_APP_PEER_IPV6_ADDR
string "Peer IPv6 address"
help
This is only applicable in client side applications that try
to establish a connection to peer host.
Use 2001:db8::2 here if uncertain.
endif # NET_IPV6
if NET_IPV4
config NET_APP_MY_IPV4_ADDR
string "My IPv4 address"
help
Use 192.0.2.1 here if uncertain.
config NET_APP_MY_IPV4_NETMASK
string "My IPv4 netmask"
default "255.255.255.0"
help
Static netmask to use if not overridden by DHCP. Use empty value to
skip setting static value.
config NET_APP_MY_IPV4_GW
string "My IPv4 gateway"
help
Static gateway to use if not overridden by DHCP. Use empty value to
skip setting static value.
config NET_APP_PEER_IPV4_ADDR
string "Peer IPv4 address"
help
This is only applicable in client side applications that try
to establish a connection to peer host.
Use 192.0.2.2 here if uncertain.
endif # NET_IPV4
if NET_L2_IEEE802154 || IEEE802154_RAW_MODE
config NET_APP_IEEE802154_DEV_NAME
string "IEEE 802.15.4 device name"
help
The device name to get bindings from in the sample application.
config NET_APP_IEEE802154_PAN_ID
hex "IEEE 802.15.4 PAN ID"
default 0xabcd
help
The PAN ID to use by default in the sample.
config NET_APP_IEEE802154_CHANNEL
int "IEEE 802.15.4 channel"
default 26
help
The channel to use by default in the sample application.
config NET_APP_IEEE802154_RADIO_TX_POWER
int "IEEE 802.15.4 TX power in dbm"
default 0
help
The TX power to use by default in the sample application.
See NET_L2_IEEE802154_RADIO_DFLT_TX_POWER for more info.
config NET_APP_IEEE802154_SECURITY_KEY
string "IEEE 802.15.4 security key"
default "moooh!"
depends on NET_L2_IEEE802154_SECURITY
help
The key string to use for the link-layer security part.
config NET_APP_IEEE802154_SECURITY_KEY_MODE
int "IEEE 802.15.4 security key mode"
default 0
range 0 0
depends on NET_L2_IEEE802154_SECURITY
help
The key mode to use for the link-layer security part.
Only implicit mode is supported, thus 0.
config NET_APP_IEEE802154_SECURITY_LEVEL
int "IEEE 802.15.4 security level (0-7)"
default 0
range 0 7
depends on NET_L2_IEEE802154_SECURITY
help
The security level to use for the link-layer security part.
0 means no security
1 authentication only with a 4 bytes length tag
2 authentication only with a 8 bytes length tag
3 authentication only with a 16 bytes length tag
4 encryption only
5 encryption/authentication with a 4 bytes length tag
6 encryption/authentication with a 8 bytes length tag
7 encryption/authentication with a 16 bytes length tag
endif # NET_L2_IEEE802154 || IEEE802154_RAW_MODE
if NET_L2_BT
config NET_APP_BT_NODE
bool "Enable Bluetooth node support"
default n
select NET_L2_BT_MGMT
help
Enables application to operate in node mode which requires GATT
service to be registered and start advertising as peripheral.
endif # NET_L2_BT
endif # NET_APP_SETTINGS