RuView BFLD 捕获路径完全解读:Pi 5 / Nexmon 生产级 BFI 采集与 ESP32-S3 可行性评估(ADR-123) RuView BFLD 捕获路径完全解读Pi 5 / Nexmon 生产级 BFI 采集与 ESP32-S3 可行性评估ADR-123【免费下载链接】RuViewπ RuView turns commodity WiFi signals into real-time spatial intelligence, vital sign monitoring, and presence detection — all without a single pixel of video.项目地址: https://gitcode.com/GitHub_Trending/wi/RuView本文围绕 RuView / wifi-densepose 仓库中的架构决策记录 ADR-123BFLD Capture Path展开它回答了BFLD 想要从 802.11ac/ax 的波束赋形反馈BFI中做检测与隐私治理究竟该用哪块硬件、哪种采集适配器、面对哪些固件限制。读完本文你将掌握 BFLD 捕获子系统的硬件分层选型逻辑、BfiCaptureAdapter适配器接口设计、捕获侧隐私边界I1的结构化落地方式以及 ESP32-S3 只能降级自报而无法嗅探邻居 CBFR 帧的根因并能结合仓库中 wifi-densepose-bfld crate 的真实源码核对每一条设计结论。一、这份 ADR 在整个 BFLD 体系中的位置BFLDBeamforming Feedback Layer for Detection是 RuView 生态中首个显式、可审计的射频层隐私原语由父 ADR ADR-118 统摄并拆分为五个子 ADR帧格式ADR-119、隐私分级与哈希轮换ADR-120、身份风险评分ADR-121、RuView / HA / Matter 暴露面ADR-122以及本份捕获路径 ADR-123。ADR-123 要回答的唯一问题是BFLD 捕获 BFI到底跑在哪块硬件上、用哪个无线适配器、需要突破哪些固件限制 其状态为Proposed2026-05-24decider: ruv上承 ADR-118横向关联 ESP32 能力审计ADR-028、rvCSI 边缘射频平台ADR-095及其 FFI crate 布局ADR-096、ESP32-C6 固件扩展ADR-110并消费 ADR-119 定义的BfldFrame。在 ADR-118 的六阶段推进表里本份 ADR 对应P6Pi 5 / Nexmon 捕获适配器预估 2.5 人周是整条流水线从能算走向能采的最后一公里。二、背景问题为什么捕获硬件不是现成的2.1 先厘清要采集的信号明文管理帧里的 CBFRIEEE 802.11ac 与 802.11ax 的波束赋形反馈BFI由站点STA把信道响应压缩成 Givens 旋转角度矩阵Φ/ψ通过VHT / HE 压缩波束赋形报告Compressed Beamforming Report, CBFR发送给 AP。关键特性是这类帧属于未加密的管理面帧任何处于监听monitor模式的设备无需加入网络即可被动嗅探。这正是 ADR-118 所述明文 BFI 问题的根源——同一份物理信道的角度矩阵既可以驱动空间检测也可能泄露个体身份。因此 BFLD 的捕获路径首先要回答用什么硬件把这类帧收进来。2.2 ESP32-S3 的能力鸿沟能采 CSI采不了邻居的 CBFRESP32 能力审计ADR-028以及 ESP32-S3 / C6 固件firmware/esp32-csi-node/ 目录、ADR-110共同确认了一个关键边界Espressif 的 WiFi APIesp_wifi_set_csi_*暴露的是CSI 捕获但不暴露针对非本机地址 CBFR 帧的原始 802.11 管理帧捕获即不具备真正意义的监听模式。后果是ESP32-S3 只能看到自己作为 beamformer 时、由自身 AP 链路产生的CBFR 帧而无法混杂模式嗅探邻居 STA↔AP 对之间的 CBFR。ESP32-C6RISC-V Wi-Fi 6的射频子系统更灵活但写作时点的软件 API 约束完全相同。这一固件 API 缺口直接决定了 BFLD 的生产捕获主机不能选 ESP32 家族。2.3 为什么是 Pi 5 / NexmonrvCSI 平台ADR-095/096本身已随附一个基于 Nexmon 的适配器rvcsi-adapter-nexmon能从 BCM43455c0 芯片Raspberry Pi 5 / Pi 4 / Pi 3B采集 CSI。Nexmon 通过给固件打补丁把 CSI 上抛到用户态——而 ADR-123 指出BFI 走的是同一条代码路径只是换了过滤器Nexmon 同样能把 CBFR 帧暴露给用户态。这意味着生产捕获无需新硬件采购机群中的 cognitum-v0Pi 5已在跑 Nexmon rvCSI runtime就是天然的 BFLD 捕获宿主机。2.4 各硬件层的职责划分ADR-123 用一张表明确每个硬件层在 BFLD 中的角色这是理解全文决策的骨架完整保留如下TierRoleBFI captureCSI captureNotesESP32-S3 / C6Sensing leafnoyesContinues providing CSI to the existing pipelinePi 5 / NexmonBFLD hostyesyes (via Nexmon)Primary BFLD captureruvultra (RTX 5080 AX210)Training / devyes (via AX210 monitor mode)yesDev capture; not productioncognitum-v0 (Pi 5)Applianceyes(production)yesProduction BFLD host读法采集 BFI 的能力与采集 CSI 的能力是正交的——ESP32 保持感知叶节点身份继续喂 CSIBFI 这条新信号由 Pi 5 / Nexmon 承担生产出口是 cognitum-v0ruvultra 仅在 Linux 侧用于训练与开发迭代。三、核心决策四路捕获路径及其取舍3.1 生产捕获路径在 vendored rvCSI 子模块中新增bfi.rsADR-123 决定BFLD 生产捕获路径实现为 rvCSI 子模块vendor/rvcsi/对应独立仓库github.com/ruvnet/rvcsi内rvcsi-adapter-nexmoncrate 的一个新模块vendor/rvcsi/crates/rvcsi-adapter-nexmon/ └── src/ ├── lib.rs ├── csi.rs # existing CSI capture └── bfi.rs # NEW — CBFR capture, exports BfiCapture新的bfi.rs从 Nexmon 补丁固件的用户态数据流中解析 CBFR 帧VHT 或 HE抽取 Φ/ψ 角度矩阵产出BfiCapture结构体交给 BFLD crate 的特征提取器对应 ADR-118 §2.1 与 ADR-119。补丁随 rvcsi 子模块发布以rvcsi-adapter-nexmon ^0.3.5推到 crates.iowifi-densepose workspace 消费已发布版本开发期也可直接用子模块路径。说明vendor/rvcsi属子模块不在本仓库内ADR-123 描述的是子模块中的规划结构。仓库内可见的是消费侧wifi-densepose-bfldcrate见 v2/crates/wifi-densepose-bfld。3.2 适配器抽象BfiCaptureAdaptertrait为了容纳多路硬件路径BFLD cratewifi-densepose-bfld定义了一个捕获适配器 trait把帧从哪来与帧怎么算解耦pub trait BfiCaptureAdapter: Send static { type Error: std::error::Error Send Sync static; fn capture(mut self) - ResultOptionBfiCapture, Self::Error; fn capabilities(self) - AdapterCapabilities; } pub struct AdapterCapabilities { pub supports_he: bool, // 802.11ax (Wi-Fi 6) pub supports_160mhz: bool, pub max_n_rx: u8, pub host_kind: HostKind, // Pi5Nexmon | Ax210Linux | EspS3Local | Mock }首发三个实现Impl宿主定位NexmonBfiAdapterPi 5 / Nexmon生产Ax210BfiAdapterLinux AX210 monitor 模式开发 / 训练ruvultraMockBfiAdapter回放 fixture测试与 CI预留第四个实现EspS3LocalAdapter等到 Espressif 开放混杂模式 CBFR 捕获那天它只采集 S3 自身 AP 链路的 BFI 做本地自报。注意capabilities()把supports_he、supports_160mhz、max_n_rx、host_kind显式建模出来——后续 AX211、MediaTek Filogic 等新捕获路径可以不改 BFLD crate 直接插槽接入。3.3 捕获侧隐私边界I1 的结构化强制根据 ADR-120 的 I1 不变量——原始 BFI 永不离开捕获主机——适配器必须与 BFLD crate 的特征提取器、隐私门privacy gate位于同一物理主机。ADR-123 给出的目标拓扑[ Pi 5 / cognitum-v0 ] ├── nexmon firmware (kernel) ├── rvcsi-adapter-nexmon (userspace, captures BFI) ├── wifi-densepose-bfld (extracts, scores, gates) │ └── privacy_gate → class-2/3 frames only └── wifi-densepose-sensing-server (publishes MQTT Matter)这条边界是结构性的而非靠纪律维持ADR 明确禁止把原始 BFI 从远端捕获主机流式转发到另一节点的网络模式适配器并且BfiCaptureAdaptertrait不包含任何 remote URL 参数。也就是说架构层面不存在远程捕获代码路径未来某次 PR 想顺手加一条远端通道也无从下手——trait 签名根本不接受远端地址。这一设计在仓库中的消费侧实现可以交叉印证wifi-densepose-bfld的 sink 层用 marker trait 分级sink.rs 中LocalSink/NetworkSink/MatterSinkprivacy_class 0raw的帧根本无法通过网络 sink 发出对应测试见 sink_enforcement.rs 与 privacy_class_capability.rs。3.4 信道 / 带宽覆盖两类 CBFR 过滤器与会话跟踪Nexmon 适配器复用既有rvcsi-adapter-nexmon的信道跳变channel-hopping调度见 ADR-095 §3.2BFI 捕获额外增加两点帧过滤器只保留 VHT CBFRaction 帧category 21action 0与 HE CBFRcategory 30action 0跨信道 BFI 会话跟踪同一 beamformer / beamformee 组合在信道跳变前后通过AP MAC STA MAC归并——保证一次跳频不会把同一个链路切成两个伪身份。信道宽度方面AC3 要求 20/40/80/160 MHz 全部支持。注意 ADR-138 之后的 ADR-119 上下文也提示BfldFrameHeader已把magic、版本、载荷长度、CRC32 等字段固定下来见 frame.rs捕获侧的BfiCapture是这条确定性序列化管线的输入侧。3.5 ESP32-S3 本地自报降级路径延期对没有 Pi 5 / cognitum-v0 在场的部署ADR-123 允许在 ESP32-S3 本体上运行一个降级 BFLD 模式只捕获自身 AP 链路的 CBFRself-addressed在有限窗口上计算特征只上报粗粒度的presencemotion——不上报identity_risk_score样本多样性不足算出来没有意义发出privacy_class 2的BfldFrame并置位flags.bit3 self_only标记。该路径编排在 ADR-118 排期的 P2/P3 之后、Pi 5 路径稳定之后再在固件中实现。工作量不大固件侧复用现有 CSI 采集循环但价值也有限——直到 ESP32 固件开放混杂模式 CBFR 之前它只能自证无法测他人。而开放混杂 CBFR 属于Espressif-IDF 路线图事项不在项目可控范围内。这也是为什么 BFLD 完整流水线的落地依赖 Pi 5 / Nexmon 主机。3.6 开发路径ruvultra / AX210本地开发迭代在 Windows / ruvultra 机器上进行ruvultra 运行 LinuxUbuntu 6.17配合 AX210 提供可用的捕获路径——AX210 支持 802.11ax monitor 模式所需iwlwifi驱动补丁已合入上游。这条路径只用于训练数据采集与开发测试不用于生产。因此开发/生产的一致性不是靠同一块网卡而是靠fixture 回放MockBfiAdapter cognitum-v0 上的 Nexmon 适配器双轨保证。四、仓库实测wifi-densepose-bfldcrate 与 ADR-123 的衔接ADR-123 是 Proposed 状态的设计但它的消费侧 crate 已经在本仓库落地并可查阅、运行Crate 位置v2/crates/wifi-densepose-bfld。其模块划分与 ADR-118 §2.1 的规划基本一致包括 frame.rsBfldFrameHeadermagic、version、privacy_class、CRC32序列化时privacy_class落在固定偏移、sink.rssink marker trait、privacy_gate.rsPrivacyGate::demote单向降级 零化、signature_hasher.rsBLAKE3 keyed 日 epoch 轮换、pipeline.rs 与 pipeline_handle.rs。直接可跑的示例cargo run -p wifi-densepose-bfld --example bfld_minimal # 进程内消费者 cargo run -p wifi-densepose-bfld --example bfld_handle # 工作线程 HA-DISCOexamples/bfld_minimal.rs 展示了SensingInputs与IdentityEmbedding如何在进程内被吃进BfldPipeline其中可看到捕获层将要喂入的presence / motion / person_count / sep / stab / consist等信号字段的雏形。crate README 把 I1/I2/I3 三个不变量与各自的结构化强制手段列成了表README并给出了std/serde-json/mqtt/soul-signature四组 feature 开关。测试佐证wifi-densepose-bfld/tests/下存在大量与 ADR-123 验收标准直接呼应的用例例如 frame_header_size.rs头部尺寸静态断言ADR-119 曾借此修正过一处计数错误、privacy_gate_demote.rs、sink_enforcement.rs、reserved_flags.rs涉及flags保留位与self_only语义以及 pipeline_determinism.rsbit 级确定性序列化。可以据此判断帧格式—隐私门—哈希轮换—发射这一侧已高度工程化而 BFI 采集适配器NexmonBfiAdapter / Ax210BfiAdapter / MockBfiAdapter仍停留在 ADR 设计层等待 P6 落地——这正是 ADR-123 的开放工作量所在。五、预期后果正面Positive零采购上线cognitum-v0 上 Day One 就能给出生产可用表面无需采购新硬件。可插拔架构adapter trait 让 AX211、MediaTek Filogic 等新捕获路径在不改 BFLD crate 的前提下插槽即用。隐私边界结构性成立不存在远端捕获代码路径未来 PR 无法意外引入一条。训练/开发不受限于 Pi 5 机群ruvultra 的 AX210 路径在 Linux 上独立解锁训练迭代。负面NegativeBFLD 完整流水线依赖 cognitum-v0或其他 Pi 5 / Nexmon 主机在场没有 Pi 5 的部署只能拿到降级的 ESP32-S3 自报路径效用有限。Nexmon 是第三方内核模块跟踪上游补丁属于持续性维护成本。VHT802.11ac与 HE802.11ax的 CBFR 帧格式不同解析器必须双支持未来 802.11beWi-Fi 7部署还需再加一条解析路径。中性Neutralruvultra 开发路径用的是 AX210而 AX210 不是生产网卡开发/生产一致性靠fixture 回放 cognitum-v0 上的 Nexmon 适配器来弥合。六、备选方案与否定理由ADR-123 完整记录了四条被否决的替代路径每一条的否决理由都值得留意备选方案结论否决理由Alt 1集中式捕获主机把原始 BFI 流式转发给 RuView 节点否决违反 ADR-120 I1raw 永不离开捕获主机。捕获主机就是BFLD 节点两者不可分离。Alt 2等 Espressif 开放混杂 CBFR 支持否决时间线不确定且不受项目控制Pi 5 / Nexmon 路径今天就能上线。Alt 3自维护一份 Pi 5 固件 fork 替代 Nexmon否决fork BCM 固件维护负担巨大而 Nexmon 已覆盖所需能力。Alt 4只发布 ESP32-S3 自报路径否决样本多样性不足以支撑identity_risk_score——BFLD 的本意就是度量身份泄漏仅自报路径无法有意义地度量。这组否决本质上遵循一条主线能现在结构上保证安全的路径优先Pi 5 / Nexmon把等待厂商开放视为不可控风险而非规划项。七、验收标准AC1–AC7ADR-123 用七条可测的验收标准界定捕获路径完成的定义均处于待验证状态AC内容验证要点AC1NexmonBfiAdapter在 Pi 5cognitum-v0的 2-AP-3-STA 测试台上每分钟捕获 ≥ 100 条合法 CBFR帧率下限验证解析器不被噪声淹没AC2VHT802.11ac与 HE802.11axCBFR 均可解析混合 PHY 捕获产出类型正确的BfiCapture双格式解析正确性AC320/40/80/160 MHz 全带宽支持tests/各一份 fixture覆盖 AC2 之外的带宽维度AC4BfiCaptureAdaptertrait 无任何接受 remote URL / socket 地址的方法I1 的结构化验收对应 sink.rs 侧同样无远端参数的约定AC5ESP32-S3 self-only 适配器以#[no_std]编译产出flags.bit3 self_only置位、且无identity_risk_score字段的BfldFrame降级路径的形态约束AC6ruvultra 上的 AX210 适配器在至少一次 fixture 生成开发会话中捕获到 CBFR开发路径可用性AC7cognitum-v0 上捕获循环以 10 Hz BFI 帧率持续 10 分钟不掉帧长时间 soak 稳定性其中 AC3/AC5/AC6 直接驱动仓库测试资产与固件侧任务AC7 的 10 Hz 吞吐目标与 ADR-119 节点可能以最高 10 Hz 发射的设计约束互相咬合可参考 serialization_throughput.rs 对单帧序列化开销的既有度量。八、落地节奏与进一步阅读捕获路径不是孤岛建议按以下顺序在仓库内继续深挖先读伞形决策ADR-118理解 I1/I2/I3 三条结构性不变量与 BFI/CSI 双信号的关系再读下游格式与安全约束ADR-119BfldFrame线格式与 CRC32、ADR-120四档隐私等级 BLAKE3 每日哈希轮换、ADR-121风险评分对照代码wifi-densepose-bfld crate 及其 tests 目录验证隐私门、sink 分级、哈希轮换的真实实现回看硬件约束出处ADR-028ESP32 能力审计、ADR-095 / ADR-096rvCSI 平台与 FFI 布局。总而言之ADR-123 给出的是一个生产走 Pi 5 / Nexmon、开发走 AX210、ESP32 降级自报兜底的三层捕获矩阵并把原始 BFI 不离开主机做成 trait 签名层面的结构事实。无论你是在为 BFLD 的 P6 落地选硬件、想复用BfiCaptureAdapter扩展新网卡还是想审计节点自身输出是否匿名这份 ADR 连同仓库中的wifi-densepose-bfld源码都是入口。【免费下载链接】RuViewπ RuView turns commodity WiFi signals into real-time spatial intelligence, vital sign monitoring, and presence detection — all without a single pixel of video.项目地址: https://gitcode.com/GitHub_Trending/wi/RuView创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考