Skip to content

RxSBasicSegment cannot parse the segment with version v256 #67

Description

@WillyWonka321

QCA9300 → QCA9300: RX fails with RxSBasicSegment cannot parse the segment with version v256

Summary

I have two UP Squared boards (Board A and Board B), each with two Wi-Fi NICs:

  • Intel AX210
  • Qualcomm Atheros AR93xx / QCA9300

Test scenarios:

Scenario Result
AX210 → AX210 (injector on TX board, logger on RX board) ✅ Works correctly
QCA9300 → QCA9300 (injector on TX board, logger on RX board) ❌ TX seems OK, but RX fails with repeated parsing errors

Error message on RX:

RxSBasicSegment cannot parse the segment with version v256.. Error skipped

Hardware

  • Board A: UP Squared + Intel AX210 + Qualcomm Atheros AR93xx (QCA9300)
  • Board B: UP Squared + Intel AX210 + Qualcomm Atheros AR93xx (QCA9300)

Both machines show the same PCI devices:

01:00.0 Network controller [0280]: Qualcomm Atheros AR93xx Wireless Network Adapter [168c:0030] (rev 01)
        Subsystem: Apple Inc. AirPort Extreme [106b:009a]
        Kernel driver in use: ath9k
        Kernel modules: ath9k

04:00.0 Network controller [0280]: Intel Corporation Wi-Fi 6 AX210/AX211/AX411 160MHz [8086:2725] (rev 1a)
        Subsystem: Intel Corporation Wi-Fi 6 AX210 160MHz [8086:0020]
        Kernel driver in use: iwlwifi
        Kernel modules: iwlwifi

Software Versions

Board A

$ uname -a
Linux geat-UP-APL01 6.5.0-15-generic #15~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC Fri Jan 12 18:54:30 UTC 2 x86_64 x86_64 x86_64 GNU/Linux

$ uname -r
6.5.0-15-generic

$ lsb_release -a
Distributor ID: Ubuntu
Description:    Ubuntu 22.04.5 LTS
Release:        22.04
Codename:       jammy

$ dpkg -l | grep -E "picoscenes|linux-image|linux-headers"
ii  linux-headers-6.5.0-15-generic             6.5.0-15.15~22.04.1       amd64
ii  linux-headers-6.8.0-101-generic            6.8.0-101.101~22.04.1     amd64
ii  linux-headers-generic-hwe-22.04            6.8.0-101.101~22.04.1     amd64
ii  linux-image-6.5.0-15-generic               6.5.0-15.15~22.04.1       amd64
rc  linux-image-6.5.0-18-generic               6.5.0-18.18~22.04.1       amd64
rc  linux-image-6.8.0-100-generic              6.8.0-100.100~22.04.1     amd64
ii  linux-image-6.8.0-101-generic              6.8.0-101.101~22.04.1     amd64
ii  linux-image-generic-hwe-22.04              6.8.0-101.101~22.04.1     amd64
iU  picoscenes-all                             20200715                   amd64
ii  picoscenes-driver-modules-6.5.0-15-generic 20240210                   amd64
ii  picoscenes-platform                        2025.1217.1547             amd64
ii  picoscenes-source-updater                  1.3                        amd64

$ apt-cache policy picoscenes-platform picoscenes-driver-modules-$(uname -r)
picoscenes-platform:
  Installed: 2025.1217.1547
  Candidate: 2025.1217.1547
picoscenes-driver-modules-6.5.0-15-generic:
  Installed: 20240210
  Candidate: 20240210

Board B

$ uname -a
Linux geat-UP-APL01 6.5.0-15-generic #15~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC Fri Jan 12 18:54:30 UTC 2 x86_64 x86_64 x86_64 GNU/Linux

$ uname -r
6.5.0-15-generic

$ lsb_release -a
Distributor ID: Ubuntu
Description:    Ubuntu 22.04.5 LTS
Release:        22.04
Codename:       jammy

$ dpkg -l | grep -E "picoscenes|linux-image|linux-headers"
hi  linux-headers-6.5.0-15-generic              6.5.0-15.15~22.04.1       amd64
ii  linux-headers-6.8.0-101-generic             6.8.0-101.101~22.04.1     amd64
ii  linux-headers-generic-hwe-22.04             6.8.0-101.101~22.04.1     amd64
hi  linux-image-6.5.0-15-generic                6.5.0-15.15~22.04.1       amd64
rc  linux-image-6.5.0-18-generic                6.5.0-18.18~22.04.1       amd64
rc  linux-image-6.8.0-100-generic               6.8.0-100.100~22.04.1     amd64
ii  linux-image-6.8.0-101-generic               6.8.0-101.101~22.04.1     amd64
rc  linux-image-6.8.0-94-generic                6.8.0-94.96~22.04.1       amd64
ii  linux-image-generic-hwe-22.04               6.8.0-101.101~22.04.1     amd64
ii  picoscenes-all                              20200715                   amd64
ii  picoscenes-driver-modules-6.5.0-15-generic  20240210                   amd64
ii  picoscenes-platform                         2025.1217.1547             amd64
ic  picoscenes-plugins-demo-echoprobe-forwarder 2025.1217.1604             amd64
ii  picoscenes-source-updater                   1.3                        amd64

$ apt-cache policy picoscenes-platform picoscenes-driver-modules-$(uname -r)
picoscenes-platform:
  Installed: 2025.1217.1547
  Candidate: 2025.1217.1547
picoscenes-driver-modules-6.5.0-15-generic:
  Installed: 20240210
  Candidate: 20240210

Kernel modules loaded (both boards)

$ lsmod | egrep 'ath9k|ath|mac80211|cfg80211|iwl'
ath9k                 286720  0
ath9k_common           53248  1 ath9k
ath9k_hw              704512  2 ath9k_common,ath9k
iwlmvm                851968  0
ath                    36864  3 ath9k_common,ath9k,ath9k_hw
mac80211             1720320  2 iwlmvm,ath9k
iwlwifi               585728  1 iwlmvm
libarc4                12288  1 mac80211
cfg80211             1314816  6 ath9k_common,iwlmvm,ath9k,ath,iwlwifi,mac80211

PicoScenes NIC mapping (both boards)

$ array_status

Device Status of Wi-Fi NIC array "all":
PhyPath  DEV      PHY   [MON]  DEV_MacAddr        [MON_MacAddr]      [BW]  [CF]   ProductName
1        wlp1s0   phy1  mon1   00:16:ea:12:34:56  7c:c3:a1:af:45:3a  20    5200   AR93xx Wireless Network Adapter
4        wlp4s0   phy0         90:10:57:66:df:d7                                  Wi-Fi 6 AX210/AX211/AX411 160MHz

Reproduction Steps

QCA9300 preparation (both boards)

$sudo array_prepare_for_picoscenes wlp1s0


Default working freq is 5200 HT20.
Attempt changing CPU frequency governor to performance ...
/usr/sbin/ChangeCPUFreqGovernor: línea 37: cpufreq-info: orden no encontrada
/usr/sbin/ChangeCPUFreqGovernor: línea 38: cpufreq-info: orden no encontrada
Un-managing NICs from Network-Manager ...
Unlocking RF-Kill...
Disabling power management...
Disconnecting Wi-Fi...
Stopping monitor interfaces...
Changing MAC address...
Adding monitor interfaces...
Adding a monitor interface for phy1 (phy1), named mon1 ...
Changing working frequency to 5200 HT20 ...
Preparation is done.
----------------------
Device Status of Wi-Fi NIC array "all":
PhyPath DEV PHY [MON] DEV_MacAddr [MON_MacAddr] [CF_Control] [BW] [CF] ProductName
1 wlp1s0 phy1 mon1 00:16:ea:12:34:56 7c:c3:a1:af:6d:a5 5200 20 5200 AR93xx Wireless Network Adapter
4 wlp4s0 phy0 4c:b0:4a:fb:ed:a7 Wi-Fi 6 AX210/AX211/AX411 160MHz

Scenario 2 — QCA9300 → QCA9300 ❌ (failing)

Channel config: 2417 MHz, HT20 — Format: HT, MCS 0

TX — Board B (QCA9300 injector)

PicoScenes -d debug -i 1 --channel "2417e6 20e6 2417e6" \
  --mode injector --repeat 500 --delay 10000 \
  --format HT --mcs 0

The injector prints TxFrame debug output, so transmission appears to be happening normally.

TX Board B QCA9300 injector

RX — Board A (QCA9300 logger)

PicoScenes -d debug -i 1 --channel "2417e6 20e6 2417e6" \
  --mode logger --output captura

Actual output (repeated):

Error occurs during Rx frame parsing: RxSBasicSegment cannot parse the segment with version v256.. Error skipped
RX Board A QCA9300 logger error

Question

Could you help identify what might cause the QCA9300 RX parsing to fail with segment version v256?

Any suggested parameters, recommended QCA9300 logging mode, or extra diagnostics to collect are very welcome. Thank you!

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions