On Jan 17, 2008, at 2:24 PM, Adam Leventhal wrote:

> Below is a proposal for a new DTrace provider for NFS v3 developed  
> by Sam
> Falkner, Lisa Week, and me. It's quite similar to the NFS v4  
> provider which
> was integrated into Solaris last month. If you have any comments,  
> please
> voice them by January 24th as we hope to submit the PSARC case shortly
> after that.

This is for just the NFSv3 server (as opposed to the client and  
server), right?

Any plans for the ancillary protocols of NFSv3 (NLM, MOUNT, stat,  
acl)?  This would allow us to have a true "nfsv3_snoop.d".

eric


>
> Adam
>
> ---8<---
>
> NFS v3 Provider
>
> All NFS operation probes have the first argument in common:
>
>       args[0]         conninfo_t *            socket connection information
>
> The conninfo_t structure is already used by the iSCSI target  
> provider (iscsi)
> and the NFS v4 provider (nfsv4), and is intended for use by all  
> providers
> related to a higher level protocol (e.g. iscsi, nfs, http, ftp).
>
>       typedef struct conninfo {
>               string ci_local;        /* local host address */
>               string ci_remote;       /* remote host address */
>               string ci_protocol;     /* protocol (ipv4, ipv6, etc) */
>       } conninfo_t;
>
>
> Operation probes have their second argument in common:
>
>       args[1]         nfsv3opinfo_t *         NFS v3 operation properties
>
>       typedef struct nfsv3opinfo {
>               string noi_curpath;     /* current file handle path (if any) */
>               cred_t *noi_cred;       /* credentials */
>               uint64_t noi_xid;       /* transaction ID */
>       } nfsv4opinfo_t;
>
> Below is a list of the probes along with the specific argument for  
> each
> whose type is defined by the NFS v3 specification:
>
>       probe name                              args[2]
>       ----------                              -------
>       nfsv3:::op-access-start                 ACCESS3args *
>       nfsv3:::op-access-done                  ACCESS3res *
>       nfsv3:::op-commit-start                 COMMIT3args *
>       nfsv3:::op-commit-done                  COMMIT3res *
>       nfsv3:::op-create-start                 CREATE3args *
>       nfsv3:::op-create-done                  CREATE3res *
>       nfsv3:::op-fsinfo-start                 FSINFO3args *
>       nfsv3:::op-fsinfo-done                  FSINFO3res *
>       nfsv3:::op-fsstat-start                 FSSTAT3args *
>       nfsv3:::op-fsstat-done                  FSSTAT3res *
>       nfsv3:::op-getattr-start                GETATTR3args *
>       nfsv3:::op-getattr-done                 GETATTR3res *
>       nfsv3:::op-lookup-start                 LOOKUP3args *
>       nfsv3:::op-lookup-done                  LOOKUP3res *
>       nfsv3:::op-link-start                   LINK3args *
>       nfsv3:::op-link-done                    LINK3res *
>       nfsv3:::op-mkdir-start                  MKDIR3args *
>       nfsv3:::op-mkdir-done                   MKDIR3res *
>       nfsv3:::op-mknod-start                  MKNOD3args *
>       nfsv3:::op-mknod-done                   MKNOD3res *
>       nfsv3:::op-null-start                   -
>       nfsv3:::op-null-done                    -
>       nfsv3:::op-pathconf-start               PATHCONF3args *
>       nfsv3:::op-pathconf-done                PATHCONF3res *
>       nfsv3:::op-read-start                   READ3args *
>       nfsv3:::op-read-done                    READ3res *
>       nfsv3:::op-readdir-start                READDIR3args *
>       nfsv3:::op-readdir-done                 READDIR3res *
>       nfsv3:::op-readdirplus-start            READDIRPLUS3args *
>       nfsv3:::op-readdirplus-done             READDIRPLUS3res *
>       nfsv3:::op-readlink-start               READLINK3args *
>       nfsv3:::op-readlink-done                READLINK3res *
>       nfsv3:::op-remove-start                 REMOVE3args *
>       nfsv3:::op-remove-done                  REMOVE3res *
>       nfsv3:::op-renamestart                  RENAME3args *
>       nfsv3:::op-rename-done                  RENAME3res *
>       nfsv3:::op-rmdir-start                  RMDIR3args *
>       nfsv3:::op-rmdir-done                   RMDIR3res *
>       nfsv3:::op-setattr-start                SETATTR3args *
>       nfsv3:::op-setattr-done                 SETATTR3res *
>       nfsv3:::op-symlink-start                SYMLINK3args *
>       nfsv3:::op-symlink-done                 SYMLINK3res *
>       nfsv3:::op-write-start                  WRITE3args *
>       nfsv3:::op-write-done                   WRITE3res *
>
> Note that op-null-* probes have an undefined args[2].
>
>
> Documentation and examples can be found here:
>
>   http://wikis.sun.com/display/DTrace/nfsv3+Provider
>
> ---8<---
>
> -- 
> Adam Leventhal, Fishworks                        http:// 
> blogs.sun.com/ahl
> _______________________________________________
> nfs-discuss mailing list
> nfs-discuss at opensolaris.org


Reply via email to