This directory contains the driver-lab proxy driver, a standalone driver that can claim device nodes and expose them to host-side scripting at run-time for rapid driver development and debugging.
See the specification for more details.
Note: This code is experimental and has not been subject to the standard level of human code review.
Engineering-only DFv2 driver (lab_proxy) providing policy-checked, audited hardware access for host-driven driver development. Phase 1 offers read-only access and serves the fuchsia.driver.lab wire contract consumed by the host tooling at //tools/driver-lab. The proxy binds only to nodes explicitly marked with the fuchsia.driver.lab.PROXY_TARGET property -- no production node carries it, so the proxy never binds opportunistically.
Every operation is validated against the immutable target ceiling and the session's exact allowlist immediately before access, and every attempt -- including rejections -- is recorded in a bounded audit ring. The proxy must never be offered by production images.
The normative specification is SPEC.md; the companion host tooling specification is at //tools/driver-lab/SPEC.md.
Every audit record is also written as a Fuchsia trace instant event, and every successful write samples a counter track named <node>/<resource_name>, so probes and register or knob A/B arms line up with scheduler, power, and other system trace data.
| Category | Contents |
|---|---|
driver_lab | All audit records except interrupt taps; write counters |
driver_lab:irq | Interrupt taps, which can be high-rate |
$ ffx trace start --categories '#default,driver_lab,driver_lab:irq'
Event arguments use the field names of target-audit.jsonl evidence rows, so events can be joined with a bundle's rows on seq. The node argument identifies the emitting instance when several are traced at once. Embedded servers in builds without enable_driver_lab emit no events. See src/trace.rs.
Host-side unit tests for the policy/audit/executor core:
$ fx test --host lab_proxy_core_lib_test
Target unit tests and driver realm tests:
$ fx test lab_proxy-unit-test lab_proxy-realm-test