Hi,

only one question - why FC provider? COMSTAR FC target provider is new
code, but FC stack (aka Leadville) is much older (and it could receive
own dtrace probes). Wouldn't it be better to use "fct" for COMSTAR FC
target provider?

Best regards,

Milan

Adam Leventhal p??e v ?t 07. 05. 2009 v 13:09 -0700:
> Template Version: @(#)sac_nextcase 1.68 02/23/09 SMI
> This information is Copyright 2009 Sun Microsystems
> 1. Introduction
>     1.1. Project/Component Working Name:
>        DTrace COMSTAR Fibre Channel Target Provider
>     1.2. Name of Document Author/Supplier:
>        Author:  Sam Cramer
>     1.3  Date of This Document:
>       07 May, 2009
> 4. Technical Description
> Template Version: @(#)sac_nextcase 1.64 07/13/07 SMI
> This information is Copyright 2009 Sun Microsystems
> 1. Introduction
>     1.1. Project/Component Working Name:
>          DTrace COMSTAR Fibre Channel Target Provider
>     1.2. Name of Document Author/Supplier:
>          Author:  Sam Cramer
>     1.3  Date of This Document:
>         07 May, 2009
> 4. Technical Description
> 
> The following specification describes the COMSTAR Fibre Channel Target
> provider for DTrace. It has been reviewed and approved by the DTrace
> community; the PSARC case is closed approved automatic to record the
> interface. The stability is Committed and the binding is Patch.
> 
> The fc provider provides probes for tracing fibre channel port provider
> activity.
> 
> This is a kernel provider built into the COMSTAR fc target port provider.
> 
> FC Provider
> 
> 4.1 Probes overview
> 
> Fibre Channel Event Type        Probes
> ------------------------        ------
> Link events                     fc:::link-up
>                                 fc:::link-down
> 
> Remote Port login/logout        fc:::rport-login-start
>                                 fc:::rport-login-end
>                                 fc:::rport-logout-start
>                                 fc:::rport-logout-end
> 
> Fabric login                    fc:::fabric-login-start
>                                 fc:::fabric-login-end
> 
> SCSI command/response           fc:::scsi-command
>                                 fc:::scsi-response
> 
> Data transfer                   fc:::xfer-start
>                                 fc:::xfer-done
> 
> 4.2 Probe argument commonality
> 
> 4.2.1 Arguments common to all probes
> 
> All FC probes have the first argument in common:
> 
>         args[0]         conninfo_t *            fc 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 (port WWN) */
>                 string ci_remote;       /* remote host address (port WWN) */
>                 string ci_protocol;     /* protocol (fc) */
>         } conninfo_t;
> 
> 
> 4.2.2 Arguments common to all probes save for link event probes
> 
> All FC event probes other than link event probes have their second argument
> in common:
> 
>         args[1]         fc_port_info_t *        local port information
> 
> The fc_port_info_t structure contains detailed information about a Fibre
> Channel port:
> 
>         typedef struct fc_port_info {
>                 string fcp_node_wwn;            /* node WWN */
>                 string fcp_sym_node_name;       /* node symbolic name */
>                 string fcp_sym_port_name;       /* port symbolic name */
>                 uint32_t fcp_port_hard_address; /* port hard address */
>         } fc_port_info_t;
> 
> 4.2.3 Arguments common to SCSI command and data transfer probes
> 
> FC SCSI command and data transfer probes have their third and fourth
> arguments in common:
> 
>         args[2]         scsicmd_t *             SCSI command block (cdb)
>         args[3]         fc_port_info_t *        remote port information
> 
> The scsicmd_t structure contains information about SCSI command blocks:
> 
>         typedef struct scsicmd {
>                 uint64_t ic_len;        /* CDB length */
>                 uint8_t  *ic_cdb;       /* CDB data */
>         } scsicmd_t;
> 
> 4.2.4 Arguments common to data transfer probes
> 
> FC data transfer probes have their fifth argument in common:
> 
>         args[4]         fc_xferinfo_t *         data transfer information
> 
> The fc_xferinfo_t structure contains information about the data transfer:
> 
>         typedef struct fc_xferinfo {
>                 uint32_t fcx_len;       /* transfer length */
>                 uint32_t fcx_offset;    /* transfer offset */
>                 uint16_t fcx_flags;     /* db_flags as defined in sys/stmf.h 
> */
>         } fc_xferinfo_t;
> 
> 
> 4.3 Detailed probes specification
> 
> 4.3.1 Link Event Probes
> 
> fc:::link-up and fc:::link-down trace Fibre Channel link-up and link-down
> events.
> 
> Remote port information (ci_remote) is unavailable for both probes.
> 
> Probes                         Variable  Type               Description
> ------                         --------  ----               -----------
> fc:::link-up,                  args[0]   conninfo_t *       connection info
> fc:::link-down  
> 
> 4.3.2 Remote Port Login/Logout Event Probes
> 
> Probes                         Variable  Type               Description
> ------                         --------  ----               -----------
> fc:::rport-login-start,        args[0]   conninfo_t *       connection info
> fc:::rport-login-end,          args[1]   fc_port_info_t *   local port info
> fc:::rport-logout-start,       args[2]   fc_port_info_t *   remote port info
> fc:::rport-logout-end          args[3]   int                solicited login 
> flag
> 
> args[3] is 0 if the login or logout is unsolicited (inbound) and is
> non-zero if solicited (outbound).
> 
> 4.3.3 Fabric Login Event Probes
> 
> Probes                         Variable  Type               Description
> ------                         --------  ----               -----------
> fc:::fabric-login-start,       args[0]   conninfo_t *       connection info
> fc:::fabric-login-end,
> 
> fc:::fabric-login-end          args[1]   fc_port_info_t *   local port info
> 
> Fabric login applies only to the local port, since that's the entity that
> logs into the fabric. Note that there's no explicit fabric logout. Detailed
> local port information is only known at the end of fabric login.
> 
> 4.3.4 SCSI Command Event Probes
> 
> Probes                         Variable  Type               Description
> ------                         --------  ----               -----------
> fc:::scsi-command,             args[0]   conninfo_t *       connection info
> fc:::scsi-response             args[1]   fc_port_info_t *   local port info
>                                args[2]   scsi_cmd_t *       SCSI command block
>                                args[3]   fc_port_info_t *   remote port info
> 
> 4.3.5 Data Transfer Event Probes
> 
> Probes                         Variable  Type               Description
> ------                         --------  ----               -----------
> fc:::xfer-start,               args[0]   conninfo_t *       connection info
> fc:::xfer-done                 args[1]   fc_port_info_t *   local port info
>                                args[2]   scsi_cmd_t *       SCSI command block
>                                args[3]   fc_port_info_t *   remote port info
>                                args[4]   fc_xferinfo_t *    data transfer info
> 
> 
> Documentation and examples can be found here:
> 
>   http://wikis.sun.com/display/DTrace/fibre+channel+Provider
> 
> The table below describes the DTrace stability levels
> 
>                  |  Name            Data            Class                     
>   
>     -------------+-------------------------------------------                 
>   
>     Provider     |  Evolving        Evolving        ISA                       
>   
>     Module       |  Private         Private         Unknown                   
>   
>     Function     |  Private         Private         Unknown                   
>   
>     Name         |  Evolving        Evolving        ISA                       
>   
>     Arguments    |  Evolving        Evolving        ISA
> 
> 
> 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
> 
> 
> 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