Oliver Hartkopp [Fri, 16 Apr 2010 08:46:17 +0000 (08:46 +0000)]
Added CRC8 profiles to handle additional data for checksum generation.
Oliver Hartkopp [Mon, 12 Apr 2010 14:41:14 +0000 (14:41 +0000)]
Added checksum functionality and some documentation in gw.h
Oliver Hartkopp [Sat, 10 Apr 2010 16:38:48 +0000 (16:38 +0000)]
Complete rework of CAN netlink gateway.
Major changes:
- rework internal structures to prepare routings and modifications of CAN traffic also to non-CAN interfaces
- fix reading of netlink messages in cangw.c (added RTCAN_RTA / RTCAN_PAYLOAD macros)
- rework reading of gw-job lists in cgw_dump_jobs()
- rename of functions and API definitions to have a common namespace cgw_
- added infrastructure to perform crc8 and xor checksums in CAN frame data[]
TODO:
- add and test functionality for crc8 and xor checksums in CAN frame data[]
- add help text for crc8 and xor checksums in CAN frame data[]
Oliver Hartkopp [Wed, 17 Mar 2010 19:21:38 +0000 (19:21 +0000)]
Some binaries in can-utils depend on features in the socket-can svn
repository. Building with exported headers from an unpatched kernel will
fail due to missing symbols or headers.
This patch adds two make variables to optionally disable building such
binaries, like this:
make PROGRAMS_ISOTP= PROGRAMS_CANGW= PROGRAMS_SLCAN= all
Signed-off-by: Olaf Hering <olaf@aepfle.de>
Signed-off-by: Oliver Hartkopp <oliver@hartkopp.net>
Oliver Hartkopp [Wed, 17 Mar 2010 19:12:26 +0000 (19:12 +0000)]
To simplify packaging of can-utils, add DESTDIR and PREFIX support to
the can-utils Makefile.
Signed-off-by: Olaf Hering <olaf@aepfle.de>
Signed-off-by: Oliver Hartkopp <oliver@hartkopp.net>
Oliver Hartkopp [Thu, 4 Mar 2010 10:59:24 +0000 (10:59 +0000)]
Initialize packet counters when printing each routing entry.
Oliver Hartkopp [Sat, 27 Feb 2010 16:07:58 +0000 (16:07 +0000)]
Rework of help text.
Oliver Hartkopp [Fri, 26 Feb 2010 08:38:47 +0000 (08:38 +0000)]
When sending a sequence, we need to resend the same frame when poll() returns.
Fixed that to be a valid data source e.g. for ptx cansequence.
Oliver Hartkopp [Thu, 25 Feb 2010 20:53:19 +0000 (20:53 +0000)]
Added commandline option '-p <timeout>' to enable polling on the writing socket.
Inspired by Marc Kleine-Budde :-)
Oliver Hartkopp [Tue, 23 Feb 2010 19:13:17 +0000 (19:13 +0000)]
Added funtionality to flush all GW jobs in one netlink message.
Oliver Hartkopp [Mon, 22 Feb 2010 18:57:45 +0000 (18:57 +0000)]
Beautify the listing of registered gwjobs (cangw -L).
Oliver Hartkopp [Mon, 22 Feb 2010 09:57:12 +0000 (09:57 +0000)]
Added feature to list created gateway jobs.
Also added some fixes and removed debug printf's.
Oliver Hartkopp [Sun, 21 Feb 2010 12:34:34 +0000 (12:34 +0000)]
Added netlink error message support to be able to provide return values.
Renamed some structure elements. Updated usage text.
Oliver Hartkopp [Sat, 20 Feb 2010 20:41:24 +0000 (20:41 +0000)]
Moved kernel parsing of netlink attributes into can_can_parse_attr().
Added functionalitiy to remove formerly created CAN GW jobs.
Oliver Hartkopp [Fri, 19 Feb 2010 13:33:59 +0000 (13:33 +0000)]
Added cangw netlink gateway configuration tool.
TODO (in both cangw and can-gw.ko) : Support removal and listing of rules.
So far the gateway jobs are only removed on can-gw.ko module unload or when
the used CAN netdevices disappear.
Oliver Hartkopp [Fri, 15 Jan 2010 19:15:08 +0000 (19:15 +0000)]
Try to ignore the usual value restrictions of sockopt SO_RCVBUF when running
as root (with CAP_NET_ADMIN) by using SO_RCVBUFFORCE if possible.
Oliver Hartkopp [Fri, 15 Jan 2010 18:35:37 +0000 (18:35 +0000)]
Added '-d' option to support the receive packet drop counting introduced in
http://git.kernel.org/?p=linux/kernel/git/davem/net-next-2.6.git;a=commitdiff;h=
3b885787ea4112eaa80945999ea0901bf742707f
This is done by using recvmsg() instead of recvfrom() to allow the timestamp
and the dropcounter to be received within one syscall.
When the application (here 'candump') ist not fast enough to process the
incomming CAN frames the frames are dropped in the socket receive queue.
When this happens and '-d' is set, we get this info now:
DROPCOUNT: dropped 1 CAN frame on 'xxx' socket (total drops 1)
Oliver Hartkopp [Wed, 25 Nov 2009 18:51:31 +0000 (18:51 +0000)]
fflush the new configurable stdout output to allow proper pipe/netcat setups.
Oliver Hartkopp [Wed, 25 Nov 2009 17:15:09 +0000 (17:15 +0000)]
Allow to specify the name of the IP tunnel netdevice via commandline option '-n <name>'
Oliver Hartkopp [Wed, 25 Nov 2009 16:43:17 +0000 (16:43 +0000)]
Remove feature to quit the isotptun by keypress (from stdin) as it was not possible to run it from a start-script.
Added a signal handler to gracefully leave the isotptun.
Wolfgang Grandegger [Wed, 25 Nov 2009 11:18:22 +0000 (11:18 +0000)]
can-utils: canfdtest, a full duplex test to find out-of-order messages
This patch is a pepped up version of Valdislav's canecho_gen and
canecho_dut test programs, which have prooved to be useful for
detecting out-of-order message transmisson and reception. Here
is a list of the changes and improvements:
- Both programs have been merged into on test program named
canfdtest. Message generation can be selected via the command
line option '-g'.
- The test loop count can be specified.
- A low and high verbosity level has been added.
- send/recv is used instead of write/read.
- The return code of send/recv is checked properly.
- Use Linux coding style.
Signed-off-by: Wolfgang Grandegger <wg@grandegger.com>
Oliver Hartkopp [Fri, 6 Nov 2009 08:07:45 +0000 (08:07 +0000)]
Added hook to print selected logfile lines on stdout for further processing.
Oliver Hartkopp [Thu, 10 Sep 2009 08:01:00 +0000 (08:01 +0000)]
Introduce KERNELDIR variable to allow override when invoking make on commandline.
Oliver Hartkopp [Thu, 10 Sep 2009 07:39:33 +0000 (07:39 +0000)]
Move BCM server into can-utils as it is not test application anymore.
Oliver Hartkopp [Thu, 10 Sep 2009 07:34:06 +0000 (07:34 +0000)]
Remove obsolete 'vcan' tool.
Oliver Hartkopp [Tue, 5 May 2009 09:40:10 +0000 (09:40 +0000)]
Added slcand daemon contributed by Robert Haddon <robert.haddon@verari.com>
Oliver Hartkopp [Thu, 16 Apr 2009 08:05:42 +0000 (08:05 +0000)]
Added commandline option '-r' to set the per-socket receive buffer size.
Oliver Hartkopp [Mon, 6 Apr 2009 11:15:27 +0000 (11:15 +0000)]
Removed the limitation for the number of CAN filters for each interface.
Updated Copyright notice.
And finally: Yeah! I did something with malloc :-)
Oliver Hartkopp [Mon, 6 Apr 2009 08:41:17 +0000 (08:41 +0000)]
Add functionality to
terminate after receiption of <count> CAN frames.
Oliver Hartkopp [Sun, 15 Feb 2009 17:40:32 +0000 (17:40 +0000)]
Spagetti code cleanup:
Moved conversions into separate functions can2pty() and pty2can().
Updated and enhanced some comments.
Variable name cleanups inside the separate functions.
Fix handling on wrong pty commands (was a wrong 'continue' statement).
Oliver Hartkopp [Wed, 4 Feb 2009 16:51:04 +0000 (16:51 +0000)]
Allow SLCAN RTR frames without data length code field.
Oliver Hartkopp [Wed, 4 Feb 2009 13:18:44 +0000 (13:18 +0000)]
Some more implementation to make it work with a certain application.
Oliver Hartkopp [Tue, 3 Feb 2009 20:12:34 +0000 (20:12 +0000)]
Use rxbuf[] for acknowledges.
Oliver Hartkopp [Tue, 3 Feb 2009 13:59:17 +0000 (13:59 +0000)]
Implemented ACK/NACK replies for ASCII commands.
Added 'O'pen and 'C'lose functionality.
Oliver Hartkopp [Tue, 3 Feb 2009 11:59:53 +0000 (11:59 +0000)]
Added timestamp handling with Z0 or Z1 command.
Oliver Hartkopp [Wed, 21 Jan 2009 09:17:20 +0000 (09:17 +0000)]
Add can_id/can_mask filter handling which is defined in the slcan protocol (m/M).
Oliver Hartkopp [Wed, 21 Jan 2009 07:38:18 +0000 (07:38 +0000)]
Removed sanity check for received slcan ASCII data
as this is done with ASCII comparision three lines above.
Oliver Hartkopp [Tue, 20 Jan 2009 23:06:01 +0000 (23:06 +0000)]
Added a proof of concept tool 'slcanpty' which
creates a pty for applications using the slcan ASCII protocol and
converts the data to a CAN network interface (and vice versa).
This can be used for existing applications to run on SocketCAN.
Oliver Hartkopp [Tue, 13 Jan 2009 09:32:45 +0000 (09:32 +0000)]
Consistencely allow '-?' to get a help text.
Oliver Hartkopp [Tue, 6 Jan 2009 09:04:34 +0000 (09:04 +0000)]
disable default receive filter on the write-only bridge socket.
Oliver Hartkopp [Mon, 1 Dec 2008 07:24:18 +0000 (07:24 +0000)]
Fix sloppy CAN_(EFF|RTR)_FLAG handling in can_filter.can_mask .
Due to a wrong safety check in af_can.c it was not possible to filter
for SFF frames with a specific CAN identifier without getting the
same selected CAN identifier from a received EFF frame also.
This fix has a minimum impact on the CAN filter API as the 'sloppy'
handling is still a correct (and possibly wanted?) use-case.
Please update the can-utils (especially candump) whose filter definition
on the commandline made assumptions to correct the user input that are
probably unwanted now.
Thanks to Kurt van Dijck for pointing at this issue!
Signed-Off-by: Oliver Hartkopp <oliver@hartkopp.net>
Oliver Hartkopp [Fri, 28 Nov 2008 21:50:24 +0000 (21:50 +0000)]
Fixed parse_canframe() with reordering the checks for the can_id
delimiter. Before this fix the function may have found delimiters in the
string behind the terminating zero.
Oliver Hartkopp [Mon, 17 Nov 2008 10:23:42 +0000 (10:23 +0000)]
Added interface name to parameter list in first line.
Oliver Hartkopp [Wed, 5 Nov 2008 14:20:52 +0000 (14:20 +0000)]
Added Id keyword propertiy on new files.
Oliver Hartkopp [Wed, 5 Nov 2008 11:34:23 +0000 (11:34 +0000)]
Added ISO 15765-2 CAN transport protocol for protocol family CAN.
Including some tools and coarse documentation README.isotp
Oliver Hartkopp [Tue, 4 Nov 2008 10:47:09 +0000 (10:47 +0000)]
Reworked slcan_attach to give slcan setup values directly on the commandline.
Oliver Hartkopp [Wed, 29 Oct 2008 09:41:40 +0000 (09:41 +0000)]
Print non-data stuff (errors, warnings, hints) on stderr.
Oliver Hartkopp [Wed, 29 Oct 2008 09:23:48 +0000 (09:23 +0000)]
Added support for swapped byte order representation.
Oliver Hartkopp [Thu, 2 Oct 2008 13:47:43 +0000 (13:47 +0000)]
Start candump in silent mode, when logging into a file.
Oliver Hartkopp [Wed, 17 Sep 2008 13:02:49 +0000 (13:02 +0000)]
The number for the SLCAN line discipline can not be found in
<linux/tty.h> anyway but needs to be written as module alias
tty-ldisc-17 slcan
So we remove the annoying #error output and use the correctly defined
'17' from Kernel 2.6.25+ as default.
Oliver Hartkopp [Tue, 9 Sep 2008 12:56:05 +0000 (12:56 +0000)]
Added support for comments in logfiles.
Added some sanity checks and error messages.
Oliver Hartkopp [Fri, 25 Jul 2008 06:32:20 +0000 (06:32 +0000)]
Create an informative error message when detecting a wrong line format.
Oliver Hartkopp [Thu, 24 Jul 2008 19:12:19 +0000 (19:12 +0000)]
Changed comment line recognition:
Everything without a '(' at the beginning of an input line is treated as comment.
Changed buffer size to allow long comment lines & added overflow handling.
Oliver Hartkopp [Thu, 24 Jul 2008 13:03:18 +0000 (13:03 +0000)]
Support for comment lines in the logfile:
'#' at the beginning of a line marks comment lines.
Oliver Hartkopp [Thu, 10 Jul 2008 11:01:37 +0000 (11:01 +0000)]
Added missing help test.
Oliver Hartkopp [Thu, 10 Jul 2008 10:59:37 +0000 (10:59 +0000)]
Added -f option to filter only on the CAN-ID and not on the content.
This can be useful when the timestamp cyle needs to be displayed.
Oliver Hartkopp [Wed, 2 Jul 2008 04:19:07 +0000 (04:19 +0000)]
Do not allow to create error frame filters via standard filter sets.
Oliver Hartkopp [Wed, 2 Jul 2008 04:05:11 +0000 (04:05 +0000)]
Added automatic extended frame format recognition.
Most SocketCAN userspace tools (like cansend) recognize the EFF by the
stringlength of the given CAN-ID: 3 -> SFF , 8 -> EFF.
This was missing in the candump filter definition and therefore the
values had to be specified with the CAN_EFF_FLAG set in the value, e.g.
92345678 for the extended CAN-ID
12345678 - this was not really nice.
Now the filtersets for extended frames can be specified as expected:
12345678:
1FFFFFFF to filter for only
12345678 extended CAN-ID
000000AA:
1FFFFFFF to filter for only AA extended CAN-ID.
Oliver Hartkopp [Tue, 1 Jul 2008 11:31:59 +0000 (11:31 +0000)]
Added silent correction for can_dlc out of range.
Oliver Hartkopp [Thu, 26 Jun 2008 14:35:46 +0000 (14:35 +0000)]
Fixed condition pointed out by Uwe Bonnes:
https://lists.berlios.de/pipermail/socketcan-core/2008-June/001625.html
Oliver Hartkopp [Fri, 20 Jun 2008 09:19:13 +0000 (09:19 +0000)]
Fix typo.
Oliver Hartkopp [Fri, 20 Jun 2008 09:16:06 +0000 (09:16 +0000)]
Fix commandline parameter handling for fixed canframe.data[] .
Oliver Hartkopp [Fri, 20 Jun 2008 09:15:13 +0000 (09:15 +0000)]
Introduced new functions:
unsigned char asc2nibble(char c);
int hexstring2candata(char *arg, struct can_frame *cf);
(see documentation in lib.h)
As prerequsite to fix the commandline interface of cangen.
Oliver Hartkopp [Wed, 11 Jun 2008 16:38:00 +0000 (16:38 +0000)]
fixed comment.
Oliver Hartkopp [Wed, 11 Jun 2008 16:35:19 +0000 (16:35 +0000)]
Removed bad hacks in vcan.c and slcan_attach.c.
Giving some hints for users of older kernels than 2.6.25 that a
compilation error is a normal behaviour in these cases.
Oliver Hartkopp [Tue, 3 Jun 2008 08:52:06 +0000 (08:52 +0000)]
Added Id properties that gone lost.
Oliver Hartkopp [Tue, 3 Jun 2008 08:46:57 +0000 (08:46 +0000)]
Whitespace fixes. Indented the code following Linux styleguide to fix
the mess between tabs and spaces.
Oliver Hartkopp [Mon, 2 Jun 2008 20:06:37 +0000 (20:06 +0000)]
Added binary output option to candump.c and sprint_long_canframe() in lib.c .
Oliver Hartkopp [Tue, 27 May 2008 13:47:20 +0000 (13:47 +0000)]
Added tiny tool to measure CAN busload.
Oliver Hartkopp [Sun, 11 May 2008 11:46:00 +0000 (11:46 +0000)]
Added hint about hexadecimal data representation.
Oliver Hartkopp [Mon, 5 May 2008 12:20:34 +0000 (12:20 +0000)]
Updated new 'cangen' and 'candump' in the trunk.
Oliver Hartkopp [Thu, 13 Mar 2008 21:52:20 +0000 (21:52 +0000)]
Allow commandline option '-?' to print the help text.
Oliver Hartkopp [Thu, 13 Mar 2008 21:44:20 +0000 (21:44 +0000)]
Updated help text for commandline options.
Oliver Hartkopp [Sun, 23 Dec 2007 18:17:29 +0000 (18:17 +0000)]
Fixed the temporary hack to run with 2.6.24-rc5 again.
Oliver Hartkopp [Mon, 10 Dec 2007 15:47:01 +0000 (15:47 +0000)]
- allow timout to be zero, which means timeout is off.
Oliver Hartkopp [Fri, 30 Nov 2007 13:35:01 +0000 (13:35 +0000)]
Added canlogserver programmed by Andre Naujoks.
Oliver Hartkopp [Tue, 20 Nov 2007 18:37:30 +0000 (18:37 +0000)]
Changed color order at colorized output.
Remove index cache zombies when unloading CAN drivers.
Modified index cache failure message.
Oliver Hartkopp [Sun, 7 Oct 2007 14:39:52 +0000 (14:39 +0000)]
Fixed checking of CAN interface name commandline parameter.
Cosmetics.
Oliver Hartkopp [Mon, 1 Oct 2007 05:48:50 +0000 (05:48 +0000)]
Reverted most of the changes since r500 except the changes in
drivers/net/can/* after discussion with Urs.
TODO: Documentation & new Version.
Oliver Hartkopp [Sun, 30 Sep 2007 13:00:42 +0000 (13:00 +0000)]
Changed loopback to echo in CAN RAW sockets. The binary interface does
not change through this renaming of CAN_RAW_LOOPBACK to CAN_RAW_ECHO.
Oliver Hartkopp [Thu, 27 Sep 2007 12:29:32 +0000 (12:29 +0000)]
Fixed contradiction in Sourcecode discalimer.
See details at
http://marc.info/?l=linux-netdev&m=
119074747913703&w=2
Oliver Hartkopp [Fri, 21 Sep 2007 07:21:24 +0000 (07:21 +0000)]
Update outdated comment.
Oliver Hartkopp [Fri, 7 Sep 2007 11:15:22 +0000 (11:15 +0000)]
Updated the canplayer to accept logfile timestamps in the future (which
is very nice when you don't have a RTC and your systemtime is somewhere
in the 1970's :)
Added a new commandline option to skip timestamp jumps greater than x
seconds to allow to concatenate different logfiles that replay
constantly and not waiting for the absolute timestamp offsets.
Oliver Hartkopp [Fri, 3 Aug 2007 11:17:10 +0000 (11:17 +0000)]
Removed "unused variable i" warning for the dry-run testing.
Oliver Hartkopp [Mon, 16 Jul 2007 09:52:43 +0000 (09:52 +0000)]
Added the blanking of 'old' data when the can_dlc decreases between two
receiptions of the same can_id.
Thanks to Andre Naujoks for the bug report.
Oliver Hartkopp [Mon, 16 Jul 2007 08:29:28 +0000 (08:29 +0000)]
Added -B option to display binary content with a gap after each data byte.
This option is similar to -b but may exceed the 80 char boundary.
Oliver Hartkopp [Sun, 8 Jul 2007 12:44:12 +0000 (12:44 +0000)]
Fixed compilation warning on 64bit architectures.
Thanks to Neal Probert for the hint.
Urs Thuermann [Sat, 7 Jul 2007 01:36:36 +0000 (01:36 +0000)]
Add vcan config tool to Makefile.
Urs Thuermann [Fri, 6 Jul 2007 15:50:55 +0000 (15:50 +0000)]
Add a tool "vcan" to add/remove vcan interfaces.
Oliver Hartkopp [Mon, 25 Jun 2007 13:05:43 +0000 (13:05 +0000)]
Updated LDISC number to 17 (16 is occupied in the Kernel)
Oliver Hartkopp [Fri, 22 Jun 2007 08:33:18 +0000 (08:33 +0000)]
Added option '-x' to disable local loopback for sent CAN frames.
Oliver Hartkopp [Fri, 22 Jun 2007 08:25:34 +0000 (08:25 +0000)]
Changed option name '-l' to '-x' as this option should also go into canplayer.
Cosmetics in print_help().
Oliver Hartkopp [Fri, 22 Jun 2007 08:04:48 +0000 (08:04 +0000)]
Added option '-l' to disable local loopback for generated data.
Oliver Hartkopp [Mon, 18 Jun 2007 20:04:23 +0000 (20:04 +0000)]
Added program exit on SIOCGIFINDEX error.
Oliver Hartkopp [Mon, 18 Jun 2007 19:59:20 +0000 (19:59 +0000)]
Disabled obsolte receive filter. Added error checking for SIOCGIFINDEX.
Oliver Hartkopp [Wed, 30 May 2007 07:20:18 +0000 (07:20 +0000)]
Added new commandline option '-B' which acts like the bridging option '-b' but
disables the local loopback functionality (for ECU analysis and MITM-attacks :)
Fixed missing fflush().
Oliver Hartkopp [Wed, 9 May 2007 07:33:34 +0000 (07:33 +0000)]
Added missing initialisation to prevent a gcc warning.
Oliver Hartkopp [Mon, 5 Mar 2007 21:58:28 +0000 (21:58 +0000)]
Fixed Makefiles to compile test-apps and can-utils again.
Added new commandline parameter (linediscipline value) to slcan_attach.
Oliver Hartkopp [Thu, 22 Feb 2007 12:47:37 +0000 (12:47 +0000)]
Added CAN interface driver for low-cost CAN-Interfaces with ASCII protocol
via serial (or quasi serial via USB) lines.
This driver is partly derived from linux/net/driver/slip.c and uses a new
tty line discipline (N_SLCAN) analogue to N_SLIP to encapsulate can_frames
sent to a slc* netdevice for the serial line and vice versa.
As only the sending and receiving of can_frames is implemented, this driver
should work with the (serial/USB) CAN hardware from:
> www.canusb.com / www.can232.com / www.mictronic.com / www.canhack.de <
The sending and receiving frames format is pretty common. The other settings
and the 'open' command 'O' of the specific adapters may be set with a
terminal programm (like minicom) before switching the CAN data stream to
the slc* netdevice using the slcan_attach userspace tool.
Feel free to send patches / extensions to slcan.c / slcan_attach.c :)
ps. There had been no performances measurements until now. As long as the
data fit's through the 'serial' line it works obviously well. The slcan-driver
nor the Linux network layer will definitely have no problems to process
the received data. Remember the 'low-cost' hardware approach. We'll see ...
Oliver Hartkopp [Mon, 12 Feb 2007 08:36:38 +0000 (08:36 +0000)]
Added Option -l ('l'oop) to make the canplayer replay a given file more than
one time. To replay a given file infinitely say '-l i'. Of course it is not
possible/reasonable to define '-l' when reading from stdin ...