# Copyright (c) 2022 Nordic Semiconductor ASA
# Copyright (c) 2023 Arm Limited (or its affiliates). All rights reserved.
# SPDX-License-Identifier: Apache-2.0

menuconfig NET_ZPERF
	bool "zperf shell utility"
	select NET_CONTEXT_RCVTIMEO if NET_NATIVE_UDP
	select NET_SOCKETS_SERVICE
	help
	  This option enables zperf shell utility, which allows to generate
	  network traffic and evaluate network bandwidth.

if NET_ZPERF

config ZPERF_WORK_Q_THREAD_PRIORITY
	int "zperf work queue thread priority"
	default NUM_PREEMPT_PRIORITIES
	help
	  Priority of the thread that handles zperf work queue.

config ZPERF_WORK_Q_STACK_SIZE
	int "zperf work queue thread stack size"
	default 2048
	help
	  Stack size of the thread that handles zperf work queue.

module = NET_ZPERF
module-dep = NET_LOG
module-str = Log level for zperf
module-help = Enable debug message of zperf libray.
source "subsys/net/Kconfig.template.log_config.net"

config NET_ZPERF_MAX_PACKET_SIZE
	int "Maximum packet size"
	default 1024
	help
	  Upper size limit for packets sent by zperf.

config NET_ZPERF_MAX_SESSIONS
	int "Maximum number of zperf sessions"
	default 4
	help
	  Upper size limit for connections handled by zperf.

endif
