Template Version: @(#)sac_nextcase 1.64 07/13/07 SMI
This information is Copyright 2007 Sun Microsystems
1. Introduction
1.1. Project/Component Working Name:
DTrace NFS v4 Provider
1.2. Name of Document Author/Supplier:
Author: Adam Leventhal
1.3 Date of This Document:
21 November, 2007
4. Technical Description
NFS v4 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 is intended for use by all provider which are providing some 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] nfsv4opinfo_t * NFS v4 operation properties
typedef struct nfsv4opinfo {
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 top level operation probes along with the specific
argument for each whose type is defined by the NFS v4 specification:
probe name args[2]
---------- -------
nfsv4:::compound-op-start COMPOUND4args *
nfsv4:::compound-op-done COMPOUND4res *
Below is a list of operation probes along with the specific argument
for each whose type is defined by the NFS v4 specification:
probe name args[2]
---------- -------
nfsv4:::op-access-start ACCESS4args *
nfsv4:::op-access-done ACCESS4res *
nfsv4:::op-close-start CLOSE4args *
nfsv4:::op-close-done CLOSE4res *
nfsv4:::op-commit-start COMMIT4args *
nfsv4:::op-commit-done COMMIT4res *
nfsv4:::op-create-start CREATE4args *
nfsv4:::op-create-done CREATE4res *
nfsv4:::op-delegpurge-start DELEGPURGE4args *
nfsv4:::op-delegpurge-done DELEGPURGE4res *
nfsv4:::op-delegreturn-start DELEGRETURN4args *
nfsv4:::op-delegreturn-done DELEGRETURN4res *
nfsv4:::op-getattr-start GETATTR4args *
nfsv4:::op-getattr-done GETATTR4res *
nfsv4:::op-getfh-start GETFH4args *
nfsv4:::op-getfh-done GETFH4res *
nfsv4:::op-link-start LINK4args *
nfsv4:::op-link-done LINK4res *
nfsv4:::op-lock-start LOCK4args *
nfsv4:::op-lock-done LOCK4res *
nfsv4:::op-lockt-start LOCKT4args *
nfsv4:::op-lockt-done LOCKT4res *
nfsv4:::op-locku-start LOCKU4args *
nfsv4:::op-locku-done LOCKU4res *
nfsv4:::op-lookup-start LOOKUP4args *
nfsv4:::op-lookup-done LOOKUP4res *
nfsv4:::op-lookupp-start LOOKUPP4args *
nfsv4:::op-lookupp-done LOOKUPP4res *
nfsv4:::op-nverify-start NVERIFY4args *
nfsv4:::op-nverify-done NVERIFY4res *
nfsv4:::op-open-start OPEN4args *
nfsv4:::op-open-done OPEN4res *
nfsv4:::op-open-confirm-start OPEN_CONFIRM4args *
nfsv4:::op-open-confirm-done OPEN_CONFIRM4res *
nfsv4:::op-open-downgrade-start OPEN_DOWNGRADE4args *
nfsv4:::op-open-downgrade-done OPEN_DOWNGRADE4res *
nfsv4:::op-openattr-start OPENATTR4args *
nfsv4:::op-openattr-done OPENATTR4res *
nfsv4:::op-putfh-start PUTFH4args *
nfsv4:::op-putfh-done PUTFH4res *
nfsv4:::op-putpubfh-start PUTPUBFH4args *
nfsv4:::op-putpubfh-done PUTPUBFH4res *
nfsv4:::op-putrootfh-start PUTROOTFH4args *
nfsv4:::op-putrootfh-done PUTROOTFH4res *
nfsv4:::op-read-start READ4args *
nfsv4:::op-read-done READ4res *
nfsv4:::op-readdir-start READDIR4args *
nfsv4:::op-readdir-done READDIR4res *
nfsv4:::op-readlink-start READLINK4args *
nfsv4:::op-readlink-done READLINK4res *
nfsv4:::op-release-lockowner-start RELEASE_LOCKOWNER4args *
nfsv4:::op-release-lockowner-done RELEASE_LOCKOWNER4res *
nfsv4:::op-remove-start REMOVE4args *
nfsv4:::op-remove-done REMOVE4res *
nfsv4:::op-rename-start RENAME4args *
nfsv4:::op-rename-done RENAME4res *
nfsv4:::op-renew-start RENEW4args *
nfsv4:::op-renew-done RENEW4res *
nfsv4:::op-restorefh-start <none>
nfsv4:::op-restorefh-done <none>
nfsv4:::op-savefh-start SAVEFH4args *
nfsv4:::op-savefh-done SAVEFH4res *
nfsv4:::op-secinfo-start SECINFO4args *
nfsv4:::op-secinfo-done SECINFO4res *
nfsv4:::op-setattr-start SETATTR4args *
nfsv4:::op-setattr-done SETATTR4res *
nfsv4:::op-setclientid-start SETCLIENTID4args *
nfsv4:::op-setclientid-done SETCLIENTID4res *
nfsv4:::op-setclientid-confirm-start SETCLIENTID_CONFIRM4args *
nfsv4:::op-setclientid-confirm-done SETCLIENTID_CONFIRM4res *
nfsv4:::op-verify-start VERIFY4args *
nfsv4:::op-verify-done VERIFY4res *
nfsv4:::op-write-start WRITE4args *
nfsv4:::op-write-done WRITE4res *
Callback compound probes have an undefined second argument; this slot is
reserved for future use.
Below is a list of the top level callback probes along with the specific
argument for each whose type is defined by the NFS v4 specification:
probe name args[2]
---------- -------
nfsv4:::compound-cb-start CB_COMPOUND4args *
nfsv4:::compound-cb-done CB_COMPOUND4res *
Callback operation probes have their second argument in common:
args[1] nfsv4cbinfo_t * NFS v4 callback properties
typedef struct nfsv4cbinfo {
string nci_curpath; /* file handle path (if any) */
} nfsv4cbinfo_t;
Below is a list of callback probes along with the specific argument
for each whose type is defined by the NFS v4 specification:
probe name args[2]
---------- -------
nfsv4:::cb-getattr-start CB_GETATTR4args *
nfsv4:::cb-getattr-done CB_GETATTR4res *
nfsv4:::cb-recall-start CB_RECALL4args *
nfsv4:::cb-recall-done CB_RECALL4res *
(Note that since the Solaris NFS v4 implementation does not yet use the
'getattr' callback, the probe will not be implemented; it is noted here in
anticipation of a future implementation).
6. Resources and Schedule
6.4. Steering Committee requested information
6.4.1. Consolidation C-team Name:
OS/Net
6.5. ARC review type: FastTrack
6.6. ARC Exposure: open