mirror of
https://github.com/versity/versitygw.git
synced 2026-09-21 07:24:29 +00:00
Wrap the v2 session core with the server-side C ABI the gateway binds to: prepare/ready/cancel session calls, staging leases for GET side-loading, the put-view handoff for PUT commits, session introspection, and the server lifecycle. The ABI owns the parts that must be shared across sessions: the verbs device handle, global and per-principal resource limits, session accounting with consume-once handles keyed by epoch and nonce, the completion reference that pins a session from the READY claim until its finalizer, and the reaper that tears transport objects down once every reference drains. A background thread expires sessions past their prepare or execute deadlines so abandoned sessions cannot pin the limits, and teardown failures keep the affected verbs objects and device alive rather than freeing memory the NIC may still reference. A peer-busy READY rolls the claim back and re-arms the QP through RESET so the client can retry the same session. The vgwrdma target now links the archive built from these sources. Signed-off-by: Jihyeon Gim <potatogim@potatogim.net>