Commit Graph

51 Commits

Author SHA1 Message Date
Dylan Ulis d2e5bd80cb CIP: Minor cleanup/refactoring 2022-10-19 15:23:32 +00:00
Moshe Kaplan 67f05835ca Fix more repeated words throughout
Fixes more repeated words seen throughout
the code base.
2021-12-31 22:50:40 +00:00
Dylan Ulis 8c811459b3 CIP Motion: Parse more bits in Act/Cmd Data Sets
Parse Unwind Cycle Count and Position Displacement in the Actual Data
Set and Command Data Set.
2021-08-12 11:14:35 -04:00
Dylan Ulis 1be58f3644 CIP Motion: Match spec data naming
1. Move some fields under additional tree nodes, to match the
   struct names in the spec.
2. Parse data in order. Previously, some sections were parsed
   out of order, which is confusing in the tree output.
3. Improve comments/documentation to match wording in the spec
4. Remove temp_data variables and replace with actual names.
2021-07-23 08:15:00 +00:00
Anders Broman 5dff85e84b Fix duplicated filter names. 2020-12-15 14:43:43 +00:00
Martin Mathieson a7c8da4216 Fix build where compilers can't initialise multi-field struct with {0} 2020-08-30 16:36:02 +01:00
Dylan Ulis 0e2cd329e3 CIP: Combine connection structs
Notes:
1. There are no functionality changes with this delivery
2. This change is to reduce manual copying between structs. This will make it easier to add upcoming feature changes, and fix some connection handling issues (future merge requests).
3. Combine enip_conn_val_t and cip_conn_info_t. Previously, there were 2 different structs to track information about an overall CIP Connection.
2020-08-27 19:56:13 -04:00
Guy Harris e1d9a226a2 Fix the type of arrays of pointers to hf_ values for bitfield routines.
The static arrays are supposed to be arrays of const pointers to int,
not arrays of non-const pointers to const int.

Fixing that means some bugs (scribbling on what's *supposed* to be a
const array) will be caught (see packet-ieee80211-radiotap.c for
examples, the first of which inspired this change and the second of
which was discovered while testing compiles with this change), and
removes the need for some annoying casts.

Also make some of those arrays static while we're at it.

Update documentation and dissector-generator tools.

Change-Id: I789da5fc60aadc15797cefecfd9a9fbe9a130ccc
Reviewed-on: https://code.wireshark.org/review/37517
Petri-Dish: Guy Harris <gharris@sonic.net>
Tested-by: Petri Dish Buildbot
Reviewed-by: Anders Broman <a.broman58@gmail.com>
2020-06-19 11:32:26 +00:00
Dylan Ulis da8c28dc67 CIP Motion: Connection Configuration Data
1. Dissect the Motion Configuration Block from the Forward Open
2. Add Motion Attributes related to #1
3. Save the first/last segment for certain segment types in an EPATH.
Behavior changes based on the values in first segments for a given type,
vs later segments.

Change-Id: Id0552a585d158041c13adfa50f4bb164cada79b7
Reviewed-on: https://code.wireshark.org/review/37168
Petri-Dish: Anders Broman <a.broman58@gmail.com>
Tested-by: Petri Dish Buildbot
Reviewed-by: Anders Broman <a.broman58@gmail.com>
2020-05-13 11:01:32 +00:00
Dylan Ulis 6606e95318 CIP Motion: Version 1.5 Updates
1. Service Data Block: Decode the following services:
  Set Cyclic Write List
  Set Cyclic Read List
  Set Attribute List
2. Axis Status 2 - Add more bit definitions
3. Add a preference to display raw attribute bytes. This is useful
  because not all attributes have parsing, and this allows automated
  tools to consistent pull a common format for all attributes.

Change-Id: Ic7a29f3adddcced8cba958e545436b89c0f7ef6d
Reviewed-on: https://code.wireshark.org/review/35799
Petri-Dish: Alexis La Goutte <alexis.lagoutte@gmail.com>
Tested-by: Petri Dish Buildbot
Reviewed-by: Anders Broman <a.broman58@gmail.com>
2020-01-15 04:52:41 +00:00
Guy Harris 20800366dd HTTPS (almost) everywhere.
Change all wireshark.org URLs to use https.

Fix some broken links while we're at it.

Change-Id: I161bf8eeca43b8027605acea666032da86f5ea1c
Reviewed-on: https://code.wireshark.org/review/34089
Reviewed-by: Guy Harris <guy@alum.mit.edu>
2019-07-26 18:44:40 +00:00
Dylan Ulis ace33ff48b CIP Motion: Updates
1. Add support for 64-bit Actual Position
2. Add Time Data Set attribute
3. Add warning when format revision in data packet does not match the
   connection point from the original forward open.
4. Sync Status enum updates
5. Minor comment cleanup

Change-Id: I100a6f1576e80d706a028e2f742fdaa3f49fd2b6
Reviewed-on: https://code.wireshark.org/review/31922
Petri-Dish: Anders Broman <a.broman58@gmail.com>
Tested-by: Petri Dish Buildbot
Reviewed-by: Anders Broman <a.broman58@gmail.com>
2019-02-07 07:47:17 +00:00
Dylan Ulis 4d8d7bca9f CIP Motion: Add more attributes
1. Add more Motion attributes
2. Pull out some copy-paste code into functions
3. Add some units to existing data

Change-Id: I82f112e2f8595eb904076ee758b2e7e034354243
Reviewed-on: https://code.wireshark.org/review/31680
Petri-Dish: Alexis La Goutte <alexis.lagoutte@gmail.com>
Tested-by: Petri Dish Buildbot
Reviewed-by: Anders Broman <a.broman58@gmail.com>
2019-01-23 16:40:04 +00:00
Dylan Ulis 5762fc617a CIP: Improve connected data information
1. For each connected data message, display generated connection
   information including:
    a. Connection Path from the initial connection
    b. API values
    c. Forward Open packet number. (This already existed, but moving it to a
       consistent place in the tree)
2. Display O->T or T->O in the Info column depending on the direction of data.
3. Remove cip.conn_path_class filter. This was originally added to show
   which type of data is in a given packet. But, it's not really needed
   anymore because we have the generated connection path in each connected
   data packet now.
4. Ensure dummy structs used for Decode As menus are zeroed out.
5. memset -> zero initialization

pcaps from the following bug reports are good examples:

Bug: 14939
Bug: 6617
Bug: 14916
Bug: 14958
Change-Id: I63885a5ca41f95e04f855a1e1dcd9ab3684f7eec
Reviewed-on: https://code.wireshark.org/review/30808
Petri-Dish: Michael Mann <mmann78@netscape.net>
Tested-by: Petri Dish Buildbot
Reviewed-by: Anders Broman <a.broman58@gmail.com>
2018-12-09 07:19:01 +00:00
Dylan Ulis 7618aa055c CIP Motion: Code cleanup
1. Remove unused function parameters
2. Some tvb_get --> ret_uint
3. Move some variables to smaller scope. Better practice, and it's easier to see what variables need to persist outside of for loops.
4. Combine some scattered if (dimension == 1) blocks.

No functional changes.

Change-Id: Ifb2affb968356fcd7e980fd4ee046cf359252df4
Reviewed-on: https://code.wireshark.org/review/28845
Petri-Dish: Alexis La Goutte <alexis.lagoutte@gmail.com>
Tested-by: Petri Dish Buildbot
Reviewed-by: Anders Broman <a.broman58@gmail.com>
2018-07-25 07:00:25 +00:00
Dylan Ulis 9e20822ae2 CIP Motion: Attribute updates
1. Add more attribute definitions
2. Remove data that was only in object revision 1. This conflicts with
   the newer object definitions. No actual devices implemented this
   version.
3. Correct data from enum --> bit fields
4. Extract Methods into functions that are shared by attributes
   and other parsing.

Change-Id: I5a08188466349b7d735346981b16e096ae68032d
Reviewed-on: https://code.wireshark.org/review/28776
Petri-Dish: Anders Broman <a.broman58@gmail.com>
Tested-by: Petri Dish Buildbot
Reviewed-by: Anders Broman <a.broman58@gmail.com>
2018-07-21 19:24:42 +00:00
Dylan Ulis 6dc8e11d8d CIP Motion: Update attribute service handling
1. Get/Set Axis Attribute List: Display the attribute name, and dissect where appropriate.
2. Minor: Cleanup exported functions/variables.

Bug: 14958
Change-Id: I2ff6883e66068472ac5ded0172f51575f5e20a21
Reviewed-on: https://code.wireshark.org/review/28660
Petri-Dish: Roland Knall <rknall@gmail.com>
Tested-by: Petri Dish Buildbot
Reviewed-by: Roland Knall <rknall@gmail.com>
2018-07-13 12:57:35 +00:00
Dylan Ulis bef062e56e CIP: Improve I/O handling
1. Add new dissector table that allows for registration of CIP Class 0/1 I/O
   against CIP Class that was used in the Forward Open. CIP Safety is still
   a special case that gets checked before this table. The default handling is
   generic CIP Class 0/1 I/O.
2. Changed most I/O items labelled "ENIP" to "CIP I/O". ENIP is a separate
   protocol/layer, and all the I/O traffic is actually CIP. It was very
   confusing explaining to people they had to look at the wrong protocol
   layer in Wireshark before.
3. Add the generic Class 0/1 I/O as a separate tree layer. CIP Motion and
   CIP Safety I/O were already doing this.
4. Update CIP conversation filtering naming to be more accurate.
5. Clean up some offset handling

Change-Id: I1c226fe1bd8974ed0e90640c875bef21f15f3095
Reviewed-on: https://code.wireshark.org/review/28290
Petri-Dish: Anders Broman <a.broman58@gmail.com>
Tested-by: Petri Dish Buildbot
Reviewed-by: Anders Broman <a.broman58@gmail.com>
2018-06-18 04:07:02 +00:00
Dylan Ulis e7cd2f8960 CIP Motion: Various Updates
1. Feedback Mode: Should only use the lower 4 bits.
2. Axis Response: Add more enumerated values
3. Axis Status: Add more bit interpretations
4. Add more Motion Attributes
5. Minor cleanup

Change-Id: I0a6568ca263afb8d7827961907cb7d0a42b376f4
Reviewed-on: https://code.wireshark.org/review/27400
Petri-Dish: Anders Broman <a.broman58@gmail.com>
Tested-by: Petri Dish Buildbot
Reviewed-by: Anders Broman <a.broman58@gmail.com>
2018-05-12 06:31:28 +00:00
Dylan Ulis ae6afe416b CIP Motion: Attribute Support
1. Add attribute table similar to the other CIP related dissectors. Currently, this just adds 2 attributes. More will come in separate reviews. (Still clarifying some information in the Spec)
2. Minor wording updates to match spec

Change-Id: I667b8e465d576020471c8e7fc10b43e25ea573dd
Reviewed-on: https://code.wireshark.org/review/27180
Petri-Dish: Anders Broman <a.broman58@gmail.com>
Petri-Dish: Jim Young <jim.young.ws@gmail.com>
Reviewed-by: Anders Broman <a.broman58@gmail.com>
2018-05-04 06:54:18 +00:00
Dario Lombardo fe219637a6 dissectors: use SPDX identifiers.
Change-Id: I92c94448e6641716d03158a5f332c8b53709423a
Reviewed-on: https://code.wireshark.org/review/25756
Petri-Dish: Dario Lombardo <lomato@gmail.com>
Reviewed-by: Anders Broman <a.broman58@gmail.com>
2018-02-12 16:49:58 +00:00
Dylan Ulis 2d8606b584 CIP Motion: Support Format Revision 3
See Volume 9, version 1.2, sections "6-2.7.1.1" and "7-1.1"
1. Pass Connection Point from FwdOpen to Motion dissector, since that is now needed to parse I/O payload.
2. Move Run/Idle Header function to CIP dissector, since it's a CIP feature, not ENIP.
3. Add a protocol so that Format Revision 3 can be dissected without the Forward Open in the capture.
4. Minor: Highlight more bytes in some EPATH parsing.
5. Minor: Renaming some things to match spec wording.

Change-Id: I93626a6492be2675206d38c04fa1c7ce534c04ca
Reviewed-on: https://code.wireshark.org/review/25570
Petri-Dish: Michael Mann <mmann78@netscape.net>
Tested-by: Petri Dish Buildbot
Reviewed-by: Michael Mann <mmann78@netscape.net>
2018-02-03 04:19:05 +00:00
Alexis La Goutte 6a6f64d53f cipmotion: fix conflicting entry in its value_string
Field 'Service Code' (cipm.svc.code) has a conflicting entry in its value_string: 83 is at indices 30 (Run Hookup Test) and 31 (Get Hookup Test Data))

Change-Id: I3d650b0a6aeacb8e992126a7008e0b256cf1fe94
Reviewed-on: https://code.wireshark.org/review/21395
Reviewed-by: Michael Mann <mmann78@netscape.net>
2017-04-28 11:53:38 +00:00
D. Ulis 2dbde83ee5 CIP Motion: Minor updates
1. Change protocol name from "Motion" to "CIP Motion". This now matches "CIP Safety" I/O.
2. Print out unparsed data as bytes.
3. Remove if(tree) check
4. Clean up the parsing to be a little more consistent, and in packet byte order.

Change-Id: I5c28522da7991852b708d825a349badc036b4b8d
Reviewed-on: https://code.wireshark.org/review/20673
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-24 04:38:19 +00:00
Michael Mann b7f4e25059 Adjust proto_tree_add_uint_format_value calls to use unit string
Several calls to proto_tree_add_uint_format_value could be better served
using BASE_UNIT_STRING with a "unit string" in hf_ field.  There also
a few cases where proto_tree_add_uint_format_value could just be
proto_tree_add_uint.

Added a few more "common" unit string values to unit_strings.[ch]

Change-Id: Iaedff82c515269c9c31ab9100dff19f5563c932d
Reviewed-on: https://code.wireshark.org/review/19242
Petri-Dish: Michael Mann <mmann78@netscape.net>
Reviewed-by: Michael Mann <mmann78@netscape.net>
2016-12-13 22:56:50 +00:00
D. Ulis 8773ea03cb CIP: Minor enhancements
1. ENIP: Display the CIP Forward Open Request packet number for connected data
2. CIP: Extended Network: Display expert info when the expected bytes does not match actual bytes
3. CIP: Look up more data fields as CIP service or Device Type
4. CIP: Display data as Dec/Hex, depending on how the spec shows things
5. Minor: Pull out common code into load_cip_request_data()
6. Minor: Text corrections

Change-Id: I184ac3899786f650e4d4643a5dfe68bba785d6e0
Reviewed-on: https://code.wireshark.org/review/19092
Petri-Dish: Alexis La Goutte <alexis.lagoutte@gmail.com>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Michael Mann <mmann78@netscape.net>
2016-12-06 00:08:35 +00:00
D. Ulis 0f18087ca3 CIP: Minor bug fixes
1. CIP: dissect_cip_set_attribute_list_req - Too many bytes highlighted. Could cause malformed packet
2. CIP: dissect_cip_cco_all_attribute_common - Too many bytes highlighted
3. CIP Motion: dissect_cntr_service - Wrong size passed in which tried to highlight too many bytes. Would cause malformed packet.
4. CIP: Some minor formatting/whitespace changes.

Change-Id: I5899888a3e58452945c8546cf635768cdd3cf738
Reviewed-on: https://code.wireshark.org/review/18000
Petri-Dish: Alexis La Goutte <alexis.lagoutte@gmail.com>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Michael Mann <mmann78@netscape.net>
2016-09-30 21:26:39 +00:00
Peter Wu bf0f5a982b Use result of register_dissector
Assign result of `register_dissector(..., func, proto)` to FOO_handle
and remove `FOO_handle = create_dissector_handle(func, proto)`.

Found by looking for files named packet-FOO.c having the above
create_dissector_handle pattern. Some files (with different dissect
routines for the two functions) remain unchanged.

Change-Id: Ifbed8202c6dbc63a1dae9acc03313980ffbbbb90
Reviewed-on: https://code.wireshark.org/review/13247
Reviewed-by: Peter Wu <peter@lekensteyn.nl>
Petri-Dish: Peter Wu <peter@lekensteyn.nl>
Reviewed-by: 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-13 11:36:29 +00:00
moshekaplan cd7026951b Fix a lot of typos and misspellings
Change-Id: I8512cfa1d424f82a873a0e0e1d22c7b075fdd7f3
Reviewed-on: https://code.wireshark.org/review/13069
Reviewed-by: Alexis La Goutte <alexis.lagoutte@gmail.com>
Petri-Dish: Alexis La Goutte <alexis.lagoutte@gmail.com>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Michael Mann <mmann78@netscape.net>
2016-01-08 20:04:56 +00:00
Michael Mann 31a54708f4 new_register_dissector -> register_dissector for dissector directory.
Change-Id: Ie39ef054a4a942687bd079f3a4d8c2cc55d5f22c
Reviewed-on: https://code.wireshark.org/review/12485
Petri-Dish: Michael Mann <mmann78@netscape.net>
Reviewed-by: Michael Mann <mmann78@netscape.net>
2015-12-09 12:38:06 +00:00
Michael Mann 443a7ed259 new_create_dissector_handle -> create_dissector_handle for dissector directory.
Some of the ASN.1 dissectors still generate a new_create_dissector_handle from the tool itself, so leave those for now.

Change-Id: Ic6e5803b1444d7ac24070949f5fd557909a5641f
Reviewed-on: https://code.wireshark.org/review/12484
Petri-Dish: Anders Broman <a.broman58@gmail.com>
Reviewed-by: Michael Mann <mmann78@netscape.net>
2015-12-09 12:37:36 +00:00
Michael Mann 01f7356f85 register_dissector -> new_register_dissector
Picking off "easy" dissectors that only have one or two exit points at most.

Change-Id: I3d5e576b796556ef070bb36d8b55da0b175dcba8
Reviewed-on: https://code.wireshark.org/review/11805
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-11-13 17:44:24 +00:00
cjdunlop e997aaabe9 packet-cipmotion.c: Modified CIP motion parser
Modified CIP Motion parser to include newly-defined Axis Safety related
fields in the status data set section.

Change-Id: I70c6dd345ae9353b87e6f7c1300b60687f41a1f6
Reviewed-on: https://code.wireshark.org/review/8342
Reviewed-by: Anders Broman <a.broman58@gmail.com>
2015-05-11 04:26:57 +00:00
Michael Mann f031fafdcc Add proper "Decode As" mechanism for EtherNet/IP I/O instead of preference.
Change-Id: I9d7c0f296176679b61d7ee0c4358ce409dfc4f4f
Reviewed-on: https://code.wireshark.org/review/7895
Reviewed-by: Evan Huus <eapache@gmail.com>
Reviewed-by: Michael Mann <mmann78@netscape.net>
2015-04-04 02:21:01 +00:00
Michael Mann 29ecd114bf convert to proto_tree_add_subtree[_format]
Change-Id: I5f573dffabb8685a8e5a334ff2bfb24d9838daa6
Reviewed-on: https://code.wireshark.org/review/2601
Tested-by: Michael Mann <mmann78@netscape.net>
Reviewed-by: Michael Mann <mmann78@netscape.net>
2014-06-24 23:42:13 +00:00
Alexis La Goutte 296591399f Remove all $Id$ from top of file
(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>
2014-03-04 14:27:33 +00:00
Anders Broman ef249623e6 [-Wmissing-prototypes]
Use explicit casts.

svn path=/trunk/; revision=48313
2013-03-15 06:26:47 +00:00
Jeff Morriss 2552c750e5 We always HAVE_CONFIG_H so don't bother checking whether we have it or not.
svn path=/trunk/; revision=45017
2012-09-20 02:03:38 +00:00
Bill Meier fad55cdecc Remove unneeded #includes;
Rename header_fields[] tp hf[] as per convention;
Reformat hf[] entries;
Remove empty proto_reg_handoff...().

svn path=/trunk/; revision=43670
2012-07-11 20:31:47 +00:00
Jakub Zawadzki b18e880040 Update FSF address - part II.
svn path=/trunk/; revision=43538
2012-06-28 23:18:38 +00:00
Bill Meier 2df5dc3d53 From Reinhard Speyerer: Fix several misspellings/typos in Wireshark
https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=6967

svn path=/trunk/; revision=41645
2012-03-18 22:24:24 +00:00
Jeff Morriss bb9b8880af From Michael Mann via https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=6893 :
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-03-02 03:39:16 +00:00
Alexis La Goutte ddcb796878 From Don Westman via https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=6889
CIP Motion parsing of set axis attribute list request is messing up attr data

parsing a CIP Motion 'Set Axis Attribute List' Request returns correct data for attribute ID, dimension and element size but 'attribute data' field retrieves the same data for each attribute in the list rather than the real data sent in the request.

From me :
Fix the typo error (use the wrong offset variable, need to use local_offset variable)



svn path=/trunk/; revision=41257
2012-03-01 09:11:08 +00:00
Alexis La Goutte c21455ce0e Fix some Dead Store (Dead assignement/Dead increment) Warning found by Clang
svn path=/trunk/; revision=40373
2012-01-04 17:35:41 +00:00
Anders Broman 4cfaa22784 From Michael Mann:
Improved CIP and ENIP dissectors

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

svn path=/trunk/; revision=39595
2011-10-26 04:55:21 +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 47c7565571 Initial a variable to prevent a (not actualy valid) compiler warning:
'inst_count' may be used uninitialized in this function.

svn path=/trunk/; revision=39400
2011-10-13 01:24:43 +00:00
Bill Meier de7561dc53 Fix a "set but not used" compiler warning.
svn path=/trunk/; revision=39399
2011-10-13 01:17:51 +00:00
Bill Meier eadae8da5f Fix a "defined but not used" compiler warning.
svn path=/trunk/; revision=39398
2011-10-13 01:09:17 +00:00
Bill Meier 45b2da0e44 Mark some function parameters as unused (_U_); Fixes compiler warnings.
svn path=/trunk/; revision=39397
2011-10-13 00:16:54 +00:00