Protocol and cannot be used without loading at least one additional In fact, the can core module alone does not provide any That any number of transport protocols can be loaded or unloadedĭynamically. Module provides an API for transport protocol modules to register, so Protocol family module and also vice-versa. Network layer as a network device, so that CAN frames from theĬontroller can be passed up to the network layer and on to the CAN A deviceĭriver for CAN controller hardware registers itself with the Linux Layer, enabling use all of the provided queueing functionality. To user space applications and which builds upon the Linux network Protocol family has been implemented which provides a socket interface SocketCAN was designed to overcome all of these limitations. Often the need for adaption of large parts of the application to the The CAN controller requires employment of another device driver and
Open the device at a time, similar to a serial interface. Also, mostĬharacter-device implementations support only one single process to Have to be implemented in user space applications. Queueing of frames and higher-level transport protocols like ISO-TP Receive raw CAN frames, directly to/from the controller hardware. Usually, there is only a hardware-specific deviceĭriver which provides a character device interface to send and Implementations come as a device driver for some CAN hardware, theyĪre based on character devices and provide comparatively littleįunctionality. Question arises, why we have started another project.
There have been CAN implementations for Linux before SocketCAN so the