Wireshark-dev: Re: [Wireshark-dev] Wireshark SCSI dissectors for new transports
From: Stefan Hajnoczi <[email protected]>
Date: Tue, 28 Feb 2012 10:55:36 +0000
On Tue, Feb 28, 2012 at 10:19 AM, ronnie sahlberg
<[email protected]> wrote:
> Since I never got HyperSCSI or mFCP (very short-lived attempt from HBA
> vendors)  those two are the only ones today I think where we miss
> decode.
> virt-scsi from QEMU sounds interesting!

Great, thanks for your help.

> First you need a DLT value from the tcpdump folks to wrap your packets in.

Okay, I am sending an email to request that.

> Depending on what the framing looks like, you need at least a wrapper
> around the SCSI payload that can contain
> an I_T identifier, then  a LUN field, and then scoped per LUN you need
> a task-tag or similar.
> Wireshark would need I_T to be able to track initiators and targets
> separately and form a "conversation" between an arbitrary pair.
> A LUN identifier to track different luns on the same I_T separately.
> Finally it also needs a task-tag so that on a specific ILT nexus it
> will be able to match a SCSI CDB with DATA-IN/OUT blobs and a SCSI
> response/sense
> to make it map well  you might need to wrap thing inside a
> struct scsi_wrapper {
>    initiator identifier
>    target identifier
>    lun
>    task-tag
>    opcode (cdb, datain, dataout, response/sense)
>    scsi *
> }
> if your transport also supports multiple datain/out blobs for a single
> task,  in order to reassemble the data we would also need a
> offset/length for each datain/out blob.

All these things make sense, I think it will be pretty straightforward
since virtio-scsi uses a simple header/footer for SCSI transport
metadata including some of the things you've mentioned.

I will post more information once we have the DLT.