Skip to content

RTL8814AU: devourer-RX captures 0 frames in tests/regress.py full-matrix #51

@josephnef

Description

@josephnef

Symptom

In tests/regress.py --full-matrix --channel 100, every cell where the RX side is RTL8814AU (devourer) returns 0 hits, regardless of TX side:

Cell TX side RX side (devourer 8814AU) Result
11 RTL8821AU (kernel) RTL8814AU (devourer) 0 hits / 452 TX ✗
12 RTL8821AU (devourer) RTL8814AU (devourer) 0 hits / 7000 TX ✗
19 RTL8812AU (kernel) RTL8814AU (devourer) 0 hits / 450 TX ✗
20 RTL8812AU (devourer) RTL8814AU (devourer) 0 hits / 6500 TX ✗
23 RTL8812AU (kernel) RTL8821AU (devourer) 0 hits / 444 TX ✗
24 RTL8812AU (devourer) RTL8821AU (devourer) 0 hits / 6500 TX ✗

(Cells 23/24 are devourer-RX 8821 — listed for completeness; the symptom is the same devourer-RX captures zero from any-side-TX-that's-working.)

When the same TX side (which sends 6000+ frames per cell) is paired with a kernel RX 8814AU (cells 9, 10, 17, 18), the kernel RX side captures hundreds to thousands of frames. So the TX side is fine and the chip itself receives — devourer's RX path does not surface the frames.

Reproduce

Pre-condition: full-matrix harness up (tests/setup_vm.sh).

sudo python3 tests/regress.py --full-matrix --channel 100 \
    --vm-name devourer-testrig --vm-ssh josephnef@<vm-ip>

Or minimally for one ordered pair:

sudo python3 tests/regress.py --tx-pid 0x0120 --rx-pid 0x8813 \
    --channel 100 --vm-name devourer-testrig --vm-ssh josephnef@<vm-ip>

Inspect cell logs under /tmp/devourer-regress-last/ (or --keep-logs).

What's known

Likely surfaces

  • src/RtlUsbAdapter.cpp:InitDvObj — bulk-IN endpoint discovery (_bulk_in_ep).
  • src/RtlUsbAdapter.cpp async RX submission path (or sync? — needs verification).
  • src/FrameParser.cpp — RX descriptor parsing per chip family. 8814 uses a different RX descriptor layout than 8812 in some fields.
  • src/HalModule.cpp _InitQueueReservedPage_8814AUsb — page allocation for RX FIFO. Today's bisect verified TX FIFO drains; RX FIFO is separate.

Acceptance criteria

tests/regress.py --full-matrix --channel 100 --vm-name devourer-testrig --vm-ssh josephnef@... shows ≥ 1 hit in cells [11, 12, 19, 20]. (Cells 23/24 belong to a separate bug if the 8821 RX path is also broken.)

Not in scope here

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions