Files
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

40 lines
1.9 KiB
Markdown

# 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.