mirror of
https://github.com/SCST-project/scst.git
synced 2026-10-22 14:12:33 +00:00
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.
40 lines
1.9 KiB
Markdown
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.
|