---
name: "packet.nfs.nfs3"
section: "3"
platform: "linux"
package: "nfstest"
version: "3.2-3"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/packet.nfs.nfs3"
---

# packet.nfs.nfs3(3)

NFSv3 decoding module

## NAME

packet.nfs.nfs3 - NFSv3 decoding module

## CLASSES

### class ACCESS3args(baseobj.BaseObj)

```
struct ACCESS3args {
    nfs_fh3 fh;
    access3 access;
};
```

**Methods defined here:** ---------------------

**\_\_init\_\_(self, unpack)** Constructor

Initialize object's private data according to the arguments given. Arguments can be given as positional, named arguments or a combination of both.

### class ACCESS3res(baseobj.BaseObj)

```
union switch ACCESS3res (nfsstat3 status) {
    case const.NFS3_OK:
        ACCESS3resok resok;
    default:
        ACCESS3resfail resfail;
};
```

**Methods defined here:** ---------------------

**\_\_init\_\_(self, unpack)** Constructor

Initialize object's private data according to the arguments given. Arguments can be given as positional, named arguments or a combination of both.

### class ACCESS3resfail(baseobj.BaseObj)

```
struct ACCESS3resfail {
    post_op_attr attributes;
};
```

**Methods defined here:** ---------------------

**\_\_init\_\_(self, unpack)** Constructor

Initialize object's private data according to the arguments given. Arguments can be given as positional, named arguments or a combination of both.

### class ACCESS3resok(baseobj.BaseObj)

```
struct ACCESS3resok {
    post_op_attr attributes;
    access3      access;
};
```

**Methods defined here:** ---------------------

**\_\_init\_\_(self, unpack)** Constructor

Initialize object's private data according to the arguments given. Arguments can be given as positional, named arguments or a combination of both.

### class COMMIT3args(baseobj.BaseObj)

```
struct COMMIT3args {
    nfs_fh3 fh;
    offset3 offset;
    count3  count;
};
```

**Methods defined here:** ---------------------

**\_\_init\_\_(self, unpack)** Constructor

Initialize object's private data according to the arguments given. Arguments can be given as positional, named arguments or a combination of both.

### class COMMIT3res(baseobj.BaseObj)

```
union switch COMMIT3res (nfsstat3 status) {
    case const.NFS3_OK:
        COMMIT3resok resok;
    default:
        COMMIT3resfail resfail;
};
```

**Methods defined here:** ---------------------

**\_\_init\_\_(self, unpack)** Constructor

Initialize object's private data according to the arguments given. Arguments can be given as positional, named arguments or a combination of both.

### class COMMIT3resfail(baseobj.BaseObj)

```
struct COMMIT3resfail {
    wcc_data wcc;
};
```

**Methods defined here:** ---------------------

**\_\_init\_\_(self, unpack)** Constructor

Initialize object's private data according to the arguments given. Arguments can be given as positional, named arguments or a combination of both.

### class COMMIT3resok(baseobj.BaseObj)

```
struct COMMIT3resok {
    wcc_data   wcc;
    writeverf3 verifier;
};
```

**Methods defined here:** ---------------------

**\_\_init\_\_(self, unpack)** Constructor

Initialize object's private data according to the arguments given. Arguments can be given as positional, named arguments or a combination of both.

### class CREATE3args(baseobj.BaseObj)

```
struct CREATE3args {
    diropargs3 where;
    createhow3 how;
};
```

**Methods defined here:** ---------------------

**\_\_init\_\_(self, unpack)** Constructor

Initialize object's private data according to the arguments given. Arguments can be given as positional, named arguments or a combination of both.

### class CREATE3res(baseobj.BaseObj)

```
union switch CREATE3res (nfsstat3 status) {
    case const.NFS3_OK:
        CREATE3resok resok;
    default:
        CREATE3resfail resfail;
};
```

**Methods defined here:** ---------------------

**\_\_init\_\_(self, unpack)** Constructor

Initialize object's private data according to the arguments given. Arguments can be given as positional, named arguments or a combination of both.

### class CREATE3resfail(baseobj.BaseObj)

```
struct CREATE3resfail {
    wcc_data wcc;
};
```

**Methods defined here:** ---------------------

**\_\_init\_\_(self, unpack)** Constructor

Initialize object's private data according to the arguments given. Arguments can be given as positional, named arguments or a combination of both.

### class CREATE3resok(baseobj.BaseObj)

```
struct CREATE3resok {
    post_op_fh3  obj;
    post_op_attr attributes;
    wcc_data     wcc;
};
```

**Methods defined here:** ---------------------

**\_\_init\_\_(self, unpack)** Constructor

Initialize object's private data according to the arguments given. Arguments can be given as positional, named arguments or a combination of both.

### class FSINFO3args(baseobj.BaseObj)

```
struct FSINFO3args {
    nfs_fh3 fh;
};
```

**Methods defined here:** ---------------------

**\_\_init\_\_(self, unpack)** Constructor

Initialize object's private data according to the arguments given. Arguments can be given as positional, named arguments or a combination of both.

### class FSINFO3res(baseobj.BaseObj)

```
union switch FSINFO3res (nfsstat3 status) {
    case const.NFS3_OK:
        FSINFO3resok resok;
    default:
        FSINFO3resfail resfail;
};
```

**Methods defined here:** ---------------------

**\_\_init\_\_(self, unpack)** Constructor

Initialize object's private data according to the arguments given. Arguments can be given as positional, named arguments or a combination of both.

### class FSINFO3resfail(baseobj.BaseObj)

```
struct FSINFO3resfail {
    post_op_attr attributes;
};
```

**Methods defined here:** ---------------------

**\_\_init\_\_(self, unpack)** Constructor

Initialize object's private data according to the arguments given. Arguments can be given as positional, named arguments or a combination of both.

### class FSINFO3resok(baseobj.BaseObj)

```
struct FSINFO3resok {
    post_op_attr attributes;
    uint32       rtmax;
    uint32       rtpref;
    uint32       rtmult;
    uint32       wtmax;
    uint32       wtpref;
    uint32       wtmult;
    uint32       dtpref;
    size3        maxfilesize;
    nfstime3     time_delta;
    uint32       properties;
};
```

**Methods defined here:** ---------------------

**\_\_init\_\_(self, unpack)** Constructor

Initialize object's private data according to the arguments given. Arguments can be given as positional, named arguments or a combination of both.

### class FSSTAT3args(baseobj.BaseObj)

```
struct FSSTAT3args {
    nfs_fh3 fh;
};
```

**Methods defined here:** ---------------------

**\_\_init\_\_(self, unpack)** Constructor

Initialize object's private data according to the arguments given. Arguments can be given as positional, named arguments or a combination of both.

### class FSSTAT3res(baseobj.BaseObj)

```
union switch FSSTAT3res (nfsstat3 status) {
    case const.NFS3_OK:
        FSSTAT3resok resok;
    default:
        FSSTAT3resfail resfail;
};
```

**Methods defined here:** ---------------------

**\_\_init\_\_(self, unpack)** Constructor

Initialize object's private data according to the arguments given. Arguments can be given as positional, named arguments or a combination of both.

### class FSSTAT3resfail(baseobj.BaseObj)

```
struct FSSTAT3resfail {
    post_op_attr attributes;
};
```

**Methods defined here:** ---------------------

**\_\_init\_\_(self, unpack)** Constructor

Initialize object's private data according to the arguments given. Arguments can be given as positional, named arguments or a combination of both.

### class FSSTAT3resok(baseobj.BaseObj)

```
struct FSSTAT3resok {
    post_op_attr attributes;
    size3        tbytes;
    size3        fbytes;
    size3        abytes;
    size3        tfiles;
    size3        ffiles;
    size3        afiles;
    uint32       invarsec;
};
```

**Methods defined here:** ---------------------

**\_\_init\_\_(self, unpack)** Constructor

Initialize object's private data according to the arguments given. Arguments can be given as positional, named arguments or a combination of both.

### class GETATTR3args(baseobj.BaseObj)

```
struct GETATTR3args {
    nfs_fh3 fh;
};
```

**Methods defined here:** ---------------------

**\_\_init\_\_(self, unpack)** Constructor

Initialize object's private data according to the arguments given. Arguments can be given as positional, named arguments or a combination of both.

### class GETATTR3res(baseobj.BaseObj)

```
union switch GETATTR3res (nfsstat3 status) {
    case const.NFS3_OK:
        GETATTR3resok resok;
    default:
        void;
};
```

**Methods defined here:** ---------------------

**\_\_init\_\_(self, unpack)** Constructor

Initialize object's private data according to the arguments given. Arguments can be given as positional, named arguments or a combination of both.

### class GETATTR3resok(baseobj.BaseObj)

```
struct GETATTR3resok {
    fattr3 attributes;
};
```

**Methods defined here:** ---------------------

**\_\_init\_\_(self, unpack)** Constructor

Initialize object's private data according to the arguments given. Arguments can be given as positional, named arguments or a combination of both.

### class LINK3args(baseobj.BaseObj)

```
struct LINK3args {
    nfs_fh3    fh;
    diropargs3 link;
};
```

**Methods defined here:** ---------------------

**\_\_init\_\_(self, unpack)** Constructor

Initialize object's private data according to the arguments given. Arguments can be given as positional, named arguments or a combination of both.

### class LINK3res(baseobj.BaseObj)

```
union switch LINK3res (nfsstat3 status) {
    case const.NFS3_OK:
        LINK3resok resok;
    default:
        LINK3resfail resfail;
};
```

**Methods defined here:** ---------------------

**\_\_init\_\_(self, unpack)** Constructor

Initialize object's private data according to the arguments given. Arguments can be given as positional, named arguments or a combination of both.

### class LINK3resfail(baseobj.BaseObj)

```
struct LINK3resfail {
    post_op_attr attributes;
    wcc_data     wcc;
};
```

**Methods defined here:** ---------------------

**\_\_init\_\_(self, unpack)** Constructor

Initialize object's private data according to the arguments given. Arguments can be given as positional, named arguments or a combination of both.

### class LINK3resok(baseobj.BaseObj)

```
struct LINK3resok {
    post_op_attr attributes;
    wcc_data     wcc;
};
```

**Methods defined here:** ---------------------

**\_\_init\_\_(self, unpack)** Constructor

Initialize object's private data according to the arguments given. Arguments can be given as positional, named arguments or a combination of both.

### class LOOKUP3args(baseobj.BaseObj)

```
struct LOOKUP3args {
    diropargs3 what;
};
```

**Methods defined here:** ---------------------

**\_\_init\_\_(self, unpack)** Constructor

Initialize object's private data according to the arguments given. Arguments can be given as positional, named arguments or a combination of both.

### class LOOKUP3res(baseobj.BaseObj)

```
union switch LOOKUP3res (nfsstat3 status) {
    case const.NFS3_OK:
        LOOKUP3resok resok;
    default:
        LOOKUP3resfail resfail;
};
```

**Methods defined here:** ---------------------

**\_\_init\_\_(self, unpack)** Constructor

Initialize object's private data according to the arguments given. Arguments can be given as positional, named arguments or a combination of both.

### class LOOKUP3resfail(baseobj.BaseObj)

```
struct LOOKUP3resfail {
    post_op_attr dir_attributes;
};
```

**Methods defined here:** ---------------------

**\_\_init\_\_(self, unpack)** Constructor

Initialize object's private data according to the arguments given. Arguments can be given as positional, named arguments or a combination of both.

### class LOOKUP3resok(baseobj.BaseObj)

```
struct LOOKUP3resok {
    nfs_fh3      fh;
    post_op_attr attributes;
    post_op_attr dir_attributes;
};
```

**Methods defined here:** ---------------------

**\_\_init\_\_(self, unpack)** Constructor

Initialize object's private data according to the arguments given. Arguments can be given as positional, named arguments or a combination of both.

### class MKDIR3args(baseobj.BaseObj)

```
struct MKDIR3args {
    diropargs3 where;
    sattr3     attributes;
};
```

**Methods defined here:** ---------------------

**\_\_init\_\_(self, unpack)** Constructor

Initialize object's private data according to the arguments given. Arguments can be given as positional, named arguments or a combination of both.

### class MKDIR3res(baseobj.BaseObj)

```
union switch MKDIR3res (nfsstat3 status) {
    case const.NFS3_OK:
        MKDIR3resok resok;
    default:
        MKDIR3resfail resfail;
};
```

**Methods defined here:** ---------------------

**\_\_init\_\_(self, unpack)** Constructor

Initialize object's private data according to the arguments given. Arguments can be given as positional, named arguments or a combination of both.

### class MKDIR3resfail(baseobj.BaseObj)

```
struct MKDIR3resfail {
    wcc_data wcc;
};
```

**Methods defined here:** ---------------------

**\_\_init\_\_(self, unpack)** Constructor

Initialize object's private data according to the arguments given. Arguments can be given as positional, named arguments or a combination of both.

### class MKDIR3resok(baseobj.BaseObj)

```
struct MKDIR3resok {
    post_op_fh3  obj;
    post_op_attr attributes;
    wcc_data     wcc;
};
```

**Methods defined here:** ---------------------

**\_\_init\_\_(self, unpack)** Constructor

Initialize object's private data according to the arguments given. Arguments can be given as positional, named arguments or a combination of both.

### class MKNOD3args(baseobj.BaseObj)

```
struct MKNOD3args {
    diropargs3 where;
    mknoddata3 what;
};
```

**Methods defined here:** ---------------------

**\_\_init\_\_(self, unpack)** Constructor

Initialize object's private data according to the arguments given. Arguments can be given as positional, named arguments or a combination of both.

### class MKNOD3res(baseobj.BaseObj)

```
union switch MKNOD3res (nfsstat3 status) {
    case const.NFS3_OK:
        MKNOD3resok resok;
    default:
        MKNOD3resfail resfail;
};
```

**Methods defined here:** ---------------------

**\_\_init\_\_(self, unpack)** Constructor

Initialize object's private data according to the arguments given. Arguments can be given as positional, named arguments or a combination of both.

### class MKNOD3resfail(baseobj.BaseObj)

```
struct MKNOD3resfail {
    wcc_data wcc;
};
```

**Methods defined here:** ---------------------

**\_\_init\_\_(self, unpack)** Constructor

Initialize object's private data according to the arguments given. Arguments can be given as positional, named arguments or a combination of both.

### class MKNOD3resok(baseobj.BaseObj)

```
struct MKNOD3resok {
    post_op_fh3  obj;
    post_op_attr attributes;
    wcc_data     wcc;
};
```

**Methods defined here:** ---------------------

**\_\_init\_\_(self, unpack)** Constructor

Initialize object's private data according to the arguments given. Arguments can be given as positional, named arguments or a combination of both.

### class NFS3args(packet.utils.RPCload)

```
union switch NFS3args (nfs_proc3 procedure) {
    case const.NFSPROC3_NULL:
        void;
    case const.NFSPROC3_GETATTR:
        GETATTR3args opgetattr;
    case const.NFSPROC3_SETATTR:
        SETATTR3args opsetattr;
    case const.NFSPROC3_LOOKUP:
        LOOKUP3args oplookup;
    case const.NFSPROC3_ACCESS:
        ACCESS3args opaccess;
    case const.NFSPROC3_READLINK:
        READLINK3args opreadlink;
    case const.NFSPROC3_READ:
        READ3args opread;
    case const.NFSPROC3_WRITE:
        WRITE3args opwrite;
    case const.NFSPROC3_CREATE:
        CREATE3args opcreate;
    case const.NFSPROC3_MKDIR:
        MKDIR3args opmkdir;
    case const.NFSPROC3_SYMLINK:
        SYMLINK3args opsymlink;
    case const.NFSPROC3_MKNOD:
        MKNOD3args opmknod;
    case const.NFSPROC3_REMOVE:
        REMOVE3args opremove;
    case const.NFSPROC3_RMDIR:
        RMDIR3args oprmdir;
    case const.NFSPROC3_RENAME:
        RENAME3args oprename;
    case const.NFSPROC3_LINK:
        LINK3args oplink;
    case const.NFSPROC3_READDIR:
        READDIR3args opreaddir;
    case const.NFSPROC3_READDIRPLUS:
        READDIRPLUS3args opreaddirplus;
    case const.NFSPROC3_FSSTAT:
        FSSTAT3args opfsstat;
    case const.NFSPROC3_FSINFO:
        FSINFO3args opfsinfo;
    case const.NFSPROC3_PATHCONF:
        PATHCONF3args oppathconf;
    case const.NFSPROC3_COMMIT:
        COMMIT3args opcommit;
};
```

**Methods defined here:** ---------------------

**\_\_init\_\_(self, unpack, procedure)** Constructor

Initialize object's private data according to the arguments given. Arguments can be given as positional, named arguments or a combination of both.

### class NFS3res(packet.utils.RPCload)

```
union switch NFS3res (nfs_proc3 procedure) {
    case const.NFSPROC3_NULL:
        void;
    case const.NFSPROC3_GETATTR:
        GETATTR3res opgetattr;
    case const.NFSPROC3_SETATTR:
        SETATTR3res opsetattr;
    case const.NFSPROC3_LOOKUP:
        LOOKUP3res oplookup;
    case const.NFSPROC3_ACCESS:
        ACCESS3res opaccess;
    case const.NFSPROC3_READLINK:
        READLINK3res opreadlink;
    case const.NFSPROC3_READ:
        READ3res opread;
    case const.NFSPROC3_WRITE:
        WRITE3res opwrite;
    case const.NFSPROC3_CREATE:
        CREATE3res opcreate;
    case const.NFSPROC3_MKDIR:
        MKDIR3res opmkdir;
    case const.NFSPROC3_SYMLINK:
        SYMLINK3res opsymlink;
    case const.NFSPROC3_MKNOD:
        MKNOD3res opmknod;
    case const.NFSPROC3_REMOVE:
        REMOVE3res opremove;
    case const.NFSPROC3_RMDIR:
        RMDIR3res oprmdir;
    case const.NFSPROC3_RENAME:
        RENAME3res oprename;
    case const.NFSPROC3_LINK:
        LINK3res oplink;
    case const.NFSPROC3_READDIR:
        READDIR3res opreaddir;
    case const.NFSPROC3_READDIRPLUS:
        READDIRPLUS3res opreaddirplus;
    case const.NFSPROC3_FSSTAT:
        FSSTAT3res opfsstat;
    case const.NFSPROC3_FSINFO:
        FSINFO3res opfsinfo;
    case const.NFSPROC3_PATHCONF:
        PATHCONF3res oppathconf;
    case const.NFSPROC3_COMMIT:
        COMMIT3res opcommit;
};
```

**Methods defined here:** ---------------------

**\_\_init\_\_(self, unpack, procedure)** Constructor

Initialize object's private data according to the arguments given. Arguments can be given as positional, named arguments or a combination of both.

### class PATHCONF3args(baseobj.BaseObj)

```
struct PATHCONF3args {
    nfs_fh3 fh;
};
```

**Methods defined here:** ---------------------

**\_\_init\_\_(self, unpack)** Constructor

Initialize object's private data according to the arguments given. Arguments can be given as positional, named arguments or a combination of both.

### class PATHCONF3res(baseobj.BaseObj)

```
union switch PATHCONF3res (nfsstat3 status) {
    case const.NFS3_OK:
        PATHCONF3resok resok;
    default:
        PATHCONF3resfail resfail;
};
```

**Methods defined here:** ---------------------

**\_\_init\_\_(self, unpack)** Constructor

Initialize object's private data according to the arguments given. Arguments can be given as positional, named arguments or a combination of both.

### class PATHCONF3resfail(baseobj.BaseObj)

```
struct PATHCONF3resfail {
    post_op_attr attributes;
};
```

**Methods defined here:** ---------------------

**\_\_init\_\_(self, unpack)** Constructor

Initialize object's private data according to the arguments given. Arguments can be given as positional, named arguments or a combination of both.

### class PATHCONF3resok(baseobj.BaseObj)

```
struct PATHCONF3resok {
    post_op_attr attributes;
    uint32       linkmax;
    uint32       name_max;
    bool         no_trunc;
    bool         chown_restricted;
    bool         case_insensitive;
    bool         case_preserving;
};
```

**Methods defined here:** ---------------------

**\_\_init\_\_(self, unpack)** Constructor

Initialize object's private data according to the arguments given. Arguments can be given as positional, named arguments or a combination of both.

### class READ3args(baseobj.BaseObj)

```
struct READ3args {
    nfs_fh3 fh;
    offset3 offset;
    count3  count;
};
```

**Methods defined here:** ---------------------

**\_\_init\_\_(self, unpack)** Constructor

Initialize object's private data according to the arguments given. Arguments can be given as positional, named arguments or a combination of both.

### class READ3res(baseobj.BaseObj)

```
union switch READ3res (nfsstat3 status) {
    case const.NFS3_OK:
        READ3resok resok;
    default:
        READ3resfail resfail;
};
```

**Methods defined here:** ---------------------

**\_\_init\_\_(self, unpack)** Constructor

Initialize object's private data according to the arguments given. Arguments can be given as positional, named arguments or a combination of both.

### class READ3resfail(baseobj.BaseObj)

```
struct READ3resfail {
    post_op_attr file_attributes;
};
```

**Methods defined here:** ---------------------

**\_\_init\_\_(self, unpack)** Constructor

Initialize object's private data according to the arguments given. Arguments can be given as positional, named arguments or a combination of both.

### class READ3resok(packet.utils.RDMAbase)

```
struct READ3resok {
    post_op_attr attributes;
    count3       count;
    bool         eof;
    opaque       data<>;
};
```

**Methods defined here:** ---------------------

**\_\_init\_\_(self, unpack)** Constructor

Initialize object's private data according to the arguments given. Arguments can be given as positional, named arguments or a combination of both.

### class READDIR3args(baseobj.BaseObj)

```
struct READDIR3args {
    nfs_fh3     fh;
    cookie3     cookie;
    cookieverf3 verifier;
    count3      count;
};
```

**Methods defined here:** ---------------------

**\_\_init\_\_(self, unpack)** Constructor

Initialize object's private data according to the arguments given. Arguments can be given as positional, named arguments or a combination of both.

### class READDIR3res(baseobj.BaseObj)

```
union switch READDIR3res (nfsstat3 status) {
    case const.NFS3_OK:
        READDIR3resok resok;
    default:
        READDIR3resfail resfail;
};
```

**Methods defined here:** ---------------------

**\_\_init\_\_(self, unpack)** Constructor

Initialize object's private data according to the arguments given. Arguments can be given as positional, named arguments or a combination of both.

### class READDIR3resfail(baseobj.BaseObj)

```
struct READDIR3resfail {
    post_op_attr attributes;
};
```

**Methods defined here:** ---------------------

**\_\_init\_\_(self, unpack)** Constructor

Initialize object's private data according to the arguments given. Arguments can be given as positional, named arguments or a combination of both.

### class READDIR3resok(baseobj.BaseObj)

```
struct READDIR3resok {
    post_op_attr attributes;
    cookieverf3  verifier;
    dirlist3     reply;
};
```

**Methods defined here:** ---------------------

**\_\_init\_\_(self, unpack)** Constructor

Initialize object's private data according to the arguments given. Arguments can be given as positional, named arguments or a combination of both.

### class READDIRPLUS3args(baseobj.BaseObj)

```
struct READDIRPLUS3args {
    nfs_fh3     fh;
    cookie3     cookie;
    cookieverf3 verifier;
    count3      dircount;
    count3      maxcount;
};
```

**Methods defined here:** ---------------------

**\_\_init\_\_(self, unpack)** Constructor

Initialize object's private data according to the arguments given. Arguments can be given as positional, named arguments or a combination of both.

### class READDIRPLUS3res(baseobj.BaseObj)

```
union switch READDIRPLUS3res (nfsstat3 status) {
    case const.NFS3_OK:
        READDIRPLUS3resok resok;
    default:
        READDIRPLUS3resfail resfail;
};
```

**Methods defined here:** ---------------------

**\_\_init\_\_(self, unpack)** Constructor

Initialize object's private data according to the arguments given. Arguments can be given as positional, named arguments or a combination of both.

### class READDIRPLUS3resfail(baseobj.BaseObj)

```
struct READDIRPLUS3resfail {
    post_op_attr attributes;
};
```

**Methods defined here:** ---------------------

**\_\_init\_\_(self, unpack)** Constructor

Initialize object's private data according to the arguments given. Arguments can be given as positional, named arguments or a combination of both.

### class READDIRPLUS3resok(baseobj.BaseObj)

```
struct READDIRPLUS3resok {
    post_op_attr attributes;
    cookieverf3  verifier;
    dirlistplus3 reply;
};
```

**Methods defined here:** ---------------------

**\_\_init\_\_(self, unpack)** Constructor

Initialize object's private data according to the arguments given. Arguments can be given as positional, named arguments or a combination of both.

### class READLINK3args(baseobj.BaseObj)

```
struct READLINK3args {
    nfs_fh3 fh;
};
```

**Methods defined here:** ---------------------

**\_\_init\_\_(self, unpack)** Constructor

Initialize object's private data according to the arguments given. Arguments can be given as positional, named arguments or a combination of both.

### class READLINK3res(baseobj.BaseObj)

```
union switch READLINK3res (nfsstat3 status) {
    case const.NFS3_OK:
        READLINK3resok resok;
    default:
        READLINK3resfail resfail;
};
```

**Methods defined here:** ---------------------

**\_\_init\_\_(self, unpack)** Constructor

Initialize object's private data according to the arguments given. Arguments can be given as positional, named arguments or a combination of both.

### class READLINK3resfail(baseobj.BaseObj)

```
struct READLINK3resfail {
    post_op_attr attributes;
};
```

**Methods defined here:** ---------------------

**\_\_init\_\_(self, unpack)** Constructor

Initialize object's private data according to the arguments given. Arguments can be given as positional, named arguments or a combination of both.

### class READLINK3resok(packet.utils.RDMAbase)

```
struct READLINK3resok {
    post_op_attr attributes;
    nfspath3     link;
};
```

**Methods defined here:** ---------------------

**\_\_init\_\_(self, unpack)** Constructor

Initialize object's private data according to the arguments given. Arguments can be given as positional, named arguments or a combination of both.

### class REMOVE3args(baseobj.BaseObj)

```
struct REMOVE3args {
    diropargs3 object;
};
```

**Methods defined here:** ---------------------

**\_\_init\_\_(self, unpack)** Constructor

Initialize object's private data according to the arguments given. Arguments can be given as positional, named arguments or a combination of both.

### class REMOVE3res(baseobj.BaseObj)

```
union switch REMOVE3res (nfsstat3 status) {
    case const.NFS3_OK:
        REMOVE3resok resok;
    default:
        REMOVE3resfail resfail;
};
```

**Methods defined here:** ---------------------

**\_\_init\_\_(self, unpack)** Constructor

Initialize object's private data according to the arguments given. Arguments can be given as positional, named arguments or a combination of both.

### class REMOVE3resfail(baseobj.BaseObj)

```
struct REMOVE3resfail {
    wcc_data wcc;
};
```

**Methods defined here:** ---------------------

**\_\_init\_\_(self, unpack)** Constructor

Initialize object's private data according to the arguments given. Arguments can be given as positional, named arguments or a combination of both.

### class REMOVE3resok(baseobj.BaseObj)

```
struct REMOVE3resok {
    wcc_data wcc;
};
```

**Methods defined here:** ---------------------

**\_\_init\_\_(self, unpack)** Constructor

Initialize object's private data according to the arguments given. Arguments can be given as positional, named arguments or a combination of both.

### class RENAME3args(baseobj.BaseObj)

```
struct RENAME3args {
    diropargs3 nfrom;
    diropargs3 nto;
};
```

**Methods defined here:** ---------------------

**\_\_init\_\_(self, unpack)** Constructor

Initialize object's private data according to the arguments given. Arguments can be given as positional, named arguments or a combination of both.

### class RENAME3res(baseobj.BaseObj)

```
union switch RENAME3res (nfsstat3 status) {
    case const.NFS3_OK:
        RENAME3resok resok;
    default:
        RENAME3resfail resfail;
};
```

**Methods defined here:** ---------------------

**\_\_init\_\_(self, unpack)** Constructor

Initialize object's private data according to the arguments given. Arguments can be given as positional, named arguments or a combination of both.

### class RENAME3resfail(baseobj.BaseObj)

```
struct RENAME3resfail {
    wcc_data fromdir_wcc;
    wcc_data todir_wcc;
};
```

**Methods defined here:** ---------------------

**\_\_init\_\_(self, unpack)** Constructor

Initialize object's private data according to the arguments given. Arguments can be given as positional, named arguments or a combination of both.

### class RENAME3resok(baseobj.BaseObj)

```
struct RENAME3resok {
    wcc_data fromdir_wcc;
    wcc_data todir_wcc;
};
```

**Methods defined here:** ---------------------

**\_\_init\_\_(self, unpack)** Constructor

Initialize object's private data according to the arguments given. Arguments can be given as positional, named arguments or a combination of both.

### class RMDIR3args(baseobj.BaseObj)

```
struct RMDIR3args {
    diropargs3 object;
};
```

**Methods defined here:** ---------------------

**\_\_init\_\_(self, unpack)** Constructor

Initialize object's private data according to the arguments given. Arguments can be given as positional, named arguments or a combination of both.

### class RMDIR3res(baseobj.BaseObj)

```
union switch RMDIR3res (nfsstat3 status) {
    case const.NFS3_OK:
        RMDIR3resok resok;
    default:
        RMDIR3resfail resfail;
};
```

**Methods defined here:** ---------------------

**\_\_init\_\_(self, unpack)** Constructor

Initialize object's private data according to the arguments given. Arguments can be given as positional, named arguments or a combination of both.

### class RMDIR3resfail(baseobj.BaseObj)

```
struct RMDIR3resfail {
    wcc_data wcc;
};
```

**Methods defined here:** ---------------------

**\_\_init\_\_(self, unpack)** Constructor

Initialize object's private data according to the arguments given. Arguments can be given as positional, named arguments or a combination of both.

### class RMDIR3resok(baseobj.BaseObj)

```
struct RMDIR3resok {
    wcc_data wcc;
};
```

**Methods defined here:** ---------------------

**\_\_init\_\_(self, unpack)** Constructor

Initialize object's private data according to the arguments given. Arguments can be given as positional, named arguments or a combination of both.

### class SETATTR3args(baseobj.BaseObj)

```
struct SETATTR3args {
    nfs_fh3     fh;
    sattr3      attributes;
    sattrguard3 guard;
};
```

**Methods defined here:** ---------------------

**\_\_init\_\_(self, unpack)** Constructor

Initialize object's private data according to the arguments given. Arguments can be given as positional, named arguments or a combination of both.

### class SETATTR3res(baseobj.BaseObj)

```
union switch SETATTR3res (nfsstat3 status) {
    case const.NFS3_OK:
        SETATTR3resok resok;
    default:
        SETATTR3resfail resfail;
};
```

**Methods defined here:** ---------------------

**\_\_init\_\_(self, unpack)** Constructor

Initialize object's private data according to the arguments given. Arguments can be given as positional, named arguments or a combination of both.

### class SETATTR3resfail(baseobj.BaseObj)

```
struct SETATTR3resfail {
    wcc_data wcc;
};
```

**Methods defined here:** ---------------------

**\_\_init\_\_(self, unpack)** Constructor

Initialize object's private data according to the arguments given. Arguments can be given as positional, named arguments or a combination of both.

### class SETATTR3resok(baseobj.BaseObj)

```
struct SETATTR3resok {
    wcc_data wcc;
};
```

**Methods defined here:** ---------------------

**\_\_init\_\_(self, unpack)** Constructor

Initialize object's private data according to the arguments given. Arguments can be given as positional, named arguments or a combination of both.

### class SYMLINK3args(baseobj.BaseObj)

```
struct SYMLINK3args {
    diropargs3   where;
    symlinkdata3 symlink;
};
```

**Methods defined here:** ---------------------

**\_\_init\_\_(self, unpack)** Constructor

Initialize object's private data according to the arguments given. Arguments can be given as positional, named arguments or a combination of both.

### class SYMLINK3res(baseobj.BaseObj)

```
union switch SYMLINK3res (nfsstat3 status) {
    case const.NFS3_OK:
        SYMLINK3resok resok;
    default:
        SYMLINK3resfail resfail;
};
```

**Methods defined here:** ---------------------

**\_\_init\_\_(self, unpack)** Constructor

Initialize object's private data according to the arguments given. Arguments can be given as positional, named arguments or a combination of both.

### class SYMLINK3resfail(baseobj.BaseObj)

```
struct SYMLINK3resfail {
    wcc_data dir_wcc;
};
```

**Methods defined here:** ---------------------

**\_\_init\_\_(self, unpack)** Constructor

Initialize object's private data according to the arguments given. Arguments can be given as positional, named arguments or a combination of both.

### class SYMLINK3resok(baseobj.BaseObj)

```
struct SYMLINK3resok {
    post_op_fh3  obj;
    post_op_attr attributes;
    wcc_data     wcc;
};
```

**Methods defined here:** ---------------------

**\_\_init\_\_(self, unpack)** Constructor

Initialize object's private data according to the arguments given. Arguments can be given as positional, named arguments or a combination of both.

### class WRITE3args(baseobj.BaseObj)

```
struct WRITE3args {
    nfs_fh3    fh;
    offset3    offset;
    count3     count;
    stable_how stable;
    opaque     data<>;
};
```

**Methods defined here:** ---------------------

**\_\_init\_\_(self, unpack)** Constructor

Initialize object's private data according to the arguments given. Arguments can be given as positional, named arguments or a combination of both.

### class WRITE3res(baseobj.BaseObj)

```
union switch WRITE3res (nfsstat3 status) {
    case const.NFS3_OK:
        WRITE3resok resok;
    default:
        WRITE3resfail resfail;
};
```

**Methods defined here:** ---------------------

**\_\_init\_\_(self, unpack)** Constructor

Initialize object's private data according to the arguments given. Arguments can be given as positional, named arguments or a combination of both.

### class WRITE3resfail(baseobj.BaseObj)

```
struct WRITE3resfail {
    wcc_data wcc;
};
```

**Methods defined here:** ---------------------

**\_\_init\_\_(self, unpack)** Constructor

Initialize object's private data according to the arguments given. Arguments can be given as positional, named arguments or a combination of both.

### class WRITE3resok(baseobj.BaseObj)

```
struct WRITE3resok {
    wcc_data   wcc;
    count3     count;
    stable_how committed;
    writeverf3 verifier;
};
```

**Methods defined here:** ---------------------

**\_\_init\_\_(self, unpack)** Constructor

Initialize object's private data according to the arguments given. Arguments can be given as positional, named arguments or a combination of both.

### class createhow3(baseobj.BaseObj)

```
union switch createhow3 (createmode3 mode) {
    case const.UNCHECKED:
    case const.GUARDED:
        sattr3 attributes;
    case const.EXCLUSIVE:
        createverf3 verifier;
};
```

**Methods defined here:** ---------------------

**\_\_init\_\_(self, unpack)** Constructor

Initialize object's private data according to the arguments given. Arguments can be given as positional, named arguments or a combination of both.

### class createmode3(packet.utils.Enum)

```
enum createmode3
```

### class devicedata3(baseobj.BaseObj)

```
struct devicedata3 {
    sattr3    attributes;
    specdata3 spec;
};
```

**Methods defined here:** ---------------------

**\_\_init\_\_(self, unpack)** Constructor

Initialize object's private data according to the arguments given. Arguments can be given as positional, named arguments or a combination of both.

### class dirlist3(baseobj.BaseObj)

```
struct dirlist3 {
    entry3 *entries;
    bool   eof;
};
```

**Methods defined here:** ---------------------

**\_\_init\_\_(self, unpack)** Constructor

Initialize object's private data according to the arguments given. Arguments can be given as positional, named arguments or a combination of both.

### class dirlistplus3(baseobj.BaseObj)

```
struct dirlistplus3 {
    entryplus3 *entries;
    bool       eof;
};
```

**Methods defined here:** ---------------------

**\_\_init\_\_(self, unpack)** Constructor

Initialize object's private data according to the arguments given. Arguments can be given as positional, named arguments or a combination of both.

### class diropargs3(baseobj.BaseObj)

```
struct diropargs3 {
    nfs_fh3   fh;
    filename3 name;
};
```

**Methods defined here:** ---------------------

**\_\_init\_\_(self, unpack)** Constructor

Initialize object's private data according to the arguments given. Arguments can be given as positional, named arguments or a combination of both.

### class entry3(baseobj.BaseObj)

```
struct entry3 {
    fileid3   fileid;
    filename3 name;
    cookie3   cookie;
    entry3    *nextentry;
};
```

**Methods defined here:** ---------------------

**\_\_init\_\_(self, unpack)** Constructor

Initialize object's private data according to the arguments given. Arguments can be given as positional, named arguments or a combination of both.

### class entryplus3(baseobj.BaseObj)

```
struct entryplus3 {
    fileid3      fileid;
    filename3    name;
    cookie3      cookie;
    post_op_attr attributes;
    post_op_fh3  obj;
    entryplus3   *nextentry;
};
```

**Methods defined here:** ---------------------

**\_\_init\_\_(self, unpack)** Constructor

Initialize object's private data according to the arguments given. Arguments can be given as positional, named arguments or a combination of both.

### class fattr3(baseobj.BaseObj)

```
struct fattr3 {
    ftype3    type;
    mode3     mode;
    uint32    nlink;
    uid3      uid;
    gid3      gid;
    size3     size;
    size3     used;
    specdata3 rdev;
    uint64    fsid;
    fileid3   fileid;
    nfstime3  atime;
    nfstime3  mtime;
    nfstime3  ctime;
};
```

**Methods defined here:** ---------------------

**\_\_init\_\_(self, unpack)** Constructor

Initialize object's private data according to the arguments given. Arguments can be given as positional, named arguments or a combination of both.

### class ftype3(packet.utils.Enum)

```
enum ftype3
```

### class mknoddata3(baseobj.BaseObj)

```
union switch mknoddata3 (ftype3 type) {
    case const.NF3CHR:
    case const.NF3BLK:
        devicedata3 device;
    case const.NF3SOCK:
    case const.NF3FIFO:
        sattr3 attributes;
    default:
        void;
};
```

**Methods defined here:** ---------------------

**\_\_init\_\_(self, unpack)** Constructor

Initialize object's private data according to the arguments given. Arguments can be given as positional, named arguments or a combination of both.

### class nfs\_bool(packet.utils.Enum)

```
enum nfs_bool
```

### class nfs\_proc3(packet.utils.Enum)

```
enum nfs_proc3
```

### class nfsstat3(packet.utils.Enum)

```
enum nfsstat3
```

### class nfstime3(baseobj.BaseObj)

```
struct nfstime3 {
    uint32 seconds;
    uint32 nseconds;
};
```

**Methods defined here:** ---------------------

**\_\_init\_\_(self, unpack)** Constructor

Initialize object's private data according to the arguments given. Arguments can be given as positional, named arguments or a combination of both.

### class post\_op\_attr(baseobj.BaseObj)

```
union switch post_op_attr (bool attributes_follow) {
    case const.TRUE:
        fattr3 attributes;
    case const.FALSE:
        void;
};
```

**Methods defined here:** ---------------------

**\_\_init\_\_(self, unpack)** Constructor

Initialize object's private data according to the arguments given. Arguments can be given as positional, named arguments or a combination of both.

### class post\_op\_fh3(baseobj.BaseObj)

```
union switch post_op_fh3 (bool handle_follows) {
    case const.TRUE:
        nfs_fh3 fh;
    case const.FALSE:
        void;
};
```

**Methods defined here:** ---------------------

**\_\_init\_\_(self, unpack)** Constructor

Initialize object's private data according to the arguments given. Arguments can be given as positional, named arguments or a combination of both.

### class pre\_op\_attr(baseobj.BaseObj)

```
union switch pre_op_attr (bool attributes_follow) {
    case const.TRUE:
        wcc_attr attributes;
    case const.FALSE:
        void;
};
```

**Methods defined here:** ---------------------

**\_\_init\_\_(self, unpack)** Constructor

Initialize object's private data according to the arguments given. Arguments can be given as positional, named arguments or a combination of both.

### class sattr3(baseobj.BaseObj)

```
struct sattr3 {
    set_mode3 mode;
    set_uid3  uid;
    set_gid3  gid;
    set_size3 size;
    set_atime atime;
    set_mtime mtime;
};
```

**Methods defined here:** ---------------------

**\_\_init\_\_(self, unpack)** Constructor

Initialize object's private data according to the arguments given. Arguments can be given as positional, named arguments or a combination of both.

### class sattrguard3(baseobj.BaseObj)

```
union switch sattrguard3 (bool check) {
    case const.TRUE:
        nfstime3 ctime;
    case const.FALSE:
        void;
};
```

**Methods defined here:** ---------------------

**\_\_init\_\_(self, unpack)** Constructor

Initialize object's private data according to the arguments given. Arguments can be given as positional, named arguments or a combination of both.

### class set\_atime(baseobj.BaseObj)

```
union switch set_atime (time_how set_it) {
    case const.SET_TO_CLIENT_TIME:
        nfstime3 atime;
    default:
        void;
};
```

**Methods defined here:** ---------------------

**\_\_init\_\_(self, unpack)** Constructor

Initialize object's private data according to the arguments given. Arguments can be given as positional, named arguments or a combination of both.

### class set\_gid3(baseobj.BaseObj)

```
union switch set_gid3 (bool set_it) {
    case const.TRUE:
        gid3 gid;
    default:
        void;
};
```

**Methods defined here:** ---------------------

**\_\_init\_\_(self, unpack)** Constructor

Initialize object's private data according to the arguments given. Arguments can be given as positional, named arguments or a combination of both.

### class set\_mode3(baseobj.BaseObj)

```
union switch set_mode3 (bool set_it) {
    case const.TRUE:
        mode3 mode;
    default:
        void;
};
```

**Methods defined here:** ---------------------

**\_\_init\_\_(self, unpack)** Constructor

Initialize object's private data according to the arguments given. Arguments can be given as positional, named arguments or a combination of both.

### class set\_mtime(baseobj.BaseObj)

```
union switch set_mtime (time_how set_it) {
    case const.SET_TO_CLIENT_TIME:
        nfstime3 mtime;
    default:
        void;
};
```

**Methods defined here:** ---------------------

**\_\_init\_\_(self, unpack)** Constructor

Initialize object's private data according to the arguments given. Arguments can be given as positional, named arguments or a combination of both.

### class set\_size3(baseobj.BaseObj)

```
union switch set_size3 (bool set_it) {
    case const.TRUE:
        size3 size;
    default:
        void;
};
```

**Methods defined here:** ---------------------

**\_\_init\_\_(self, unpack)** Constructor

Initialize object's private data according to the arguments given. Arguments can be given as positional, named arguments or a combination of both.

### class set\_uid3(baseobj.BaseObj)

```
union switch set_uid3 (bool set_it) {
    case const.TRUE:
        uid3 uid;
    default:
        void;
};
```

**Methods defined here:** ---------------------

**\_\_init\_\_(self, unpack)** Constructor

Initialize object's private data according to the arguments given. Arguments can be given as positional, named arguments or a combination of both.

### class specdata3(baseobj.BaseObj)

```
struct specdata3 {
    uint32 specdata1;
    uint32 specdata2;
};
```

**Methods defined here:** ---------------------

**\_\_init\_\_(self, unpack)** Constructor

Initialize object's private data according to the arguments given. Arguments can be given as positional, named arguments or a combination of both.

### class stable\_how(packet.utils.Enum)

```
enum stable_how
```

### class symlinkdata3(baseobj.BaseObj)

```
struct symlinkdata3 {
    sattr3   attributes;
    nfspath3 linkdata;
};
```

**Methods defined here:** ---------------------

**\_\_init\_\_(self, unpack)** Constructor

Initialize object's private data according to the arguments given. Arguments can be given as positional, named arguments or a combination of both.

### class time\_how(packet.utils.Enum)

```
enum time_how
```

### class wcc\_attr(baseobj.BaseObj)

```
struct wcc_attr {
    size3    size;
    nfstime3 mtime;
    nfstime3 ctime;
};
```

**Methods defined here:** ---------------------

**\_\_init\_\_(self, unpack)** Constructor

Initialize object's private data according to the arguments given. Arguments can be given as positional, named arguments or a combination of both.

### class wcc\_data(baseobj.BaseObj)

```
struct wcc_data {
    pre_op_attr  before;
    post_op_attr after;
};
```

**Methods defined here:** ---------------------

**\_\_init\_\_(self, unpack)** Constructor

Initialize object's private data according to the arguments given. Arguments can be given as positional, named arguments or a combination of both.

## FUNCTIONS

```
cookieverf3(unpack)
```

**createverf3(unpack)**

**nfs\_fh3(unpack)**

**writeverf3(unpack)**

## SEE ALSO

**[baseobj(3)](/baseobj/3.md),** **[packet.nfs.nfs3\_const(3)](/packet.nfs.nfs3_const/3.md),** **[packet.unpack(3)](/packet.unpack/3.md),** **[packet.utils(3)](/packet.utils/3.md)**

## BUGS

No known bugs.

## AUTHOR

Jorge Mora (mora@netapp.com)
