keys to have _uint in their names, to match the routines that handle
dissector tables with string keys. (Using _port can confuse people into
thinking they're intended solely for use with TCP/UDP/etc. ports when,
in fact, they work better for things such as Ethernet types, where the
binding of particular values to particular protocols are a lot
stronger.)
svn path=/trunk/; revision=35224
It would be nice to have dissection of the Fibre-Channel FCP
"Sequence retransmission request" (SRR) request.
This is like an FC ELS request, but it has FC type FCP, so it's
a little strange. It seemed like the best place to put it is in
packet-fcp.c but a slight hook is needed in packet-fc.c to
recognize that packet-fcp is the correct dissector.
svn path=/trunk/; revision=30587
(1) Trailing/leading spaces are removed from 'name's/'blurb's
(2) Duplicate 'blurb's are replaced with NULL
(3) Empty ("") 'blurb's are replaced with NULL
(4) BASE_NONE, NULL, 0x0 are used for 'display', 'strings' and 'bitmask' fields
for FT_NONE, FT_BYTES, FT_IPv4, FT_IPv6, FT_ABSOLUTE_TIME, FT_RELATIVE_TIME,
FT_PROTOCOL, FT_STRING and FT_STRINGZ field types
(5) Only allow non-zero value for 'display' if 'bitmask' is non-zero
svn path=/trunk/; revision=28770
The Fibre-channel FCP dissector shows the wrong byte as the response info
response code byte. The byte with offset 2 in the FCP frame is shown
instead of byte 3 inside the response info.
svn path=/trunk/; revision=25439
and also (if reassembly is disabled) only dissect the initial (offset==0) data pdu.
dissect_scsi_payload() does not yet use this parameter.
now that we have both data offset and expected data length/bidir expected data length and also the read/write flags availabe we have what we need to reassemble data in/out pdus (modulo overflow/underflow but those are so rare we can worry about them later).
ndmp: ndmp conceptually always has a data in and a data out phase and never fragment the data into smaller pdu's os that dissector always report offset as 0.
svn path=/trunk/; revision=19511
pass conversation form the transports up to the scsi layer
add tracking of conversation specific info to scsi osd
add tracking of conversation+lun specific info to scsi osd
for scsi osd add tracking of PARTITIONS and display in which frame they were created/removed
svn path=/trunk/; revision=19505
so that the two scsi transports FCP and ISCSI can provide the expected data transfer lengths to SCSI to allow SCSI reassembly.
NDMP does not really need these hints since for NDMP (and also iscsi-lite) there is conceptually always both data in and data out phases and there is never any fragmentation.
svn path=/trunk/; revision=19493
update the comment in packet-scsi.c to reflect that it is the transport now that is responsible to track itl and itlq data
make scsi tapable
svn path=/trunk/; revision=17974
structures for scsi.
we no longer need the scsi_task_id structure passed by pinfo->private_data so get rid of it.
we no longer need the (broken by design) scsi_task_data hash table since this has been replaced byt hte itl and itlq structures and tracking
svn path=/trunk/; revision=17952
remove the two fields opcode and devtype from the scsi_task_data structure since these are also part of the itlq and itl structures
svn path=/trunk/; revision=17949
and get rid of some breakage in the design
let the scsi transport keep track of itl (initiator, target, lun) matching
and let it pass a itl structure to scsi that is persistent across packets.
let scsi use this itl structure to track device type for a specific itl instead of the (must have been) broken hashtable.
update both iscsi and fc to track the itl structure for scsi and schange the scsi signature to accept itl as a parameter.
more to come.
svn path=/trunk/; revision=17942
this finally allows us to have scsi.time for scsi transactions but we need to cleanup and refactor the other three scsi entrypoints before we should implement scsi srt to make the other three also take an exchange data structure as parameter from their transports (and get rid of the pinfo->private_data )
svn path=/trunk/; revision=17838
this is semi-temporary though since FCP will always sit ontop of FC which also tracks the same conversations so there is no need to do a redundant conversation tracking in fcp itself.
svn path=/trunk/; revision=17822
call the scsi response dissector as well
(so that eventually we can do things like SRT for SCSI)
it doesnt work yet since fcp is using some incredibly broken logic to
track state between frames.
the cdata stuff can just not ever work exscept for single scan tethereal dissection.
is there noone at all looking at these protocols wioth ethereal?
has noone noticed it is completely broken yet?
sigh, soon i think i will be able to add the originally estimated trivial to implement SCSI SRT
svn path=/trunk/; revision=17811
add missing flags to the dissection and during refactoring fix several things that just can not have worked previously.
svn path=/trunk/; revision=17805
and get rid of the silly strcpy() stuff.
there is a HUGE number of these kinds of very ugly bitmap dissection in all the fibre channel related dissectors and all need to be converted to proer dissection.
svn path=/trunk/; revision=15994
directory to the epan directory. Some of them should perhaps ultimately
be moved to epan/dissectors, if they pertain only to stuff exported by a
particular dissector.
Fix Gerald's e-mail address in files we're moving.
svn path=/trunk/; revision=15844
I've done more than a day to change the timestamp resolution from microseconds to nanoseconds. As I really don't want to loose those changes, I'm going to check in the changes I've done so far. Hopefully someone else will give me a helping hand with the things left ...
What's done: I've changed the timestamp resolution from usec to nsec in almost any place in the sources. I've changed parts of the implementation in nstime.s/.h and a lot of places elsewhere.
As I don't understand the editcap source (well, I'm maybe just too tired right now), hopefully someone else might be able to fix this soon.
Doing all those changes, we get native nanosecond timestamp resolution in Ethereal. After fixing all the remaining issues, I'll take a look how to display this in a convenient way...
As I've also changed the wiretap timestamp resolution from usec to nsec we might want to change the wiretap version number...
svn path=/trunk/; revision=15520
-use g_snprintf instead of sprintf and snprintf
-use g_strdup_printf where appropriate
-remove #include "snprintf.h" (as only g_snprintf should be used)
-replace some more alloc/realloc/calloc/free with their glib pendants
svn path=/trunk/; revision=15264
The FC D_id and S_id fields in teh FC frame encapsulated inside iFCP unfortunately has "undefined" (semi-random) values so we can not use th S_/D_id matching in FC when transported atop iFCP.
Change iFCP to call a new fc_ifcp handler instead of the fc handler.
Add a new handler to FC specific to iFCP.
Only set the pinfo->src/dst fields to the S_id/D_id fields IFF the FC frame was NOT transported ontop of iFCP.
Othervise we just use the TCP/IP values that are already stored there.
Some Hosts use RelativeOffset fields for FC. We can only dissect the RelOff field with offset 0.
Change FC to only call the FCP subdissector if offset==0 when relative offsets are used.
Some hosts when using relative offsets do not specify a proper value for rxid in teh commands instead htey lkeave it as 0xffff
Change the FCP conversation matching to ignore RXID when searching for a conversation.
svn path=/trunk/; revision=15076
Use "tvb_ensure_bytes_exist()" to check for some invalid lengths.
Add some comments about possible problems in the code.
Get rid of an unnecessary length check (the length is the sum of a small
constant and a value extracted from a single byte, so the sum won't
overflow).
For a FCP_RSP, make the top-level protocol tree item run to the end of
the tvbuff and then set its length when we finish dissecting it (if we
throw an exception and don't get around to setting the length, that
means that we hit the end of the tvbuff before we hit the end of the
item). Add some checks to catch too-large length fields.
svn path=/trunk/; revision=13917