NFS4(3)

πŸ“¦
version 3.2 Β· 2 versions
  • 3.2 Β· debian trixie, fedora 43, fedora 44, ubuntu noble, ubuntu questing, ubuntu resolute (latest)
  • 3.2 Β· ubuntu stonking
, in debian trixie, fedora 43, fedora 44, ubuntu noble, ubuntu questing, ubuntu resolute

πŸ’… NFS4(3) β€” nfs4 4.2

so this is NFS4(3), from the nfs4 4.2 manual, and bestie it's a whole module β€” grab a snack πŸ“


✨ NAME ✨

packet.nfs.nfs4 β€” the NFSv4 decoding module πŸ’– like, it decodes NFSv4 packets, that's the whole job, and it does it flawlessly.


🌈 CLASSES 🌈

πŸŽ€ class ACCESS4args (baseobj.BaseObj)

struct ACCESS4args {
    /* CURRENT_FH: object */
    access4 access;
};

Methods defined here:

  • __init__(self, unpack) β€” Constructor. It sets up the object's private data based on the args you hand it. You can pass them positionally, as named args, or a lil mix of both β€” dealer's choice, no judgment. ✨

πŸŽ€ class ACCESS4res (baseobj.BaseObj)

union switch ACCESS4res (nfsstat4 status) {
    case const.NFS4_OK:
        ACCESS4resok resok;
    default:
        void;
};

Methods defined here:

  • __init__(self, unpack) β€” Constructor. Fills in the object's private data per the arguments you give it, and yeah β€” positional, named, or both at once all work. πŸ’…

πŸŽ€ class ACCESS4resok (baseobj.BaseObj)

struct ACCESS4resok {
    access4 supported;
    access4 access;
};

Methods defined here:

  • __init__(self, unpack) β€” Constructor. Private data gets initialized from your args; positional, named, or a combo, whatever vibes. πŸ¦‹

πŸŽ€ class ALLOCATE4args (baseobj.BaseObj)

struct ALLOCATE4args {
    /* CURRENT_FH: file */
    stateid4 stateid;
    offset4  offset;
    length4  length;
};

Methods defined here:

  • __init__(self, unpack) β€” Constructor. Initializes the object's private data according to the args given β€” positional, named, or a mix of the two. 🌸

πŸŽ€ class ALLOCATE4res (baseobj.BaseObj)

struct ALLOCATE4res {
    nfsstat4 status;
};

Methods defined here:

  • __init__(self, unpack) β€” Constructor. Sets the object's private data from whatever arguments you give it; positional, named, or both, all valid. ✨

πŸŽ€ class BACKCHANNEL_CTL4args (baseobj.BaseObj)

struct BACKCHANNEL_CTL4args {
    uint32_t            cb_program;
    callback_sec_parms4 sec_parms<>;
};

Methods defined here:

  • __init__(self, unpack) β€” Constructor. Private data goes in based on the arguments given, and you can do positional, named, or a combination. πŸ’œ

πŸŽ€ class BACKCHANNEL_CTL4res (baseobj.BaseObj)

struct BACKCHANNEL_CTL4res {
    nfsstat4 status;
};

Methods defined here:

  • __init__(self, unpack) β€” Constructor. Initializes the object's private data according to the arguments given β€” positional, named, or a blend of both. πŸŽ€

πŸŽ€ class BIND_CONN_TO_SESSION4args (baseobj.BaseObj)

struct BIND_CONN_TO_SESSION4args {
    sessionid4               sessionid;
    channel_dir_from_client4 dir;
    bool                     rdma_mode;
};

Methods defined here:

  • __init__(self, unpack) β€” Constructor. It takes your args and initializes the object's private data with them; positional, named, or a combo, you pick. 🌈

πŸŽ€ class BIND_CONN_TO_SESSION4res (baseobj.BaseObj)

union switch BIND_CONN_TO_SESSION4res (nfsstat4 status) {
    case const.NFS4_OK:
        BIND_CONN_TO_SESSION4resok resok;
};

Methods defined here:

  • __init__(self, unpack) β€” Constructor. Object's private data gets initialized according to the arguments given β€” positional, named, or both, fr fr. 🫢

πŸŽ€ class BIND_CONN_TO_SESSION4resok (baseobj.BaseObj)

struct BIND_CONN_TO_SESSION4resok {
    sessionid4               sessionid;
    channel_dir_from_server4 dir;
    bool                     rdma_mode;
};

Methods defined here:

  • __init__(self, unpack) β€” Constructor. Initializes the object's private data per the args given. Positional, named, or a mix β€” all good. ⭐

πŸŽ€ class CB_COMPOUND4args (packet.nfs.nfsbase.NFSbase)

struct CB_COMPOUND4args {
    utf8str_cs    tag;
    uint32_t      minorversion;
    uint32_t      callback_ident;
    nfs_cb_argop4 array<>;
};

Methods defined here:

  • __init__(self, unpack) β€” Constructor. Sets up the object's private data according to the arguments given β€” positional, named, or a combination of both. πŸ’–

πŸŽ€ class CB_COMPOUND4res (packet.nfs.nfsbase.NFSbase)

struct CB_COMPOUND4res {
    nfsstat4      status;
    utf8str_cs    tag;
    nfs_cb_resop4 array<>;
};

Methods defined here:

  • __init__(self, unpack, minorversion) β€” Constructor. Note the extra minorversion arg on this one, bestie, it's not like the others πŸ‘€. Initializes the object's private data according to the arguments given; positional, named, or a combo of both. πŸ‘‘

πŸŽ€ class CB_GETATTR4args (baseobj.BaseObj)

struct CB_GETATTR4args {
    nfs_fh4 fh;
    bitmap4 request;
};

Methods defined here:

  • __init__(self, unpack) β€” Constructor. Initializes the object's private data according to the arguments given β€” positional, named, or both at once. 🌸

πŸŽ€ class CB_GETATTR4res (baseobj.BaseObj)

union switch CB_GETATTR4res (nfsstat4 status) {
    case const.NFS4_OK:
        CB_GETATTR4resok resok;
    default:
        void;
};

Methods defined here:

  • __init__(self, unpack) β€” Constructor. Object's private data, initialized according to the args you give. Positional, named, or a mix. πŸ¦‹

πŸŽ€ class CB_GETATTR4resok (baseobj.BaseObj)

struct CB_GETATTR4resok {
    fattr4 attributes;
};

Methods defined here:

  • __init__(self, unpack) β€” Constructor. Initializes the object's private data according to the arguments given β€” positional, named, or a combination. ✨

πŸŽ€ class CB_ILLEGAL4res (baseobj.BaseObj)

struct CB_ILLEGAL4res {
    nfsstat4 status;
};

Methods defined here:

  • __init__(self, unpack) β€” Constructor. Sets the object's private data from the args given β€” positional, named, or a blend of both. πŸ’€

πŸŽ€ class CB_LAYOUTRECALL4args (baseobj.BaseObj)

struct CB_LAYOUTRECALL4args {
    layouttype4   type;
    layoutiomode4 iomode;
    bool          changed;
    layoutrecall4 recall;
};

Methods defined here:

  • __init__(self, unpack) β€” Constructor. Initializes the object's private data according to the arguments given β€” positional, named, or both. πŸ”₯

πŸŽ€ class CB_LAYOUTRECALL4res (baseobj.BaseObj)

struct CB_LAYOUTRECALL4res {
    nfsstat4 status;
};

Methods defined here:

  • __init__(self, unpack) β€” Constructor. Private data gets initialized according to the args given; positional, named, or a combo of both. πŸ’œ

πŸŽ€ class CB_NOTIFY4args (baseobj.BaseObj)

struct CB_NOTIFY4args {
    stateid4 stateid;
    nfs_fh4  fh;
    notify4  changes<>;
};

Methods defined here:

  • __init__(self, unpack) β€” Constructor. Initializes the object's private data according to the arguments given β€” positional, named, or a mixture of both. πŸŽ€

πŸŽ€ class CB_NOTIFY4res (baseobj.BaseObj)

struct CB_NOTIFY4res {
    nfsstat4 status;
};

Methods defined here:

  • __init__(self, unpack) β€” Constructor. Object's private data, initialized per the args given β€” positional, named, or both, no cap. 🌈

πŸŽ€ class CB_NOTIFY_DEVICEID4args (baseobj.BaseObj)

struct CB_NOTIFY_DEVICEID4args {
    notify4 changes<>;
};

Methods defined here:

  • __init__(self, unpack) β€” Constructor. Initializes the object's private data according to the arguments given β€” positional, named, or a combination of both. ⭐

πŸŽ€ class CB_NOTIFY_DEVICEID4res (baseobj.BaseObj)

struct CB_NOTIFY_DEVICEID4res {
    nfsstat4 status;
};

Methods defined here:

  • __init__(self, unpack) β€” Constructor. Sets up the object's private data according to the args given β€” positional, named, or both at once. 🫢

πŸŽ€ class CB_NOTIFY_LOCK4args (baseobj.BaseObj)

struct CB_NOTIFY_LOCK4args {
    nfs_fh4     fh;
    lock_owner4 lock_owner;
};

Methods defined here:

  • __init__(self, unpack) β€” Constructor. Initializes the object's private data according to the arguments given β€” positional, named, or a combo of both. πŸ’–

πŸŽ€ class CB_NOTIFY_LOCK4res (baseobj.BaseObj)

struct CB_NOTIFY_LOCK4res {
    nfsstat4 status;
};

Methods defined here:

  • __init__(self, unpack) β€” Constructor. Initializes the object's private data according to the arguments given β€” positional, named, or a blend. ✨

πŸŽ€ class CB_OFFLOAD4args (baseobj.BaseObj)

struct CB_OFFLOAD4args {
    nfs_fh4       fh;
    stateid4      stateid;
    offload_info4 info;
};

Methods defined here:

  • __init__(self, unpack) β€” Constructor. Object's private data gets initialized according to the args given β€” positional, named, or a combination of both. 🌸

πŸŽ€ class CB_OFFLOAD4res (baseobj.BaseObj)

struct CB_OFFLOAD4res {
    nfsstat4 status;
};

Methods defined here:

  • __init__(self, unpack) β€” Constructor. Initializes the object's private data according to the arguments given β€” positional, named, or both. πŸ¦‹

πŸŽ€ class CB_PUSH_DELEG4args (baseobj.BaseObj)

struct CB_PUSH_DELEG4args {
    nfs_fh4          fh;
    open_delegation4 delegation;
};

Methods defined here:

  • __init__(self, unpack) β€” Constructor.

class CB_PUSH_DELEG4res(baseobj.BaseObj)

       struct CB_PUSH_DELEG4res {
           nfsstat4 status;
       };

Methods defined here:

  • __init__(self, unpack) β€” Constructor. It initializes the object's private data according to the arguments you give. You can pass them positionally, as named arguments, or a mix of both. πŸ’…

class CB_RECALL4args(baseobj.BaseObj)

       struct CB_RECALL4args {
           stateid4 stateid;
           bool     truncate;
           nfs_fh4  fh;
       };

Methods defined here:

  • __init__(self, unpack) β€” Constructor. Sets up the object's private data from the arguments you provide. You can give them positionally, by name, or a combo of both. ✨

class CB_RECALL4res(baseobj.BaseObj)

       struct CB_RECALL4res {
           nfsstat4 status;
       };

Methods defined here:

  • __init__(self, unpack) β€” Constructor. It initializes the object's private data based on the arguments you pass. You can pass them positionally, as named arguments, or a combination of both. πŸ¦‹

class CB_RECALLABLE_OBJ_AVAIL4args(baseobj.BaseObj)

       CB_RECALLABLE_OBJ_AVAIL4args = class CB_RECALL_ANY4args(baseobj.BaseObj)

no methods here, bestie β€” it's literally just an alias for CB_RECALL_ANY4args. iconic. πŸ’…


class CB_RECALLABLE_OBJ_AVAIL4res(baseobj.BaseObj)

       struct CB_RECALLABLE_OBJ_AVAIL4res {
           nfsstat4 status;
       };

Methods defined here:

  • __init__(self, unpack) β€” Constructor. It initializes the object's private data according to the arguments given. Arguments can be given as positional, named arguments or a combination of both. 🌸

class CB_RECALL_ANY4args(baseobj.BaseObj)

       struct CB_RECALL_ANY4args {
           uint32_t objects_to_keep;
           bitmap4  mask;
       };

Methods defined here:

  • __init__(self, unpack) β€” Constructor. Sets up the object's private data from the args you give. You can hand them over positionally, as named args, or a combo of both. πŸ’–

class CB_RECALL_ANY4res(baseobj.BaseObj)

       struct CB_RECALL_ANY4res {
           nfsstat4 status;
       };

Methods defined here:

  • __init__(self, unpack) β€” Constructor. It initializes the object's private data according to the arguments you provide. You can pass them positionally, by name, or a combination of both. ✨

class CB_RECALL_SLOT4args(baseobj.BaseObj)

       struct CB_RECALL_SLOT4args {
           slotid4 target_highest_slotid;
       };

Methods defined here:

  • __init__(self, unpack) β€” Constructor. It initializes the object's private data based on the arguments you give. You can pass them positionally, as named arguments, or a mix of both. πŸŽ€

class CB_RECALL_SLOT4res(baseobj.BaseObj)

       struct CB_RECALL_SLOT4res {
           nfsstat4 status;
       };

Methods defined here:

  • __init__(self, unpack) β€” Constructor. It initializes the object's private data according to the arguments given. Arguments can be given as positional, named arguments or a combination of both. 🫢

class CB_SEQUENCE4args(baseobj.BaseObj)

       struct CB_SEQUENCE4args {
           sessionid4           sessionid;
           sequenceid4          sequenceid;
           slotid4              slotid;
           slotid4              highest_slotid;
           bool                 cachethis;
           referring_call_list4 referring_call_lists<>;
       };

Methods defined here:

  • __init__(self, unpack) β€” Constructor. It initializes the object's private data based on the arguments you pass. You can give them positionally, as named arguments, or a combo of both. πŸ’œ

class CB_SEQUENCE4res(baseobj.BaseObj)

       union switch CB_SEQUENCE4res (nfsstat4 status) {
           case const.NFS4_OK:
               CB_SEQUENCE4resok resok;
           default:
               void;
       };

Methods defined here:

  • __init__(self, unpack) β€” Constructor. Sets up the object's private data from the arguments you provide. You can pass them positionally, by name, or a mix of both. 🌈

class CB_SEQUENCE4resok(baseobj.BaseObj)

       struct CB_SEQUENCE4resok {
           sessionid4  sessionid;
           sequenceid4 sequenceid;
           slotid4     slotid;
           slotid4     highest_slotid;
           slotid4     target_highest_slotid;
       };

Methods defined here:

  • __init__(self, unpack) β€” Constructor. It initializes the object's private data according to the arguments given. Arguments can be given as positional, named arguments or a combination of both. ⭐

class CB_WANTS_CANCELLED4args(baseobj.BaseObj)

       struct CB_WANTS_CANCELLED4args {
           bool contended;
           bool resourced;
       };

Methods defined here:

  • __init__(self, unpack) β€” Constructor. It initializes the object's private data based on the arguments you give. You can pass them positionally, as named arguments, or a combination of both. πŸ’€

class CB_WANTS_CANCELLED4res(baseobj.BaseObj)

       struct CB_WANTS_CANCELLED4res {
           nfsstat4 status;
       };

Methods defined here:

  • __init__(self, unpack) β€” Constructor. It initializes the object's private data according to the arguments given. Arguments can be given as positional, named arguments or a combination of both. πŸ”₯

class CLONE4args(baseobj.BaseObj)

       struct CLONE4args {
           /*
            * SAVED_FH: source file
            * CURRENT_FH: destination file
            */
           stateid4 src_stateid;
           stateid4 dst_stateid;
           offset4  src_offset;
           offset4  dst_offset;
           length4  count;
       };

Methods defined here:

  • __init__(self, unpack) β€” Constructor. It initializes the object's private data from the arguments you pass. You can give them positionally, as named arguments, or a mix of both. πŸ‘‘

class CLONE4res(baseobj.BaseObj)

       struct CLONE4res {
           nfsstat4 status;
       };

Methods defined here:

  • __init__(self, unpack) β€” Constructor. It initializes the object's private data according to the arguments given. Arguments can be given as positional, named arguments or a combination of both. πŸ™ˆ

class CLOSE4args(baseobj.BaseObj)

       struct CLOSE4args {
           /* CURRENT_FH: object */
           seqid4   seqid;
           stateid4 stateid;
       };

Methods defined here:

  • __init__(self, unpack) β€” Constructor. It initializes the object's private data based on the arguments you provide. You can pass them positionally, by name, or a combo of both. πŸ“

class CLOSE4res(baseobj.BaseObj)

       union switch CLOSE4res (nfsstat4 status) {
           case const.NFS4_OK:
               stateid4 stateid;
           default:
               void;
       };

Methods defined here:

  • __init__(self, unpack) β€” Constructor. It initializes the object's private data according to the arguments given. Arguments can be given as positional, named arguments or a combination of both. 🧚

class COMMIT4args(baseobj.BaseObj)

       struct COMMIT4args {
           /* CURRENT_FH: file */
           offset4 offset;
           count4  count;
       };

Methods defined here:

  • __init__(self, unpack) β€” Constructor. It initializes the object's private data from the arguments you give. You can pass them positionally, as named arguments, or a mix of both. πŸ’–

class COMMIT4res(baseobj.BaseObj)

       union switch COMMIT4res (nfsstat4 status) {
           case const.NFS4_OK:
               COMMIT4resok resok;
           default:
               void;
       };

Methods defined here:

  • __init__(self, unpack) β€” Constructor. It initializes the object's private data according to the arguments given. Arguments can be given as positional, named arguments or a combination of both. ✨

class COMMIT4resok(baseobj.BaseObj)

       struct COMMIT4resok {
           verifier4 verifier;
       };

Methods defined here:

  • __init__(self, unpack) β€” Constructor. It initializes the object's private data based on the arguments you pass. You can give them positionally, by name, or a combination of both. πŸ¦‹

class COMPOUND4args(packet.nfs.nfsbase.NFSbase)

       struct COMPOUND4args {
           utf8str_cs tag;
           uint32_t   minorversion;
           nfs_argop4 array<>;
       };

Methods defined here:

  • __init__(self, unpack) β€” Constructor. It initializes the object's private data according to the arguments given. Arguments can be given as positional, named arguments or a combination of both. 🌸

class COMPOUND4res(packet.nfs.nfsbase.NFSbase)

       struct COMPOUND4res {
           nfsstat4   status;
           utf8str_cs tag;
           nfs_resop4 array<>;
       };

Methods defined here:

  • __init__(self, unpack, minorversion) β€” Constructor. It initializes the object's private data from the arguments you provide. You can pass them positionally, as named arguments, or a mix of both. πŸ’…

class COPY4args(baseobj.BaseObj)

       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<>;
       };

Methods defined here:

  • __init__(self, unpack) β€” Constructor. It initializes the object's private data based on the arguments you give. You can give them positionally, as named arguments, or a combo of both. πŸŽ€

class COPY4res(baseobj.BaseObj)

       union switch COPY4res (nfsstat4 status) {
           case const.NFS4_OK:
               COPY4resok resok;
           case const.NFS4ERR_OFFLOAD_NO_REQS:
               copy_requirements4 requirements;
           default:
               void;
       };

Methods defined here:

  • __init__(self, unpack) β€” Constructor. It initializes the object's private data according to the arguments given. Arguments can be given as positional, named arguments or a combination of both. 🫢

class COPY4resok(baseobj.BaseObj)

       struct COPY4resok {
           write_response4    response;
           copy_requirements4 requirements;
       };

Methods defined here:

  • __init__(self, unpack) β€” Constructor. Initialize object's private data according to the arguments given.

Okay so boom, constructor time: it initializes the object's private data according to the arguments you give it. You can pass them positionally, as named arguments, or a mix of both. πŸ’…


class COPY_NOTIFY4args(baseobj.BaseObj)

       struct COPY_NOTIFY4args {
           /* CURRENT_FH: source file */
           stateid4 stateid;
           netloc4  dst_server;
       };

Methods defined here:

  • __init__(self, unpack) β€” Constructor. Initializes the object's private data from the arguments you pass. You can pass them positionally, as named arguments, or a mix of both. ✨

class COPY_NOTIFY4res(baseobj.BaseObj)

       union switch COPY_NOTIFY4res (nfsstat4 status) {
           case const.NFS4_OK:
               COPY_NOTIFY4resok resok;
           default:
               void;
       };

Methods defined here:

  • __init__(self, unpack) β€” Constructor. Initializes the object's private data from the arguments you pass. You can pass them positionally, as named arguments, or a mix of both. ✨

class COPY_NOTIFY4resok(baseobj.BaseObj)

       struct COPY_NOTIFY4resok {
           nfstime4 lease_time;
           stateid4 stateid;
           netloc4  src_servers<>;
       };

Methods defined here:

  • __init__(self, unpack) β€” Constructor. Initializes the object's private data from the arguments you pass. You can pass them positionally, as named arguments, or a mix of both. ✨

class CREATE4args(baseobj.BaseObj)

       struct CREATE4args {
           /* CURRENT_FH: directory for creation */
           createtype4 type;
           component4  name;
           fattr4      attributes;
       };

Methods defined here:

  • __init__(self, unpack) β€” Constructor. Initializes the object's private data from the arguments you pass. You can pass them positionally, as named arguments, or a mix of both. ✨

class CREATE4res(baseobj.BaseObj)

       union switch CREATE4res (nfsstat4 status) {
           case const.NFS4_OK:
               /* new CURRENTFH: created object */
               CREATE4resok resok;
           default:
               void;
       };

Methods defined here:

  • __init__(self, unpack) β€” Constructor. Initializes the object's private data from the arguments you pass. You can pass them positionally, as named arguments, or a mix of both. ✨

class CREATE4resok(baseobj.BaseObj)

       struct CREATE4resok {
           change_info4 cinfo;
           bitmap4      attrset;  /* attributes set */
       };

Methods defined here:

  • __init__(self, unpack) β€” Constructor. Initializes the object's private data from the arguments you pass. You can pass them positionally, as named arguments, or a mix of both. ✨

class CREATE_SESSION4args(baseobj.BaseObj)

       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<>;
       };

Methods defined here:

  • __init__(self, unpack) β€” Constructor. Initializes the object's private data from the arguments you pass. You can pass them positionally, as named arguments, or a mix of both. ✨

class CREATE_SESSION4res(baseobj.BaseObj)

       union switch CREATE_SESSION4res (nfsstat4 status) {
           case const.NFS4_OK:
               CREATE_SESSION4resok resok;
           default:
               void;
       };

Methods defined here:

  • __init__(self, unpack) β€” Constructor. Initializes the object's private data from the arguments you pass. You can pass them positionally, as named arguments, or a mix of both. ✨

class CREATE_SESSION4resok(baseobj.BaseObj)

       struct CREATE_SESSION4resok {
           sessionid4     sessionid;
           sequenceid4    sequenceid;
           uint32_t       flags;
           channel_attrs4 fore_chan_attrs;
           channel_attrs4 back_chan_attrs;
       };

Methods defined here:

  • __init__(self, unpack) β€” Constructor. Initializes the object's private data from the arguments you pass. You can pass them positionally, as named arguments, or a mix of both. ✨

class DEALLOCATE4args(baseobj.BaseObj)

       struct DEALLOCATE4args {
           /* CURRENT_FH: file */
           stateid4 stateid;
           offset4  offset;
           length4  length;
       };

Methods defined here:

  • __init__(self, unpack) β€” Constructor. Initializes the object's private data from the arguments you pass. You can pass them positionally, as named arguments, or a mix of both. ✨

class DEALLOCATE4res(baseobj.BaseObj)

       struct DEALLOCATE4res {
           nfsstat4 status;
       };

Methods defined here:

  • __init__(self, unpack) β€” Constructor. Initializes the object's private data from the arguments you pass. You can pass them positionally, as named arguments, or a mix of both. ✨

class DELEGPURGE4args(baseobj.BaseObj)

       struct DELEGPURGE4args {
           clientid4 clientid;
       };

Methods defined here:

  • __init__(self, unpack) β€” Constructor. Initializes the object's private data from the arguments you pass. You can pass them positionally, as named arguments, or a mix of both. ✨

class DELEGPURGE4res(baseobj.BaseObj)

       struct DELEGPURGE4res {
           nfsstat4 status;
       };

Methods defined here:

  • __init__(self, unpack) β€” Constructor. Initializes the object's private data from the arguments you pass. You can pass them positionally, as named arguments, or a mix of both. ✨

class DELEGRETURN4args(baseobj.BaseObj)

       struct DELEGRETURN4args {
           /* CURRENT_FH: delegated object */
           stateid4 stateid;
       };

Methods defined here:

  • __init__(self, unpack) β€” Constructor. Initializes the object's private data from the arguments you pass. You can pass them positionally, as named arguments, or a mix of both. ✨

class DELEGRETURN4res(baseobj.BaseObj)

       struct DELEGRETURN4res {
           nfsstat4 status;
       };

Methods defined here:

  • __init__(self, unpack) β€” Constructor. Initializes the object's private data from the arguments you pass. You can pass them positionally, as named arguments, or a mix of both. ✨

class DESTROY_CLIENTID4args(baseobj.BaseObj)

       struct DESTROY_CLIENTID4args {
           clientid4 clientid;
       };

Methods defined here:

  • __init__(self, unpack) β€” Constructor. Initializes the object's private data from the arguments you pass. You can pass them positionally, as named arguments, or a mix of both. ✨

class DESTROY_CLIENTID4res(baseobj.BaseObj)

       struct DESTROY_CLIENTID4res {
           nfsstat4 status;
       };

Methods defined here:

  • __init__(self, unpack) β€” Constructor. Initializes the object's private data from the arguments you pass. You can pass them positionally, as named arguments, or a mix of both. ✨

class DESTROY_SESSION4args(baseobj.BaseObj)

       struct DESTROY_SESSION4args {
           sessionid4 sessionid;
       };

Methods defined here:

  • __init__(self, unpack) β€” Constructor. Initializes the object's private data from the arguments you pass. You can pass them positionally, as named arguments, or a mix of both. ✨

class DESTROY_SESSION4res(baseobj.BaseObj)

       struct DESTROY_SESSION4res {
           nfsstat4 status;
       };

Methods defined here:

  • __init__(self, unpack) β€” Constructor. Initializes the object's private data from the arguments you pass. You can pass them positionally, as named arguments, or a mix of both. ✨

class EXCHANGE_ID4args(baseobj.BaseObj)

       struct EXCHANGE_ID4args {
           client_owner4    clientowner;
           uint32_t         flags;
           state_protect4_a state_protect;
           nfs_impl_id4     client_impl_id<1>;
       };

Methods defined here:

  • __init__(self, unpack) β€” Constructor. Initializes the object's private data from the arguments you pass. You can pass them positionally, as named arguments, or a mix of both. ✨

class EXCHANGE_ID4res(baseobj.BaseObj)

       union switch EXCHANGE_ID4res (nfsstat4 status) {
           case const.NFS4_OK:
               EXCHANGE_ID4resok resok;
           default:
               void;
       };

Methods defined here:

  • __init__(self, unpack) β€” Constructor. Initializes the object's private data from the arguments you pass. You can pass them positionally, as named arguments, or a mix of both. ✨

class EXCHANGE_ID4resok(baseobj.BaseObj)

       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>;
       };

Methods defined here:

  • __init__(self, unpack) β€” Constructor. Initializes the object's private data from the arguments you pass. You can pass them positionally, as named arguments, or a mix of both. ✨

class FREE_STATEID4args(baseobj.BaseObj)

       struct FREE_STATEID4args {
           stateid4 stateid;
       };

Methods defined here:

  • __init__(self, unpack) β€” Constructor. Initializes the object's private data from the arguments you pass. You can pass them positionally, as named arguments, or a mix of both. ✨

class FREE_STATEID4res(baseobj.BaseObj)

       struct FREE_STATEID4res {
           nfsstat4 status;
       };

Methods defined here:

  • __init__(self, unpack) β€” Constructor. Initializes the object's private data from the arguments you pass. You can pass them positionally, as named arguments, or a mix of both. ✨

class GETATTR4args(baseobj.BaseObj)

       struct GETATTR4args {
           /* CURRENT_FH: object */
           bitmap4 request;
       };

Methods defined here:

  • __init__(self, unpack) β€” Constructor. Initializes the object's private data from the arguments you pass. You can pass them positionally, as named arguments, or a mix of both. ✨

GETATTR4res

okay so this one is a union switch on nfsstat4 status, and it's giving very demure, very mindful ✨

   class GETATTR4res(baseobj.BaseObj)
       union switch GETATTR4res (nfsstat4 status) {
           case const.NFS4_OK:
               GETATTR4resok 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. πŸ’…

GETATTR4resok

bestie this is a struct with a single fattr4 attributes field. iconic 🌸

   class GETATTR4resok(baseobj.BaseObj)
       struct GETATTR4resok {
           fattr4 attributes;
       };

Methods defined here:

  • __init__(self, unpack) β€” Constructor! It sets up the object's private data from the args you give it. You can pass them positionally, by name, or a mix of both. 🫢

GETDEVICEINFO4args

okay so this is a struct for GETDEVICEINFO4args. It's got deviceid, type, maxcount, and notify_mask. slay ✨

   class GETDEVICEINFO4args(baseobj.BaseObj)
       struct GETDEVICEINFO4args {
           deviceid4   deviceid;
           layouttype4 type;
           count4      maxcount;
           bitmap4     notify_mask;
       };

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. πŸ’–

GETDEVICEINFO4res

this one is a union switch on nfsstat4 status with cases for NFS4_OK and NFS4ERR_TOOSMALL. periodt πŸ’…

   class GETDEVICEINFO4res(baseobj.BaseObj)
       union switch GETDEVICEINFO4res (nfsstat4 status) {
           case const.NFS4_OK:
               GETDEVICEINFO4resok resok;
           case const.NFS4ERR_TOOSMALL:
               count4 mincount;
           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. πŸ¦‹

GETDEVICEINFO4resok

okay so this is a struct with device_addr and notify_mask. so fetch 🌈

   class GETDEVICEINFO4resok(baseobj.BaseObj)
       struct GETDEVICEINFO4resok {
           device_addr4 device_addr;
           bitmap4      notify_mask;
       };

Methods defined here:

  • __init__(self, unpack) β€” Constructor! It initializes the object's private data based on the arguments. Positional, named, or both β€” you do you. πŸ’œ

GETDEVICELIST4args

bestie this one's a struct with comments, so pay attention. It's got type, maxdevices, cookie, and verifier. iykyk ✨

   class GETDEVICELIST4args(baseobj.BaseObj)
       struct GETDEVICELIST4args {
           /* CURRENT_FH: object belonging to the file system */
           layouttype4 type;
           /* number of deviceIDs to return */
           count4      maxdevices;
           nfs_cookie4 cookie;
           verifier4   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. πŸŽ€

GETDEVICELIST4res

this one is a union switch on nfsstat4 status. slay πŸ’…

   class GETDEVICELIST4res(baseobj.BaseObj)
       union switch GETDEVICELIST4res (nfsstat4 status) {
           case const.NFS4_OK:
               GETDEVICELIST4resok resok;
           default:
               void;
       };

Methods defined here:

  • __init__(self, unpack) β€” Constructor. It sets up the object's private data from the args. Positional, named, or a combo. 🌸

GETDEVICELIST4resok

okay so this struct has cookie, verifier, deviceid_list<>, and eof. iconic 🌟

   class GETDEVICELIST4resok(baseobj.BaseObj)
       struct GETDEVICELIST4resok {
           nfs_cookie4 cookie;
           verifier4   verifier;
           deviceid4   deviceid_list<>;
           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. 🫢

GETFH4res

this one is a union switch on nfsstat4 status. periodt πŸ’…

   class GETFH4res(baseobj.BaseObj)
       union switch GETFH4res (nfsstat4 status) {
           case const.NFS4_OK:
               GETFH4resok 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. ✨

GETFH4resok

bestie this is a struct with a single nfs_fh4 fh field. so cute 🌸

   class GETFH4resok(baseobj.BaseObj)
       struct GETFH4resok {
           nfs_fh4 fh;
       };

Methods defined here:

  • __init__(self, unpack) β€” Constructor! It sets up the object's private data from the args you pass. Positional, named, or both. πŸ’–

GETXATTR4args

okay so this struct has a comment: /* CURRENT_FH: file */ and a field xattrkey4 name. iykyk πŸ’…

   class GETXATTR4args(baseobj.BaseObj)
       struct GETXATTR4args {
           /* CURRENT_FH: file */
           xattrkey4 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. πŸ¦‹

GETXATTR4res

this one is a union switch on nfsstat4 status. slay ✨

   class GETXATTR4res(baseobj.BaseObj)
       union switch GETXATTR4res (nfsstat4 status) {
           case const.NFS4_OK:
               xattrvalue4 value;
           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. πŸ’œ

GET_DIR_DELEGATION4args

bestie this struct is packed with fields: deleg_avail, notification, child_attr_delay, attr_delay, child_attributes, and attributes. Plus a comment. so fetch 🌈

   class GET_DIR_DELEGATION4args(baseobj.BaseObj)
       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;
       };

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. πŸŽ€

GET_DIR_DELEGATION4res

this one is a union switch on nfsstat4 status. periodt πŸ’…

   class GET_DIR_DELEGATION4res(baseobj.BaseObj)
       union switch GET_DIR_DELEGATION4res (nfsstat4 status) {
           case const.NFS4_OK:
               GET_DIR_DELEGATION4res_non_fatal resok;
           default:
               void;
       };

Methods defined here:

  • __init__(self, unpack) β€” Constructor! It sets up the object's private data from the args. Positional, named, or both. 🌸

GET_DIR_DELEGATION4res_non_fatal

okay so this is a union switch on gddrnf4_status with cases GDD4_OK and GDD4_UNAVAIL. iconic ✨

   class GET_DIR_DELEGATION4res_non_fatal(baseobj.BaseObj)
       union switch GET_DIR_DELEGATION4res_non_fatal (gddrnf4_status status) {
           case const.GDD4_OK:
               GET_DIR_DELEGATION4resok resok;
           case const.GDD4_UNAVAIL:
               bool signal;
       };

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. 🫢

GET_DIR_DELEGATION4resok

bestie this struct has verifier, stateid, notification, child_attributes, and attributes, plus comments. iykyk πŸ’…

   class GET_DIR_DELEGATION4resok(baseobj.BaseObj)
       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;
       };

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. πŸ’–

ILLEGAL4res

this one is a struct with a single nfsstat4 status field. slay ✨

   class ILLEGAL4res(baseobj.BaseObj)
       struct ILLEGAL4res {
           nfsstat4 status;
       };

Methods defined here:

  • __init__(self, unpack) β€” Constructor. It sets up the object's private data from the args. Positional, named, or a combo. πŸ¦‹

IO_ADVISE4args

okay so this struct has a comment /* CURRENT_FH: file */ and fields stateid, offset, count, and mask. so fetch 🌈

   class IO_ADVISE4args(baseobj.BaseObj)
       struct IO_ADVISE4args {
           /* CURRENT_FH: file */
           stateid4 stateid;
           offset4  offset;
           length4  count;
           bitmap4  mask;
       };

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. πŸ’œ

IO_ADVISE4res

this one is a union switch on nfsstat4 status. periodt πŸ’…

   class IO_ADVISE4res(baseobj.BaseObj)
       union switch IO_ADVISE4res (nfsstat4 status) {
           case const.NFS4_OK:
               IO_ADVISE4resok 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. πŸŽ€

IO_ADVISE4resok

bestie this is a struct with a single bitmap4 mask field. iconic 🌟

   class IO_ADVISE4resok(baseobj.BaseObj)
       struct IO_ADVISE4resok {
           bitmap4 mask;
       };

Methods defined here:

  • __init__(self, unpack) β€” Constructor! It sets up the object's private data from the args you give. Positional, named, or both. πŸ’…

IO_ADVISE_type4

okay so this one is an enum. slay ✨

class IO_ADVISE_type4(packet.utils.Enum)

enum IO_ADVISE_type4

LAYOUTCOMMIT4args

this struct has a comment /* CURRENT_FH: file */ and fields offset, length, reclaim, stateid, last_write_offset, time_modify, and layoutupdate. so fetch 🌈

   class LAYOUTCOMMIT4args(baseobj.BaseObj)
       struct LAYOUTCOMMIT4args {
           /* CURRENT_FH: file */
           offset4       offset;
           length4       length;
           bool          reclaim;
           stateid4      stateid;
           newoffset4    last_write_offset;
           newtime4      time_modify;
           layoutupdate4 layoutupdate;
       };

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. 🫢

LAYOUTCOMMIT4res

this one is a union switch on nfsstat4 status. periodt πŸ’…

   class LAYOUTCOMMIT4res(baseobj.BaseObj)
       union switch LAYOUTCOMMIT4res (nfsstat4 status) {
           case const.NFS4_OK:
               LAYOUTCOMMIT4resok 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. πŸ’–

LAYOUTCOMMIT4resok

bestie this struct has a single newsize4 newsize field. iconic 🌸

   class LAYOUTCOMMIT4resok(baseobj.BaseObj)
       struct LAYOUTCOMMIT4resok {
           newsize4 newsize;
       };

Methods defined here:

  • __init__(self, unpack) β€” Constructor. It sets up the object's private data from the args. Positional, named, or a combo. πŸ¦‹

LAYOUTERROR4args

okay so this struct has a comment /* CURRENT_FH: file */ and fields offset, length, stateid, and errors<>. slay ✨

   class LAYOUTERROR4args(baseobj.BaseObj)
       struct LAYOUTERROR4args {
           /* CURRENT_FH: file */
           offset4       offset;
           length4       length;
           stateid4      stateid;
           device_error4 errors<>;
       };

Methods defined here:

  • __init__(self, unpack) β€” Constructor

Okay so like, that __init__ we were just talking about? It initializes the object's private data according to the arguments given. Arguments can be given as positional, named arguments or a combination of both. πŸ’–


class LAYOUTERROR4res(baseobj.BaseObj) πŸ¦‹

       struct LAYOUTERROR4res {
           nfsstat4 status;
       };

Methods defined here: πŸ’«

  • __init__(self, unpack) β€” Constructor! πŸ’… It initializes the object's private data according to the arguments given. Arguments can be given as positional, named arguments or a combination of both. ✨

class LAYOUTGET4args(baseobj.BaseObj) 🌸

       struct LAYOUTGET4args {
           /* CURRENT_FH: file */
           bool          avail;
           layouttype4   type;
           layoutiomode4 iomode;
           offset4       offset;
           length4       length;
           length4       minlength;
           stateid4      stateid;
           count4        maxcount;
       };

Methods defined here: πŸ’«

  • __init__(self, unpack) β€” Constructor! πŸ’… It initializes the object's private data according to the arguments given. Arguments can be given as positional, named arguments or a combination of both. ✨

class LAYOUTGET4res(baseobj.BaseObj) πŸ¦‹

       union switch LAYOUTGET4res (nfsstat4 status) {
           case const.NFS4_OK:
               LAYOUTGET4resok resok;
           case const.NFS4ERR_LAYOUTTRYLATER:
               /* Server will signal layout availability */
               bool signal;
           default:
               void;
       };

Methods defined here: πŸ’«

  • __init__(self, unpack) β€” Constructor! πŸ’… It initializes the object's private data according to the arguments given. Arguments can be given as positional, named arguments or a combination of both. ✨

class LAYOUTGET4resok(baseobj.BaseObj) 🌈

       struct LAYOUTGET4resok {
           bool     return_on_close;
           stateid4 stateid;
           layout4  layout<>;
       };

Methods defined here: πŸ’«

  • __init__(self, unpack) β€” Constructor! πŸ’… It initializes the object's private data according to the arguments given. Arguments can be given as positional, named arguments or a combination of both. ✨

class LAYOUTRETURN4args(baseobj.BaseObj) ⭐

       struct LAYOUTRETURN4args {
           /* CURRENT_FH: file */
           bool          reclaim;
           layouttype4   type;
           layoutiomode4 iomode;
           layoutreturn4 layoutreturn;
       };

Methods defined here: πŸ’«

  • __init__(self, unpack) β€” Constructor! πŸ’… It initializes the object's private data according to the arguments given. Arguments can be given as positional, named arguments or a combination of both. ✨

class LAYOUTRETURN4res(baseobj.BaseObj) πŸ“

       union switch LAYOUTRETURN4res (nfsstat4 status) {
           case const.NFS4_OK:
               layoutreturn_stateid stateid;
           default:
               void;
       };

Methods defined here: πŸ’«

  • __init__(self, unpack) β€” Constructor! πŸ’… It initializes the object's private data according to the arguments given. Arguments can be given as positional, named arguments or a combination of both. ✨

class LAYOUTSTATS4args(baseobj.BaseObj) πŸ”₯

       struct LAYOUTSTATS4args {
           /* CURRENT_FH: file */
           offset4       offset;
           length4       length;
           stateid4      stateid;
           io_info4      read;
           io_info4      write;
           deviceid4     deviceid;
           layoutupdate4 layoutupdate;
       };

Methods defined here: πŸ’«

  • __init__(self, unpack) β€” Constructor! πŸ’… It initializes the object's private data according to the arguments given. Arguments can be given as positional, named arguments or a combination of both. ✨

class LAYOUTSTATS4res(baseobj.BaseObj) πŸ’™

       struct LAYOUTSTATS4res {
           nfsstat4 status;
       };

Methods defined here: πŸ’«

  • __init__(self, unpack) β€” Constructor! πŸ’… It initializes the object's private data according to the arguments given. Arguments can be given as positional, named arguments or a combination of both. ✨

class LINK4args(baseobj.BaseObj) 🌿

       struct LINK4args {
           /*
            * SAVED_FH: source object
            * CURRENT_FH: target directory
            */
           component4 name;
       };

Methods defined here: πŸ’«

  • __init__(self, unpack) β€” Constructor! πŸ’… It initializes the object's private data according to the arguments given. Arguments can be given as positional, named arguments or a combination of both. ✨

class LINK4res(baseobj.BaseObj) πŸ¦‹

       union switch LINK4res (nfsstat4 status) {
           case const.NFS4_OK:
               LINK4resok resok;
           default:
               void;
       };

Methods defined here: πŸ’«

  • __init__(self, unpack) β€” Constructor! πŸ’… It initializes the object's private data according to the arguments given. Arguments can be given as positional, named arguments or a combination of both. ✨

class LINK4resok(baseobj.BaseObj) πŸ’–

       struct LINK4resok {
           change_info4 cinfo;
       };

Methods defined here: πŸ’«

  • __init__(self, unpack) β€” Constructor! πŸ’… It initializes the object's private data according to the arguments given. Arguments can be given as positional, named arguments or a combination of both. ✨

class LISTXATTRS4args(baseobj.BaseObj) 🌸

       struct LISTXATTRS4args {
           /* CURRENT_FH: file */
           nfs_cookie4 cookie;
           count4      maxcount;
       };

Methods defined here: πŸ’«

  • __init__(self, unpack) β€” Constructor! πŸ’… It initializes the object's private data according to the arguments given. Arguments can be given as positional, named arguments or a combination of both. ✨

class LISTXATTRS4res(baseobj.BaseObj) πŸ¦‹

       union switch LISTXATTRS4res (nfsstat4 status) {
           case const.NFS4_OK:
               LISTXATTRS4resok value;
           default:
               void;
       };

Methods defined here: πŸ’«

  • __init__(self, unpack) β€” Constructor! πŸ’… It initializes the object's private data according to the arguments given. Arguments can be given as positional, named arguments or a combination of both. ✨

class LISTXATTRS4resok(baseobj.BaseObj) πŸŽ€

       struct LISTXATTRS4resok {
           nfs_cookie4 cookie;
           xattrkey4   names<>;
           bool        eof;
       };

Methods defined here: πŸ’«

  • __init__(self, unpack) β€” Constructor! πŸ’… It initializes the object's private data according to the arguments given. Arguments can be given as positional, named arguments or a combination of both. ✨

class LOCK4args(baseobj.BaseObj) πŸ”’

       struct LOCK4args {
           /* CURRENT_FH: file */
           nfs_lock_type4 locktype;
           bool           reclaim;
           offset4        offset;
           length4        length;
           locker4        locker;
       };

Methods defined here: πŸ’«

  • __init__(self, unpack) β€” Constructor! πŸ’… It initializes the object's private data according to the arguments given. Arguments can be given as positional, named arguments or a combination of both. ✨

class LOCK4denied(baseobj.BaseObj) 🚫

       struct LOCK4denied {
           offset4        offset;
           length4        length;
           nfs_lock_type4 locktype;
           lock_owner4    owner;
       };

Methods defined here: πŸ’«

  • __init__(self, unpack) β€” Constructor! πŸ’… It initializes the object's private data according to the arguments given. Arguments can be given as positional, named arguments or a combination of both. ✨

class LOCK4res(baseobj.BaseObj) πŸ”₯

       union switch LOCK4res (nfsstat4 status) {
           case const.NFS4_OK:
               LOCK4resok resok;
           case const.NFS4ERR_DENIED:
               LOCK4denied denied;
           default:
               void;
       };

Methods defined here: πŸ’«

  • __init__(self, unpack) β€” Constructor! πŸ’… It initializes the object's private data according to the arguments given. Arguments can be given as positional, named arguments or a combination of both. ✨

class LOCK4resok(baseobj.BaseObj) βœ…

       struct LOCK4resok {
           stateid4 stateid;
       };

Methods defined here: πŸ’«

  • __init__(self, unpack) β€” Constructor! πŸ’… It initializes the object's private data according to the arguments given. Arguments can be given as positional, named arguments or a combination of both. ✨

class LOCKT4args(baseobj.BaseObj) πŸ§ͺ

       struct LOCKT4args {
           /* CURRENT_FH: file */
           nfs_lock_type4 locktype;
           offset4        offset;
           length4        length;
           lock_owner4    owner;
       };

Methods defined here: πŸ’«

  • __init__(self, unpack) β€” Constructor! πŸ’… It initializes the object's private data according to the arguments given. Arguments can be given as positional, named arguments or a combination of both. ✨

class LOCKT4res(baseobj.BaseObj) πŸ¦‹

       union switch LOCKT4res (nfsstat4 status) {
           case const.NFS4ERR_DENIED:
               LOCK4denied denied;
           case const.NFS4_OK:
               void;
           default:
               void;
       };

Methods defined here: πŸ’«

  • __init__(self, unpack) β€” Constructor! πŸ’… It initializes the object's private data according to the arguments given. Arguments can be given as positional, named arguments or a combination of both. ✨

class LOCKU4args(baseobj.BaseObj) πŸ”“

       struct LOCKU4args {
           /* CURRENT_FH: file */
           nfs_lock_type4 locktype;
           seqid4         seqid;
           stateid4       stateid;
           offset4        offset;
           length4        length;
       };

Methods defined here: πŸ’«

  • __init__(self, unpack) β€” Constructor! πŸ’… It initializes the object's private data according to the arguments given. Arguments can be given as positional, named arguments or a combination of both. ✨

class LOCKU4res(baseobj.BaseObj) 🌈

       union switch LOCKU4res (nfsstat4 status) {
           case const.NFS4_OK:
               stateid4 stateid;
           default:
               void;
       };

Methods defined here: πŸ’«

  • __init__(self, unpack) β€” Constructor! πŸ’… It initializes the object's private data according to the arguments given. Arguments can be given as positional, named arguments or a combination of both. ✨

class LOOKUP4args(baseobj.BaseObj) πŸ”

       struct LOOKUP4args {
           /* CURRENT_FH: directory */
           component4 name;
       };

Methods defined here: πŸ’«

  • __init__(self, unpack) β€” Constructor! πŸ’… It initializes the object's private data according to the arguments given. Arguments can be given as positional, named arguments or a combination of both. ✨

class LOOKUP4res(baseobj.BaseObj) πŸŽ€

       struct LOOKUP4res {
           /* New CURRENT_FH: object */
           nfsstat4 status;
       };

Methods defined here: πŸ’«

  • __init__(self, unpack) β€” Constructor! πŸ’…

class LOOKUPP4res(baseobj.BaseObj)

struct LOOKUPP4res {
    /* new CURRENT_FH: parent directory */
    nfsstat4 status;
};

Methods defined here:

  • __init__(self, unpack) β€” Constructor. It initializes the object's private data according to the arguments you give it. Arguments can be positional, named, or a combination of both. πŸ’…

class NVERIFY4args(baseobj.BaseObj)

struct NVERIFY4args {
    /* CURRENT_FH: object */
    fattr4 attributes;
};

Methods defined here:

  • __init__(self, unpack) β€” Constructor. It initializes the object's private data according to the arguments you give it. Arguments can be positional, named, or a combination of both. ✨

class NVERIFY4res(baseobj.BaseObj)

struct NVERIFY4res {
    nfsstat4 status;
};

Methods defined here:

  • __init__(self, unpack) β€” Constructor. It initializes the object's private data according to the arguments you give it. Arguments can be positional, named, or a combination of both. πŸ¦‹

class OFFLOAD_CANCEL4args(baseobj.BaseObj)

struct OFFLOAD_CANCEL4args {
    /* CURRENT_FH: file to cancel */
    stateid4 stateid;
};

Methods defined here:

  • __init__(self, unpack) β€” Constructor. It initializes the object's private data according to the arguments you give it. Arguments can be positional, named, or a combination of both. 🌸

class OFFLOAD_CANCEL4res(baseobj.BaseObj)

struct OFFLOAD_CANCEL4res {
    nfsstat4 status;
};

Methods defined here:

  • __init__(self, unpack) β€” Constructor. It initializes the object's private data according to the arguments you give it. Arguments can be positional, named, or a combination of both. πŸ’–

class OFFLOAD_STATUS4args(baseobj.BaseObj)

struct OFFLOAD_STATUS4args {
    /* CURRENT_FH: destination file */
    stateid4 stateid;
};

Methods defined here:

  • __init__(self, unpack) β€” Constructor. It initializes the object's private data according to the arguments you give it. Arguments can be positional, named, or a combination of both. 🫢

class OFFLOAD_STATUS4res(baseobj.BaseObj)

union switch OFFLOAD_STATUS4res (nfsstat4 status) {
    case const.NFS4_OK:
        OFFLOAD_STATUS4resok resok;
    default:
        void;
};

Methods defined here:

  • __init__(self, unpack) β€” Constructor. It initializes the object's private data according to the arguments you give it. Arguments can be positional, named, or a combination of both. 😭

class OFFLOAD_STATUS4resok(baseobj.BaseObj)

struct OFFLOAD_STATUS4resok {
    length4  count;
    nfsstat4 complete<1>;
};

Methods defined here:

  • __init__(self, unpack) β€” Constructor. It initializes the object's private data according to the arguments you give it. Arguments can be positional, named, or a combination of both. πŸ”₯

class OPEN4args(baseobj.BaseObj)

struct OPEN4args {
    seqid4      seqid;
    uint32_t    access;
    uint32_t    deny;
    open_owner4 owner;
    openflag4   openhow;
    open_claim4 claim;
};

Methods defined here:

  • __init__(self, unpack) β€” Constructor. It initializes the object's private data according to the arguments you give it. Arguments can be positional, named, or a combination of both. πŸ‘‘

class OPEN4res(baseobj.BaseObj)

union switch OPEN4res (nfsstat4 status) {
    case const.NFS4_OK:
        /* New CURRENT_FH: opened file */
        OPEN4resok resok;
    default:
        void;
};

Methods defined here:

  • __init__(self, unpack) β€” Constructor. It initializes the object's private data according to the arguments you give it. Arguments can be positional, named, or a combination of both. 🌈

class OPEN4resok(baseobj.BaseObj)

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 */
};

Methods defined here:

  • __init__(self, unpack) β€” Constructor. It initializes the object's private data according to the arguments you give it. Arguments can be positional, named, or a combination of both. ⭐

class OPENATTR4args(baseobj.BaseObj)

struct OPENATTR4args {
    /* CURRENT_FH: object */
    bool createdir;
};

Methods defined here:

  • __init__(self, unpack) β€” Constructor. It initializes the object's private data according to the arguments you give it. Arguments can be positional, named, or a combination of both. πŸ’€

class OPENATTR4res(baseobj.BaseObj)

struct OPENATTR4res {
    /*
     * If status is NFS4_OK,
     *   new CURRENT_FH: named attribute directory
     */
    nfsstat4 status;
};

Methods defined here:

  • __init__(self, unpack) β€” Constructor. It initializes the object's private data according to the arguments you give it. Arguments can be positional, named, or a combination of both. πŸ™ˆ

class OPEN_CONFIRM4args(baseobj.BaseObj)

struct OPEN_CONFIRM4args {
    /* CURRENT_FH: opened file */
    stateid4 stateid;
    seqid4   seqid;
};

Methods defined here:

  • __init__(self, unpack) β€” Constructor. It initializes the object's private data according to the arguments you give it. Arguments can be positional, named, or a combination of both. πŸ“

class OPEN_CONFIRM4res(baseobj.BaseObj)

union switch OPEN_CONFIRM4res (nfsstat4 status) {
    case const.NFS4_OK:
        OPEN_CONFIRM4resok resok;
    default:
        void;
};

Methods defined here:

  • __init__(self, unpack) β€” Constructor. It initializes the object's private data according to the arguments you give it. Arguments can be positional, named, or a combination of both. 🧚

class OPEN_CONFIRM4resok(baseobj.BaseObj)

struct OPEN_CONFIRM4resok {
    stateid4 stateid;
};

Methods defined here:

  • __init__(self, unpack) β€” Constructor. It initializes the object's private data according to the arguments you give it. Arguments can be positional, named, or a combination of both. πŸ’œ

class OPEN_DOWNGRADE4args(baseobj.BaseObj)

struct OPEN_DOWNGRADE4args {
    /* CURRENT_FH: opened file */
    stateid4 stateid;
    seqid4   seqid;
    uint32_t access;
    uint32_t deny;
};

Methods defined here:

  • __init__(self, unpack) β€” Constructor. It initializes the object's private data according to the arguments you give it. Arguments can be positional, named, or a combination of both. πŸ’–

class OPEN_DOWNGRADE4res(baseobj.BaseObj)

union switch OPEN_DOWNGRADE4res (nfsstat4 status) {
    case const.NFS4_OK:
        OPEN_DOWNGRADE4resok resok;
    default:
        void;
};

Methods defined here:

  • __init__(self, unpack) β€” Constructor. It initializes the object's private data according to the arguments you give it. Arguments can be positional, named, or a combination of both. ✨

class OPEN_DOWNGRADE4resok(baseobj.BaseObj)

struct OPEN_DOWNGRADE4resok {
    stateid4 stateid;
};

Methods defined here:

  • __init__(self, unpack) β€” Constructor. It initializes the object's private data according to the arguments you give it. Arguments can be positional, named, or a combination of both. πŸ¦‹

class PUTFH4args(baseobj.BaseObj)

struct PUTFH4args {
    nfs_fh4 fh;
};

Methods defined here:

  • __init__(self, unpack) β€” Constructor. It initializes the object's private data according to the arguments you give it. Arguments can be positional, named, or a combination of both. 🌸

class PUTFH4res(baseobj.BaseObj)

struct PUTFH4res {
    /*
     * If status is NFS4_OK,
     *    new CURRENT_FH: argument to PUTFH
     */
    nfsstat4 status;
};

Methods defined here:

  • __init__(self, unpack) β€” Constructor. It initializes the object's private data according to the arguments you give it. Arguments can be positional, named, or a combination of both. 🫢

class PUTPUBFH4res(baseobj.BaseObj)

struct PUTPUBFH4res {
    /*
     * If status is NFS4_OK,
     *   new CURRENT_FH: public fh
     */
    nfsstat4 status;
};

Methods defined here:

  • __init__(self, unpack) β€” Constructor. It initializes the object's private data according to the arguments you give it. Arguments can be positional, named, or a combination of both. 😭

class PUTROOTFH4res(baseobj.BaseObj)

struct PUTROOTFH4res {
    /*
     * If status is NFS4_OK,
     *   new CURRENT_FH: root fh
     */
    nfsstat4 status;
};

Methods defined here:

  • __init__(self, unpack) β€” Constructor. It initializes the object's private data according to the arguments you give it. Arguments can be positional, named, or a combination of both. πŸ”₯

class READ4args(baseobj.BaseObj)

struct READ4args {
    /* CURRENT_FH: file */
    stateid4 stateid;
    offset4  offset;
    count4   count;
};

Methods defined here:

  • __init__(self, unpack) β€” Constructor. It initializes the object's private data according to the arguments you give it. Arguments can be positional, named, or a combination of both. πŸ‘‘

class READ4res(baseobj.BaseObj)

union switch READ4res (nfsstat4 status) {
    case const.NFS4_OK:
        READ4resok resok;
    default:
        void;
};

Methods defined here:

  • __init__(self, unpack) β€” Constructor. It initializes the object's private data according to the arguments you give it. Arguments can be positional, named, or a combination of both. 🌈

πŸ¦‹ class READ4resok(packet.utils.RDMAbase)

okay so this one is a whole RDMAbase girlie, and her struct is giving:

struct READ4resok {
    bool   eof;
    opaque data<>;
};

Methods defined here:

  • __init__(self, unpack) β€” Constructor. Sets up the object's private data from the arguments you hand over. You can pass them positionally, as named arguments, or a mix of both. πŸ’…

πŸŽ€ class READDIR4args(baseobj.BaseObj)

next up, directory-reading args, and yes she has a /* CURRENT_FH: directory */ note right there in the struct. periodt.

struct READDIR4args {
    /* CURRENT_FH: directory */
    nfs_cookie4 cookie;
    verifier4   verifier;
    count4      dircount;
    count4      maxcount;
    bitmap4     request;
};

Methods defined here:

  • __init__(self, unpack) β€” Constructor. Initializes the object's private data according to the arguments given. Arguments can be positional, named, or a combo of both. ✨

🌸 class READDIR4res(baseobj.BaseObj)

a union switch, bestie. it's deciding based on nfsstat4 status, and if it's const.NFS4_OK you get READDIR4resok resok, otherwise void. iconic.

union switch READDIR4res (nfsstat4 status) {
    case const.NFS4_OK:
        READDIR4resok resok;
    default:
        void;
};

Methods defined here:

  • __init__(self, unpack) β€” Constructor. Initializes object's private data according to the arguments given. Arguments can be given as positional, named arguments or a combination of both. 🫢

πŸ¦‹ class READDIR4resok(baseobj.BaseObj)

the resok half of that whole situation, and she's carrying a verifier and a dirlist4 reply. no notes.

struct READDIR4resok {
    verifier4 verifier;
    dirlist4  reply;
};

Methods defined here:

  • __init__(self, unpack) β€” Constructor. Initializes the object's private data based on the arguments you give it. You can give them positionally, by name, or both. πŸ’–

🧚 class READLINK4res(baseobj.BaseObj)

another union switch, another nfsstat4 status moment. const.NFS4_OK gets you READLINK4resok resok; everything else gets void.

union switch READLINK4res (nfsstat4 status) {
    case const.NFS4_OK:
        READLINK4resok resok;
    default:
        void;
};

Methods defined here:

  • __init__(self, unpack) β€” Constructor. Initializes object's private data according to the arguments given. Arguments can be given as positional, named arguments or a combination of both. 🌈

πŸ’œ class READLINK4resok(packet.utils.RDMAbase)

she's an RDMAbase subclass and her whole struct is just linktext4 link. minimal, clean, ate.

struct READLINK4resok {
    linktext4 link;
};

Methods defined here:

  • __init__(self, unpack) β€” Constructor. Sets up object's private data according to the arguments given. Arguments can be given as positional, named arguments or a combination of both. ⭐

πŸ“ class READ_PLUS4args(baseobj.BaseObj)

okay so READ_PLUS args, with the /* CURRENT_FH: file */ comment living right there. she's got stateid, offset, and count. slay.

struct READ_PLUS4args {
    /* CURRENT_FH: file */
    stateid4 stateid;
    offset4  offset;
    count4   count;
};

Methods defined here:

  • __init__(self, unpack) β€” Constructor. Initializes object's private data according to the arguments given. Arguments can be given as positional, named arguments or a combination of both. πŸ”₯

πŸ‘‘ class READ_PLUS4res(baseobj.BaseObj)

union switch again, bestie. const.NFS4_OK β†’ read_plus_res4 resok; default β†’ void.

union switch READ_PLUS4res (nfsstat4 status) {
    case const.NFS4_OK:
        read_plus_res4 resok;
    default:
        void;
};

Methods defined here:

  • __init__(self, unpack) β€” Constructor. Initializes object's private data according to the arguments given. Arguments can be given as positional, named arguments or a combination of both. πŸ’«

πŸ’€ class RECLAIM_COMPLETE4args(baseobj.BaseObj)

this one is a union switch on bool one_fs. if one_fs is const.TRUE, there's a whole comment about CURRENT_FH: object in filesystem reclaim is complete for. and then void; default is also void. the way that both branches are just void? lowkey iconic.

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;
};

Methods defined here:

  • __init__(self, unpack) β€” Constructor. Initializes object's private data according to the arguments given. Arguments can be given as positional, named arguments or a combination of both. 😭

πŸŽ€ class RECLAIM_COMPLETE4res(baseobj.BaseObj)

simple queen: one nfsstat4 status and that's the whole struct.

struct RECLAIM_COMPLETE4res {
    nfsstat4 status;
};

Methods defined here:

  • __init__(self, unpack) β€” Constructor. Initializes object's private data according to the arguments given. Arguments can be given as positional, named arguments or a combination of both. πŸ’™

🌟 class RELEASE_LOCKOWNER4args(baseobj.BaseObj)

lockowner release args, carrying a single lock_owner4 owner. no cap.

struct RELEASE_LOCKOWNER4args {
    lock_owner4 owner;
};

Methods defined here:

  • __init__(self, unpack) β€” Constructor. Initializes object's private data according to the arguments given. Arguments can be given as positional, named arguments or a combination of both. 🌿

πŸ¦‹ class RELEASE_LOCKOWNER4res(baseobj.BaseObj)

and the response is just a nfsstat4 status. short, sweet, to the point.

struct RELEASE_LOCKOWNER4res {
    nfsstat4 status;
};

Methods defined here:

  • __init__(self, unpack) β€” Constructor. Initializes object's private data according to the arguments given. Arguments can be given as positional, named arguments or a combination of both. πŸ’–

πŸŽ€ class REMOVE4args(baseobj.BaseObj)

REMOVE args! note the /* CURRENT_FH: directory */ comment, because context matters. she has component4 name.

struct REMOVE4args {
    /* CURRENT_FH: directory */
    component4 name;
};

Methods defined here:

  • __init__(self, unpack) β€” Constructor. Initializes object's private data according to the arguments given. Arguments can be given as positional, named arguments or a combination of both. ✨

🌸 class REMOVE4res(baseobj.BaseObj)

union switch on nfsstat4 status. const.NFS4_OK β†’ REMOVE4resok resok; default β†’ void. yep.

union switch REMOVE4res (nfsstat4 status) {
    case const.NFS4_OK:
        REMOVE4resok resok;
    default:
        void;
};

Methods defined here:

  • __init__(self, unpack) β€” Constructor. Initializes object's private data according to the arguments given. Arguments can be given as positional, named arguments or a combination of both. 🫢

πŸ¦‹ class REMOVE4resok(baseobj.BaseObj)

resok for REMOVE, and she's got change_info4 cinfo. that's it.

struct REMOVE4resok {
    change_info4 cinfo;
};

Methods defined here:

  • __init__(self, unpack) β€” Constructor. Initializes object's private data according to the arguments given. Arguments can be given as positional, named arguments or a combination of both. πŸ’œ

🧚 class REMOVEXATTR4args(baseobj.BaseObj)

REMOVEXATTR args, with /* CURRENT_FH: file */ and an xattrkey4 name. periodt.

struct REMOVEXATTR4args {
    /* CURRENT_FH: file */
    xattrkey4 name;
};

Methods defined here:

  • __init__(self, unpack) β€” Constructor. Initializes object's private data according to the arguments given. Arguments can be given as positional, named arguments or a combination of both. 🌈

πŸ’œ class REMOVEXATTR4res(baseobj.BaseObj)

union switch again. const.NFS4_OK β†’ change_info4 info; default β†’ void.

union switch REMOVEXATTR4res (nfsstat4 status) {
    case const.NFS4_OK:
        change_info4 info;
    default:
        void;
};

Methods defined here:

  • __init__(self, unpack) β€” Constructor. Initializes object's private data according to the arguments given. Arguments can be given as positional, named arguments or a combination of both. ⭐

πŸ“ class RENAME4args(baseobj.BaseObj)

RENAME args, and she has two comments: /* SAVED_FH: source directory */ and /* CURRENT_FH: target directory */. then component4 name and component4 newname. the drama.

struct RENAME4args {
    /* SAVED_FH: source directory */
    component4 name;
    /* CURRENT_FH: target directory */
    component4 newname;
};

Methods defined here:

  • __init__(self, unpack) β€” Constructor. Initializes object's private data according to the arguments given. Arguments can be given as positional, named arguments or a combination of both. πŸ”₯

πŸ‘‘ class RENAME4res(baseobj.BaseObj)

union switch on nfsstat4 status. const.NFS4_OK β†’ RENAME4resok resok; default β†’ void. you know the drill.

union switch RENAME4res (nfsstat4 status) {
    case const.NFS4_OK:
        RENAME4resok resok;
    default:
        void;
};

Methods defined here:

  • __init__(self, unpack) β€” Constructor. Initializes object's private data according to the arguments given. Arguments can be given as positional, named arguments or a combination of both. πŸ’«

πŸ’€ class RENAME4resok(baseobj.BaseObj)

resok with change_info4 source and change_info4 target. both sides got receipts.

struct RENAME4resok {
    change_info4 source;
    change_info4 target;
};

Methods defined here:

  • __init__(self, unpack) β€” Constructor. Initializes object's private data according to the arguments given. Arguments can be given as positional, named arguments or a combination of both. 😭

πŸŽ€ class RENEW4args(baseobj.BaseObj)

RENEW args, just a clientid4 clientid in there. simple.

struct RENEW4args {
    clientid4 clientid;
};

Methods defined here:

  • __init__(self, unpack) β€” Constructor. Initializes object's private data according to the arguments given. Arguments can be given as positional, named arguments or a combination of both. πŸ’™

🌟 class RENEW4res(baseobj.BaseObj)

and the response is a single nfsstat4 status. that's the whole vibe.

struct RENEW4res {
    nfsstat4 status;
};

Methods defined here:

  • __init__(self, unpack) β€” Constructor. Initializes object's private data according to the arguments given. Arguments can be given as positional, named arguments or a combination of both. 🌿

πŸ¦‹ class RESTOREFH4res(baseobj.BaseObj)

RESTOREFH response, with a comment saying if status is NFS4_OK, then new CURRENT_FH: value of saved fh. and of course a nfsstat4 status.

struct RESTOREFH4res {
    /*
     * If status is NFS4_OK,
     *     new CURRENT_FH: value of saved fh
     */
    nfsstat4 status;
};

Methods defined here:

  • __init__(self, unpack) β€” Constructor. Initializes object's private data according to the arguments given. Arguments can be given as positional, named arguments or a combination of both. πŸ’–

πŸŽ€ class SAVEFH4res(baseobj.BaseObj)

SAVEFH response, and the comment says if status is NFS4_OK, then new SAVED_FH: value of current fh. plus nfsstat4 status.

struct SAVEFH4res {
    /*
     * If status is NFS4_OK,
     *    new SAVED_FH: value of current fh
     */
    nfsstat4 status;
};

Methods defined here:

  • __init__(self, unpack) β€” Constructor. Initializes object's private data according to the arguments given. Arguments can be given as positional, named arguments or a combination of both. ✨

🌸 class SECINFO4args(baseobj.BaseObj)

SECINFO args, with /* CURRENT_FH: directory */ and a component4 name. yes bestie.

struct SECINFO4args {
    /* CURRENT_FH: directory */
    component4 name;
};

Methods defined here:

  • __init__(self, unpack) β€” Constructor. Initializes object's private data according to the arguments given. Arguments can be given as positional, named arguments or a combination of both. 🫢

πŸ¦‹ class SECINFO4res(baseobj.BaseObj)

last one for this part, and she's a union switch on nfsstat4 status. const.NFS4_OK gets /* CURRENTFH: consumed */ and SECINFO4resok resok; default is void.

union switch SECINFO4res (nfsstat4 status) {
    case const.NFS4_OK:
        /* CURRENTFH: consumed */
        SECINFO4resok resok;
    default:
        void;
};

Methods defined here:

  • __init__(self, unpack) β€” Constructor. Initializes object's private data according to the arguments given. Arguments can be given as positional, named arguments or a combination of both. πŸ’œ

class SECINFO_NO_NAME4args(baseobj.BaseObj)

okay so this one is lowkey a whole vibe of its own β€” it's an args class, meaning it's the "hey server, here's what I want" side of the convo πŸ’¬ and it's carrying exactly one field. One. Single. Field. Minimalist queen behavior, honestly πŸ‘‘

struct SECINFO_NO_NAME4args {
    /* CURRENT_FH: object or child directory */
    secinfo_style4 style;
};

the CURRENT_FH comment is doing its little job of telling you the filehandle in play is an object or a child directory β€” iykyk, that distinction matters. and then secinfo_style4 style is just… vibing there, holding the style value.

Methods defined here

  • __init__(self, unpack) β€” it's the constructor, bestie πŸ’… it sets up the object's private data based on whatever arguments you hand it, and you can pass those arguments positionally, by name, or as a lil mix of both. your call, no judgment.

class SECINFO_NO_NAME4res(baseobj.BaseObj)

and here's the response side 🫢 but plot twist: it's not even writing out a fresh struct, it's just an alias, a little name-tag situation:

SECINFO_NO_NAME4res = class SECINFO4res(baseobj.BaseObj)

that's it. that's the whole class. it's giving "I'm literally just SECINFO4res but with a different name" energy and honestly? iconic. no extra methods listed here, so we move on πŸ’¨


class SEEK4args(baseobj.BaseObj)

okay so SEEK β€” you're telling the server where to go looking πŸ” and this struct is the request slip:

struct SEEK4args {
    /* CURRENT_FH: file */
    stateid4      stateid;
    offset4       offset;
    data_content4 what;
};

notice the CURRENT_FH here is a file, not a directory β€” different vibe from the last one, keep up bestie ✨ and you've got three things in the bag: the stateid, the offset, and what (a data_content4, aka the content type you're asking about).

Methods defined here

  • __init__(self, unpack) β€” the constructor, periodt. it initializes the object's private data according to the arguments given, and those arguments can be positional, named, or a combination of both. slay.

class SEEK4res(baseobj.BaseObj)

and the answer comes back as a union switch on nfsstat4 status πŸŒ€ so it's a fork-in-the-road situation:

union switch SEEK4res (nfsstat4 status) {
    case const.NFS4_OK:
        seek_res4 resok;
    default:
        void;
};

so if the status is const.NFS4_OK, you get seek_res4 resok β€” the good ending 🌈. anything else? void. nothing. empty. the void. we don't talk about it πŸ’€

Methods defined here

  • __init__(self, unpack) β€” constructor time πŸ’– it sets the object's private data up from the arguments you give, and yeah, positional / named / both is all fair game.

class SEQUENCE4args(baseobj.BaseObj)

oh this one is main character energy for real πŸ‘‘ SEQUENCE is the session workhorse and here's what it takes:

struct SEQUENCE4args {
    sessionid4  sessionid;
    sequenceid4 sequenceid;
    slotid4     slotid;
    slotid4     highest_slotid;
    bool        cachethis;
};

five fields, no notes: sessionid, sequenceid, slotid, highest_slotid, and a lil bool cachethis to round it out. look at that alignment. chef's kiss πŸŽ€

Methods defined here

  • __init__(self, unpack) β€” the constructor, fr fr. it initializes the object's private data according to the arguments given, and those args can be positional, named, or a combo of the two.

class SEQUENCE4res(baseobj.BaseObj)

the reply! another union switch on nfsstat4 status, another crossroads 🌸

union switch SEQUENCE4res (nfsstat4 status) {
    case const.NFS4_OK:
        SEQUENCE4resok resok;
    default:
        void;
};

const.NFS4_OK β†’ SEQUENCE4resok resok (a whole resok class, which we're getting to in literally one second, patience babe 🧚). anything else β†’ void.

Methods defined here

  • __init__(self, unpack) β€” constructor πŸ¦‹ initializes the object's private data according to the arguments given. positional, named, or both β€” dealer's choice.

class SEQUENCE4resok(baseobj.BaseObj)

and here's the actual payload of a successful SEQUENCE πŸ’– six whole fields, we're feasting:

struct SEQUENCE4resok {
    sessionid4  sessionid;
    sequenceid4 sequenceid;
    slotid4     slotid;
    slotid4     highest_slotid;
    slotid4     target_highest_slotid;
    uint32_t    status_flags;
};

see how it echoes back sessionid, sequenceid, slotid and highest_slotid from the args, then adds target_highest_slotid and a uint32_t status_flags? the way it mirrors the request and then serves extra ✨ obsessed.

Methods defined here

  • __init__(self, unpack) β€” the constructor πŸ’… it initializes the object's private data according to the arguments given, and you can pass them positionally, by name, or a mix of both.

class SETATTR4args(baseobj.BaseObj)

SETATTR β€” you're setting attributes, obviously, it's right there in the name πŸ’… and the request carries this:

struct SETATTR4args {
    /* CURRENT_FH: target object */
    stateid4 stateid;
    fattr4   attributes;
};

CURRENT_FH points at the target object 🎯 then you've got a stateid4 stateid and the fattr4 attributes you're trying to set. short, sweet, to the point.

Methods defined here

  • __init__(self, unpack) β€” constructor! 🌟 it initializes the object's private data according to the arguments given, and those arguments may be positional, named, or a combination of both.

class SETATTR4res(baseobj.BaseObj)

the response, and ngl this one's not even a union switch β€” it's just a flat struct, which feels refreshing after all those forks 😌

struct SETATTR4res {
    nfsstat4 status;
    bitmap4  attrset;
};

status plus an attrset bitmap. simple. clean. ate. πŸ’–

Methods defined here

  • __init__(self, unpack) β€” the constructor πŸŽ€ it initializes the object's private data according to the arguments given; positional, named, or both all work.

class SETCLIENTID4args(baseobj.BaseObj)

okay SETCLIENTID β€” introducing yourself to the server, basically 🫢 hi bestie, it's me, your client. here's the intro:

struct SETCLIENTID4args {
    nfs_client_id4 client;
    cb_client4     callback;
    uint32_t       callback_ident;
};

client (an nfs_client_id4), callback (a cb_client4 β€” your callback info), and a uint32_t callback_ident. three fields, all business πŸ’Ό

Methods defined here

  • __init__(self, unpack) β€” constructor ✨ initializes the object's private data according to the arguments given, and yes, positional / named / both are all allowed.

class SETCLIENTID4res(baseobj.BaseObj)

the response is a union switch with a special little branch for when someone's already using your ID 😭 look:

union switch SETCLIENTID4res (nfsstat4 status) {
    case const.NFS4_OK:
        SETCLIENTID4resok resok;
    case const.NFS4ERR_CLID_INUSE:
        clientaddr4 client;
    default:
        void;
};

so const.NFS4_OK gets you SETCLIENTID4resok resok, but const.NFS4ERR_CLID_INUSE hands you back a clientaddr4 client β€” like the server going "bestie… that ID is taken, and here's who has it" πŸ™ˆ and everything else is just void.

Methods defined here

  • __init__(self, unpack) β€” the constructor πŸ’œ it initializes the object's private data according to the arguments given. arguments can be positional, named, or a combination of both.

class SETCLIENTID4resok(baseobj.BaseObj)

the happy-path payload 🌈 two fields, maximum efficiency:

struct SETCLIENTID4resok {
    clientid4 clientid;
    verifier4 verifier;
};

your clientid4 clientid and your verifier4 verifier. hold onto both, they're your little VIP wristbands for the confirm step 🎟️

Methods defined here

  • __init__(self, unpack) β€” constructor, periodt. it initializes the object's private data according to the arguments given, whether those args are positional, named, or a combo of both.

class SETCLIENTID_CONFIRM4args(baseobj.BaseObj)

and speak of the devil β€” the confirm step 😌 you're handing back the exact same two things you just got:

struct SETCLIENTID_CONFIRM4args {
    clientid4 clientid;
    verifier4 verifier;
};

clientid + verifier, matching SETCLIENTID4resok field for field. it's giving "yes hi it's me again, here's my receipt" 🧾

Methods defined here

  • __init__(self, unpack) β€” constructor πŸ’– initializes the object's private data according to the arguments given. positional, named, or both β€” go off.

class SETCLIENTID_CONFIRM4res(baseobj.BaseObj)

the confirmation response is so chill it's basically one line:

struct SETCLIENTID_CONFIRM4res {
    nfsstat4 status;
};

that's it. just status. one field. she's lowkey, she's simple, she's telling you how it went ✨

Methods defined here

  • __init__(self, unpack) β€” the constructor πŸŽ€ it initializes the object's private data according to the arguments given, and those arguments can be positional, named, or a combination of both.

class SETXATTR4args(baseobj.BaseObj)

extended attributes time 🏷️ and this one's got three fields plus a very specific CURRENT_FH note:

struct SETXATTR4args {
    /* CURRENT_FH: file */
    setxattr_option4 option;
    xattrkey4        name;
    xattrvalue4      value;
};

CURRENT_FH is a file here, and then you've got option (a setxattr_option4), name (an xattrkey4), and value (an xattrvalue4). name and value, like a little key-value moment πŸ“

Methods defined here

  • __init__(self, unpack) β€” constructor πŸ¦‹ it initializes the object's private data according to the arguments given. positional, named, or a mix of both β€” all valid.

class SETXATTR4res(baseobj.BaseObj)

response time, and it's a union switch again πŸ”

union switch SETXATTR4res (nfsstat4 status) {
    case const.NFS4_OK:
        change_info4 info;
    default:
        void;
};

const.NFS4_OK β†’ change_info4 info (the change info, naturally πŸ’…). anything else β†’ void. short and dramatic, as always.

Methods defined here

  • __init__(self, unpack) β€” the constructor πŸ’œ it initializes the object's private data according to the arguments given, and those arguments can be positional, named, or a combination of both.

class SET_SSV4args(baseobj.BaseObj)

SET_SSV β€” and the struct is a vibe, because both fields are opaque arrays πŸ‘€

struct SET_SSV4args {
    opaque ssv<>;
    opaque digest<>;
};

opaque ssv<> and opaque digest<> β€” both variable-length, both mysterious, both doing whatever they're doing 🫧 no cap.

Methods defined here

  • __init__(self, unpack) β€” constructor ✨ initializes the object's private data according to the arguments given. positional, named, or both β€” you already know the drill.

class SET_SSV4res(baseobj.BaseObj)

and the reply, union switch, say it with me now 🎢

union switch SET_SSV4res (nfsstat4 status) {
    case const.NFS4_OK:
        SET_SSV4resok resok;
    default:
        void;
};

const.NFS4_OK β†’ SET_SSV4resok resok. everything else β†’ void. we love a predictable structure, honestly 🌸

Methods defined here

  • __init__(self, unpack) β€” the constructor πŸ’– it initializes the object's private data according to the arguments given, and those arguments may be positional, named, or a combination of both.

class SET_SSV4resok(baseobj.BaseObj)

tiny resok alert 🚨 one field and she's done:

struct SET_SSV4resok {
    opaque digest<>;
};

just opaque digest<>. no thoughts, head empty, digest only πŸ’­

Methods defined here

  • __init__(self, unpack) β€” constructor πŸŽ€ it initializes the object's private data according to the arguments given, whether you go positional, named, or both.

class TEST_STATEID4args(baseobj.BaseObj)

TEST_STATEID β€” and the whole request is one field, a variable-length array of stateids πŸ§ͺ

struct TEST_STATEID4args {
    stateid4 stateids<>;
};

stateid4 stateids<> β€” plural, because you can test a whole lil squad of them at once πŸ‘‘

Methods defined here

  • __init__(self, unpack) β€” the constructor πŸ’… it initializes the object's private data according to the arguments given, and those arguments can be positional, named, or a combination of both.

class TEST_STATEID4res(baseobj.BaseObj)

union switch, here we go again πŸ”

union switch TEST_STATEID4res (nfsstat4 status) {
    case const.NFS4_OK:
        TEST_STATEID4resok resok;
    default:
        void;
};

const.NFS4_OK β†’ TEST_STATEID4resok resok. otherwise β†’ void. consistent queen 🌈

Methods defined here

  • __init__(self, unpack) β€” constructor πŸ¦‹ initializes the object's private data according to the arguments given. positional, named, or both β€” your pick.

class TEST_STATEID4resok(baseobj.BaseObj)

and the resok is also a single variable-length array, which feels right, like a matching set 🫢

struct TEST_STATEID4resok {
    nfsstat4 status_codes<>;
};

nfsstat4 status_codes<> β€” a whole list of status codes, one per stateid you threw at it. it's giving receipts for everyone 🧾✨

Methods defined here

  • __init__(self, unpack) β€” the constructor πŸ’œ it initializes the object's private data according to the arguments given, and those arguments can be positional, named, or a combination of both.

class VERIFY4args(baseobj.BaseObj)

VERIFY β€” you're checking whether attributes match what you think they are πŸ‘€ and the args are almost insultingly simple:

struct VERIFY4args {
    /* CURRENT_FH: object */
    fattr4 attributes;
};

CURRENT_FH here is just an object 🎯 and then the fattr4 attributes you want verified. one field. zero drama. we stan a minimal request πŸ’–

Methods defined here

  • __init__(self, unpack) β€” constructor ✨ it initializes the object's private data according to the arguments given; positional, named, or a combination of both all work.

class VERIFY4res(baseobj.BaseObj)

and the answer is… one field 😭 iconic honestly:

struct VERIFY4res {
    nfsstat4 status;
};

just status. that's the whole class. she said "I'll tell you how it went and nothing more" πŸ’…

Methods defined here

  • __init__(self, unpack) β€” the constructor πŸŽ€ it initializes the object's private data according to the arguments given, whether those args come in positional, named, or mixed.

class WANT_DELEGATION4args(baseobj.BaseObj)

WANT_DELEGATION β€” bestie is asking for a delegation, very main character of her πŸ‘‘ and she brings two fields to the ask:

struct WANT_DELEGATION4args {
    uint32_t     want;
    deleg_claim4 claim;
};

a uint32_t want and a deleg_claim4 claim. shoot your shot, queen 🎯

Methods defined here

  • __init__(self, unpack) β€” constructor πŸ’– it initializes the object's private data according to the arguments given, and those arguments can be positional, named, or a combination of both.

class WANT_DELEGATION4res(baseobj.BaseObj)

and the reply, union switch, one more time for the people in the back 🎀

union switch WANT_DELEGATION4res (nfsstat4 status) {
    case const.NFS4_OK:
        open_delegation4 resok;
    default:
        void;
};

const.NFS4_OK β†’ open_delegation4 resok (you got the delegation, go off 🌈). default β†’ void (you did not, and we simply won't dwell on it πŸ’€).

Methods defined here

  • __init__(self, unpack) β€” the constructor πŸ¦‹ initializes the object's private data according to the arguments given, and those arguments may be positional, named, or a combination of both.

class WRITE4args(baseobj.BaseObj)

and finally for this stretch, WRITE β€” the one everybody actually cares about πŸ”₯ writing data, the whole point of the operation, and here's the request slip:

struct WRITE4args {
    /* CURRENT_FH: file */
    stateid4    stateid;
    offset4     offset;
    stable_how4 stable;
    opaque      data<>;
};

CURRENT_FH is a file πŸ“„ then stateid, offset, stable (a stable_how4, which is very aptly named), and opaque data<> β€” the variable-length payload itself. four fields, and that last one is carrying the actual goods πŸ“

Methods defined here

  • __init__(self, unpack) β€” hold that thought, bestie, this one's coming right up in the next bit πŸ’­

__init__(self, unpack) β€” constructor time, bestie πŸ’…

Constructor

Okay so this constructor is literally doing the most: it initializes the object's private data based on whatever args you hand it. You can pass them positionally, use named args, or mix both β€” all valid, periodt. πŸ’–


class WRITE4res(baseobj.BaseObj) πŸ¦‹

union switch WRITE4res (nfsstat4 status) {
    case const.NFS4_OK:
        WRITE4resok resok;
    default:
        void;
};

Methods defined here:


__init__(self, unpack)

Constructor

It sets up the object's private data from the args you give. Positional, named, or a combo β€” all work, no cap. ✨


class WRITE4resok(baseobj.BaseObj) πŸŽ€

struct WRITE4resok {
    count4      count;
    stable_how4 committed;
    verifier4   verifier;
};

Methods defined here:


__init__(self, unpack)

Constructor

This constructor initializes the object's private data according to the arguments given. You can pass them positionally, by name, or mix both. πŸ’œ


class WRITE_SAME4args(baseobj.BaseObj) 🌸

struct WRITE_SAME4args {
    /* CURRENT_FH: file */
    stateid4        stateid;
    stable_how4     stable;
    app_data_block4 adb;
};

Methods defined here:


__init__(self, unpack)

Constructor

It initializes the object's private data from whatever args you give. Positional, named, or a combo β€” both work, fr fr. 🫢


class WRITE_SAME4res(baseobj.BaseObj) ✨

union switch WRITE_SAME4res (nfsstat4 status) {
    case const.NFS4_OK:
        write_response4 resok;
    default:
        void;
};

Methods defined here:


__init__(self, unpack)

Constructor

Constructor sets up the object's private data according to the arguments given. Positional, named, or both β€” all valid. πŸ’…


class app_data_block4(baseobj.BaseObj) 🧚

struct app_data_block4 {
    offset4 offset;
    length4 block_size;
    length4 block_count;
    length4 reloff_blocknum;
    count4  block_num;
    length4 reloff_pattern;
    opaque  pattern<>;
};

Methods defined here:


__init__(self, unpack)

Constructor

This one initializes the object's private data based on the args you pass. You can give them positionally, as named args, or a mix of both. 🌈


class attr_notice4(baseobj.BaseObj) πŸ’œ

attr_notice4 = class nfstime4(baseobj.BaseObj)

No methods, just an alias. It's giving "I'm literally nfstime4 but with a different name" energy. 🧚


class authsys_parms(baseobj.BaseObj) πŸ”₯

struct authsys_parms {
    unsigned int stamp;
    string       machinename<255>;
    unsigned int uid;
    unsigned int gid;
    unsigned int gids<16>;
};

Methods defined here:


__init__(self, unpack)

Constructor

It sets up the object's private data from the arguments given. Positional, named, or a combination β€” all good, no cap. πŸ’–


class bitmap4_list(baseobj.BaseObj) πŸ¦‹

struct bitmap4_list {
    bitmap4 attrs;
};

Methods defined here:


__init__(self, unpack)

Constructor

Constructor: initializes the object's private data according to the arguments you give. Positional, named, or both β€” all valid. ✨


class callback_sec_parms4(baseobj.BaseObj) πŸŽ€

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;
};

Methods defined here:


__init__(self, unpack)

Constructor

It initializes the object's private data from the args you give. You can pass them positionally, by name, or mix both. πŸ’œ


class cb_client4(baseobj.BaseObj) 🌸

struct cb_client4 {
    uint32_t cb_program;
    netaddr4 cb_location;
};

Methods defined here:


__init__(self, unpack)

Constructor

This constructor sets up the object's private data according to the arguments given. Positional, named, or a combo β€” both work. 🫢


class change_attr_type4(packet.utils.Enum) 🌈

enum change_attr_type4

No methods here, just the enum doing its thing. πŸ’…


class change_info4(baseobj.BaseObj) ✨

struct change_info4 {
    bool      atomic;
    changeid4 before;
    changeid4 after;
};

Methods defined here:


__init__(self, unpack)

Constructor

It initializes the object's private data based on the args you pass. Positional, named, or both β€” all valid, fr fr. πŸ’–


class change_policy4(baseobj.BaseObj) 🧚

struct change_policy4 {
    uint64_t major;
    uint64_t minor;
};

Methods defined here:


__init__(self, unpack)

Constructor

Constructor initializes the object's private data according to the arguments given. You can give them positionally, as named args, or a mix of both. πŸ”₯


class channel_attrs4(baseobj.BaseObj) πŸ¦‹

struct channel_attrs4 {
    count4   headerpadsize;
    count4   maxrequestsize;
    count4   maxresponsesize;
    count4   maxresponsesize_cached;
    count4   maxoperations;
    count4   maxrequests;
    uint32_t rdma_ird<1>;
};

Methods defined here:


__init__(self, unpack)

Constructor

It sets up the object's private data from whatever args you give. Positional, named, or a combo β€” both work, no cap. πŸŽ€


class channel_dir_from_client4(packet.utils.Enum) 🌈

enum channel_dir_from_client4

No methods, just the enum. πŸ’œ


class channel_dir_from_server4(packet.utils.Enum) 🌈

enum channel_dir_from_server4

No methods, just the enum. ✨


class client_owner4(baseobj.BaseObj) 🌸

struct client_owner4 {
    verifier4 verifier;
    opaque    ownerid<NFS4_OPAQUE_LIMIT>;
};

Methods defined here:


__init__(self, unpack)

Constructor

This constructor initializes the object's private data according to the args given. Positional, named, or both β€” all valid. πŸ’…


class clientaddr4(baseobj.BaseObj) 🫢

struct clientaddr4 {
    /* See struct rpcb in RFC 1833 */
    string netid<>;  /* network id */
    string addr<>;   /* universal address */
};

Methods defined here:


__init__(self, unpack)

Constructor

It initializes the object's private data from the arguments you give. You can pass them positionally, by name, or mix both. πŸ’–


class copy_confirm_auth_priv(baseobj.BaseObj) πŸ”₯

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;
};

Methods defined here:


__init__(self, unpack)

Constructor

Constructor sets up the object's private data according to the arguments given. Positional, named, or a combo β€” both work. ✨


class copy_from_auth_priv(baseobj.BaseObj) 🧚

struct copy_from_auth_priv {
    secret4       secret;
    netloc4       destination;
    /* the NFSv4 user name that the user principal maps to */
    utf8str_mixed username;
};

Methods defined here:


__init__(self, unpack)

Constructor

It initializes the object's private data based on the args you pass. Positional, named, or both β€” all valid. πŸ’œ


class copy_requirements4(baseobj.BaseObj) 🌈

struct copy_requirements4 {
    bool consecutive;
    bool synchronous;
};

Methods defined here:


__init__(self, unpack)

Constructor

This constructor initializes the object's private data from whatever args you give. You can give them positionally, as named args, or a mix of both. πŸ¦‹


class copy_to_auth_priv(baseobj.BaseObj) πŸŽ€

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;
};

Methods defined here:


__init__(self, unpack)

Constructor

It sets up the object's private data according to the arguments given. Positional, named, or both β€” all good, no cap. 🌸


class createhow4(baseobj.BaseObj) ✨

union switch createhow4 (createmode4 mode) {
    case const.UNCHECKED4:
    case const.GUARDED4:
        fattr4 attributes;
    case const.EXCLUSIVE4:
        verifier4 verifier;
    case const.EXCLUSIVE4_1:
        creatverfattr createboth;
};

Methods defined here:


__init__(self, unpack)

Constructor

Constructor initializes the object's private data according to the arguments given. You can pass them positionally, by name, or mix both. πŸ’…


class createmode4(packet.utils.Enum) 🌈

enum createmode4

No methods, just the enum. πŸ’œ


class createtype4(baseobj.BaseObj) πŸ”₯

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 */
};

Methods defined here:


__init__(self, unpack)

Constructor

It initializes the object's private data from the args you give. Positional, named, or a combo β€” both work. ✨


class creatverfattr(baseobj.BaseObj) 🧚

struct creatverfattr {
    verifier4 verifier;
    fattr4    attrs;
};

Methods defined here:


__init__(self, unpack)

Constructor

This constructor sets up the object's private data based on the arguments given. Positional, named, or both β€” all valid. πŸ’–


class data4(baseobj.BaseObj) πŸ¦‹

struct data4 {
    offset4 offset;
    opaque  data<>;
};

Methods defined here:


__init__(self, unpack)

Constructor

It initializes the object's private data from whatever args you give. You can give them positionally, as named args, or a mix of both. πŸŽ€


class data_content4(packet.utils.Enum) 🌈

enum data_content4

No methods, just the enum. ✨

class data_info4(baseobj.BaseObj)

okay so this one is giving simple offset/length energy, bestie:

struct data_info4 {
    offset4 offset;
    length4 count;
};

Methods defined here:

  • __init__(self, unpack) β€” Constructor. It sets up the object's private data from whatever args you hand over. Positional, named, or a mix of both? All valid. πŸ’…

class deleg_claim4(baseobj.BaseObj)

this union switch is a whole mood. it switches on open_claim_type4 claim:

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;
};

Methods defined here:

  • __init__(self, unpack) β€” Constructor. Initializes the object's private data from the arguments you give it. Positional, named, or a combo? Yep, all good. ✨

class device_addr4(baseobj.BaseObj)

switching on layouttype4 type like it's nothing:

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<>;
};

Methods defined here:

  • __init__(self, unpack) β€” Constructor. Sets up private data from the args. Positional, named, or both. 🫢

class device_error4(baseobj.BaseObj)

struct time, and it's giving error details:

struct device_error4 {
    deviceid4  deviceid;
    nfsstat4   status;
    nfs_opnum4 opnum;
};

Methods defined here:

  • __init__(self, unpack) β€” Constructor. Initializes the object's private data from whatever arguments you pass. Positional, named, or a mix. πŸ’…

class dirlist4(baseobj.BaseObj)

directory listing vibes:

struct dirlist4 {
    entry4 *entries;
    bool   eof;
};

Methods defined here:

  • __init__(self, unpack) β€” Constructor. Sets up private data from the arguments given. Positional, named, or both. ✨

class entry4(baseobj.BaseObj)

one entry in the list, bestie:

struct entry4 {
    nfs_cookie4 cookie;
    component4  name;
    fattr4      attrs;
    entry4      *nextentry;
};

Methods defined here:

  • __init__(self, unpack) β€” Constructor. Initializes private data from the args. Positional, named, or a combo. πŸŽ€

class exist_lock_owner4(baseobj.BaseObj)

lock owner already exists? here's the struct:

struct exist_lock_owner4 {
    stateid4 stateid;
    seqid4   seqid;
};

Methods defined here:

  • __init__(self, unpack) β€” Constructor. Sets up private data from the arguments. Positional, named, or both. πŸ’œ

class fattr4_archive(packet.utils.Enum)

fattr4_archive = class nfs_bool(packet.utils.Enum)

no methods, just the alias. periodt. ✨


class fattr4_cansettime(packet.utils.Enum)

fattr4_cansettime = class nfs_bool(packet.utils.Enum)

just an alias, no methods. πŸ’…


class fattr4_case_insensitive(packet.utils.Enum)

fattr4_case_insensitive = class nfs_bool(packet.utils.Enum)

no methods, just vibes. πŸ¦‹


class fattr4_case_preserving(packet.utils.Enum)

fattr4_case_preserving = class nfs_bool(packet.utils.Enum)

alias only. πŸ’–


class fattr4_change_attr_type(packet.utils.Enum)

fattr4_change_attr_type = class change_attr_type4(packet.utils.Enum)

no methods listed. 🌸


class fattr4_change_policy(baseobj.BaseObj)

fattr4_change_policy = class change_policy4(baseobj.BaseObj)

alias, no methods. 🫢


class fattr4_chown_restricted(packet.utils.Enum)

fattr4_chown_restricted = class nfs_bool(packet.utils.Enum)

just the alias. ✨


class fattr4_dacl(baseobj.BaseObj)

fattr4_dacl = class nfsacl41(baseobj.BaseObj)

no methods. πŸ’…


class fattr4_dir_notif_delay(baseobj.BaseObj)

fattr4_dir_notif_delay = class nfstime4(baseobj.BaseObj)

alias only. πŸŽ€


class fattr4_dirent_notif_delay(baseobj.BaseObj)

fattr4_dirent_notif_delay = class nfstime4(baseobj.BaseObj)

no methods. πŸ’œ


class fattr4_fs_locations(baseobj.BaseObj)

fattr4_fs_locations = class fs_locations4(baseobj.BaseObj)

just an alias. ✨


class fattr4_fs_locations_info(baseobj.BaseObj)

fattr4_fs_locations_info = class fs_locations_info4(baseobj.BaseObj)

no methods. πŸ¦‹


class fattr4_fs_status(baseobj.BaseObj)

fattr4_fs_status = class fs4_status(baseobj.BaseObj)

alias only. πŸ’–


class fattr4_fsid(baseobj.BaseObj)

fattr4_fsid = class fsid4(baseobj.BaseObj)

no methods. 🌸


class fattr4_hidden(packet.utils.Enum)

fattr4_hidden = class nfs_bool(packet.utils.Enum)

just the alias. 🫢


class fattr4_homogeneous(packet.utils.Enum)

fattr4_homogeneous = class nfs_bool(packet.utils.Enum)

no methods. ✨


class fattr4_layout_hint(baseobj.BaseObj)

fattr4_layout_hint = class layouthint4(baseobj.BaseObj)

alias only. πŸ’…


fattr4_link_support = class nfs_bool(packet.utils.Enum)

no methods. πŸŽ€


class fattr4_mdsthreshold(baseobj.BaseObj)

fattr4_mdsthreshold = class mdsthreshold4(baseobj.BaseObj)

just an alias. πŸ’œ


class fattr4_mode_set_masked(baseobj.BaseObj)

fattr4_mode_set_masked = class mode_masked4(baseobj.BaseObj)

no methods. ✨


class fattr4_mode_umask(baseobj.BaseObj)

fattr4_mode_umask = class mode_umask4(baseobj.BaseObj)

alias only. πŸ¦‹


class fattr4_named_attr(packet.utils.Enum)

fattr4_named_attr = class nfs_bool(packet.utils.Enum)

no methods. πŸ’–


class fattr4_no_trunc(packet.utils.Enum)

fattr4_no_trunc = class nfs_bool(packet.utils.Enum)

just the alias. 🌸


class fattr4_rawdev(baseobj.BaseObj)

fattr4_rawdev = class specdata4(baseobj.BaseObj)

no methods. 🫢


class fattr4_rdattr_error(packet.utils.Enum)

fattr4_rdattr_error = class nfsstat4(packet.utils.Enum)

alias only. ✨


class fattr4_retentevt_get(baseobj.BaseObj)

fattr4_retentevt_get = class retention_get4(baseobj.BaseObj)

no methods. πŸ’…


class fattr4_retentevt_set(baseobj.BaseObj)

fattr4_retentevt_set = class retention_set4(baseobj.BaseObj)

just an alias. πŸŽ€


class fattr4_retention_get(baseobj.BaseObj)

fattr4_retention_get = class retention_get4(baseobj.BaseObj)

no methods. πŸ’œ


class fattr4_retention_set(baseobj.BaseObj)

fattr4_retention_set = class retention_set4(baseobj.BaseObj)

alias only. ✨


class fattr4_sacl(baseobj.BaseObj)

fattr4_sacl = class nfsacl41(baseobj.BaseObj)

no methods. πŸ¦‹


class fattr4_sec_label(baseobj.BaseObj)

fattr4_sec_label = class sec_label4(baseobj.BaseObj)

just the alias. πŸ’–


class fattr4_suppattr_exclcreat(baseobj.BaseObj)

fattr4_suppattr_exclcreat = class bitmap4_list(baseobj.BaseObj)

no methods. 🌸


class fattr4_supported_attrs(baseobj.BaseObj)

fattr4_supported_attrs = class bitmap4_list(baseobj.BaseObj)

alias only. 🫢


fattr4_symlink_support = class nfs_bool(packet.utils.Enum)

no methods. ✨


class fattr4_system(packet.utils.Enum)

fattr4_system = class nfs_bool(packet.utils.Enum)

just an alias. πŸ’…


class fattr4_time_access(baseobj.BaseObj)

fattr4_time_access = class nfstime4(baseobj.BaseObj)

no methods. πŸŽ€


class fattr4_time_access_set(baseobj.BaseObj)

fattr4_time_access_set = class settime4(baseobj.BaseObj)

alias only. πŸ’œ


class fattr4_time_backup(baseobj.BaseObj)

fattr4_time_backup = class nfstime4(baseobj.BaseObj)

no methods. ✨


class fattr4_time_create(baseobj.BaseObj)

fattr4_time_create = class nfstime4(baseobj.BaseObj)

just the alias. πŸ¦‹


class fattr4_time_delta(baseobj.BaseObj)

fattr4_time_delta = class nfstime4(baseobj.BaseObj)

no methods. πŸ’–


class fattr4_time_metadata(baseobj.BaseObj)

fattr4_time_metadata = class nfstime4(baseobj.BaseObj)

alias only. 🌸


class fattr4_time_modify(baseobj.BaseObj)

fattr4_time_modify = class nfstime4(baseobj.BaseObj)

no methods. 🫢


class fattr4_time_modify_set(baseobj.BaseObj)

fattr4_time_modify_set = class settime4(baseobj.BaseObj)

just an alias. ✨


class fattr4_type(packet.utils.Enum)

fattr4_type = class nfs_ftype4(packet.utils.Enum)

no methods. πŸ’…


class fattr4_unique_handles(packet.utils.Enum)

fattr4_unique_handles = class nfs_bool(packet.utils.Enum)

alias only. πŸŽ€


class fattr4_xattr_support(packet.utils.Enum)

fattr4_xattr_support = class nfs_bool(packet.utils.Enum)

no methods. πŸ’œ


class ff_cb_recall_any_mask(packet.utils.Enum)

enum ff_cb_recall_any_mask

no methods, just the enum. periodt. ✨


class ff_data_server4(baseobj.BaseObj)

struct with all the data server details:

struct ff_data_server4 {
    deviceid4          deviceid;
    uint32_t           efficiency;
    stateid4           stateid;
    nfs_fh4            fh_list<>;
    fattr4_owner       user;
    fattr4_owner_group group;
};

Methods defined here:

  • __init__(self, unpack) β€” Constructor. Initializes private data from the arguments given. Positional, named, or a mix. πŸ’…

class ff_device_addr4(baseobj.BaseObj)

struct ff_device_addr4 {
    uint32_t            size;        /* opaque size from device_addr4 */
    multipath_list4     netaddrs;
    ff_device_versions4 versions<>;
};

Methods defined here:

  • __init__(self, unpack) β€” Constructor. Sets up private data from the args. Positional, named, or both. ✨

class ff_device_versions4(baseobj.BaseObj)

struct ff_device_versions4 {
    uint32_t version;
    uint32_t minorversion;
    uint32_t rsize;
    uint32_t wsize;
    bool     tightly_coupled;
};

Methods defined here:

  • __init__(self, unpack) β€” Constructor. Initializes private data from the arguments given. Positional, named, or a combo. πŸŽ€

class ff_io_latency4(baseobj.BaseObj)

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;
};

Methods defined here:

  • __init__(self, unpack) β€” Constructor. Sets up private data from the args. Positional, named, or both. πŸ’œ

class ff_ioerr4(baseobj.BaseObj)

struct ff_ioerr4 {
    offset4       offset;
    length4       length;
    stateid4      stateid;
    device_error4 errors<>;
};

Methods defined here:

  • __init__(self, unpack) β€” Constructor

Okay so this constructor is literally just setting up the object’s private data from whatever args you toss at it β€” positional, named, or a lil mix of both, bestie. πŸ’–

🌸 class ff_iostats4(baseobj.BaseObj)

struct ff_iostats4 {
    offset4          offset;
    length4          length;
    stateid4         stateid;
    io_info4         read;
    io_info4         write;
    deviceid4        deviceid;
    ff_layoutupdate4 layoutupdate;
};

Methods defined here:


  • __init__(self, unpack) β€” Constructor

Okay so this constructor initializes the object's private data according to the arguments given. You can pass them as positional, named arguments, or a combination of both. ✨

πŸ¦‹ class ff_layout4(baseobj.BaseObj)

struct ff_layout4 {
    uint32_t   size;         /* opaque size from layout_content4 */
    length4    stripe_unit;
    ff_mirror4 mirrors<>;
    ff_flags4  flags;
    uint32_t   stats_hint;
};

Methods defined here:


  • __init__(self, unpack) β€” Constructor

Init time: sets up the object's private data from the args β€” positional, named, or both. πŸ’…

πŸŽ€ class ff_layouthint4(baseobj.BaseObj)

struct ff_layouthint4 {
    ff_mirrors_hint mirrors_hint;
};

Methods defined here:


  • __init__(self, unpack) β€” Constructor

Init time: sets up the object's private data from the args β€” positional, named, or both. 🌸

πŸ’œ class ff_layoutreturn4(baseobj.BaseObj)

struct ff_layoutreturn4 {
    uint32_t    size;              /* opaque size from layoutreturn_file4 */
    ff_ioerr4   ioerr_report<>;
    ff_iostats4 iostats_report<>;
};

Methods defined here:


  • __init__(self, unpack) β€” Constructor

Init time: sets up the object's private data from the args β€” positional, named, or both. 🫢

✨ class ff_layoutupdate4(baseobj.BaseObj)

struct ff_layoutupdate4 {
    netaddr4       addr;
    nfs_fh4        fh;
    ff_io_latency4 read;
    ff_io_latency4 write;
    nfstime4       duration;
    bool           local;
};

Methods defined here:


  • __init__(self, unpack) β€” Constructor

Init time: sets up the object's private data from the args β€” positional, named, or both. 🌈

🧚 class ff_mirror4(baseobj.BaseObj)

struct ff_mirror4 {
    ff_data_server4 data_servers<>;
};

Methods defined here:


  • __init__(self, unpack) β€” Constructor

Init time: sets up the object's private data from the args β€” positional, named, or both. ⭐

πŸ‘‘ class ff_mirrors_hint(baseobj.BaseObj)

union switch ff_mirrors_hint (bool valid) {
    case const.TRUE:
        uint32_t mirrors;
    case const.FALSE:
        void;
};

Methods defined here:


  • __init__(self, unpack) β€” Constructor

Init time: sets up the object's private data from the args β€” positional, named, or both. πŸ’–

πŸ“ class filelayout_hint_care4(packet.utils.Enum)

enum filelayout_hint_care4

🌟 class fs4_status(baseobj.BaseObj)

struct fs4_status {
    bool            absent;
    fs4_status_type type;
    utf8str_cs      source;
    utf8str_cs      current;
    int32_t         age;
    nfstime4        version;
};

Methods defined here:


  • __init__(self, unpack) β€” Constructor

Init time: sets up the object's private data from the args β€” positional, named, or both. πŸ’«

🌸 class fs4_status_type(packet.utils.Enum)

enum fs4_status_type

πŸ¦‹ class fs_location4(baseobj.BaseObj)

struct fs_location4 {
    utf8str_cis server<>;
    pathname4   root;
};

Methods defined here:


  • __init__(self, unpack) β€” Constructor

Init time: sets up the object's private data from the args β€” positional, named, or both. πŸŽ€

πŸ’œ class fs_locations4(baseobj.BaseObj)

struct fs_locations4 {
    pathname4    root;
    fs_location4 locations<>;
};

Methods defined here:


  • __init__(self, unpack) β€” Constructor

Init time: sets up the object's private data from the args β€” positional, named, or both. 🫢

✨ class fs_locations_info4(baseobj.BaseObj)

struct fs_locations_info4 {
    uint32_t           flags;
    int32_t            valid_for;
    pathname4          root;
    fs_locations_item4 items<>;
};

Methods defined here:


  • __init__(self, unpack) β€” Constructor

Init time: sets up the object's private data from the args β€” positional, named, or both. 🌈

🧚 class fs_locations_item4(baseobj.BaseObj)

struct fs_locations_item4 {
    fs_locations_server4 entries<>;
    pathname4            root;
};

Methods defined here:


  • __init__(self, unpack) β€” Constructor

Init time: sets up the object's private data from the args β€” positional, named, or both. ⭐

πŸ‘‘ class fs_locations_server4(baseobj.BaseObj)

struct fs_locations_server4 {
    int32_t     currency;
    opaque      info<>;
    utf8str_cis server;
};

Methods defined here:


  • __init__(self, unpack) β€” Constructor

Init time: sets up the object's private data from the args β€” positional, named, or both. πŸ’–

πŸ“ class fsid4(baseobj.BaseObj)

struct fsid4 {
    uint64_t major;
    uint64_t minor;
};

Methods defined here:


  • __init__(self, unpack) β€” Constructor

Init time: sets up the object's private data from the args β€” positional, named, or both. πŸ’…

🌟 class gddrnf4_status(packet.utils.Enum)

enum gddrnf4_status

🌸 class gss_cb_handles4(baseobj.BaseObj)

struct gss_cb_handles4 {
    rpc_gss_svc_t service;        /* RFC 2203 */
    gsshandle4_t  server_handle;
    gsshandle4_t  client_handle;
};

Methods defined here:


  • __init__(self, unpack) β€” Constructor

Init time: sets up the object's private data from the args β€” positional, named, or both. 🌸

πŸ¦‹ class io_info4(baseobj.BaseObj)

struct io_info4 {
    uint64_t count;
    uint64_t bytes;
};

Methods defined here:


  • __init__(self, unpack) β€” Constructor

Init time: sets up the object's private data from the args β€” positional, named, or both. πŸŽ€

πŸ’œ class labelformat_spec4(baseobj.BaseObj)

struct labelformat_spec4 {
    policy4 lfs;
    policy4 pi;
};

Methods defined here:


  • __init__(self, unpack) β€” Constructor

Init time: sets up the object's private data from the args β€” positional, named, or both. 🫢

✨ class layout4(baseobj.BaseObj)

struct layout4 {
    offset4         offset;
    length4         length;
    layoutiomode4   iomode;
    layout_content4 content;
};

Methods defined here:


  • __init__(self, unpack) β€” Constructor

Init time: sets up the object's private data from the args β€” positional, named, or both. 🌈

🧚 class layout_content4(baseobj.BaseObj)

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<>;
};

Methods defined here:


  • __init__(self, unpack) β€” Constructor

Init time: sets up the object's private data from the args β€” positional, named, or both. ⭐

πŸ‘‘ class layouthint4(baseobj.BaseObj)

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<>;
};

Methods defined here:


  • __init__(self, unpack) β€” Constructor

Init time: sets up the object's private data from the args β€” positional, named, or both. πŸ’–

πŸ“ class layoutiomode4(packet.utils.Enum)

enum layoutiomode4

🌟 class layoutrecall4(baseobj.BaseObj)

union switch layoutrecall4 (layoutrecall_type4 recalltype) {
    case const.LAYOUTRECALL4_FILE:
        layoutrecall_file4 layout;
    case const.LAYOUTRECALL4_FSID:
        fsid4 fsid;
    case const.LAYOUTRECALL4_ALL:
        void;
};

Methods defined here:


  • __init__(self, unpack) β€” Constructor

Init time: sets up the object's private data from the args β€” positional, named, or both. πŸ’…

🌸 class layoutrecall_file4(baseobj.BaseObj)

struct layoutrecall_file4 {
    nfs_fh4  fh;
    offset4  offset;
    length4  length;
    stateid4 stateid;
};

Methods defined here:


  • __init__(self, unpack) β€” Constructor

Init time: sets up the object's private data from the args β€” positional, named, or both. 🌸

πŸ¦‹ class layoutrecall_type4(packet.utils.Enum)

enum layoutrecall_type4

πŸ’œ class layoutreturn4(baseobj.BaseObj)

union switch layoutreturn4 (layoutreturn_type4 returntype) {
    case const.LAYOUTRETURN4_FILE:
        layoutreturn_file4 layout;
    default:
        void;
};

Methods defined here:


  • __init__(self, unpack) β€” Constructor

okay so finishing that thought from the last class β€” its __init__ is literally just there to initialize the object's private data according to the arguments you give it. You can pass those arguments positionally, as named arguments, or a mix of both. periodt. πŸ’…


πŸ’– class layoutreturn_file4(baseobj.BaseObj) πŸ’–

       struct layoutreturn_file4 {
           offset4                 offset;
           length4                 length;
           stateid4                stateid;
           /* layouttype4 specific data */
           layoutreturn_file_body4 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 layoutreturn_file_body4(baseobj.BaseObj) ✨

       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<>;
       };

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 layoutreturn_stateid(baseobj.BaseObj) πŸ¦‹

       union switch layoutreturn_stateid (bool present) {
           case const.TRUE:
               stateid4 stateid;
           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 layoutreturn_type4(packet.utils.Enum) 🌸

       enum layoutreturn_type4

it's giving enum energy, bestie. no methods here, just vibes. ✨

🌈 class layouttype4(packet.utils.Enum) 🌈

       enum layouttype4

another enum, another slay. πŸ’…

πŸ”₯ class layoutupdate4(baseobj.BaseObj) πŸ”₯

       struct layoutupdate4 {
           layouttype4 type;
           opaque      body<>;
       };

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 limit_by4(packet.utils.Enum) ⭐

       enum limit_by4

enum check: passed. iconic. πŸ‘‘

πŸ’™ class lock_owner4(baseobj.BaseObj) πŸ’™

       lock_owner4 = class state_owner4(baseobj.BaseObj)

it's an alias, periodt. no methods.

πŸ”’ class locker4(baseobj.BaseObj) πŸ”’

       union switch locker4 (bool new_lock_owner) {
           case const.TRUE:
               open_to_lock_owner4 open_owner;
           case const.FALSE:
               exist_lock_owner4 lock_owner;
       };

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 mdsthreshold4(baseobj.BaseObj) 🌿

       struct mdsthreshold4 {
           threshold_item4 hints<>;
       };

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 mode_masked4(baseobj.BaseObj) πŸŽ€

       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. */
       };

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 mode_umask4(baseobj.BaseObj) πŸ’…

       struct mode_umask4 {
           mode4 mode;
           mode4 umask;
       };

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 netaddr4(baseobj.BaseObj) πŸ¦‹

       netaddr4 = class clientaddr4(baseobj.BaseObj)

alias vibes only. no methods. ✨

🌐 class netloc4(baseobj.BaseObj) 🌐

       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;
       };

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 netloc_type4(packet.utils.Enum) ✨

       enum netloc_type4

enum, slay. no methods. πŸ’–

πŸ”₯ class newoffset4(baseobj.BaseObj) πŸ”₯

       union switch newoffset4 (bool newoffset) {
           case const.TRUE:
               offset4 offset;
           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 newsize4(baseobj.BaseObj) ⭐

       union switch newsize4 (bool sizechanged) {
           case const.TRUE:
               length4 size;
           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 newtime4(baseobj.BaseObj) ⏰

       union switch newtime4 (bool timechanged) {
           case const.TRUE:
               nfstime4 time;
           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 nfs_argop4 (baseobj.BaseObj) ✨

okay bestie this one is the BIG one, the main character of argop land πŸ’… it's a union switch on nfs_opnum4 argop and it's lowkey huge, so buckle up πŸŽ€

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;
};

fr fr every single op is in there, and yeah a bunch of them are marked /* Not used in NFSv4.1 / or / Not used in NFSv4.2 */ β€” that's not me being shady, that's literally the source πŸ’€ respect the version boundaries bestie.

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

that's it, that's the whole vibe. a little enum, cute, iconic πŸŽ€


✨ class nfs_cb_argop4 (baseobj.BaseObj) ✨

the callback twin of the op union β€” same energy, nfs_cb_opnum4 flavored ✨

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;
};

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_cb_opnum4 (packet.utils.Enum) ✨

enum nfs_cb_opnum4

callback op numbers, the enum-est of enums, no cap 🌸


✨ class nfs_cb_resop4 (baseobj.BaseObj) ✨

the callback result union, switchin' on nfs_cb_opnum4 resop β€” the third member of the callback trio, and it ate πŸ’…

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;
};

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_client_id4 (baseobj.BaseObj) ✨

a lil struct to say who you are, bestie πŸͺͺ

struct nfs_client_id4 {
    verifier4 verifier;
    opaque    id<NFS4_OPAQUE_LIMIT>;
};

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_fattr4 (packet.utils.Enum) ✨

enum nfs_fattr4

file attributes enum, the one that's giving "what even are you" but for files 🌸


✨ class nfs_ftype4 (packet.utils.Enum) ✨

enum nfs_ftype4

file type enum! regular? dir? symlink? the possibilities ✨


✨ class nfs_impl_id4 (baseobj.BaseObj) ✨

implementation ID vibes β€” who you are, what you're called, and when πŸ‘‘

struct nfs_impl_id4 {
    utf8str_cis domain;
    utf8str_cs  name;
    nfstime4    date;
};

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_lock_type4 (packet.utils.Enum) ✨

enum nfs_lock_type4

lock types!! read locks, write locks, the whole "no you can't touch it rn" situation πŸ’€


✨ class nfs_modified_limit4 (baseobj.BaseObj) ✨

for when the file is so big it needs a whole "modified limit" situation πŸ“

struct nfs_modified_limit4 {
    uint32_t num_blocks;
    uint32_t bytes_per_block;
};

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_opnum4 (packet.utils.Enum) ✨

enum nfs_opnum4

the original op-number enum, the blueprint, the blueprint-est πŸ’… and that's where this part wraps the classes we've got β€” more coming bestie, don't go anywhere πŸ¦‹

πŸ’« class nfs_resop4(baseobj.BaseObj)

okay so THIS one, bestie. this is the moment. it's a union switch on nfs_opnum4 resop and every single operation has its own lil case in here, like a whole wardrobe where each outfit is an op. no notes, it ate:

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;
};

the way this is literally three eras of NFS stacked on top of each other πŸ’€ the og block, then a whole New to NFSv4.1 chunk, then New to NFSv4.2, then the RFC 8276 xattr girlies at the end, and finally OP_ILLEGAL sitting there with the comment Illegal operation like a lil caution sign. iconic. also bestie pls clock the ones tagged Not used in NFSv4.1 β€” OP_OPEN_CONFIRM, OP_RENEW, OP_SETCLIENTID, OP_SETCLIENTID_CONFIRM, OP_RELEASE_LOCKOWNER β€” and OP_GETDEVICELIST tagged Not used in NFSv4.2. vintage, retired, but still in the union. slay.

Methods defined here:


  • __init__(self, unpack) β€” Constructor. it sets up the object's private data based on whatever args you hand it, and you can pass them positionally, as named args, or honestly a mix of both. do your thing πŸ’…

πŸ¦‹ class nfs_secflavor4(packet.utils.Enum)

bestie it's just an enum: enum nfs_secflavor4. that's the whole thing. no methods listed, just vibes. ✨


πŸŽ€ class nfs_space_limit4(baseobj.BaseObj)

a union switch that picks how you wanna measure your limit, keyed off limit_by4 limitby:

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;
};

so it's either a filesize (the comment says limit specified as file size) or mod_blocks (comment: limit specified by number of blocks). two paths, one union, no cap. 🫢

Methods defined here:


  • __init__(self, unpack) β€” Constructor. initializes the object's private data per the args given; positional, named, or both β€” dealer's choice.

🌸 class nfsace4(baseobj.BaseObj)

an access control entry, and it's giving very clean:

struct nfsace4 {
    acetype4      type;
    aceflag4      flag;
    acemask4      mask;
    utf8str_mixed who;
};

Methods defined here:


  • __init__(self, unpack) β€” Constructor. sets up the object's private data from the args given, and yeah, positional / named / a mix all work. periodt.

🌈 class nfsacl41(baseobj.BaseObj)

the ACL itself, and look how tidy:

struct nfsacl41 {
    aclflag4 flag;
    nfsace4  aces<>;
};

that aces<> is a list of nfsace4, bestie β€” one flag, many entries, that's the whole structure. πŸ’œ

Methods defined here:


  • __init__(self, unpack) β€” Constructor. initializes private data based on the arguments given; positional, named, or both, whatever feels right.

⭐ class nfsstat4(packet.utils.Enum)

another enum, another moment: enum nfsstat4. no methods listed. short and sweet, we love a minimal queen. πŸ‘‘


🧚 class nfstime4(baseobj.BaseObj)

time, but make it NFS:

struct nfstime4 {
    int64_t  seconds;
    uint32_t nseconds;
};

seconds and nseconds, together forever. πŸ•°οΈ

Methods defined here:


  • __init__(self, unpack) β€” Constructor. initializes the object's private data according to the args given, positional or named or both.

πŸ“ class nfsv4_1_file_layout4(baseobj.BaseObj)

paging layout bestie, here's the whole struct:

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<>;
};

clock the comment on size β€” opaque size from layout_content4. and fh_list<> is a list of nfs_fh4, so it's stripes for days. πŸ”₯

Methods defined here:


  • __init__(self, unpack) β€” Constructor. sets up private data from the args given; positional, named, or a combo.

πŸ’– class nfsv4_1_file_layout_ds_addr4(baseobj.BaseObj)

the data-server address version, and it goes like:

struct nfsv4_1_file_layout_ds_addr4 {
    uint32_t        size;                 /* opaque size from device_addr4 */
    uint32_t        stripe_indices<>;
    multipath_list4 multipath_ds_list<>;
};

size has the comment opaque size from device_addr4, and then you've got a list of stripe_indices and a list of multipath_ds_list. plural energy, we stan. ✨

Methods defined here:


  • __init__(self, unpack) β€” Constructor. initializes the object's private data per the arguments given; positional, named, or both.

🫢 class nfsv4_1_file_layouthint4(baseobj.BaseObj)

the hint, the nudge, the suggestion:

struct nfsv4_1_file_layouthint4 {
    uint32_t  size;          /* opaque size from layouthint4 */
    uint32_t  care;
    nfl_util4 nfl_util;
    count4    stripe_count;
};

size is commented opaque size from layouthint4 (matching the pattern, love that for us), and care is genuinely named care which is such a mood honestly. 😭

Methods defined here:


  • __init__(self, unpack) β€” Constructor. initializes private data according to the args given; positional, named, or a mix of both.

🌟 class nfsv4_1_file_th_items4(packet.utils.Enum)

enum moment: enum nfsv4_1_file_th_items4. that's it, that's the class. πŸ’…


πŸŽ€ class notify4(baseobj.BaseObj)

here's the struct:

struct notify4 {
    /* composed from notify_type4 or notify_deviceid_type4 */
    bitmap4     mask;
    notifylist4 values;
};

that comment up top β€” composed from notify_type4 or notify_deviceid_type4 β€” is doing the explaining for us, so jot that down. a mask and some values, boom. πŸ’«

Methods defined here:


  • __init__(self, unpack) β€” Constructor. initializes the object's private data based on the args given; positional, named, or both, no stress.

πŸ”₯ class notify_add4(baseobj.BaseObj)

this one's got comments inside it and honestly they're carrying the lore:

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;
};

so: old_entry<1> is the Information on object possibly renamed over, new_entry is the new one, new_cookie<1> is what READDIR would have returned for this entry, plus prev_entry<1> and a bool last_entry to close it out. the <1> situation is giving optional-but-noted, bestie. πŸ¦‹

Methods defined here:


  • __init__(self, unpack) β€” Constructor. initializes the object's private data according to the args given; positional, named, or a combo of both.

πŸ’œ class notify_attr4(baseobj.BaseObj)

tiny one, no drama:

struct notify_attr4 {
    notify_entry4 entry;
};

Methods defined here:


  • __init__(self, unpack) β€” Constructor. initializes the object's private data according to the arguments given.

Constructor β€” it sets up the object's private data from the arguments you hand it. You can pass them positionally, as named arguments, or a lil mix of both. Whatever vibes you're feeling πŸ’…


πŸ¦‹ class notify_deviceid_change4(baseobj.BaseObj)

struct notify_deviceid_change4 {
    layouttype4 type;
    deviceid4   deviceid;
    bool        immediate;
};

Methods defined here:


  • __init__(self, unpack) β€” Constructor ✨

Initializes the object's private data based on the arguments you give it. Positional args, named args, or a combo of both β€” all valid, bestie 🫢


πŸ¦‹ class notify_deviceid_delete4(baseobj.BaseObj)

struct notify_deviceid_delete4 {
    layouttype4 type;
    deviceid4   deviceid;
};

Methods defined here:


  • __init__(self, unpack) β€” Constructor ✨

Initializes the object's private data based on the arguments you give it. Positional, named, or both at once β€” it's giving flexible πŸŽ€


🌈 class notify_deviceid_type4(packet.utils.Enum)

enum notify_deviceid_type4

That's it. That's the whole class. It's an enum. Short and iconic, no notes πŸ‘‘


πŸ¦‹ class notify_entry4(baseobj.BaseObj)

struct notify_entry4 {
    component4 name;
    fattr4     attrs;
};

Methods defined here:


  • __init__(self, unpack) β€” Constructor ✨

Initializes the object's private data from the arguments given. Positional, named, or a mix β€” literally your choice πŸ’–


πŸ¦‹ class notify_remove4(baseobj.BaseObj)

struct notify_remove4 {
    notify_entry4 entry;
    nfs_cookie4   cookie;
};

Methods defined here:


  • __init__(self, unpack) β€” Constructor ✨

Initializes the object's private data according to the arguments given. Positional args, named args, or both β€” slay 🌸


πŸ¦‹ class notify_rename4(baseobj.BaseObj)

struct notify_rename4 {
    notify_remove4 old_entry;
    notify_add4    new_entry;
};

Methods defined here:


  • __init__(self, unpack) β€” Constructor ✨

Initializes the object's private data according to the arguments given. Positional, named, or a combination of both πŸ¦‹


🌈 class notify_type4(packet.utils.Enum)

enum notify_type4

Another enum, another slay.</purl> Just vibes, no methods ✨


πŸ¦‹ class notify_verifier4(baseobj.BaseObj)

struct notify_verifier4 {
    verifier4 old_verifier;
    verifier4 new_verifier;
};

Methods defined here:


  • __init__(self, unpack) β€” Constructor ✨

Initializes the object's private data according to the arguments given. Positional, named, or a combination of both πŸ’œ


πŸ¦‹ class offload_info4(baseobj.BaseObj)

union switch offload_info4 (nfsstat4 status) {
    case const.NFS4_OK:
        write_response4 resok;
    default:
        length4 count;
};

Methods defined here:


  • __init__(self, unpack) β€” Constructor ✨

Initializes the object's private data according to the arguments given. Positional args, named args, or a mix of both β€” no cap 🫢


πŸ‘‘ class open_claim4(baseobj.BaseObj)

Okay bestie, this one is a whole mood β€” look at all these cases 😭

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;
};

Methods defined here:


  • __init__(self, unpack) β€” Constructor ✨

Initializes the object's private data according to the arguments given. Positional, named, or a combination of both. Yes, even with all those cases. She's versatile πŸ’…


πŸ¦‹ class open_claim_delegate_cur4(baseobj.BaseObj)

struct open_claim_delegate_cur4 {
    stateid4   stateid;
    component4 name;
};

Methods defined here:


  • __init__(self, unpack) β€” Constructor ✨

Initializes the object's private data according to the arguments given. Positional, named, or a combination of both πŸŽ€


🌈 class open_claim_type4(packet.utils.Enum)

enum open_claim_type4

Enum era. Nothing more to say, periodt ⭐


πŸ¦‹ class open_delegation4(baseobj.BaseObj)

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;
};

Methods defined here:


  • __init__(self, unpack) β€” Constructor ✨

Initializes the object's private data according to the arguments given. Positional, named, or a mix of the two 🫢


🌈 class open_delegation_type4(packet.utils.Enum)

enum open_delegation_type4

Another enum bestie, we love consistency 🌸


πŸ¦‹ class open_none_delegation4(baseobj.BaseObj)

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;
};

Methods defined here:


  • __init__(self, unpack) β€” Constructor ✨

Initializes the object's private data according to the arguments given. Positional, named, or both β€” you know the drill πŸ’œ


πŸ¦‹ class open_owner4(baseobj.BaseObj)

open_owner4 = class state_owner4(baseobj.BaseObj)

It's literally just state_owner4 wearing a little open_owner4 name tag. Rebranding, honestly πŸ”₯


πŸ¦‹ class open_read_delegation4(baseobj.BaseObj)

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 */
};

Methods defined here:


  • __init__(self, unpack) β€” Constructor ✨

Initializes the object's private data according to the arguments given. Positional, named, or a combination of both πŸ’–


πŸ¦‹ class open_to_lock_owner4(baseobj.BaseObj)

struct open_to_lock_owner4 {
    seqid4      seqid;
    stateid4    stateid;
    seqid4      lock_seqid;
    lock_owner4 lock_owner;
};

Methods defined here:


  • __init__(self, unpack) β€” Constructor ✨

Initializes the object's private data according to the arguments given. Positional, named, or a mix of both β€” lowkey iconic πŸŽ€


πŸ¦‹ class open_write_delegation4(baseobj.BaseObj)

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. */
};

Methods defined here:


  • __init__(self, unpack) β€” Constructor ✨

Initializes the object's private data according to the arguments given. Positional, named, or a combination of both πŸ¦‹


πŸ¦‹ class openflag4(baseobj.BaseObj)

union switch openflag4 (opentype4 opentype) {
    case const.OPEN4_CREATE:
        createhow4 how;
    default:
        void;
};

Methods defined here:


  • __init__(self, unpack) β€” Constructor ✨

Initializes the object's private data according to the arguments given. Positional, named, or both, bestie πŸ’…


🌈 class opentype4(packet.utils.Enum)

enum opentype4

Enum. Cute. Done. ⭐


πŸ¦‹ class prev_entry4(baseobj.BaseObj)

struct prev_entry4 {
    notify_entry4 entry;
    /* what READDIR returned for this entry */
    nfs_cookie4   cookie;
};

Methods defined here:


  • __init__(self, unpack) β€” Constructor ✨

Initializes the object's private data according to the arguments given. Positional, named, or a combination of both 🌸


πŸ¦‹ class read_plus_content(baseobj.BaseObj)

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;
};

Methods defined here:


  • __init__(self, unpack) β€” Constructor ✨

Initializes the object's private data according to the arguments given. Positional, named, or a combination of both 🫢


πŸ¦‹ class read_plus_res4(baseobj.BaseObj)

struct read_plus_res4 {
    bool              eof;
    read_plus_content contents<>;
};

And we're mid-struct, bestie β€” hold that thought, there's more coming πŸ’œ

Methods defined here:

  • __init__(self, unpack) β€” Constructor ✨ This initializes the object's private data according to the arguments you give. You can pass them positionally, as named arguments, or a mix of both. 🫢

class referring_call4(baseobj.BaseObj)

struct referring_call4 {
    sequenceid4 sequenceid;
    slotid4     slotid;
};

Methods defined here:

  • __init__(self, unpack) β€” Constructor ✨ Sets up the object's private data based on the args you pass. Positional, named, or both β€” your call. πŸ’…

class referring_call_list4(baseobj.BaseObj)

struct referring_call_list4 {
    sessionid4      sessionid;
    referring_call4 referring_calls<>;
};

Methods defined here:

  • __init__(self, unpack) β€” Constructor ✨ Initializes the object's private data according to the arguments given. You can do positional, named, or a combo. πŸŽ€

class retention_get4(baseobj.BaseObj)

struct retention_get4 {
    uint64_t duration;
    nfstime4 begin_time<1>;
};

Methods defined here:

  • __init__(self, unpack) β€” Constructor ✨ Sets up private data from the args. Positional, named, or both β€” slay. ✨

class retention_set4(baseobj.BaseObj)

struct retention_set4 {
    bool     enable;
    uint64_t duration<1>;
};

Methods defined here:

  • __init__(self, unpack) β€” Constructor ✨ Initializes object's private data according to the arguments given. Positional, named, or a mix. πŸ’–

class rpc_gss_svc_t(packet.utils.Enum)

enum rpc_gss_svc_t

class rpcsec_gss_info(baseobj.BaseObj)

struct rpcsec_gss_info {
    sec_oid4      oid;
    qop4          qop;
    rpc_gss_svc_t service;
};

Methods defined here:

  • __init__(self, unpack) β€” Constructor ✨ Sets up the object's private data based on the args. Positional, named, or both β€” you got this. πŸ¦‹

class sec_label4(baseobj.BaseObj)

struct sec_label4 {
    labelformat_spec4 lfs;
    opaque            data<>;
};

Methods defined here:

  • __init__(self, unpack) β€” Constructor ✨ Initializes private data according to the arguments given. Positional, named, or a combo. 🌸

class secinfo4(baseobj.BaseObj)

union switch secinfo4 (nfs_secflavor4 flavor) {
    case const.RPCSEC_GSS:
        rpcsec_gss_info info;
    default:
        void;
};

Methods defined here:

  • __init__(self, unpack) β€” Constructor ✨ Sets up private data from the args. Positional, named, or both β€” iconic. πŸ‘‘

class secinfo_style4(packet.utils.Enum)

enum secinfo_style4

class seek_res4(baseobj.BaseObj)

struct seek_res4 {
    bool    eof;
    offset4 offset;
};

Methods defined here:

  • __init__(self, unpack) β€” Constructor ✨ Initializes object's private data according to the arguments given. Positional, named, or a mix. πŸ’…

class server_owner4(baseobj.BaseObj)

struct server_owner4 {
    uint64_t minor_id;
    opaque   major_id<NFS4_OPAQUE_LIMIT>;
};

Methods defined here:

  • __init__(self, unpack) β€” Constructor ✨ Sets up private data based on the args. Positional, named, or both β€” periodt. πŸ’–

class settime4(baseobj.BaseObj)

union switch settime4 (time_how4 set_it) {
    case const.SET_TO_CLIENT_TIME4:
        nfstime4 time;
    default:
        void;
};

Methods defined here:

  • __init__(self, unpack) β€” Constructor ✨ Initializes private data according to the arguments given. Positional, named, or a combo. ✨

class setxattr_option4(packet.utils.Enum)

enum setxattr_option4

class specdata4(baseobj.BaseObj)

struct specdata4 {
    uint32_t specdata1;  /* major device number */
    uint32_t specdata2;  /* minor device number */
};

Methods defined here:

  • __init__(self, unpack) β€” Constructor ✨ Sets up private data from the args. Positional, named, or both β€” slay. πŸŽ€

class ssa_digest_input4(baseobj.BaseObj)

struct ssa_digest_input4 {
    SEQUENCE4args seqargs;
};

Methods defined here:

  • __init__(self, unpack) β€” Constructor ✨ Initializes object's private data according to the arguments given. Positional, named, or a mix. πŸ’œ

class ssr_digest_input4(baseobj.BaseObj)

struct ssr_digest_input4 {
    SEQUENCE4res seqres;
};

Methods defined here:

  • __init__(self, unpack) β€” Constructor ✨ Sets up private data based on the args. Positional, named, or both β€” no cap. πŸ”₯

class ssv_mic_plain_tkn4(baseobj.BaseObj)

struct ssv_mic_plain_tkn4 {
    uint32_t ssv_seq;
    opaque   orig_plain<>;
};

Methods defined here:

  • __init__(self, unpack) β€” Constructor ✨ Initializes private data according to the arguments given. Positional, named, or a combo. 🌈

class ssv_mic_tkn4(baseobj.BaseObj)

struct ssv_mic_tkn4 {
    uint32_t ssv_seq;
    opaque   hmac<>;
};

Methods defined here:

  • __init__(self, unpack) β€” Constructor ✨ Sets up private data from the args. Positional, named, or both β€” ate. πŸ’…

class ssv_prot_info4(baseobj.BaseObj)

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<>;
};

Methods defined here:

  • __init__(self, unpack) β€” Constructor ✨ Initializes object's private data according to the arguments given. Positional, named, or a mix. 🫢

class ssv_seal_cipher_tkn4(baseobj.BaseObj)

struct ssv_seal_cipher_tkn4 {
    uint32_t ssv_seq;
    opaque   iv<>;
    opaque   encr_data<>;
    opaque   hmac<>;
};

Methods defined here:

  • __init__(self, unpack) β€” Constructor ✨ Sets up private data based on the args. Positional, named, or both β€” it's giving constructor. πŸ’–

class ssv_seal_plain_tkn4(baseobj.BaseObj)

struct ssv_seal_plain_tkn4 {
    opaque   confounder<>;
    uint32_t ssv_seq;
    opaque   orig_plain<>;
    opaque   pad<>;
};

Methods defined here:

  • __init__(self, unpack) β€” Constructor ✨ Initializes private data according to the arguments given. Positional, named, or a combo. πŸ¦‹

class ssv_sp_parms4(baseobj.BaseObj)

struct ssv_sp_parms4 {
    state_protect_ops4 ops;
    sec_oid4           hash_algs<>;
    sec_oid4           encr_algs<>;
    uint32_t           window;
    uint32_t           num_gss_handles;
};

Methods defined here:

  • __init__(self, unpack) β€” Constructor ✨ Sets up private data from the args. Positional, named, or both β€” lowkey essential. ✨

class ssv_subkey4(packet.utils.Enum)

enum ssv_subkey4

class stable_how4(packet.utils.Enum)

enum stable_how4

class state_owner4(baseobj.BaseObj)

struct state_owner4 {
    clientid4 clientid;
    opaque    owner<NFS4_OPAQUE_LIMIT>;
};

Methods defined here:

  • __init__(self, unpack) β€” Constructor ✨ Initializes object's private data according to the arguments given. Positional, named, or a mix. πŸ‘‘

class state_protect4_a(baseobj.BaseObj)

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;
};

Methods defined here:

  • __init__(self, unpack) β€” Constructor ✨ Sets up private data based on the args. Positional, named, or both β€” periodt. πŸ’…

class state_protect4_r(baseobj.BaseObj)

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;
};

Methods defined here:

  • __init__(self, unpack) β€” Constructor ✨ Initializes private data according to the arguments given. Positional, named, or a combo. 🌸

class state_protect_how4(packet.utils.Enum)

enum state_protect_how4

class state_protect_ops4(baseobj.BaseObj)

struct state_protect_ops4 {
    bitmap4 enforce_mask;
    bitmap4 allow_mask;
};

Methods defined here:

  • __init__(self, unpack) β€” Constructor ✨ Sets up private data from the args. Positional, named, or both β€” slay. πŸŽ€

class stateid4(baseobj.BaseObj)

struct stateid4 {
    uint32_t seqid;
    opaque   other[NFS4_OTHER_SIZE];
};

Methods defined here:

  • __init__(self, unpack) β€” Constructor ✨ Initializes object's private data according to the arguments given. Positional, named, or a mix. πŸ’œ

class th_item4(baseobj.BaseObj) πŸŽ€

struct th_item4 {
    bitmap4 mask;
    opaque  values<>;
};

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 threshold_item4(baseobj.BaseObj) πŸ¦‹

union switch threshold_item4 (layouttype4 type) {
    case const.LAYOUT4_NFSV4_1_FILES:
        nfsv4_1_file_th_item4 items;
    default:
        th_item4 items;
};

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_how4(packet.utils.Enum) β€” enum time_how4 ✨


class why_no_delegation4(packet.utils.Enum) β€” enum why_no_delegation4 ✨


class write_response4(baseobj.BaseObj) 🫢

struct write_response4 {
    stateid4    stateid<1>;
    length4     count;
    stable_how4 committed;
    verifier4   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.


✨ FUNCTIONS ✨

  • SECINFO4resok(unpack)
  • aceflag4(unpack)
  • acemask4(unpack)
  • acetype4(unpack)
  • aclflag4(unpack)
  • bitmap4(unpack)
  • changeid4(unpack)
  • clientid4(unpack)
  • deviceid4(unpack)
  • fattr4(unpack)
struct fattr4 {
    bitmap4   mask;
    attrlist4 values;
};
  • fattr4_acl(unpack)
  • fattr4_change(unpack)
  • fattr4_filehandle(unpack)
  • fattr4_fs_layout_types(unpack)
  • fattr4_layout_types(unpack)
  • gsshandle4_t(unpack)
  • multipath_list4(unpack)
  • nfl_util4(unpack)
  • nfs_fh4(unpack)
  • nfsv4_1_file_th_item4(unpack)
struct nfsv4_1_file_th_item4 {
    bitmap4 mask;
    opaque  values<>;
};
  • notifylist4(unpack) β€” Objects of type notify_<>4 and notify_device_<>4 are encoded in this. πŸ’–
  • pathname4(unpack)
  • sec_oid4(unpack)
  • sessionid4(unpack)
  • verifier4(unpack)

πŸ’– SEE ALSO πŸ’–

Go peek at these besties, they're all linked:


πŸ› BUGS πŸ›

No known bugs. Not a single one. Iconic behavior, honestly. ✨


πŸ‘‘ AUTHOR πŸ‘‘

Jorge Mora (mora@netapp.com) 🫢


This page is from NFStest 3.2, dated 21 March 2023 β€” it's the NFS4(3) manual, bestie. Bye! πŸ’–βœ¨

πŸ“¦ where this page comes from