net: app: Split code for configuring network to a separate lib, "config"
net_app library consisted of 2 disjoint parts: a) library to setup/configure networking on the application startup; b) library to setup client and server connections. As the configuration library is universally useful and is a generic Zephyr networking component, split it out to a seperate top-level networking library under net/lib/config/. Fixes: #7658 Signed-off-by: Paul Sokolovsky <paul.sokolovsky@linaro.org>
This commit is contained in:
parent
546d19a7cf
commit
c60df13110
11 changed files with 224 additions and 197 deletions
|
|
@ -3,7 +3,8 @@ add_subdirectory_if_kconfig(lwm2m)
|
||||||
add_subdirectory_if_kconfig(sntp)
|
add_subdirectory_if_kconfig(sntp)
|
||||||
add_subdirectory_ifdef(CONFIG_DNS_RESOLVER dns)
|
add_subdirectory_ifdef(CONFIG_DNS_RESOLVER dns)
|
||||||
add_subdirectory_ifdef(CONFIG_MQTT_LIB mqtt)
|
add_subdirectory_ifdef(CONFIG_MQTT_LIB mqtt)
|
||||||
add_subdirectory_ifdef(CONFIG_NET_APP_SETTINGS app)
|
add_subdirectory_ifdef(CONFIG_NET_APP app)
|
||||||
|
add_subdirectory_ifdef(CONFIG_NET_APP_SETTINGS config)
|
||||||
add_subdirectory_ifdef(CONFIG_NET_SOCKETS sockets)
|
add_subdirectory_ifdef(CONFIG_NET_SOCKETS sockets)
|
||||||
add_subdirectory_ifdef(CONFIG_WEBSOCKET websocket)
|
add_subdirectory_ifdef(CONFIG_WEBSOCKET websocket)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -22,7 +22,9 @@ source "subsys/net/lib/websocket/Kconfig"
|
||||||
|
|
||||||
endmenu
|
endmenu
|
||||||
|
|
||||||
menu "Network Application Support"
|
menu "Network Libraries"
|
||||||
|
|
||||||
|
source "subsys/net/lib/config/Kconfig"
|
||||||
|
|
||||||
source "subsys/net/lib/app/Kconfig"
|
source "subsys/net/lib/app/Kconfig"
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -3,18 +3,8 @@ zephyr_library_compile_definitions_ifdef(
|
||||||
CONFIG_NEWLIB_LIBC __LINUX_ERRNO_EXTENSIONS__
|
CONFIG_NEWLIB_LIBC __LINUX_ERRNO_EXTENSIONS__
|
||||||
)
|
)
|
||||||
|
|
||||||
zephyr_library_sources_ifdef(CONFIG_NET_APP init.c)
|
|
||||||
zephyr_library_sources_ifdef(CONFIG_NET_APP_SERVER net_app.c server.c)
|
zephyr_library_sources_ifdef(CONFIG_NET_APP_SERVER net_app.c server.c)
|
||||||
zephyr_library_sources_ifdef(CONFIG_NET_APP_CLIENT net_app.c client.c)
|
zephyr_library_sources_ifdef(CONFIG_NET_APP_CLIENT net_app.c client.c)
|
||||||
|
|
||||||
if(CONFIG_NET_APP_SETTINGS)
|
|
||||||
zephyr_library_sources_ifdef(
|
|
||||||
CONFIG_NET_L2_IEEE802154
|
|
||||||
ieee802154_settings.c
|
|
||||||
)
|
|
||||||
|
|
||||||
zephyr_library_sources_ifdef(CONFIG_NET_L2_BT bt_settings.c)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
zephyr_link_interface_ifdef(CONFIG_MBEDTLS mbedTLS)
|
zephyr_link_interface_ifdef(CONFIG_MBEDTLS mbedTLS)
|
||||||
zephyr_library_link_libraries_ifdef(CONFIG_MBEDTLS mbedTLS)
|
zephyr_library_link_libraries_ifdef(CONFIG_MBEDTLS mbedTLS)
|
||||||
|
|
|
||||||
|
|
@ -17,55 +17,6 @@ menuconfig NET_APP
|
||||||
|
|
||||||
if NET_APP
|
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
|
config NET_DEBUG_APP
|
||||||
bool "Debug net app library"
|
bool "Debug net app library"
|
||||||
default n
|
default n
|
||||||
|
|
@ -127,139 +78,3 @@ config NET_APP_TLS_STACK_SIZE
|
||||||
thus it is by default very large.
|
thus it is by default very large.
|
||||||
|
|
||||||
endif # NET_APP
|
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 || NET_L2_OPENTHREAD
|
|
||||||
|
|
||||||
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.
|
|
||||||
|
|
||||||
endif # NET_L2_IEEE802154 || IEEE802154_RAW_MODE || NET_L2_OPENTHREAD
|
|
||||||
|
|
||||||
if NET_L2_IEEE802154 || IEEE802154_RAW_MODE
|
|
||||||
|
|
||||||
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
|
|
||||||
|
|
|
||||||
18
subsys/net/lib/config/CMakeLists.txt
Normal file
18
subsys/net/lib/config/CMakeLists.txt
Normal file
|
|
@ -0,0 +1,18 @@
|
||||||
|
zephyr_library()
|
||||||
|
zephyr_library_compile_definitions_ifdef(
|
||||||
|
CONFIG_NEWLIB_LIBC __LINUX_ERRNO_EXTENSIONS__
|
||||||
|
)
|
||||||
|
|
||||||
|
zephyr_library_sources_ifdef(CONFIG_NET_APP_SETTINGS init.c)
|
||||||
|
|
||||||
|
if(CONFIG_NET_APP_SETTINGS)
|
||||||
|
zephyr_library_sources_ifdef(
|
||||||
|
CONFIG_NET_L2_IEEE802154
|
||||||
|
ieee802154_settings.c
|
||||||
|
)
|
||||||
|
|
||||||
|
zephyr_library_sources_ifdef(
|
||||||
|
CONFIG_NET_L2_BT
|
||||||
|
bt_settings.c
|
||||||
|
)
|
||||||
|
endif()
|
||||||
201
subsys/net/lib/config/Kconfig
Normal file
201
subsys/net/lib/config/Kconfig
Normal file
|
|
@ -0,0 +1,201 @@
|
||||||
|
# Kconfig - Options for networking configuration
|
||||||
|
|
||||||
|
#
|
||||||
|
# Copyright (c) 2017 Intel Corporation.
|
||||||
|
#
|
||||||
|
# SPDX-License-Identifier: Apache-2.0
|
||||||
|
#
|
||||||
|
|
||||||
|
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_CONFIG
|
||||||
|
bool "Debug net config library"
|
||||||
|
default n
|
||||||
|
default y if NET_LOG_GLOBAL
|
||||||
|
help
|
||||||
|
Enables net config library to output debug messages
|
||||||
|
|
||||||
|
menuconfig NET_APP_SETTINGS
|
||||||
|
bool "Set network settings for applications"
|
||||||
|
default n
|
||||||
|
depends on NET_APP
|
||||||
|
select NET_MGMT
|
||||||
|
select NET_MGMT_EVENT
|
||||||
|
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 || NET_L2_OPENTHREAD
|
||||||
|
|
||||||
|
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.
|
||||||
|
|
||||||
|
endif # NET_L2_IEEE802154 || IEEE802154_RAW_MODE || NET_L2_OPENTHREAD
|
||||||
|
|
||||||
|
if NET_L2_IEEE802154 || IEEE802154_RAW_MODE
|
||||||
|
|
||||||
|
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
|
||||||
Loading…
Reference in a new issue