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