
Ping QiuandClaude Opus 4.6
0e234f5c80
feat: Phase 10 CP10-1 -- NVMe/TCP target MVP, 109 tests
NVMe over Fabrics (TCP) target implementation sharing the same BlockVol
engine, fencing, replication, and failover as the existing iSCSI target.
New package: weed/storage/blockvol/nvme/ (11 files, 2,242 production LOC)
- protocol.go: PDU types, opcodes, status codes, marshal/unmarshal
- wire.go: TCP reader/writer with header bounds validation
- controller.go: IC handshake, per-queue state, command dispatch, KATO
- fabric.go: Connect (admin+IO), PropertyGet/Set, Disconnect
- identify.go: Controller/Namespace/NS list/NS descriptors (Linux 5.15)
- admin.go: SetFeatures, GetFeatures, GetLogPage (SMART/ANA), KeepAlive
- io.go: Read (C2HData), Write (inline), Flush, WriteZeros/Trim
- server.go: TCP listener, admin session registry, graceful shutdown
- adapter.go: BlockVol-to-NVMe bridge, error mapping, ANA state
Integration: NVMeConfig + CLI flags (-block.nvme.*), disabled by default.
Key design: inline-data writes only (no R2T), MaxH2CDataLength=32KB,
single ANA group coherent with BlockVol role, CNTLID session registry
for cross-connection IO queues, HostNQN continuity enforcement.
Tests: 65 dev + 44 QA adversarial = 109 total, all passing.
Bugs fixed during review: IO queue cross-connection (A), header bounds
validation (B), write payload size check (C), disconnect error (D),
stream desync prevention (E), HostNQN enforcement (F), capsule-before-IC
state guard (H), flowCtlOff SQHD timing (I).
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-08 16:52:37 -07:00
..
2025-11-04 13:02:22 -08:00
2026-01-07 13:06:08 -08:00
2026-02-22 13:47:29 -08:00
2026-02-23 16:27:08 -08:00
2026-01-03 22:45:48 -08:00
2026-03-08 16:52:37 -07:00
2026-03-02 11:34:06 -08:00
2019-03-03 10:17:44 -08:00
2025-12-05 15:59:12 -08:00
2026-01-07 13:06:08 -08:00
2025-12-26 13:26:25 -08:00
2026-01-07 13:06:08 -08:00
2025-12-16 12:41:04 -08:00
2026-01-16 19:48:09 -08:00
2025-10-24 01:26:42 -07:00
2026-01-07 13:06:08 -08:00
2025-11-25 19:35:19 -08:00
2026-01-29 14:42:09 -08:00
2026-01-29 21:45:15 -08:00
2025-08-11 16:45:13 -07:00
2026-01-26 22:59:43 -08:00
2025-06-24 08:44:06 -07:00
2026-01-07 13:06:08 -08:00
2025-11-21 14:46:32 -08:00
2025-06-24 08:44:06 -07:00
2025-11-28 11:52:57 -08:00
2025-07-16 23:39:27 -07:00
2025-08-21 08:28:07 -07:00
2026-02-06 21:54:43 -08:00
2025-12-12 12:51:48 -08:00
2026-01-29 21:45:15 -08:00
2026-02-20 18:42:00 -08:00
2025-12-14 21:56:07 -08:00
2025-12-14 21:56:07 -08:00
2026-02-03 17:43:58 -08:00
2026-03-06 01:06:51 -08:00
2026-03-05 00:52:05 -08:00
2026-03-06 00:05:17 -08:00
2026-03-06 01:06:51 -08:00
2026-03-06 00:05:17 -08:00
2026-03-07 21:30:14 -08:00
2026-03-07 21:30:14 -08:00
2026-01-07 13:06:08 -08:00
2026-02-04 08:48:55 -08:00
2026-03-06 01:06:51 -08:00
2026-03-06 01:06:51 -08:00
2026-01-07 13:06:08 -08:00
2022-07-29 00:17:28 -07:00
2025-12-19 00:15:39 -08:00
2026-01-11 12:31:46 -08:00
2026-01-23 12:25:11 -08:00
2026-03-07 21:30:14 -08:00
2026-02-22 23:45:48 -08:00
2026-03-06 01:06:51 -08:00
2026-03-06 01:06:51 -08:00
2026-03-06 01:06:51 -08:00
2025-11-26 08:01:19 -08:00
2025-09-04 05:39:56 -07:00
2026-03-06 01:06:51 -08:00
2026-03-02 11:34:06 -08:00
2026-03-06 01:06:51 -08:00
2026-03-06 01:06:51 -08:00
2026-03-06 01:06:51 -08:00
2026-03-06 01:06:51 -08:00
2026-03-06 01:06:51 -08:00
2026-03-02 11:34:06 -08:00
2026-03-06 01:06:51 -08:00
2026-01-18 14:02:34 -08:00
2026-02-09 07:46:34 -08:00
2026-02-09 07:46:34 -08:00
2026-01-07 13:06:08 -08:00
2026-02-19 12:26:27 -08:00
2026-02-06 10:58:43 -08:00
2026-02-02 13:21:02 -08:00
2026-03-08 16:52:37 -07:00
2026-03-06 01:06:51 -08:00
2026-03-07 21:30:14 -08:00
2022-07-29 00:17:28 -07:00
2026-02-24 20:07:26 -08:00
2026-02-09 21:46:55 -08:00
2026-02-09 12:34:38 -08:00
2022-07-29 00:17:28 -07:00
2026-01-07 13:06:08 -08:00
2026-02-02 13:21:02 -08:00
2026-02-02 13:21:02 -08:00
2026-02-16 15:09:01 -08:00
2026-02-06 10:58:43 -08:00
2026-02-02 13:21:02 -08:00
2022-10-14 00:18:09 -07:00
2026-02-02 13:21:02 -08:00
2026-02-02 13:21:02 -08:00
2026-03-08 16:52:37 -07:00
2026-03-08 16:52:37 -07:00
2025-12-02 23:19:14 -08:00
2016-06-02 18:09:14 -07:00
2025-12-05 15:59:12 -08:00
2025-11-26 08:01:19 -08:00
2026-02-06 21:54:43 -08:00
2025-12-16 13:42:18 -08:00
2026-02-06 10:58:43 -08:00
2026-03-04 11:01:08 -08:00
2025-11-29 10:06:11 -08:00
2026-01-07 13:06:08 -08:00