Age | Commit message (Collapse) | Author | Files | Lines |
|
Change the "fd" gboolean in can_info_t to a guint, and give it a value
of 2 for CAN XL. That preserves source and binary compatiility, at
least in the case where a plugin would never be handed a CAN XL frame.
Update code to treat it as such, to make it clearer what that code is
doing.
Add CAN XL support to the SocketCAN dissector - and to the
LINKTYPE_LINUX_SLL detector. Note that the fields in the
LINKTYPE_CAN_SOCKETCAN header for CAN XL frames are *little-endian*, as
most if not all existing captures were probably done on little-endian
machines - libpcap does that so that LINKTYPE_CAN_SOCKETCAN doesn't
become one of those annoying link-layer types with *host-endian* (as in
"the byte order of the host that last processed this file") fields
(which require special processing in pcap/pcapng file readers *and* in
rpcap clients).
If the CANFD_FDF flag isn't set, treat the frame as CAN FD if it's
exactly 72 bytes long; this works around a libpcap 1.10.{2,3,4} bug
(which should be fixed in the next libpcap release) that inadvertantly
cleared that flag for CAN FD frames.
|
|
|
|
Dissector is improved as follows:
- Code cleanup
- Added comments
- Offset calculations more obvious
- Segment data is put into segment hf instead of data dissector
- Padding is calculated and shown to fix incomplete dissector warnings
|
|
This patch does:
- clean up the address handling and limit to guint16 (see UDS)
- add address length to the data exchanged to UDS
- make UDS show the correct length in the protocol line instead of 2
- show address in UDS as generated as they are passed to UDS
|
|
|
|
- Added some information how the CAN ID Mappings work.
- Made formatting a bit more consistent.
|
|
Remove init of proto, header field, expert info and subtree variables.
This will reduces the binary size by approximate 1266320 bytes due to
using .bss to zero-initialize the fields.
The conversion is done using the tools/convert-proto-init.py script.
|
|
The units of STmin in the range 0xF1 – 0xF9 are even multiples of 100µs, where parameter
value 0xF1 represents 100µs and parameter value 0xF9 represents 900µs.
|
|
Similar text appended by the branch code below.
|
|
Ping #19116
|
|
These are all very obvious what was intended, and should be
tvb_new_subset_length() or tvb_new_subset_remaining() instead.
A few of them could throw exceptions (and sometimes the wrong
exception) on packets where the captured length was not the full
reported length, but for most of these this change has no effect
(especially after commit 0c4dcc164be292790faa4707ccf06dfb6dc9dcb9)
This makes it easier to find the calls that need fixing.
|
|
|
|
|
|
Fixes a situation in which the code wrote behind the frag_id_high array
and corrupted memory.
Closes #18839
|
|
This patch allows to bind ISO15765 to PDU Transport PDUs.
|
|
Currently the dissector maps 29bit addresses to 16bit. This limitation
is being resolved by allowing 32bit addresses to be passed on.
|
|
Use macros from inttypes.h.
|
|
This patch adds the AUTOSAR I-PduM dissector.
|
|
This patch fixes the update_config routine, which turned off the CAN
config, when LIN diagnostic frame parsing is deactivated.
Closes #17639
|
|
packet-iso15765.c:534:13: warning: Value stored to 'pci' is never read [deadcode.DeadStores]
|
|
This patch adds support for the ISO 10681-2 protocol, which is similar
to the ISO 15765-2 protocol (see packet-iso15765.c).
This patch also add support for registering combined FlexRay IDs to
register the new dissector.
|
|
This patch adds support to DoIP and ISO15765 to pass the diagnostic
address or addresses to UDS. UDS takes the relevant address into account
for the data identifier and routine identifier name resolution.
|
|
This patch adds support for the FlexRay AUTOSAR TP frame formats as
defined by AUTOSAR_SWS_FlexRayARTransportLayer.pdf
|
|
This patch fixes the wrong value for frame_length being shown in the
header field.
In addition, code is cleaned up and simplified.
|
|
This patch adds first support for FlexRay TP based on the AUTOSAR
specification including FlexRay addressing.
The special message types (0x4 - 0x7) are only prepared but not added
byt this patch.
|
|
Automated find/replace of wmem_packet_scope() with pinfo->pool in all
files where it didn't cause a build failure.
|
|
This patch allows to register single IDs for CAN.
|
|
|
|
This patch adds support for LIN (Local Interconnect Network) as
well as support for:
- Signal PDUs on LIN
- ISO 15765 (ISO TP) on LIN
- TECMP transported LIN is handle like LIN
LIN is a simple automotive fieldbus to connect for example simple
sensors and actuators to an electronic control unit.
|
|
- While I recognize that the spec says a request must be 8-bytes long, that's between you and your Tier-1. I removed this requirement for decode.
- Adjusted byte positions.
Note:
Still needs a 15765 reassembler and when that happens response parsing will need touching up.
|
|
Fix dead store (Dead assignement/Dead increment) Warning found by Clang
Change-Id: Iefd5cdfb5f24e95bc71768907c7474d3a61a24af
Reviewed-on: https://code.wireshark.org/review/36841
Reviewed-by: Anders Broman <a.broman58@gmail.com>
|
|
In the case CAN-FD is used as a transport, the header of ISO15765
changes for first frames (ISO 15765-2:2015). In my previous commit
"Add support for first frames with CAN-FD" (54010d4093f) I added
support for *single frames*.
This patch really adds support for ISO 15765-2:2015 first frames, also
known as jumbo frames. Documentation is available in this presentation,
on slide 24:
* http://s3.eu-central-1.amazonaws.com/cancia-de/documents/proceedings/slides/hartkopp_slides_15icc.pdf
Change-Id: Ic97a3c71ee1df4d133dbfb04a1c781fa66739cf0
Reviewed-on: https://code.wireshark.org/review/36189
Petri-Dish: Anders Broman <a.broman58@gmail.com>
Tested-by: Petri Dish Buildbot
Reviewed-by: Anders Broman <a.broman58@gmail.com>
|
|
In the case CAN-FD is used as a transport, the header of ISO15765
changes for first frames (ISO 15765-2:2015). This patch uses the
introduced `struct can_info` to access the relevant metadata of the
underlying CAN frame. Dissection is chosen accordingly.
Ressources:
* https://www.can-cia.org/fileadmin/resources/documents/proceedings/2015_hartkopp.pdf
* http://s3.eu-central-1.amazonaws.com/cancia-de/documents/proceedings/slides/hartkopp_slides_15icc.pdf
* https://github.com/linux-can/can-utils/commit/8150e21a1129c4b822d73186cd63e0e9fbf4c32d
Change-Id: I248acacab62b51659efaed400b828ac0bb9e3c55
Reviewed-on: https://code.wireshark.org/review/35247
Tested-by: Petri Dish Buildbot
Reviewed-by: Guy Harris <guy@alum.mit.edu>
|
|
The can specific data structure `struct can_identifier` is used as
supplementary data for higher level dissectors. This patch adds more
data to this struct and renames it accordingly to `struct can_info`.
More supplementary data is needed in order to dissect iso15765
correctly, since the header format depends on details on the underlying
CAN protocol (CAN 2.0B vs CAN-FD).
Change-Id: Id068cf38453f98b67a5ec470a22e7013548c5a14
Reviewed-on: https://code.wireshark.org/review/35246
Petri-Dish: Guy Harris <guy@alum.mit.edu>
Tested-by: Petri Dish Buildbot
Reviewed-by: Guy Harris <guy@alum.mit.edu>
|
|
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>
|
|
Remove the "title" parameter from the register_decode_as_next_proto()
function. This parameter is no longer required since decode_as_t does
not have a title any more.
Change-Id: I300c755bd465453aa91703b53ce9adc954e38c00
Reviewed-on: https://code.wireshark.org/review/33579
Reviewed-by: Martin Kaiser <wireshark@kaiser.cx>
Petri-Dish: Martin Kaiser <wireshark@kaiser.cx>
Tested-by: Petri Dish Buildbot
Reviewed-by: Anders Broman <a.broman58@gmail.com>
|
|
The change adds support of CAN flags stored in ids.
The flags allow dissectors to distinguish error frames,
remote transmission request frames and identify id type used (either
standard 11-bit or extended 29-bit).
Addition of bit flags allowed to add more checks whether a CAN frame may
be decoded by a particular dissector. I.e. some dissectors work only
with 11-bit ids (CANopen, DeviceNet) some only with 29-bit (J1939,
ISObus), others should be fine with bot types (OBD-II, ISO 15765).
The change also fixes 2 bugs in the DeviceNet dissector:
* removed byte swapping of CAN id (the pcap file seems to be broken;
verified dissector operation with random traffic generated by cangen)
* fixed "Warn Dissector bug, protocol DeviceNet, in packet N":
added a default value for fragmented message type string value lookup.
Bug: 15418
Change-Id: I70e91130789bb3367fe19e51489cd34e97d678a6
Reviewed-on: https://code.wireshark.org/review/31471
Petri-Dish: Anders Broman <a.broman58@gmail.com>
Tested-by: Petri Dish Buildbot
Reviewed-by: Anders Broman <a.broman58@gmail.com>
|
|
Make the time stamp precision a 4-bit bitfield, so, when combined with
the other bitfields, we have 32 bits. That means we put the flags at
the same structure level as the time stamp precision, so they can be
combined; that gets rid of an extra "flags." for references to the flags.
Put the two pointers next to each other, and after a multiple of 8 bytes
worth of other fields, so that there's no padding before or between them.
It's still not down to 64 bytes, which is the next lower power of 2, so
there's more work to do.
Change-Id: I6f3e9d9f6f48137bbee8f100c152d2c42adb8fbe
Reviewed-on: https://code.wireshark.org/review/31213
Petri-Dish: Guy Harris <guy@alum.mit.edu>
Tested-by: Petri Dish Buildbot
Reviewed-by: Guy Harris <guy@alum.mit.edu>
|
|
Change-Id: If6fc3aab7ad4fc634567121f7b9541bc6f6c5766
Reviewed-on: https://code.wireshark.org/review/30926
Reviewed-by: Gerald Combs <gerald@wireshark.org>
Petri-Dish: Gerald Combs <gerald@wireshark.org>
Tested-by: Petri Dish Buildbot
Reviewed-by: Anders Broman <a.broman58@gmail.com>
|
|
Add col_data_changed, which checks to see if we have updated column
info. Add col_append_frame_number, which adds a frame number and sets
col_data_changed. Call col_append_frame_number instead of
col_append_fstr from some dissectors.
Add PacketListRecord::invalidateAllRecords, which invalidates any cached
record data. Add PacketListModel::invalidateAllColumnStrings which calls
invalidateAllRecords and signals that our data has changed. Call
invalidateAllColumnStrings when we have new name resolution or column
information.
Bug: 11414
Bug: 11468
Change-Id: I2671594a722f4f9436fe1df84d43489a148e0cee
Reviewed-on: https://code.wireshark.org/review/26373
Reviewed-by: Gerald Combs <gerald@wireshark.org>
Petri-Dish: Gerald Combs <gerald@wireshark.org>
Tested-by: Petri Dish Buildbot
Reviewed-by: Roland Knall <rknall@gmail.com>
|
|
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>
|
|
For protocols that have don't have a unique identifier for their
payload, have register_decode_as_next_proto be a one stop shop to
create Decode As functionality and a dissector table of type FT_NONE.
Change-Id: Ic1f2e9ed0aee0554a4eb8f232630b99c0604dfc0
Reviewed-on: https://code.wireshark.org/review/22575
Petri-Dish: Michael Mann <mmann78@netscape.net>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Michael Mann <mmann78@netscape.net>
|
|
Many dissectors don't have an identifier to pass to a dissector table.
When using Decode As they all have a "value" function that returns 0
just so something is returned.
A first step to a cleaner refactor of the functionality is to allow
dissectors to provide a "prompt" function when registering Decode As
with register_decode_as_next_proto() so that the text exposed in
the GUI can vary, but the function that returns 0 (nothing) can be
consolidated under decode as registration functionality. This casts
a wider net for register_decode_as_next_proto() use.
Change-Id: I2995b3c251dae70f5f529b672473d25c6288ed5c
Reviewed-on: https://code.wireshark.org/review/22562
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>
|
|
Change-Id: Ib6f0bcd1bec9a1fc5cbcd797a1f418270ae74a0e
Reviewed-on: https://code.wireshark.org/review/21537
Petri-Dish: Michael Mann <mmann78@netscape.net>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Michael Mann <mmann78@netscape.net>
|
|
Change-Id: I25fd598f3c2bd75548213140e93198b611f30d4b
Reviewed-on: https://code.wireshark.org/review/19900
Reviewed-by: Michael Mann <mmann78@netscape.net>
Petri-Dish: Dario Lombardo <lomato@gmail.com>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Dario Lombardo <lomato@gmail.com>
|
|
Register all reassembly tables with a central unit, allowing the
central unit to have the callback that initializes and destroys
the reassembly tables, rather than have dissectors do it individually.
Change-Id: Ic92619c06fb5ba6f1c3012f613cae14982e101d4
Reviewed-on: https://code.wireshark.org/review/19834
Petri-Dish: Michael Mann <mmann78@netscape.net>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Michael Mann <mmann78@netscape.net>
|
|
This emphasizes that there is no such thing as *the* routine to
construct a subset tvbuff; you need to choose one of
tvb_new_subset_remaining() (if you want a new tvbuff that contains
everything past a certain point in an existing tvbuff),
tvb_new_subset_length() (if you want a subset that contains everything
past a certain point, for some number of bytes, in an existing tvbuff),
and tvb_new_subset_length_caplen() (for all other cases).
Many of the calls to tvb_new_subset_length_caplen() should really be
calling one of the other routines; that's the next step. (This also
makes it easier to find the calls that need fixing.)
Change-Id: Ieb3d676d8cda535451c119487d7cd3b559221f2b
Reviewed-on: https://code.wireshark.org/review/19597
Reviewed-by: Guy Harris <guy@alum.mit.edu>
|
|
Have all dissector tables have a "supports Decode As" flag, which
defaults to FALSE, and which is set to TRUE if a register_decode_as()
refers to it.
When adding a dissector to a dissector table with a given key, only add
it for Decode As if the dissector table supports it.
For non-FT_STRING dissector tables, always check for multiple entries
for the same protocol with different dissectors, and report an error if
we found them.
This means there's no need for the creator of a dissector table to
specify whether duplicates of that sort should be allowed - we always do
the check when registering something for "Decode As" (in a non-FT_STRING
dissector table), and just don't bother registering anything for "Decode
As" if the dissector table doesn't support "Decode As", so there's no
check done for those dissector tables.
Change-Id: I4a1fdea3bddc2af27a65cfbca23edc99b26c0eed
Reviewed-on: https://code.wireshark.org/review/17402
Petri-Dish: Guy Harris <guy@alum.mit.edu>
Reviewed-by: Guy Harris <guy@alum.mit.edu>
|
|
'proto_register_iso15765/proto_reg_handoff_iso15765' [-Wmissing-prototypes]
Change-Id: Id563eb5c44a988a7ea5149e312f4033cd4ca31e9
Reviewed-on: https://code.wireshark.org/review/17141
Reviewed-by: Anders Broman <a.broman58@gmail.com>
|
|
Change-Id: Id7fb231fe820308641c09add22dde131757b9e92
Reviewed-on: https://code.wireshark.org/review/16929
Reviewed-by: Martin Kaiser <wireshark@kaiser.cx>
|