This is a basic Controller Area Network (CAN) infrastructure. CAN is a serial bus network commonly used in automotive and industrial control applications. CAN is exclusively a broadcast network. Frames do not have destination addresses and instead have an ID which identifies the frame (generally the ID identifies the type of data in the payload of the frame). Nodes can selectively receive frames based on their ID (using mask and match bits). Since CAN is a network, CAN controller drivers are implemented as network devices with a few extras provided by a CAN class device. CAN frame aren't a whole number of octets so the user recv()'s and send()'s 'struct can_frame's which include all the header bits and the 8 octets of payload. This infrastructure provides the bare minimum required to test CAN controllers and is likely missing stuff necessary to actually use it in an application. In particular, the requirement that frames are sent via a packet(7) socket could do with being removed but I'm unclear on a method that would allow this but wouldn't be a security risk (e.g., a mechanism needs to be provided so you can't send/receive raw CAN frames on, say, an ethernet device). David Vrabel -- David Vrabel, Design Engineer Arcom, Clifton Road Tel: +44 (0)1223 411200 ext. 3233 Cambridge CB1 7EA, UK Web: http://www.arcom.com/