Status & conformance · §
Project Maturity
The NFSv3, NFSv4 (4.0 / 4.1 / 4.2), and SMB2/3 servers implement the full data-path
and metadata operation set and pass real-Linux-client conformance suites. The data
path — read, write, metadata, locking — is mature and well exercised.
NFSv4 reboot-recovery state and SMB durable handles now persist across restarts, and
NFSv3 gained NSM/statd lock recovery. Kerberos for NFS and several advanced protocol
features remain present-but-incomplete or absent. Those gaps are listed below.
§ 01 At a glance
Four protocol servers over one pluggable async VFS. Because they share the VFS, all
of them work across every backend — in-memory, Linux passthrough, and persistent.
NFSv3
Mature
All 21 procedures, full MOUNT v3, and a real NLM byte-range lock manager routed
through the unified VFS lease layer. TCP and RPC-over-RDMA.
NFSv4 · 4.1 · 4.2
Mature core
Single COMPOUND handler across all three minor versions. Sessions, state, ACLs,
xattrs, delegations, and pNFS (flex-files). Reboot-recovery records and the reply
cache now persist to the VFS — clients and state survive a restart.
SMB2 · SMB3
Broad coverage
All 19 commands, dialects through 3.1.1, signing, encryption, oplocks & leases
(file and directory), durable / persistent handles, change-notify, transport
compression, copy-offload, ACLs, Kerberos. Several advanced features ship disabled by
default.
S3
Objects + buckets
Object data path — GET/PUT/HEAD/DELETE, ranged reads, full multipart, SigV4/V2 —
plus dynamic bucket create/delete/list and paginated prefix/delimiter listing.
Versioning, ACLs, SSE, and conditional requests are absent.
§ 02 Backends
Every protocol sits on the same VFS, so it runs identically across all backends. A
handful of features are backend-specific and noted in the per-protocol detail.
memfs in-memory
linux passthrough
io_uring
cairn persistent
diskfs persistent
§ 03 Feature support, protocol by protocol
Every feature each protocol revision may implement, split into mandatory (required
to claim the revision) and optional capabilities. A ✓
marks what the Chimera server implements today; a dash marks what it does not. Sub-features
(cipher suites, layout types, lease bits, …) are listed under their parent.
NFSv3RFC 1813
36 / 43 supported
Mandatory 22 / 22 supported
- NULL
- GETATTR
- SETATTR
- LOOKUP
- ACCESS
- READLINK
- READ
- WRITE
- CREATE
- MKDIR
- SYMLINK
- MKNOD
- REMOVE
- RMDIR
- RENAME
- LINK
- READDIR
- READDIRPLUS
- FSSTAT
- FSINFO
- PATHCONF
- COMMIT
Optional 14 / 21 supported
- MOUNT protocol v3
- NLM locking
- NSM status monitor
- Safe asynchronous writes
- Weak cache consistency
- Exclusive create
- Hard links
- Symbolic links
- Special files
- AUTH_SYS / AUTH_NONE
- RPCSEC_GSS / Kerberos
- Duplicate request cache
- NFSACL sideband
- RQUOTA
- 64-bit sizes & offsets
- UDP transport
- TCP transport
- RPC-over-RDMA transport
NFSv4.0RFC 7530
19 / 26 supported
Mandatory 13 / 17 supported
- COMPOUND / CB_COMPOUND
- Filehandle operations
- Stateful OPEN / CLOSE
- Share reservations
- Integrated byte-range locking
- Lease-based state
- State recovery / grace
- Required attributes
- Core data & namespace ops
- Security negotiation
- RPCSEC_GSS support
- String-based identities
- UTF-8 names
- Filehandle volatility
Optional 6 / 9 supported
- File delegations
- Read delegations
- Write delegations
- NFSv4 ACLs
- Named attributes
- Migration & replication
- Public filehandle
- Recommended attributes
- AUTH_SYS
NFSv4.1RFC 5661
15 / 23 supported
Mandatory 9 / 11 supported
- Sessions
- Exactly-once semantics
- Reclaim coordination
- Stateid management
- Backchannel over session
- Nameless security query
- State protection
- SP4_NONE
- SP4_MACH_CRED
- SP4_SSV
- Connection trunking
Optional 6 / 12 supported
- pNFS (parallel NFS)
- pNFS layout types
- File layout
- Block / volume layout
- SCSI layout
- Object layout
- Layout recall callbacks
- Directory delegations
- Delegation hints
- SSV state protection
- Lock notification
- Backchannel control
NFSv4.2RFC 7862
9 / 18 supported
Mandatory 1 / 2 supported
- Minor-version negotiation
- change_attr_type
Optional 8 / 16 supported
- Server-side copy
- Intra-server copy
- Inter-server copy
- Asynchronous offload
- Sparse files
- Space reservation
- I/O hints
- User extended attributes
- Labeled NFS
- File clone / reflink
- Application data blocks
- Flexible File pNFS layout
- pNFS telemetry
SMB 2.0dialect 0x0202
20 / 23 supported
Mandatory 10 / 10 supported
- 19-command set
- Credit-based flow control
- Compound requests
- 64-bit file IDs
- Asynchronous responses
- Message signing
- SPNEGO authentication
- Kerberos
- NTLMv2 / NTLMSSP
- Guest / anonymous
Optional 10 / 13 supported
- Durable handles (v1)
- Oplocks (SMB2 form)
- DFS
- Symlinks / reparse points
- Alternate data streams
- Extended attributes
- Security descriptors
- FSCTL operations
- Quota information
- Large MTU
SMB 2.1dialect 0x0210
8 / 9 supported
Mandatory 1 / 1 supported
- Dialect 0x0210 negotiation
Optional 7 / 8 supported
- Leasing (v1)
- Read caching (R)
- Write caching (W)
- Handle caching (H)
- Large MTU
- Improved durable handles
- Resilient handles
- BranchCache v2
SMB 3.0dialect 0x0300
11 / 15 supported
Mandatory 3 / 3 supported
- Dialect 0x0300 negotiation
- AES-128-CMAC signing
- Secure dialect negotiation
Optional 8 / 12 supported
- Encryption
- Persistent handles
- SMB Multichannel
- SMB Direct (RDMA)
- Continuously-available shares
- Witness protocol
- Directory leasing
- Remote VSS
- Offloaded data transfer (ODX)
- Block cloning
- Per-share encryption
- App Instance ID
SMB 3.0.2dialect 0x0302
2 / 3 supported
Mandatory 1 / 1 supported
- Dialect 0x0302 negotiation
Optional 1 / 2 supported
- RDMA read/write with invalidate
- Multichannel / failover refinements
SMB 3.1.1dialect 0x0311
16 / 18 supported
Mandatory 3 / 3 supported
- Dialect 0x0311 negotiation
- Negotiate contexts
- Pre-authentication integrity
Optional 13 / 15 supported
- Encryption ciphers
- AES-128-CCM
- AES-128-GCM
- AES-256-CCM
- AES-256-GCM
- SMB compression
- LZ77
- LZ77 + Huffman
- LZNT1
- Pattern_V1
- Signing algorithm negotiation
- Cluster dialect fencing
- RDMA encryption / signing
Amazon S3REST / HTTP object storage
12 / 59 supported
Mandatory 11 / 15 supported
- Service listing
- Bucket create / delete
- Object listing
- Object CRUD
- Multipart upload
- Range reads
- Conditional reads
- SigV4 authentication
- SigV2 authentication
- Streaming uploads
- Anonymous & presigned access
- Addressing styles
- ETags & integrity
- User & system metadata
- Structured errors
Optional 1 / 44 supported
- Directory buckets (S3 Express One Zone)
- Browser POST uploads
- GetObjectAttributes
- Versioning
- Lifecycle configuration
- Storage classes
- STANDARD
- STANDARD-IA / One Zone-IA
- Intelligent-Tiering
- Glacier tiers
- Server-side encryption
- Object Lock / WORM
- Governance mode
- Compliance mode
- Legal hold
- Tagging
- Bucket policies
- ACLs & Object Ownership
- Conditional writes
- CORS
- Replication
- Cross-region (CRR)
- Same-region (SRR)
- Replication Time Control
- Event notifications
- Static website hosting
- Requester Pays
- Public Access Block
- Additional checksums
- CRC32 / CRC32C
- CRC64NVME
- SHA-1 / SHA-256
- S3 Select
- Inventory / analytics / metrics
- Access Points
- S3 Object Lambda
- S3 Access Grants
- Batch Operations
- Transfer Acceleration
- Server access logging
- Glacier restore
§ 04 How it's tested
Chimera registers ~9,000 tests per configuration via CTest, run in CI on a
multi-image, dual-arch (amd64 / arm64), Release + Debug matrix. We use real-Linux-client
conformance suites, not just our own unit tests.
~9,000
tests registered & gated per CI configuration
80.4%
of the full external SMB2/3 conformance surface (smbtorture) passes
real clients
Linux NFS & SMB clients in KVM, plus in-process binding
Suite
What it validates
Tests
Pass
smbtorture
Samba SMB2/3 protocol conformance — the full external surface (527 subtests), with non-passing subtests explicitly disabled per backend.
527
80.4%
WPTS
Microsoft MS-SMB2 server conformance (.NET) — the full mapped surface across base, persistent, compression, multichannel, encryption, directory-lease and symlink modes, with feature-N/A and tracked-failing cases disabled. Daemon stays crash-free in every mode.
267
90.6%
ceph-s3-tests
Ceph/s3-tests S3 compliance — a curated pass-list of the upstream suite (~840 cases). The fraction reflects the object-data-path scope; bucket policy / ACL / versioning cases stay disabled.
214
~25%
KVM pNFS
flex / block / SCSI layout over a real Linux client. The 12.5% gap is all SCSI-layout — a QEMU SCSI-reservation harness limit, not a server defect.
192
87.5%
pynfs
NFSv4.0 / 4.1 / 4.2 protocol conformance, across every backend and minor version.
1,383
100% *
pjdfstest
POSIX filesystem semantics — chmod / chown / open / link / rename / symlink / truncate / NFSv4-ACL permissions — ported in-process across every backend and over NFS 3 / 4.x.
2,554
100% *
posix-cthon
Connectathon NFS correctness, in-process client across all backends and NFS versions.
794
100% *
posix stress / fsx
fsx, fsstress, dirstress, nametest, fstest, rewinddir and per-op POSIX tests — in-process across backends and transports.
1,401
100% *
KVM xfstests
fsstress / fsx / etc. over a real Linux client, NFS 3 / 4.x.
576
100% *
KVM cthon
Connectathon over a real Linux client.
288
100% *
KVM SMB
SMB cthon / xfstests over a real Linux client.
216
100% *
KVM nfstest
NSFTest posix / interop / alloc / sparse / lock / dio / xattr / SSC over a real Linux client, plus a two-client cross-client delegation harness.
~52
100% *
KVM LTP
Linux Test Project — dio, fcntl-locktests, and NFSv4.2 syscall groups over a real Linux client mount.
~39
100% *
S3 (boto3)
S3 functional behavior — put / get / head / delete / list / copy / multipart / streaming, V4 and V2.
52
100% *
unit + submodule
VFS, client library, server internals (incl. REST auth), plus libevpl / xdrzcc / prometheus-c / ndrzcc dependency suites.
~300
100%
* 100% by construction — only
expected-pass cases are registered, so this reflects coverage of what's wired up, not
the full protocol surface. For S3, the ceph-s3-tests
row gives the full-surface read; an equivalent pynfs figure would require running the
complete upstream suite without curated registration, which CI does not currently encode.
§ 05 smbtorture, by backend
Because smbtorture measures against the full SMB2/3 surface (527 subtests), it's the
clearest read on real conformance. memfs leads with the complete feature set
(including named streams); the passthrough backends trail because they can't persist
btime / DOS attributes and don't yet expose alternate data streams, so those subtests
stay disabled. Enabled counts are per backend, out of 527.
Backend
Enabled
Disabled
Pass %
diskfs (io_uring / aio)
434
93
82.4%
linux / io_uring (passthrough)
400
127
75.9%
Overall (6 backends)
2,541
621
80.4%
The Microsoft Windows Protocol Test Suite (WPTS, MS-SMB2) is now wired into mainline CI
against memfs (see §04). KVM suites require nested virtualization and run only on
KVM-capable runners.
§ 06 Code coverage
Line, function, and branch coverage measured by the CI coverage build across the whole
tree (generated XDR / RPC marshalling stubs excluded).
73.0%
line coverage — 94,051 / 128,925 lines
85.9%
function coverage — 4,393 / 5,115 functions
58.3%
branch coverage — 32,314 / 55,412 branches
src/server/smb
23,619
73.6%
90.9%
src/posix
21,372
65.5%
89.1%
src/server/nfs
19,393
74.6%
84.5%
src/vfs/(core)
13,538
80.6%
95.3%
src/vfs/diskfs
11,641
81.6%
89.5%
src/vfs/nfs
6,823
72.6%
90.8%
src/server/s3
6,367
62.7%
77.9%
src/vfs/memfs
3,528
79.3%
97.4%
src/vfs/tests
3,151
99.4%
100.0%
src/vfs/cairn
3,151
76.3%
84.5%
src/client
3,001
74.6%
86.5%
src/common
2,747
54.3%
84.7%
src/server/rest
2,034
53.6%
62.4%
src/vfs/io_uring
1,689
84.8%
100.0%
src/vfs/linux
1,658
78.8%
95.9%
src/server/server.c
1,171
71.0%
72.5%
src/elbencho
578
71.8%
87.5%
src/vfs/root
320
44.4%
65.0%
src/vfs/memkv
279
88.9%
100.0%
src/vfs/sqlite
233
81.5%
100.0%
TOTAL (excl. generated)
128,925
73.0%
85.9%
This page is a summary. For line-by-line operation support, current bugs, and the
roadmap, see the issue tracker on GitHub
or ask in Discord.