blob: 8f36fadd68f75b3b041722de2d7abbfdc37d4c8b [file] [edit]
# 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