Hi

I have pulled the latest SocketCan from 
http://svn.berlios.de/svnroot/repos/socketcan/trunk

But when I compile the utilities I get a compile error:

candump.c:526: error: 'SO_RXQ_OVFL' undeclared (first use in this function)

This is if I compile it on Fedora 11.

Is it only possible to compile, if the kernel version is 2.6.33?

Mikael Rahbek

> -----Original Message-----
> From: [email protected] [mailto:socketcan-core-
> [email protected]] On Behalf Of Oliver Hartkopp
> Sent: 16. januar 2010 14:19
> To: socketcan-users; SocketCAN Core Mailing List
> Subject: ANNOUNCE: new socket level option to report number of rx queue
> overflows
> 
> Hi all,
> 
> beginning with 2.6.33 there will be the functionality to detect dropped
> CAN frames that had not be consumed by the userspace application in
> time:
> 
> http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-
> 2.6.git;a=commitdiff;h=3b885787ea4112eaa80945999ea0901bf742707f
> 
> By enabling the socket option SO_RXQ_OVFL a new control message can be
> passed
> to the application that tells how many packets have been dropped in the
> specific(!) sockets receive path until the last received CAN frame.
> 
> I added this functionality to the latest candump in the SocketCAN SVN
> rev 1111
> and moved the formerly recvfrom() to recvmsg() to read CAN frames
> together
> with the control-messages (cmsg) from the socket. See the diffs in:
> 
> http://svn.berlios.de/viewcvs/socketcan/trunk/can-
> utils/candump.c?r1=968&r2=1111
> 
> To check the functionality on your own, you can follow this example:
> 
> - use a 2.6.33-rcX Linux Kernel
> - run e.g. 'cangen -g4 vcan0' on a separate console
> - run 'candump -ta -d any' ('-d' is the new dropcount option)
> - CAN traffic on vcan0 will show up
> - type CTRL-Z to stop the candump process (will cause packets to drop)
> - wait  3-5 seconds to surely overflow the sockets rx queue
> - type 'fg <RETURN>' to (re)start candump and *directly* after that:
> CTRL-C
> 
> When you scroll up in the terminal, you'll see something like this:
> 
> ...
>  (1263646787.527205)  vcan1  2AB  [8] 7F C0 27 00 C3 BA DE 18
>  (1263646787.532330)  vcan1   38  [8] 7B FC EF 62 BC F4 DC 25
>  (1263646787.537472)  vcan1  5BA  [8] CE BD B4 64 C6 3C 1D 56
> DROPCOUNT: dropped 67 CAN frames on 'any' socket (total drops 67)
>  (1263646787.892871)  vcan1  7B6  [6] 60 54 0D 41 45 D8
>  (1263646787.897970)  vcan1  16E  [8] AA AA D6 64 3A CD 40 1C
>  (1263646787.903048)  vcan1  3FD  [8] C2 A5 A0 13 3E A8 E7 6C
> ...
> 
> I think this new functionality is a great improvement for CAN users to
> make
> things inside the kernel transparent to the userspace application.
> 
> So always be aware to be able to process all the incoming CAN traffic
> in your
> CAN application or use one of the in-kernel CAN filter mechanisms :-)
> 
> Have fun,
> 
> Oliver
> 
> ps. I created a backport of the referenced git commit for a 2.6.28.10
> if
> anyone is interested.
> 
> _______________________________________________
> Socketcan-core mailing list
> [email protected]
> https://lists.berlios.de/mailman/listinfo/socketcan-core
_______________________________________________
Socketcan-users mailing list
[email protected]
https://lists.berlios.de/mailman/listinfo/socketcan-users

Reply via email to