Commit Graph

18 Commits (9679a3f50a14b2c864889c6da56a7cdbaa7b1f9b)

Author SHA1 Message Date
Leo Ruan 9679a3f50a Add interface to retrieve link statistics
This commit adds an interface to get the statistics (64-bits) from
CAN interface. See more information from /usr/include/linux/if_link.h
where defines the struct rtnl_link_stats64.

Compare to the rtnl_link_stats, rtnl_link_stats64 was introduced
since linux kernel 2.6. After that the rtnl_link_stats is synchronous
with struct rtnl_link_stats64 by truncating each member from 64 bits
to 32 bits. Actually, the struct rtnl_link_stats is kept for
compatibility.

Signed-off-by: Leo Ruan <tingquan.ruan@cn.bosch.com>
Signed-off-by: Mark Jonas <mark.jonas@de.bosch.com>
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
2018-08-08 12:28:57 +02:00
Leo Ruan 6f13cefafe Get link information only from specified interface
libsocketcan always retrieves link information from all interfaces
instead of only specified one. This commit fixes the issue by appending
an interface information to dump request netlink message.
See man 7 rtnetlink for detail description in section 'RTM_GETLINK'.

Signed-off-by: Leo Ruan <tingquan.ruan@cn.bosch.com>
Signed-off-by: Mark Jonas <mark.jonas@de.bosch.com>
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
2018-08-08 12:28:57 +02:00
Leo Ruan f5392c3654 Fix parse_rtattr() does not completely initialize
Because max is the index of the last element in array tb, max+1
elements need to be initialized.

Signed-off-by: Leo Ruan <tingquan.ruan@cn.bosch.com>
Signed-off-by: Mark Jonas <mark.jonas@de.bosch.com>
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
2018-08-08 12:28:57 +02:00
Nikita Edward Baruzdin 4ea9ec7cf3 Update can_set_ctrlmode() documentation
Signed-off-by: Nikita Edward Baruzdin <nebaruzdin@gmail.com>
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
2014-07-22 16:25:09 +02:00
Alexander Shiyan 0c4609f54f libsocketcan: Remove excess gotos.
Signed-off-by: Alexander Shiyan <shc_work@mail.ru>
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
2014-02-07 10:47:59 +01:00
Alexander Shiyan 24500fcaca libsocketcan: Fix return value for get{set}_link() function
This patch makes return value negative when open_nl_sock() function
fail and removes excess labels.

Signed-off-by: Alexander Shiyan <shc_work@mail.ru>
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
2014-02-06 11:45:55 +01:00
Alexander Shiyan 9a28d69183 Optimize can_do_restart() function
This patch optimizes can_do_restart() function by reusing some part
of code from existing set_link() function.

Signed-off-by: Alexander Shiyan <shc_work@mail.ru>
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
2014-01-31 11:12:20 +01:00
Alexander Shiyan d9469850ac Use "%u" printf-format specifier for unsigned variable
Signed-off-by: Alexander Shiyan <shc_work@mail.ru>
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
2014-01-31 11:12:14 +01:00
Alexander Stein 94094cc4ee Use strcmp instead of sizeof on char* string
This bug was detected by the clang warning:
libsocketcan.c:384:16: warning: argument to 'sizeof' in 'strncmp' call
is the same expression as the source; did you mean to provide an
explicit length? [-Wsizeof-pointer-memaccess]
sizeof(name)) != 0)
~~~~~~~^~~~~~

Signed-off-by: Alexander Stein <alexander.stein@systec-electronic.com>
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
2012-11-28 13:11:04 +01:00
Andrew Beard 5ba2310d85 Modified do_get_nl_link to potentially process multiple netlink dump replies.
Prior to this commit, do_get_nl_link assumed there would only be a single
reply for a dump request. On my system with multiple can interfaces, this
would cause only half of them to be listed in the dump reply. This change
checks for NLMSG_DONE dump terminator and stops receiving messages once
received.

Signed-off-by: Andrew Beard <abeard@ovro.caltech.edu>
[mkl: fix indention, move variable init out of loop]
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
2012-08-07 09:40:50 +02:00
Kurt Van Dijck 6db5d772b4 add can_get_device_stats()
When using libsocketcan on git://git.pengutronix.de/git/tools/libsocketcan.git,
I kind of missed a method to fetch the can device statistics.
This patch adds that functionality.
I think this is the proper library to put such function.

Signed-off-by: Kurt Van Dijck <kurt.van.dijck@eia.be>
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
2011-10-18 13:26:48 +02:00
Marc Kleine-Budde d99010f50b libsocketcan: remove trailing whitespace
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
2010-10-25 13:36:49 +02:00
Luotao Fu 298e6efc3e add get error counter call
Signed-off-by: Luotao Fu <luotao@alea.(none)>
2010-02-14 18:12:01 +01:00
Luotao Fu 6f0eac7ab9 add doxygen documentation
Signed-off-by: Luotao Fu <l.fu@pengutronix.de>
2009-12-08 15:54:53 +01:00
Wolfgang Grandegger 463ac873c7 Add can_get_bittiming_const()
Signed-off-by: Wolfgang Grandegger <wg@grandegger.com>
Acked-by: Luotao Fu <l.fu@pengutronix.de>
2009-12-01 10:20:41 +01:00
Luotao Fu 96b6e75947 lindent, remove debug print
Signed-off-by: Luotao Fu <l.fu@pengutronix.de>
2009-11-27 16:28:36 +01:00
Luotao Fu b2306d4979 splitted up set_bitrate
we now have can_set_bitrate and can_set_bitrate_samplepoint. The second is for
convenience for the developer. We tend to let the kernel use CIA recommnended
sample point value, which can_set_bitrate simply does

Signed-off-by: Luotao Fu <l.fu@pengutronix.de>
2009-11-27 13:27:11 +01:00
Luotao Fu 257877f315 rename library and API prefix
library is now called libsocketcan, API carry the prefix can_

Signed-off-by: Luotao Fu <l.fu@pengutronix.de>
2009-11-27 11:53:45 +01:00