I noticed that when libsocketcan calls send_dump_request() it returns a message 
for me that has a length of 3424 with recvmsg().  This is not the full message, 
if I add a loop into the routine to again receive, I receive a second message 
this time with a length of 1424.  I added some prints into the routine to 
output strings and sizes:

First read:
nl_msg:-1073753668  u_msglen:3424
lo
nl_msg:-1073752676  u_msglen:2432
eth0
nl_msg:-1073751668  u_msglen:1424
can0
nl_msg:-1073750956  u_msglen:712
can1

Second read:
nl_msg:-1073753668  u_msglen:1424
can2
nl_msg:-1073752956  u_msglen:712
can3

With this loop, it seems to work.  Does this make sense?

Mit freundlichen Grüssen / Yours sincerely,

James Kime
Entwicklung / Development
--------------------------------------------
IXXAT Automation GmbH
Leibnizstr. 15, 88250 Weingarten, Germany
Phone +49-751-56146-181
Fax   +49-751-56146-29
mailto:k...@ixxat.de
http://www.ixxat.de
--------------------------------------------
PRIVILEGED AND CONFIDENTIAL.
Any unauthorized use or disclosure
is strictly prohibited.
--------------------------------------------
Sitz der Gesellschaft: Weingarten
Handelsregister Ulm HRB 551905
Geschäftsführer:
Dipl.-Ing. Christian Schlegel
--------------------------------------------


-----Original Message-----
From: Wolfgang Grandegger [mailto:w...@grandegger.com] 
Sent: Friday, December 09, 2011 10:00 AM
To: Kime, James
Cc: socketcan-core@lists.berlios.de; linux-...@vger.kernel.org
Subject: Re: CAN State Information

On 12/09/2011 09:45 AM, k...@ixxat.de wrote:
> I am new to using trace, but I think this is the output you are looking for: 
> 
...
>        canconfig-3288  [000]  3756.163033: can_fill_xstats <-rtnl_link_fill
>        canconfig-3288  [000]  3756.163034: can_fill_info <-rtnl_link_fill
>        canconfig-3288  [000]  3756.163041: can_fill_xstats <-rtnl_link_fill
>        canconfig-3288  [000]  3756.163042: can_fill_info <-rtnl_link_fill
>        canconfig-3288  [000]  3756.163047: can_fill_xstats <-rtnl_link_fill
>        canconfig-3288  [000]  3756.163048: can_fill_info <-rtnl_link_fill
>        canconfig-3288  [000]  3756.163066: can_fill_xstats <-rtnl_link_fill
>        canconfig-3288  [000]  3756.163067: can_fill_info <-rtnl_link_fill
>        canconfig-3288  [000]  3756.163073: can_fill_xstats <-rtnl_link_fill
>        canconfig-3288  [000]  3756.163073: can_fill_info <-rtnl_link_fill

Yep, I wanted to check if can_fill_info() is called at all. Actually,
can_fill_info() does not return an error code so what I can think off is
a mismatch in the data structure. What kernel CAN header files did you
use when building libsocketcan?

Next step would be to use "gdb" to find out where the error happend in
the code. Most errors while print an error message, though.

Wolfgang.

_______________________________________________
Socketcan-core mailing list
Socketcan-core@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/socketcan-core

Reply via email to