NFSTEST_DELEGATION(1)

NAME
nfstest_delegation - Delegation tests

SYNOPSIS
nfstest_delegation --server <server> [--client <client>] [options]

DESCRIPTION
Basic delegation tests verify that a correct delegation is granted when opening a file for reading or writing. Also, another OPEN should not be sent for the same file when the client is holding a delegation. Verify that the stateid of all I/O operations should be the delegation stateid. Reads from a different process on the same file should not cause the client to send additional READ packets when the client is holding a read delegation. Furthermore, a LOCK packet should not be sent to the server when the client is holding a delegation. Recall delegation tests verify the delegation is recalled when a conflicting operation is sent to the server from a different client. Conflicting operations are reading, writing and changing the permissions on the same file. Note, that reading a file from a different client can only recall a read delegation. Also, verify that a delegation is not recalled when a different client is granted a read delegation. After a delegation is recalled, the client should send an OPEN with CLAIM_DELEGATE_CUR before returning the delegation and the stateid should be the same as the original OPEN stateid. Also, a delegation should not be granted when re-opening the file right before returning the delegation. Verify client flushes all written data before returning the WRITE delegation. The LOCK should be sent as well right before returning a delegation which has been recalled. A delegation should not be granted on the second client who cause the delegation recall on the first client.

OPTIONS

--version
    show program's version number and exit

-h, --help
    show this help message and exit

-f FILE, --file=FILE
    Options file

-s SERVER, --server=SERVER
    Server name or IP address

-p PORT, --port=PORT
    NFS server port [default: 2049]

--nfsversion=NFSVERSION
    NFS version [default: 4]

--minorversion=MINORVERSION
    Minor version [default: 1]

-e EXPORT, --export=EXPORT
    Exported file system to mount [default: '/']

-m MTPOINT, --mtpoint=MTPOINT
    Mount point [default: '/mnt/t']

--datadir=DATADIR
    Data directory where files are created [default: '']

-o MTOPTS, --mtopts=MTOPTS
    Mount options [default: 'hard,rsize=4096,wsize=4096']

-i INTERFACE, --interface=INTERFACE
    Device interface [default: 'eth0']

-v VERBOSE, --verbose=VERBOSE
    Verbose level [default: 'none']

--nocleanup
    Do not cleanup

--rmtraces
    Remove trace files [default: remove trace files if no errors]

--keeptraces
    Do not remove any trace files [default: remove trace files if no errors]

--createlog
    Create log file

--bugmsgs=BUGMSGS
    File containing test messages to mark as bugs if they failed

--ignore
    Ignore all bugs given by bugmsgs

--nomount
    Do not mount server

--basename=BASENAME
    Base name for all files and logs [default: automatically generated]

--tverbose=TVERBOSE
    Verbose level for test messages [default: '1']

--filesize=FILESIZE
    File size to use for test files [default: 65536]

--nfiles=NFILES
    Number of files to create [default: 2]

--rsize=RSIZE
    Read size to use when reading files [default: 4096]

--wsize=WSIZE
    Write size to use when writing files [default: 4096]

--iodelay=IODELAY
    Seconds to delay I/O operations [default: 0.1]

--offset-delta=OFFSET_DELTA
    Read/Write offset delta [default: 4096]

--warnings
    Display warnings

--nfsdebug=NFSDEBUG
    Set NFS kernel debug flags and save log messages [default: '']

--rpcdebug=RPCDEBUG
    Set RPC kernel debug flags and save log messages [default: '']

--sudo=SUDO
    Full path of binary for sudo [default: '/usr/bin/sudo']

--tcpdump=TCPDUMP
    Full path of binary for tcpdump [default: '/usr/sbin/tcpdump']

--iptables=IPTABLES
    Full path of binary for iptables [default: '/sbin/iptables']

--messages=MESSAGES
    Full path of log messages file [default: '/var/log/messages']

--tmpdir=TMPDIR
    Temporary directory [default: '/tmp']

--runtest=RUNTEST
    Comma separated list of tests to run [default: 'all']

--client=CLIENT
    Remote NFS client that mounts server used for multiple client tests

--lock-offset=LOCK_OFFSET
    Starting offset for lock [default: 0]

--lock-len=LOCK_LEN
    Number of bytes to lock [default: 0]

TESTS

  read
Basic read delegation test

  write
Basic write delegation test

  read_lock
Basic read delegation test with file lock

  write_lock
Basic write delegation test with file lock

  read_recall_write
Recall read delegation by writing from a second client

  write_recall_write
Recall write delegation by writing from a second client

  read_recall_write_lock
Recall read delegation by writing from a second client with file lock

  write_recall_write_lock
Recall write delegation by writing from a second client with file lock

  write_recall_read
Recall write delegation by reading from a second client

  write_recall_read_lock
Recall write delegation by reading from a second client with file lock

  read_recall_setattr
Recall read delegation by changing the permissions to the file

  write_recall_setattr
Recall write delegation by changing the permissions to the file

  read_recall_setattr_lock
Recall read delegation by changing the permissions to the file with file lock

  write_recall_setattr_lock
Recall write delegation by changing the permissions to the file with file lock

EXAMPLES
The only required option is --server but only the basic delegation tests will be run. Use the --client option to run the recall tests as well
$ nfstest_delegation --server 192.168.0.11 --client 192.168.0.20

NOTES
The user id in the local host and the host specified by --client must have access to run commands as root using the 'sudo' command without the need for a password. The user id must be able to 'ssh' to remote host without the need for a password.

SEE ALSO
nfstest.test_util(1), nfstest_cache(1), nfstest_dio(1), nfstest_pnfs(1), nfstest_posix(1)

BUGS
No known bugs.

AUTHOR
Jorge Mora (mora@netapp.com)