Raw TX Packet Transmission Issues with nRF WiFi

I'm trying to use raw packet transmission (IN combination with wifi promiscous mode and raw sockets eventually) with my nRF WiFi device. I have both the sample raw_tx_packet application and my modified version which attempts to send UDP packets over WiFi, but neither seems to be working correctly. The packets appear to be sent according to my application logs, but I can't see any traffic in Wireshark when monitoring in promiscuous mode, except for the initial ARP requests.

Unmodified Sample Issues

The unmodified sample gives me the following errors:

[00:00:13.243,591] <wrn> net_conn: pkt cloning failed, pkt 0x200682f8 dropped
[00:00:23.688,385] <err> wifi_nrf: hal_rpu_event_get: Unable to alloc HAL msg for event
[00:00:23.688,690] <err> wifi_nrf: hal_rpu_event_get: Unable to alloc HAL msg for event
[00:00:23.688,964] <err> wifi_nrf: hal_rpu_event_get: Unable to alloc HAL msg for event


Modified Sample Issues

My modified sample appears to successfully construct and send UDP packets (with logs showing successful transmission and returning proper byte counts), but no packets are visible in Wireshark monitoring.

#
# Copyright (c) 2023 Nordic Semiconductor ASA
#
# SPDX-License-Identifier: LicenseRef-Nordic-5-Clause
#
CONFIG_WIFI=y
CONFIG_WIFI_NRF700X=y
CONFIG_NRF_WIFI_LOW_POWER=n
CONFIG_NRF700X_RAW_DATA_TX=y
CONFIG_RAW_TX_PKT_SAMPLE_INTER_FRAME_DELAY_MS=100
# WPA supplicant
CONFIG_WPA_SUPP=y

CONFIG_WIFI_MGMT_EXT=y
CONFIG_WIFI_CREDENTIALS=y
CONFIG_WIFI_CREDENTIALS_STATIC=y
CONFIG_WIFI_CREDENTIALS_STATIC_SSID="xxxxxxxx"
CONFIG_WIFI_CREDENTIALS_STATIC_PASSWORD="xxxxxxx"
CONFIG_RAW_TX_PKT_SAMPLE_CONNECTION_MODE=y
# Networking
CONFIG_NETWORKING=y
CONFIG_NET_SOCKETS=y
CONFIG_NET_LOG=y
CONFIG_NET_IPV4=y
CONFIG_NET_UDP=y
CONFIG_NET_TCP=y
CONFIG_NET_DHCPV4=y

CONFIG_NET_PKT_RX_COUNT=8
CONFIG_NET_PKT_TX_COUNT=8

# Below section is the primary contributor to SRAM and is currently
# tuned for performance, but this will be revisited in the future.
CONFIG_NET_BUF_RX_COUNT=16
CONFIG_NET_BUF_TX_COUNT=16
CONFIG_NET_BUF_DATA_SIZE=1500
CONFIG_HEAP_MEM_POOL_SIZE=200000
CONFIG_NET_TC_TX_COUNT=1

CONFIG_NET_IF_UNICAST_IPV4_ADDR_COUNT=1
CONFIG_NET_MAX_CONTEXTS=5
CONFIG_NET_CONTEXT_SYNC_RECV=y

CONFIG_INIT_STACKS=y

CONFIG_NET_L2_ETHERNET=y

CONFIG_NET_CONFIG_SETTINGS=y
CONFIG_NET_CONFIG_INIT_TIMEOUT=0

CONFIG_NET_SOCKETS_POLL_MAX=10

# Memories
CONFIG_MAIN_STACK_SIZE=4096
CONFIG_NET_TX_STACK_SIZE=4096
CONFIG_NET_RX_STACK_SIZE=4096

# Debugging
CONFIG_STACK_SENTINEL=y
CONFIG_DEBUG_COREDUMP=y
CONFIG_DEBUG_COREDUMP_BACKEND_LOGGING=y
CONFIG_DEBUG_COREDUMP_MEMORY_DUMP_MIN=y
CONFIG_SHELL_CMDS_RESIZE=n

CONFIG_RAW_TX_PKT_SAMPLE_RATE_VALUE=1
CONFIG_RAW_TX_PKT_SAMPLE_RATE_FLAGS=0
CONFIG_RAW_TX_PKT_SAMPLE_QUEUE_NUM=0
# Kernel options
CONFIG_ENTROPY_GENERATOR=y

# Logging
CONFIG_LOG=y
CONFIG_LOG_BUFFER_SIZE=2048
CONFIG_POSIX_CLOCK=y
CONFIG_POSIX_API=y

CONFIG_NET_CONFIG_MY_IPV4_ADDR="192.168.1.99"
CONFIG_NET_CONFIG_MY_IPV4_NETMASK="255.255.255.0"
CONFIG_NET_CONFIG_MY_IPV4_GW="192.168.1.1"

# printing of scan results puts pressure on queues in new locking
# design in net_mgmt. So, use a higher timeout for a crowded
# environment.
CONFIG_NET_MGMT_EVENT_QUEUE_TIMEOUT=5000




  • How can I verify that the generic sample is actually sending packets? Are there any debug logs or hardware indicators I should be looking for or any errors from the nrf7000 i can read back?
  • Can anyone recreate this issue with the standard raw TX sample? It would help to know if others can successfully see the packets in Wireshark or if this is a widespread issue.

Related