blob: e5adb9e5728aa300c00cd5b348e823ce6b0eef7f [file] [log] [blame]
# Copyright (c) 2016 Intel Corporation.
# SPDX-License-Identifier: Apache-2.0
menuconfig NET_MGMT
bool "Network Management API"
help
Add support for NM API that enables managing different aspects
of the network stack as well as receiving notification on network
events (ip address change, iface up and running ...).
config NET_MGMT_EVENT
bool "Add support for runtime network event notifications"
depends on NET_MGMT
help
This adds support for the stack to notify events towards any
relevant listener. This can be necessary when application
(or else) needs to be notified on a specific network event
(ip address change for instance) to trigger some related work.
if NET_MGMT_EVENT
choice NET_MGMT_EVENT_WORKER
prompt "Network event scheduling"
default NET_MGMT_EVENT_THREAD
config NET_MGMT_EVENT_THREAD
bool "Separate network events thread"
help
Create a dedicated thread for network event callback handlers.
If NET_MGMT_EVENT_INFO is enabled the data will be copied to
a message queue.
config NET_MGMT_EVENT_SYSTEM_WORKQUEUE
bool "System work queue"
help
Submit work to the system work queue to schedule calling network
event callback handlers.
If NET_MGMT_EVENT_INFO is enabled the data will be copied to
a message queue.
config NET_MGMT_EVENT_DIRECT
bool "Trigger callback on event emit"
help
Call network event handlers when the event is emitted.
If NET_MGMT_EVENT_INFO is enabled a data pointer is passed to
callback handlers, no info data is copied.
endchoice
config NET_MGMT_EVENT_QUEUE
bool
default y
depends on NET_MGMT_EVENT_THREAD || NET_MGMT_EVENT_SYSTEM_WORKQUEUE
help
Hidden option to enable the network event's queue if asynchronous
callbacks are done.
config NET_MGMT_EVENT_STACK_SIZE
int "Stack size for the inner thread handling event callbacks"
default 4096 if WIFI_NM_WPA_SUPPLICANT
default 2048 if COVERAGE_GCOV
default 840 if X86
default 800 if THREAD_LOCAL_STORAGE
default 768
depends on NET_MGMT_EVENT_THREAD
help
Set the internal stack size for NM to run registered callbacks
on events.
config NET_MGMT_EVENT_QUEUE_SIZE
int "Size of event queue"
default 16 if NET_MGMT_EVENT_MONITOR
default 5
range 1 1024
depends on NET_MGMT_EVENT_QUEUE
help
Numbers of events which can be queued at same time. Note that if a
3rd event comes in, the first will be removed without generating any
notification. Thus the size of this queue has to be tweaked depending
on the load of the system, planned for the usage.
config NET_MGMT_EVENT_QUEUE_TIMEOUT
int "Timeout for event queue"
default 10
range 1 10000
depends on NET_MGMT_EVENT_QUEUE
help
Timeout in milliseconds for the event queue. This timeout is used to
wait for the queue to be available.
config NET_MGMT_EVENT_INFO
bool "Passing information along with an event"
help
Event notifier will be able to provide information to an event,
and listeners will then be able to get it. Such information depends
on the type of event.
config NET_MGMT_EVENT_MONITOR
bool "Monitor network events from net shell"
depends on NET_SHELL && NET_MGMT_EVENT_INFO
help
Allow user to monitor network events from net shell using
"net events [on|off]" command. The monitoring is disabled by
default. Note that you should probably increase the value of
NET_MGMT_EVENT_QUEUE_SIZE from the default in order not to miss
any events.
config NET_MGMT_EVENT_MONITOR_AUTO_START
bool "Start the event monitor automatically at boot"
depends on NET_MGMT_EVENT_MONITOR && SHELL_BACKEND_SERIAL
help
Allow user to start monitoring network events automatically
when the system starts. The auto start is disabled by default.
The default UART based shell is used to print data.
module = NET_MGMT_EVENT
module-dep = NET_LOG
module-str = Log level for network management event core
module-help = Enable debug messages output for network management events.
source "subsys/net/Kconfig.template.log_config.net"
config NET_DEBUG_MGMT_EVENT_STACK
bool "Stack analysis output on Net MGMT event core"
select INIT_STACKS
depends on NET_MGMT_EVENT_THREAD
help
Add debug messages output on how much Net MGMT event stack is used.
endif # NET_MGMT_EVENT