Commit Graph

38 Commits

Author SHA1 Message Date
Ulf Lamping 6f43fbb2f0 EVERYTHING IN THE BUILDBOT IS GOING TO BE RED!!! Sorry!
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
2005-08-24 21:31:56 +00:00
Ulf Lamping 06c86303e7 The protocol item in the protocol tree will have a gray background now, which makes it much better visible.
Add some more optional flags to the protocol items, so more "special cases" can be marked in the protocol tree.

New flags:
/** The protocol field has a bad checksum */
FI_CHECKSUM_ERROR
/** The protocol field has an unusual sequence (e.g. TCP window is zero) */
FI_SEQUENCE_WARNING
/** The protocol field has a bad sequence (e.g. TCP segment is lost) */
FI_SEQUENCE_ERROR

svn path=/trunk/; revision=15499
2005-08-21 15:23:48 +00:00
Guy Harris ccbb97ed45 Do the sequence number analysis *before* dissecting the payload, so we
don't have to worry about catching exceptions in the payload dissection
and doing the sequence number analysis - we weren't doing so in one
place.  That also puts the sequence number analysis *before* the "TCP
payload" entry for payload being reassembled into a later packet.

XXX - should we do the tapping before dissecting the payload, too, so
that it gets done even if we throw an exception?

svn path=/trunk/; revision=15335
2005-08-13 07:30:57 +00:00
Ronnie Sahlberg 5eda7935dd some gmemchunk -> se_alloc() improvements for tcp
svn path=/trunk/; revision=15325
2005-08-12 23:46:46 +00:00
Jörg Mayer 2b2506f0f6 More char -> const char warning fixes
svn path=/trunk/; revision=15222
2005-08-05 13:10:58 +00:00
Guy Harris 0c5af0dde6 If we do reassembly and hand the packet to the dissector, and the
dissector says "sorry, I need even more data in this packet", don't flag
that packet as being reassembled in that frame.  Indicate that we should
perhaps do all the "partial reassembly" stuff in
"fragment_set_partial_assembly()", which would obviate the need for the
hack in the TCP dissector.

Clean up indentation.

svn path=/trunk/; revision=15139
2005-07-29 07:14:32 +00:00
Ronnie Sahlberg 85f38ef5fa For packets flagged as Retransmission
calculate RTO as the delta between the retransmitted frame and the last previous frame seen for this session (in the same direction).

while this is technically not the RTO  this delta is in most cases more important/useful than the tru RTO anyway since this measure represents the amount of thiime that the link went idle  while waiting for an RTO.




It would be nice with a statistics tap for TCP where one couls see, seeion by session :
Length in time of the session.
Total bytes transferred
Number of retransmissions
Time spent waiting for an RTO
Time spent waiting for an RTO in % of the total time.




svn path=/trunk/; revision=14890
2005-07-10 05:27:38 +00:00
Ulf Lamping 2c30357c48 checksum messages: use "[correct]" instead of "(correct)" and other "alike" messages
svn path=/trunk/; revision=14880
2005-07-08 22:11:13 +00:00
Ulf Lamping fdb5b1af02 just to get things straight: a dissector should *never* do any g_assert() calls!
in a simple approach, I've replaced all g_assert() and g_assert_not_reached() calls by their exception throwing counterparts DISSECTOR_ASSERT() and DISSECTOR_ASSERT_NOT_REACHED()

this will replace application crash by showing a dissector bug, which is the desired behaviour

there were some g_assert calls in the protocol registering functions, which might not be acting as expected now, but to be able to simply search for g_assert in the future I've replaced that calls too

one g_assert remained, the one when someone throws an unknown exception "into" packet_frame.c, but IMHO this one should remain.

svn path=/trunk/; revision=14608
2005-06-10 18:28:22 +00:00
Anders Broman bd44e72c95 From Mike Duigou:
A minor change to the prototype of tcp_dissect_pdus() 
which uses the function pointer type from packet.h

svn path=/trunk/; revision=14535
2005-06-03 06:31:58 +00:00
Ulf Lamping e2c3b60280 add a generated toplevel line between the TCP protocol and the desegmented content, to better understand what's going on while desegmenting.
We'll have to add similar mechanisms for other protocols as well...

svn path=/trunk/; revision=14527
2005-06-02 18:52:55 +00:00
Ulf Lamping 4929e662b8 [CHECKSUM INCORRECT] -> [TCP CHECKSUM INCORRECT]
svn path=/trunk/; revision=14056
2005-04-12 21:07:48 +00:00
Ulf Lamping fd61b593c0 buildbot bugfix: add another tvb_ensure_bytes_exist()
svn path=/trunk/; revision=13932
2005-03-27 10:53:14 +00:00
Ronnie Sahlberg 9378b4f6b4 in sack options only look for tcp session metadata if both tcp_analysis and tcp_relative preferences are set. relative depends on analysis
svn path=/trunk/; revision=13398
2005-02-14 19:34:59 +00:00
Lars Roland ec9ca01616 Move the following files from /trunk to /trunk/epan:
asn1.[ch]
follow.[ch]
ptvcursor.[ch]
reassemble.[ch]
xmlstub.[ch]

fix #include statements accordingly.

svn path=/trunk/; revision=13366
2005-02-09 23:38:00 +00:00
Anders Broman 851ecd2ac4 From Jon Ringle:
1) Added a setup_frame parameter to conversation_t
2) Used the conversation_t next to maintain a list of conversations with the 
same src/dest tuple but different setup_frame number.
3) Changed the signature of find_conversation() and conversation_new() to pass 
in the frame number.
4) Adjusted packet-sdp to select RTP conversation if both m=audio and m=image 
are present, and T.38 conversation if only m=image is present. I expect that 
RTP/T.38 dissecting to be better, but I don't have a way to generate T.38 
packets.

svn path=/trunk/; revision=13243
2005-02-02 20:07:03 +00:00
Guy Harris 1dcecc733a Get rid of an extra space after the edge value of a SACK item if
relative sequence numbers aren't being used.

svn path=/trunk/; revision=13164
2005-01-24 00:18:13 +00:00
Ronnie Sahlberg 91548c85da SACK prettyfication
svn path=/trunk/; revision=13141
2005-01-20 13:19:11 +00:00
Ronnie Sahlberg 85c7eb84fd make TCP SACK option handle relative sequence numbers
svn path=/trunk/; revision=13140
2005-01-20 12:29:11 +00:00
Ulf Lamping 5a89cfc00b Again, some warnings removed.
svn path=/trunk/; revision=12834
2004-12-25 18:35:21 +00:00
Ulf Lamping 78ff68d4b5 a lot of warnings removed, most of them about pointer to int casts without using the appropriate GLib macros
svn path=/trunk/; revision=12832
2004-12-25 13:49:30 +00:00
Ronnie Sahlberg 6b8c77703e RST segmetns are never WindowFull segments.
svn path=/trunk/; revision=12823
2004-12-23 19:56:29 +00:00
Ronnie Sahlberg d0fbb2596a add detection to TCP Analysis to detect and flag segments that will completely fill the window advertized from the other side.
I.e. when a segment is seen that would (as far as ethereal can tell from the ACKs it has seen in the other direction) fill the window completely.

It is similar to but not exactly the same as the XeroWindow detection since there are many instances where ZeroWindow detection would not work (i.e. an ACK where win==0    since many many situations occur where the window is full but no zerowindowack is ever generated)


Someone that has good english could, please, update the Wiki with this option.
It is very very useful to spot performance issues where the tcp window size is too small to accomodate the enmd-to-end latency.





svn path=/trunk/; revision=12774
2004-12-19 07:18:04 +00:00
Ronnie Sahlberg aef13dcde6 make the tcp dissector distinguish between duplicate acks and window updates
svn path=/trunk/; revision=12662
2004-12-03 05:53:09 +00:00
Guy Harris 9ffe5f9243 Get rid of an unused prameter and an unused variable.
Use %u, not %d, for unsigned variables.

svn path=/trunk/; revision=12517
2004-11-12 23:14:49 +00:00
Ronnie Sahlberg 1d85091b92 By popular request,
make ethereal be able to measure the time it took to transfer a PDU atop TCP.

This is great for analyzing performance issues caused by network/frame loss/congestion.


See  http://wiki.ethereal.com/TcpPduTime


svn path=/trunk/; revision=12516
2004-11-12 22:04:19 +00:00
Ronnie Sahlberg 7c00b3a9d3 small fix for TCP ACK RTT, the measurements for the time it took to ack some data.
Only display this value if we really have some data to ACK
which is not always the case.

This fixes a problem recently reported to the list



svn path=/trunk/; revision=12259
2004-10-11 08:12:34 +00:00
Guy Harris eaadcc4c62 Move various tables into the epan directory.
svn path=/trunk/; revision=12130
2004-09-29 00:52:45 +00:00
Guy Harris 6472876ab3 Move the tap infrastructure to the epan directory.
svn path=/trunk/; revision=12128
2004-09-29 00:06:36 +00:00
Guy Harris ac98f225a8 Move various checksum routines and headers to epan.
svn path=/trunk/; revision=12117
2004-09-28 00:06:32 +00:00
Guy Harris bbe7f89742 Move prefs.c and prefs.h into the epan subdirectory.
svn path=/trunk/; revision=12115
2004-09-27 22:55:15 +00:00
Ronnie Sahlberg ddf0bdb696 For protocols running atop TCP and PDUs spanning multiple segments
ethereal used to (bug) print in the summary line
"[Continuation to #%d]" where %d was the current frame number.

Fix this bug and let %d print the frame number of the first frame for this multiframe PDU.


(Strange that no one has complained about this one)


svn path=/trunk/; revision=11852
2004-08-30 08:40:08 +00:00
Ronnie Sahlberg ba7901db6c fix the bug introduced in the window scaling update, dont
try to access the conversation structures unless the
proper preferences are enabled (so that the structs exists iun the first place)



svn path=/trunk/; revision=11845
2004-08-28 21:46:54 +00:00
Ronnie Sahlberg 58b6e2f49f fix to that long outstanding bug with windowscaling
If window scaling is NOT offered in the SYN+ACK  then window scaling will
not be used at all, so clear it if we saw it offered previously in the SYN packet.

If the window is scaled in a packet,  make ethereal display that by appendign the 
string "  (scaled)" to the end of the tcp.window line in the
decode pane.



svn path=/trunk/; revision=11837
2004-08-26 10:03:40 +00:00
Ulf Lamping ddd321c4d4 Replaced the column string [Reassembled TCP] by [TCP segment of a reassembled PDU], to be better understandable. But I'm still not satisfied with this...
svn path=/trunk/; revision=11785
2004-08-21 11:11:13 +00:00
Ulf Lamping d530bd4e14 Prevent the word "desegmentation" at the GUI, but use reassembling at that places, as we also use "defragmentation" and "reassembling". Use reassembling as the general term for such actions.
I (hopefully) didn't changed any protocol fields or preference file names, but only the GUI labels appearing in the protocol display and the protocol preferences.

Also added a note to the protocol preferences (where appropriate), that you have to enable "Allow subdissectors to reassemble TCP streams" at the corresponding protocol settings for TCP reassembling to take effect.

If you encounter any mistakes I've made here, please let me know...

svn path=/trunk/; revision=11784
2004-08-21 09:02:52 +00:00
Guy Harris 3a583aeb59 From Albert Chin: rename resolv.{ch} to addr_resolv.{ch}, so that an
include of <resolv.h> in any system header file gets the system
<resolv.h> (needed for builds on Tru64 with GTK+ 1.2[.x]).

svn path=/trunk/; revision=11615
2004-08-06 19:57:49 +00:00
Gilbert Ramirez 669db206cb Move dissectors to epan/dissectors directory.
Also move ncp222.py, x11-fields, process-x11-fields.pl,
make-reg-dotc, and make-reg-dotc.py.

Adjust #include lines in files that include packet-*.h
files.

svn path=/trunk/; revision=11410
2004-07-18 18:06:47 +00:00