Files
scst/fcst/AGENTS.md
T
Gleb Chesnokov 38823eb5e2 docs: Add repository guidance for agents
SCST spans a kernel core, transport drivers, user-space programs and
configuration tools. Each area has different ABI, build, validation and
safety constraints, but the repository has no persistent guidance for
automated contributors.

Add a root AGENTS.md with cross-component contracts and nested files for
components with independent boundaries. Record authoritative sources,
generated files, compatibility policy and destructive workflows so
changes start from the correct context and avoid live storage state.
2026-08-21 10:05:36 +03:00

1.9 KiB

FCST

Ownership and interfaces

This directory owns the SCST FCoE target built on the kernel libfc stack. ft_scst.c is the SCST target-template boundary, ft_sess.c owns libfc local/ remote port to SCST target/session mapping, ft_cmd.c and ft_io.c own FCP command/data/response processing, and fcst.h is the private shared interface. It depends on both SCST and libfc; it does not own generic FCoE initiator/DCB configuration.

Kbuild, Kconfig, and Makefile define the in-tree/out-of-tree build, SCST symbol dependency, and libfc compatibility selection. Current source and kernel headers implement the behavior; use README to locate operational workflows and verify every example against them.

Change boundaries

  • Preserve command ownership across libfc exchanges/frames and SCST commands. Data buffers cannot be released until their asynchronous libfc consumer is finished; audit response, write-data, abort, timeout, and task-management completion paths together.
  • Port/session lookup and teardown use mutex, RCU, and kref lifetimes while libfc notifications and SCST unregister callbacks interact. Re-derive exact lock, grace-period, reference, and callback order from current code.
  • SCST API or sysfs changes require the repository-wide target-driver and scstadmin audits. libfc API adaptation belongs in the established build/ compatibility boundary, not in user-visible configuration.

Generated files, validation, and safety

Objects, modules, Module.symvers, and dependency metadata are generated. The focused compile entry point is top-level make fcst or this component's Makefile; no component unit-test target exists.

Do not load/unload FCST or FCoE modules, configure DCB/FCoE interfaces, enable FC ports/targets, expose LUNs, create fabric sessions, issue a LIP/reset, or run traffic/teardown tests without authorization for the exact host, CNA, Ethernet fabric, initiators, and storage.