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
