From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Alex Myczko <tar@debian.org>
Date: May, 31 2026 20:27:48 +0200
Subject: [PATCH] <short summary of the patch>

TODO: Put a short summary on the line above and replace this paragraph
with a longer explanation of this change. Complete the meta-information
with other relevant fields (see below for details). To make it easier, the
information below has been extracted from the changelog. Adjust it or drop
it.

Bug-Debian: https://bugs.debian.org/1085739
Bug-Debian: https://bugs.debian.org/1091216
---
The information above should follow the Patch Tagging Guidelines, please
checkout https://dep.debian.net/deps/dep3/ to learn about the format. Here
are templates for supplementary fields that you might want to add:

Origin: (upstream|backport|vendor|other), (<patch-url>|commit:<commit-id>)
Bug: <upstream-bugtracker-url>
Bug-<Vendor>: <vendor-bugtracker-url>
Forwarded: (no|not-needed|<patch-forwarded-url>)
Applied-Upstream: <version>, (<commit-url>|commit:<commid-id>)
Reviewed-By: <name and email of someone who approved/reviewed the patch>

--- nfstest-3.2.orig/formatstr.py
+++ nfstest-3.2/formatstr.py
@@ -258,8 +258,8 @@ class FormatStr(Formatter):
            out = x.format("{0:?tuple({0}, {1})}", 1, 2)    # out = "tuple(1, 2)"
            out = x.format("{0:?tuple({0}, {1})}", None, 2) # out = ""
            # Using 'else' format (including the escaping of else character):
-           out = x.format(r"{0:?sid\:{0}:NONE}", 5)    # out = "sid:5"
-           out = x.format("{0:?sid\:{0}:NONE}", None) # out = "NONE"
+           out = x.format(r"{0:?sid\\:{0}:NONE}", 5)    # out = "sid:5"
+           out = x.format(r"{0:?sid\\:{0}:NONE}", None) # out = "NONE"
 
            # Nested formatting for strings, where processing is done in
            # reversed order -- process the last format first
--- /dev/null
+++ nfstest-3.2/man/baseobj.3
@@ -0,0 +1,361 @@
+.\" DO NOT MODIFY THIS FILE!  It was generated by setup.py 1.2.
+.TH BASEOBJ 3 "31 May 2026" "NFStest 3.2" "baseobj 1.2"
+.SH NAME
+baseobj - Base object
+.SH DESCRIPTION
+
+Base class so objects will inherit the methods providing the string
+representation of the object and methods to change the verbosity of such
+string representation. It also includes a simple debug printing and logging
+mechanism including methods to change the debug verbosity level and methods
+to add debug levels.
+.SH CLASSES
+.SS class BaseObj(builtins.object)
+.nf
+BaseObj(*kwts, **kwds)
+
+Base class so objects will inherit the methods providing the string
+representation of the object and a simple debug printing and logging
+mechanism.
+
+Usage:
+    from baseobj import BaseObj
+
+    # Named arguments
+    x = BaseObj(a=1, b=2)
+
+    # Dictionary argument
+    x = BaseObj({'a':1, 'b':2})
+
+    # Tuple arguments: first for keys and second for the values
+    x = BaseObj(['a', 'b'], [1, 2])
+
+    # All of the above will create an object having two attributes:
+    x.a = 1 and x.b = 2
+
+    # Add attribute name, this will be the only attribute to be displayed
+    x.set_attrlist("a")
+
+    # Add list of attribute names to be displayed in that order
+    x.set_attrlist(["a", "b"])
+
+    # Set attribute with ordered display rights
+    x.set_attr("a", 1)
+    # This is the same as
+    setattr(x, "a", 1) or x.a = 1
+    x.set_attrlist("a")
+
+    # Set attribute with switch duplicate
+    # The following creates an extra attribute "switch" with
+    # the same value as attribute "a":
+    #   x.a == x.switch
+    #   x.a is x.switch
+    x.set_attr("a", 1, switch=True)
+
+    # Make the current object flat by allowing all the attributes
+    # for the new attribute to be accessed directly by the current
+    # object so the following is True:
+    #   x.d == x.c.d
+    x.set_attr("c", BaseObj(d=11, e=22), switch=True)
+
+    # Set the comparison attribute so x == x.a is True
+    x.set_eqattr("a")
+
+    # Set verbose level of object's string representation
+    x.debug_repr(level)
+
+    # Set string format for verbose level 1
+    x.set_strfmt(1, "arg1:{0}")
+    # In the above example the first positional argument is "a"
+    # so the str(x) gives "arg1:1"
+
+    # Set attribute shared by all instances
+    # If a global or shared attribute is set on one instance,
+    # all other instances will have access to it:
+    #   y = BaseObj(d=2, e=3)
+    # then the following is true
+    #   x.g == y.g
+    #   x.g is y.g
+    x.set_global("g", 5)
+
+    # Set level mask to display all debug messages matching mask
+    x.debug_level(0xFF)
+
+    # Add a debug mapping for mask 0x100
+    x.debug_map(0x100, 'opts', "OPTS: ")
+
+    # Set global indentation to 4 spaces for dprint
+    x.dindent(4)
+
+    # Set global indentation to 4 spaces for displaying objects
+    x.sindent(4)
+
+    # Set global truncation to 64 for displaying string objects
+    x.strsize(64)
+
+    # Do not display timestamp for dprint messages
+    x.tstamp(enable=False)
+
+    # Change timestamp format to include the date
+    x.tstamp(fmt="{0:date:%Y-%m-%d %H:%M:%S.%q} ")
+
+    # Get timestamp if enabled, else return an empty string
+    out = x.timestamp()
+
+    # Open log file
+    x.open_log(logfile)
+
+    # Close log file
+    x.close_log()
+
+    # Write data to log file
+    x.write_log(data)
+
+    # Format the given arguments
+    out = x.format("{0:x} - {1}", 1, "hello")
+
+    # Format the object attributes set by set_attrlist()
+    out = x.format("{0:x} - {1}")
+
+    # Print debug message only if OPTS bitmap matches the current
+    # debug level mask
+    x.dprint("OPTS", "This is an OPTS debug message")
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __eq__(self, other)
+Comparison method: this object is treated like the attribute
+defined by set_eqattr()
+.P
+.B __getattr__(self, attr)
+Return the attribute value for which the lookup has not found
+the attribute in the usual places. It checks the internal
+dictionary for any attribute references, it checks if this
+is a flat object and returns the appropriate attribute.
+And finally, if any of the attributes listed in _attrlist
+does not exist it returns None as if they exist but not
+defined
+.P
+.B __init__(self, *kwts, **kwds)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.P
+.B __ne__(self, other)
+Comparison method: this object is treated like the attribute
+defined by set_eqattr()
+.P
+.B __repr__(self)
+String representation of object
+
+The representation depends on the verbose level set by debug_repr().
+If set to 0 the generic object representation is returned, else
+the representation of the object includes all object attributes
+and their values with proper indentation.
+.P
+.B __str__(self)
+Informal string representation of object
+
+The representation depends on the verbose level set by debug_repr().
+If set to 0 the generic object representation is returned, else
+the representation of the object includes all object attributes
+and their values.
+.P
+.B close_log(self)
+Close log file.
+.P
+.B debug_level(self, level=0)
+Set debug level mask.
+
+.RS
+.TP
+.B
+level:
+Level to set. This could be a number or a string expression
+of names defined by debug_map()
+.RE
+.RS
+
+Examples:
+    # Set level
+    x.debug_level(0xFF)
+
+    # Set level using expression
+    x.debug_level('all')
+    x.debug_level('debug ^ 1')
+.RE
+.P
+.B dprint(self, level, msg, indent=0)
+Print debug message if level is allowed by the verbose level
+given in debug_level().
+.P
+.B format(self, fmt, *kwts, **kwds)
+Format the arguments and return the string using the format given.
+If no arguments are given either positional or named then object
+attributes set by set_attrlist() are used as positional arguments
+and all object attributes are used as named arguments
+
+.RS
+.TP
+.B
+fmt:
+String format to use for the arguments, where {0}, {1}, etc.
+are used for positional arguments and {name1}, {name2}, etc.
+are used for named arguments given after fmt.
+.RE
+.P
+.B open_log(self, logfile)
+Open log file.
+.P
+.B set_attr(self, name, value, switch=False)
+Add name/value as an object attribute and add the name to the
+list of attributes to display
+
+.RS
+.TP
+.B
+name:
+Attribute name
+.TP
+.B
+value:
+Attribute value
+.RE
+.P
+.B set_attrlist(self, attr)
+Add list of attribute names in object to display by str() or repr()
+
+.RS
+.TP
+.B
+attr:
+Name or list of names to add to the list of attribute names
+to display
+.RE
+.P
+.B set_eqattr(self, attr)
+Set the comparison attribute
+
+.RS
+.TP
+.B
+attr:
+Attribute to use for object comparison
+.RE
+.RS
+
+Examples:
+    x = BaseObj(a=1, b=2)
+    x.set_eqattr("a")
+    x == 1 will return True, the same as x.a == 1
+.RE
+.P
+.B set_global(self, name, value)
+Set global variable.
+.P
+.B set_strfmt(self, level, format)
+Save format for given display level
+
+.RS
+.TP
+.B
+level:
+Display level given as a first argument
+.TP
+.B
+format:
+String format for given display level, given as a second argument
+.RE
+.P
+.B Static methods defined here:
+----------------------------
+.P
+.B debug_map(bitmap, name='', disp='')
+Add a debug mapping.
+
+Generic debug levels map
+  <bitmap>  <name>  <disp prefix>
+   0x000    'none'
+   0x001    'info'  'INFO: ' # Display info messages only
+   0x0FF    'debug' 'DBG:  ' # Display info and all debug messages (0x02-0x80)
+  >0x100    user defined verbose levels
+.P
+.B debug_repr(level=None)
+Return or set verbose level of object's string representation.
+When setting the verbose level, return the verbose level before
+setting it.
+
+.RS
+.TP
+.B
+level:
+Level of verbosity to set
+.RE
+.RS
+
+Examples:
+    # Set verbose level to its minimal object representation
+    x.debug_repr(0)
+
+    # Object representation is a bit more verbose
+    x.debug_repr(1)
+
+    # Object representation is a lot more verbose
+    x.debug_repr(2)
+.RE
+.P
+.B dindent(indent=None)
+Set global dprint indentation.
+.P
+.B dprint_count()
+Return the number of dprint messages actually displayed.
+.P
+.B flush_log()
+Flush data to log file.
+.P
+.B sindent(indent=None)
+Set global object indentation.
+.P
+.B strsize(size)
+Set global string truncation.
+.P
+.B timestamp(fmt=None)
+Return the timestamp if it is enabled.
+
+.RS
+.TP
+.B
+fmt:
+Timestamp format, default is given by the format
+set by tstamp()
+.RE
+.P
+.B tstamp(enable=None, fmt=None)
+Enable/disable timestamps on dprint messages and/or
+set the default format for timestamps
+
+.RS
+.TP
+.B
+enable:
+Boolean to enable/disable timestamps
+.TP
+.B
+fmt:
+Set timestamp format
+.RE
+.P
+.B write_log(data)
+Write data to log file.
+.fi
+.SH SEE ALSO
+.BR formatstr(3)
+
+.SH BUGS
+No known bugs.
+.SH AUTHOR
+Jorge Mora (mora@netapp.com)
--- /dev/null
+++ nfstest-3.2/man/formatstr.3
@@ -0,0 +1,219 @@
+.\" DO NOT MODIFY THIS FILE!  It was generated by setup.py 1.2.
+.TH FORMATSTR 3 "31 May 2026" "NFStest 3.2" "formatstr 1.6"
+.SH NAME
+formatstr - String Formatter object
+.SH DESCRIPTION
+
+Object used to format base objects into strings. It extends the functionality
+of the string Formatter object to include new modifiers for different objects.
+Some of these new modifiers include conversion of strings into a sequence
+of hex characters, conversion of strings to their corresponding CRC32 or
+CRC16 representation.
+.SH CLASSES
+.SS class FormatStr(string.Formatter)
+.nf
+String Formatter object
+
+FormatStr() -> New string formatter object
+
+Usage:
+    from formatstr import FormatStr
+
+    x = FormatStr()
+
+    out = x.format(fmt_spec, *args, **kwargs)
+    out = x.vformat(fmt_spec, args, kwargs)
+
+    Arguments should be surrounded by curly braces {}, anything that is
+    not contained in curly braces is considered literal text which is
+    copied unchanged to the output.
+    Positional arguments to be used in the format spec are specified
+    by their index: {0}, {1}, etc.
+    Named arguments to be used in the format spec are specified by
+    their name: {name1}, {name2}, etc.
+
+    Modifiers are specified after the positional index or name preceded
+    by a ":", "{0:#x}" -- display first positional argument in hex
+
+Examples:
+    # Format string using positional arguments
+    out = x.format("{0} -> {1}", a, b)
+
+    # Format string using named arguments
+    out = x.format("{key}: {value}", key="id", value=32)
+
+    # Format string using both positional and named arguments
+    out = x.format("{key}: {value}, {0}, {1}", a, b, key="id", value=32)
+
+    # Use vformat() method instead when positional arguments are given
+    # as a list and named arguments are given as a dictionary
+    # The following examples show the same as above
+    pos_args = [a, b]
+    named_args = {"key":"id", "value":32}
+    out = x.vformat("{0} -> {1}", pos_args)
+    out = x.vformat("{key}: {value}", named_args)
+    out = x.vformat("{key}: {value}, {0}, {1}", pos_args, named_args)
+
+    # Display string in hex
+    out = x.format("{0:x}", "hello")  # out = "68656c6c6f"
+
+    # Display string in hex with leading 0x
+    out = x.format("{0:#x}", "hello") # out = "0x68656c6c6f"
+
+    # Display string in crc32
+    out = x.format("{0:crc32}", "hello") # out = "0x3610a686"
+
+    # Display string in crc16
+    out = x.format("{0:crc16}", "hello") # out = "0x9c62"
+
+    # Display length of item
+    out = x.format("{0:len}", "hello") # out = 5
+
+    # Substring using "@" format modifier
+    # Format {0:@sindex[,eindex]} is like value[sindex:eindex]
+    #   {0:@3} is like value[3:]
+    #   {0:@3,5} is like value[3:5]
+    #   {0:.5} is like value[:5]
+    out = x.format("{0:@3}", "hello") # out = "lo"
+    out = x.format("{0:.2}", "hello") # out = "he"
+
+    # Conditionally display the first format if argument is not None,
+    # else the second format is displayed
+    # Format: {0:?format1:format2}
+    out = x.format("{0:?tuple({0}, {1})}", 1, 2)    # out = "tuple(1, 2)"
+    out = x.format("{0:?tuple({0}, {1})}", None, 2) # out = ""
+    # Using 'else' format (including the escaping of else character):
+    out = x.format(r"{0:?sid\:{0}:NONE}", 5)    # out = "sid:5"
+    out = x.format("{0:?sid\:{0}:NONE}", None) # out = "NONE"
+
+    # Nested formatting for strings, where processing is done in
+    # reversed order -- process the last format first
+    # Format: {0:fmtN:...:fmt2:fmt1}
+    #   Display substring of 4 bytes as hex (substring then hex)
+    out = x.format("{0:#x:.4}", "hello") # out = "0x68656c6c"
+    #   Display first 4 bytes of string in hex (hex then substring)
+    out = x.format("{0:.4:#x}", "hello") # out = "0x68"
+
+    # Integer extension to display umax name instead of the value
+    # Format: {0:max32|umax32|max64|umax64}
+    # Output: if value matches the largest number in format given,
+    #         the max name is displayed, else the value is displayed
+    out = x.format("{0:max32}", 0x7fffffff) # out = "max32"
+    out = x.format("{0:max32}", 35)         # out = "35"
+
+    # Number extension to display the value as an ordinal number
+    # Format: {0:ord[:s]}
+    # Output: display value as an ordinal number,
+    #         use the ":s" option to display the short name
+    out = x.format("{0:ord}", 3)    # out = "third"
+    out = x.format("{0:ord:s}", 3)  # out = "3rd"
+
+    # Number extension to display the value with units
+    # Format: {0:units[.precision]}
+    # Output: display value as a string with units, by default
+    #         precision=2 and all trailing zeros are removed.
+    #         To force the precision use a negative number.
+    out = x.format("{0:units}", 1024)    # out = "1KB"
+    out = x.format("{0:units.4}", 2000)  # out = "1.9531KB"
+    out = x.format("{0:units.-2}", 1024) # out = "1.00KB"
+
+    # Date extension for int, long or float
+    # Format: {0:date[:datefmt]}
+    #         The spec given by datefmt is converted using strftime()
+    #         The conversion spec "%q" is used to display microseconds
+    # Output: display value as a date
+    stime = 1416846041.521868
+    out = x.format("{0:date}", stime) # out = "Mon Nov 24 09:20:41 2014"
+    out = x.format("{0:date:%Y-%m-%d}", stime) # out = "2014-11-24"
+
+    # List format specification
+    # Format: {0[[:listfmt]:itemfmt]}
+    #   If one format spec, it is applied to each item in the list
+    #   If two format specs, the first is the item separator and
+    #   the second is the spec applied to each item in the list
+    alist = [1, 2, 3, 0xffffffff]
+    out = x.format("{0:umax32}", alist)    # out = "[1, 2, 3, umax32]"
+    out = x.format("{0:--:umax32}", alist) # out = "1--2--3--umax32"
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B format_field(self, value, format_spec)
+Override original method to include modifier extensions
+.P
+.B get_value(self, key, args, kwargs)
+Override original method to return "" when the positional argument
+or named argument does not exist:
+  x.format("0:{0}, 1:{1}, arg1:{arg1}, arg2:{arg2}", a, arg1=11)
+  the {1} will return "" since there is only one positional argument
+  the {arg2} will return "" since arg2 is not a named argument
+.fi
+.SH FUNCTIONS
+.nf
+.B crc16(value)
+Convert string to its crc16 representation
+.P
+.B crc32(value)
+Convert string to its crc32 representation
+.P
+.B hexstr(value)
+Convert string to its hex representation
+.P
+.B int_units(value)
+Convert string value with units to an integer
+
+.RS
+.TP
+.B
+value:
+String to convert
+.RE
+.RS
+
+Examples:
+    out = int_units("1MB") # out = 1048576
+.RE
+.P
+.B ordinal_number(value, short=0)
+Return the ordinal number for the given integer
+.P
+.B plural(word, count=2)
+Return the plural of the word according to the given count
+.P
+.B str_time(value)
+Convert the number of seconds to a string with a format of "[h:]mm:ss"
+
+.RS
+.TP
+.B
+value:
+Time value to convert (in seconds)
+.RE
+.RS
+
+Examples:
+    out = str_time(123.0) # out = "02:03"
+    out = str_time(12345) # out = "3:25:45"
+.RE
+.P
+.B str_units(value, precision=2)
+Convert number to a string value with units
+
+.RS
+.TP
+.B
+value:
+Number to convert
+.TP
+.B
+precision:
+Return string value with the following floating point
+precision. By default no trailing zeros are returned
+but if the precision is given as a negative number
+the precision is enforced [default: 2]
+.RE
+.SH BUGS
+No known bugs.
+.SH AUTHOR
+Jorge Mora (mora@netapp.com)
--- /dev/null
+++ nfstest-3.2/man/nfstest.file_io.3
@@ -0,0 +1,256 @@
+.\" DO NOT MODIFY THIS FILE!  It was generated by setup.py 1.2.
+.TH FILE_IO 3 "31 May 2026" "NFStest 3.2" "file_io 1.3"
+.SH NAME
+nfstest.file_io - File I/O module
+.SH DESCRIPTION
+
+Provides an interface to create and manipulate files of different types.
+The arguments allow running for a specified period of time as well as running
+multiple processes. Each process modifies a single file at a time and the
+file name space is different for each process so there are no collisions
+between two different processes modifying the same file.
+
+File types:
+  - Regular file
+  - Hard link
+  - Symbolic link
+
+File operations:
+  - Open (create or re-open)
+  - Open downgrade
+    This is done by opening the file for read and write, then the file is
+    opened again as read only and finally closing the read and write file
+    descriptor
+  - Read (sequential or random access)
+  - Write (sequential or random access)
+  - Remove
+  - Rename
+  - Truncate (path or file descriptor)
+  - Readdir
+  - Lock
+  - Unlock
+  - Tlock
+.SH CLASSES
+.SS class FileIO(baseobj.BaseObj)
+.nf
+FileIO(**kwargs)
+
+FileIO object
+
+Usage:
+    from nfstest.file_io import FileIO
+
+    # Instantiate FileIO object given top level directory
+    x = FileIO(datadir="/tmp/data")
+
+    # Run workload creating the top level directory if necessary
+    x.run()
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __del__(self)
+Destructor
+.P
+.B __init__(self, **kwargs)
+Constructor
+
+Initialize object's private data
+
+.RS
+.TP
+.B
+datadir:
+Top level directory where files will be created,
+it will be created if it does not exist
+.TP
+.B
+seed:
+Seed to initialized the random number generator
+[default: automatically generated]
+.TP
+.B
+nprocs:
+Number of processes to use [default: 1]
+.TP
+.B
+runtime:
+Run time [default: 0 (indefinitely)]
+.TP
+.B
+verbose:
+Verbose level: none|info|debug|dbg1-7|all [default: 'none']
+.TP
+.B
+exiterr:
+Exit on first error [default: False]
+.TP
+.B
+read:
+Read file percentage [default: 40.0]
+.TP
+.B
+write:
+Write file percentage [default: 40.0]
+.TP
+.B
+rdwr:
+Read/write file percentage [default: 20.0]
+.TP
+.B
+randio:
+Random file access percentage [default: 50.0]
+.TP
+.B
+iodelay:
+Seconds to delay I/O operations [default: 0.0]
+.TP
+.B
+direct:
+Use direct I/O [default: False]
+.TP
+.B
+rdwronly:
+Use read and write only, no rename, remove, etc. [default: False]
+.TP
+.B
+create:
+Create file percentage [default: 5.0]
+.TP
+.B
+odgrade:
+Open downgrade percentage [default: 5.0]
+.TP
+.B
+osync:
+Open file with O_SYNC [default: 10.0]
+.TP
+.B
+fsync:
+Percentage of fsync after write [default: 2.0]
+.TP
+.B
+rename:
+Rename file percentage [default: 5.0]
+.TP
+.B
+remove:
+Remove file percentage [default: 5.0]
+.TP
+.B
+trunc:
+Truncate file percentage [default: 2.0]
+.TP
+.B
+ftrunc:
+Truncate opened file percentage [default: 2.0]
+.TP
+.B
+link:
+Create hard link percentage [default: 1.0]
+.TP
+.B
+slink:
+Create symbolic link percentage [default: 0.2]
+.TP
+.B
+readdir:
+List contents of directory percentage [default: 0.5]
+.TP
+.B
+lock:
+Lock file percentage [default: 20.0]
+.TP
+.B
+unlock:
+Unlock file percentage [default: 80.0]
+.TP
+.B
+tlock:
+Lock test percentage [default: 20.0]
+.TP
+.B
+lockfull:
+Lock full file percentage [default: 50.0]
+.TP
+.B
+minfiles:
+Minimum number of files to create before any file operation
+is executed [default: 10]
+.TP
+.B
+fsizeavg:
+File size average [default: 1m]
+.TP
+.B
+fsizedev:
+File size standard deviation [default: 256k]
+.TP
+.B
+rsize:
+Read block size [default: 64k]
+.TP
+.B
+rsizedev:
+Read block size standard deviation [default: 8k]
+.TP
+.B
+wsize:
+Write block size [default: 64k]
+.TP
+.B
+wsizedev:
+Write block size standard deviation [default: 8k]
+.TP
+.B
+sizemult:
+Size multiplier [default: 1.0]
+.TP
+.B
+createlog:
+Create log file [default: False]
+.TP
+.B
+createlogs:
+Create a log file for each process [default: False]
+.TP
+.B
+logdir:
+Log directory [default: '/tmp']
+.RE
+.P
+.B get_mountpoint(self)
+Get mount point from data directory
+.P
+.B run(self)
+Main function where all processes are started
+.P
+.B run_process(self, tid=0)
+Main loop for each process
+.fi
+.SS class FileObj(baseobj.BaseObj)
+.nf
+FileObj(*kwts, **kwds)
+
+# File object
+
+.fi
+.SS class TermSignal(builtins.Exception)
+.nf
+Exception to be raised on SIGTERM signal
+
+.fi
+.SH FUNCTIONS
+.nf
+.B stop_handler(signum, frame)
+Signal handler to catch SIGTERM and allow for graceful termination
+of subprocesses
+.SH SEE ALSO
+.BR baseobj(3),
+.BR formatstr(3)
+
+.SH BUGS
+No known bugs.
+.SH AUTHOR
+Jorge Mora (mora@netapp.com)
--- /dev/null
+++ nfstest-3.2/man/nfstest.test_util.3
@@ -0,0 +1,643 @@
+.\" DO NOT MODIFY THIS FILE!  It was generated by setup.py 1.2.
+.TH TEST_UTIL 3 "31 May 2026" "NFStest 3.2" "test_util 1.8"
+.SH NAME
+nfstest.test_util - Test utilities module
+.SH DESCRIPTION
+
+Provides a set of tools for testing either the NFS client or the NFS server,
+most of the functionality is focused mainly on testing the client.
+These tools include the following:
+
+    - Process command line arguments
+    - Provide functionality for PASS/FAIL
+    - Provide test grouping functionality
+    - Provide multiple client support
+    - Logging mechanism
+    - Debug info control
+    - Mount/Unmount control
+    - Create files/directories
+    - Provide mechanism to start a packet trace
+    - Provide mechanism to simulate a network partition
+    - Support for pNFS testing
+
+In order to use some of the functionality available, the user id in all the
+client hosts must have access to run commands as root using the 'sudo' command
+without the need for a password, this includes the host where the test is being
+executed. This is used to run commands like 'mount' and 'umount'. Furthermore,
+the user id must be able to ssh to remote hosts without the need for a password
+if test requires the use of multiple clients.
+
+Network partition is simulated by the use of 'iptables', please be advised
+that after every test run the iptables is flushed and reset so any rules
+previously setup will be lost. Currently, there is no mechanism to restore
+the iptables rules to their original state.
+.SH CLASSES
+.SS class TestUtil(nfstest.nfs_util.NFSUtil)
+.nf
+TestUtil(**kwargs)
+
+TestUtil object
+
+TestUtil() -> New server object
+
+Usage:
+    x = TestUtil()
+
+    # Process command line options
+    x.scan_options()
+
+    # Start packet trace using tcpdump
+    x.trace_start()
+
+    # Mount volume
+    x.mount()
+
+    # Create file
+    x.create_file()
+
+    # Unmount volume
+    x.umount()
+
+    # Stop packet trace
+    x.trace_stop()
+
+    # Exit script
+    x.exit()
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __del__(self)
+Destructor
+
+Gracefully stop the packet trace, cleanup files, unmount volume,
+and reset network.
+.P
+.B __init__(self, **kwargs)
+Constructor
+
+Initialize object's private data.
+
+.RS
+.TP
+.B
+sid:
+Test script ID [default: '']
+This is used to have options targeted for a given ID without
+including these options in any other test script.
+.TP
+.B
+usage:
+Usage string [default: '']
+.TP
+.B
+testnames:
+List of test names [default: []]
+When this list is not empty, the --runtest option is enabled and
+test scripts should use the run_tests() method to run all the
+tests. Test script should have methods named as <testname>_test.
+.TP
+.B
+testgroups:
+Dictionary of test groups where the key is the name of the test
+group and its value is a dictionary having the following keys:
+tests:
+A list of tests belonging to this test group
+desc:
+Description of the test group, this is displayed
+in the help if the name of the test group is also
+included in testnames
+tincl:
+Include a comma separated list of tests belonging to
+this test group to the description [default: False]
+wrap:
+Reformat the description so it fits in lines no
+more than the width given. The description is not
+formatted for a value of zero [default: 72]
+.RE
+.RS
+
+Example:
+    x = TestUtil(testnames=['basic', 'lock'])
+
+    # The following methods should exist:
+    x.basic_test()
+    x.lock_test()
+.RE
+.P
+.B cleanup(self)
+Clean up test environment.
+
+Remove any files created: test files, trace files.
+.P
+.B close_files(self, *fdlist)
+Close all files opened by open_files() and all file descriptors
+given as arguments.
+.P
+.B compare_data(self, data, offset=0, pattern=None, nlen=32, fd=None, msg='')
+Compare data to the given pattern and return a three item tuple:
+absolute offset where data differs from pattern, sample data at
+diff offset, and the expected data at diff offset according to
+pattern. If data matches exactly it returns (None, None, None).
+
+.RS
+.TP
+.B
+data:
+Data to compare against the pattern
+.TP
+.B
+offset:
+Absolute offset to get the expected data from pattern
+[default: 0]
+.TP
+.B
+pattern:
+Data pattern function or string. If this is a function,
+it must take offset and size as positional arguments.
+If given as a string, the pattern repeats over and over
+starting at offset = 0 [default: self.data_pattern]
+.TP
+.B
+nlen:
+Size of sample data to return if a difference is found
+[default: 32]
+.TP
+.B
+fd:
+Opened file descriptor for the data, this is used where
+the data comes from a file and a difference is found right
+at the end of the given data. In this case, the data is
+read from the file to return the sample diff of size given
+by nlen [default: None]
+.TP
+.B
+msg:
+Message to append to debug message if a difference is
+found. If set to None, debug messages are not displayed
+[default: '']
+.RE
+.P
+.B compare_mount_args(self, mtopts1, mtopts2)
+Compare mount arguments
+.P
+.B config(self, msg)
+Display config message and terminate test with an exit value of 2.
+.P
+.B create_dir(self, dir=None, mode=493)
+Create a directory under the given directory with the given mode.
+.P
+.B create_file(self, offset=0, size=None, dir=None, mode=None, **kwds)
+Create a file starting to write at given offset with total size
+of written data given by the size option.
+
+.RS
+.TP
+.B
+offset:
+File offset where data will be written to [default: 0]
+.TP
+.B
+size:
+Total number of bytes to write [default: --filesize option]
+.TP
+.B
+dir:
+Create file under this directory
+.TP
+.B
+mode:
+File permissions [default: use default OS permissions]
+.TP
+.B
+pattern:
+Data pattern to write to the file [default: data_pattern default]
+.TP
+.B
+ftype:
+File type to create [default: FTYPE_FILE]
+.TP
+.B
+hole_list:
+List of offsets where each hole is located [default: None]
+.TP
+.B
+hole_size:
+Size of each hole [default: --wsize option]
+.TP
+.B
+verbose:
+Verbosity level [default: 0]
+.TP
+.B
+dlevels:
+Debug level list to use [default: ["DBG2", "DBG3", "DBG4"]]
+.RE
+.RS
+
+Returns the file name created, the file name is also stored
+in the object attribute filename -- attribute absfile is also
+available as the absolute path of the file just created.
+
+File created is removed at cleanup.
+.RE
+.P
+.B create_rexec(self, servername=None, **kwds)
+Create remote server object.
+.P
+.B data_pattern(self, offset, size, pattern=None)
+Return data pattern.
+
+.RS
+.TP
+.B
+offset:
+Starting offset of pattern
+.TP
+.B
+size:
+Size of data to return
+.TP
+.B
+pattern:
+Data pattern to return, default is of the form:
+hex_offset(0x%08X) abcdefghijklmnopqrst\n
+.RE
+.P
+.B delay_io(self, delay=None)
+Delay I/O by value given or the value given in --iodelay option.
+.P
+.B exit(self)
+Terminate script with an exit value of 0 when all tests passed
+and a value of 1 when there is at least one test failure.
+.P
+.B get_dirname(self, dir=None)
+Return a unique directory name under the given directory.
+.P
+.B get_filename(self, dir=None)
+Return a unique file name under the given directory.
+.P
+.B get_logname(self, remote=False)
+Get next log file name.
+.P
+.B get_marker_index(self, marker_id=None)
+Find packet index of the trace marker given by the marker id
+
+.RS
+.TP
+.B
+marker_id:
+ID of trace marker to find in the packet trace, if this is
+not given the current marker id is used [default: None]
+.RE
+.P
+.B get_name(self)
+Get unique name for this instance.
+.P
+.B insert_trace_marker(self, name=None)
+Send a LOOKUP for an unknown file to have a marker in
+the packet trace and return the trace marker id
+
+.RS
+.TP
+.B
+name:
+Use this name as the trace marker but the caller must make
+sure this is a unique name in order to find the correct
+index for this marker. This could also be used to add any
+arbitrary information to the packet trace [default: None]
+.RE
+.P
+.B lock_files(self, lock_type=None, offset=0, length=0)
+Lock all files opened by open_files().
+.P
+.B need_run_test(self, testname)
+Return True only if user explicitly requested to run this test
+.P
+.B open_files(self, mode, create=True)
+Open files according to given mode, the file descriptors are saved
+internally to be used with write_files(), read_files() and
+close_files(). The number of files to open is controlled by
+the command line option '--nfiles'.
+
+The mode could be either 'r' or 'w' for opening files for reading
+or writing respectively. The open flags for mode 'r' is O_RDONLY
+while for mode 'w' is O_WRONLY|O_CREAT|O_SYNC. The O_SYNC is used
+to avoid the client buffering the written data.
+.P
+.B process_client_option(self, option='client', remote=True, count=1)
+Process the client option
+
+Clients are separated by a "," and each client definition can have
+the following options separated by ":":
+    client:server:export:nfsversion:port:proto:sec:mtpoint
+
+.RS
+.TP
+.B
+option:
+Option name [default: "client"]
+.TP
+.B
+remote:
+Expect a client hostname or IP address in the definition.
+If this is set to None do not verify client name or IP.
+[default: True]
+.TP
+.B
+count:
+Number of client definitions to expect. If remote is True,
+return the number of definitions listed in the given option
+up to this number. If remote is False, return exactly this
+number of definitions [default: 1]
+.RE
+.RS
+
+Examples:
+    # Using positional arguments with nfsversion=4.1 for client1
+    client=client1:::4.1,client2
+
+    # Using named arguments instead
+    client=client1:nfsversion=4.1,client2
+.RE
+.P
+.B process_option(self, value, arglist=[], typemap={})
+Process option with a list of items separated by "," and each
+item in the list could have different arguments separated by ":".
+
+.RS
+.TP
+.B
+value:
+String of comma separated elements
+.TP
+.B
+arglist:
+Positional order of arguments, if this list is empty,
+then use named arguments only [default: []]
+.TP
+.B
+typemap:
+Dictionary to convert arguments to their given types,
+where the key is the argument name and its value is the
+type function to use to convert the argument [default: {}]
+.RE
+.P
+.B read_files(self)
+Read a block of data (size given by --rsize) from all files opened
+by open_files() for reading.
+.P
+.B remove_test(self, testname)
+Remove all instances of test from the list of tests to run
+.P
+.B run_func(self, func, *args, **kwargs)
+Run function with the given arguments and return the results.
+All positional arguments are passed to the function while the
+named arguments change the behavior of the method.
+Object attribute "oserror" is set to the OSError object if the
+function fails.
+
+.RS
+.TP
+.B
+msg:
+Test assertion message [default: None]
+.TP
+.B
+err:
+Expected error number [default: 0]
+.RE
+.P
+.B run_tests(self, **kwargs)
+Run all test specified by the --runtest option.
+
+.RS
+.TP
+.B
+testnames:
+List of testnames to run [default: all tests given by --testnames]
+.RE
+.RS
+
+All other arguments given are passed to the test methods.
+.RE
+.P
+.B scan_options(self)
+Process command line options.
+
+Process all the options in the file given by '--file', then the
+ones in the command line. This allows for command line options
+to over write options given in the file.
+
+Format of options file:
+    # For options expecting a value
+    <option_name> = <value>
+
+    # For boolean (flag) options
+    <option_name>
+
+Process options files and make sure not to process the same file
+twice, this is used for the case where HOMECFG and CWDCFG are the
+same, more specifically when environment variable HOME is not
+defined. Also, the precedence order is defined as follows:
+  1. options given in command line
+  2. options given in file specified by the -f|--file option
+  3. options given in file specified by ./.nfstest
+  4. options given in file specified by $HOME/.nfstest
+  5. options given in file specified by /etc/nfstest
+
+NOTE:
+  Must use the long name of the option (--<option_name>) in the file.
+.P
+.B set_nfserr_list(self, nfs3list=[], nfs4list=[], nlm4list=[], mnt3list=[])
+Temporaly set the NFS list of expected NFS errors in the next call
+to trace_open
+.P
+.B setup(self, nfiles=None)
+Set up test environment.
+
+Create nfiles number of files [default: --nfiles option]
+.P
+.B str_args(self, args)
+Return the formal string representation of the given list
+where string objects are truncated.
+.P
+.B test(self, expr, msg, subtest=None, failmsg=None, terminate=False)
+Test expr and display message as PASS/FAIL, terminate execution
+if terminate option is True.
+
+.RS
+.TP
+.B
+expr:
+If expr is true, display as a PASS message,
+otherwise as a FAIL message
+.TP
+.B
+msg:
+Message to display
+.TP
+.B
+subtest:
+If given, append this string to the displayed message and
+mark this test as a member of the sub-group given by msg
+.TP
+.B
+failmsg:
+If given, append this string to the displayed message when
+expr is false [default: None]
+.TP
+.B
+terminate:
+Terminate execution if true and expr is false [default: False]
+.RE
+.RS
+
+If tverbose=normal or level 1:
+    Sub-group message is displayed as a PASS/FAIL message including
+    the number of tests that passed and failed within the sub-group
+If tverbose=verbose or level 2:
+    All tests messages are displayed
+.RE
+.P
+.B test_description(self, tname=None)
+Return the test description for the current test
+.P
+.B test_group(self, msg)
+Display heading message and start a test group.
+
+If tverbose=group or level 0:
+    Group message is displayed as a PASS/FAIL message including the
+    number of tests that passed and failed within this test group.
+If tverbose=normal|verbose or level 1|2:
+    Group message is displayed as a heading messages for the tests
+    belonging to this test group.
+.P
+.B test_info(self, msg)
+Display info message.
+.P
+.B test_options(self, name=None)
+Get options for the given test name. If the test name is not given
+it is determined by inspecting the stack to find which method is
+calling this method.
+.P
+.B testid_count(self, tid)
+Return the number of instances the testid has occurred.
+.P
+.B trace_open(self, *kwts, **kwds)
+This is a wrapper to the original trace_open method where the
+packet trace is scanned for NFS errors and a failure is logged
+for each error found not given on the list of expected errors
+set with method set_nfserr_list. Scanning for NFS error is done
+only if --nfserrors option has been specified.
+.P
+.B trace_start(self, *kwts, **kwds)
+This is a wrapper to the original trace_start method to reset
+the trace marker state
+.P
+.B verify_client_option(self, tclient_dict, option='client')
+Verify the client option is required from the list of tests to run.
+Also, check if enough clients were specified to run the tests.
+
+.RS
+.TP
+.B
+tclient_dict:
+Dictionary having the number of clients required by each test
+.TP
+.B
+option:
+Option name [default: "client"]
+.RE
+.P
+.B verify_file_data(
+    self,
+    msg=None,
+    pattern=None,
+    path=None,
+    filesize=None,
+    nlen=None,
+    cmsg=''
+)
+    Verify file by comparing the data to the given pattern.
+    It returns the results from the compare_data method.
+
+    msg:
+        Test assertion message. If set to None, no assertion is
+        done it just returns the results [default: None]
+    pattern:
+        Data pattern function or string. If this is a function,
+        it must take offset and size as positional arguments.
+        If given as a string, the pattern repeats over and over
+        starting at offset = 0 [default: self.data_pattern]
+    path:
+        Absolute path of file to verify [default: self.absfile]
+    filesize:
+        Expected size of file to be verified [default: self.filesize]
+    nlen:
+        Size of sample data to return if a difference is found
+        [default: compare_data default]
+    cmsg:
+        Message to append to debug message if a difference is
+        found. If set to None, debug messages are not displayed
+        [default: '']
+.P
+.B warning(self, msg)
+Display warning message.
+.P
+.B write_data(
+    self,
+    fd,
+    offset=0,
+    size=None,
+    pattern=None,
+    verbose=0,
+    dlevel='DBG5'
+)
+    Write data to the file given by the file descriptor
+
+    fd:
+        File descriptor
+    offset:
+        File offset where data will be written to [default: 0]
+    size:
+        Total number of bytes to write [default: --filesize option]
+    pattern:
+        Data pattern to write to the file [default: data_pattern default]
+    verbose:
+        Verbosity level [default: 0]
+.P
+.B write_files(self)
+Write a block of data (size given by --wsize) to all files opened
+by open_files() for writing.
+.P
+.B Static methods defined here:
+----------------------------
+.P
+.B get_list(value, nmap, sep=',')
+Given the value as a string of 'comma' separated elements, return
+a list where each element is mapped using the dictionary 'nmap'.
+    nmap = {"one":1, "two":2}
+    out = x.get_list("one", nmap)        # out = [1]
+    out = x.get_list("one,two", nmap)    # out = [1,2]
+    out = x.get_list("two,one", nmap)    # out = [2,1]
+    out = x.get_list("one,three", nmap)  # out = None
+.P
+.B str_list(value, vtype=<class 'str'>, sep=',')
+Return a list of <vtype> elements from the comma separated string.
+.fi
+.SH SEE ALSO
+.BR baseobj(3),
+.BR formatstr(3),
+.BR nfstest.host(3),
+.BR nfstest.nfs_util(3),
+.BR nfstest.rexec(3),
+.BR nfstest.utils(3),
+.BR packet.nfs.nfs3_const(3),
+.BR packet.nfs.nfs4_const(3)
+
+.SH BUGS
+No known bugs.
+.SH AUTHOR
+Jorge Mora (mora@netapp.com)
--- /dev/null
+++ nfstest-3.2/man/packet.nfs.nfs4.3
@@ -0,0 +1,8119 @@
+.\" DO NOT MODIFY THIS FILE!  It was generated by setup.py 1.2.
+.TH NFS4 3 "31 May 2026" "NFStest 3.2" "nfs4 4.2"
+.SH NAME
+packet.nfs.nfs4 - NFSv4 decoding module
+.SH CLASSES
+.SS class ACCESS4args(baseobj.BaseObj)
+.nf
+ACCESS4args(unpack)
+
+struct ACCESS4args {
+    /* CURRENT_FH: object */
+    access4 access;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class ACCESS4res(baseobj.BaseObj)
+.nf
+ACCESS4res(unpack)
+
+union switch ACCESS4res (nfsstat4 status) {
+    case const.NFS4_OK:
+        ACCESS4resok resok;
+    default:
+        void;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class ACCESS4resok(baseobj.BaseObj)
+.nf
+ACCESS4resok(unpack)
+
+struct ACCESS4resok {
+    access4 supported;
+    access4 access;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class ALLOCATE4args(baseobj.BaseObj)
+.nf
+ALLOCATE4args(unpack)
+
+struct ALLOCATE4args {
+    /* CURRENT_FH: file */
+    stateid4 stateid;
+    offset4  offset;
+    length4  length;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class ALLOCATE4res(baseobj.BaseObj)
+.nf
+ALLOCATE4res(unpack)
+
+struct ALLOCATE4res {
+    nfsstat4 status;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class BACKCHANNEL_CTL4args(baseobj.BaseObj)
+.nf
+BACKCHANNEL_CTL4args(unpack)
+
+struct BACKCHANNEL_CTL4args {
+    uint32_t            cb_program;
+    callback_sec_parms4 sec_parms<>;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class BACKCHANNEL_CTL4res(baseobj.BaseObj)
+.nf
+BACKCHANNEL_CTL4res(unpack)
+
+struct BACKCHANNEL_CTL4res {
+    nfsstat4 status;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class BIND_CONN_TO_SESSION4args(baseobj.BaseObj)
+.nf
+BIND_CONN_TO_SESSION4args(unpack)
+
+struct BIND_CONN_TO_SESSION4args {
+    sessionid4               sessionid;
+    channel_dir_from_client4 dir;
+    bool                     rdma_mode;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class BIND_CONN_TO_SESSION4res(baseobj.BaseObj)
+.nf
+BIND_CONN_TO_SESSION4res(unpack)
+
+union switch BIND_CONN_TO_SESSION4res (nfsstat4 status) {
+    case const.NFS4_OK:
+        BIND_CONN_TO_SESSION4resok resok;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class BIND_CONN_TO_SESSION4resok(baseobj.BaseObj)
+.nf
+BIND_CONN_TO_SESSION4resok(unpack)
+
+struct BIND_CONN_TO_SESSION4resok {
+    sessionid4               sessionid;
+    channel_dir_from_server4 dir;
+    bool                     rdma_mode;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class CB_COMPOUND4args(packet.nfs.nfsbase.NFSbase)
+.nf
+CB_COMPOUND4args(unpack)
+
+struct CB_COMPOUND4args {
+    utf8str_cs    tag;
+    uint32_t      minorversion;
+    uint32_t      callback_ident;
+    nfs_cb_argop4 array<>;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class CB_COMPOUND4res(packet.nfs.nfsbase.NFSbase)
+.nf
+CB_COMPOUND4res(unpack, minorversion)
+
+struct CB_COMPOUND4res {
+    nfsstat4      status;
+    utf8str_cs    tag;
+    nfs_cb_resop4 array<>;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack, minorversion)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class CB_GETATTR4args(baseobj.BaseObj)
+.nf
+CB_GETATTR4args(unpack)
+
+struct CB_GETATTR4args {
+    nfs_fh4 fh;
+    bitmap4 request;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class CB_GETATTR4res(baseobj.BaseObj)
+.nf
+CB_GETATTR4res(unpack)
+
+union switch CB_GETATTR4res (nfsstat4 status) {
+    case const.NFS4_OK:
+        CB_GETATTR4resok resok;
+    default:
+        void;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class CB_GETATTR4resok(baseobj.BaseObj)
+.nf
+CB_GETATTR4resok(unpack)
+
+struct CB_GETATTR4resok {
+    fattr4 attributes;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class CB_ILLEGAL4res(baseobj.BaseObj)
+.nf
+CB_ILLEGAL4res(unpack)
+
+struct CB_ILLEGAL4res {
+    nfsstat4 status;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class CB_LAYOUTRECALL4args(baseobj.BaseObj)
+.nf
+CB_LAYOUTRECALL4args(unpack)
+
+struct CB_LAYOUTRECALL4args {
+    layouttype4   type;
+    layoutiomode4 iomode;
+    bool          changed;
+    layoutrecall4 recall;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class CB_LAYOUTRECALL4res(baseobj.BaseObj)
+.nf
+CB_LAYOUTRECALL4res(unpack)
+
+struct CB_LAYOUTRECALL4res {
+    nfsstat4 status;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class CB_NOTIFY4args(baseobj.BaseObj)
+.nf
+CB_NOTIFY4args(unpack)
+
+struct CB_NOTIFY4args {
+    stateid4 stateid;
+    nfs_fh4  fh;
+    notify4  changes<>;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class CB_NOTIFY4res(baseobj.BaseObj)
+.nf
+CB_NOTIFY4res(unpack)
+
+struct CB_NOTIFY4res {
+    nfsstat4 status;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class CB_NOTIFY_DEVICEID4args(baseobj.BaseObj)
+.nf
+CB_NOTIFY_DEVICEID4args(unpack)
+
+struct CB_NOTIFY_DEVICEID4args {
+    notify4 changes<>;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class CB_NOTIFY_DEVICEID4res(baseobj.BaseObj)
+.nf
+CB_NOTIFY_DEVICEID4res(unpack)
+
+struct CB_NOTIFY_DEVICEID4res {
+    nfsstat4 status;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class CB_NOTIFY_LOCK4args(baseobj.BaseObj)
+.nf
+CB_NOTIFY_LOCK4args(unpack)
+
+struct CB_NOTIFY_LOCK4args {
+    nfs_fh4     fh;
+    lock_owner4 lock_owner;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class CB_NOTIFY_LOCK4res(baseobj.BaseObj)
+.nf
+CB_NOTIFY_LOCK4res(unpack)
+
+struct CB_NOTIFY_LOCK4res {
+    nfsstat4 status;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class CB_OFFLOAD4args(baseobj.BaseObj)
+.nf
+CB_OFFLOAD4args(unpack)
+
+struct CB_OFFLOAD4args {
+    nfs_fh4       fh;
+    stateid4      stateid;
+    offload_info4 info;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class CB_OFFLOAD4res(baseobj.BaseObj)
+.nf
+CB_OFFLOAD4res(unpack)
+
+struct CB_OFFLOAD4res {
+    nfsstat4 status;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class CB_PUSH_DELEG4args(baseobj.BaseObj)
+.nf
+CB_PUSH_DELEG4args(unpack)
+
+struct CB_PUSH_DELEG4args {
+    nfs_fh4          fh;
+    open_delegation4 delegation;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class CB_PUSH_DELEG4res(baseobj.BaseObj)
+.nf
+CB_PUSH_DELEG4res(unpack)
+
+struct CB_PUSH_DELEG4res {
+    nfsstat4 status;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class CB_RECALL4args(baseobj.BaseObj)
+.nf
+CB_RECALL4args(unpack)
+
+struct CB_RECALL4args {
+    stateid4 stateid;
+    bool     truncate;
+    nfs_fh4  fh;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class CB_RECALL4res(baseobj.BaseObj)
+.nf
+CB_RECALL4res(unpack)
+
+struct CB_RECALL4res {
+    nfsstat4 status;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class CB_RECALLABLE_OBJ_AVAIL4args(baseobj.BaseObj)
+.nf
+CB_RECALLABLE_OBJ_AVAIL4args = class CB_RECALL_ANY4args(baseobj.BaseObj)
+.fi
+.SS class CB_RECALLABLE_OBJ_AVAIL4res(baseobj.BaseObj)
+.nf
+CB_RECALLABLE_OBJ_AVAIL4res(unpack)
+
+struct CB_RECALLABLE_OBJ_AVAIL4res {
+    nfsstat4 status;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class CB_RECALL_ANY4args(baseobj.BaseObj)
+.nf
+CB_RECALL_ANY4args(unpack)
+
+struct CB_RECALL_ANY4args {
+    uint32_t objects_to_keep;
+    bitmap4  mask;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class CB_RECALL_ANY4res(baseobj.BaseObj)
+.nf
+CB_RECALL_ANY4res(unpack)
+
+struct CB_RECALL_ANY4res {
+    nfsstat4 status;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class CB_RECALL_SLOT4args(baseobj.BaseObj)
+.nf
+CB_RECALL_SLOT4args(unpack)
+
+struct CB_RECALL_SLOT4args {
+    slotid4 target_highest_slotid;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class CB_RECALL_SLOT4res(baseobj.BaseObj)
+.nf
+CB_RECALL_SLOT4res(unpack)
+
+struct CB_RECALL_SLOT4res {
+    nfsstat4 status;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class CB_SEQUENCE4args(baseobj.BaseObj)
+.nf
+CB_SEQUENCE4args(unpack)
+
+struct CB_SEQUENCE4args {
+    sessionid4           sessionid;
+    sequenceid4          sequenceid;
+    slotid4              slotid;
+    slotid4              highest_slotid;
+    bool                 cachethis;
+    referring_call_list4 referring_call_lists<>;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class CB_SEQUENCE4res(baseobj.BaseObj)
+.nf
+CB_SEQUENCE4res(unpack)
+
+union switch CB_SEQUENCE4res (nfsstat4 status) {
+    case const.NFS4_OK:
+        CB_SEQUENCE4resok resok;
+    default:
+        void;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class CB_SEQUENCE4resok(baseobj.BaseObj)
+.nf
+CB_SEQUENCE4resok(unpack)
+
+struct CB_SEQUENCE4resok {
+    sessionid4  sessionid;
+    sequenceid4 sequenceid;
+    slotid4     slotid;
+    slotid4     highest_slotid;
+    slotid4     target_highest_slotid;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class CB_WANTS_CANCELLED4args(baseobj.BaseObj)
+.nf
+CB_WANTS_CANCELLED4args(unpack)
+
+struct CB_WANTS_CANCELLED4args {
+    bool contended;
+    bool resourced;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class CB_WANTS_CANCELLED4res(baseobj.BaseObj)
+.nf
+CB_WANTS_CANCELLED4res(unpack)
+
+struct CB_WANTS_CANCELLED4res {
+    nfsstat4 status;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class CLONE4args(baseobj.BaseObj)
+.nf
+CLONE4args(unpack)
+
+struct CLONE4args {
+    /*
+     * SAVED_FH: source file
+     * CURRENT_FH: destination file
+     */
+    stateid4 src_stateid;
+    stateid4 dst_stateid;
+    offset4  src_offset;
+    offset4  dst_offset;
+    length4  count;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class CLONE4res(baseobj.BaseObj)
+.nf
+CLONE4res(unpack)
+
+struct CLONE4res {
+    nfsstat4 status;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class CLOSE4args(baseobj.BaseObj)
+.nf
+CLOSE4args(unpack)
+
+struct CLOSE4args {
+    /* CURRENT_FH: object */
+    seqid4   seqid;
+    stateid4 stateid;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class CLOSE4res(baseobj.BaseObj)
+.nf
+CLOSE4res(unpack)
+
+union switch CLOSE4res (nfsstat4 status) {
+    case const.NFS4_OK:
+        stateid4 stateid;
+    default:
+        void;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class COMMIT4args(baseobj.BaseObj)
+.nf
+COMMIT4args(unpack)
+
+struct COMMIT4args {
+    /* CURRENT_FH: file */
+    offset4 offset;
+    count4  count;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class COMMIT4res(baseobj.BaseObj)
+.nf
+COMMIT4res(unpack)
+
+union switch COMMIT4res (nfsstat4 status) {
+    case const.NFS4_OK:
+        COMMIT4resok resok;
+    default:
+        void;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class COMMIT4resok(baseobj.BaseObj)
+.nf
+COMMIT4resok(unpack)
+
+struct COMMIT4resok {
+    verifier4 verifier;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class COMPOUND4args(packet.nfs.nfsbase.NFSbase)
+.nf
+COMPOUND4args(unpack)
+
+struct COMPOUND4args {
+    utf8str_cs tag;
+    uint32_t   minorversion;
+    nfs_argop4 array<>;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class COMPOUND4res(packet.nfs.nfsbase.NFSbase)
+.nf
+COMPOUND4res(unpack, minorversion)
+
+struct COMPOUND4res {
+    nfsstat4   status;
+    utf8str_cs tag;
+    nfs_resop4 array<>;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack, minorversion)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class COPY4args(baseobj.BaseObj)
+.nf
+COPY4args(unpack)
+
+struct COPY4args {
+    /*
+     * SAVED_FH: source file
+     * CURRENT_FH: destination file
+     */
+    stateid4 src_stateid;
+    stateid4 dst_stateid;
+    offset4  src_offset;
+    offset4  dst_offset;
+    length4  count;
+    bool     consecutive;
+    bool     synchronous;
+    netloc4  src_servers<>;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class COPY4res(baseobj.BaseObj)
+.nf
+COPY4res(unpack)
+
+union switch COPY4res (nfsstat4 status) {
+    case const.NFS4_OK:
+        COPY4resok resok;
+    case const.NFS4ERR_OFFLOAD_NO_REQS:
+        copy_requirements4 requirements;
+    default:
+        void;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class COPY4resok(baseobj.BaseObj)
+.nf
+COPY4resok(unpack)
+
+struct COPY4resok {
+    write_response4    response;
+    copy_requirements4 requirements;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class COPY_NOTIFY4args(baseobj.BaseObj)
+.nf
+COPY_NOTIFY4args(unpack)
+
+struct COPY_NOTIFY4args {
+    /* CURRENT_FH: source file */
+    stateid4 stateid;
+    netloc4  dst_server;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class COPY_NOTIFY4res(baseobj.BaseObj)
+.nf
+COPY_NOTIFY4res(unpack)
+
+union switch COPY_NOTIFY4res (nfsstat4 status) {
+    case const.NFS4_OK:
+        COPY_NOTIFY4resok resok;
+    default:
+        void;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class COPY_NOTIFY4resok(baseobj.BaseObj)
+.nf
+COPY_NOTIFY4resok(unpack)
+
+struct COPY_NOTIFY4resok {
+    nfstime4 lease_time;
+    stateid4 stateid;
+    netloc4  src_servers<>;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class CREATE4args(baseobj.BaseObj)
+.nf
+CREATE4args(unpack)
+
+struct CREATE4args {
+    /* CURRENT_FH: directory for creation */
+    createtype4 type;
+    component4  name;
+    fattr4      attributes;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class CREATE4res(baseobj.BaseObj)
+.nf
+CREATE4res(unpack)
+
+union switch CREATE4res (nfsstat4 status) {
+    case const.NFS4_OK:
+        /* new CURRENTFH: created object */
+        CREATE4resok resok;
+    default:
+        void;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class CREATE4resok(baseobj.BaseObj)
+.nf
+CREATE4resok(unpack)
+
+struct CREATE4resok {
+    change_info4 cinfo;
+    bitmap4      attrset;  /* attributes set */
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class CREATE_SESSION4args(baseobj.BaseObj)
+.nf
+CREATE_SESSION4args(unpack)
+
+struct CREATE_SESSION4args {
+    clientid4           clientid;
+    sequenceid4         sequenceid;
+    uint32_t            flags;
+    channel_attrs4      fore_chan_attrs;
+    channel_attrs4      back_chan_attrs;
+    uint32_t            cb_program;
+    callback_sec_parms4 sec_parms<>;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class CREATE_SESSION4res(baseobj.BaseObj)
+.nf
+CREATE_SESSION4res(unpack)
+
+union switch CREATE_SESSION4res (nfsstat4 status) {
+    case const.NFS4_OK:
+        CREATE_SESSION4resok resok;
+    default:
+        void;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class CREATE_SESSION4resok(baseobj.BaseObj)
+.nf
+CREATE_SESSION4resok(unpack)
+
+struct CREATE_SESSION4resok {
+    sessionid4     sessionid;
+    sequenceid4    sequenceid;
+    uint32_t       flags;
+    channel_attrs4 fore_chan_attrs;
+    channel_attrs4 back_chan_attrs;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class DEALLOCATE4args(baseobj.BaseObj)
+.nf
+DEALLOCATE4args(unpack)
+
+struct DEALLOCATE4args {
+    /* CURRENT_FH: file */
+    stateid4 stateid;
+    offset4  offset;
+    length4  length;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class DEALLOCATE4res(baseobj.BaseObj)
+.nf
+DEALLOCATE4res(unpack)
+
+struct DEALLOCATE4res {
+    nfsstat4 status;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class DELEGPURGE4args(baseobj.BaseObj)
+.nf
+DELEGPURGE4args(unpack)
+
+struct DELEGPURGE4args {
+    clientid4 clientid;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class DELEGPURGE4res(baseobj.BaseObj)
+.nf
+DELEGPURGE4res(unpack)
+
+struct DELEGPURGE4res {
+    nfsstat4 status;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class DELEGRETURN4args(baseobj.BaseObj)
+.nf
+DELEGRETURN4args(unpack)
+
+struct DELEGRETURN4args {
+    /* CURRENT_FH: delegated object */
+    stateid4 stateid;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class DELEGRETURN4res(baseobj.BaseObj)
+.nf
+DELEGRETURN4res(unpack)
+
+struct DELEGRETURN4res {
+    nfsstat4 status;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class DESTROY_CLIENTID4args(baseobj.BaseObj)
+.nf
+DESTROY_CLIENTID4args(unpack)
+
+struct DESTROY_CLIENTID4args {
+    clientid4 clientid;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class DESTROY_CLIENTID4res(baseobj.BaseObj)
+.nf
+DESTROY_CLIENTID4res(unpack)
+
+struct DESTROY_CLIENTID4res {
+    nfsstat4 status;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class DESTROY_SESSION4args(baseobj.BaseObj)
+.nf
+DESTROY_SESSION4args(unpack)
+
+struct DESTROY_SESSION4args {
+    sessionid4 sessionid;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class DESTROY_SESSION4res(baseobj.BaseObj)
+.nf
+DESTROY_SESSION4res(unpack)
+
+struct DESTROY_SESSION4res {
+    nfsstat4 status;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class EXCHANGE_ID4args(baseobj.BaseObj)
+.nf
+EXCHANGE_ID4args(unpack)
+
+struct EXCHANGE_ID4args {
+    client_owner4    clientowner;
+    uint32_t         flags;
+    state_protect4_a state_protect;
+    nfs_impl_id4     client_impl_id<1>;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class EXCHANGE_ID4res(baseobj.BaseObj)
+.nf
+EXCHANGE_ID4res(unpack)
+
+union switch EXCHANGE_ID4res (nfsstat4 status) {
+    case const.NFS4_OK:
+        EXCHANGE_ID4resok resok;
+    default:
+        void;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class EXCHANGE_ID4resok(baseobj.BaseObj)
+.nf
+EXCHANGE_ID4resok(unpack)
+
+struct EXCHANGE_ID4resok {
+    clientid4        clientid;
+    sequenceid4      sequenceid;
+    uint32_t         flags;
+    state_protect4_r state_protect;
+    server_owner4    server_owner;
+    opaque           server_scope<NFS4_OPAQUE_LIMIT>;
+    nfs_impl_id4     server_impl_id<1>;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class FREE_STATEID4args(baseobj.BaseObj)
+.nf
+FREE_STATEID4args(unpack)
+
+struct FREE_STATEID4args {
+    stateid4 stateid;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class FREE_STATEID4res(baseobj.BaseObj)
+.nf
+FREE_STATEID4res(unpack)
+
+struct FREE_STATEID4res {
+    nfsstat4 status;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class GETATTR4args(baseobj.BaseObj)
+.nf
+GETATTR4args(unpack)
+
+struct GETATTR4args {
+    /* CURRENT_FH: object */
+    bitmap4 request;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class GETATTR4res(baseobj.BaseObj)
+.nf
+GETATTR4res(unpack)
+
+union switch GETATTR4res (nfsstat4 status) {
+    case const.NFS4_OK:
+        GETATTR4resok resok;
+    default:
+        void;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class GETATTR4resok(baseobj.BaseObj)
+.nf
+GETATTR4resok(unpack)
+
+struct GETATTR4resok {
+    fattr4 attributes;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class GETDEVICEINFO4args(baseobj.BaseObj)
+.nf
+GETDEVICEINFO4args(unpack)
+
+struct GETDEVICEINFO4args {
+    deviceid4   deviceid;
+    layouttype4 type;
+    count4      maxcount;
+    bitmap4     notify_mask;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class GETDEVICEINFO4res(baseobj.BaseObj)
+.nf
+GETDEVICEINFO4res(unpack)
+
+union switch GETDEVICEINFO4res (nfsstat4 status) {
+    case const.NFS4_OK:
+        GETDEVICEINFO4resok resok;
+    case const.NFS4ERR_TOOSMALL:
+        count4 mincount;
+    default:
+        void;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class GETDEVICEINFO4resok(baseobj.BaseObj)
+.nf
+GETDEVICEINFO4resok(unpack)
+
+struct GETDEVICEINFO4resok {
+    device_addr4 device_addr;
+    bitmap4      notify_mask;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class GETDEVICELIST4args(baseobj.BaseObj)
+.nf
+GETDEVICELIST4args(unpack)
+
+struct GETDEVICELIST4args {
+    /* CURRENT_FH: object belonging to the file system */
+    layouttype4 type;
+    /* number of deviceIDs to return */
+    count4      maxdevices;
+    nfs_cookie4 cookie;
+    verifier4   verifier;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class GETDEVICELIST4res(baseobj.BaseObj)
+.nf
+GETDEVICELIST4res(unpack)
+
+union switch GETDEVICELIST4res (nfsstat4 status) {
+    case const.NFS4_OK:
+        GETDEVICELIST4resok resok;
+    default:
+        void;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class GETDEVICELIST4resok(baseobj.BaseObj)
+.nf
+GETDEVICELIST4resok(unpack)
+
+struct GETDEVICELIST4resok {
+    nfs_cookie4 cookie;
+    verifier4   verifier;
+    deviceid4   deviceid_list<>;
+    bool        eof;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class GETFH4res(baseobj.BaseObj)
+.nf
+GETFH4res(unpack)
+
+union switch GETFH4res (nfsstat4 status) {
+    case const.NFS4_OK:
+        GETFH4resok resok;
+    default:
+        void;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class GETFH4resok(baseobj.BaseObj)
+.nf
+GETFH4resok(unpack)
+
+struct GETFH4resok {
+    nfs_fh4 fh;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class GETXATTR4args(baseobj.BaseObj)
+.nf
+GETXATTR4args(unpack)
+
+struct GETXATTR4args {
+    /* CURRENT_FH: file */
+    xattrkey4 name;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class GETXATTR4res(baseobj.BaseObj)
+.nf
+GETXATTR4res(unpack)
+
+union switch GETXATTR4res (nfsstat4 status) {
+    case const.NFS4_OK:
+        xattrvalue4 value;
+    default:
+        void;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class GET_DIR_DELEGATION4args(baseobj.BaseObj)
+.nf
+GET_DIR_DELEGATION4args(unpack)
+
+struct GET_DIR_DELEGATION4args {
+    /* CURRENT_FH: delegated directory */
+    bool         deleg_avail;
+    bitmap4      notification;
+    attr_notice4 child_attr_delay;
+    attr_notice4 attr_delay;
+    bitmap4      child_attributes;
+    bitmap4      attributes;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class GET_DIR_DELEGATION4res(baseobj.BaseObj)
+.nf
+GET_DIR_DELEGATION4res(unpack)
+
+union switch GET_DIR_DELEGATION4res (nfsstat4 status) {
+    case const.NFS4_OK:
+        GET_DIR_DELEGATION4res_non_fatal resok;
+    default:
+        void;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class GET_DIR_DELEGATION4res_non_fatal(baseobj.BaseObj)
+.nf
+GET_DIR_DELEGATION4res_non_fatal(unpack)
+
+union switch GET_DIR_DELEGATION4res_non_fatal (gddrnf4_status status) {
+    case const.GDD4_OK:
+        GET_DIR_DELEGATION4resok resok;
+    case const.GDD4_UNAVAIL:
+        bool signal;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class GET_DIR_DELEGATION4resok(baseobj.BaseObj)
+.nf
+GET_DIR_DELEGATION4resok(unpack)
+
+struct GET_DIR_DELEGATION4resok {
+    verifier4 verifier;
+    /* Stateid for get_dir_delegation */
+    stateid4  stateid;
+    /* Which notifications can the server support */
+    bitmap4   notification;
+    bitmap4   child_attributes;
+    bitmap4   attributes;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class ILLEGAL4res(baseobj.BaseObj)
+.nf
+ILLEGAL4res(unpack)
+
+struct ILLEGAL4res {
+    nfsstat4 status;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class IO_ADVISE4args(baseobj.BaseObj)
+.nf
+IO_ADVISE4args(unpack)
+
+struct IO_ADVISE4args {
+    /* CURRENT_FH: file */
+    stateid4 stateid;
+    offset4  offset;
+    length4  count;
+    bitmap4  mask;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class IO_ADVISE4res(baseobj.BaseObj)
+.nf
+IO_ADVISE4res(unpack)
+
+union switch IO_ADVISE4res (nfsstat4 status) {
+    case const.NFS4_OK:
+        IO_ADVISE4resok resok;
+    default:
+        void;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class IO_ADVISE4resok(baseobj.BaseObj)
+.nf
+IO_ADVISE4resok(unpack)
+
+struct IO_ADVISE4resok {
+    bitmap4 mask;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class IO_ADVISE_type4(packet.utils.Enum)
+.nf
+IO_ADVISE_type4(unpack)
+
+enum IO_ADVISE_type4
+
+.fi
+.SS class LAYOUTCOMMIT4args(baseobj.BaseObj)
+.nf
+LAYOUTCOMMIT4args(unpack)
+
+struct LAYOUTCOMMIT4args {
+    /* CURRENT_FH: file */
+    offset4       offset;
+    length4       length;
+    bool          reclaim;
+    stateid4      stateid;
+    newoffset4    last_write_offset;
+    newtime4      time_modify;
+    layoutupdate4 layoutupdate;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class LAYOUTCOMMIT4res(baseobj.BaseObj)
+.nf
+LAYOUTCOMMIT4res(unpack)
+
+union switch LAYOUTCOMMIT4res (nfsstat4 status) {
+    case const.NFS4_OK:
+        LAYOUTCOMMIT4resok resok;
+    default:
+        void;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class LAYOUTCOMMIT4resok(baseobj.BaseObj)
+.nf
+LAYOUTCOMMIT4resok(unpack)
+
+struct LAYOUTCOMMIT4resok {
+    newsize4 newsize;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class LAYOUTERROR4args(baseobj.BaseObj)
+.nf
+LAYOUTERROR4args(unpack)
+
+struct LAYOUTERROR4args {
+    /* CURRENT_FH: file */
+    offset4       offset;
+    length4       length;
+    stateid4      stateid;
+    device_error4 errors<>;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class LAYOUTERROR4res(baseobj.BaseObj)
+.nf
+LAYOUTERROR4res(unpack)
+
+struct LAYOUTERROR4res {
+    nfsstat4 status;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class LAYOUTGET4args(baseobj.BaseObj)
+.nf
+LAYOUTGET4args(unpack)
+
+struct LAYOUTGET4args {
+    /* CURRENT_FH: file */
+    bool          avail;
+    layouttype4   type;
+    layoutiomode4 iomode;
+    offset4       offset;
+    length4       length;
+    length4       minlength;
+    stateid4      stateid;
+    count4        maxcount;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class LAYOUTGET4res(baseobj.BaseObj)
+.nf
+LAYOUTGET4res(unpack)
+
+union switch LAYOUTGET4res (nfsstat4 status) {
+    case const.NFS4_OK:
+        LAYOUTGET4resok resok;
+    case const.NFS4ERR_LAYOUTTRYLATER:
+        /* Server will signal layout availability */
+        bool signal;
+    default:
+        void;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class LAYOUTGET4resok(baseobj.BaseObj)
+.nf
+LAYOUTGET4resok(unpack)
+
+struct LAYOUTGET4resok {
+    bool     return_on_close;
+    stateid4 stateid;
+    layout4  layout<>;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class LAYOUTRETURN4args(baseobj.BaseObj)
+.nf
+LAYOUTRETURN4args(unpack)
+
+struct LAYOUTRETURN4args {
+    /* CURRENT_FH: file */
+    bool          reclaim;
+    layouttype4   type;
+    layoutiomode4 iomode;
+    layoutreturn4 layoutreturn;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class LAYOUTRETURN4res(baseobj.BaseObj)
+.nf
+LAYOUTRETURN4res(unpack)
+
+union switch LAYOUTRETURN4res (nfsstat4 status) {
+    case const.NFS4_OK:
+        layoutreturn_stateid stateid;
+    default:
+        void;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class LAYOUTSTATS4args(baseobj.BaseObj)
+.nf
+LAYOUTSTATS4args(unpack)
+
+struct LAYOUTSTATS4args {
+    /* CURRENT_FH: file */
+    offset4       offset;
+    length4       length;
+    stateid4      stateid;
+    io_info4      read;
+    io_info4      write;
+    deviceid4     deviceid;
+    layoutupdate4 layoutupdate;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class LAYOUTSTATS4res(baseobj.BaseObj)
+.nf
+LAYOUTSTATS4res(unpack)
+
+struct LAYOUTSTATS4res {
+    nfsstat4 status;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class LINK4args(baseobj.BaseObj)
+.nf
+LINK4args(unpack)
+
+struct LINK4args {
+    /*
+     * SAVED_FH: source object
+     * CURRENT_FH: target directory
+     */
+    component4 name;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class LINK4res(baseobj.BaseObj)
+.nf
+LINK4res(unpack)
+
+union switch LINK4res (nfsstat4 status) {
+    case const.NFS4_OK:
+        LINK4resok resok;
+    default:
+        void;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class LINK4resok(baseobj.BaseObj)
+.nf
+LINK4resok(unpack)
+
+struct LINK4resok {
+    change_info4 cinfo;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class LISTXATTRS4args(baseobj.BaseObj)
+.nf
+LISTXATTRS4args(unpack)
+
+struct LISTXATTRS4args {
+    /* CURRENT_FH: file */
+    nfs_cookie4 cookie;
+    count4      maxcount;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class LISTXATTRS4res(baseobj.BaseObj)
+.nf
+LISTXATTRS4res(unpack)
+
+union switch LISTXATTRS4res (nfsstat4 status) {
+    case const.NFS4_OK:
+        LISTXATTRS4resok value;
+    default:
+        void;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class LISTXATTRS4resok(baseobj.BaseObj)
+.nf
+LISTXATTRS4resok(unpack)
+
+struct LISTXATTRS4resok {
+    nfs_cookie4 cookie;
+    xattrkey4   names<>;
+    bool        eof;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class LOCK4args(baseobj.BaseObj)
+.nf
+LOCK4args(unpack)
+
+struct LOCK4args {
+    /* CURRENT_FH: file */
+    nfs_lock_type4 locktype;
+    bool           reclaim;
+    offset4        offset;
+    length4        length;
+    locker4        locker;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class LOCK4denied(baseobj.BaseObj)
+.nf
+LOCK4denied(unpack)
+
+struct LOCK4denied {
+    offset4        offset;
+    length4        length;
+    nfs_lock_type4 locktype;
+    lock_owner4    owner;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class LOCK4res(baseobj.BaseObj)
+.nf
+LOCK4res(unpack)
+
+union switch LOCK4res (nfsstat4 status) {
+    case const.NFS4_OK:
+        LOCK4resok resok;
+    case const.NFS4ERR_DENIED:
+        LOCK4denied denied;
+    default:
+        void;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class LOCK4resok(baseobj.BaseObj)
+.nf
+LOCK4resok(unpack)
+
+struct LOCK4resok {
+    stateid4 stateid;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class LOCKT4args(baseobj.BaseObj)
+.nf
+LOCKT4args(unpack)
+
+struct LOCKT4args {
+    /* CURRENT_FH: file */
+    nfs_lock_type4 locktype;
+    offset4        offset;
+    length4        length;
+    lock_owner4    owner;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class LOCKT4res(baseobj.BaseObj)
+.nf
+LOCKT4res(unpack)
+
+union switch LOCKT4res (nfsstat4 status) {
+    case const.NFS4ERR_DENIED:
+        LOCK4denied denied;
+    case const.NFS4_OK:
+        void;
+    default:
+        void;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class LOCKU4args(baseobj.BaseObj)
+.nf
+LOCKU4args(unpack)
+
+struct LOCKU4args {
+    /* CURRENT_FH: file */
+    nfs_lock_type4 locktype;
+    seqid4         seqid;
+    stateid4       stateid;
+    offset4        offset;
+    length4        length;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class LOCKU4res(baseobj.BaseObj)
+.nf
+LOCKU4res(unpack)
+
+union switch LOCKU4res (nfsstat4 status) {
+    case const.NFS4_OK:
+        stateid4 stateid;
+    default:
+        void;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class LOOKUP4args(baseobj.BaseObj)
+.nf
+LOOKUP4args(unpack)
+
+struct LOOKUP4args {
+    /* CURRENT_FH: directory */
+    component4 name;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class LOOKUP4res(baseobj.BaseObj)
+.nf
+LOOKUP4res(unpack)
+
+struct LOOKUP4res {
+    /* New CURRENT_FH: object */
+    nfsstat4 status;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class LOOKUPP4res(baseobj.BaseObj)
+.nf
+LOOKUPP4res(unpack)
+
+struct LOOKUPP4res {
+    /* new CURRENT_FH: parent directory */
+    nfsstat4 status;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class NVERIFY4args(baseobj.BaseObj)
+.nf
+NVERIFY4args(unpack)
+
+struct NVERIFY4args {
+    /* CURRENT_FH: object */
+    fattr4 attributes;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class NVERIFY4res(baseobj.BaseObj)
+.nf
+NVERIFY4res(unpack)
+
+struct NVERIFY4res {
+    nfsstat4 status;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class OFFLOAD_CANCEL4args(baseobj.BaseObj)
+.nf
+OFFLOAD_CANCEL4args(unpack)
+
+struct OFFLOAD_CANCEL4args {
+    /* CURRENT_FH: file to cancel */
+    stateid4 stateid;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class OFFLOAD_CANCEL4res(baseobj.BaseObj)
+.nf
+OFFLOAD_CANCEL4res(unpack)
+
+struct OFFLOAD_CANCEL4res {
+    nfsstat4 status;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class OFFLOAD_STATUS4args(baseobj.BaseObj)
+.nf
+OFFLOAD_STATUS4args(unpack)
+
+struct OFFLOAD_STATUS4args {
+    /* CURRENT_FH: destination file */
+    stateid4 stateid;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class OFFLOAD_STATUS4res(baseobj.BaseObj)
+.nf
+OFFLOAD_STATUS4res(unpack)
+
+union switch OFFLOAD_STATUS4res (nfsstat4 status) {
+    case const.NFS4_OK:
+        OFFLOAD_STATUS4resok resok;
+    default:
+        void;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class OFFLOAD_STATUS4resok(baseobj.BaseObj)
+.nf
+OFFLOAD_STATUS4resok(unpack)
+
+struct OFFLOAD_STATUS4resok {
+    length4  count;
+    nfsstat4 complete<1>;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class OPEN4args(baseobj.BaseObj)
+.nf
+OPEN4args(unpack)
+
+struct OPEN4args {
+    seqid4      seqid;
+    uint32_t    access;
+    uint32_t    deny;
+    open_owner4 owner;
+    openflag4   openhow;
+    open_claim4 claim;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class OPEN4res(baseobj.BaseObj)
+.nf
+OPEN4res(unpack)
+
+union switch OPEN4res (nfsstat4 status) {
+    case const.NFS4_OK:
+        /* New CURRENT_FH: opened file */
+        OPEN4resok resok;
+    default:
+        void;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class OPEN4resok(baseobj.BaseObj)
+.nf
+OPEN4resok(unpack)
+
+struct OPEN4resok {
+    stateid4         stateid;     /* Stateid for open */
+    change_info4     cinfo;       /* Directory Change Info */
+    uint32_t         rflags;      /* Result flags */
+    bitmap4          attrset;     /* attribute set for create */
+    open_delegation4 delegation;  /* Info on any open delegation */
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class OPENATTR4args(baseobj.BaseObj)
+.nf
+OPENATTR4args(unpack)
+
+struct OPENATTR4args {
+    /* CURRENT_FH: object */
+    bool createdir;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class OPENATTR4res(baseobj.BaseObj)
+.nf
+OPENATTR4res(unpack)
+
+struct OPENATTR4res {
+    /*
+     * If status is NFS4_OK,
+     *   new CURRENT_FH: named attribute directory
+     */
+    nfsstat4 status;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class OPEN_CONFIRM4args(baseobj.BaseObj)
+.nf
+OPEN_CONFIRM4args(unpack)
+
+struct OPEN_CONFIRM4args {
+    /* CURRENT_FH: opened file */
+    stateid4 stateid;
+    seqid4   seqid;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class OPEN_CONFIRM4res(baseobj.BaseObj)
+.nf
+OPEN_CONFIRM4res(unpack)
+
+union switch OPEN_CONFIRM4res (nfsstat4 status) {
+    case const.NFS4_OK:
+        OPEN_CONFIRM4resok resok;
+    default:
+        void;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class OPEN_CONFIRM4resok(baseobj.BaseObj)
+.nf
+OPEN_CONFIRM4resok(unpack)
+
+struct OPEN_CONFIRM4resok {
+    stateid4 stateid;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class OPEN_DOWNGRADE4args(baseobj.BaseObj)
+.nf
+OPEN_DOWNGRADE4args(unpack)
+
+struct OPEN_DOWNGRADE4args {
+    /* CURRENT_FH: opened file */
+    stateid4 stateid;
+    seqid4   seqid;
+    uint32_t access;
+    uint32_t deny;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class OPEN_DOWNGRADE4res(baseobj.BaseObj)
+.nf
+OPEN_DOWNGRADE4res(unpack)
+
+union switch OPEN_DOWNGRADE4res (nfsstat4 status) {
+    case const.NFS4_OK:
+        OPEN_DOWNGRADE4resok resok;
+    default:
+        void;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class OPEN_DOWNGRADE4resok(baseobj.BaseObj)
+.nf
+OPEN_DOWNGRADE4resok(unpack)
+
+struct OPEN_DOWNGRADE4resok {
+    stateid4 stateid;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class PUTFH4args(baseobj.BaseObj)
+.nf
+PUTFH4args(unpack)
+
+struct PUTFH4args {
+    nfs_fh4 fh;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class PUTFH4res(baseobj.BaseObj)
+.nf
+PUTFH4res(unpack)
+
+struct PUTFH4res {
+    /*
+     * If status is NFS4_OK,
+     *    new CURRENT_FH: argument to PUTFH
+     */
+    nfsstat4 status;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class PUTPUBFH4res(baseobj.BaseObj)
+.nf
+PUTPUBFH4res(unpack)
+
+struct PUTPUBFH4res {
+    /*
+     * If status is NFS4_OK,
+     *   new CURRENT_FH: public fh
+     */
+    nfsstat4 status;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class PUTROOTFH4res(baseobj.BaseObj)
+.nf
+PUTROOTFH4res(unpack)
+
+struct PUTROOTFH4res {
+    /*
+     * If status is NFS4_OK,
+     *   new CURRENT_FH: root fh
+     */
+    nfsstat4 status;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class READ4args(baseobj.BaseObj)
+.nf
+READ4args(unpack)
+
+struct READ4args {
+    /* CURRENT_FH: file */
+    stateid4 stateid;
+    offset4  offset;
+    count4   count;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class READ4res(baseobj.BaseObj)
+.nf
+READ4res(unpack)
+
+union switch READ4res (nfsstat4 status) {
+    case const.NFS4_OK:
+        READ4resok resok;
+    default:
+        void;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class READ4resok(packet.utils.RDMAbase)
+.nf
+READ4resok(unpack)
+
+struct READ4resok {
+    bool   eof;
+    opaque data<>;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class READDIR4args(baseobj.BaseObj)
+.nf
+READDIR4args(unpack)
+
+struct READDIR4args {
+    /* CURRENT_FH: directory */
+    nfs_cookie4 cookie;
+    verifier4   verifier;
+    count4      dircount;
+    count4      maxcount;
+    bitmap4     request;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class READDIR4res(baseobj.BaseObj)
+.nf
+READDIR4res(unpack)
+
+union switch READDIR4res (nfsstat4 status) {
+    case const.NFS4_OK:
+        READDIR4resok resok;
+    default:
+        void;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class READDIR4resok(baseobj.BaseObj)
+.nf
+READDIR4resok(unpack)
+
+struct READDIR4resok {
+    verifier4 verifier;
+    dirlist4  reply;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class READLINK4res(baseobj.BaseObj)
+.nf
+READLINK4res(unpack)
+
+union switch READLINK4res (nfsstat4 status) {
+    case const.NFS4_OK:
+        READLINK4resok resok;
+    default:
+        void;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class READLINK4resok(packet.utils.RDMAbase)
+.nf
+READLINK4resok(unpack)
+
+struct READLINK4resok {
+    linktext4 link;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class READ_PLUS4args(baseobj.BaseObj)
+.nf
+READ_PLUS4args(unpack)
+
+struct READ_PLUS4args {
+    /* CURRENT_FH: file */
+    stateid4 stateid;
+    offset4  offset;
+    count4   count;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class READ_PLUS4res(baseobj.BaseObj)
+.nf
+READ_PLUS4res(unpack)
+
+union switch READ_PLUS4res (nfsstat4 status) {
+    case const.NFS4_OK:
+        read_plus_res4 resok;
+    default:
+        void;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class RECLAIM_COMPLETE4args(baseobj.BaseObj)
+.nf
+RECLAIM_COMPLETE4args(unpack)
+
+union switch RECLAIM_COMPLETE4args (bool one_fs) {
+    case const.TRUE:
+        /*
+         * If one_fs TRUE,
+         *    CURRENT_FH: object in filesystem reclaim is complete for.
+         */
+        void;
+    default:
+        void;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class RECLAIM_COMPLETE4res(baseobj.BaseObj)
+.nf
+RECLAIM_COMPLETE4res(unpack)
+
+struct RECLAIM_COMPLETE4res {
+    nfsstat4 status;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class RELEASE_LOCKOWNER4args(baseobj.BaseObj)
+.nf
+RELEASE_LOCKOWNER4args(unpack)
+
+struct RELEASE_LOCKOWNER4args {
+    lock_owner4 owner;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class RELEASE_LOCKOWNER4res(baseobj.BaseObj)
+.nf
+RELEASE_LOCKOWNER4res(unpack)
+
+struct RELEASE_LOCKOWNER4res {
+    nfsstat4 status;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class REMOVE4args(baseobj.BaseObj)
+.nf
+REMOVE4args(unpack)
+
+struct REMOVE4args {
+    /* CURRENT_FH: directory */
+    component4 name;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class REMOVE4res(baseobj.BaseObj)
+.nf
+REMOVE4res(unpack)
+
+union switch REMOVE4res (nfsstat4 status) {
+    case const.NFS4_OK:
+        REMOVE4resok resok;
+    default:
+        void;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class REMOVE4resok(baseobj.BaseObj)
+.nf
+REMOVE4resok(unpack)
+
+struct REMOVE4resok {
+    change_info4 cinfo;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class REMOVEXATTR4args(baseobj.BaseObj)
+.nf
+REMOVEXATTR4args(unpack)
+
+struct REMOVEXATTR4args {
+    /* CURRENT_FH: file */
+    xattrkey4 name;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class REMOVEXATTR4res(baseobj.BaseObj)
+.nf
+REMOVEXATTR4res(unpack)
+
+union switch REMOVEXATTR4res (nfsstat4 status) {
+    case const.NFS4_OK:
+        change_info4 info;
+    default:
+        void;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class RENAME4args(baseobj.BaseObj)
+.nf
+RENAME4args(unpack)
+
+struct RENAME4args {
+    /* SAVED_FH: source directory */
+    component4 name;
+    /* CURRENT_FH: target directory */
+    component4 newname;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class RENAME4res(baseobj.BaseObj)
+.nf
+RENAME4res(unpack)
+
+union switch RENAME4res (nfsstat4 status) {
+    case const.NFS4_OK:
+        RENAME4resok resok;
+    default:
+        void;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class RENAME4resok(baseobj.BaseObj)
+.nf
+RENAME4resok(unpack)
+
+struct RENAME4resok {
+    change_info4 source;
+    change_info4 target;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class RENEW4args(baseobj.BaseObj)
+.nf
+RENEW4args(unpack)
+
+struct RENEW4args {
+    clientid4 clientid;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class RENEW4res(baseobj.BaseObj)
+.nf
+RENEW4res(unpack)
+
+struct RENEW4res {
+    nfsstat4 status;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class RESTOREFH4res(baseobj.BaseObj)
+.nf
+RESTOREFH4res(unpack)
+
+struct RESTOREFH4res {
+    /*
+     * If status is NFS4_OK,
+     *     new CURRENT_FH: value of saved fh
+     */
+    nfsstat4 status;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class SAVEFH4res(baseobj.BaseObj)
+.nf
+SAVEFH4res(unpack)
+
+struct SAVEFH4res {
+    /*
+     * If status is NFS4_OK,
+     *    new SAVED_FH: value of current fh
+     */
+    nfsstat4 status;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class SECINFO4args(baseobj.BaseObj)
+.nf
+SECINFO4args(unpack)
+
+struct SECINFO4args {
+    /* CURRENT_FH: directory */
+    component4 name;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class SECINFO4res(baseobj.BaseObj)
+.nf
+SECINFO4res(unpack)
+
+union switch SECINFO4res (nfsstat4 status) {
+    case const.NFS4_OK:
+        /* CURRENTFH: consumed */
+        SECINFO4resok resok;
+    default:
+        void;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class SECINFO_NO_NAME4args(baseobj.BaseObj)
+.nf
+SECINFO_NO_NAME4args(unpack)
+
+struct SECINFO_NO_NAME4args {
+    /* CURRENT_FH: object or child directory */
+    secinfo_style4 style;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class SECINFO_NO_NAME4res(baseobj.BaseObj)
+.nf
+SECINFO_NO_NAME4res = class SECINFO4res(baseobj.BaseObj)
+.fi
+.SS class SEEK4args(baseobj.BaseObj)
+.nf
+SEEK4args(unpack)
+
+struct SEEK4args {
+    /* CURRENT_FH: file */
+    stateid4      stateid;
+    offset4       offset;
+    data_content4 what;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class SEEK4res(baseobj.BaseObj)
+.nf
+SEEK4res(unpack)
+
+union switch SEEK4res (nfsstat4 status) {
+    case const.NFS4_OK:
+        seek_res4 resok;
+    default:
+        void;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class SEQUENCE4args(baseobj.BaseObj)
+.nf
+SEQUENCE4args(unpack)
+
+struct SEQUENCE4args {
+    sessionid4  sessionid;
+    sequenceid4 sequenceid;
+    slotid4     slotid;
+    slotid4     highest_slotid;
+    bool        cachethis;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class SEQUENCE4res(baseobj.BaseObj)
+.nf
+SEQUENCE4res(unpack)
+
+union switch SEQUENCE4res (nfsstat4 status) {
+    case const.NFS4_OK:
+        SEQUENCE4resok resok;
+    default:
+        void;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class SEQUENCE4resok(baseobj.BaseObj)
+.nf
+SEQUENCE4resok(unpack)
+
+struct SEQUENCE4resok {
+    sessionid4  sessionid;
+    sequenceid4 sequenceid;
+    slotid4     slotid;
+    slotid4     highest_slotid;
+    slotid4     target_highest_slotid;
+    uint32_t    status_flags;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class SETATTR4args(baseobj.BaseObj)
+.nf
+SETATTR4args(unpack)
+
+struct SETATTR4args {
+    /* CURRENT_FH: target object */
+    stateid4 stateid;
+    fattr4   attributes;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class SETATTR4res(baseobj.BaseObj)
+.nf
+SETATTR4res(unpack)
+
+struct SETATTR4res {
+    nfsstat4 status;
+    bitmap4  attrset;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class SETCLIENTID4args(baseobj.BaseObj)
+.nf
+SETCLIENTID4args(unpack)
+
+struct SETCLIENTID4args {
+    nfs_client_id4 client;
+    cb_client4     callback;
+    uint32_t       callback_ident;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class SETCLIENTID4res(baseobj.BaseObj)
+.nf
+SETCLIENTID4res(unpack)
+
+union switch SETCLIENTID4res (nfsstat4 status) {
+    case const.NFS4_OK:
+        SETCLIENTID4resok resok;
+    case const.NFS4ERR_CLID_INUSE:
+        clientaddr4 client;
+    default:
+        void;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class SETCLIENTID4resok(baseobj.BaseObj)
+.nf
+SETCLIENTID4resok(unpack)
+
+struct SETCLIENTID4resok {
+    clientid4 clientid;
+    verifier4 verifier;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class SETCLIENTID_CONFIRM4args(baseobj.BaseObj)
+.nf
+SETCLIENTID_CONFIRM4args(unpack)
+
+struct SETCLIENTID_CONFIRM4args {
+    clientid4 clientid;
+    verifier4 verifier;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class SETCLIENTID_CONFIRM4res(baseobj.BaseObj)
+.nf
+SETCLIENTID_CONFIRM4res(unpack)
+
+struct SETCLIENTID_CONFIRM4res {
+    nfsstat4 status;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class SETXATTR4args(baseobj.BaseObj)
+.nf
+SETXATTR4args(unpack)
+
+struct SETXATTR4args {
+    /* CURRENT_FH: file */
+    setxattr_option4 option;
+    xattrkey4        name;
+    xattrvalue4      value;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class SETXATTR4res(baseobj.BaseObj)
+.nf
+SETXATTR4res(unpack)
+
+union switch SETXATTR4res (nfsstat4 status) {
+    case const.NFS4_OK:
+        change_info4 info;
+    default:
+        void;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class SET_SSV4args(baseobj.BaseObj)
+.nf
+SET_SSV4args(unpack)
+
+struct SET_SSV4args {
+    opaque ssv<>;
+    opaque digest<>;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class SET_SSV4res(baseobj.BaseObj)
+.nf
+SET_SSV4res(unpack)
+
+union switch SET_SSV4res (nfsstat4 status) {
+    case const.NFS4_OK:
+        SET_SSV4resok resok;
+    default:
+        void;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class SET_SSV4resok(baseobj.BaseObj)
+.nf
+SET_SSV4resok(unpack)
+
+struct SET_SSV4resok {
+    opaque digest<>;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class TEST_STATEID4args(baseobj.BaseObj)
+.nf
+TEST_STATEID4args(unpack)
+
+struct TEST_STATEID4args {
+    stateid4 stateids<>;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class TEST_STATEID4res(baseobj.BaseObj)
+.nf
+TEST_STATEID4res(unpack)
+
+union switch TEST_STATEID4res (nfsstat4 status) {
+    case const.NFS4_OK:
+        TEST_STATEID4resok resok;
+    default:
+        void;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class TEST_STATEID4resok(baseobj.BaseObj)
+.nf
+TEST_STATEID4resok(unpack)
+
+struct TEST_STATEID4resok {
+    nfsstat4 status_codes<>;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class VERIFY4args(baseobj.BaseObj)
+.nf
+VERIFY4args(unpack)
+
+struct VERIFY4args {
+    /* CURRENT_FH: object */
+    fattr4 attributes;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class VERIFY4res(baseobj.BaseObj)
+.nf
+VERIFY4res(unpack)
+
+struct VERIFY4res {
+    nfsstat4 status;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class WANT_DELEGATION4args(baseobj.BaseObj)
+.nf
+WANT_DELEGATION4args(unpack)
+
+struct WANT_DELEGATION4args {
+    uint32_t     want;
+    deleg_claim4 claim;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class WANT_DELEGATION4res(baseobj.BaseObj)
+.nf
+WANT_DELEGATION4res(unpack)
+
+union switch WANT_DELEGATION4res (nfsstat4 status) {
+    case const.NFS4_OK:
+        open_delegation4 resok;
+    default:
+        void;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class WRITE4args(baseobj.BaseObj)
+.nf
+WRITE4args(unpack)
+
+struct WRITE4args {
+    /* CURRENT_FH: file */
+    stateid4    stateid;
+    offset4     offset;
+    stable_how4 stable;
+    opaque      data<>;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class WRITE4res(baseobj.BaseObj)
+.nf
+WRITE4res(unpack)
+
+union switch WRITE4res (nfsstat4 status) {
+    case const.NFS4_OK:
+        WRITE4resok resok;
+    default:
+        void;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class WRITE4resok(baseobj.BaseObj)
+.nf
+WRITE4resok(unpack)
+
+struct WRITE4resok {
+    count4      count;
+    stable_how4 committed;
+    verifier4   verifier;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class WRITE_SAME4args(baseobj.BaseObj)
+.nf
+WRITE_SAME4args(unpack)
+
+struct WRITE_SAME4args {
+    /* CURRENT_FH: file */
+    stateid4        stateid;
+    stable_how4     stable;
+    app_data_block4 adb;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class WRITE_SAME4res(baseobj.BaseObj)
+.nf
+WRITE_SAME4res(unpack)
+
+union switch WRITE_SAME4res (nfsstat4 status) {
+    case const.NFS4_OK:
+        write_response4 resok;
+    default:
+        void;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class app_data_block4(baseobj.BaseObj)
+.nf
+app_data_block4(unpack)
+
+struct app_data_block4 {
+    offset4 offset;
+    length4 block_size;
+    length4 block_count;
+    length4 reloff_blocknum;
+    count4  block_num;
+    length4 reloff_pattern;
+    opaque  pattern<>;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class attr_notice4(baseobj.BaseObj)
+.nf
+attr_notice4 = class nfstime4(baseobj.BaseObj)
+.fi
+.SS class authsys_parms(baseobj.BaseObj)
+.nf
+authsys_parms(unpack)
+
+struct authsys_parms {
+    unsigned int stamp;
+    string       machinename<255>;
+    unsigned int uid;
+    unsigned int gid;
+    unsigned int gids<16>;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class bitmap4_list(baseobj.BaseObj)
+.nf
+bitmap4_list(unpack)
+
+struct bitmap4_list {
+    bitmap4 attrs;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class callback_sec_parms4(baseobj.BaseObj)
+.nf
+callback_sec_parms4(unpack)
+
+union switch callback_sec_parms4 (nfs_secflavor4 flavor) {
+    case const.AUTH_NONE:
+        void;
+    case const.AUTH_SYS:
+        authsys_parms sys_cred;      /* RFC 5531 */
+    case const.RPCSEC_GSS:
+        gss_cb_handles4 gss_handles;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class cb_client4(baseobj.BaseObj)
+.nf
+cb_client4(unpack)
+
+struct cb_client4 {
+    uint32_t cb_program;
+    netaddr4 cb_location;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class change_attr_type4(packet.utils.Enum)
+.nf
+change_attr_type4(unpack)
+
+enum change_attr_type4
+
+.fi
+.SS class change_info4(baseobj.BaseObj)
+.nf
+change_info4(unpack)
+
+struct change_info4 {
+    bool      atomic;
+    changeid4 before;
+    changeid4 after;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class change_policy4(baseobj.BaseObj)
+.nf
+change_policy4(unpack)
+
+struct change_policy4 {
+    uint64_t major;
+    uint64_t minor;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class channel_attrs4(baseobj.BaseObj)
+.nf
+channel_attrs4(unpack)
+
+struct channel_attrs4 {
+    count4   headerpadsize;
+    count4   maxrequestsize;
+    count4   maxresponsesize;
+    count4   maxresponsesize_cached;
+    count4   maxoperations;
+    count4   maxrequests;
+    uint32_t rdma_ird<1>;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class channel_dir_from_client4(packet.utils.Enum)
+.nf
+channel_dir_from_client4(unpack)
+
+enum channel_dir_from_client4
+
+.fi
+.SS class channel_dir_from_server4(packet.utils.Enum)
+.nf
+channel_dir_from_server4(unpack)
+
+enum channel_dir_from_server4
+
+.fi
+.SS class client_owner4(baseobj.BaseObj)
+.nf
+client_owner4(unpack)
+
+struct client_owner4 {
+    verifier4 verifier;
+    opaque    ownerid<NFS4_OPAQUE_LIMIT>;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class clientaddr4(baseobj.BaseObj)
+.nf
+clientaddr4(unpack)
+
+struct clientaddr4 {
+    /* See struct rpcb in RFC 1833 */
+    string netid<>;  /* network id */
+    string addr<>;   /* universal address */
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class copy_confirm_auth_priv(baseobj.BaseObj)
+.nf
+copy_confirm_auth_priv(unpack)
+
+struct copy_confirm_auth_priv {
+    /* equal to GSS_GetMIC() of cfap_shared_secret */
+    opaque        secret<>;
+    /* the NFSv4 user name that the user principal maps to */
+    utf8str_mixed username;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class copy_from_auth_priv(baseobj.BaseObj)
+.nf
+copy_from_auth_priv(unpack)
+
+struct copy_from_auth_priv {
+    secret4       secret;
+    netloc4       destination;
+    /* the NFSv4 user name that the user principal maps to */
+    utf8str_mixed username;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class copy_requirements4(baseobj.BaseObj)
+.nf
+copy_requirements4(unpack)
+
+struct copy_requirements4 {
+    bool consecutive;
+    bool synchronous;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class copy_to_auth_priv(baseobj.BaseObj)
+.nf
+copy_to_auth_priv(unpack)
+
+struct copy_to_auth_priv {
+    /* equal to cfap_shared_secret */
+    secret4       secret;
+    netloc4       source<>;
+    /* the NFSv4 user name that the user principal maps to */
+    utf8str_mixed username;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class createhow4(baseobj.BaseObj)
+.nf
+createhow4(unpack)
+
+union switch createhow4 (createmode4 mode) {
+    case const.UNCHECKED4:
+    case const.GUARDED4:
+        fattr4 attributes;
+    case const.EXCLUSIVE4:
+        verifier4 verifier;
+    case const.EXCLUSIVE4_1:
+        creatverfattr createboth;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class createmode4(packet.utils.Enum)
+.nf
+createmode4(unpack)
+
+enum createmode4
+
+.fi
+.SS class createtype4(baseobj.BaseObj)
+.nf
+createtype4(unpack)
+
+union switch createtype4 (nfs_ftype4 type) {
+    case const.NF4LNK:
+        linktext4 linkdata;
+    case const.NF4BLK:
+    case const.NF4CHR:
+        specdata4 devdata;
+    case const.NF4SOCK:
+    case const.NF4FIFO:
+    case const.NF4DIR:
+        void;
+    default:
+        void;               /* server should return NFS4ERR_BADTYPE */
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class creatverfattr(baseobj.BaseObj)
+.nf
+creatverfattr(unpack)
+
+struct creatverfattr {
+    verifier4 verifier;
+    fattr4    attrs;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class data4(baseobj.BaseObj)
+.nf
+data4(unpack)
+
+struct data4 {
+    offset4 offset;
+    opaque  data<>;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class data_content4(packet.utils.Enum)
+.nf
+data_content4(unpack)
+
+enum data_content4
+
+.fi
+.SS class data_info4(baseobj.BaseObj)
+.nf
+data_info4(unpack)
+
+struct data_info4 {
+    offset4 offset;
+    length4 count;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class deleg_claim4(baseobj.BaseObj)
+.nf
+deleg_claim4(unpack)
+
+union switch deleg_claim4 (open_claim_type4 claim) {
+    /*
+     * No special rights to object. Ordinary delegation
+     * request of the specified object. Object identified
+     * by filehandle.
+     */
+    case const.CLAIM_FH:
+        void;
+    /*
+     * Right to file based on a delegation granted
+     * to a previous boot instance of the client.
+     * File is specified by filehandle.
+     */
+    case const.CLAIM_DELEG_PREV_FH:
+        /* CURRENT_FH: object being delegated */
+        void;
+    /*
+     * Right to the file established by an open previous
+     * to server reboot.  File identified by filehandle.
+     * Used during server reclaim grace period.
+     */
+    case const.CLAIM_PREVIOUS:
+        /* CURRENT_FH: object being reclaimed */
+        open_delegation_type4 deleg_type;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class device_addr4(baseobj.BaseObj)
+.nf
+device_addr4(unpack)
+
+union switch device_addr4 (layouttype4 type) {
+    case const.LAYOUT4_NFSV4_1_FILES:
+        nfsv4_1_file_layout_ds_addr4 body;
+    case const.LAYOUT4_FLEX_FILES:
+        ff_device_addr4 body;
+    default:
+        /* All other types are not supported yet */
+        opaque body<>;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class device_error4(baseobj.BaseObj)
+.nf
+device_error4(unpack)
+
+struct device_error4 {
+    deviceid4  deviceid;
+    nfsstat4   status;
+    nfs_opnum4 opnum;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class dirlist4(baseobj.BaseObj)
+.nf
+dirlist4(unpack)
+
+struct dirlist4 {
+    entry4 *entries;
+    bool   eof;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class entry4(baseobj.BaseObj)
+.nf
+entry4(unpack)
+
+struct entry4 {
+    nfs_cookie4 cookie;
+    component4  name;
+    fattr4      attrs;
+    entry4      *nextentry;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class exist_lock_owner4(baseobj.BaseObj)
+.nf
+exist_lock_owner4(unpack)
+
+struct exist_lock_owner4 {
+    stateid4 stateid;
+    seqid4   seqid;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class fattr4_archive(packet.utils.Enum)
+.nf
+fattr4_archive = class nfs_bool(packet.utils.Enum)
+.fi
+.SS class fattr4_cansettime(packet.utils.Enum)
+.nf
+fattr4_cansettime = class nfs_bool(packet.utils.Enum)
+.fi
+.SS class fattr4_case_insensitive(packet.utils.Enum)
+.nf
+fattr4_case_insensitive = class nfs_bool(packet.utils.Enum)
+.fi
+.SS class fattr4_case_preserving(packet.utils.Enum)
+.nf
+fattr4_case_preserving = class nfs_bool(packet.utils.Enum)
+.fi
+.SS class fattr4_change_attr_type(packet.utils.Enum)
+.nf
+fattr4_change_attr_type = class change_attr_type4(packet.utils.Enum)
+.fi
+.SS class fattr4_change_policy(baseobj.BaseObj)
+.nf
+fattr4_change_policy = class change_policy4(baseobj.BaseObj)
+.fi
+.SS class fattr4_chown_restricted(packet.utils.Enum)
+.nf
+fattr4_chown_restricted = class nfs_bool(packet.utils.Enum)
+.fi
+.SS class fattr4_dacl(baseobj.BaseObj)
+.nf
+fattr4_dacl = class nfsacl41(baseobj.BaseObj)
+.fi
+.SS class fattr4_dir_notif_delay(baseobj.BaseObj)
+.nf
+fattr4_dir_notif_delay = class nfstime4(baseobj.BaseObj)
+.fi
+.SS class fattr4_dirent_notif_delay(baseobj.BaseObj)
+.nf
+fattr4_dirent_notif_delay = class nfstime4(baseobj.BaseObj)
+.fi
+.SS class fattr4_fs_locations(baseobj.BaseObj)
+.nf
+fattr4_fs_locations = class fs_locations4(baseobj.BaseObj)
+.fi
+.SS class fattr4_fs_locations_info(baseobj.BaseObj)
+.nf
+fattr4_fs_locations_info = class fs_locations_info4(baseobj.BaseObj)
+.fi
+.SS class fattr4_fs_status(baseobj.BaseObj)
+.nf
+fattr4_fs_status = class fs4_status(baseobj.BaseObj)
+.fi
+.SS class fattr4_fsid(baseobj.BaseObj)
+.nf
+fattr4_fsid = class fsid4(baseobj.BaseObj)
+.fi
+.SS class fattr4_hidden(packet.utils.Enum)
+.nf
+fattr4_hidden = class nfs_bool(packet.utils.Enum)
+.fi
+.SS class fattr4_homogeneous(packet.utils.Enum)
+.nf
+fattr4_homogeneous = class nfs_bool(packet.utils.Enum)
+.fi
+.SS class fattr4_layout_hint(baseobj.BaseObj)
+.nf
+fattr4_layout_hint = class layouthint4(baseobj.BaseObj)
+.fi
+.SS class fattr4_link_support(packet.utils.Enum)
+.nf
+fattr4_link_support = class nfs_bool(packet.utils.Enum)
+.fi
+.SS class fattr4_mdsthreshold(baseobj.BaseObj)
+.nf
+fattr4_mdsthreshold = class mdsthreshold4(baseobj.BaseObj)
+.fi
+.SS class fattr4_mode_set_masked(baseobj.BaseObj)
+.nf
+fattr4_mode_set_masked = class mode_masked4(baseobj.BaseObj)
+.fi
+.SS class fattr4_mode_umask(baseobj.BaseObj)
+.nf
+fattr4_mode_umask = class mode_umask4(baseobj.BaseObj)
+.fi
+.SS class fattr4_named_attr(packet.utils.Enum)
+.nf
+fattr4_named_attr = class nfs_bool(packet.utils.Enum)
+.fi
+.SS class fattr4_no_trunc(packet.utils.Enum)
+.nf
+fattr4_no_trunc = class nfs_bool(packet.utils.Enum)
+.fi
+.SS class fattr4_rawdev(baseobj.BaseObj)
+.nf
+fattr4_rawdev = class specdata4(baseobj.BaseObj)
+.fi
+.SS class fattr4_rdattr_error(packet.utils.Enum)
+.nf
+fattr4_rdattr_error = class nfsstat4(packet.utils.Enum)
+.fi
+.SS class fattr4_retentevt_get(baseobj.BaseObj)
+.nf
+fattr4_retentevt_get = class retention_get4(baseobj.BaseObj)
+.fi
+.SS class fattr4_retentevt_set(baseobj.BaseObj)
+.nf
+fattr4_retentevt_set = class retention_set4(baseobj.BaseObj)
+.fi
+.SS class fattr4_retention_get(baseobj.BaseObj)
+.nf
+fattr4_retention_get = class retention_get4(baseobj.BaseObj)
+.fi
+.SS class fattr4_retention_set(baseobj.BaseObj)
+.nf
+fattr4_retention_set = class retention_set4(baseobj.BaseObj)
+.fi
+.SS class fattr4_sacl(baseobj.BaseObj)
+.nf
+fattr4_sacl = class nfsacl41(baseobj.BaseObj)
+.fi
+.SS class fattr4_sec_label(baseobj.BaseObj)
+.nf
+fattr4_sec_label = class sec_label4(baseobj.BaseObj)
+.fi
+.SS class fattr4_suppattr_exclcreat(baseobj.BaseObj)
+.nf
+fattr4_suppattr_exclcreat = class bitmap4_list(baseobj.BaseObj)
+.fi
+.SS class fattr4_supported_attrs(baseobj.BaseObj)
+.nf
+fattr4_supported_attrs = class bitmap4_list(baseobj.BaseObj)
+.fi
+.SS class fattr4_symlink_support(packet.utils.Enum)
+.nf
+fattr4_symlink_support = class nfs_bool(packet.utils.Enum)
+.fi
+.SS class fattr4_system(packet.utils.Enum)
+.nf
+fattr4_system = class nfs_bool(packet.utils.Enum)
+.fi
+.SS class fattr4_time_access(baseobj.BaseObj)
+.nf
+fattr4_time_access = class nfstime4(baseobj.BaseObj)
+.fi
+.SS class fattr4_time_access_set(baseobj.BaseObj)
+.nf
+fattr4_time_access_set = class settime4(baseobj.BaseObj)
+.fi
+.SS class fattr4_time_backup(baseobj.BaseObj)
+.nf
+fattr4_time_backup = class nfstime4(baseobj.BaseObj)
+.fi
+.SS class fattr4_time_create(baseobj.BaseObj)
+.nf
+fattr4_time_create = class nfstime4(baseobj.BaseObj)
+.fi
+.SS class fattr4_time_delta(baseobj.BaseObj)
+.nf
+fattr4_time_delta = class nfstime4(baseobj.BaseObj)
+.fi
+.SS class fattr4_time_metadata(baseobj.BaseObj)
+.nf
+fattr4_time_metadata = class nfstime4(baseobj.BaseObj)
+.fi
+.SS class fattr4_time_modify(baseobj.BaseObj)
+.nf
+fattr4_time_modify = class nfstime4(baseobj.BaseObj)
+.fi
+.SS class fattr4_time_modify_set(baseobj.BaseObj)
+.nf
+fattr4_time_modify_set = class settime4(baseobj.BaseObj)
+.fi
+.SS class fattr4_type(packet.utils.Enum)
+.nf
+fattr4_type = class nfs_ftype4(packet.utils.Enum)
+.fi
+.SS class fattr4_unique_handles(packet.utils.Enum)
+.nf
+fattr4_unique_handles = class nfs_bool(packet.utils.Enum)
+.fi
+.SS class fattr4_xattr_support(packet.utils.Enum)
+.nf
+fattr4_xattr_support = class nfs_bool(packet.utils.Enum)
+.fi
+.SS class ff_cb_recall_any_mask(packet.utils.Enum)
+.nf
+ff_cb_recall_any_mask(unpack)
+
+enum ff_cb_recall_any_mask
+
+.fi
+.SS class ff_data_server4(baseobj.BaseObj)
+.nf
+ff_data_server4(unpack)
+
+struct ff_data_server4 {
+    deviceid4          deviceid;
+    uint32_t           efficiency;
+    stateid4           stateid;
+    nfs_fh4            fh_list<>;
+    fattr4_owner       user;
+    fattr4_owner_group group;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class ff_device_addr4(baseobj.BaseObj)
+.nf
+ff_device_addr4(unpack)
+
+struct ff_device_addr4 {
+    uint32_t            size;        /* opaque size from device_addr4 */
+    multipath_list4     netaddrs;
+    ff_device_versions4 versions<>;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class ff_device_versions4(baseobj.BaseObj)
+.nf
+ff_device_versions4(unpack)
+
+struct ff_device_versions4 {
+    uint32_t version;
+    uint32_t minorversion;
+    uint32_t rsize;
+    uint32_t wsize;
+    bool     tightly_coupled;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class ff_io_latency4(baseobj.BaseObj)
+.nf
+ff_io_latency4(unpack)
+
+struct ff_io_latency4 {
+    uint64_t ops_requested;
+    uint64_t bytes_requested;
+    uint64_t ops_completed;
+    uint64_t bytes_completed;
+    uint64_t bytes_not_delivered;
+    nfstime4 total_busy_time;
+    nfstime4 aggregate_completion_time;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class ff_ioerr4(baseobj.BaseObj)
+.nf
+ff_ioerr4(unpack)
+
+struct ff_ioerr4 {
+    offset4       offset;
+    length4       length;
+    stateid4      stateid;
+    device_error4 errors<>;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class ff_iostats4(baseobj.BaseObj)
+.nf
+ff_iostats4(unpack)
+
+struct ff_iostats4 {
+    offset4          offset;
+    length4          length;
+    stateid4         stateid;
+    io_info4         read;
+    io_info4         write;
+    deviceid4        deviceid;
+    ff_layoutupdate4 layoutupdate;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class ff_layout4(baseobj.BaseObj)
+.nf
+ff_layout4(unpack)
+
+struct ff_layout4 {
+    uint32_t   size;         /* opaque size from layout_content4 */
+    length4    stripe_unit;
+    ff_mirror4 mirrors<>;
+    ff_flags4  flags;
+    uint32_t   stats_hint;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class ff_layouthint4(baseobj.BaseObj)
+.nf
+ff_layouthint4(unpack)
+
+struct ff_layouthint4 {
+    ff_mirrors_hint mirrors_hint;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class ff_layoutreturn4(baseobj.BaseObj)
+.nf
+ff_layoutreturn4(unpack)
+
+struct ff_layoutreturn4 {
+    uint32_t    size;              /* opaque size from layoutreturn_file4 */
+    ff_ioerr4   ioerr_report<>;
+    ff_iostats4 iostats_report<>;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class ff_layoutupdate4(baseobj.BaseObj)
+.nf
+ff_layoutupdate4(unpack)
+
+struct ff_layoutupdate4 {
+    netaddr4       addr;
+    nfs_fh4        fh;
+    ff_io_latency4 read;
+    ff_io_latency4 write;
+    nfstime4       duration;
+    bool           local;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class ff_mirror4(baseobj.BaseObj)
+.nf
+ff_mirror4(unpack)
+
+struct ff_mirror4 {
+    ff_data_server4 data_servers<>;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class ff_mirrors_hint(baseobj.BaseObj)
+.nf
+ff_mirrors_hint(unpack)
+
+union switch ff_mirrors_hint (bool valid) {
+    case const.TRUE:
+        uint32_t mirrors;
+    case const.FALSE:
+        void;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class filelayout_hint_care4(packet.utils.Enum)
+.nf
+filelayout_hint_care4(unpack)
+
+enum filelayout_hint_care4
+
+.fi
+.SS class fs4_status(baseobj.BaseObj)
+.nf
+fs4_status(unpack)
+
+struct fs4_status {
+    bool            absent;
+    fs4_status_type type;
+    utf8str_cs      source;
+    utf8str_cs      current;
+    int32_t         age;
+    nfstime4        version;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class fs4_status_type(packet.utils.Enum)
+.nf
+fs4_status_type(unpack)
+
+enum fs4_status_type
+
+.fi
+.SS class fs_location4(baseobj.BaseObj)
+.nf
+fs_location4(unpack)
+
+struct fs_location4 {
+    utf8str_cis server<>;
+    pathname4   root;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class fs_locations4(baseobj.BaseObj)
+.nf
+fs_locations4(unpack)
+
+struct fs_locations4 {
+    pathname4    root;
+    fs_location4 locations<>;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class fs_locations_info4(baseobj.BaseObj)
+.nf
+fs_locations_info4(unpack)
+
+struct fs_locations_info4 {
+    uint32_t           flags;
+    int32_t            valid_for;
+    pathname4          root;
+    fs_locations_item4 items<>;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class fs_locations_item4(baseobj.BaseObj)
+.nf
+fs_locations_item4(unpack)
+
+struct fs_locations_item4 {
+    fs_locations_server4 entries<>;
+    pathname4            root;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class fs_locations_server4(baseobj.BaseObj)
+.nf
+fs_locations_server4(unpack)
+
+struct fs_locations_server4 {
+    int32_t     currency;
+    opaque      info<>;
+    utf8str_cis server;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class fsid4(baseobj.BaseObj)
+.nf
+fsid4(unpack)
+
+struct fsid4 {
+    uint64_t major;
+    uint64_t minor;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class gddrnf4_status(packet.utils.Enum)
+.nf
+gddrnf4_status(unpack)
+
+enum gddrnf4_status
+
+.fi
+.SS class gss_cb_handles4(baseobj.BaseObj)
+.nf
+gss_cb_handles4(unpack)
+
+struct gss_cb_handles4 {
+    rpc_gss_svc_t service;        /* RFC 2203 */
+    gsshandle4_t  server_handle;
+    gsshandle4_t  client_handle;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class io_info4(baseobj.BaseObj)
+.nf
+io_info4(unpack)
+
+struct io_info4 {
+    uint64_t count;
+    uint64_t bytes;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class labelformat_spec4(baseobj.BaseObj)
+.nf
+labelformat_spec4(unpack)
+
+struct labelformat_spec4 {
+    policy4 lfs;
+    policy4 pi;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class layout4(baseobj.BaseObj)
+.nf
+layout4(unpack)
+
+struct layout4 {
+    offset4         offset;
+    length4         length;
+    layoutiomode4   iomode;
+    layout_content4 content;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class layout_content4(baseobj.BaseObj)
+.nf
+layout_content4(unpack)
+
+union switch layout_content4 (layouttype4 type) {
+    case const.LAYOUT4_NFSV4_1_FILES:
+        nfsv4_1_file_layout4 body;
+    case const.LAYOUT4_FLEX_FILES:
+        ff_layout4 body;
+    default:
+        /* All other types are not supported yet */
+        opaque body<>;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class layouthint4(baseobj.BaseObj)
+.nf
+layouthint4(unpack)
+
+union switch layouthint4 (layouttype4 type) {
+    case const.LAYOUT4_NFSV4_1_FILES:
+        nfsv4_1_file_layouthint4 body;
+    case const.LAYOUT4_FLEX_FILES:
+        ff_layouthint4 body;
+    default:
+        /* All other types are not supported yet */
+        opaque body<>;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class layoutiomode4(packet.utils.Enum)
+.nf
+layoutiomode4(unpack)
+
+enum layoutiomode4
+
+.fi
+.SS class layoutrecall4(baseobj.BaseObj)
+.nf
+layoutrecall4(unpack)
+
+union switch layoutrecall4 (layoutrecall_type4 recalltype) {
+    case const.LAYOUTRECALL4_FILE:
+        layoutrecall_file4 layout;
+    case const.LAYOUTRECALL4_FSID:
+        fsid4 fsid;
+    case const.LAYOUTRECALL4_ALL:
+        void;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class layoutrecall_file4(baseobj.BaseObj)
+.nf
+layoutrecall_file4(unpack)
+
+struct layoutrecall_file4 {
+    nfs_fh4  fh;
+    offset4  offset;
+    length4  length;
+    stateid4 stateid;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class layoutrecall_type4(packet.utils.Enum)
+.nf
+layoutrecall_type4(unpack)
+
+enum layoutrecall_type4
+
+.fi
+.SS class layoutreturn4(baseobj.BaseObj)
+.nf
+layoutreturn4(unpack)
+
+union switch layoutreturn4 (layoutreturn_type4 returntype) {
+    case const.LAYOUTRETURN4_FILE:
+        layoutreturn_file4 layout;
+    default:
+        void;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class layoutreturn_file4(baseobj.BaseObj)
+.nf
+layoutreturn_file4(unpack)
+
+struct layoutreturn_file4 {
+    offset4                 offset;
+    length4                 length;
+    stateid4                stateid;
+    /* layouttype4 specific data */
+    layoutreturn_file_body4 data;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class layoutreturn_file_body4(baseobj.BaseObj)
+.nf
+layoutreturn_file_body4(unpack)
+
+union switch layoutreturn_file_body4 (layouttype4 nfs4_layouttype) {
+    case const.LAYOUT4_FLEX_FILES:
+        ff_layoutreturn4 body;
+    default:
+        /* All other types are not supported yet or not used */
+        opaque body<>;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class layoutreturn_stateid(baseobj.BaseObj)
+.nf
+layoutreturn_stateid(unpack)
+
+union switch layoutreturn_stateid (bool present) {
+    case const.TRUE:
+        stateid4 stateid;
+    case const.FALSE:
+        void;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class layoutreturn_type4(packet.utils.Enum)
+.nf
+layoutreturn_type4(unpack)
+
+enum layoutreturn_type4
+
+.fi
+.SS class layouttype4(packet.utils.Enum)
+.nf
+layouttype4(unpack)
+
+enum layouttype4
+
+.fi
+.SS class layoutupdate4(baseobj.BaseObj)
+.nf
+layoutupdate4(unpack)
+
+struct layoutupdate4 {
+    layouttype4 type;
+    opaque      body<>;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class limit_by4(packet.utils.Enum)
+.nf
+limit_by4(unpack)
+
+enum limit_by4
+
+.fi
+.SS class lock_owner4(baseobj.BaseObj)
+.nf
+lock_owner4 = class state_owner4(baseobj.BaseObj)
+.fi
+.SS class locker4(baseobj.BaseObj)
+.nf
+locker4(unpack)
+
+union switch locker4 (bool new_lock_owner) {
+    case const.TRUE:
+        open_to_lock_owner4 open_owner;
+    case const.FALSE:
+        exist_lock_owner4 lock_owner;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class mdsthreshold4(baseobj.BaseObj)
+.nf
+mdsthreshold4(unpack)
+
+struct mdsthreshold4 {
+    threshold_item4 hints<>;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class mode_masked4(baseobj.BaseObj)
+.nf
+mode_masked4(unpack)
+
+struct mode_masked4 {
+    mode4 values;  /* Values of bits to set or reset in mode. */
+    mode4 mask;    /* Mask of bits to set or reset in mode. */
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class mode_umask4(baseobj.BaseObj)
+.nf
+mode_umask4(unpack)
+
+struct mode_umask4 {
+    mode4 mode;
+    mode4 umask;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class netaddr4(baseobj.BaseObj)
+.nf
+netaddr4 = class clientaddr4(baseobj.BaseObj)
+.fi
+.SS class netloc4(baseobj.BaseObj)
+.nf
+netloc4(unpack)
+
+union switch netloc4 (netloc_type4 type) {
+    case const.NL4_NAME:
+        utf8str_cis name;
+    case const.NL4_URL:
+        utf8str_cis url;
+    case const.NL4_NETADDR:
+        netaddr4 addr;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class netloc_type4(packet.utils.Enum)
+.nf
+netloc_type4(unpack)
+
+enum netloc_type4
+
+.fi
+.SS class newoffset4(baseobj.BaseObj)
+.nf
+newoffset4(unpack)
+
+union switch newoffset4 (bool newoffset) {
+    case const.TRUE:
+        offset4 offset;
+    case const.FALSE:
+        void;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class newsize4(baseobj.BaseObj)
+.nf
+newsize4(unpack)
+
+union switch newsize4 (bool sizechanged) {
+    case const.TRUE:
+        length4 size;
+    case const.FALSE:
+        void;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class newtime4(baseobj.BaseObj)
+.nf
+newtime4(unpack)
+
+union switch newtime4 (bool timechanged) {
+    case const.TRUE:
+        nfstime4 time;
+    case const.FALSE:
+        void;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class nfs_argop4(baseobj.BaseObj)
+.nf
+nfs_argop4(unpack)
+
+union switch nfs_argop4 (nfs_opnum4 argop) {
+    case const.OP_ACCESS:
+        ACCESS4args opaccess;
+    case const.OP_CLOSE:
+        CLOSE4args opclose;
+    case const.OP_COMMIT:
+        COMMIT4args opcommit;
+    case const.OP_CREATE:
+        CREATE4args opcreate;
+    case const.OP_DELEGPURGE:
+        DELEGPURGE4args opdelegpurge;
+    case const.OP_DELEGRETURN:
+        DELEGRETURN4args opdelegreturn;
+    case const.OP_GETATTR:
+        GETATTR4args opgetattr;
+    case const.OP_GETFH:
+        void;
+    case const.OP_LINK:
+        LINK4args oplink;
+    case const.OP_LOCK:
+        LOCK4args oplock;
+    case const.OP_LOCKT:
+        LOCKT4args oplockt;
+    case const.OP_LOCKU:
+        LOCKU4args oplocku;
+    case const.OP_LOOKUP:
+        LOOKUP4args oplookup;
+    case const.OP_LOOKUPP:
+        void;
+    case const.OP_NVERIFY:
+        NVERIFY4args opnverify;
+    case const.OP_OPEN:
+        OPEN4args opopen;
+    case const.OP_OPENATTR:
+        OPENATTR4args opopenattr;
+    case const.OP_OPEN_CONFIRM:
+        /* Not used in NFSv4.1 */
+        OPEN_CONFIRM4args opopen_confirm;
+    case const.OP_OPEN_DOWNGRADE:
+        OPEN_DOWNGRADE4args opopen_downgrade;
+    case const.OP_PUTFH:
+        PUTFH4args opputfh;
+    case const.OP_PUTPUBFH:
+        void;
+    case const.OP_PUTROOTFH:
+        void;
+    case const.OP_READ:
+        READ4args opread;
+    case const.OP_READDIR:
+        READDIR4args opreaddir;
+    case const.OP_READLINK:
+        void;
+    case const.OP_REMOVE:
+        REMOVE4args opremove;
+    case const.OP_RENAME:
+        RENAME4args oprename;
+    case const.OP_RENEW:
+        /* Not used in NFSv4.1 */
+        RENEW4args oprenew;
+    case const.OP_RESTOREFH:
+        void;
+    case const.OP_SAVEFH:
+        void;
+    case const.OP_SECINFO:
+        SECINFO4args opsecinfo;
+    case const.OP_SETATTR:
+        SETATTR4args opsetattr;
+    case const.OP_SETCLIENTID:
+        /* Not used in NFSv4.1 */
+        SETCLIENTID4args opsetclientid;
+    case const.OP_SETCLIENTID_CONFIRM:
+        /* Not used in NFSv4.1 */
+        SETCLIENTID_CONFIRM4args opsetclientid_confirm;
+    case const.OP_VERIFY:
+        VERIFY4args opverify;
+    case const.OP_WRITE:
+        WRITE4args opwrite;
+    case const.OP_RELEASE_LOCKOWNER:
+        /* Not used in NFSv4.1 */
+        RELEASE_LOCKOWNER4args oprelease_lockowner;
+    /*
+     * New to NFSv4.1
+     */
+    case const.OP_BACKCHANNEL_CTL:
+        BACKCHANNEL_CTL4args opbackchannel_ctl;
+    case const.OP_BIND_CONN_TO_SESSION:
+        BIND_CONN_TO_SESSION4args opbind_conn_to_session;
+    case const.OP_EXCHANGE_ID:
+        EXCHANGE_ID4args opexchange_id;
+    case const.OP_CREATE_SESSION:
+        CREATE_SESSION4args opcreate_session;
+    case const.OP_DESTROY_SESSION:
+        DESTROY_SESSION4args opdestroy_session;
+    case const.OP_FREE_STATEID:
+        FREE_STATEID4args opfree_stateid;
+    case const.OP_GET_DIR_DELEGATION:
+        GET_DIR_DELEGATION4args opget_dir_delegation;
+    case const.OP_GETDEVICEINFO:
+        GETDEVICEINFO4args opgetdeviceinfo;
+    case const.OP_GETDEVICELIST:
+        /* Not used in NFSv4.2 */
+        GETDEVICELIST4args opgetdevicelist;
+    case const.OP_LAYOUTCOMMIT:
+        LAYOUTCOMMIT4args oplayoutcommit;
+    case const.OP_LAYOUTGET:
+        LAYOUTGET4args oplayoutget;
+    case const.OP_LAYOUTRETURN:
+        LAYOUTRETURN4args oplayoutreturn;
+    case const.OP_SECINFO_NO_NAME:
+        SECINFO_NO_NAME4args opsecinfo_no_name;
+    case const.OP_SEQUENCE:
+        SEQUENCE4args opsequence;
+    case const.OP_SET_SSV:
+        SET_SSV4args opset_ssv;
+    case const.OP_TEST_STATEID:
+        TEST_STATEID4args optest_stateid;
+    case const.OP_WANT_DELEGATION:
+        WANT_DELEGATION4args opwant_delegation;
+    case const.OP_DESTROY_CLIENTID:
+        DESTROY_CLIENTID4args opdestroy_clientid;
+    case const.OP_RECLAIM_COMPLETE:
+        RECLAIM_COMPLETE4args opreclaim_complete;
+    /*
+     * New to NFSv4.2
+     */
+    case const.OP_ALLOCATE:
+        ALLOCATE4args opallocate;
+    case const.OP_COPY:
+        COPY4args opcopy;
+    case const.OP_COPY_NOTIFY:
+        COPY_NOTIFY4args opcopy_notify;
+    case const.OP_DEALLOCATE:
+        DEALLOCATE4args opdeallocate;
+    case const.OP_IO_ADVISE:
+        IO_ADVISE4args opio_advise;
+    case const.OP_LAYOUTERROR:
+        LAYOUTERROR4args oplayouterror;
+    case const.OP_LAYOUTSTATS:
+        LAYOUTSTATS4args oplayoutstats;
+    case const.OP_OFFLOAD_CANCEL:
+        OFFLOAD_CANCEL4args opoffload_cancel;
+    case const.OP_OFFLOAD_STATUS:
+        OFFLOAD_STATUS4args opoffload_status;
+    case const.OP_READ_PLUS:
+        READ_PLUS4args opread_plus;
+    case const.OP_SEEK:
+        SEEK4args opseek;
+    case const.OP_WRITE_SAME:
+        WRITE_SAME4args opwrite_same;
+    case const.OP_CLONE:
+        CLONE4args opclone;
+    /*
+     * RFC 8276
+     */
+    case const.OP_GETXATTR:
+        GETXATTR4args opgetxattr;
+    case const.OP_SETXATTR:
+        SETXATTR4args opsetxattr;
+    case const.OP_LISTXATTRS:
+        LISTXATTRS4args oplistxattrs;
+    case const.OP_REMOVEXATTR:
+        REMOVEXATTR4args opremovexattr;
+    case const.OP_ILLEGAL:
+        /* Illegal operation */
+        void;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class nfs_bool(packet.utils.Enum)
+.nf
+nfs_bool(unpack)
+
+enum nfs_bool
+
+.fi
+.SS class nfs_cb_argop4(baseobj.BaseObj)
+.nf
+nfs_cb_argop4(unpack)
+
+union switch nfs_cb_argop4 (nfs_cb_opnum4 argop) {
+    case const.OP_CB_GETATTR:
+        CB_GETATTR4args opcbgetattr;
+    case const.OP_CB_RECALL:
+        CB_RECALL4args opcbrecall;
+    /*
+     * New to NFSv4.1
+     */
+    case const.OP_CB_LAYOUTRECALL:
+        CB_LAYOUTRECALL4args opcblayoutrecall;
+    case const.OP_CB_NOTIFY:
+        CB_NOTIFY4args opcbnotify;
+    case const.OP_CB_PUSH_DELEG:
+        CB_PUSH_DELEG4args opcbpush_deleg;
+    case const.OP_CB_RECALL_ANY:
+        CB_RECALL_ANY4args opcbrecall_any;
+    case const.OP_CB_RECALLABLE_OBJ_AVAIL:
+        CB_RECALLABLE_OBJ_AVAIL4args opcbrecallable_obj_avail;
+    case const.OP_CB_RECALL_SLOT:
+        CB_RECALL_SLOT4args opcbrecall_slot;
+    case const.OP_CB_SEQUENCE:
+        CB_SEQUENCE4args opcbsequence;
+    case const.OP_CB_WANTS_CANCELLED:
+        CB_WANTS_CANCELLED4args opcbwants_cancelled;
+    case const.OP_CB_NOTIFY_LOCK:
+        CB_NOTIFY_LOCK4args opcbnotify_lock;
+    case const.OP_CB_NOTIFY_DEVICEID:
+        CB_NOTIFY_DEVICEID4args opcbnotify_deviceid;
+    /*
+     * New to NFSv4.2
+     */
+    case const.OP_CB_OFFLOAD:
+        CB_OFFLOAD4args opcboffload;
+    case const.OP_CB_ILLEGAL:
+        /* Illegal callback operation */
+        void;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class nfs_cb_opnum4(packet.utils.Enum)
+.nf
+nfs_cb_opnum4(unpack)
+
+enum nfs_cb_opnum4
+
+.fi
+.SS class nfs_cb_resop4(baseobj.BaseObj)
+.nf
+nfs_cb_resop4(unpack)
+
+union switch nfs_cb_resop4 (nfs_cb_opnum4 resop) {
+    case const.OP_CB_GETATTR:
+        CB_GETATTR4res opcbgetattr;
+    case const.OP_CB_RECALL:
+        CB_RECALL4res opcbrecall;
+    /*
+     * New to NFSv4.1
+     */
+    case const.OP_CB_LAYOUTRECALL:
+        CB_LAYOUTRECALL4res opcblayoutrecall;
+    case const.OP_CB_NOTIFY:
+        CB_NOTIFY4res opcbnotify;
+    case const.OP_CB_PUSH_DELEG:
+        CB_PUSH_DELEG4res opcbpush_deleg;
+    case const.OP_CB_RECALL_ANY:
+        CB_RECALL_ANY4res opcbrecall_any;
+    case const.OP_CB_RECALLABLE_OBJ_AVAIL:
+        CB_RECALLABLE_OBJ_AVAIL4res opcbrecallable_obj_avail;
+    case const.OP_CB_RECALL_SLOT:
+        CB_RECALL_SLOT4res opcbrecall_slot;
+    case const.OP_CB_SEQUENCE:
+        CB_SEQUENCE4res opcbsequence;
+    case const.OP_CB_WANTS_CANCELLED:
+        CB_WANTS_CANCELLED4res opcbwants_cancelled;
+    case const.OP_CB_NOTIFY_LOCK:
+        CB_NOTIFY_LOCK4res opcbnotify_lock;
+    case const.OP_CB_NOTIFY_DEVICEID:
+        CB_NOTIFY_DEVICEID4res opcbnotify_deviceid;
+    /*
+     * New to NFSv4.2
+     */
+    case const.OP_CB_OFFLOAD:
+        CB_OFFLOAD4res opcboffload;
+    case const.OP_CB_ILLEGAL:
+        /* Illegal callback operation */
+        CB_ILLEGAL4res opcbillegal;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class nfs_client_id4(baseobj.BaseObj)
+.nf
+nfs_client_id4(unpack)
+
+struct nfs_client_id4 {
+    verifier4 verifier;
+    opaque    id<NFS4_OPAQUE_LIMIT>;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class nfs_fattr4(packet.utils.Enum)
+.nf
+nfs_fattr4(unpack)
+
+enum nfs_fattr4
+
+.fi
+.SS class nfs_ftype4(packet.utils.Enum)
+.nf
+nfs_ftype4(unpack)
+
+enum nfs_ftype4
+
+.fi
+.SS class nfs_impl_id4(baseobj.BaseObj)
+.nf
+nfs_impl_id4(unpack)
+
+struct nfs_impl_id4 {
+    utf8str_cis domain;
+    utf8str_cs  name;
+    nfstime4    date;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class nfs_lock_type4(packet.utils.Enum)
+.nf
+nfs_lock_type4(unpack)
+
+enum nfs_lock_type4
+
+.fi
+.SS class nfs_modified_limit4(baseobj.BaseObj)
+.nf
+nfs_modified_limit4(unpack)
+
+struct nfs_modified_limit4 {
+    uint32_t num_blocks;
+    uint32_t bytes_per_block;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class nfs_opnum4(packet.utils.Enum)
+.nf
+nfs_opnum4(unpack)
+
+enum nfs_opnum4
+
+.fi
+.SS class nfs_resop4(baseobj.BaseObj)
+.nf
+nfs_resop4(unpack)
+
+union switch nfs_resop4 (nfs_opnum4 resop) {
+    case const.OP_ACCESS:
+        ACCESS4res opaccess;
+    case const.OP_CLOSE:
+        CLOSE4res opclose;
+    case const.OP_COMMIT:
+        COMMIT4res opcommit;
+    case const.OP_CREATE:
+        CREATE4res opcreate;
+    case const.OP_DELEGPURGE:
+        DELEGPURGE4res opdelegpurge;
+    case const.OP_DELEGRETURN:
+        DELEGRETURN4res opdelegreturn;
+    case const.OP_GETATTR:
+        GETATTR4res opgetattr;
+    case const.OP_GETFH:
+        GETFH4res opgetfh;
+    case const.OP_LINK:
+        LINK4res oplink;
+    case const.OP_LOCK:
+        LOCK4res oplock;
+    case const.OP_LOCKT:
+        LOCKT4res oplockt;
+    case const.OP_LOCKU:
+        LOCKU4res oplocku;
+    case const.OP_LOOKUP:
+        LOOKUP4res oplookup;
+    case const.OP_LOOKUPP:
+        LOOKUPP4res oplookupp;
+    case const.OP_NVERIFY:
+        NVERIFY4res opnverify;
+    case const.OP_OPEN:
+        OPEN4res opopen;
+    case const.OP_OPENATTR:
+        OPENATTR4res opopenattr;
+    case const.OP_OPEN_CONFIRM:
+        /* Not used in NFSv4.1 */
+        OPEN_CONFIRM4res opopen_confirm;
+    case const.OP_OPEN_DOWNGRADE:
+        OPEN_DOWNGRADE4res opopen_downgrade;
+    case const.OP_PUTFH:
+        PUTFH4res opputfh;
+    case const.OP_PUTPUBFH:
+        PUTPUBFH4res opputpubfh;
+    case const.OP_PUTROOTFH:
+        PUTROOTFH4res opputrootfh;
+    case const.OP_READ:
+        READ4res opread;
+    case const.OP_READDIR:
+        READDIR4res opreaddir;
+    case const.OP_READLINK:
+        READLINK4res opreadlink;
+    case const.OP_REMOVE:
+        REMOVE4res opremove;
+    case const.OP_RENAME:
+        RENAME4res oprename;
+    case const.OP_RENEW:
+        /* Not used in NFSv4.1 */
+        RENEW4res oprenew;
+    case const.OP_RESTOREFH:
+        RESTOREFH4res oprestorefh;
+    case const.OP_SAVEFH:
+        SAVEFH4res opsavefh;
+    case const.OP_SECINFO:
+        SECINFO4res opsecinfo;
+    case const.OP_SETATTR:
+        SETATTR4res opsetattr;
+    case const.OP_SETCLIENTID:
+        /* Not used in NFSv4.1 */
+        SETCLIENTID4res opsetclientid;
+    case const.OP_SETCLIENTID_CONFIRM:
+        /* Not used in NFSv4.1 */
+        SETCLIENTID_CONFIRM4res opsetclientid_confirm;
+    case const.OP_VERIFY:
+        VERIFY4res opverify;
+    case const.OP_WRITE:
+        WRITE4res opwrite;
+    case const.OP_RELEASE_LOCKOWNER:
+        /* Not used in NFSv4.1 */
+        RELEASE_LOCKOWNER4res oprelease_lockowner;
+    /*
+     * New to NFSv4.1
+     */
+    case const.OP_BACKCHANNEL_CTL:
+        BACKCHANNEL_CTL4res opbackchannel_ctl;
+    case const.OP_BIND_CONN_TO_SESSION:
+        BIND_CONN_TO_SESSION4res opbind_conn_to_session;
+    case const.OP_EXCHANGE_ID:
+        EXCHANGE_ID4res opexchange_id;
+    case const.OP_CREATE_SESSION:
+        CREATE_SESSION4res opcreate_session;
+    case const.OP_DESTROY_SESSION:
+        DESTROY_SESSION4res opdestroy_session;
+    case const.OP_FREE_STATEID:
+        FREE_STATEID4res opfree_stateid;
+    case const.OP_GET_DIR_DELEGATION:
+        GET_DIR_DELEGATION4res opget_dir_delegation;
+    case const.OP_GETDEVICEINFO:
+        GETDEVICEINFO4res opgetdeviceinfo;
+    case const.OP_GETDEVICELIST:
+        /* Not used in NFSv4.2 */
+        GETDEVICELIST4res opgetdevicelist;
+    case const.OP_LAYOUTCOMMIT:
+        LAYOUTCOMMIT4res oplayoutcommit;
+    case const.OP_LAYOUTGET:
+        LAYOUTGET4res oplayoutget;
+    case const.OP_LAYOUTRETURN:
+        LAYOUTRETURN4res oplayoutreturn;
+    case const.OP_SECINFO_NO_NAME:
+        SECINFO_NO_NAME4res opsecinfo_no_name;
+    case const.OP_SEQUENCE:
+        SEQUENCE4res opsequence;
+    case const.OP_SET_SSV:
+        SET_SSV4res opset_ssv;
+    case const.OP_TEST_STATEID:
+        TEST_STATEID4res optest_stateid;
+    case const.OP_WANT_DELEGATION:
+        WANT_DELEGATION4res opwant_delegation;
+    case const.OP_DESTROY_CLIENTID:
+        DESTROY_CLIENTID4res opdestroy_clientid;
+    case const.OP_RECLAIM_COMPLETE:
+        RECLAIM_COMPLETE4res opreclaim_complete;
+    /*
+     * New to NFSv4.2
+     */
+    case const.OP_ALLOCATE:
+        ALLOCATE4res opallocate;
+    case const.OP_COPY:
+        COPY4res opcopy;
+    case const.OP_COPY_NOTIFY:
+        COPY_NOTIFY4res opcopy_notify;
+    case const.OP_DEALLOCATE:
+        DEALLOCATE4res opdeallocate;
+    case const.OP_IO_ADVISE:
+        IO_ADVISE4res opio_advise;
+    case const.OP_LAYOUTERROR:
+        LAYOUTERROR4res oplayouterror;
+    case const.OP_LAYOUTSTATS:
+        LAYOUTSTATS4res oplayoutstats;
+    case const.OP_OFFLOAD_CANCEL:
+        OFFLOAD_CANCEL4res opoffload_cancel;
+    case const.OP_OFFLOAD_STATUS:
+        OFFLOAD_STATUS4res opoffload_status;
+    case const.OP_READ_PLUS:
+        READ_PLUS4res opread_plus;
+    case const.OP_SEEK:
+        SEEK4res opseek;
+    case const.OP_WRITE_SAME:
+        WRITE_SAME4res opwrite_same;
+    case const.OP_CLONE:
+        CLONE4res opclone;
+    /*
+     * RFC 8276
+     */
+    case const.OP_GETXATTR:
+        GETXATTR4res opgetxattr;
+    case const.OP_SETXATTR:
+        SETXATTR4res opsetxattr;
+    case const.OP_LISTXATTRS:
+        LISTXATTRS4res oplistxattrs;
+    case const.OP_REMOVEXATTR:
+        REMOVEXATTR4res opremovexattr;
+    case const.OP_ILLEGAL:
+        /* Illegal operation */
+        ILLEGAL4res opillegal;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class nfs_secflavor4(packet.utils.Enum)
+.nf
+nfs_secflavor4(unpack)
+
+enum nfs_secflavor4
+
+.fi
+.SS class nfs_space_limit4(baseobj.BaseObj)
+.nf
+nfs_space_limit4(unpack)
+
+union switch nfs_space_limit4 (limit_by4 limitby) {
+    /* limit specified as file size */
+    case const.NFS_LIMIT_SIZE:
+        uint64_t filesize;
+    /* limit specified by number of blocks */
+    case const.NFS_LIMIT_BLOCKS:
+        nfs_modified_limit4 mod_blocks;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class nfsace4(baseobj.BaseObj)
+.nf
+nfsace4(unpack)
+
+struct nfsace4 {
+    acetype4      type;
+    aceflag4      flag;
+    acemask4      mask;
+    utf8str_mixed who;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class nfsacl41(baseobj.BaseObj)
+.nf
+nfsacl41(unpack)
+
+struct nfsacl41 {
+    aclflag4 flag;
+    nfsace4  aces<>;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class nfsstat4(packet.utils.Enum)
+.nf
+nfsstat4(unpack)
+
+enum nfsstat4
+
+.fi
+.SS class nfstime4(baseobj.BaseObj)
+.nf
+nfstime4(unpack)
+
+struct nfstime4 {
+    int64_t  seconds;
+    uint32_t nseconds;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class nfsv4_1_file_layout4(baseobj.BaseObj)
+.nf
+nfsv4_1_file_layout4(unpack)
+
+struct nfsv4_1_file_layout4 {
+    uint32_t  size;                /* opaque size from layout_content4 */
+    deviceid4 deviceid;
+    nfl_util4 nfl_util;
+    uint32_t  first_stripe_index;
+    offset4   pattern_offset;
+    nfs_fh4   fh_list<>;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class nfsv4_1_file_layout_ds_addr4(baseobj.BaseObj)
+.nf
+nfsv4_1_file_layout_ds_addr4(unpack)
+
+struct nfsv4_1_file_layout_ds_addr4 {
+    uint32_t        size;                 /* opaque size from device_addr4 */
+    uint32_t        stripe_indices<>;
+    multipath_list4 multipath_ds_list<>;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class nfsv4_1_file_layouthint4(baseobj.BaseObj)
+.nf
+nfsv4_1_file_layouthint4(unpack)
+
+struct nfsv4_1_file_layouthint4 {
+    uint32_t  size;          /* opaque size from layouthint4 */
+    uint32_t  care;
+    nfl_util4 nfl_util;
+    count4    stripe_count;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class nfsv4_1_file_th_items4(packet.utils.Enum)
+.nf
+nfsv4_1_file_th_items4(unpack)
+
+enum nfsv4_1_file_th_items4
+
+.fi
+.SS class notify4(baseobj.BaseObj)
+.nf
+notify4(unpack)
+
+struct notify4 {
+    /* composed from notify_type4 or notify_deviceid_type4 */
+    bitmap4     mask;
+    notifylist4 values;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class notify_add4(baseobj.BaseObj)
+.nf
+notify_add4(unpack)
+
+struct notify_add4 {
+    /*
+     * Information on object
+     * possibly renamed over.
+     */
+    notify_remove4 old_entry<1>;
+    notify_entry4  new_entry;
+    /* what READDIR would have returned for this entry */
+    nfs_cookie4    new_cookie<1>;
+    prev_entry4    prev_entry<1>;
+    bool           last_entry;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class notify_attr4(baseobj.BaseObj)
+.nf
+notify_attr4(unpack)
+
+struct notify_attr4 {
+    notify_entry4 entry;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class notify_deviceid_change4(baseobj.BaseObj)
+.nf
+notify_deviceid_change4(unpack)
+
+struct notify_deviceid_change4 {
+    layouttype4 type;
+    deviceid4   deviceid;
+    bool        immediate;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class notify_deviceid_delete4(baseobj.BaseObj)
+.nf
+notify_deviceid_delete4(unpack)
+
+struct notify_deviceid_delete4 {
+    layouttype4 type;
+    deviceid4   deviceid;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class notify_deviceid_type4(packet.utils.Enum)
+.nf
+notify_deviceid_type4(unpack)
+
+enum notify_deviceid_type4
+
+.fi
+.SS class notify_entry4(baseobj.BaseObj)
+.nf
+notify_entry4(unpack)
+
+struct notify_entry4 {
+    component4 name;
+    fattr4     attrs;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class notify_remove4(baseobj.BaseObj)
+.nf
+notify_remove4(unpack)
+
+struct notify_remove4 {
+    notify_entry4 entry;
+    nfs_cookie4   cookie;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class notify_rename4(baseobj.BaseObj)
+.nf
+notify_rename4(unpack)
+
+struct notify_rename4 {
+    notify_remove4 old_entry;
+    notify_add4    new_entry;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class notify_type4(packet.utils.Enum)
+.nf
+notify_type4(unpack)
+
+enum notify_type4
+
+.fi
+.SS class notify_verifier4(baseobj.BaseObj)
+.nf
+notify_verifier4(unpack)
+
+struct notify_verifier4 {
+    verifier4 old_verifier;
+    verifier4 new_verifier;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class offload_info4(baseobj.BaseObj)
+.nf
+offload_info4(unpack)
+
+union switch offload_info4 (nfsstat4 status) {
+    case const.NFS4_OK:
+        write_response4 resok;
+    default:
+        length4 count;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class open_claim4(baseobj.BaseObj)
+.nf
+open_claim4(unpack)
+
+union switch open_claim4 (open_claim_type4 claim) {
+    /*
+     * No special rights to file.
+     * Ordinary OPEN of the specified file.
+     */
+    case const.CLAIM_NULL:
+        /* CURRENT_FH: directory */
+        component4 name;
+    /*
+     * Right to the file established by an
+     * open previous to server reboot. File
+     * identified by filehandle obtained at
+     * that time rather than by name.
+     */
+    case const.CLAIM_PREVIOUS:
+        /* CURRENT_FH: file being reclaimed */
+        open_delegation_type4 deleg_type;
+    /*
+     * Right to file based on a delegation
+     * granted by the server. File is
+     * specified by name.
+     */
+    case const.CLAIM_DELEGATE_CUR:
+        /* CURRENT_FH: directory */
+        open_claim_delegate_cur4 deleg_info;
+    /*
+     * Right to file based on a delegation
+     * granted to a previous boot instance
+     * of the client.  File is specified by name.
+     */
+    case const.CLAIM_DELEGATE_PREV:
+        /* CURRENT_FH: directory */
+        component4 name;
+    /*
+     * Like CLAIM_NULL. No special rights
+     * to file. Ordinary OPEN of the
+     * specified file by current filehandle.
+     */
+    case const.CLAIM_FH:                     /* New to NFSv4.1 */
+        /* CURRENT_FH: regular file to open */
+        void;
+    /*
+     * Like CLAIM_DELEGATE_PREV. Right to file based on a
+     * delegation granted to a previous boot
+     * instance of the client.  File is identified by
+     * by filehandle.
+     */
+    case const.CLAIM_DELEG_PREV_FH:          /* New to NFSv4.1 */
+        /* CURRENT_FH: file being opened */
+        void;
+    /*
+     * Like CLAIM_DELEGATE_CUR. Right to file based on
+     * a delegation granted by the server.
+     * File is identified by filehandle.
+     */
+    case const.CLAIM_DELEG_CUR_FH:           /* New to NFSv4.1 */
+        /* CURRENT_FH: file being opened */
+        stateid4 stateid;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class open_claim_delegate_cur4(baseobj.BaseObj)
+.nf
+open_claim_delegate_cur4(unpack)
+
+struct open_claim_delegate_cur4 {
+    stateid4   stateid;
+    component4 name;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class open_claim_type4(packet.utils.Enum)
+.nf
+open_claim_type4(unpack)
+
+enum open_claim_type4
+
+.fi
+.SS class open_delegation4(baseobj.BaseObj)
+.nf
+open_delegation4(unpack)
+
+union switch open_delegation4 (open_delegation_type4 deleg_type) {
+    case const.OPEN_DELEGATE_NONE:
+        void;
+    case const.OPEN_DELEGATE_READ:
+        open_read_delegation4 read;
+    case const.OPEN_DELEGATE_WRITE:
+        open_write_delegation4 write;
+    case const.OPEN_DELEGATE_NONE_EXT:  /* New to NFSv4.1 */
+        open_none_delegation4 whynone;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class open_delegation_type4(packet.utils.Enum)
+.nf
+open_delegation_type4(unpack)
+
+enum open_delegation_type4
+
+.fi
+.SS class open_none_delegation4(baseobj.BaseObj)
+.nf
+open_none_delegation4(unpack)
+
+union switch open_none_delegation4 (why_no_delegation4 why) {
+    case const.WND4_CONTENTION:
+        /* Server will push delegation */
+        bool push;
+    case const.WND4_RESOURCE:
+        /* Server will signal availability */
+        bool signal;
+    default:
+        void;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class open_owner4(baseobj.BaseObj)
+.nf
+open_owner4 = class state_owner4(baseobj.BaseObj)
+.fi
+.SS class open_read_delegation4(baseobj.BaseObj)
+.nf
+open_read_delegation4(unpack)
+
+struct open_read_delegation4 {
+    stateid4 stateid;      /* Stateid for delegation */
+    bool     recall;       /* Pre-recalled flag for delegations obtained by reclaim (CLAIM_PREVIOUS) */
+    nfsace4  permissions;  /* Defines users who don't need an ACCESS call to open for read */
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class open_to_lock_owner4(baseobj.BaseObj)
+.nf
+open_to_lock_owner4(unpack)
+
+struct open_to_lock_owner4 {
+    seqid4      seqid;
+    stateid4    stateid;
+    seqid4      lock_seqid;
+    lock_owner4 lock_owner;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class open_write_delegation4(baseobj.BaseObj)
+.nf
+open_write_delegation4(unpack)
+
+struct open_write_delegation4 {
+    stateid4         stateid;      /* Stateid for delegation */
+    bool             recall;       /* Pre-recalled flag for delegations obtained by reclaim (CLAIM_PREVIOUS) */
+    nfs_space_limit4 space_limit;  /* Defines condition that the client must check to determine whether the file needs to be flushed to the server on close. */
+    nfsace4          permissions;  /* Defines users who don't need an ACCESS call as part of a delegated open. */
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class openflag4(baseobj.BaseObj)
+.nf
+openflag4(unpack)
+
+union switch openflag4 (opentype4 opentype) {
+    case const.OPEN4_CREATE:
+        createhow4 how;
+    default:
+        void;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class opentype4(packet.utils.Enum)
+.nf
+opentype4(unpack)
+
+enum opentype4
+
+.fi
+.SS class prev_entry4(baseobj.BaseObj)
+.nf
+prev_entry4(unpack)
+
+struct prev_entry4 {
+    notify_entry4 entry;
+    /* what READDIR returned for this entry */
+    nfs_cookie4   cookie;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class read_plus_content(baseobj.BaseObj)
+.nf
+read_plus_content(unpack)
+
+union switch read_plus_content (data_content4 content) {
+    case const.NFS4_CONTENT_DATA:
+        data4 data;
+    case const.NFS4_CONTENT_HOLE:
+        data_info4 hole;
+    default:
+        void;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class read_plus_res4(baseobj.BaseObj)
+.nf
+read_plus_res4(unpack)
+
+struct read_plus_res4 {
+    bool              eof;
+    read_plus_content contents<>;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class referring_call4(baseobj.BaseObj)
+.nf
+referring_call4(unpack)
+
+struct referring_call4 {
+    sequenceid4 sequenceid;
+    slotid4     slotid;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class referring_call_list4(baseobj.BaseObj)
+.nf
+referring_call_list4(unpack)
+
+struct referring_call_list4 {
+    sessionid4      sessionid;
+    referring_call4 referring_calls<>;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class retention_get4(baseobj.BaseObj)
+.nf
+retention_get4(unpack)
+
+struct retention_get4 {
+    uint64_t duration;
+    nfstime4 begin_time<1>;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class retention_set4(baseobj.BaseObj)
+.nf
+retention_set4(unpack)
+
+struct retention_set4 {
+    bool     enable;
+    uint64_t duration<1>;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class rpc_gss_svc_t(packet.utils.Enum)
+.nf
+rpc_gss_svc_t(unpack)
+
+enum rpc_gss_svc_t
+
+.fi
+.SS class rpcsec_gss_info(baseobj.BaseObj)
+.nf
+rpcsec_gss_info(unpack)
+
+struct rpcsec_gss_info {
+    sec_oid4      oid;
+    qop4          qop;
+    rpc_gss_svc_t service;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class sec_label4(baseobj.BaseObj)
+.nf
+sec_label4(unpack)
+
+struct sec_label4 {
+    labelformat_spec4 lfs;
+    opaque            data<>;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class secinfo4(baseobj.BaseObj)
+.nf
+secinfo4(unpack)
+
+union switch secinfo4 (nfs_secflavor4 flavor) {
+    case const.RPCSEC_GSS:
+        rpcsec_gss_info info;
+    default:
+        void;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class secinfo_style4(packet.utils.Enum)
+.nf
+secinfo_style4(unpack)
+
+enum secinfo_style4
+
+.fi
+.SS class seek_res4(baseobj.BaseObj)
+.nf
+seek_res4(unpack)
+
+struct seek_res4 {
+    bool    eof;
+    offset4 offset;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class server_owner4(baseobj.BaseObj)
+.nf
+server_owner4(unpack)
+
+struct server_owner4 {
+    uint64_t minor_id;
+    opaque   major_id<NFS4_OPAQUE_LIMIT>;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class settime4(baseobj.BaseObj)
+.nf
+settime4(unpack)
+
+union switch settime4 (time_how4 set_it) {
+    case const.SET_TO_CLIENT_TIME4:
+        nfstime4 time;
+    default:
+        void;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class setxattr_option4(packet.utils.Enum)
+.nf
+setxattr_option4(unpack)
+
+enum setxattr_option4
+
+.fi
+.SS class specdata4(baseobj.BaseObj)
+.nf
+specdata4(unpack)
+
+struct specdata4 {
+    uint32_t specdata1;  /* major device number */
+    uint32_t specdata2;  /* minor device number */
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class ssa_digest_input4(baseobj.BaseObj)
+.nf
+ssa_digest_input4(unpack)
+
+struct ssa_digest_input4 {
+    SEQUENCE4args seqargs;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class ssr_digest_input4(baseobj.BaseObj)
+.nf
+ssr_digest_input4(unpack)
+
+struct ssr_digest_input4 {
+    SEQUENCE4res seqres;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class ssv_mic_plain_tkn4(baseobj.BaseObj)
+.nf
+ssv_mic_plain_tkn4(unpack)
+
+struct ssv_mic_plain_tkn4 {
+    uint32_t ssv_seq;
+    opaque   orig_plain<>;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class ssv_mic_tkn4(baseobj.BaseObj)
+.nf
+ssv_mic_tkn4(unpack)
+
+struct ssv_mic_tkn4 {
+    uint32_t ssv_seq;
+    opaque   hmac<>;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class ssv_prot_info4(baseobj.BaseObj)
+.nf
+ssv_prot_info4(unpack)
+
+struct ssv_prot_info4 {
+    state_protect_ops4 ops;
+    uint32_t           hash_alg;
+    uint32_t           encr_alg;
+    uint32_t           ssv_len;
+    uint32_t           window;
+    gsshandle4_t       handles<>;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class ssv_seal_cipher_tkn4(baseobj.BaseObj)
+.nf
+ssv_seal_cipher_tkn4(unpack)
+
+struct ssv_seal_cipher_tkn4 {
+    uint32_t ssv_seq;
+    opaque   iv<>;
+    opaque   encr_data<>;
+    opaque   hmac<>;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class ssv_seal_plain_tkn4(baseobj.BaseObj)
+.nf
+ssv_seal_plain_tkn4(unpack)
+
+struct ssv_seal_plain_tkn4 {
+    opaque   confounder<>;
+    uint32_t ssv_seq;
+    opaque   orig_plain<>;
+    opaque   pad<>;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class ssv_sp_parms4(baseobj.BaseObj)
+.nf
+ssv_sp_parms4(unpack)
+
+struct ssv_sp_parms4 {
+    state_protect_ops4 ops;
+    sec_oid4           hash_algs<>;
+    sec_oid4           encr_algs<>;
+    uint32_t           window;
+    uint32_t           num_gss_handles;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class ssv_subkey4(packet.utils.Enum)
+.nf
+ssv_subkey4(unpack)
+
+enum ssv_subkey4
+
+.fi
+.SS class stable_how4(packet.utils.Enum)
+.nf
+stable_how4(unpack)
+
+enum stable_how4
+
+.fi
+.SS class state_owner4(baseobj.BaseObj)
+.nf
+state_owner4(unpack)
+
+struct state_owner4 {
+    clientid4 clientid;
+    opaque    owner<NFS4_OPAQUE_LIMIT>;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class state_protect4_a(baseobj.BaseObj)
+.nf
+state_protect4_a(unpack)
+
+union switch state_protect4_a (state_protect_how4 how) {
+    case const.SP4_NONE:
+        void;
+    case const.SP4_MACH_CRED:
+        state_protect_ops4 mach_ops;
+    case const.SP4_SSV:
+        ssv_sp_parms4 ssv_parms;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class state_protect4_r(baseobj.BaseObj)
+.nf
+state_protect4_r(unpack)
+
+union switch state_protect4_r (state_protect_how4 how) {
+    case const.SP4_NONE:
+        void;
+    case const.SP4_MACH_CRED:
+        state_protect_ops4 mach_ops;
+    case const.SP4_SSV:
+        ssv_prot_info4 ssv_info;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class state_protect_how4(packet.utils.Enum)
+.nf
+state_protect_how4(unpack)
+
+enum state_protect_how4
+
+.fi
+.SS class state_protect_ops4(baseobj.BaseObj)
+.nf
+state_protect_ops4(unpack)
+
+struct state_protect_ops4 {
+    bitmap4 enforce_mask;
+    bitmap4 allow_mask;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class stateid4(baseobj.BaseObj)
+.nf
+stateid4(unpack)
+
+struct stateid4 {
+    uint32_t seqid;
+    opaque   other[NFS4_OTHER_SIZE];
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class th_item4(baseobj.BaseObj)
+.nf
+th_item4(unpack)
+
+struct th_item4 {
+    bitmap4 mask;
+    opaque  values<>;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class threshold_item4(baseobj.BaseObj)
+.nf
+threshold_item4(unpack)
+
+union switch threshold_item4 (layouttype4 type) {
+    case const.LAYOUT4_NFSV4_1_FILES:
+        nfsv4_1_file_th_item4 items;
+    default:
+        th_item4 items;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class time_how4(packet.utils.Enum)
+.nf
+time_how4(unpack)
+
+enum time_how4
+
+.fi
+.SS class why_no_delegation4(packet.utils.Enum)
+.nf
+why_no_delegation4(unpack)
+
+enum why_no_delegation4
+
+.fi
+.SS class write_response4(baseobj.BaseObj)
+.nf
+write_response4(unpack)
+
+struct write_response4 {
+    stateid4    stateid<1>;
+    length4     count;
+    stable_how4 committed;
+    verifier4   verifier;
+};
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SH FUNCTIONS
+.nf
+.B SECINFO4resok(unpack)
+.P
+.B aceflag4(unpack)
+.P
+.B acemask4(unpack)
+.P
+.B acetype4(unpack)
+.P
+.B aclflag4(unpack)
+.P
+.B bitmap4(unpack)
+.P
+.B changeid4(unpack)
+.P
+.B clientid4(unpack)
+.P
+.B deviceid4(unpack)
+.P
+.B fattr4(unpack)
+struct fattr4 {
+    bitmap4   mask;
+    attrlist4 values;
+};
+.P
+.B fattr4_acl(unpack)
+.P
+.B fattr4_change(unpack)
+.P
+.B fattr4_filehandle(unpack)
+.P
+.B fattr4_fs_layout_types(unpack)
+.P
+.B fattr4_layout_types(unpack)
+.P
+.B gsshandle4_t(unpack)
+.P
+.B multipath_list4(unpack)
+.P
+.B nfl_util4(unpack)
+.P
+.B nfs_fh4(unpack)
+.P
+.B nfsv4_1_file_th_item4(unpack)
+struct nfsv4_1_file_th_item4 {
+    bitmap4 mask;
+    opaque  values<>;
+};
+.P
+.B notifylist4(unpack)
+ Objects of type notify_<>4 and
+ notify_device_<>4 are encoded in this.
+.P
+.B pathname4(unpack)
+.P
+.B sec_oid4(unpack)
+.P
+.B sessionid4(unpack)
+.P
+.B verifier4(unpack)
+.SH SEE ALSO
+.BR baseobj(3),
+.BR packet.nfs.nfs4_const(3),
+.BR packet.nfs.nfsbase(3),
+.BR packet.unpack(3),
+.BR packet.utils(3)
+
+.SH BUGS
+No known bugs.
+.SH AUTHOR
+Jorge Mora (mora@netapp.com)
--- /dev/null
+++ nfstest-3.2/man/packet.transport.ib.3
@@ -0,0 +1,470 @@
+.\" DO NOT MODIFY THIS FILE!  It was generated by setup.py 1.2.
+.TH IB 3 "31 May 2026" "NFStest 3.2" "ib 1.2"
+.SH NAME
+packet.transport.ib - InfiniBand module
+.SH DESCRIPTION
+
+Decode InfiniBand layer.
+Reference: IB Specification Vol 1-Release-1.3-2015-03-03.pdf
+.SH CLASSES
+.SS class AETH(baseobj.BaseObj)
+.nf
+AETH(unpack)
+
+ACK EXTENDED TRANSPORT HEADER (AETH) - 4 BYTES
+
+ACK Extended Transport Header contains the additional transport fields
+for ACK packets. The AETH is only in Acknowledge, RDMA READ Response
+First, RDMA READ Response Last, and RDMA READ Response Only packets
+as indicated by the Base Transport Header OpCode field.
+
+AETH(
+    syndrome = int, # Syndrome indicates if this is an ACK or NAK
+                    # packet plus additional information about the
+                    # ACK or NAK
+    msn      = int, # Message Sequence Number indicates the sequence
+                    # number of the last message completed at the
+                    # responder
+)
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class AtomicAckETH(baseobj.BaseObj)
+.nf
+AtomicAckETH(unpack)
+
+ATOMIC ACKNOWLEDGE EXTENDED TRANSPORT HEADER (ATOMICACKETH) - 8 BYTES
+
+Atomic ACK Extended Transport Header contains the additional transport
+fields for AtomicACK packets. The AtomicAckETH is only in Atomic
+Acknowledge packets as indicated by the Base Transport Header OpCode
+field.
+
+AtomicAckETH(
+    orig_rem_dt = int, # Original Remote Data is the return operand
+                       # in atomic operations and contains the data
+                       # in the remote memory location before the
+                       # atomic operation
+)
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class AtomicETH(baseobj.BaseObj)
+.nf
+AtomicETH(unpack)
+
+ATOMIC EXTENDED TRANSPORT HEADER (ATOMICETH) - 28 BYTES
+
+Atomic Extended Transport Header contains the additional transport
+fields for Atomic packets. The AtomicETH is only in Atomic packets
+as indicated by the Base Transport Header OpCode field.
+
+AtomicETH(
+    va      = int, # Virtual Address: the remote virtual address
+    r_key   = int, # Remote Key that authorizes access to the remote
+                   # virtual address
+    swap_dt = int, # Swap/Add Data is an operand in atomic operations
+    cmp_dt  = int, # Compare Data is an operand in CmpSwap atomic
+                   # operation
+)
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class BTH(baseobj.BaseObj)
+.nf
+BTH(unpack)
+
+BASE TRANSPORT HEADER (BTH) - 12 BYTES
+
+Base Transport Header contains the fields for IBA transports.
+The presence of BTH is indicated by the Next Header field of
+the last previous header (i.e., either LRH:lnh or GRH:nxthdr
+depending on which was the last previous header).
+
+BTH(
+    opcode = int, # OpCode indicates the IBA packet type. It also
+                  # specifies which extension headers follow the BTH
+    se     = int, # Solicited Event, this bit indicates that an event
+                  # should be generated by the responder
+    migreq = int, # This bit is used to communicate migration state
+    padcnt = int, # Pad Count indicates how many extra bytes are added
+                  # to the payload to align to a 4 byte boundary
+    tver   = int, # Transport Header Version indicates the version of
+                  # the IBA Transport Headers
+    pkey   = int, # Partition Key indicates which logical Partition is
+                  # associated with this packet
+    destqp = int, # Destination QP indicates the Work Queue Pair Number
+                  # (QP) at the destination
+    ackreq = int, # Acknowledge Request, this bit is used to indicate
+                  # that an acknowledge (for this packet) should be
+                  # scheduled by the responder
+    psn    = int, # Packet Sequence Number is used to detect a missing
+                  # or duplicate Packet
+)
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class DETH(baseobj.BaseObj)
+.nf
+DETH(unpack)
+
+DATAGRAM EXTENDED TRANSPORT HEADER (DETH) - 8 BYTES
+
+Datagram Extended Transport Header contains the additional transport
+fields for datagram service. The DETH is only in datagram packets if
+indicated by the Base Transport Header OpCode field.
+
+DETH(
+    q_key  = int, # Queue Key is required to authorize access to the
+                  # receive queue
+    src_qp = int, # Source QP indicates the Work Queue Pair Number (QP)
+                  # at the source.
+)
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class GRH(baseobj.BaseObj)
+.nf
+GRH(unpack)
+
+GLOBAL ROUTE HEADER (GRH) - 40 BYTES
+
+Global Route Header contains fields for routing the packet between
+subnets. The presence of the GRH is indicated by the Link Next
+Header (LNH) field in the LRH. The layout of the GRH is the same as
+the IPv6 Header defined in RFC 2460. Note, however, that IBA does not
+define a relationship between a device GID and IPv6 address
+(i.e., there is no defined mapping between GID and IPv6 address for
+any IB device or port).
+
+GRH(
+    ipver  = int,      # IP Version indicates version of the GRH
+    tclass = int,      # Traffic Class is used by IBA to communicate
+                       # global service level
+    flabel = int,      # Flow Label identifies sequences of packets
+                       # requiring special handling
+    paylen = int,      # Payload length specifies the number of bytes
+                       # starting from the first byte after the GRH,
+                       # up to and including the last byte of the ICRC
+    nxthdr = int,      # Next Header identifies the header following the
+                       # GRH. This field is included for compatibility with
+                       # IPV6 headers. It should indicate IBA transport
+    hoplmt = int,      # Hop Limit sets a strict bound on the number of
+                       # hops between subnets a packet can make before
+                       # being discarded. This is enforced only by routers
+    sgid   = IPv6Addr, # Source GID identifies the Global Identifier
+                       # (GID) for the port which injected the packet
+                       # into the network
+    dgid   = IPv6Addr, # Destination GID identifies the GID for the port
+                       # which will consume the packet from the network
+)
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class IB(baseobj.BaseObj)
+.nf
+IB(pktt)
+
+InfiniBand (IB) object
+
+Usage:
+    from packet.transport.ib import IB
+
+    x = IB(pktt)
+
+Object definition:
+
+IB(
+    lrh          = LRH,          # Local Route Header
+    grh          = GRH,          # Global Route Header
+    bth          = BTH,          # Base Transport Header
+    rdeth        = RDETH,        # Reliable Datagram Extended Transport Header
+    deth         = DETH,         # Datagram Extended Transport Header
+    xrceth       = XRCETH,       # XRC Extended Transport Header
+    reth         = RETH,         # RDMA Extended Transport Header
+    atomiceth    = AtomicETH,    # Atomic Extended Transport Header
+    aeth         = AETH,         # ACK Extended Transport Header
+    atomicacketh = AtomicAckETH, # Atomic Acknowledge Extended Transport Header
+    immdt        = ImmDt,        # Immediate Extended Transport Header
+    ieth         = IETH,         # Invalidate Extended Transport Header
+    psize        = int,          # Payload data size
+    icrc         = int,          # Invariant CRC
+    vcrc         = int,          # Variant CRC
+)
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __bool__(self)
+Truth value testing for the built-in operation bool()
+.P
+.B __init__(self, pktt)
+Constructor
+
+Initialize object's private data.
+
+.RS
+.TP
+.B
+pktt:
+Packet trace object (packet.pktt.Pktt) so this layer has
+access to the parent layers.
+.RE
+.fi
+.SS class IETH(baseobj.BaseObj)
+.nf
+IETH(unpack)
+
+INVALIDATE EXTENDED TRANSPORT HEADER (IETH) - 4 BYTES
+
+The Invalidate Extended Transport Header contains an R_Key field which
+is used by the responder to invalidate a memory region or memory window
+once it receives and executes the SEND with Invalidate request.
+
+IETH(
+    r_key = int, # The SEND with Invalidate operation carries with it
+                 # an R_Key field. This R_Key is used by the responder
+                 # to invalidate a memory region or memory window once
+                 # it receives and executes the SEND with Invalidate
+                 # request
+)
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class ImmDt(baseobj.BaseObj)
+.nf
+ImmDt(unpack)
+
+IMMEDIATE DATA EXTENDED TRANSPORT HEADER (IMMDT) - 4 BYTES
+
+Immediate DataExtended Transport Header contains the additional data
+that is placed in the receive Completion Queue Element (CQE).
+The ImmDt is only in Send or RDMA-Write packets with Immediate Data
+if indicated by the Base Transport Header OpCode.
+
+Note, the terms Immediate Data Extended Transport Header and Immediate
+Data Header are used synonymously in the specification.
+
+ImmDt(
+    imm_dt = int, # Immediate Data contains data that is placed in the
+                  # receive Completion Queue Element (CQE). The ImmDt is
+                  # only allowed in SEND or RDMA WRITE packets with
+                  # Immediate Data
+)
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class LRH(baseobj.BaseObj)
+.nf
+LRH(unpack)
+
+LOCAL ROUTE HEADER (LRH) - 8 BYTES
+
+The Local Routing Header contains fields used for local routing
+by switches within a IBA subnet.
+
+LRH(
+    vl   = int, # Virtual Lane that the packet is using
+    lver = int, # Link Version of LRH
+    sl   = int, # Service Level the packet is requesting within the subnet
+    lnh  = int, # Link Next Header identifies the headers following the LRH
+    dlid = int, # Destination Local ID identifies the destination port
+                # and path (data sink) on the local subnet
+    plen = int, # Packet Length identifies the size of the packet in
+                # four-byte words. This field includes the first byte of
+                # LRH to the last byte before the variant CRC
+    slid = int, # Source Local ID identifies the source port
+                # (injection point) on the local subnet
+)
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class OpCode(builtins.int)
+.nf
+OpCode object, this is an integer in which its informal
+string representation is given as the OpCode name
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __str__(self)
+Return str(self).
+.fi
+.SS class RDETH(baseobj.BaseObj)
+.nf
+RDETH(unpack)
+
+RELIABLE DATAGRAM EXTENDED TRANSPORT HEADER (RDETH) - 4 BYTES
+
+Reliable Datagram Extended Transport Header contains the additional
+transport fields for reliable datagram service. The RDETH is only
+in Reliable Datagram packets as indicated by the Base Transport Header
+OpCode field.
+
+RDETH(
+    ee_context = int, # EE-Context indicates which End-to-End Context
+                      # should be used for this Reliable Datagram packet
+)
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class RETH(baseobj.BaseObj)
+.nf
+RETH(unpack)
+
+RDMA EXTENDED TRANSPORT HEADER (RETH) - 16 BYTES
+
+RDMA Extended Transport Header contains the additional transport fields
+for RDMA operations. The RETH is present in only the first (or only)
+packet of an RDMA Request as indicated by the Base Transport Header
+OpCode field.
+
+RETH(
+    va      = int, # Virtual Address of the RDMA operation
+    r_key   = int, # Remote Key that authorizes access for the RDMA
+                   # operation
+    dma_len = int, # DMA Length indicates the length (in Bytes) of
+                   # the DMA operation.
+)
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SS class XRCETH(baseobj.BaseObj)
+.nf
+XRCETH(unpack)
+
+XRC EXTENDED TRANSPORT HEADER (XRCETH)
+
+XRC Extended Transport Header contains the Destination XRC SRQ
+identifier.
+XRCETH(
+    xrcsrq = int, # XRC Shared Receive Queue indicates the XRC Shared
+                  # Receive Queue number to be used by the responder
+                  # for this packet
+)
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, unpack)
+Constructor
+
+Initialize object's private data according to the arguments given.
+Arguments can be given as positional, named arguments or a
+combination of both.
+.fi
+.SH SEE ALSO
+.BR baseobj(3),
+.BR packet.application.rpc(3),
+.BR packet.application.rpcordma(3),
+.BR packet.application.rpcordma_const(3),
+.BR packet.internet.ipv6addr(3),
+.BR packet.unpack(3),
+.BR packet.utils(3)
+
+.SH BUGS
+No known bugs.
+.SH AUTHOR
+Jorge Mora (mora@netapp.com)
--- /dev/null
+++ nfstest-3.2/man/packet.transport.rdmap.3
@@ -0,0 +1,82 @@
+.\" DO NOT MODIFY THIS FILE!  It was generated by setup.py 1.2.
+.TH RDMAP 3 "31 May 2026" "NFStest 3.2" "rdmap 1.0"
+.SH NAME
+packet.transport.rdmap - RDMAP module
+.SH DESCRIPTION
+
+Decode RDMAP layer.
+
+RFC 5040 Remote Direct Memory Access Protocol Specification
+.SH CLASSES
+.SS class OpCode(packet.utils.Enum)
+.nf
+OpCode(unpack)
+
+enum OpCode
+
+.fi
+.SS class RDMAP(baseobj.BaseObj)
+.nf
+RDMAP(pktt, pinfo)
+
+RDMAP object
+
+Usage:
+    from packet.transport.rdmap import RDMAP
+
+    x = RDMAP(pktt, pinfo)
+
+Object definition:
+
+RDMAP(
+    version = int,  # RDMA Protocol version
+    opcode  = int,  # RDMA OpCode
+    psize   = int,  # Payload Size
+    [ # Only valid for Send with Invalidate and Send with Solicited Event
+      # and Invalidate Messages
+        istag = int,  # Invalidate STag
+    ]
+    [ # RDMA Read Request Header
+        sinkstag = int,  # Data Sink STag
+        sinksto  = int,  # Data Sink Tagged Offset
+        dma_len  = int,  # RDMA Read Message Size
+        srcstag  = int,  # Data Source STag
+        srcsto   = int,  # Data Source Tagged Offset
+    ]
+)
+
+.P
+.B Methods defined here:
+---------------------
+.P
+.B __init__(self, pktt, pinfo)
+    Constructor
+
+    Initialize object's private data.
+
+    pktt:
+        Packet trace object (packet.pktt.Pktt) so this layer has
+        access to the parent layers.
+    pinfo:
+        List of two integers: [RDMAP control, Invalidate STag].
+
+Readonly properties defined here:
+
+lastfl
+
+offset
+
+stag
+.fi
+.SH SEE ALSO
+.BR baseobj(3),
+.BR packet.application.rpc(3),
+.BR packet.application.rpcordma(3),
+.BR packet.application.rpcordma_const(3),
+.BR packet.unpack(3),
+.BR packet.utils(3)
+
+.SH BUGS
+No known bugs.
+.SH AUTHOR
+Jorge Mora (mora@netapp.com)
--- nfstest-3.2.orig/packet/pktt.py
+++ nfstest-3.2/packet/pktt.py
@@ -902,7 +902,7 @@ class Pktt(BaseObj):
                Returns:
                "self.match_nfs('crc32(nfs.fh) == 257433321')"
 
-               expr = "re.search(r'192\..*', ip.src)"
+               expr = r"re.search(r'192\\..*', ip.src)"
                data = self._convert_match(expr)
                Returns:
                "self.match_pkt(\"re.search('192\\\\..*', self.pkt.ip.src)\")"
@@ -1071,7 +1071,7 @@ class Pktt(BaseObj):
 
                # Find all packets coming from subnet 192.168.1.0/24 using
                # a regular expression
-               while x.match(r"re.search('192\.168\.1\.\d*', IP.src)"):
+               while x.match(r"re.search('192\\.168\\.1\\.\\d+', IP.src)"):
                    print x.pkt.tcp
 
                # Find packet having a GETATTR asking for FATTR4_FS_LAYOUT_TYPES(bit 62)
