# SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause) --- name: nfsd protocol: genetlink uapi-header: linux/nfsd_netlink.h doc: NFSD configuration over generic netlink. definitions: - type: flags name: cache-type entries: [svc_export, expkey] - type: flags name: export-flags doc: These flags are ordered to match the NFSEXP_* flags in include/linux/nfsd/export.h entries: - readonly - insecure-port - rootsquash - allsquash - async - gathered-writes - noreaddirplus - security-label - sign-fh - nohide - nosubtreecheck - noauthnlm - msnfs - fsid - crossmount - noacl - v4root - pnfs - type: flags name: xprtsec-mode doc: These flags are ordered to match the NFSEXP_XPRTSEC_* flags in include/linux/nfsd/export.h entries: - none - tls - mtls attribute-sets: - name: cache-notify attributes: - name: cache-type type: u32 enum: cache-type - name: rpc-status attributes: - name: xid type: u32 byte-order: big-endian - name: flags type: u32 - name: prog type: u32 - name: version type: u8 - name: proc type: u32 - name: service-time type: s64 - name: pad type: pad - name: saddr4 type: u32 byte-order: big-endian display-hint: ipv4 - name: daddr4 type: u32 byte-order: big-endian display-hint: ipv4 - name: saddr6 type: binary display-hint: ipv6 - name: daddr6 type: binary display-hint: ipv6 - name: sport type: u16 byte-order: big-endian - name: dport type: u16 byte-order: big-endian - name: compound-ops type: u32 multi-attr: true - name: server attributes: - name: threads type: u32 multi-attr: true - name: gracetime type: u32 - name: leasetime type: u32 - name: scope type: string - name: min-threads type: u32 - name: fh-key type: binary checks: exact-len: 16 - name: version attributes: - name: major type: u32 - name: minor type: u32 - name: enabled type: flag - name: server-proto attributes: - name: version type: nest nested-attributes: version multi-attr: true - name: sock attributes: - name: addr type: binary - name: transport-name type: string - name: server-sock attributes: - name: addr type: nest nested-attributes: sock multi-attr: true - name: pool-mode attributes: - name: mode type: string - name: npools type: u32 - name: fslocation attributes: - name: host type: string - name: path type: string - name: fslocations attributes: - name: location type: nest nested-attributes: fslocation multi-attr: true - name: auth-flavor attributes: - name: pseudoflavor type: u32 - name: flags type: u32 enum: export-flags enum-as-flags: true - name: svc-export attributes: - name: seqno type: u64 - name: client type: string - name: path type: string - name: negative type: flag - name: expiry type: u64 - name: anon-uid type: u32 - name: anon-gid type: u32 - name: fslocations type: nest nested-attributes: fslocations - name: uuid type: binary - name: secinfo type: nest nested-attributes: auth-flavor multi-attr: true - name: xprtsec type: u32 enum: xprtsec-mode multi-attr: true - name: flags type: u32 enum: export-flags enum-as-flags: true - name: fsid type: s32 - name: svc-export-reqs attributes: - name: requests type: nest nested-attributes: svc-export multi-attr: true - name: expkey attributes: - name: seqno type: u64 - name: client type: string - name: fsidtype type: u8 - name: fsid type: binary - name: negative type: flag - name: expiry type: u64 - name: path type: string - name: expkey-reqs attributes: - name: requests type: nest nested-attributes: expkey multi-attr: true - name: cache-flush attributes: - name: mask type: u32 enum: cache-type enum-as-flags: true - name: unlock-ip attributes: - name: address type: binary doc: struct sockaddr_in or struct sockaddr_in6. checks: min-len: 16 - name: unlock-filesystem attributes: - name: path type: string doc: Filesystem path whose state should be released. - name: unlock-export attributes: - name: path type: string doc: >- Export path whose NFSv4 state should be revoked. All state (opens, locks, delegations, layouts) acquired through any export of this path is revoked, regardless of which client holds the state. Intended for use after all clients have been unexported from a given path, enabling the underlying filesystem to be unmounted. operations: list: - name: rpc-status-get doc: dump pending nfsd rpc attribute-set: rpc-status dump: reply: attributes: - xid - flags - prog - version - proc - service-time - saddr4 - daddr4 - saddr6 - daddr6 - sport - dport - compound-ops - name: threads-set doc: set the maximum number of running threads attribute-set: server flags: [admin-perm] do: request: attributes: - threads - gracetime - leasetime - scope - min-threads - fh-key - name: threads-get doc: get the maximum number of running threads attribute-set: server do: reply: attributes: - threads - gracetime - leasetime - scope - min-threads - name: version-set doc: set nfs enabled versions attribute-set: server-proto flags: [admin-perm] do: request: attributes: - version - name: version-get doc: get nfs enabled versions attribute-set: server-proto do: reply: attributes: - version - name: listener-set doc: set nfs running sockets attribute-set: server-sock flags: [admin-perm] do: request: attributes: - addr - name: listener-get doc: get nfs running listeners attribute-set: server-sock do: reply: attributes: - addr - name: pool-mode-set doc: set the current server pool-mode attribute-set: pool-mode flags: [admin-perm] do: request: attributes: - mode - name: pool-mode-get doc: get info about server pool-mode attribute-set: pool-mode do: reply: attributes: - mode - npools - name: cache-notify doc: Notification that there are cache requests that need servicing attribute-set: cache-notify mcgrp: exportd event: attributes: - cache-type - name: svc-export-get-reqs doc: Dump all pending svc_export requests attribute-set: svc-export-reqs flags: [admin-perm] dump: reply: attributes: - requests - name: svc-export-set-reqs doc: Respond to one or more svc_export requests attribute-set: svc-export-reqs flags: [admin-perm] do: request: attributes: - requests - name: expkey-get-reqs doc: Dump all pending expkey requests attribute-set: expkey-reqs flags: [admin-perm] dump: reply: attributes: - requests - name: expkey-set-reqs doc: Respond to one or more expkey requests attribute-set: expkey-reqs flags: [admin-perm] do: request: attributes: - requests - name: cache-flush doc: Flush nfsd caches (svc_export and/or expkey) attribute-set: cache-flush flags: [admin-perm] do: request: attributes: - mask - name: unlock-ip doc: release NLM locks held by an IP address attribute-set: unlock-ip flags: [admin-perm] do: request: attributes: - address - name: unlock-filesystem doc: revoke NFS state under a filesystem path attribute-set: unlock-filesystem flags: [admin-perm] do: request: attributes: - path - name: unlock-export doc: >- Revoke NFSv4 state acquired through exports of a given path. Unlike unlock-filesystem, which operates at superblock granularity, this command targets only state associated with a specific export path. Userspace (exportfs -u) sends this after removing the last client for a path so the underlying filesystem can be unmounted. attribute-set: unlock-export flags: [admin-perm] do: request: attributes: - path mcast-groups: list: - name: none - name: exportd