Net-LibNFS

 view release on metacpan or  search on metacpan

libnfs/nfs4/nfs4.x  view on Meta::CPAN

        OP_SECINFO              = 33,
        OP_SETATTR              = 34,
        OP_SETCLIENTID          = 35,
        OP_SETCLIENTID_CONFIRM  = 36,
        OP_VERIFY               = 37,
        OP_WRITE                = 38,
        OP_RELEASE_LOCKOWNER    = 39,
        OP_BIND_CONN_TO_SESSION = 41,
        OP_EXCHANGE_ID          = 42,
        OP_CREATE_SESSION       = 43,
        OP_DESTROY_SESSION      = 44,
        OP_FREE_STATEID         = 45,
        OP_GET_DIR_DELEGATION   = 46,
        OP_GETDEVICEINFO        = 47,
        OP_GETDEVICELIST        = 48,
        OP_LAYOUTCOMMIT         = 49,
        OP_LAYOUTGET            = 50,
        OP_LAYOUTRETURN         = 51,
        OP_SECINFO_NO_NAME      = 52,
        OP_SEQUENCE             = 53,
        OP_SET_SSV              = 54,
        OP_TEST_STATEID         = 55,
        OP_WANT_DELEGATION      = 56,
        OP_DESTROY_CLIENTID     = 57,
        OP_RECLAIM_COMPLETE     = 58,
        OP_ILLEGAL              = 10044
};

union nfs_argop4 switch (nfs_opnum4 argop) {
 case OP_ACCESS:        ACCESS4args opaccess;
 case OP_CLOSE:         CLOSE4args opclose;
 case OP_COMMIT:        COMMIT4args opcommit;
 case OP_CREATE:        CREATE4args opcreate;
 case OP_DELEGPURGE:    DELEGPURGE4args opdelegpurge;
 case OP_DELEGRETURN:   DELEGRETURN4args opdelegreturn;
 case OP_GETATTR:       GETATTR4args opgetattr;
 case OP_GETFH:         void;
 case OP_LINK:          LINK4args oplink;
 case OP_LOCK:          LOCK4args oplock;
 case OP_LOCKT:         LOCKT4args oplockt;
 case OP_LOCKU:         LOCKU4args oplocku;
 case OP_LOOKUP:        LOOKUP4args oplookup;
 case OP_LOOKUPP:       void;
 case OP_NVERIFY:       NVERIFY4args opnverify;
 case OP_OPEN:          OPEN4args opopen;
 case OP_OPENATTR:      OPENATTR4args opopenattr;
 case OP_OPEN_CONFIRM:  OPEN_CONFIRM4args opopen_confirm;
 case OP_OPEN_DOWNGRADE:        OPEN_DOWNGRADE4args opopen_downgrade;
 case OP_PUTFH:         PUTFH4args opputfh;
 case OP_PUTPUBFH:      void;
 case OP_PUTROOTFH:     void;
 case OP_READ:          READ4args opread;
 case OP_READDIR:       READDIR4args opreaddir;
 case OP_READLINK:      void;
 case OP_REMOVE:        REMOVE4args opremove;
 case OP_RENAME:        RENAME4args oprename;
 case OP_RENEW:         RENEW4args oprenew;
 case OP_RESTOREFH:     void;
 case OP_SAVEFH:        void;
 case OP_SECINFO:       SECINFO4args opsecinfo;
 case OP_SETATTR:       SETATTR4args opsetattr;
 case OP_SETCLIENTID:   SETCLIENTID4args opsetclientid;
 case OP_SETCLIENTID_CONFIRM:   SETCLIENTID_CONFIRM4args
                                        opsetclientid_confirm;
 case OP_VERIFY:        VERIFY4args opverify;
 case OP_WRITE:         WRITE4args opwrite;
 case OP_RELEASE_LOCKOWNER:     RELEASE_LOCKOWNER4args
                                    oprelease_lockowner;
 case OP_BIND_CONN_TO_SESSION:  BIND_CONN_TO_SESSION4args opbindconntosession;
 case OP_EXCHANGE_ID:           EXCHANGE_ID4args opexchangeid;
 case OP_CREATE_SESSION:        CREATE_SESSION4args opcreatesession;
 case OP_DESTROY_SESSION:       DESTROY_SESSION4args opdestroysession;
 case OP_FREE_STATEID:          FREE_STATEID4args opfreestateid;
 case OP_GET_DIR_DELEGATION:    GET_DIR_DELEGATION4args opgetdirdelegation;
 case OP_GETDEVICEINFO:         GETDEVICEINFO4args opgetdeviceinfo;
 case OP_GETDEVICELIST:         GETDEVICELIST4args opgetdevicelist;
 case OP_LAYOUTCOMMIT:          LAYOUTCOMMIT4args oplayoutcommit;
 case OP_LAYOUTGET:             LAYOUTGET4args oplayoutget;
 case OP_LAYOUTRETURN:          LAYOUTRETURN4args oplayoutreturn;
 case OP_SECINFO_NO_NAME:       SECINFO_NO_NAME4args opsecinfononame;
 case OP_SEQUENCE:              SEQUENCE4args opsequence;
 case OP_SET_SSV:               SET_SSV4args opsetssv;
 case OP_TEST_STATEID:          TEST_STATEID4args opteststateid;
 case OP_WANT_DELEGATION:       WANT_DELEGATION4args opwantdelegation;
 case OP_DESTROY_CLIENTID:      DESTROY_CLIENTID4args opdestroyclientid;
 case OP_RECLAIM_COMPLETE:      RECLAIM_COMPLETE4args opreclaimcomplete;
 case OP_ILLEGAL:       void;
};

union nfs_resop4 switch (nfs_opnum4 resop){
 case OP_ACCESS:        ACCESS4res opaccess;
 case OP_CLOSE:         CLOSE4res opclose;
 case OP_COMMIT:        COMMIT4res opcommit;
 case OP_CREATE:        CREATE4res opcreate;
 case OP_DELEGPURGE:    DELEGPURGE4res opdelegpurge;
 case OP_DELEGRETURN:   DELEGRETURN4res opdelegreturn;
 case OP_GETATTR:       GETATTR4res opgetattr;
 case OP_GETFH:         GETFH4res opgetfh;
 case OP_LINK:          LINK4res oplink;
 case OP_LOCK:          LOCK4res oplock;
 case OP_LOCKT:         LOCKT4res oplockt;
 case OP_LOCKU:         LOCKU4res oplocku;
 case OP_LOOKUP:        LOOKUP4res oplookup;
 case OP_LOOKUPP:       LOOKUPP4res oplookupp;
 case OP_NVERIFY:       NVERIFY4res opnverify;
 case OP_OPEN:          OPEN4res opopen;
 case OP_OPENATTR:      OPENATTR4res opopenattr;
 case OP_OPEN_CONFIRM:  OPEN_CONFIRM4res opopen_confirm;
 case OP_OPEN_DOWNGRADE:        OPEN_DOWNGRADE4res opopen_downgrade;
 case OP_PUTFH:         PUTFH4res opputfh;
 case OP_PUTPUBFH:      PUTPUBFH4res opputpubfh;
 case OP_PUTROOTFH:     PUTROOTFH4res opputrootfh;
 case OP_READ:          READ4res opread;
 case OP_READDIR:       READDIR4res opreaddir;
 case OP_READLINK:      READLINK4res opreadlink;
 case OP_REMOVE:        REMOVE4res opremove;
 case OP_RENAME:        RENAME4res oprename;
 case OP_RENEW:         RENEW4res oprenew;
 case OP_RESTOREFH:     RESTOREFH4res oprestorefh;
 case OP_SAVEFH:        SAVEFH4res opsavefh;
 case OP_SECINFO:       SECINFO4res opsecinfo;
 case OP_SETATTR:       SETATTR4res opsetattr;
 case OP_SETCLIENTID:   SETCLIENTID4res opsetclientid;
 case OP_SETCLIENTID_CONFIRM:   SETCLIENTID_CONFIRM4res
                                        opsetclientid_confirm;
 case OP_VERIFY:        VERIFY4res opverify;
 case OP_WRITE:         WRITE4res opwrite;
 case OP_RELEASE_LOCKOWNER:     RELEASE_LOCKOWNER4res
                                    oprelease_lockowner;
 case OP_BIND_CONN_TO_SESSION:  BIND_CONN_TO_SESSION4res opbindconntosession;
 case OP_EXCHANGE_ID:           EXCHANGE_ID4res opexchangeid;
 case OP_CREATE_SESSION:        CREATE_SESSION4res opcreatesession;
 case OP_DESTROY_SESSION:       DESTROY_SESSION4res opdestroysession;
 case OP_FREE_STATEID:          FREE_STATEID4res opfreestateid;
 case OP_GET_DIR_DELEGATION:    GET_DIR_DELEGATION4res opgetdirdelegation;
 case OP_GETDEVICEINFO:         GETDEVICEINFO4res opgetdeviceinfo;
 case OP_GETDEVICELIST:         GETDEVICELIST4res opgetdevicelist;
 case OP_LAYOUTCOMMIT:          LAYOUTCOMMIT4res oplayoutcommit;
 case OP_LAYOUTGET:             LAYOUTGET4res oplayoutget;
 case OP_LAYOUTRETURN:          LAYOUTRETURN4res oplayoutreturn;
 case OP_SECINFO_NO_NAME:       SECINFO_NO_NAME4res opsecinfononame;
 case OP_SEQUENCE:              SEQUENCE4res opsequence;
 case OP_SET_SSV:               SET_SSV4res opsetssv;
 case OP_TEST_STATEID:          TEST_STATEID4res opteststateid;
 case OP_WANT_DELEGATION:       WANT_DELEGATION4res opwantdelegation;
 case OP_DESTROY_CLIENTID:      DESTROY_CLIENTID4res opdestroyclientid;
 case OP_RECLAIM_COMPLETE:      RECLAIM_COMPLETE4res opreclaimcomplete;
 case OP_ILLEGAL:       ILLEGAL4res opillegal;
};

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

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

/*
 * Remote file service routines
 */
program NFS4_PROGRAM {
        version NFS_V4 {
                void
                        NFSPROC4_NULL(void) = 0;

                COMPOUND4res
                        NFSPROC4_COMPOUND(COMPOUND4args) = 1;

        } = 4;
} = 100003;



/*
 * NFS4 Callback Procedure Definitions and Program
 */

/*
 * CB_GETATTR: Get Current Attributes
 */
struct CB_GETATTR4args {
        nfs_fh4 fh;
        bitmap4 attr_request;
};

struct CB_GETATTR4resok {
        fattr4  obj_attributes;
};

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

/*
 * CB_RECALL: Recall an Open Delegation



( run in 0.904 second using v1.01-cache-2.11-cpan-71847e10f99 )