aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/packet-cip.h
AgeCommit message (Collapse)AuthorFilesLines
2017-03-16Add support for verifying CIP Safety CRC values.Michael Mann1-0/+5
Change-Id: I44f7ff6980f27b1a0d4199a91f9b217aec7e4652 Reviewed-on: https://code.wireshark.org/review/20557 Petri-Dish: Michael Mann <mmann78@netscape.net> Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org> Reviewed-by: Anders Broman <a.broman58@gmail.com>
2017-03-14CIP: Log more errors when expected data is missingD. Ulis1-0/+1
1. CIP: Instead of exiting early in dissect_cip_generic_service_req/rsp when there is no data, keep processing so that a malformed packet warning will be displayed when there should be data. 2. CIP Safety: Remove copy-paste. Use load_cip_request_data 3. CIP Safety: Use more constants. Change-Id: Ic364201f1e587b43cf2bda407fb77b50032974ae Reviewed-on: https://code.wireshark.org/review/20549 Petri-Dish: Michael Mann <mmann78@netscape.net> Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org> Reviewed-by: Michael Mann <mmann78@netscape.net>
2016-12-21CIP: More attribute updatesD. Ulis1-1/+0
1. CIP Safety: SERCOS Safety Network Number attribute should be 6 bytes. Don't just use all remaining bytes 2. Remove cip_byte_array type. The last remaining usage was #1 above and it really shouldn't be used in the future. Any attribute that would eat up all remaining bytes would have issues with Get Attribute List responses and Set Attribute List requests. 3. Optional Attribute List: Display the attribute name if known. 4. Port: Display Port Number name 5. Port: Associated Communication Objects attribute Change-Id: I94d99bb1f07aa4b8c44949b2ffb5d75e72483459 Reviewed-on: https://code.wireshark.org/review/19374 Petri-Dish: Michael Mann <mmann78@netscape.net> Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org> Reviewed-by: Michael Mann <mmann78@netscape.net>
2016-12-16CIP: Always handle extra dataD. Ulis1-1/+1
1. Generically handle/display all unparsed data. Any unparsed data can be found with cip.data 2. This now shows at least some unparsed data that was not previously displayed. Previously, extra data sent with Get Attribute List requests was not displayed. It was difficult to tell why devices were returning errors, without knowing there was extra data. 3. Make most functions return the number of bytes processed to support the above points. Change-Id: I290c09d76e74c18facaef99c8903e7937fbdd710 Reviewed-on: https://code.wireshark.org/review/19263 Petri-Dish: Michael Mann <mmann78@netscape.net> Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org> Reviewed-by: Michael Mann <mmann78@netscape.net>
2016-11-15CIP: Properly handle EPATH attributes that do not specify path sizeD. Ulis1-5/+0
Most attributes specify the path length before the EPATH data, but some do not. The previous code for parsing EPATHs just looped until there was no more data. This is a problem for EPATH that do not specify a length, because it will eat up too many bytes. This mainly affects Get Attribute List Responses and Set Attribute List Requests. For the small number of attributes like this, the Spec says exactly what kind of segment should be in the EPATH, so just parse a single segment. This fixes: Port attributes: 'Port Number and Node Address' and 'Chassis Identity' There is still one that is a problem in packet-cipsafety.c, but we will have to deal with it later. See the TODO in that file. I use the .pcap attached to https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=12049, to make sure I didn't break any existing path/segment handling. Ping-Bug: 12049 Change-Id: Id035f9809f6cc747ea7b6327d94dd26dc66cb466 Reviewed-on: https://code.wireshark.org/review/18675 Petri-Dish: Michael Mann <mmann78@netscape.net> Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org> Reviewed-by: Michael Mann <mmann78@netscape.net>
2016-10-13CIP: Improve string handlingD. Ulis1-1/+10
1. Add support for STRINGI 2. Add File Name attribute that is a STRINGI 3. CCO Get/Set Attr All: Connection Name is STRING2 not ASCII 4. TCP/IP Host Name attribute is not just a STRING. It also needs a pad byte. 5. Minor: Fix byte highlighting for CCO I/O Mapping tree 6. Minor: All back byte highlighting for Get Attr All Rsp individual attributes Change-Id: Ib10d6f2e86e39e8cd6335dc6b6dbebbd1c4d8e64 Reviewed-on: https://code.wireshark.org/review/18166 Petri-Dish: Michael Mann <mmann78@netscape.net> Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org> Reviewed-by: Michael Mann <mmann78@netscape.net>
2016-04-07CIP: Attribute updatesD. Ulis1-1/+3
1. Switched to common way to parse Get Attr All, using dissect_cip_get_attribute_all_rsp, for CCO (class version) and CIP Validator. This also fixed a missing attribute in the old CIP Validator code. 2. Add cip_string2 attribute implementation 3. For CIP Validator, set the protocol as "CIPS Validator", previously this was "CIPS Supervisor". 4. For classes with subdissectors, add the service to the Info column in the response. Change-Id: Id9593ca39497261075df8146cf63ee9581462e2a Reviewed-on: https://code.wireshark.org/review/14837 Reviewed-by: Michael Mann <mmann78@netscape.net> Petri-Dish: Michael Mann <mmann78@netscape.net> Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org> Reviewed-by: Alexis La Goutte <alexis.lagoutte@gmail.com>
2016-03-14CIP: Restore path information to Info columnD. Ulis1-1/+1
When the "Display enhanced Info column data" preference is set, ensure that: 1. For non-MSP packets, path information (class/symbol) is displayed in the Info column for Forward Open, Forward Close, regular Message Router Request/Response messages 2. For MSP packets, don't display the class/symbol in the Info column (it's too wordy) This now relies on an extra boolean passed to dissect_cip_data() to handle #2 above. Previously, this relied on checking a proto_item* for NULL, which is not correct. Change-Id: I7532660bcb23bd664c1f5532256755922c4937d1 Reviewed-on: https://code.wireshark.org/review/14458 Reviewed-by: Guy Harris <guy@alum.mit.edu>
2016-03-14Don't let the existence of a protocol tree affect what's in the Info column.Guy Harris1-1/+2
A dissector must never assume that it will, or won't, be called with a protocol tree; it's up to the Wireshark/TShark/etc. core to decide whether to do it, and it can change its behavior over time or even change it from release to release. Have dissect_epath() take an argument that explicitly indicates whether to add the CIP class to the Info column, rather than assuming that you do so only if the tree pointer passed to it is null. Bug: 12257 Change-Id: Ide8a6fc21252880f849a8d0aa4659a675bb3ae04 Reviewed-on: https://code.wireshark.org/review/14456 Reviewed-by: Guy Harris <guy@alum.mit.edu>
2016-03-10CIP: Improve info column informationD. Ulis1-1/+3
1. Remove "Object" from CIP class names. It was already removed from some of the objects, the string "Object" is implied for all objects, and it helps reduce wordiness in the Info column. 2. Don't display Class/Symbol name in the Info column when it's inside a MSP. 3. Enable enhanced Info column by default now that some of the additional wordiness was removed by the above points. 4. Put single quotes around the symbol name in the Info column. This makes it more obvious that something is a symbol instead of an actual class name from the spec, and would prevent ambiguity if the symbol name was something like "Identity". 5. Print the CIP service for both requests/responses in CIP Safety processing. This was already added to normal CIP. 6. Display Class/Symbol and service on the Service Packet in the MSP tree. This makes it easier to find without expanding every MSP item. Change-Id: I7197dd4bf3dad6d7bdba247d3d7ab76cca52c785 Reviewed-on: https://code.wireshark.org/review/14325 Petri-Dish: Michael Mann <mmann78@netscape.net> Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org> Reviewed-by: D. Ulis <daulis0@gmail.com> Reviewed-by: Michael Mann <mmann78@netscape.net>
2016-02-16CIP/ENIP: Attribute updatesD. Ulis1-0/+8
1. More Identity attributes 2. Port attributes 3. Set Attribute List request highlighted too much attribute data 4. TCP/IP object, Attr 5 needs padding 5. Switch most attributes to use wrappers instead of dissect_epath() directly. 6. Change new Volume 8 attributes to treat path size as words instead of bytes, when parsing size+EPATH formats. Change-Id: I1b8c476475c6fbb9c7cdb99ec4a6c28934631a19 Reviewed-on: https://code.wireshark.org/review/13898 Reviewed-by: Michael Mann <mmann78@netscape.net> Petri-Dish: Michael Mann <mmann78@netscape.net> Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org> Reviewed-by: Anders Broman <a.broman58@gmail.com>
2016-02-05ENIP: Add dissection of UCMM CPF Item over UDPMichael Mann1-0/+2
This includes request/response tracking Change-Id: I12ac4c198929aa6a75f3f839f9ee52ebf00b8059 Reviewed-on: https://code.wireshark.org/review/13743 Petri-Dish: Michael Mann <mmann78@netscape.net> Reviewed-by: D. Ulis <daulis0@gmail.com> Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org> Reviewed-by: Michael Mann <mmann78@netscape.net>
2016-02-04Have CIP dissectors find the CIP Class dissector table, rather than have a ↵Michael Mann1-1/+0
externed global variable. Change-Id: Id8156680d67d65d87c156df05e8a66e2531728d2 Reviewed-on: https://code.wireshark.org/review/13709 Petri-Dish: Michael Mann <mmann78@netscape.net> Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org> Reviewed-by: Michael Mann <mmann78@netscape.net>
2016-02-04CIP/ENIP: Enhance Info column displayD. Ulis1-2/+8
1. ENIP: When there is more than one ENIP command in a given TCP packet, display both in the Info column. Previously, only 1 would be displayed. 2. CIP: Services need a context to be able to interpret properly. Display the Class or Symbol name in the Info column in an object oriented manner for Request Paths, or Connection Paths. 3. CIP: Display the request path/service in a CIP response, instead of just "Success". These changes make it visually easier to identify traffic. 4. CIP: For the Info column, make Multiple Service Packet formatting a little more consistent regarding the divider between embedded packets. Previously, it would display 2 different separator types "," and "|". 5. CIP: Add preference to enable/disable "Display enhanced Info column data" Change-Id: I7e95bc144588c0925137e01abbc814babb494d19 Reviewed-on: https://code.wireshark.org/review/13632 Petri-Dish: Michael Mann <mmann78@netscape.net> Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org> Reviewed-by: Anders Broman <a.broman58@gmail.com>
2016-01-27CIP: Add support for all defined segment typesD. Ulis1-1/+12
Add support for the following segment types: 1. Port: Extended 2. Logical: Service ID 3. Logical: Extended 4. Symbolic: ASCII, Extended String, including: Double-byte, Triple-byte, Numeric (USINT, UINT, UDINT) 5. Network: Extended 6. Network: Production Inhibit Time in Microseconds Bug: 12049 Change-Id: I31b269c28c0101205cbc02f858de47106b9e7373 Reviewed-on: https://code.wireshark.org/review/13552 Petri-Dish: Michael Mann <mmann78@netscape.net> Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org> Reviewed-by: Michael Mann <mmann78@netscape.net>
2016-01-22CIP: Add support for Get Attributes AllMichael Mann1-2/+33
Get Attributes All is a predefined list of existing attribute IDs for a given class. Add a new index for each attribute for their place in GetAttributesAll response. Then a hash table of classes for existing attributes are created to handle the GetAttributesAll service. Added more TCP/IP object attributes since more have been added to the spec. Moved TCP/IP object attributes all to ENIP dissector. Bug: 11996 Change-Id: I7f50c9aadf04efdb17ef31f39e6a991c0a84bef2 Reviewed-on: https://code.wireshark.org/review/13186 Petri-Dish: Michael Mann <mmann78@netscape.net> Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org> Reviewed-by: Michael Mann <mmann78@netscape.net>
2015-12-05Enhancements for EtherNet/IP and CIPD. Ulis1-0/+1
EtherNet/IP 1. EtherNet Link object parsed Physical Address attribute response incorrectly. 2. Display Unknown Commands as ENIP instead of just TCP data. CIP 1. For connected data, don't interpret it as a Message Router Request/Response format when the Forward Open connection was not directed to the Message Router. Previously, this data would be incorrectly shown as explicit CIP data. In many cases, this would show as malformed. This traffic will now just display as Data in the Wireshark tree, and "Implicit Data - Class (0x123)" in the Info column. Make this data filterable by "cip.conn_path_class == 0x123". 2. Fix parsing of Unconnected Send responses. Previously, for most cases, the response was not fully parsed, and would just show "Data", or it would parse the response as if the request class was the Connection Manager, which is incorrect. Now, also show the request path of the original embedded message in the tree. 3. Add some detailed error data for malformed Forward Close response. Change-Id: I1c98ce516373d8c0ed6e049e25342f726bc370ea Reviewed-on: https://code.wireshark.org/review/12339 Petri-Dish: Michael Mann <mmann78@netscape.net> Reviewed-by: D. Ulis <daulis0@gmail.com> Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org> Reviewed-by: Michael Mann <mmann78@netscape.net>
2015-12-01Bugfixes for EtherNet/IP and CIPD. Ulis1-1/+1
EtherNet/IP 1. Only decode 32-bit header if there is enough data. Previously, this would show malformed data, even for I/O packets that have no data, eg: heartbeat data. 2. Typos CIP 1. Many Time Sync attribute responses were flagged incorrectly as malformed. 2. Create service response highlighted the instance number incorrectly, and showed warnings. 3. Set Attribute List Request should exit early if it doesn't know about a particular attribute. 4. Incorrect format for Safety Network Segment: Router Format. 5. Typos Change-Id: I506dbb053c247bc8efcbde2cce6ab24d9550c897 Reviewed-on: https://code.wireshark.org/review/12321 Reviewed-by: Michael Mann <mmann78@netscape.net> Petri-Dish: Michael Mann <mmann78@netscape.net> Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org> Reviewed-by: Anders Broman <a.broman58@gmail.com>
2014-08-03Eliminate proto_tree_add_text from some dissectors.Michael Mann1-1/+1
Change-Id: I398e9cf4f6882e76644aa758e12c39a39159e95f Reviewed-on: https://code.wireshark.org/review/3319 Petri-Dish: Michael Mann <mmann78@netscape.net> Petri-Dish: Evan Huus <eapache@gmail.com> Reviewed-by: Michael Mann <mmann78@netscape.net>
2014-05-28Add EtherNet/IP connection conversation filtersMichael Mann1-0/+1
Change-Id: Ia69cbe9fea364c735bde956d84a82404b46ec236 Reviewed-on: https://code.wireshark.org/review/1810 Reviewed-by: Michael Mann <mmann78@netscape.net>
2014-03-04Remove all $Id$ from top of fileAlexis La Goutte1-2/+0
(Using sed : sed -i '/^ \* \$Id\$/,+1 d') Fix manually some typo (in export_object_dicom.c and crc16-plain.c) Change-Id: I4c1ae68d1c4afeace8cb195b53c715cf9e1227a8 Reviewed-on: https://code.wireshark.org/review/497 Reviewed-by: Anders Broman <a.broman58@gmail.com>
2013-12-12(Trivial)Bill Meier1-22/+22
- Fix indentation to match editor modelines (tabs-->spaces); - Rework/add some whitespace; svn path=/trunk/; revision=53978
2013-12-06Add DeviceNet and J1939 dissectors. Both run on top of CAN (not necessarily ↵Michael Mann1-0/+4
always SocketCAN, but it did provide a good test environment) svn path=/trunk/; revision=53802
2012-11-13ENIP/CIPMichael Mann1-1/+2
Added the start of IPv6 support for I/O conversations (waiting for spec definitions to complete). Added support for multiple messages in a single frame to be separated in the COL_INFO column. ENIP Added ListIdentity delay dissection remove check_col() CIP Added TimeSync object dissection svn path=/trunk/; revision=46020
2012-07-11Explicit value_string array size specifier not required.Bill Meier1-2/+2
svn path=/trunk/; revision=43669
2012-06-28Update FSF address - part II.Jakub Zawadzki1-1/+1
svn path=/trunk/; revision=43538
2012-03-07Add editor modelines; Fix some indentation.Bill Meier1-3/+16
svn path=/trunk/; revision=41397
2012-03-02From Michael Mann via https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=6893 :Jeff Morriss1-1/+2
The attached patches fix the following issues: 1. CIP-Motion shouldn't be a heuristic dissector. CIP-Motion packets are determined by specific fields in a CIP ForwardOpen. I ran into situations where CIP-Motion's "vague" heuristics incorrectly dissected packets meant for CIP-Safety. Of course this requires the ForwardOpen to be in the trace, but it is the most deterministic way to have CIP-Motion packets. 2. Minor bugfix to the CIP-Safety dissector. A couple of fields were "missing", causing errant malformed packets. svn path=/trunk/; revision=41283
2012-02-27From Michael Mann:Anders Broman1-26/+18
a dissector for the ODVA protocol: CIP Safety. More information about the protocol can be found here: http://www.odva.org/Home/ODVATECHNOLOGIES/CIP/CIPTechnologyOverview/CIPSafety/CIPSafetyOverview/tabid/131/lng/en-US/Default.aspx https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=6862 svn path=/trunk/; revision=41201
2012-01-04From Michael Mann via https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=6697Alexis La Goutte1-0/+13
Modbus object support for CIP dissector Support for the Modbus object within the CIP dissector. Essentially wraps the Modbus protocol within a CIP object. Also included update to Modbus error code per http://www.wireshark.org/lists/wireshark-dev/201111/msg00187.html svn path=/trunk/; revision=40371
2011-12-01From Michael Mann:Anders Broman1-0/+40
ENIP dissector - improved I/O connection dissection through "better conversation" https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=6617 svn path=/trunk/; revision=40059
2011-11-01Remove comma at the end of several enumerator lists.Jeff Morriss1-2/+2
svn path=/trunk/; revision=39700
2011-10-26From Michael Mann:Anders Broman1-1129/+74
Improved CIP and ENIP dissectors https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=6416 svn path=/trunk/; revision=39595
2011-10-13From Benjamin Stocks (with some work by Michael Mann): "CIP Motion" dissector;Bill Meier1-0/+1
https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=5929 From me: packet-cipmotion.c: FT_BOOLEAN fields with bitmasks need a bit-fieldwidth in the hf[] entry 'display' field; Define attribute_size as guint32 since it has to store guint8*guint16; Use ENC_NA as encoding arg in proto_tree_add_item() for FT_BYTES field types; Remove trailing whitespace from lines; Other minor cleanup and reformatting. packet-enip.c: Use ENC_NA as encoding arg in proto_tree_add_item() for FT_BYTES field types; svn path=/trunk/; revision=39396
2011-10-02Back out the changes to packet-cip.h, too, so that a fixed version ofGuy Harris1-74/+1128
the patch that updates both can be cleanly applied. svn path=/trunk/; revision=39231
2011-10-02From Michael Mann :Anders Broman1-1128/+74
General improvements to CIP and ENIP dissectors. https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=6416 svn path=/trunk/; revision=39222
2011-05-26From Michael Mann via https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=5749 :Jeff Morriss1-2/+5
Added support for the following services of the Connection Manager object: LargeForwardOpen GetConnectionOwner Added support for the following services of the Connection Configuration Object: GetAttributeAll SetAttributeAll From me: Replace tabs with spaces; adjust modelines for 8-space tabs instead of 3. svn path=/trunk/; revision=37404
2009-07-06Rewrite non-ASCII characters.Stig Bjørlykke1-2/+2
svn path=/trunk/; revision=28954
2009-07-06From Joakim Wiberg via bug 3670:Stig Bjørlykke1-796/+1152
This patch correctes serveral minor things. 1. Adds decoding of generic services to classes that have a separate dissect function. 2. Adds new error codes. 3. Adds new CIP objects. 4. Extends the VendorID list. svn path=/trunk/; revision=28951
2009-06-26From Joakim Wiberg via bug 3103:Stig Bjørlykke1-58/+15
Various improvements to the CIP and ENIP dissectors. From me: Updated to latest trunk changes. svn path=/trunk/; revision=28844
2009-06-19Revert changes committed by an accident.Stig Bjørlykke1-15/+58
Will be committed again later. svn path=/trunk/; revision=28779
2009-06-19Moved setting of length2 to make it always set.Stig Bjørlykke1-58/+15
svn path=/trunk/; revision=28777
2008-07-30From Ryan Wamsley:Jaap Keuter1-0/+43
For the EtherNet/IP protocol (ENIP), display text for Additional Status in the Forward Open Response packet. svn path=/trunk/; revision=25865
2007-02-22From Ryan Wamsley: Add Connection Configuration Object support to ↵Bill Meier1-0/+13
EtherNet/IP dissector svn path=/trunk/; revision=20897
2006-05-21change a whole bunch of ethereal into wiresharkRonnie Sahlberg1-2/+2
svn path=/trunk/; revision=18196
2004-09-23From Magnus Hansson: move CIP protocol to own dissector (we forgot toGuy Harris1-0/+960
check in packet-cip.h). Also, add packet-cip.h to epan/dissectors/Makefile.common, so it gets included in the release tarballs. svn path=/trunk/; revision=12081