Commit Graph

45 Commits

Author SHA1 Message Date
Guy Harris a2414d8909 Don't wire into the reassembly code the notion that reassemblies should
be done on flows from one address to another; reassembly for protocols
running atop TCP should be done on flows from one TCP endpoint to
another.

We do this by:

	adding "reassembly table" as a data structure;

	associating hash tables for both in-progress reassemblies and
	completed reassemblies with that data structure (currently, not
	all reassemblies use the latter; they might keep completed
	reassemblies in the first table);

	having functions to create and destroy keys in that table;

	offering standard routines for doing address-based and
	address-and-port-based flow processing, so that dissectors not
	needing their own specialized flow processing can just use them.

This fixes some mis-reassemblies of NIS YPSERV YPALL responses (where
the second YPALL response is processed as if it were a continuation of
a previous response between different endpoints, even though said
response is already reassembled), and also allows the DCE RPC-specific
stuff to be moved out of epan/reassembly.c into the DCE RPC dissector.

svn path=/trunk/; revision=48491
2013-03-22 23:59:54 +00:00
Pascal Quantin 4d63de1b41 From Ed Beroset via https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=8416 :
Remove C++ incompatibilities from profinet plugin

svn path=/trunk/; revision=48039
2013-03-03 18:45:23 +00:00
Bill Meier f784806968 Comment out numerous unused hf_.... instances found by checkhf.
svn path=/trunk/; revision=47617
2013-02-10 20:52:21 +00:00
Bill Meier 5a8c275b26 General cleanup:
- Localize some variables; remove unneeded initializers;
- Reformat some hf[] entries;
- Whitespace; style; long lines.

svn path=/trunk/; revision=46529
2012-12-13 18:17:47 +00:00
Bill Meier e790f93057 Remove some commented out code as per Wido Kelling:
https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=8002#c9

svn path=/trunk/; revision=46527
2012-12-13 16:27:40 +00:00
Bill Meier 708e463c47 From Wido Kelling: [Profinet] Updated disecction regarding the IEC 61158
(with a few minor fixes by me).

https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=8002

major change:
 reassembling of PNIO fragments (only works if OpenSafty dissector is disabled)

minor changes:
 improved handling of DFP Frames

added / updated
 MRP Block decoding
 ARServerBlock
 ARVendorBlock
 PDInterfaceDataReal
 PDInterfaceAdjust
 PDPortStatistic
 SubdirFrameData corrected display and subblocks added
 PDIRGlobalData complete dissection
 decoding of FrameDataProperties and ARTypes updated to conform the STD
 removed now usuported RTC2 ranges


svn path=/trunk/; revision=46522
2012-12-12 18:47:59 +00:00
Anders Broman fa4c9734ea Revert http://anonsvn.wireshark.org/viewvc/viewvc.cgi?view=rev&revision=46140
looks like the worong variables may be used in the for loops.

../../../plugins/profinet/packet-dcerpc-pn-io.c: In function 'dissect_PDInterfaceMrpDataAdjust_block':
../../../plugins/profinet/packet-dcerpc-pn-io.c:4420:12: warning: variable 'u8MrpInstance' set but not used [-Wunused-but-set-variable]
../../../plugins/profinet/packet-dcerpc-pn-io.c: In function 'dissect_PDInterfaceMrpDataReal_block':
../../../plugins/profinet/packet-dcerpc-pn-io.c:4542:5: error: suggest parentheses around assignment used as truth value [-Werror=parentheses]
../../../plugins/profinet/packet-dcerpc-pn-io.c:4491:12: warning: variable 'u8MrpInstance' set but not used [-Wunused-but-set-variable]
../../../plugins/profinet/packet-dcerpc-pn-io.c: In function 'dissect_PDInterfaceMrpDataCheck_block':
../../../plugins/profinet/packet-dcerpc-pn-io.c:4570:12: warning: variable 'u8MrpInstance' set but not used [-Wunused-but-set-variable]
../../../plugins/profinet/packet-dcerpc-pn-io.c: In function 'dissect_MrpInstanceDataCheck_block':
../../../plugins/profinet/packet-dcerpc-pn-io.c:5426:160: error: unused parameter 'u16BodyLength' [-Werror=unused-parameter]
../../../plugins/profinet/packet-dcerpc-pn-io.c: In function 'dissect_ARBlockReq_block':
../../../plugins/profinet/packet-dcerpc-pn-io.c:6873:9: error: format '%x' expects a matching 'unsigned int' argument [-Werror=format]
../../../plugins/profinet/packet-dcerpc-pn-io.c:6811:13: warning: variable 'u16ARDevAccess' set but not used [-Wunused-but-set-variable]
../../../plugins/profinet/packet-dcerpc-pn-io.c: At top level:
../../../plugins/profinet/packet-dcerpc-pn-io.c:7628:1: error: 'dissect_IRTFrameBlock_block' defined but not used [-Werror=unused-function]
cc1: all warnings being treated as errors

svn path=/trunk/; revision=46142
2012-11-22 12:45:50 +00:00
Anders Broman 79974a41b0 From Wido Kelling:
Updates to conform IEC 61158.
major change:
reassembling of PNIO fragments (only works if OpenSafty dissector is disabled)
see Bug 7997

minor changes:
improved handling of DFP Frames

added / updated 
MRP Block decoding
ARServerBlock
ARVendorBlock
PDInterfaceDataReal
PDInterfaceAdjust
PDPortStatistic
SubdirFrameData corrected display and subblocks added
PDIRGlobalData complete dissection 
decoding of FrameDataProperties and ARTypes updated to conform the STD
removed now usuported RTC2 ranges

https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=8002

svn path=/trunk/; revision=46140
2012-11-22 12:12:12 +00:00
Michael Mann 4b0a6ca955 Add CRC verification to Modbus RTU dissector. CRC algorithm is the same as the "crc16-plain" with a different initial CRC (0xFFFF instead of 0). Created crc16_plain_tvb_offset_seed to "replace" crc16_plain_tvb_offset, but didn't remove crc16_plain_tvb_offset for backwards compatibility worries. Updated only dissector that used crc16_plain_tvb_offset (profinet/packet-pn-rt.c) to use crc16_plain_tvb_offset_seed(..., 0)
svn path=/trunk/; revision=45854
2012-10-31 20:09:05 +00:00
Jeff Morriss 3551a86c36 We always HAVE_CONFIG_H so don't bother checking whether we have it or not.
svn path=/trunk/; revision=45015
2012-09-20 01:29:52 +00:00
Jakub Zawadzki dee4443809 Add data parameter to dissector_try_heuristic
svn path=/trunk/; revision=44871
2012-09-11 08:26:48 +00:00
Jakub Zawadzki 5a8783f5b1 Initial commit to support yet another method of passing data between dissectors.
Add new parameter 'data' to heur_dissector_t and new_dissector_t, for now it's always NULL

svn path=/trunk/; revision=44860
2012-09-10 21:40:21 +00:00
Jakub Zawadzki bf81b42e1e Update Free Software Foundation address.
(COPYING will be updated in next commit)

svn path=/trunk/; revision=43536
2012-06-28 22:56:06 +00:00
Jörg Mayer 5a04ff0438 Fix:
trunk/plugins/profinet/packet-pn-rt.c: In function ‘IsDFP_Frame’:
trunk/plugins/profinet/packet-pn-rt.c:182:9: error: ‘u8SFCycleCounter’ undeclared (first use in this function)
trunk/plugins/profinet/packet-pn-rt.c:182:9: note: each undeclared identifier is reported only once for each function it appears in


svn path=/trunk/; revision=40063
2011-12-01 14:35:29 +00:00
Anders Broman 28b32b9b81 From Wido Kelling:
Enhancements to profinet decoding (IEC 61158) V2.3.

https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=6605

svn path=/trunk/; revision=40058
2011-12-01 05:58:55 +00:00
Bill Meier 794757ae8f For proto_tree_add_item(..., proto_xxx, ...)use ENC_NA as the encoding arg.
Also: remove trailing whitespace for a number of files.

svn path=/trunk/; revision=39503
2011-10-21 02:10:19 +00:00
Bill Meier ef8009abe3 Use ENC_NA as encoding for proto_tree_add_item() calls which directly reference an hf item (in hf[] with types:
FT_NONE
    FT_BYTES
    FT_IPV6
    FT_IPXNET
    FT_OID

Note: Encoding field set to ENC_NA only if the field was previously TRUE|FALSE|1|0|ENC_LITTLE_ENDIAN|ENC_BIG_ENDIAN

svn path=/trunk/; revision=39262
2011-10-05 01:00:06 +00:00
Guy Harris c33cad6b43 More white space cleanup.
We need the PDU length to find stuff at the end; use
tvb_reported_length(), *not* tvb_length(), to get it, so we're not
confused by a snapshot length.  Rename it "pdu_len" to make that clear.

svn path=/trunk/; revision=39162
2011-09-26 21:48:54 +00:00
Guy Harris 8e7403464e The fragment data is almost certainly not a text string, so don't make
it an FT_STRING.

svn path=/trunk/; revision=39160
2011-09-26 20:46:09 +00:00
Guy Harris a15d409cbf Use ENC_ values in proto_tree_add_item() calls.
Get rid of the code that attempts to deal with the FCS; if the
link-layer dissector hasn't removed the FCS, either:

	1) the link-layer dissector is buggy and should be fixed;

or

	2) the link-layer dissector doesn't know whether there's an FCS
	   and you have to tell it by setting a preference (and if there
	   is no such preference, one needs to be added).

The code in question was causing errors when the link-layer dissector
was removing the FCS when it's known to be present, as it should do.

Get rid of 4-space tabs in favor of spaces.

svn path=/trunk/; revision=39158
2011-09-26 20:33:35 +00:00
Stig Bjørlykke 5359494b1f Second try to move crc routines to libwsutil.
This time keep the tvb routines in epan.

Now we can use common crc routines outside epan.

svn path=/trunk/; revision=38810
2011-08-31 09:00:54 +00:00
Stig Bjørlykke 71f903b956 Revert r38800, as the crc routines contains some tvb functions.
svn path=/trunk/; revision=38803
2011-08-30 14:17:40 +00:00
Stig Bjørlykke 4132d40e50 Move all crc routines to libwsutil.
This way we can use the crc routines in wiretap.

svn path=/trunk/; revision=38800
2011-08-30 13:46:42 +00:00
Guy Harris a8bc4a0d13 Rename the routines that handle dissector tables with unsigned integer
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
2010-12-20 05:35:29 +00:00
Bill Meier 5ccee6196a Remove some uneeded #includes
svn path=/trunk/; revision=32419
2010-04-07 18:24:18 +00:00
Anders Broman 846eed1d9e Get rid of check_col
svn path=/trunk/; revision=32401
2010-04-06 16:13:09 +00:00
Anders Broman 440c3f9261 From Didier Gautheron:
check_col.diff
Remove redundant calls to check_col() if it guards only one columns function with one parameter after the column type.
https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=4394

svn path=/trunk/; revision=31519
2010-01-13 20:32:01 +00:00
Kovarththanan Rajaratnam 124faf721c Use col_set_str instead of col_add_fstr/col_add_str when adding constant strings to COL_INFO
svn path=/trunk/; revision=30089
2009-09-23 14:52:01 +00:00
Kovarththanan Rajaratnam 633bb05380 Use col_set_str instead of col_add_fstri/col_add_str when adding constant strings to COL_PROTOCOL
svn path=/trunk/; revision=30088
2009-09-23 14:43:23 +00:00
Kovarththanan Rajaratnam c28bafe341 Use col_set_str instead of col_add_fstr when adding constant strings to COL_INFO
svn path=/trunk/; revision=30082
2009-09-22 21:18:11 +00:00
Michael Tüxen 9518d53ab4 Make the compiler on Mac OS X happy...
svn path=/trunk/; revision=28934
2009-07-03 10:29:45 +00:00
Ulf Lamping d180d37c8d update to the latest PROFINET drafts
(defragmentation of RT fragments "FRAG-PDU" is still not implemented)

svn path=/trunk/; revision=28932
2009-07-03 09:12:43 +00:00
Stig Bjørlykke 2bba6be84f From Kovarththanan Rajaratnam via bug 3548:
Cleanup header_field_info in plugins.

svn path=/trunk/; revision=28771
2009-06-18 23:22:10 +00:00
Bill Meier 321506c076 (Trivial) Fix some spelling & etc in comments
svn path=/trunk/; revision=27996
2009-04-08 13:41:30 +00:00
Ulf Lamping f681477e33 remove GPLv2 CRC code, the new epan CRC stuff is working well
svn path=/trunk/; revision=27803
2009-03-20 10:44:42 +00:00
Gerald Combs dd903ca9c8 Create an "epan/crc" directory for CRC code. Add crc-16-plain.[ch],
generated from pycrc. The command line used to generate the file is in
epan/crc/Makefile.common. I used "plain" to distinguish it from CCITT,
USB, and other 16-bit CRCs. Integrate the new CRC code into our
infrastructure.

Add crc16_plain_tvb_offset() to epan/crc16.[ch] and use it in
plugins/profinet/packet-pn-rt.c. This _should_ work correctly, but
hasn't been tested.

svn path=/trunk/; revision=27790
2009-03-18 21:59:30 +00:00
Ulf Lamping 870e139576 fix type
svn path=/trunk/; revision=27749
2009-03-16 22:36:34 +00:00
Ulf Lamping dcdda03610 update to the latest PROTINET changes:
- add SubFrameBlock dissection
- add subframe heuristics and dissection
- update frame id "layout"
- raise plugin version to 0.2.4

crc16 algorithm copied from Linux sources (GPL V2 only!)

svn path=/trunk/; revision=27748
2009-03-16 21:40:00 +00:00
Stig Bjørlykke 94e9e2b1ec Fix some "format not a string literal and no format arguments" warnings.
svn path=/trunk/; revision=26652
2008-10-31 17:27:51 +00:00
Bill Meier 05c1929f1d proto_register/proto_reg_handoff; Various small cleanup and bug-fixing
remove unnecessary #include prefs.f and emem.h in a few cases...

svn path=/trunk/; revision=26554
2008-10-25 20:24:31 +00:00
Ulf Lamping b57c83f6eb fix length calculation for 802.11 packets - the 802.11 dissector will strip off the 4 byte FCS at the end of a packet (while the Ethernet dissector does not).
svn path=/trunk/; revision=22759
2007-08-30 19:50:56 +00:00
Ulf Lamping f4cabf95a1 update PTCP dissection to latest specification draft
svn path=/trunk/; revision=22432
2007-07-31 19:01:15 +00:00
Ulf Lamping 0104002d2e Add PN-IO FSHelloBlock and PN-DCP Device/AliasName
svn path=/trunk/; revision=21298
2007-04-02 05:18:31 +00:00
Ulf Lamping e30640be45 PROFINET RT frames can also be transported over UDP Port 0x8892 - to be routable
svn path=/trunk/; revision=20985
2007-03-06 21:54:53 +00:00
Ulf Lamping d6e22b2d9a major code cleanup:
- move dcom-cba and pn-rt files into profinet plugin (where they really belong)
- move some common pn functionality into new packet-pn.c/h instead of having duplicate code

svn path=/trunk/; revision=20825
2007-02-16 21:53:36 +00:00