I would like to request approval of the the DTrace proposal for the COMSTAR iSCSI target port provider. I have updated the specification of the iscsi provider at http://wikis.sun.com/display/DTrace/iscsi+Provider. Your feedback is appreciated.

thanks
Priya

COMSTAR DTrace Probes/Providers for iSCSI Target

Version         0.8, 04-30-09

This document describes the Dtrace probes definition for the iSCSI target port
provider. The iSCSI target port provider provides probes for tracing iSCSI
target activity. It provides all the probes that are provided by the USTD iscsi
provider, so that any DTrace script written for the iscsi provider will work
with the iscsi target port provider as well.

Probes

---------------------------------------------------------------------------
SCSI Event                      Probes                  Arguments
---------------------------------------------------------------------------
SCSI command                    scsi-command            args[0] conninfo_t
                                                        args[1] iscsiinfo_t
                                                        args[2] scsicmd_t
---------------------------------------------------------------------------

SCSI response                   scsi-response           args[0] conninfo_t
                                                        args[1] iscsiinfo_t
---------------------------------------------------------------------------

Data out                        data-send               args[0] conninfo_t
                                                        args[1] iscsiinfo_t
---------------------------------------------------------------------------

Data in                         data-receive            args[0] conninfo_t
                                                        args[1] iscsiinfo_t
---------------------------------------------------------------------------

Data request(rtt)               data-request            args[0] conninfo_t
                                                        args[1] iscsiinfo_t
---------------------------------------------------------------------------

Login command                   login-command           args[0] conninfo_t
                                                        args[1] iscsiinfo_t
---------------------------------------------------------------------------

Login response                  login-response          args[0] conninfo_t
                                                        args[1] iscsiinfo_t
---------------------------------------------------------------------------

Logout command                  logout-command          args[0] conninfo_t
                                                        args[1] iscsiinfo_t
---------------------------------------------------------------------------

Logout response                 logout-response         args[0] conninfo_t
                                                        args[1] iscsiinfo_t
---------------------------------------------------------------------------

Buffer dispatch                 xfer-start              args[0] conninfo_t
                                                        args[1] iscsiinfo_t
                                                        args[2] xferinfo_t
---------------------------------------------------------------------------

Buffer Completion               xfer-done               args[0] conninfo_t
                                                        args[1] iscsiinfo_t
                                                        args[2] xferinfo_t
---------------------------------------------------------------------------

NOP in                          nop-receive             args[0] conninfo_t
                                                        args[1] iscsiinfo_t
---------------------------------------------------------------------------

NOP out                         nop-send                args[0] conninfo_t
                                                        args[1] iscsiinfo_t
---------------------------------------------------------------------------

Task command                    task-command            args[0] conninfo_t
                                                        args[1] iscsiinfo_t
---------------------------------------------------------------------------

Task response                   task-response           args[0] conninfo_t
                                                        args[1] iscsiinfo_t
---------------------------------------------------------------------------

Text command                    text-command            args[0] conninfo_t
                                                        args[1] iscsiinfo_t
---------------------------------------------------------------------------

Text response                   text-response           args[0] conninfo_t
                                                        args[1] iscsiinfo_t
---------------------------------------------------------------------------

Asynchronous message from target async-send             args[0] conninfo_t
                                                        args[1] iscsiinfo_t
---------------------------------------------------------------------------

Argument Types

Connection Information: conninfo_t

typedef struct conninfo {                                                       
        string ci_local;        /* local host IP address and port */
        string ci_remote;       /* remote host IP address and port */
        string ci_protocol;     /* protocol ("ipv4", "ipv6") */
} conninfo_t;

Common iSCSI propertues: iscsiinfo_t

typedef struct iscsiinfo {
        string ii_target;       /* target iqn */
        string ii_initiator;    /* initiator iqn */
        string ii_isid;         /* initiator session identifier */
        string ii_tsih;         /* target session identifying handle */
        string ii_transport;    /* transport type ("iser-ib", "sockets") */

        uint64_t ii_lun;        /* target logical unit number */

        uint32_t ii_itt;        /* initiator task tag */
        uint32_t ii_ttt;        /* target transfer tag */

        uint32_t ii_cmdsn;      /* command sequence number */
        uint32_t ii_statsn;     /* status sequence number */
        uint32_t ii_datasn;     /* data sequence number */

        uint32_t ii_datalen;    /* length of data payload */
        uint32_t ii_flags;      /* probe-specific flags */

} iscsiinfo_t;

SCSI opcode: scsicmd_t

typedef struct scsicmd {
        uint64_t ic_len;        /* CDB length */
        uint8_t *ic_cdb;        /* CDB data */
} scsicmd_t;

Transfer details for a single buffer: xferinfo_t. 

typedef struct xferinfo {
        uintptr_t xfer_laddr;   /* local buffer address */
        uint32_t xfer_loffset;  /* offset within the local buffer */
        uint32_t xfer_lkey;     /* access control to local memory */
        uintptr_t xfer_raddr;   /* remote virtual address */
        uint32_t xfer_roffset;  /* offset from the remote address */
        uint32_t xfer_rkey;     /* access control to remote virtual address */
        uint32_t xfer_len;      /* transfer length */
        uint32_t xfer_type;     /* Read or Write */ 
} xferinfo_t;
_______________________________________________
dtrace-discuss mailing list
[email protected]

Reply via email to