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


Reply via email to