Skip to content

Commit

Permalink
samples: wifi: Add Wi-Fi and Thread coexistence sample
Browse files Browse the repository at this point in the history
Initial version of the Wi-Fi and Thread coexistence sample.

This sample is to run Wi-Fi and Thread throughputs simultaneously
to show how they coexist.

Wi-Fi in station mode connects to Wi-Fi AP and runs Zperf.
Thread in child mode connects to leader and runs Zperf.

Signed-off-by: Murali Thokala <[email protected]>
  • Loading branch information
muraliThokala committed May 26, 2024
1 parent 831e362 commit 51e2c60
Show file tree
Hide file tree
Showing 20 changed files with 2,898 additions and 0 deletions.
95 changes: 95 additions & 0 deletions doc/nrf/images/wifi_thread_coex.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
24 changes: 24 additions & 0 deletions samples/wifi/thread_coex/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
#
# Copyright (c) 2024 Nordic Semiconductor ASA
#
# SPDX-License-Identifier: LicenseRef-Nordic-5-Clause
#

cmake_minimum_required(VERSION 3.20.0)

set(DTC_OVERLAY_FILE "dts.overlay")

find_package(Zephyr REQUIRED HINTS $ENV{ZEPHYR_BASE})
project(nrf_wifi_thread_coex)

target_sources(app PRIVATE
src/ot_utils.c
src/zperf_utils.c
src/ot_coex_functions.c
src/main.c
)

# For net_private.h
target_include_directories(app PUBLIC
${ZEPHYR_BASE}/subsys/net/ip
)
122 changes: 122 additions & 0 deletions samples/wifi/thread_coex/Kconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,122 @@
#
# Copyright (c) 2024 Nordic Semiconductor
#
# SPDX-License-Identifier: LicenseRef-Nordic-5-Clause
#

source "Kconfig.zephyr"

menu "WiFi and Thread Coex sample"

config NET_CONFIG_PEER_IPV4_ADDR
string "Peer IPv4 address"
default "192.168.1.253"

config NET_CONFIG_PEER_IPV4_PORT
int "Peer IPv4 port"
default 5001

config WIFI_THREAD_STACK_SIZE
int "Wi-Fi thread stack size"
default 4096

config WIFI_THREAD_PRIORITY
int "Wi-Fi thread priority"
default 5

config WIFI_ZPERF_SERVER
bool "Zperf role: server or client"
default n

config WIFI_ZPERF_PROT_UDP
bool "UDP or TCP"
default y

config WIFI_ZPERF_PKT_SIZE
int "packet size"
default 1024

config WIFI_ZPERF_RATE
int "rate in kbps"
default 10000

# Thread configurations
config OT_CHANNEL
int "Thread device operating channel"
default 18

config OT_PAN_ID
int "Thread device PAN ID"
default 1

config OT_ROLE_CLIENT
bool "Thread device role"
default y

config OT_PACKET_SIZE
int "Thread device packet size"
default 256

config OT_RATE_BPS
int "Thread device rate in bits per seconds"
default 10000

config NET_CONFIG_THREAD_PORT
int "Port for Thread zperf"
default 5001

config OT_ZPERF_PROT_UDP
bool "UDP or TCP"
default y

config OT_TX_PWR_CTRL_RSSI
bool "Enable TX power control for Thread"
default n

# Test parameters
choice TEST_TYPE
prompt "Test type"
default TEST_TYPE_WLAN_OT

config TEST_TYPE_WLAN_ONLY
bool "WLAN only"
help
Enable WLAN only

config TEST_TYPE_OT_ONLY
bool "Thread only"
help
Enable Thread only

config TEST_TYPE_WLAN_OT
bool "WLAN and Thread"
help
Enable WLAN and Thread
endchoice

config TEST_TYPE_WLAN
bool "WLAN"
default y if TEST_TYPE_WLAN_ONLY || TEST_TYPE_WLAN_OT
select WIFI
help
Enable WLAN

config TEST_TYPE_OT
bool "Thread"
default y if TEST_TYPE_OT_ONLY || TEST_TYPE_WLAN_OT
help
Enable Thread

config COEX_TEST_DURATION
int "test duration in milliseconds"
default 20000

config COEX_SEP_ANTENNAS
bool "No support for shared antenna in Thread and WLAN. Set it to yes"
default y

config SR_PROTOCOL_BLE
bool "Indicates if the SR protocol is Bluetooth LE or not"
default n

endmenu
Loading

0 comments on commit 51e2c60

Please sign in to comment.